micro-ROS puts ROS 2 onto microcontrollers
Bridging the gap between resource-constrained microcontrollers and larger processors in robotic applications that are based on the Robot Operating Systems.
Microcontrollers are used in almost every robotic product. Typical reasons are:
- Hardware access
- Hard, low-latency real-time
- Power saving
Another important reason is safety, but note that micro-ROS is not developed according to any safety standard.
Check our complete supported hardware list.
Read about the latest developments in our blog or attend the next ROS 2 Embedded Working Group Meeting, which take place online on a monthly basis. The meeting link can be found in the ROS 2 Events calendar.
- Microcontroller-optimized client API supporting all major ROS concepts
- Seamless integration with ROS 2
- Extremely resource-constrained but flexible middleware
- Multi-RTOS support with generic build system
- Permissive license
- Vibrant community and ecosystem
- Long-term maintainability and interoperability
- Much more...
The architecture of the micro-ROS stack follows the ROS 2 architecture. Dark blue components are developed specifically for micro-ROS. Light blue components are taken from the standard ROS 2 stack.
We are looking forward to answer your questions on concepts and development! You have the choice:
- Port micro-ROS to your platform (HW, RTOS, transport)
- Efficient & reliable communication layer between μC and DDS Data Space (ROS 2)
- Customized features development
- Architectural studies
Source code can be found at github.com/micro-ROS. It comes under the permissive license Apache 2.0 just as the standard ROS 2 stack.
The primary repository is micro_ros_setup, which provides command line scripts for creating your first micro-ROS application.
Dockers available for Foxy and Galactic at eProsima download website.
Developed an new feature or found a bug? We answer both Github pull requests and issues.