-
Notifications
You must be signed in to change notification settings - Fork 215
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
Point clouds are not cleared on time jump #752
Comments
Heya! I just got around to this and reproduced the issue locally with sim time:
To note for later: The "Detected jump back in time" that's implemented in Rolling isn't in Foxy. Foxy never clears the TF buffer.
My confusion is that, before the first TF buffer clear, the system operates as expected. Also hitting the "Reset" button seems to fix this state. It may be more reasonable to do a full reset on clock regression as we likely don't want any persistent state! I could be wrong here in the case of static objects that are loaded in at the beginning of a recording? @jacobperron any thoughts? |
Is this an issue with the point cloud display specifically, or does it affect other displays? |
I just tested this with the Here's @Kettenhoax's code with my modifications: |
@Kettenhoax if you still want to implement a fix, I think the best approach to ensure this captures all displays is to execute the same call as the |
Thanks for verifying with LaserScan! I can't think of issues with the global reset approach off the top of my head. I'll look into it and provide a PR soon. |
I'm using galactic with the released binary.
When displaying a point cloud topic during a time jump, for example when looping a ROS bag, subsequent point clouds stack until the original time point is reached again.
The decay time is disabled, i.e. only one cloud should be displayed.
Looking at the point cloud Display implementation on the current master, I've verified it's sufficient to decay clouds with receive time in the future in
PointCloudCommon::cloudInfoIsDecayed
. However, I'm not sure if that's desirable in all cases. Alternatively the Display could install a ROS clock jump handler that clears data on jump.I'm happy to provide a PR if a core team member could comment on the preferred solution. I've attached the test data publisher and Rviz config to obtain the situation in the GIF.
The text was updated successfully, but these errors were encountered: