Skip to main content

Обзор проекта

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

Аппаратные компоненты

Роботы-манипуляторы

Роботы-манипуляторы Robossembler со сменными инструментами покрывают большой класс производственных задач. Они проектируются для автономной сборки и эксплуатации, поэтому к ним не предъявляются характерные для коллаборативных роботов требования безопасности, эстетичности и быстродействия.

В проекте разрабатываются два варианта исполнения манипулятора:

  • Манипулятор с 6-ю степенями свободы для изготовления с помощью литья в прессформе. Звено данного манипулятора состоит из двух оригинальных сервоприводов и производится методом заливки компаундом, перестановкой оснастки на позицию будущего звена и дальнейшей закладкой приводов и кабелей. Данное технологические решение позволяет избавиться от крепёжных, кабельных и ременных соединений, а также необходимости отдельно производить корпус. Материал компаунда подбирается таким образом, чтобы обеспечить оптимальный теплоотвод, дешевизну, удобную утилизацию и повторную переработку компонентов манипулятора. Типы компаунда могут варьироваться в зависимости от нагрузок на конкретные разновидности звеньев.
  • Манипулятор с 6-ю степенями свободы для изготовления с помощью 3D-печати. Все детали манипулятора, кроме электрических плат, проводов и катушек индуктивности, изготавливаются с помощью технологии трёхмерной печати, но могут и отливаться в прессформах. Конструкция манипулятора адаптирована для автономной автоматической сборки.

Приспособления для манипуляторов

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

Полный перечень приспособлений

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

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

  • Шестигранные рабочие столы. Роботы-манипуляторы оснащаются рабочими столами - местами, где будет осуществляться сборка и другие технологические операции. Рабочий стол имеет форму пчелиной соты и содержит в себе вычислительный узел для управления рабочим местом. Столы предполагают:
    • Легкое подключение к ним манипуляторов с помощью специальных надёжных электрических разъемов
    • Электропитание и управление - рабочий стол будет включать в себя систему управления для всех подключаемых к нему манипуляторов
    • Подключение к себе других рабочих столов для создания связанной локальной сети и производственной линии
    • Подключение к рабочим столам транспортных модулей для превращения их в передвижные платформы.
  • Модульный каркас для роботизированных ячеек. Состоит из компонентов двух типов:
    • Пластины служат стыковочным интерфейсом для подключения роботов манипуляторов и их приспособлений. Также в них могут размещаться компоненты встраиваемой электроники для управления подключаемым оборудованием.
    • Стойки обеспечивают электрическое соединение между пластинами для передачи электронергии и управляющих сигналов. Модульная архитектура каркаса позволяет собирать разноообразные роботизированные ячейки под нужды технологического процесса и объединять их в производственные линии.

Программные компоненты

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

  • ARBench - плагин для FreeCAD. Основные функции:
    • разметка CAD моделей изделий - геометрические фреймы, позиции захвата, материалы
    • парсинг моделей сборок CAD и представление их в виде моделей отдельных деталей и мета-информации об их взаимном расположении (матрица смежности или подобное представление)
    • преобразование моделей в последовательность сборки (Assembly Sequence, AS) с помощью Assembly Sequence Planner
    • формирование спецификации задачи в формате Planning Domain Definition Language (PDDL)
    • экспорт деталей и подсборок в виде пакетов формата Simulation Description Format (SDF) для загрузки в симулятор Gazebo
  • Robossembler - набор пакетов для ROS2. Основные функции:
    • отслеживание событий в блокчейне Robonomics с помощью python-библиотеки robonomics-interface
    • загрузка данных из сети IPFS с помощью python-библиотеки ipfshttpclient
    • формирование плана исполнения (Task Plan, TP) в соответствии со спецификациями предметной области (domain) и задачи (problem) на языке PDDL
    • преобразование узлов TP в деревья поведения (Behaviour Trees, BT) с помощью ROS2 Planning System
    • преобразование узлов BT в управляющие программы планировщика движений (Motion Planning, MP) с помощью MoveIt2

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

Похожий подход был применён во фреймворке gym-ignition, целью которого было предоставление возможности пользователям создавать множественные воспроизводимые виртуальные среды для проведения симуляций и отладки Reinforcement Learning алгоритмов. Благодаря архитектуре Entity-Component-System, в фреймворке была реализована возможность заменять движки физики и рендеринга. При этом gym-ignition не ограничивает пользователя в отношении выбора методов решения задач, а лишь предоставляет API для взаимодейсвия с Ignition Gazebo.