ros2 / rclc

ROS Client Library for the C language.
Apache License 2.0
118 stars 42 forks source link

Merge rclc into rcl? #349

Closed alecGraves closed 1 year ago

alecGraves commented 1 year ago

Would we want to merge the work done on the rclc executor back into RCL at any point? I think a lot of other clients might want the ability to define sequential execution or perform priority-based event handling. This is a very common need in robotic systems.

Is there a point to keeping this separate from the RCL?

JanStaschulat commented 1 year ago

Hi @alecGraves thanks for your question. (CC @fujitatomoya @pablogs9 ) Some arguments that support RCLC as a separate package on top of RCL:

There have been several attempts to provide a C++ interface for RCLC (see issue https://github.com/ros2/rclc/issues/126). Do you also prefer a C++ API or would you prefer a C API for your project? Such a C++ API would have to be community effort.

On the other hand, the real-time working group has been working on a real-time Executor concept. A common goal could be to bundle the efforts in the embedded community (micro-ROS) and ROS 2 community to develop such an Executor with deterministic and real-time behavior.

alecGraves commented 1 year ago

For my project, I need a C API. I would like to minimize build dependencies, and having 78 repositories for core functionality makes porting to a new platform more difficult.

I see your point that ros2 is a layered architecture, and I did not know that RCL did not have any Executor implementation. Thanks.