Skip to main content

Генеративный дизайн машинной клетки

Клетка - стандартный фрагмент автоматической производственной системы (АПС), способный к автономной работе, развитию и репликации. Она состоит из оболочки, рабочей, складской и транспортной зон.

Карта клетки в нашей модели представляет собой квадратный массив чисел, указывающих, что именно и где должно в ней находиться. Таким образом, карта позволяет определить маршруты перемещения мобильных манипуляторов (ММ), места для складирования объектов, места для монтажа машин, места для обмена объектами с окружающей средой, порядок постройки и развития клетки. Сопоставление фактического состояния элемента территории с элементом карты позволяет выявлять ошибки и аварии.

Алгоритм генеративного дизайна позволяет автоматически спроектировать карту для любого набора заданных в начале программы параметров клетки, учитывая размер и количество машин, площади складов, порты для заряда мобильных манипуляторов и т.п.

(см. рабочий python-код в файле generation.ipynb - лучше открывать с помощью Jupyter Notebook)

Клетка состоит из трех уровней - пол, оборудование, крыша. Каждый из них состоит из компонентов (функциональных блоков), описанных ниже. Компонент может быть реализован различными модулями (структурными блоками), это задается той или иной таблицей структурно-функциональных связей. Например, базовый элемент пола или створка ворот может быть довольно сложным устройством для работы в поле или под водой, а для работы на бетонном полу защищенного от внешних воздействий цеха может просто отсутствовать.

Описание компонентов оборудования и их числовые коды:

  1. отсутствующий блок - предполагается, что в этом месте в свежепостроенной клетке ничего не должно находиться. Таких мест много, в основном они служат для проезда ММ.
  2. прямой блок забора Забор отделяет клетку от внешней среды, ничего материального не впуская и не выпуская. Граничит с заборами других клеток и потому может участвовать в передаче данных между клетками. Монтируется с помощью ММ на пол, имеет два разъема на противоположных сторонах для соединения с себе подобными.
  3. угловой блок забора. Угловой элемент забора граничит сразу с несколькими углами заборов соседних клеток и может играть особую роль в коммуникации. Также может содержать маяки для навигации ММ. Монтируется с помощью ММ на пол, имеет два разъема на смежных сторонах для соединения с элементами забора. Может быть унифицирован с прямым элементом забора, хотя монтаж его в углу может иметь свою специфику. 3 створка ворот - элемент забора, способный частично открываться для передвижения ММ между клетками. При этом ММ (возможно, с грузом) проходит через специальный элемент - порт ворот, а створки ворот, находящиеся по бокам от него, открываются. Ничего и никого другого ворота не пропускают. Таким образом, чтобы перейти из одной клетки в другую (например, вновь строящуюся) ММ сначала проходит "свои", потом "чужие" ворота. Монтируется с помощью ММ на пол, имеет разъем для соединения с элементом забора.
  4. портал - элемент забора, спообный пропускать через себя коробки и ММ. Мы предполагаем что ММ может быть шире чем портал (который сам должен быть перевозимым при помощи ММ), поэтому окружаем его с двух сторон створками ворот (они в закрытом состоянии перекрывают и портал). Коробка же несколько уже чем портал, поэтому может проходить через него в обоих направлениях, если он будет открыт. По умолчанию же портал закрыт и открывается лишь когда ММ передает через него груз в соседнюю клетку. Вариант использования 1: ММ с грузом подъезжает вплотную к порталу своей клетки и сквозь него кладет коробку в портал чужой клетки, откуда его забирает ММ той клетки. Вариант использования 2: ММ с грузом кладет коробку в портал своей клетки, а ММ другой клетки забирает его оттуда. Монтируется с помощью ММ на пол.
  5. машинный блок - элемент машины (автоматизированное рабочее место (АРМ), станок или любой другой компонент такого рода). Группа машинных блоков образует машину, способную выполнять операции над объектами.
  6. колонна - элемент, поддерживающий крышу. Должна быть выше ММ, но не выше его рабочей зоны (чтобы мог поставить на нее элемент крыши). Может быть унифицирована с элементами забора. Имеет разъемы для получения от крыши электроэнергии и ее передачи в пол.
  7. стеллаж - позволяет хранить вданном месте несколько коробок с объектами на разной высоте.Возможно, имеет разъемы для получения от крыши электроэнергии и ее передачи в пол.
  8. пандус - позволяет ММ с грузом перемещаться между этажами

Описание компонентов пола и их числовые коды:

  1. территория, непригодная к использованию (пока не реализовано, предполагается что на сложной местности, содержащей непроходимые участки тоже можно построить клетку с ограниченным функционалом, огибающую эти участки)
  2. территория, пригодная к использованию (на ней можно строить клетку путем установки готовых блоков с помощью ММ)
  3. элемент пола базовый. Между элементами пола могут передаваться электричество и сигналы управления, а при необходимости - и другие коммуникации, не загромождая поверхность над ними и обеспечивая избыточную связность клетки (при повреждении или отсутствии значительного числа элементов пола все равно обеспечивается надежная передача энергии и сигналов управления). При застройке территории ММ может ездить по элементам пола и при этом устанавливать новый элемент пола в зоне, доступной его рукам. Затем продвигатсья дальше. Это позволяет при желании обходиться вообще без аккумуляторов в ММ, питая их все время через элементы пола, либо обходиться вообще без ММ, придав элементам пола возможность перемещения объектов.
  4. порт для монтажа прямого элемента забора. Может быть таким же как базовый элемент пола или специальным.
  5. порт для монтажа углового элемента забора. Может быть таким же как базовый элемент пола или специальным.
  6. складское место - элемент пола, предназначенный для установки на него коробок с объектами. Может быть таким же как базовый элемент пола или специальным (например, с разъемами для позиционирования складируемых коробок). Расстановка складских мест на карте производится так, чтобы коробки на них не мешали друг другу, и к каждому месту был обеспечен доступ ММ хотя бы с одной стороны.
  7. порт створки ворот Может быть таким же как базовый элемент пола или специальным.
  8. порт портала - Может быть таким же как базовый элемент пола или специальным.
  9. трасса - базовый элемент пола, учитываемый при построении маршрутов и используемый для перемещения ММ во время работы клетки. Расстановка трасс на карте производится так чтобы обеспечить доступ ММ во все необходимые места и избегать заторов при работе многих ММ. Может быть таким же, как базовый элемент пола или специальным, например, способным питать энергией ММ или самостоятельно транспортировать объекты.
  10. машинный порт - элемент пола на котором устанавливается машинный блок. Машинные порты собраны в группы, образующие места для монтажа машины. Может быть таким же, как базовый элемент пола или специальным.
  11. рабочий порт - элемент пола, на который устанавливается коробка с объектом для его использования машиной, находящейся рядом. Машины изначально проектируются так чтобы брать и помещать объекты в коробки находящиеся здесь. Вокруг каждой машины создается как можно больше рабочих портов так чтобы они не мешали друг другу и могли независимо обслуживаться ММ. Может быть таким же, как базовый элемент пола или специальным.
  12. порт мобильного манипулятора - Элемент пола, предназначенный для парковки (и, возможно, заряда) мобильного манипулятора. Может быть таким же, как базовый элемент пола или специальным
  13. порт электростанции - машинный порт, зарезервированный для монтажа блоков специфических машин - электростанций.
  14. порт утилизатора - машинный порт, зарезервированный для монтажа блоков специфических машин - утилизаторов отходов и брака.
  15. порт планировщика - машинный порт, зарезервированный для монтажа блоков специфических машин - планировщиков.
  16. порт шахты - машинный порт, зарезервированный для монтажа блоков специфических машин - шахт, автоматически добывающих полезные ископаемые из недр земли. Может отличаться возможностью доступа через него вниз. При этом должна сохраняться возможность проезда по нему ММ.
  17. порт колонны - элемент пола для монтажа на него поддерживающей крышу колонны. Может быть таким же, как базовый элемент пола или специальным.
  18. порт стеллажа - элемент пола для монтажа на него стеллажа. Может быть таким же, как базовый элемент пола или специальным.
  19. порт пандуса - элемент пола для монтажа на него пандуса

Описание компонентов крыши и их числовые коды:

  1. отсутствующая крыша - предполагается, что в этом месте в свежепостроенной клетке ничего не должно быть крыши. Например, для вентиляции или пролета дронов.
  2. инертная крыша - дешевая крыша без дополнительных функций, просто с защитой от непогоды и, возможно, охлаждением.
  3. солнечная батарея - добывает энергию, может иметь функции поворота к солнцу и самоочистки.
  4. ветряк - добывает энергию ветра.
  5. опорная крыша - на нее можно укладывать элементы пола следующего этажа

Описание некоторых модулей (структурных блоков) и их числовые коды:

  1. отсутствующий модуль
  2. закрытый модуль пола позволяет монтировать на себе различные блоки оборудования и перемещаться ММ. Имеет механические и электрические разъемы для соединения с соседями и монтажа сверху блоков оборудования. Имеет ножки адаптивной высоты - ММ укладывают элементы пола прямо на территорию, пригодную к использованию, регулируют ножки по высоте и соединяют с соседними. От ннего возможна зарядка аккумляторов ММ.
  3. открытый модуль пола имеет не мешающие проезду ММ отверстия дял доступа к поверхности, что позволяет монтировать на нем блоки шахтного оборудования, добывающие ресурсы.
  4. вертикальный модуль - может использоваться в качесте колонны, прямого или углового элементов забора
  5. модуль створки ворот симметричный, подходящий для использования в качестве как левой, так и правой створки
  6. машинный блок - их очень много разных, но с одинаковым способом монтажа и подключения.
  7. коробка - позволяет хранить объекты, транспортировать их с помощью ММ, передавать в машины для обработки.
  8. мобильный манипулятор
  9. стеллаж
  10. инертная крыша
  11. крыша-солнечная батарея
  12. крыша-ветряк
  13. опорная крыша
  14. пандус

Мобильный манипулятор может брать, перемещать и устанавливать любые из этих модулей, включая другие мобильные манипуляторы. Обрабатываемые объекты могут находиться в коробках и путешествовать с ними, а в рабочих портах машин удаляться из коробок и помещаться в них. Также в рабочих портах могут появляться (как результат работы машин) объекты, не помещающиеся в коробки: сами коробки, мобильные манипуляторы, все вышеперечисленные пронумерованные блоки.

Один и тот же модуль - например, машины, пола или забора может в какой-то момент просто лежать на складском месте, а в другой - быть установлен на свое место и выполнять свою функцию.

Примеры матриц структурно-функциональных связей

  1. Минимализм.

Предполагается работа на ровном полу защищенного цеха. Все компоненты пола и оборудования кроме машинных блоков реализуются отсутствующими блоками. Территории, непригодной к использованию нет. Складируются коробки прямо на полу, ресурсы и энергия подаются на машиноместа по заранее проложенным под полом трубам и кабелям. Никакой крыши нет.

  1. Реализм

Предполагается работа на естественном грунте. Используются все предусмотренные блоки оборудования, включая заборы и ворота. Территория, непригодная к использованию обходится стороной. Используются два вида элементов пола - закрытый и открытый, шахтные машины ведут добычу ресурсов. Элементы пола и забора служат в том числе и аккумуляторами энергии. Для защиты от непогоды и загрязнений нужна крыша, для монтажа которой потребуются часто расположенные стены и/или колонны. Крыша выполняет также функцию охлаждения и сбора воды. Она может использоваться для сбора энергии с помощью соолнечных батарей и ветряков. Здесь предполагается и более внедорожный мобильный манипулятор, может быть, шагающий. Для хранения объектов спользуются стеллажи, помогающие колоннам поддерживать крышу.

Алгоритм генеративного дизайна

В качестве исходных данных используются:

  • максимальное число блоков в машине
  • число рабочих машин в клетке (для роста, для репликации, максимальное)
  • максимальное число планировщиков, утилизаторов, электростанций, шахт
  • емкость склада (для роста, для репликации, максимальная)
  • максимальное число мобильных манипуляторов
  • число машиномест и складских мест оставляемое пустым для резерва

Далее выполняются следующие действия:

  • Найти общее количество машин (включая служебные) и общую емкость склада (включая места для ММ)
  • Подобрать прямоугольную форму машины, по возможности близкую к квадратной, содержащую количество блоков не меньше заданного и хорошо стыкуемую с соседями, дорожками и складской зоной. Определить ширину и высоту машины, фактическое количество в ней блоков и занимаемую ей площадь.
  • Подобрать прямоугольную форму рабочей зоны, по возможности близкую к квадратной, содержащую количество машин не меньше заданного и хорошо стыкуемую с дорожками и складскими зонами. Определить ширину и высоту рабочей зоны, фактическое количество машин и занимаемую ей площадь.
  • Рассчитать размер территории, занимаемой клеткой
  • Создать карту как числовой массив (или импортировать из файла для учета непроходимых территорий)
  • Заполнить ее базовыми элементами пола
  • Указать порты для прямых и угловых элементов забора
  • Задать трассу по периметру клетки
  • Указать порты для монтажа ворот и створок ворот
  • Раставить складские места
  • Создать посередине клетки рабочую зону - машины, их рабочие порты, трассы между ними
  • Создать дополнительные вертикальные трассы возле машинной зоны
  • Создать порты мобильных манипуляторов и пути подъезда к ним
  • Зарегистрировать элементы карты как экземпляры классов

Примеры работы алгоритма. Над картинками указаны задаваемые число блоков в машине, число машин, число складских мест и ММ.

Artificial cells examples

Можно генерировать и очень большие клетки с сотнями тысяч и даже миллионами элементов. Инструменты видуализации matplotlib позволяют величивать фрагменты и "бродить" по клетке.

Artificial cells examples

Порядок фактической постройки клетки

Когда у нас есть общая карта клетки, можно, сопоставляя реальность с этой картой осмысленно диагностировать, ремонтировать и воспроизводить клетки.

Начинаем с анализа территории. Если есть непроходимые, непригодные участки, смотрим, достаточный ли запас места чтобы их обойти (вычеркиваем машины и складские позиции на этих территориях и смотрим, достаточно ли места для работ I и II очереди) или бракуем весь квадрат и ничего там не строим.

Задача I очереди строительства - установить все необходимое для самостоятельного развития новой клетки.

  • Все элементы пола. Строительство начинается с одной или нескольких из сторон. Первыми укладываются элементы пола, граничащие с воротами материнской клетки. После этого ММ огут заехать на них и установить смежные с ними элементы пола и так далее.
  • Забор с угловыми элементами и воротами
  • По одному экземпляру служебных машин: электростанция, планировщик, утилизатор, шахта
  • Рабочие машины I очереди
  • Коробки с объектами I очереди

После этого клетка может развиваться сама. Начинаются работы II очереди (самостоятельно или при помощи соседей). Их цель - обеспечить клетку всем необходимым для самостоятельной репликации.

  • Рабочие машины II очереди
  • Коробки с объектами II очереди

После этого клетка способна самостоятельно производить себе подобные. Дальнейшее ее поведение может определяться, например, следующим алгоритмом:

  • Если рядом есть строящиеся клетки, помогаем им в работах I и II очереди (получаем доступ к плану производства и подписываемся на выполнение его части, производим и отправляем)
  • Иначе, если рядом есть пустое место, создаем и строим там новую клетку (выпускаем стандартный план ее производства и выполняем его, сами или при помощи соседей).
  • Иначе, если со стороны одного из соседей приходит высокий (выше заданного предела) уровень сигнала об активном строительстве новых клеток ("гормона роста"), производим и передаем все производимое туда. Так как строящиеся клетки могут быть не близко, в этих условиях производим и отправляем только наиболее стандартные и массовые компоненты вроде элементов пола и ММ.
  • Иначе ведем работы III очереди - нарабатываем элементы пола, машины и коробки с объектами, оставляя свободным лишь установленное резервное количество мест складских и машинных.

Задачи на будущее

  • назначение мест, откуда ММ может взять тот или иной объект
  • умная регистрация машинных блоков, машиномест со связанными портами и объектов
  • перемещение ММ, перевозка коробок
  • правила дорожного движения для ММ и тесты на случайные перемещения коробок толпой мм
  • репликация как монтаж готовых элементов пола и блоков при помощи ММ
  • демонтаж и замена случайно поврежденных блоков
  • межклеточное взаимодействие
  • соответсвие объектов коробкам
  • подробное описание работы машин - что из чего они делают
  • генерация технологических графов и их исполнение клеткой
  • перейти от абстрактных к конкретным машинам и объектам