micro-ROS puts ROS 2 into microcontrollers. Due to the resource-limited constraints of the target hardware (around 1 MB of flash memory, 200 KB of RAM memory and less than 500 mA consumption) and micro-ROS’ typical time-critical applications, the ideal platforms on top of which to run it are Real Time Operating Systems (RTOSes). micro-ROS started by running on NuttX RTOS as default, and then expanded the horizon of the supported platforms with the release of micro-ROS Foxy by adding FreeRTOS and Zephyr!
These RTOSes come with slightly different scheduling algorithms and degrees of POSIX compliance. They’re all integrated into the micro-ROS build system, along with the supported boards. In this way, once cloned, the micro-ROS build system endows you with automatic support of all existing combinations of hardware and software platforms, allowing to flash the desired board with the RTOS that best fits your needs!
Find here tutorials on how to deploy your first micro-ROS application on an Olimex STM32-E407 board (our first officially supported board!) on each of these 3 RTOSes!
Another great news: we’re developing an additional tool into our build system that generates the static libraries and headers folders required to ease the integration of micro-ROS into external build systems, allowing it to be integrated as an additional component into your development environment. Stay tuned for soon-to come updates on the matter!
To learn more about the RTOSes we support and our build system, you’re warmly invited to join us on our next Embedded WG meeting on the 16/09!