interactive_slam
interactive_slam copied to clipboard
Adding a loop constraint doesn't lead to corresponding fix to the map
Hello, Thanks for creating this fabulous tool.
I am trying to fix a map I generated using hdl_graph_slam for a nearly 1.2 km x 0.7 km loop. The generated map had major aberrations along the z-axis, as also some deficiencies in xy plane.
I have used interactive_slam for some maps in past. Often, adding manual loop constraints shows significant fixes in the map. However at times, it simply adds an additional edge between the selected nodes while leaving them where they were (and hence the map stays as before: erratic) or sometimes just moving them partially.
I am sure there is a constraint conflicting the new loop addition, but a clearer idea might help me fix the map better.
This is the loop I want to map!
As visible, the long edge at top center is unintentional, the nodes are supposed to be close together, and were so constrained manually.
Hi @abhi5691 , This behavior is caused by the robust kernel that prevents to largely change the estimate of the pose graph. Possible solutions are:
- choose "NONE" kernel when inserting a loop edge so that the edge will not be ignored
- perform graph optimization multiple times (
Main menu -> Graph -> Optimize
)
I found that a recent update introduced a bug that disables pose graph optimization after manual loop closing. I fixed this bug and pushed an updated code that will be merged soon.
This is also happening to me, even with the updated version. It seems to have something to do with floor constraints, as removing these makes the map immediately snap to the manual loop closure. Not sure what is going on.