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

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

 

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

 
Возможности

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

  • Для не специализированных (любых) роботов: все файлы от базового генератора кода, структуру проекта (включая директории для зависимостей собираемых из кода), код связанный с Docker, скрипт сборки и запуска проекта в контейнере, Git с подмодулями для управления зависимостями, ros2_controllers связанный код.
  • Для мультикоптеров: тоже что и выше + 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/24.04, ROS2 Iron/Jazzy, Gazebo Garden/Harmonic, ros2_controllers, etc
  • мультикоптеры: общая сборка, 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 и представляет собой одно из наиболее популярных решений для разработки роботов в мире.