ros2 / rclcpp

rclcpp (ROS Client Library for C++)
Apache License 2.0
514 stars 410 forks source link

TimersManager doesn't follow ROS time #2480

Open alsora opened 3 months ago

alsora commented 3 months ago

Feature request

Feature description

Currently, the TimersManager class waits for timers to be ready using the following code

timers_cv_.wait_for(lock, time_to_sleep.value(), [this]() {return timers_updated_;});

This will always sleep using the system clock, even if the "time to sleep" was computed from a timer using the ROS clock

We should take into account the clock type when deciding how to sleep, and use an API that is aware of ROS clock

fujitatomoya commented 3 months ago

duplication of https://github.com/ros2/rclcpp/issues/2457. lets keep this alive as tracking issue, and i will close https://github.com/ros2/rclcpp/issues/2457. CC: @alsora

alsora commented 3 months ago

Ops, my bad. I started looking into this problem and created a ticket without noticing we already had one.

ros-discourse commented 1 week ago

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/4

ros-discourse commented 2 days ago

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