wh200720041 / ssl_slam2

SSL_SLAM2: Lightweight 3-D Localization and Mapping for Solid-State LiDAR (mapping and localization separated) ICRA 2021
GNU General Public License v3.0
392 stars 71 forks source link

The effect of closed-loop detection is not good. How to adjust? #6

Open gongyue666 opened 3 years ago

gongyue666 commented 3 years ago

Thank you for sharing. I tested the l515 hand-held and found that the closed-loop effect was not very good. I guess this faction is hidden in“ bool MapOptimizationClass::optimizeGraph(int matched_id, int current_id)”,Unfortunately, I haven't understood it yet -.- ~ I wonder if there are any ways to improve the effect of Closed-loop Detection by sacrificing computational efficiency? Because my device has extra computing power

wh200720041 commented 3 years ago

Hi @gongyue666 :

The close-loop mainly depends on matching of geometric features. However, if you do not have enough geometric features, the matching may fail and cause wrong optimization process. If you found that problem, you can put some geometric markers such as box in the loop closure point. (do not put a plain walls as loop closure points since there is no geometric feature). That's what I can suggest based on your problem.

This project is mainly developed for mobile device with limited computational efficiency, so that the parameters are tuned based on low-computing platform. However, if you have enough computational resources, you can try to make the map resolution higher by reducing the resolution value in the launch file. And you can also reduce the threshold for loop closure detection decision: https://github.com/wh200720041/ssl_slam2/blob/8eeeba72581c4f073033c1583dff335c62a0ab47/include/mapOptimizationClass.h#L48

gongyue666 commented 3 years ago

Hi I modify the LOOPCLOSURE_THRESHOLD to a largger one,but always get a bad loop closure performance. and I found that laser_odom is always using 99% of a CPU which is Intel® Core™ i7-8550U CPU @ 1.80GHz × 8 . and the udpdate rate of the odom is 100ms per frame. does it give a bad function to the loop closure?

wh200720041 commented 3 years ago

Hi @gongyue666

You should reduce the the threshold to avoid false matching. Or you can disable the loop closure if the performance is still bad.

If you found the laser odom is costing too much computational power, you can change the map resolution to higher value