rclc - The ROS 2 C-API for micro-controllers
The rclc package complements the ROS Client Support Library (rcl) to provide a complete ROS 2 client library for the C programming language. That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides convenience functions that ease the programming with the rcl types.
With Humble, it supports not only all communication types like subscriptions, timers, services, clients etc. but also parameters, actions and lifecycle. It comes with its own Executor enabling more deterministic and real-time execution management. It serves as a fully-compliant ROS 2 programming interface for micro-ROS applications on micro-controllers. An overview, concepts, tutorials, supported micro-controllers and RTOSes can be found at micro.ros.org.
Check out the Tutorials today and get started with first applications on your micro-controller on https://github.com/micro-ROS/.
Micro-ROS stack
Highlights of new features in Humble
- Added support for ROS 2 Parameters including command-line tools.
- Added support for ROS 2 Actions.
- Added support for Lifecycle Services in the rclc lifecycle nodes.
- API to remove subscriptions (and other handles) from Executor at runtime.
- API to add subscriptions (and others handles) with a Quality-of-Service parameter.
- API to add subscriptions with a context pointer parameter. This allows the callback to access global data structures.
- … and many more improvements and bug fixes (more than 60 pull requests since the Galactic release).
Many thanks to our Maintainers and Contributors
Antonio Cuadros, Brett Downing, Pablo Garrido, Ilya Guterman, Ralph Lange, Ted Miller, Arne Nordmann, Ivan Santiago Paunovic, Steven! Ragnarök, Błażej Sowa, Jan Staschulat.