ros2 / rclc

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

[rclc] Executor for multi-threaded and non-POSIX operating systems (AUTOSAR) #340

Open JanStaschulat opened 1 year ago

JanStaschulat commented 1 year ago

Extend rclc-Executor to support

  1. multi-threaded execution (1:1 correspondence of a subscription callback to a thread) using "Dispatcher Executor" concept.
  2. assignment of thread scheduling parameters (e.g. priority) to the thread, which processes a callback (e.g. subscription callback).
  3. non-POSIX operating systems, aka callback is not processed in a thread but in periodic task.

Tasks:

current status: pull request rclc#339

Zard-C commented 1 year ago

Hi Jan, this work has captured my keen interest, could you show some relevant discussions and information?

JanStaschulat commented 1 year ago

Hi @Zard-C , early this year I have been thinking about a better software archicture that would support single-threaded, multi-threaded and non-POSIX executor. Here are the slides about it:

2023-02-design-document-modular-micro-ROS-Executors.pdf

I don't have a written document about it unfortunately, but I think the slides represent the concept quite well. If you have questions/suggestions/remarks, please reach out on micro-ROS slack channel or via email (jan.staschulat@de.bosch.com).

Zard-C commented 1 year ago

Hi @Zard-C , early this year I have been thinking about a better software archicture that would support single-threaded, multi-threaded and non-POSIX executor. Here are the slides about it:

2023-02-design-document-modular-micro-ROS-Executors.pdf

I don't have a written document about it unfortunately, but I think the slides represent the concept quite well. If you have questions/suggestions/remarks, please reach out on micro-ROS slack channel or via email (jan.staschulat@de.bosch.com).

Much appreciated!