rclcpp icon indicating copy to clipboard operation
rclcpp copied to clipboard

EventsExecutor doesn't support rcl guard conditions

Open alsora opened this issue 1 year ago • 3 comments

Bug report

The EventsExecutor currently doesn't handle guard conditions managed in rcl. An example is the graph guard condition. The EventsExecutor won't receive events from these entities (note that rclcpp::GuardConditions will still work). Waitables that rely on them won't execute.

Additional information

We should either have rclcpp only deal with rclcpp::GuardCondition by wrapping them or propagate some callbacks from rclcpp down to the rmw to receive events.

alsora avatar Jul 02 '24 22:07 alsora

This issue has been mentioned on ROS Discourse. There might be relevant details there:

https://discourse.ros.org/t/the-ros-2-c-executors/38296/13

ros-discourse avatar Jul 02 '24 22:07 ros-discourse

We should either have rclcpp only deal with rclcpp::GuardCondition by wrapping them

This is the approach we have taken since the creation of rclcpp::GuardCondition. I was in charge of converting all rclcpp code using rcl_guard_condition to their rclcpp::GuardCondition wrapper.

mauropasse avatar Jul 04 '24 11:07 mauropasse

Yes, I agree that this is the best approach. rclcpp users shouldn't have to deal with rcl objects.

alsora avatar Jul 06 '24 17:07 alsora