MicroXRCE DDS on Ardupilot

Hi @RFRIEDM regarding developing a C++ API for micro-ROS, I am glad to support. We had this discussion in the EWG previously. The question will be: would this C++ API be based on rclc - and to what extend will code-duplication be inevitable e.g. to support C++ types and more flexibility for callback functions like lambda expressions and normal class methods).

Just as a cross-reference, in the ROS 2 real-time working group we have the goal to develop a real-time ROS 2 Executor (in C++). So I wonder, could this Executor also be used for micro-controllers? Also when targetting Linux-OS, we want to remove dynamic memory allocation at runtime, provide deterministic behavior and make it real-time capable (e.g. by by thread prioritization of callbacks using the underlying operating system API (like sched_setparam in POSIX).

I was just thinking, not to do double work in the embedded community, but rather bringing ROS developers together:

  • analyze the requirements of a C++ Executor for micro-ROS, and for a real-time ROS 2 Executor
  • define a layered software architecture for such an Executor, so it could be used in both worlds.
2 Likes