-
Notifications
You must be signed in to change notification settings - Fork 16
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
correctly accumulating lidar #96
Comments
proper frame checking added here: #95 the issue that the husky was having has not been resolved within Pronto |
I'm trying to follow along, let me try to summarize briefly in my words to see if we agree: We want to project a planar lidar scan into the local (world) coordinate frame, so we ask bot frames for SCAN_to_local transform using the utime of the latest scan message. Problem: state estimate may lag behind, so one or more frames in the SCAN_to_local chain are too old to compute an accurate SCAN_to_local. Fix: identify which frames in the chain are relevant, and do not project the scan until those frames have been updated with timestamps newer[1] than the scan utime. I think we decided that the behavior of bot-viewer is desirable: it renders all scans, including new ones with inaccurate projections, but it corrects the projections when the relevant frames eventually arrive. [1] actually, we want the closest in time, bot frames handles this automatically with buffers |
Your interpretation of the problem is correct. The root of the issue is that bot_frames does not distinguish between fixed and moving frames (spinning lidar, body-to-head or body frame). In the above use case we want to collect LIDAR into a point cloud in world frame - not just render it. So we don't want to correct anything at a later date. bot-viewer is also not quite perfect. It only checks if ONE of the links from SCAN to local is newer than the SCAN timestamp. I have implemented some thing, which does the correct checking. It could be done better, but at least it removes hardcoded strings like "MULTISENSE_SCAN" AND "HEAD" from the check. |
Current approach:
PROBLEMS
1 contains hard coded checks of multisense joints. (but the lidar could be from a another lidar e.g. SICK)
2 scan could arrive quite late
Challenges:
HyQ issue:
Husky issue:
The text was updated successfully, but these errors were encountered: