Skip to content
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

Allow Transformations to be aware of a "fixed frame" #1522

Open
Tracked by #1537
jleibs opened this issue Mar 7, 2023 · 0 comments
Open
Tracked by #1537

Allow Transformations to be aware of a "fixed frame" #1522

jleibs opened this issue Mar 7, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@jleibs
Copy link
Member

jleibs commented Mar 7, 2023

Rerun currently only looks up transform-chains using the latest-at value for the given scene.

However, there are many situations where this doesn't produce the correct results. In particular, the case sensor-readings that are different from an odometry update the judder artifacts are quite clear:
Screencast from 02-27-2023 07_58_23 PM.webm

The crux of the problem is the points are observed in the robot frame. So to place them in the map frame, we apply the transform map_T_robot. However, map_T_robot is being updated at a much faster rate (based on odometry) and so our current "latest at" logic ends up using points from time t with multiple transforms observed at t+1, t+2, etc.

The right thing to do here is to instead build up the transform chain specifically using historical transform values at the time of the data being transformed (including interpolation if the robot odometry measurements and point-cloud measurements didn't line up exactly).

However, it's important to note that this isn't always the right behavior. Whether transforms are treated as having a fixed frame needs to be configurable. This seems like a good candidate for an EntityProperty. If the "fixed frame" entity property is set, rather than using the current latest-at behavior, we would decompose the transform chain into two pieces:

dest_T_source = dest_T_fixed @ T_render * fixed_T_source @ T_source

The solution for this should also take into account visible history: #723

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant