Micro-ROS

Micro-ROS (Micro Robot Operating System) — это адаптация фреймворка ROS 2 (Robot Operating System) для микроконтроллеров.

Особенности и назначение micro-ROS:

Micro-ROS полезен, когда нужно встроить микроконтроллеры в ROS 2-систему, сохранив преимущества стандартных ROS-инструментов. Он упрощает разработку сложных робототехнических систем, где часть логики выполняется на embedded-устройствах.

Micro-ROS работает на микроконтроллерах (STM32, ESP32, Teensy, Raspberry Pi Pico и др.) и поддерживает стандартных концепций ROS 2 (ноды, топики, сервисы, actions).

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

Для подключения micro-ROS к ROS 2-сети необходимо на компьютере запустить специальную программу-агент (micro-ROS Agent).

Официальный сайт проекта micro-ROS

Установка micro_ros_arduino

micro_ros_arduino это специально подготовленная библиотека, для разработки под microROS в среде Arduino. Она содержит уже подготовленные .a файлы для различных платформ.

Для установки библиотеки необходимо:

  • В разделе releases скачать необходимую версию для вашего дистрибутива ROS (для jazzy можно скачать версию 2.0.7-iron).
  • В ArduinoIDE добавить библиотеку через раздел Sketch -> Include library -> Add .ZIP Library...

Особенности работы с micro-ROS на плате TurtleBro

Плата Arduino через порт Serial1 подключена в общий USB-hub, который подключен к компьютеру RaspberryPi.

Данное подключение на Raspberry видно в устройстве:


Для настройки работы через Serial1, необходимо подключить собственный файл, реализующий новый transport

Пример файла [default_transport.cpp](https://github.com/voltbro/turtlebro2-examples/blob/master/arduino/microros_publisher/default_transport.cpp)

Пример простого micro-ros publisher для Arduino

[microros_publisher](https://github.com/voltbro/turtlebro2-examples/tree/master/arduino/microros_publisher)

Если вы загрузите скетч до запуска micro-ros агента, то вам нужно перезапустить Arduino, нажав на кнопку reset. Так как скетч подключается к агенту только в момент запуска.


Пример программы, реализующий переподключение к ROS агенту. В этом примере microros сразу подключается к агенту, как только он будет запущен.

[microros_reconnection](https://github.com/voltbro/turtlebro2-examples/tree/master/arduino/microros_reconnection)


### Запуск micro-ROS агента

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

Работу Micro-ROS агента можно пояснить схемой

![Micro-ROS agent](./attachments/micro-ros-architecture.png)

Вы можете запустить micro-ROS агент из консоли, командой


```bash
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/serial/by-id/usb-Silicon_Labs_CP2102N_USB_to_UART_Bridge_Controller_0010-if00-port0 -b 115200

Или использовать .launch файл

arduino-agent.xml

Полезные ссылки

https://micro.ros.org Официальный сайт micro-ROS https://github.com/micro-ROS/micro_ros_arduino Библиотека micro-ROS для Arduino https://github.com/voltbro/turtlebro2-examples/tree/master/arduino Примеры micro-ROS для платы TurtleBro

results matching ""

    No results matching ""