Это сервис внешнего расширенного генератора кода для RobotCAD

RobotCAD является верстаком во FreeCAD - свободной САПР. RobotCAD свободное ПО.
RobotCAD так же известен как FreeCAD OVERCROSS.

 

Теперь разработка базового кода для робота или мультикоптера для запуска в симуляции стала мгновенной!
Для этого необходимо нажать всего несколько кнопок. Вместо десятков часов чтения руководств, написания ROS2 кода, Docker кода, различных кофигов, попыток подружить библиотеки между собой и отладки.

 
Возможности

Внешний генератор кода создаёт:

  • Для не специализированных (любых) роботов: все файлы от базового генератора кода, структуру проекта (включая директории для зависимостей собираемых из кода), код связанный с Docker, скрипт сборки и запуска проекта в контейнере, Git с подмодулями для управления зависимостями.
  • Для мультикоптеров: тоже что и выше + PX4.

Базовый генератор кода создаёт:

  • ROS2 launch файлы для запуска Gazebo (3d симулятор) и RViz (визуализатор разных аспектов робота).
  • URDF (файл описания структуры робота), meshes
  • Необходимые конфиги и description пакет для ROS2 (набор программных библиотек и инструментов для создания роботов)

 

Процесс работы в RobotCAD

Во FreeCAD, вы создаёте или импортируете детали робота, далее при помощи инструментов верстака RobotCAD задаёте струкруту робота (звенья и суставы) и привязываете ваши детали (в качестве визуала, коллизий и реальных частей) к звеньям, выбираете материалы звеньев или всего робота, задаёте типы суставов и их позиции. Нажимаете кнопку автоматического расчёта массы и инерции звеньев (на основе выбранных материалов). Эти данные в дальнейшем будут использованы симуляцией, для реалистичного взаимодействия робота с миром.
Всё! Осталось нажать кнопку генерации кода.

 
Запуск после генерации кода

После генерации кода вы сможете запустить скрипт старта, произойдёт подтягивание зависимостей, сборка Docker образа, запуск контейнера. Для простоты, всё это обёрнуто в одну команду.
Далее в контейнере, используя команды из файла README.md, запускаем лаунчер ROS2 с нашим мультикоптером. Откроется Gazebo и RViz. Затем запускаем PX4, он автоматически подключится к нашему мультикоптеру в симуляции и будет готов принять комманду - "take off" (взлёт).
Для не специализированных роботов процесс запуска тот же самый, но без запуска PX4.

По итогу имеем готовую инфраструктуру для робота, упакованную в Docker. Всё это генерируется несколькими нажатиями кнопок из верстака для создания роботов - RobotCAD.

Создали робота в RobotCAD и сразу запустили в симуляции.

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

 

Текущая сборка Docker образа:
  • общая: Ubuntu 22.04, ROS2 Iron, Gazebo Garden, ros_gz, joint_state_publisher_gui
  • мультикоптеры: общая сборка, PX4 version 14.x, Micro-XRCE-DDS-Agent, px4_msgs, px4_ros_com

В проекте так же создаются все необходимые файлы для запуска: airframe, SDF, ROS2 лаунчеры, URDF и т.д. 
В airframe у мультикоптеров заданы позиции двигателей относительно центра масс (как это и должно быть по документации), а не центра рамы. Это делает дрон более устойчивым, если центр масс смещён. 

Протестировано на Ubuntu 22.04 в качестве host ОС.

 

Что делать дальше?

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

В планах расширение возможностей генератора кода, и со временем всё больше будет доступно через генератор.

 

Если вы не знакомы с представленным стеком технологий обёрнутых в докер, то это всё является opensource и представляет собой одно из наиболее популярных решений для разработки роботов в мире.