Micro-ROS aims to bring ROS 2 to a wide set of microcontrollers to allow having first-class ROS 2 entities in the embedded world.
The main targets of micro-ROS are mid-range 32-bits microcontroller families. Usually, the minimum requirements for running micro-ROS in an embedded platform are memory constraints. Since memory usage in micro-ROS is a complex matter we provide a complete article describing it and a tutorial on how to tune the memory consuption in the micro-ROS middleware.
In general micro-ROS will need MCUs that have tens of kilobytes of RAM memory and communication peripherals that enable the micro-ROS Client to Agent communication.
The micro-ROS hardware support is divided into three categories:
- reference micro-ROS board,
- tier 2 boards and,
- community supported boards.
In order to check the most recent hardware support visit the micro_ros_setup repo.
Reference micro-ROS board
The micro-ROS reference boards are the ones officially supported for all RTOSes and with complete support for all available transports.
Olimex LTD STM32-E407
Tier 2 micro-ROS boards
The micro-ROS Tier 2 boards are officially supported for one or more RTOSes and transports.
Espressif ESP32 DevKitC
ROBOTIS OpenCR 1.0
STM32L4 Discovery kit IoT
- MCU: ARM Cortex-M4 STM32L4
- RAM: 128 kB
- Flash: 1 MB
- Peripherals: Bluetooth, low-power RF module, 802.11 b/g/n, NFC, 2 digital microphone, temperature/humidity sensor, 3 axis IMU, ToF sensor...
Crazyflie 2.1 Drone
- MCU: ARM Cortex-M4 STM32F405
- RAM: 192 kB
- Flash: 1 MB
- Peripherals: 3 axis IMU, pressure sensor, SPI, I2C, UART, nRF51822 radio....
Community supported boards
The micro-ROS community supported boards are contributions of micro-ROS’ users and community, and are not guaranteed to be officially supported.