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

Bug in laserPosegraphOptimization.cpp? #12

Open
PaulKemppi opened this issue Apr 20, 2022 · 3 comments
Open

Bug in laserPosegraphOptimization.cpp? #12

PaulKemppi opened this issue Apr 20, 2022 · 3 comments

Comments

@PaulKemppi
Copy link

In the function loopFindNearKeyframesCloud (line 412), key frames are being combined into a single point cloud to be used as the target in the ICP registration (doICPVirtualRelative).

This is how it is:

*nearKeyframes += * local2global(keyframeLaserClouds[keyNear], keyframePosesUpdated[root_idx]);

This is how it should be (I guess):

*nearKeyframes += * local2global(keyframeLaserClouds[keyNear], keyframePosesUpdated[keyNear]);

This way, the correct pose for each key frame cloud is used when converting them to the global coordinate frame. The original line results a cluttered point cloud, and thus the ICP registration results often a poor fitness score. Because the best matching key frame with index 'key' (predicted by the scan context matching) is still included in the cluttered cloud, the registration may still result a correct transform. But not always. At least not with my LiDAR data collected with Ouster OS1-32.

@mingloo
Copy link

mingloo commented Jun 8, 2022

@PaulKemppi I've same doubt with you.

One same issue mentioned in #11 as well. Also, it relates to #7.

@gisbi-kim Could you please help double confirm this issue.

@huawei-sai
Copy link

Yes, I confirm this - I faced the same issue and changing the root_idx to keyNear solved the issue! @mingloo @PaulKemppi @gisbi-kim

huawei-sai added a commit to huawei-sai/SC-A-LOAM that referenced this issue Jan 30, 2023
This bug has been already highlighted and well explained in these two links.
gisbi-kim#11
gisbi-kim#12
To check this - one can visualize the loop submap in RVIZ and can see the cluttered point cloud as it does not have correct registration.
@YZH-bot
Copy link

YZH-bot commented Mar 17, 2024

Yes, I also think it should be like this one:

*nearKeyframes += * local2global(keyframeLaserClouds[keyNear], keyframePosesUpdated[keyNear]);

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

No branches or pull requests

4 participants