micro-ROS – Putting ROS 2 onto Microcontrollers

Aug 13, 2019Tech

micro-ROS puts ROS 2 onto microcontrollers, making them first class participants of the ROS 2 environment.

Today, robots are networks of microcontroller-based sensors and actuators, connected to a larger computer device. However, ROS does not encompass the microcontroller level, forcing developers to adopt custom solutions. Integrating systems at a low level requires so much effort that robot manufacturers often decide to work on their own platform. As a result, robots are still too expensive to deploy and operate. 

Robots are now seen as fully distributed systems of different intelligent nodes connected through different data links. In this changing environment there is, therefore, an urgent need to bridge the technological gap between the established robotic software platform for high-performance computational devices and the low-level libraries for microcontrollers.

Cost savings, development efficiency, and lower barriers to entry can be achieved with the help of a common platform at the microcontroller level by extending the well-established​ ​high-level​ ROS ​framework​ ​towards​ ​microcontrollers​ ​through​ ​​micro-ROS​, the platform for seamless integration of resource constrained devices in the robot ecosystem.


The micro-ROS architecture. Credit: The micro-ROS Project


Compatible with the Robot Operating System (ROS 2.0), the de facto standard for robot application development, micro-ROS eases adoption and portability, and enables the interoperability of traditional robots with IoT sensors and devices, creating truly distributed robotic systems using a common framework.

“FIROS2 requires transformation libraries to convert ROS 2 messages into FIWARE NGSIv2 messages and the other way around. For each message, one transformation library is required by the integration service (FIROS2).”

To be interoperable with ROS 2 a networking middleware aimed for resource-constrained devices is provided. This is interoperable with ROS 2 middleware. EPROS already provides interoperability between ROS 2 and FIWARE through​ ​FIWARE​ ​FIROS2​ ​GE​ ​and​ the update to ​FIROS2​ ​provides​ ​interoperability​ ​with​ ​micro-ROS. For more information about micro-ROS and FIWARE, click here

Back in November 2018, Ralph Lange (Project Manager in Robotics Research) from Bosch, one of the project parterns, spoke to Ricardo Téllez (CEO, The Construct) for the ROS Developers Podcast. When asked about micro-ROS and the need for real-time execution mechanisms in ROS 2 and micro-ROS, he said the following:

“The motivation behind micro-ROS is that we think that most robotics systems use microcontrollers for very good reasons. They are very good for control tasks, for direct access to the sensors […] but of course there is a gap when it comes to the integration because we use different operating systems.”

“The overal goal of micro-ROS is to close this gap, in two ways. The one is to seamlessly integrate microcontrollers into the ROS 2 ecosystem. […] The second goal is of course not only to integrate microcontrollers with ROS 2 […] but also to enable porting software from standard Linux-based, or Mac- or Windows-based onto the microcontrollers. So we also try to resemble the API to bring as many concepts as possible on the microcontroller so that you can easily port your code onto a microcontroller.”

The full podcast can be listened to below. 

Interested to learn more about the development of the project, its architecture and upcoming activities, and the concepts it is using? Visit the micro-ROS website

Partners of the micro-ROS project are: eProsima, Acutronic Robotics, PIAP, Bosch, and the FIWARE Foundation.

Related articles