RobustFieldAutonomyLab / LeGO-LOAM

LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
BSD 3-Clause "New" or "Revised" License
2.35k stars 1.11k forks source link

Some questions about loop closure detection #172

Closed SakuraMemoryKnight closed 4 years ago

SakuraMemoryKnight commented 4 years ago

extern const float surroundingKeyframeSearchRadius = 50.0; // key frame that is within n meters from current pose will be considerd for scan-to-map optimization (when loop closure disabled) extern const int surroundingKeyframeSearchNum = 50; // submap size (when loop closure enabled) // history key frames (history submap for loop closure) extern const float historyKeyframeSearchRadius = 7.0; // key frame that is within n meters from current pose will be considerd for loop closure extern const int historyKeyframeSearchNum = 25; // 2n+1 number of hostory key frames will be fused into a submap for loop closure

If I want to make the loop closure detection as good as possible, which of the above parameters should be increased? and which should be reduced? Thank you!

YushengWHU commented 4 years ago

for my case, I just reduced the historyKeyframeSearchRadius from 7.0 to 5.0. Sensor tested: Hesai 40 channel Lidar Speed: around 50km/h

gisbi-kim commented 4 years ago

BTW fyi, I integrated the global loop detector (scan context) into the LeGO-LOAM pipeline https://github.com/irapkaist/SC-LeGO-LOAM This global loop detector works even large drift exist (e.g., https://www.youtube.com/watch?v=p-NsVs8GATA&feature=youtu.be&t=436) and could enhance LeGO-LOAM's original radius search-based loop detection.

SakuraMemoryKnight commented 4 years ago

@YushengWHU @kissb2 Thank you for your reply!

stale[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.