Integration into External Tools

micro-ROS aims to bring ROS 2 to microcontrollers to allow having first-class ROS 2 entities in the embedded world.

One of the approaches offered by micro-ROS to build an application for embedded platforms consists in a ROS-specific build system comprising modules which integrate the software for cross-compiling said apps on the supported plaforms, both hardware and firmware-wise. A different approach consists in generating standalone modules and components allowing to integrate micro-ROS into external or custom development frameworks, made possible by a tool dedicated to compiling micro-ROS as a standalone library.

The configuration of the generated micro-ROS libraries is based on a colcon.meta file.

The modules that exist up to date for integrating into external build systems are the following:

Vulcanexus micro-ROS element

Vulcanexus is an all-in-one ROS 2 tool set for easy and customized robotics development. It offers natively integrated solutions for ROS 2 networks in terms of performance improvement, simulation, cloud/edge communication, and microcontroller integration. The latter relies on micro-ROS. Vulcanexus is free and open source, and available as a Docker image for Humble and Iron. All components enjoy continuous updates so users benefit from the latest features at all times.

micro-ROS component for the ESP-IDF

ESP-IDF is the official development framework for the ESP32, ESP32-S and ESP32-C Series SoCs. To date, it has been tested in ESP-IDF v4.1 and v4.2 with ESP32 and ESP32-S2. The micro-ROS component for the ESP-IDF allows the user to integrate the micro-ROS API and utilities in an already created ESP-IDF project just by cloning or copying a folder. The current ports support Serial (UART), WiFi, and Ethernet.

micro-ROS module for the Zephyr build system

Zephyr is a scalable RTOS built with security in mind, and based on a small-footprint kernel designed for use on resource-constrained systems. The Zephyr kernel supports multiple hardware architectures, including ARM Cortex-M, Intel x86, ARC, Nios II, Tensilica Xtensa, and RISC-V, and can count with large number of supported boards. The micro-ROS module for Zephyr allows to integrate the micro-ROS API and utilities in an existing Zephyr-based project just by cloning or copying a folder.

micro-ROS for Arduino

Arduino is an open-source platform based on an I/O board and a development environment that implements the Processing/Wiring language, intended to enable users to easily generate interactive projects. A CLI is also offered, which aims to be an all-in-one solution providing the tools needed to use any Arduino compatible platform from the command line. The micro-ROS for Arduino support package is a special bare-metal port of micro-ROS provided as a set of precompiled libraries for specific platforms.

micro-ROS for STM32CubeMX

The STM32CubeMX is a graphical tool by ST for configuring STM32 microcontrollers and microprocessors. It enables to optimally program and manipulate the software thanks to a set of utilities that help setting up pinouts, peripherals, and middleware stacks. micro-ROS for STM32CubeMX is based on a Dockerfile and allows micro-ROS to be virtually supported by the full set of boards offered by STMicroelectronics, in turn enabling the seamless integration of micro-ROS into any STM32 controller based project.

Disclaimer: All logos and product names are property of their respective owners. All company names, logos and product names used in this website are for identification purposes only. Their use does not imply endorsement.