В этом обзоре мы расскажем о разработках в рамках проекта Робосборщик в 2022-2023 годах.
Аппаратное обеспечение
Robossembler Arm и его двигатели
Самая главная аппаратная разработка этих полутора лет — рука Робосборщика или Robossembler Arm.
Это шести-осевой робот манипулятор, который существенно изменился - сокращены габаритные размеры, вес, снижено общее количество деталей и крепежа.
Всего в конструкции теперь 66 деталей и 32 соединителя, которые достаточно крупные, чтобы вставлять их вручную, без помощи вспомогательного инструмента, или даже автоматически - разработанным нами захватным устройством. Все детали содержат специальные пазы для удобства захвата.
Конструкция робота предполагает возможность гибко менять количество степеней свободы под задачу.
Одной из ключевых особенностей робота является симметричный стыковочный интерфейс, который позволяет роботу перемещаться между совместимыми с ним посадочными местами и, тем самым, расширять доступную для работы зону.
Стыковочный интерфейс претерпел уже 8 модификаций, прошёл первичные испытания на прочность соединения и готов к интеграционным испытаниям с остальной частью робота.
Мы его упростили, облегчили, при этом сохранив его достаточно жёстким; конструкция препятствует повреждению контактов при ручной установке.
Ключевым узлом робота является разработанный нами с нуля серводвигатель. На данный момент изготовлен его прототип вместе с контроллерами и ведётся разработка программного обеспечения для управления.
Изначально мы разработали две модификации серводвигателя - один для создания крутящего момента на звене манипулятора, второй - для монтажа рабочего органа или монтажа самого манипулятора к опорному каркасу, но со временем заменили их на один универсальный контроллер для всех версий привода, что позволит ещё больше сократить номенклатуру компонентов и, соответственно, уменьшить себестоимость изделия.
Изменения в серводвигателях коснулись в основном системы вентиляции обмоток и подшипникового узла, который на данный момент может быть использован как радиально-упорный подшипник скольжения, изготовленный методом печати, так и на его место может быть установлен стандартный набор из двух подшипников качения. Улучшено крепление магнитов к ротору с целью уменьшения магнитного зазора. На данный момент испытано семь вариантов печатных роторов и найден оптимальный механизм крепления магнитов.
Также разработана заглушка для стыковочного интерфейса, позволяющая подключить манипулятор напрямую, без опорного каркаса, если в нём нет необходимости.
Разработан и изготовлен прототип датчика угла поворота на выходе редуктора для того, чтобы понимать реальное перемещение звена, что позволит сделать робота в дальнейшем коллаборативным.
Датчик реализован на кондуктометрическом принципе и обладает чрезвычайно низкой себестоимостью.
Опорный каркас
Опорный каркас, который мы показывали в прошлый раз, тоже претерпел большие изменения. Мы убрали дополнительные соединители и теперь весь каркас состоит из практически одних и тех же универсальных сборочных единиц - опорных пластин. Пластины могут быть двух типов.
Первый тип — это пластины с симметричным стыковочным интерфейсом. К ним подключается активное оборудование - роботы или рабочие органы. Другие пластины - пассивные, в них вместо стыковочного интерфейса установлена заглушка. Они выполняют функции передатчиков сигналов и обеспечивают жесткость всей конструкции.
Источик питания
Также разработан совместимый с опорным каркасом источник питания от сети переменного тока.
Оснастка для производства
Мы стремимся сделать робота максимально простым в изготовлении, поэтому помимо конструктивных решений для удобства сборки, разрабатываем и вспомогательную оснастку для автоматизации производства. Мы активно разрабатываем станок для намотки катушек индуктивности двигателя.
Опробованы два варианта намоточного станка - ручной и полуавтоматический, сейчас разрабатывается третий вариант. Станок позволит нам обеспечить серийное производство моторов и сервоприводов. Как и во всех остальных случаях, конструкторская документация на станок будет открыта.
Приспособление для захвата
Существенно изменена конструкция приспособления для захвата, в котором теперь используются те же самые узлы, что и в манипуляторе - двигатель с контроллером, стыковочный интерфейс.
В новой версии улучшены передаточные механизмы, добавлены редукторы, изменён корпус. Новая конструкция позволяет вращать пальцы на угол 360 градусов, а новая форма пальцев - "захватывать" объекты внешней стороной.
Программные решения
Robonomics Bridge
В 2022 году нашей командой разработан мост между Робономикой и ROS2, который решает проблему взаимодействия различных кибер-физических систем через публичную сеть интернет.
Фреймворк 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.
Оффлайн-часть связана с подготовкой моделей для симуляции, машинному обучению, взаимодействию с системами контроля версий и непрерывной интеграции. По сути она представляет собой конвейер подготовки трёхмерных моделей и инструменты анализа статической структуры изделия. Одним из важнейших узлов в этом конвейере является разработанный нами планировщик сборки или планировщик последовательности сборки — Assembly Sequence Planner.
Этот программный компонент анализирует сборку в формате STEP, проверяет наличие дефектов в геометрии, которые делают проблематичным подготовку моделей в формат пригодный для симуляции. Также он проверяет требуемые допуски между деталями и строит так называемую матрицу смежности, которая содержит полную информацию о сопряжениях между деталями. Чтобы построить всю последовательность сборки. Дальше сформированные подсборки проверяются на стабильность в гравитационном поле и алгоритм генерирует подходящие варианты для отладки в симуляции. В 2023 году мы дополнили нашу коллекцию исследований по генерации последовательности сборки. Найдены новые исследователи, работающие в направлении автоматизации планирования сборки - в частности, доктор технических наук Божко Аркадий Николаевич, преподаватель из Бауманского университета, с достаточно оригинальным подходом к решению задачи через использование гипер-графов, который мы планируем поддержать в нашей программной части.
Далее работу принимает часть конвейера, отвечающая за компьютерную графику.
Детали, входящие в сборки, преобразовываются в так называемые ассеты компьютерной графики разной степени полигональности. Для преобразования ассетов используется свободный редактор компьютерной графики Blender и разработанный нами аддон. Аддон формирует три типа ассетов. Высоко-полигональные модели содержат много деталей и могут использоваться для качественной визуализации. Для симуляции требуется обратное - чтобы количество полигонов было как можно меньшим. Поэтому производится оптимизация полигональной сети и в некоторых случаях склейка отдельных компонентов в монолитный кусок. Также аддон, используя информацию об материалах деталей из CAD, генерирует так называемые физически реалистичные текстуры, производит так называемое запекание текстур. Чтобы познакомиться с конвейером компьютерной графики подробнее, рекомендую прочесть статью на нашем сайте.
Онлайн-часть или рантайм Robossembler ROS2 непосредственно выполняется на железе в момент работы робота. За прошедший год мы перевели проект с ROS2 Foxy, поддержка которой была прекращена в 2023 году, на ROS 2 Humble. ROS2 Humble является так называемым долгоживущим релизом или LTS, который будет поддерживаться еще три года.
Архитектура runtime
В рантайме у нас реализована архитектура из нескольких разных уровней планирования.
Самый верхний уровень стека - уровень миссии. Там происходит по сути планирование производственных заданий, подобно ERP-системе, где определяется сколько чего мы производим. Далее следует уровень планирования задач - разбиение процесса сборки отдельного изделия на кванты - логические операции, которые, в свою очередь, опираются на уровень поведения, где работают соответствующие задаче комбинации навыков в виде деревьев поведения. Это поведение стоится на базе атомарных навыков, например, движение к точке, движение по траектории, различные типы восприятия изображений, из которых собирается более сложное поведение. Атомарные навыки работают с аппаратным слоем, то есть с железом, через драйвера устройств. Там решается как именно мы получаем данные, через какие интерфейсы, топики или сервисы, как сигналы преобразовываем и куда передаем.
Деревья поведения и управление жизненным циклом навыков
В основе рантайма у нас лежат деревья поведения. Изначально деревья поведения появились в сфере разработки компьютерных игр для того, чтобы программировать персонажей NPC. Однако, со временем данный подход был предложен также для использования и в робототехнике, в частности Петером Оргеном, который популяризирует и всячески пытается приладить к задачам робототехники. Очень хорошо данный подход себя зарекомендовал себя в области мобильной робототехники - это разнообразная навигация по помещениям. В основе популярнейшего пакета ROS Navigation лежат именно деревья поведения. Мы увидели преимущества этого подхода прежде всего в модульности. Мы заранее не знаем какие именно методы подойдут лучше всего для тех или иных задач, поэтому от фреймворка требуется обеспечить изменяемость - чтобы не надо было менять всю остальную программу при изменениях в отдельном навыке или дереве поведения. Также этому подходу присуща и нужная для производства отказоустойчивость.
В проекте Robossembler ROS2 разработан BT-executor, в котором реализованы первые узлы или навыки - в частности, движения к точке пространства через решение обратной задачи кинематики, обнаружение объектов в сцене - Object Detection, а также оценка 6D позиции объектов - Pose Estimation для распознавания положения деталей в пространстве перед захватом и сборкой.
Помимо деревьев поведения, нами также внедрён один из важных концептов, появившихся в ROS2 под названием Lifecycle Nodes или Managed Nodes. Это такой тип узлов ROS2, который позволяет их включать, выключать, конфигурировать, когда надо убирать, добавлять. Это делает удобным подмену, конфигурацию и запуск отдельных навыков в ходе исполнения программы.
Например, навык Object Detection у нас используется в нескольких вариантах. В ходе работы программы часто возникает ситуация, когда нужно переключиться на другую реализацию навыка, если текущая не сработала. Разумеется, мы не можем держать всех их в памяти одновременно. Особенно это актуально когда для работы навыка требуется много ресурсов, что часто бывает с нейронными сетями. Здесь на помощь приходят Lifecycle Nodes. Почти все имеющиеся на данный момент навыки в фреймворке реализованы в виде Lifecycle Nodes.
Управление виртуальными средами
Одним из нововведений, которые мы сделали в фреймворке, является Environment Manager или менеджер управления виртуальными средами. Это модуль, который соединяет рантайм с разнообразными средами - как виртуальными, так и не очень. Виртуальной средой может быть игровой движок или симулятор.
Environment Manager реализует абстрактный интерфейс, который позволяет соединять рантайм, его драйвера с виртуальной средой. Например, мы можем получать изображение от реальной камеры через какой-то топик, а в этот же топик Environment Manager может нам в дальнейшем, когда мы переключимся на режим симуляции, передавать данные не с камеры, а с симулятора. В этом случае сама программа останется прежней, ничего переписывать не надо. В качестве первой среды мы выбрали симулятор Gazebo, архитектура которого предусматривает разбиение на отдельные компоненты, которые реализовывают физику, рендеринг и многое другое, что делает удобными применение нашего подхода. По нашей задумке Environment Manager должен оказать большое влияние на сам подход к разработке управляющих программ роботов, делая более простым и доступным обучение с подкреплением.
Прикладные решения
Растениеводство
Продвигается и разработка прикладных решений на базе наших модулей. Одним из таких решений является роботизированный комплекс для размножения растений методом микроклонирования, который разрабатывается вместе с нашими коллегами из компании Фито Слим.
На данный момент микроклонирование представляет собой комплекс сложных операций, каждая из которых требует большого объёма рутинного ручного труда, а качество результата очень чувствительно к чистоте и стерильности помещений. Любой случайно привнесенный вирус может означать гибель всех организмов на той стадии, когда они еще очень слабы и не могут этому вирусу сопротивляться. Роботы потенциально могут решить эти проблемы. В рамках концептуального проектирования разработано специальное приспособление для манипулирования растениями в пробирках.
Форма нашего робота хорошо подошла для оперировавания в таких стеснённых пространствах как ламинатор.
В рамках смежного направления также разработана концепция использования манипуляторов для черенкования, не столь требовательная к самим помещениям, но требовательная к стерильности инструментов. Мы разработали эскиз линии или аппаратный комплекс для отладки исследовательских программ черенкования.
Комплекс включает в себя камеры для разносторонней съёмки процесса, чтобы собирать данные и в дальнейшем использовать их для научной и инженерной работы.
На базе обоих решений можно создать научно-исследовательский комплекс, которые позволит проводить эксперименты по селекции и отлаживать весь цикл выращивания от микроклонирования до получения саженцев пригодных к открытому грунту.
Вместо заключения
В заключение хотелось бы отметить, что мы кардинально изменили наш статус - открыли предприятие. Теперь Робосборщик — это не только кружок или клуб единомышленников, а полноценная организация с юридическим статусом. Организация оформлена после победы в конкурсе соискателей финансирования для открытых проектов библиотек программного обеспечения под названием «Код цифровые технологии», организованного Фондом содействия инновациям.
В 2024 году мы планируем завершить разработку программного обеспечения контроллера серводвигателя, запустить манипулятор и испытать его вместе с нашим рантайм модулем. Параллельно этой работе будет вестись и проект фреймворка для отладки программ через симуляцию.
Подписывайтесь на наши каналы в Telegram и Youtube. Если у Вас есть идеи как можно помочь проекту, то Вы можете непосредственно зайти в GitLab, выбрать нужный подпроект и просто написать там issue, где поделиться своими мыслями.
Команда
В работе участвовали:
- Игорь Брылёв
- Станислав Сгонов
- Алексей Топтун
- Александр Оликевич
- Роман Андрианов
- Илья Ураев
- Марк Вольтов
- Илья Курочкин
- Никита Молканов
- Андрей Ермаков
- Вячеслав Македонский
- Александр Шевеленко
- Иван Ершов
- Михаил Якушкин
- Степан Воронов