PRBonn/LocNDF

Is it possible to do frame-frame registeration by using your Scan Registration Method?

Opened this issue · 3 comments

Is it possible to do frame-frame registeration by using your Scan Registration Method?

@Dlemand Shouldn't be a problem. One would need to train a ndf from only one scan and register the second scan to it. In case the map is very sparse and the unsupervised areas output a lot of random values I would recommend to store additionally a coarse binary grid (or octree...) to check which parts in the map have been supervised. By this one can discard the points that register in areas of the ndf which have not been supervised. Let me know if you try it, i'm curious!

@louis-wiesmann I attempted to train your model using a single lidar frame and applied it for frame-to-frame registration. Specifically, I employed the ref_frame to train the Signed Distance Function (SDF) and performed inference on the src_frame. I indeed utilized the ref_frame points and its interpolated points to construct a Voxgrid (representing areas of supervision) to filter the src_points not included in the voxel. However, for frames with minimal movement (1-frame interval), the src_frame tends to remain close to the initial position. Conversely, for frames with significant movement (10-frame interval), the src_frame tends to iterate in the wrong direction. Could the areas of supervision be too small? I observed that the unfiltered src_points in the voxel seem to lack substantial shape information.

If the initial guess is too bad ICP might diverge. This is just a problem of ICP rather than the map representation. What ICP assumes is that when dragging the points to the closest surface at some point we converge to the correct position. But having a to bad initial guess can lead to get stuck in a local minima or diverging completely.