Если вы когда-нибудь создавали робота с использованием ROS 2, то вам знаком классический архитектурный разделение: мощный компьютер под управлением Linux отвечает за высокоуровневую навигацию, построение карт и планирование, в то время как внешний микроконтроллер выполняет детерминированные задачи реального времени по управлению GPIO, чтению данных с датчиков и приводу моторов.
Обеспечение связи между этими двумя мирами обычно сводится к сложной борьбе с пользовательскими последовательными протоколами, специализированными драйверами или громоздкими оболочками промежуточного ПО. Плата Arduino® VENTUNO™ Q была создана для того, чтобы стереть эту границу.
Поскольку VENTUNO Q устроена так, что объединяет MPU с поддержкой Linux и микроконтроллер реального времени на одной и той же плате, вы получаете полноценную двухмозговую архитектуру. Несколько недель назад на ROSCon Global 2026 в Торонто, а затем 3 ноября в прямом эфире на ROScon Italy, Джованни Бруно из нашей научно-исследовательской команды представил новый инструмент с открытым исходным кодом, созданный специально для соединения этих двух «мозгов» с ROS 2: библиотеку Arduino_RouterBridge_ROS.
Ниже представлен обзор того, как это работает и как вы можете начать использовать это в своем следующем робототехническом проекте.
Как это работает: «под капотом» Arduino RouterBridge
Чтобы понять принципы работы Arduino_RouterBridge_ROS, сначала нужно взглянуть на Arduino_RouterBridge.
По своей сути Arduino_RouterBridge использует протокол RPC (удаленный вызов процедур), построенный поверх MsgPackRPC. Он позволяет стороне Linux (где запущен Python) и стороне микроконтроллера реального времени (где выполняется скетч Arduino на базе Zephyr) выполнять код друг у друга с помощью двух простых методов:
- Bridge.provide() для регистрации вызываемой функции на одной из сторон.
- Bridge.call() для вызова этой функции с другой стороны.
Вместо написания собственного кода парсинга последовательного порта вы просто вызываете функции через границу MPU и MCU так, будто они выполняются в одном потоке.
Интеграция узлов ROS 2 непосредственно в ваш скетч Arduino
Опираясь на Arduino_RouterBridge, новая библиотека Arduino_RouterBridge_ROS представляет легковесный прокси-сервер ROS 2, который напрямую связывает прошивку микроконтроллера с вашим графом ROS.
Используя знакомое пространство имен ros2ino, вы можете писать узлы ROS 2 прямо внутри вашего скетча Arduino:
- Полные возможности узлов: создавайте узлы ROS 2, паблишеры, подписчики, сервисы и действия прямо на микроконтроллере.
- Независимость от RMW: поскольку решение опирается на легковесный транспорт RouterBridge, оно работает независимо от того, какой поставщик ROS Middleware (RMW) запущен у вас в Linux.
- Родной интерфейс C++: синтаксис API повторяет стандартные паттерны ROS 2 C++ (rclcpp), что делает кривую обучения практически нулевой.
Теперь ваш код микроконтроллера реального времени может напрямую взаимодействовать с ROS 2 без необходимости настраивать дополнительные узлы-мосты, что помогает упростить разработку робототехнических приложений. Например, вы можете передавать телеметрию IMU прямо в топик /imu/data или прослушивать команды скорости мотора на /cmd_vel.
Готовы создать своего следующего робота?
Создаете ли вы автономный мобильный ровер, проектируете прецизионный роборуб-манипулятор или собираете свое самое первое творение на базе ROS? Избавьтесь от головной боли, связанной со старой последовательной связью, и сосредоточьтесь на самом главном: создании умных и способных машин.
Перейдите к нашей документации, чтобы ознакомиться с новыми руководствами, включая Getting Started with ROS 2 on UNO Q и First ROS 2 Project on UNO Q. Возьмите свою плату VENTUNO Q, загляните в репозиторий и покажите нам, что у вас получилось!











