Is your feature request related to a problem? Please describe.
ROS 2 supports several types of executors. This is relevant to a design choice which is an answer to the following question:
"How do we process ROS 2 subscriptions and other executables (timers, service calls) in O3DE?"
Currently, we only process them in the main thread. This makes some sense but also suggests not to make subscription callbacks heavy (save the callback data, process in worker thread of a sensor, for example).
The task would encompass the following:
[ ] Add information about preference for relatively lightweight subscription callbacks to the user documentation.
[ ] Analyze pros and cons of separate threads (e.g. synchronization with physics and other limitations) for ROS 2 executors.
[ ] If the case for a dedicated thread is supported by analysis, implement the case.
[ ] Submit your argument for whether this should be a default solution.
[ ] Allow the user to configure whether main thread or a dedicated thread should be used for ROS 2 spinning.
Is your feature request related to a problem? Please describe. ROS 2 supports several types of executors. This is relevant to a design choice which is an answer to the following question: "How do we process ROS 2 subscriptions and other executables (timers, service calls) in O3DE?" Currently, we only process them in the main thread. This makes some sense but also suggests not to make subscription callbacks heavy (save the callback data, process in worker thread of a sensor, for example).
The task would encompass the following: