Building robots with ROS 2 typically requires a familiar split: a Linux-based computer manages high-level tasks like navigation and mapping, while a separate microcontroller handles real-time operations such as GPIO control, sensor reading, and motor actuation. Bridging these two systems has traditionally demanded custom serial protocols, dedicated drivers, or complex middleware layers. The Arduino VENTUNO Q board was engineered to collapse this boundary by integrating both a Linux-capable processor and a real-time microcontroller on a single board.
Giovanni Bruno from Arduino's R&D team introduced a new open-source solution at ROSCon Global 2026 in Toronto and again on November 3rd at ROScon Italy: the Arduino_RouterBridge_ROS library. This tool connects the dual-processor architecture directly to ROS 2, streamlining how developers integrate microcontroller I/O into their robotics systems.
How it works: under the hood of Arduino RouterBridge
The Arduino_RouterBridge_ROS library builds upon Arduino_RouterBridge, which uses an RPC (Remote Procedure Call) protocol layered on MsgPackRPC. This foundation enables the Linux side (running Python) and the real-time microcontroller side (running Zephyr-based Arduino sketches) to execute code on each other through two core methods:
Bridge.provide()registers a callable function on one sideBridge.call()triggers that function from the other side
Rather than implementing custom serial parsing logic, developers can invoke functions across the processor boundary as though they were executing in the same thread.
Bringing ROS 2 nodes directly into your Arduino sketch
The Arduino_RouterBridge_ROS library adds a lightweight ROS 2 proxy that connects microcontroller firmware directly to the ROS graph. Using the ros2ino namespace, developers can construct ROS 2 nodes within their Arduino sketches with several key capabilities:
- Full node capabilities: Create ROS 2 nodes, publishers, subscribers, services, and actions directly from the MCU
- RMW agnostic: The lightweight RouterBridge transport operates independently of the ROS Middleware (RMW) vendor running on Linux
- Native C++ interface: The API follows standard ROS 2 C++ (rclcpp) conventions, minimizing the learning curve
This approach enables real-time microcontroller code to interact with ROS 2 without requiring separate bridge nodes, reducing complexity in robotics development. Developers can publish IMU telemetry directly to a /imu/data topic or subscribe to motor velocity commands on /cmd_vel.
Ready to build your next robot?
Whether you're developing an autonomous mobile rover, building a precision robotic arm, or starting your first ROS-powered project, the Arduino_RouterBridge_ROS library eliminates traditional serial communication challenges. Documentation is available including Getting Started with ROS 2 on UNO Q and First ROS 2 Project on UNO Q. Developers can obtain the VENTUNO Q board and access the repository to begin building.
Source: Arduino Blog


