-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bond breaks on forward time jumps #16
Comments
In ROS 2, @tfoote and I talked about this issue and we came up with a more flexible option of a "custom time source" which could drive ROS Time. The default would basically implement ROS Time as it works in ROS 1, which is to subscribe to https://github.com/ros2/rcl/blob/master/rcl/include/rcl/time.h#L59-L60 For the ROS Time implementation in ROS 1 these callbacks would be called after receiving a message on It would be a more intrusive change to ROS, but if you were to implement a method like |
Regarding Option 1: So it looks like we could replace WallDuration with a new "MonotonicDuration" which would work in the same way, except of not being susceptible to time jumps. |
I quickly added a MonotonicTime class and used that in bond, which IMHO should fix the issue... Let me know what you think about such an approach... |
|
added a MonotonicTimer in ros/ros_comm#1003 |
That's true, I don't guess the bond messages need to stop or slow down with ROS time. Using a monotonic clock sounds fine to me, especially if bond is already using wall time (system time). |
@mikaelarguedas maybe you can test #18 as well, works nicely here... |
bond is not robust to forward time jumps, if the time source is updated with a more recent time, every bond breaks (tearing down any process/nodelet relying on it).
Alternatives could be:
I'd lean toward option 3 because it respects the ros time source chosen by the user and should not break in the case of a paused simulated time or the update of the system time on a real system
The text was updated successfully, but these errors were encountered: