ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

micro-ROS ❤ Zephyr

We’re glad to announce that, through the FIWARE Foundation, micro-ROS earned an associate partnership with The Zephyr Project!

Zephyr is a scalable open-source Real-Time Operating System (RTOS) designed to fit resource constrained and embedded systems with safety and security in mind, and forms part of the Linux Foundation.

Zephyr has been supported informally for sometime now both by the micro-ROS Client library and by its middleware, Micro XRCE-DDS, and was incorporated officially into the micro-ROS build system when the Foxy release came out in July 2020.

A comprehensive and detailed tutorial on how to run your first micro-ROS application with Zephyr on micro-ROS’ official reference board, the Olimex STM32-E407 can be found here.

Also, someday during of the European lockdown we came up with a nice demo involving a Zephyr application running on top of an Olimex board that reads distance data from a VL53LX ToF sensor. The board is connected, via a Raspberry Pi running an Agent, with a Robotis OpenManipulator X robotic arm that picks and drops objects, showcasing the fluid interaction of micro-ROS with this powerful and flexible RTOS.

As a cherry on the cake, Zephyr officially supports an awful lot of boards, and porting micro-ROS to those boards that are transport and resource-wise compatible with its requirements is easy as pie.

And there’s even more!

Very recently, we have worked on an independent component of the micro-ROS machinery that compiles to a collection of static libraries and header folders, plus Zephyr-specific files, marking an alternative to cloning the complete build system. Indeed, while the latter allows selective cross-compilation of applications for the supported combinations of platforms and RTOSes, the new tool turns this upside down by allowing to integrate micro-ROS as a standalone module into the Zephyr build system! Zephyr modules are nothing else but source code of externally maintained projects that enable reuse of well-established and mature code when integrating external software into the Zephyr ecosystem.