A ROS 2 node that bridges DDS networks with Micro-ROS nodes on microcontrollers, enabling communication between embedded systems and ROS 2.
micro-ROS Agent is a ROS 2 package that serves as a bridge between DDS networks and Micro-ROS nodes running on microcontrollers. It enables embedded systems to communicate with ROS 2 networks by managing message passing and node exposure, solving the challenge of integrating resource-constrained devices into larger robotic or IoT systems.
Robotics developers and embedded systems engineers working with microcontrollers who need to integrate MCU-based nodes into ROS 2 ecosystems for applications like drones, autonomous vehicles, or industrial IoT.
Developers choose micro-ROS Agent because it provides a standardized, efficient way to connect microcontroller-based systems to ROS 2, leveraging the Micro XRCE-DDS middleware for optimized communication and supporting multiple transport protocols without requiring heavy resources on the embedded side.
ROS 2 package using Micro XRCE-DDS Agent.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Acts as an efficient server between DDS networks and Micro-ROS nodes, enabling microcontroller-based nodes to seamlessly participate in ROS 2 ecosystems, as described in the overview.
Automatically generates XML profiles during build to reference messages instead of sending full XML, reducing communication overhead and optimizing Agent-Client interactions, as highlighted in the package features.
Supports UDP, TCP over IPv4/IPv6, and Serial Port transports, providing versatility for different hardware and network configurations, directly leveraging Micro XRCE-DDS agent capabilities.
The README explicitly warns that the software is not ready for production, lacking specific use case development and testing, which limits its application in safety-critical or reliable deployments.
There are known issues with serial port communication, including an unknown problem in Docker environments causing packet loss and limitations in the snap version, requiring workarounds like building from source.
Requires integration with Micro-ROS and ROS 2 frameworks, which can involve a steep learning curve and additional setup, as it's part of a larger stack with dependencies on external middleware.