Arduino introduces Arduino_RouterBridge_ROS for seamless ROS 2 integration on VENTUNO Q
A new open-source library allows microcontrollers to act as native ROS 2 nodes using an RPC-based bridge.
Summary
Arduino has unveiled the Arduino_RouterBridge_ROS library, designed to bridge the gap between high-level Linux-based navigation and real-time microcontroller I/O. The tool is specifically optimized for the VENTUNO Q board, which features a dual-brain architecture combining a Linux-capable MPU and a real-time microcontroller on a single PCB.
By utilizing an RPC protocol, the library allows developers to write ROS 2 nodes directly within Arduino sketches. This eliminates the need for manual serial parsing or complex custom middleware wrappers when connecting robotic sensors and actuators to a ROS 2 graph.
Technical architecture of Arduino_RouterBridge_ROS
- Communication Protocol: The system utilizes an RPC (Remote Procedure Call) protocol built on top of MsgPackRPC to facilitate communication between the Python-based Linux side and the Zephyr-based microcontroller side.
- Function Execution: Developers can use
Bridge.provide()to register callable functions on one processor andBridge.call()to trigger them from the other, treating the MPU/MCU boundary like a single thread. - ROS 2 Node Capabilities: The library provides a
ros2inonamespace that enables full node functionality, including publishers, subscribers, services, and actions directly from the MCU firmware. - Middleware Independence: The implementation is RMW agnostic, meaning it functions independently of the specific ROS Middleware vendor selected for the Linux host system.
- API Design: The interface uses a native C++ syntax that mirrors standard
rclcpppatterns to reduce the learning curve for robotics engineers.
Why it matters
This development simplifies the robotics development workflow by allowing real-time hardware control to exist natively within the ROS 2 ecosystem. It reduces the architectural complexity for engineers building autonomous mobile robots or precision arms using Arduino's dual-processor hardware.
What to do
- Use the Arduino_RouterBridge_ROS library on VENTUNO Q boards to integrate microcontroller firmware with ROS 2.
- Use Bridge.provide() to register callable functions and Bridge.call() to trigger them across the MPU and MCU boundary.
- Access the library repository and documentation for guides on getting started with ROS 2 on VENTUNO Q.
Original reference: blog.arduino.cc →