Graph support in micro-ROS!

We are getting every day a little bit closer to bringing the complete ROS 2 feature list into micro-ROS. This time is the turn of including a dedicated graph manager into the micro-ROS Agent and Client’s RMW, providing the small turtle with unprecedented introspection capabilities!

To do so, we have added a DDS participant into the Agent that scans the network in search of the available ROS 2 entities (nodes, publishers, subscribers, services and so on), and publishes them onto a specific topic, which is listened to by the RMW. From this layer, the ROS 2 graph information is fetched by the upper layers and passed to the user.

Note: At the moment we only support introspection over nodes and their publisher and subscriber entities. Services, actions and so on are coming soon!

This is complemented by the ability of micro-ROS to also inject information about its own ROS 2 entities into the ROS 2 global dataspace, so that users executing graph-related tasks can gather information about which micro-ROS entities are present at the moment.

Find an example guiding you through the graphs usage in micro-ROS here!

3 Likes

Our graph manager is growing up, acquiring more functionalities at each step it takes!

The most recent news is that, while in its initial implementation it only handled publishers and subscriptions, it now became able to fetch information about services and actions, too! This broadens its spectrum of action significantly, providing both ROS 2 and micro-ROS nodes with the ability to introspect the network in search of virtually any kind of entity that belongs to nodes of either kind.

Next step? Providing a graph implementation in the rclc! This is important to us, as we have in our roadmap to migrate all functionalities to this layer, so as to make it the default micro-ROS user’s API. Speaking of which, we just added services to this layer (find an example application here)!

A fully equipped rclc is coming, stay tuned!

1 Like