Skip to main content

· 13 min read
Игорь Брылёв

Видео-версия

В этом обзоре мы расскажем о разработках в рамках проекта Робосборщик в 2022-2023 годах.

Аппаратное обеспечение

Robossembler Arm и его двигатели

Самая главная аппаратная разработка этих полутора лет — рука Робосборщика или Robossembler Arm.

Alt text

Это шести-осевой робот манипулятор, который существенно изменился - сокращены габаритные размеры, вес, снижено общее количество деталей и крепежа.

Alt text

Всего в конструкции теперь 66 деталей и 32 соединителя, которые достаточно крупные, чтобы вставлять их вручную, без помощи вспомогательного инструмента, или даже автоматически - разработанным нами захватным устройством. Все детали содержат специальные пазы для удобства захвата.

Alt text

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

Alt text

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

Alt text

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

Alt text

Мы его упростили, облегчили, при этом сохранив его достаточно жёстким; конструкция препятствует повреждению контактов при ручной установке.

Ключевым узлом робота является разработанный нами с нуля серводвигатель. На данный момент изготовлен его прототип вместе с контроллерами и ведётся разработка программного обеспечения для управления.

Alt text

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

Alt text Alt text

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

Alt text

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

Alt text

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

Alt text

Датчик реализован на кондуктометрическом принципе и обладает чрезвычайно низкой себестоимостью.

Опорный каркас

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

Alt text

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

Alt text

Alt text

Источик питания

Также разработан совместимый с опорным каркасом источник питания от сети переменного тока.

Оснастка для производства

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

winder

Опробованы два варианта намоточного станка - ручной и полуавтоматический, сейчас разрабатывается третий вариант. Станок позволит нам обеспечить серийное производство моторов и сервоприводов. Как и во всех остальных случаях, конструкторская документация на станок будет открыта.

Приспособление для захвата

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

robossembler gripper

В новой версии улучшены передаточные механизмы, добавлены редукторы, изменён корпус. Новая конструкция позволяет вращать пальцы на угол 360 градусов, а новая форма пальцев - "захватывать" объекты внешней стороной.

Программные решения

Robonomics Bridge

В 2022 году нашей командой разработан мост между Робономикой и ROS2, который решает проблему взаимодействия различных кибер-физических систем через публичную сеть интернет.

Robonomics DDS Bridge

Фреймворк ROS2 основан на протоколе под названием DDS или Data Distrubution Service, который обеспечивает взаимодействие узлов ROS друг с другом. Этот протокол ориентирован на работу в локальной сети, в нём заложены механизмы автоматического обнаружения устройств и очень интенсивное взаимодействие между ними. Однако, в случах когда требуется обеспечить работу отдельных узлов ROS с каким-то внешним сервисом или системой, то возникает проблема безопасности - получив доступ к одному узлу, сторонний сервис получает доступ и ко всем остальным - он может полностью прослушивать весь внутренний трафик DDS.

Чтобы решить проблему доступа узлов друг к другу можно использовать пакет ROS2 Security, который настраивает политики доступа к данным. Однако, этот подход обладает большим минусом - весь трафик в системе шифруется, что может сказаться на быстродействии при той нагрузке на сеть, которую создаёт DDS. Другое решение заключается в создании так называемых шлюзов, которые публикуют нужные данные, сохраняя всё остальное приватным. Как правило, это достигается при помощи тоннелей VPN или SSH между взаимодействующими узлами. Такой подход применён в таких проектах как Husarnet, Integration Service и Zenoh, но и он не лишён недостатков. В этом случае вам нужно создать защищённый канал связи, который жёстко привязан к IP-адресу или доменному имени контрагента, а они имеют свойство меняться, блокироваться и подвергаться атакам.

Проблему можно обойти с помощью технологий p2p, на которых построен блокчейн Robonomics. По сути блокчейн может являться в этом случае очень защищённой таблицей маршрутизации, адресами контрагентов в которой являются публичные ключи узлов. Вам нужен локальный узел блокчейна и знание о том какой публичный ключ у вашего контрагента, чтобы далее не зависеть от системы DNS и блокировок IP-адресов. Библиотека libp2p, на которой построен блокчейн Робономики, может использовать разные транспортные протоколы для доставки сообщений. Однако, это не все возможности, которые может дать блокчейн. Помимо простого коммутирования потоков сообщений, в блокчейне в будущем может быть реализована и более сложная логика на смарт-контрактах, подразумевающая взаимодействие большого количества агентов. Например, принятие решение о запуске производства какого-то продукта может быть привязано к голосованию в организации потенциальных потребителей этого продукта, с учётом экономической целесообразности. Сейчас решение о запуске какого-либо производства принимается с помощью механизма инвестиций, когда инвесторы, получив информацию о потенциальном спросе, могут приобретать акции отдельных компаний, которые этот спрос смогут в будущем удовлетворить. То есть инвесторы являются лишним передаточным звеном между потребителями и производителями. Если потребители смогут более активно участвовать в разработке и ценообразовании новых продуктов, то мы сможем в перспективе перейти на такую схему работы, когда производство будет автоматически перестраиваться на удовлетворение спроса по данным, предоставляемым в блокчейн потребителями.

Robossembler Framework

Основной разработкой проекта по-прежнему является Фреймворк Робосборщик, в котором можно выделить два основных блока - Offline и Online.

robossembler framework architecture

Оффлайн-часть связана с подготовкой моделей для симуляции, машинному обучению, взаимодействию с системами контроля версий и непрерывной интеграции. По сути она представляет собой конвейер подготовки трёхмерных моделей и инструменты анализа статической структуры изделия. Одним из важнейших узлов в этом конвейере является разработанный нами планировщик сборки или планировщик последовательности сборки — Assembly Sequence Planner.

Assembly Sequence Planner

Этот программный компонент анализирует сборку в формате STEP, проверяет наличие дефектов в геометрии, которые делают проблематичным подготовку моделей в формат пригодный для симуляции. Также он проверяет требуемые допуски между деталями и строит так называемую матрицу смежности, которая содержит полную информацию о сопряжениях между деталями. Чтобы построить всю последовательность сборки. Дальше сформированные подсборки проверяются на стабильность в гравитационном поле и алгоритм генерирует подходящие варианты для отладки в симуляции. В 2023 году мы дополнили нашу коллекцию исследований по генерации последовательности сборки. Найдены новые исследователи, работающие в направлении автоматизации планирования сборки - в частности, доктор технических наук Божко Аркадий Николаевич, преподаватель из Бауманского университета, с достаточно оригинальным подходом к решению задачи через использование гипер-графов, который мы планируем поддержать в нашей программной части.

Далее работу принимает часть конвейера, отвечающая за компьютерную графику.

Alt text

Детали, входящие в сборки, преобразовываются в так называемые ассеты компьютерной графики разной степени полигональности. Для преобразования ассетов используется свободный редактор компьютерной графики Blender и разработанный нами аддон. Аддон формирует три типа ассетов. Высоко-полигональные модели содержат много деталей и могут использоваться для качественной визуализации. Для симуляции требуется обратное - чтобы количество полигонов было как можно меньшим. Поэтому производится оптимизация полигональной сети и в некоторых случаях склейка отдельных компонентов в монолитный кусок. Также аддон, используя информацию об материалах деталей из CAD, генерирует так называемые физически реалистичные текстуры, производит так называемое запекание текстур. Чтобы познакомиться с конвейером компьютерной графики подробнее, рекомендую прочесть статью на нашем сайте.

Онлайн-часть или рантайм Robossembler ROS2 непосредственно выполняется на железе в момент работы робота. За прошедший год мы перевели проект с ROS2 Foxy, поддержка которой была прекращена в 2023 году, на ROS 2 Humble. ROS2 Humble является так называемым долгоживущим релизом или LTS, который будет поддерживаться еще три года.

Архитектура runtime

В рантайме у нас реализована архитектура из нескольких разных уровней планирования.

Alt text

Самый верхний уровень стека - уровень миссии. Там происходит по сути планирование производственных заданий, подобно ERP-системе, где определяется сколько чего мы производим. Далее следует уровень планирования задач - разбиение процесса сборки отдельного изделия на кванты - логические операции, которые, в свою очередь, опираются на уровень поведения, где работают соответствующие задаче комбинации навыков в виде деревьев поведения. Это поведение стоится на базе атомарных навыков, например, движение к точке, движение по траектории, различные типы восприятия изображений, из которых собирается более сложное поведение. Атомарные навыки работают с аппаратным слоем, то есть с железом, через драйвера устройств. Там решается как именно мы получаем данные, через какие интерфейсы, топики или сервисы, как сигналы преобразовываем и куда передаем.

Деревья поведения и управление жизненным циклом навыков

В основе рантайма у нас лежат деревья поведения. Изначально деревья поведения появились в сфере разработки компьютерных игр для того, чтобы программировать персонажей NPC. Однако, со временем данный подход был предложен также для использования и в робототехнике, в частности Петером Оргеном, который популяризирует и всячески пытается приладить к задачам робототехники. Очень хорошо данный подход себя зарекомендовал себя в области мобильной робототехники - это разнообразная навигация по помещениям. В основе популярнейшего пакета ROS Navigation лежат именно деревья поведения. Мы увидели преимущества этого подхода прежде всего в модульности. Мы заранее не знаем какие именно методы подойдут лучше всего для тех или иных задач, поэтому от фреймворка требуется обеспечить изменяемость - чтобы не надо было менять всю остальную программу при изменениях в отдельном навыке или дереве поведения. Также этому подходу присуща и нужная для производства отказоустойчивость.

Alt text

В проекте Robossembler ROS2 разработан BT-executor, в котором реализованы первые узлы или навыки - в частности, движения к точке пространства через решение обратной задачи кинематики, обнаружение объектов в сцене - Object Detection, а также оценка 6D позиции объектов - Pose Estimation для распознавания положения деталей в пространстве перед захватом и сборкой.

Помимо деревьев поведения, нами также внедрён один из важных концептов, появившихся в ROS2 под названием Lifecycle Nodes или Managed Nodes. Это такой тип узлов ROS2, который позволяет их включать, выключать, конфигурировать, когда надо убирать, добавлять. Это делает удобным подмену, конфигурацию и запуск отдельных навыков в ходе исполнения программы.

Alt text

Например, навык Object Detection у нас используется в нескольких вариантах. В ходе работы программы часто возникает ситуация, когда нужно переключиться на другую реализацию навыка, если текущая не сработала. Разумеется, мы не можем держать всех их в памяти одновременно. Особенно это актуально когда для работы навыка требуется много ресурсов, что часто бывает с нейронными сетями. Здесь на помощь приходят Lifecycle Nodes. Почти все имеющиеся на данный момент навыки в фреймворке реализованы в виде Lifecycle Nodes.

Управление виртуальными средами

Одним из нововведений, которые мы сделали в фреймворке, является Environment Manager или менеджер управления виртуальными средами. Это модуль, который соединяет рантайм с разнообразными средами - как виртуальными, так и не очень. Виртуальной средой может быть игровой движок или симулятор.

Alt text

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

Прикладные решения

Растениеводство

Продвигается и разработка прикладных решений на базе наших модулей. Одним из таких решений является роботизированный комплекс для размножения растений методом микроклонирования, который разрабатывается вместе с нашими коллегами из компании Фито Слим.

Alt text

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

Alt text

Форма нашего робота хорошо подошла для оперировавания в таких стеснённых пространствах как ламинатор.

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

Alt text

Комплекс включает в себя камеры для разносторонней съёмки процесса, чтобы собирать данные и в дальнейшем использовать их для научной и инженерной работы.

Alt text

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

Alt text

Вместо заключения

В заключение хотелось бы отметить, что мы кардинально изменили наш статус - открыли предприятие. Теперь Робосборщик — это не только кружок или клуб единомышленников, а полноценная организация с юридическим статусом. Организация оформлена после победы в конкурсе соискателей финансирования для открытых проектов библиотек программного обеспечения под названием «Код цифровые технологии», организованного Фондом содействия инновациям.

В 2024 году мы планируем завершить разработку программного обеспечения контроллера серводвигателя, запустить манипулятор и испытать его вместе с нашим рантайм модулем. Параллельно этой работе будет вестись и проект фреймворка для отладки программ через симуляцию.

Подписывайтесь на наши каналы в Telegram и Youtube. Если у Вас есть идеи как можно помочь проекту, то Вы можете непосредственно зайти в GitLab, выбрать нужный подпроект и просто написать там issue, где поделиться своими мыслями.

Команда

В работе участвовали:

  • Игорь Брылёв
  • Станислав Сгонов
  • Алексей Топтун
  • Александр Оликевич
  • Роман Андрианов
  • Илья Ураев
  • Марк Вольтов
  • Илья Курочкин
  • Никита Молканов
  • Андрей Ермаков
  • Вячеслав Македонский
  • Александр Шевеленко
  • Иван Ершов
  • Михаил Якушкин
  • Степан Воронов

· 11 min read
Игорь Брылёв

Видео-версия Обзор всех репозиториев проекта

Итак, миновал год с момента начала проекта и наступает время отметить данное событие подведением итогов.

В самом начале мы ставили главной задачей проектирование полностью автоматической и частично самовоспроизводящейся линии для роботов манипуляторов. Исследовав все существующие открытые конструкции роботов-манипуляторов, мы пришли к выводу, что все они не годятся для автоматической сборки. В них присутствовало, как правило, большое количество проводных соединений, которые обладают сложным недетерминированным поведением, сложно проектируются и симулируются, а также разнообразный крепеж очень широкой номенклатуры, использование которого при помощи автоматизированных средств затруднительно (знаменитая задача peg in the hole, для эффективного решения которой бьются учёные-робототехники многие годы). А значит они не подходят для частичного самовоспроизводства. Мы поняли, что придётся разработать собственные аппаратные решения, адаптированные для автоматической сборки и сосредоточились на этом.

Аппаратное обеспечение

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

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

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

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

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

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

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

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

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

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

В механическом захвате используется тот же самый мотор и плата управления, что и в самом манипуляторе. Остальные приспособления проработаны на уровне эскизов и будут дорабатываться по мере появления прикладных задач.

Программное обеспечение

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

Научные исследования:

  • Автоматическое планирование последовательности сборки
  • Методы машинного обучения в промышленной робототехнике
  • Применение блокчейн-технологий в управлении кибер-физическими системами
  • Совмещённое планирование движений и задач

Все исследования были тщательно отобраны и размещены на портале документации. Некоторые исследования были переведены полностью, по некоторым были составлены краткие описания.

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

Также, при разработке архитектуры, мы перенимали лучший мировой опыт в области роботизированной сборки, в чём нам очень сильно помог конкурс на Всемирном саммите по робототехнике, который проходит в Японии с 2017 года. Это такой конкурс, где команды из разных университетов и компаний мира выполняют задание по автоматической сборке роботами специально подготовленного стенда и соревнуются в скорости, точности и безопасности. Так вот - по имеющимся в публичном доступе материалам конкурса мы сделали подробный обзор работ двух команд и попытались учесть извлечённые ими уроки при проектировании архитектуры программного обеспечения. Некоторые выводы подтвердили правильность избранных нами решений. Например, выводы исследователей из университета Сан-Хосе подтвердили правильность выбора второй версии ROS, которая лучше подходит для использования в системах жёсткого реального времени, а ROS первой версии показал себя не очень хорошо в соревнованиях; а опыт команды O2AC подтвердил правильность нашего подхода сборочно-ориентированного дизайна - когда конструктор изначально проектирует изделие с учётом удобства захвата и сборки, а не с учётом своих представлений об эстетике и эргономике, что, в общем-то говоря, не очень актуально для автономных систем.

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

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

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

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

Все эти компоненты можно подразделить на основные категории, каждая из которых отвечает за свою часть работы.

  1. Первая категория (Assembly Preparation) - это комплекс подготовки изделий для автоматизированной сборки и необходимых данных для удобства симуляции. Ключевой компонент здесь - это плагин ARBench, существенно нами дополненный, который служит для разметки геометрических примитивов, формирования последовательности сборки, задания позиций захвата вручную и экспорта моделей в виде поддерживаемых симулятором пакетов. Плагин может работать как через графический интерфейс FreeCAD, что удобно для разметки моделей конструктором, так и через консоль, что удобно для автоматической генерации пакетов в системе непрерывной интеграции Gitlab. Далее пакеты могут быть помещены в базу данных, из которой уже подгружаться в симулятор.
  2. Вторая категория (ROS2) - то, что исполняется непосредственно на вычислительном узле робота. Это набор пакетов ROS2, включающий планировщики движений и задач, конфигурацию робота, пакеты для взаимодействия с узлами Робономики и симулятором.
  3. И, наконец третья категория (Simulation & Learning) - это программное обеспечение для виртуальных сред исполнения - игровых движков, симуляторов, а также модули поддержки машинного обучения, генерации наборов данных и виртуальных датчиков. Здесь ключевым компонентом является наш модуль управления восприятием среды, упомянутый выше.

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

А ещё мы постарались сделать этот комплекс из компонентов с открытым кодом и, кажется, что у нас это получилось.

Интеграция с Robonomics

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

Поначалу пришлось хорошенько подумать над тем "а что в принципе может заставить пользователей подключать их роботов к блокчейн-сети?". Я сам по опыту работу из мира АСУТП и это, конечно, в каком-то смысле консервативная отрасль - ведь на кону безопасность людей и подключать автоматические системы критически важной инфраструктуры к интернету без особой необходимости мало кто рискует - и без того полно дыр. Ну и самое главное - зачем? В этом нет какой-то особой выгоды. Что ж, пришлось эту выгоду поискать... и мы её нашли. Во многом благодаря тому, что ранее погрузились в машинное обучение роботов и поняли, что эффективность обучения в существенной степени будет зависеть от объёма и качества входных данных. Чем больше данных, тем лучше. Вот, например, Google в одном из первых своих исследований по теме привлекли 14 роботов-манипуляторов с их помощью совершили более 800 тысяч операций захвата, чтобы получить достаточное количество данных для обучения! Разумеется, мало у каких компаний есть такие возможности. Но тут мы вспоминаем о нашей сети Робономики, которая создаёт предпосылки для безопасного взаимодействия роботов через интернет, а значит можно собрать такой же стенд как у Google, но только из роботов, разнесённых между собой географически! Тут замечательно сочетаются идеи и блокчейна, и робототехники, и открытого кода, ведь пользователи могут собирать информацию и для того, чтобы вносить изменения в его конструкцию, улучшать железо и софт. И даже есть возможность совместно обучать роботов, не раскрывая конфиденциальности благодаря методике федеративного обучения, когда агенты обмениваются не самими данными, а своими предобученными моделями, которые в дальнейшем собираются и как-то усредняются, чтобы получить итоговую модель.

Ну что ж, уже намного лучше. Но остаётся ещё одна загвоздка - на каждом производстве робот выполняет специфичные для данного производства операции и даже если остановиться только на операции сборки, то в каждом конкретном случае роботы будут собирать разное. А значит теряется смысл кооперации роботов. Нет общего навыка - нет смысла совместно его обучать. И тут в очередной раз на помощь приходят новшества их мира машинного обучения, а именно такая методология как мета-обучение. Это подход, при котором робот учится не работать непосредственно, а учится учиться, то есть формирует не очень специализированный мета-навык. Например, вместо того, чтобы обучаться вставлять конкретный разъём - скажем, USB - он обучается быстро осваивать операцию вставки в общем виде, а под конкретную операцию доучиваться в гораздо меньшем объёме. И это решение позволяет устранить ту самую специализированность роботов. Мы можем дать возможность роботам собирать огромные массивы данных, обучать на них мета-навыки, передавать мета-навыки обратно роботам в виде награды и далее, на базе этих мета-навыков, осваивать прикладные операция для отдельных производств. Пазл сошёлся.

Именно эта идея легла в основу идеи так называемого рынка навыков, где роботы могли бы извлекать пользу из взаимодействия друг с другом за счёт сетевых эффектов.

Напоследок мы интегрировали наш ROS2 проект в Робономику классическим методом - с помощью передачи плана исполнения в блокчейне через команду launch и записали поясняющее этот процесс видео.

Заключение

Вряд ли можно сказать, что мы полностью выполнили те задачи, которые ставили. Уж слишком они были амбициозные и объёмные. Тем не менее, каждый компонент нашей системы, хоть и небольшой, но всё-таки вполне работоспособный, а значит фундамент для дальнейших улучшений заложен.

Команда проекта:

  • Игорь Брылёв
  • Станислав Сгонов
  • Алексей Топтун
  • Александр Оликевич
  • Ярослав Ефремов
  • Роман Андрианов
  • Илья Ураев
  • Марк Вольтов
  • Илья Курочкин

· 2 min read
Игорь Брылёв

Подошёл к концу первый этап проекта Robossembler. Самое время подвести итоги.

Слайды | Видео-запись презентации и обсуждения

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

Однако, мы начали делать то, что первоначально относили к последущим этапам:

  • Проработаны теоретические вопросы управления полностью автоматическим и самовоспроизводящимся производством
  • Разработаны конкретные модели приспособлений для манипулятора
  • Проведён сравнительный анализ средств визуализации и симуляции
  • Подготовлены эскизы фирменного стиля проекта

Организационные изменения

Сейчас можно уверенно сказать, что команда проекта в значительной степени сформирована конструкторами, технологами, системными инженерами. Найдена кандидатура для программирования под Unreal Engine. Проект на данный момент насчитывает 8 участников, четверо из которых принимают активное участие в разработке.

Команда осваивает git в качестве основного инструмента коллективной разработки, что не является типичным для мира 3D-моделирования. Репозитории размещаются в группе gitlab https://gitlab.com/robossembler

В качестве системы управления знаний создан портал документации, который служит единой точкой входа и местом ключевых публикаций по проекту. https://robossembler.gitlab.io/docs

Мы регулярно публикуем записи совещаний и образовательные материалы по теме на нашем Youtube-канале. https://www.youtube.com/channel/UC32Xgbsw9XQlN1QH59pe8HA/videos

Теория и исследования

Самовоспроизводящаяся фабрика: от простого - к сложному https://robossembler.gitlab.io/docs/replication

Информационное обеспечение автоматического производства https://robossembler.gitlab.io/docs/information/information_support

Концепция планировщика производственных операций https://robossembler.gitlab.io/docs/information/planner

Какие сущности из мира программного обеспечения можно сопоставить с материальными объектами производства https://robossembler.gitlab.io/docs/analogy

Сравнительное исследование симуляторов робототехники https://gitlab.com/robossembler/robossembler.gitlab.io/-/issues/1

Технологии

Описан полный алгоритм сборки робота манипулятора, состоящий на текущий момент из 32-х операций https://robossembler.gitlab.io/docs/techinstruction

Разработана технология хранения и транспортировки робофабрики https://robossembler.gitlab.io/docs/autostorage

Конструкторские решения

Разработаны приспособления для манипулятора

Предстоящие три месяца

Намеченный план на Этап 2 (июнь-август 2021) предполагает:

  • Разработкy адаптеров, вспомогательных рабочих столов для стыковки с ЧПУ и другими элементами сборочной линии
  • Разработку автоматизированного рабочего места
  • Дальнейшее совершенствование и параметризацию технологических карт

При этом нужно дополнительно уделить внимание

  • Преодолению разрыва между теорией и практикой
  • Уделить больше внимания средствам автоматизации разработки - создание экспертной системы для проектирования САС
  • Привлечение дополнительных мозгов для эффективного принятия решений (форумы, чаты), больше публичности