micro-ROS puts ROS2 onto microcontrollers, making them first class participants of the ROS 2 environment.
See Tutorial List.
We’re basically following the ROS2 architecture and make use of its middleware pluggability to use DDS-XRCE, which is suitable for microcontrollers. Moreover, we use an RTOS (NuttX) instead of Linux. On microcontrollers many different RTOS’s are used, so we also add an RTOS abstraction layer (AL), to make porting to other RTOS possible.
We have also prepared a comparison to other approaches, to see the important differences quickly.
- Predictable scheduling and execution: real-time_executor
- System modes and system hierarchy: system_modes
- Embedded transform (tf) library: embedded_tf
- Reference hardware: https://github.com/microROS/hardware
- Build infrastructure for embedded development using docker: https://github.com/microROS/docker
- FIWARE interoperability: FIROS2
Source Code Repositories
- RMW adapter for Micro-XRCE-DDS rmw-microxrcedds
- Type Support rosidl_typesupport_microxrcedds
- “Agent” (bridge) micro-ROS-Agent
- Client library related
- ‘C’ language client library (alpha!): rclc
- Sample code for rclc and rclpp micro-ROS-demos