| title | permalink | redirect_from |
|---|---|---|
Architecture |
/docs/overview/ |
/docs/ |
micro-ROS puts ROS 2 onto microcontrollers, making them first class participants of the ROS 2 environment.
We're basically following the ROS 2 architecture and make use of its middleware pluggability to use DDS-XRCE, which is suitable for microcontrollers. Moreover, we use an POSIX-based RTOS (NuttX) instead of Linux. We also add RTOS abstractions, to make porting to other RTOS easier.
Dark blue components are developed specifically for micro-ROS. Light blue components are taken from the standard ROS 2 stack. We seek to contribute as much code back to the ROS 2 mainline codebase as possible.
We have also prepared a comparison to other approaches, to see the important differences quickly.
Major repositories in order of the layers are:
- Applications:
- Kobuki demo: embedded robot driver and remote ROS 2 software
- Client library:
- Extensions to rcl, i.e. the ROS 2 C API: rcl_executor, ...
- Extensions for rclcpp: system_modes, TF improvements, ...
- Middleware:
- eProsima's open-source implementation of DDS-XRCE: Micro-XRCE-DDS
- RMW adapter for Micro-XRCE-DDS: rmw-microxrcedds
- Type support for Micro-XRCE-DDS: rosidl_typesupport_microxrcedds
- Agent (bridge) to ROS 2: micro-ROS-Agent
- RTOS:
- Our NuttX fork, but most additions were contributed back.
- Example applications for NuttX directly are in apps
Most repositories can be found in GitHub's micro-ROS organization at github.com/micro-ROS/.
| Name | Documentation | Release | CI | Issues |
|---|---|---|---|---|
| rmw-microxrcedds | ||||
| rosidl_typesupport_microxrcedds | ||||
| micro-ROS-Agent | ||||
| Micro XRCE-DDS | ||||
| system_modes |
