Adding a manual loop constraint

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Adding a manual loop constraint

Alan
Hello,

I have seen this request asked about before, and I agree with the response that it would be best to get high quality depth images to close the loops automatically. However, I have a few data sets in which I would like to close loops in a part of the map that I cannot physically pass through (i.e. tall spaces with no means to traverse directly from bottom to top).

In the attached example it seems like there should be enough geometric information in regenerated laser scans to get a reasonable ICP registration of these two poses after a link is added. Note that I would have to increase the maximum distance when regenerating laser scans relative to the settings in my example screenshot. Or, if there was a way to set control points in the two depth images, a rough alignment could be done.  
I believe the problem in this case is that I am viewing the feature in these poses from a ~150degree different perspective so it is difficult to get matching features. Even if I set MinInliers and MaxFeatures to 0, I cannot add a link in the RTABMap Database Viewer.

Is there a way to edit or add links in a SQL database editor? I have tried using SQLiteStudio, and I can see the data for from_id and to_id but the transform (which I assume should be a quarternion) is not displaying correctly.

Another option would be to get some rope and lower the sensor down to close the loop. But it would be nice if I knew how to rescue less-than-ideal data.  

Thanks,
Alan



Reply | Threaded
Open this post in threaded view
|

Re: Adding a manual loop constraint

Alan
I was able to get it to work by giving it a starting transform from another link followed by manual adjustment in the db viewer. This corrected some drift over a long section of my map and now it looks great.

Still I think the lesson here is that I should get a drone setup working.
Reply | Threaded
Open this post in threaded view
|

Re: Adding a manual loop constraint

matlabbe
Administrator
Hi Alan,

At least, the scans should overlap. With latest rtabmap version, we can click on "Add" even if Reg/Strategy=1 (ICP-only) to get a rough transform. With the "..." button next to transform values displayed, we can then manually change position and orientation. When scans are close enough, I click on Refine, generally it works.

In SQL table, the "transform" field is a 3x4 transformation matrix (12 float of 32 bits binary data).

cheers,
Mathieu