ethz-asl / laser_slam

This package provides an end-to-end system to laser-based graph SLAM using laser point clouds.
BSD 3-Clause "New" or "Revised" License
250 stars 114 forks source link

Laser SLAM crashing #28

Open vkee opened 7 years ago

vkee commented 7 years ago

When running on the KITTI datasets, the laser_mapper node crashes and respawns every so often, restarting mapping and state estimation. It seems to be linked to exceptions or errors being related to ICP convergence issues.

I think performance could be greatly increased by catching the exceptions and then relying on odometry rather than letting the node die and then respawning it.

rdube commented 7 years ago

Thanks for reporting this! Could you please copy and paste the error log?

vkee commented 7 years ago

I've gotten a variety of them - here's the last one that I got.

I0728 14:00:16.570504   506 incremental_estimator.cpp:104] Took 2.078 ms to create loop closures sub maps.
I0728 14:00:16.570518   506 incremental_estimator.cpp:106] Creating loop closure ICP.
terminate called after throwing an instance of 'PointMatcher<float>::ConvergenceError'
  what():  no outlier to filter
rdube commented 7 years ago

Ok that occurs when doing an ICP step after a loop closure is detected. In our latest development we turned this option off by setting the following parameter to false:

https://github.com/ethz-asl/segmatch/blob/master/laser_mapper/launch/kitti/kitti_loop_closure.yaml#L108

In general, relying on the segment centroids already provide a satisfying transformation. Could you maybe try turning this parameter to false?