Open the existing database and continuously scan the room.

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

Open the existing database and continuously scan the room.

Suzy
Hello,

I am using a Windows standalone version of RTAB-MAP.
Thanks so much for your efforts on it.

Here are two captures of scanned databases.
1st round scanning
2rd round scanning
I scanned first round of whole room, and then closed the database and saved it. For safety, I copied the 1st database and renamed it.
Then, I opened the 1st database to continuously scan second round of the room.
But, as you can see, the second database is seems like without global optimization. I am sure I opened the database in global optimization mode.

I think that maybe I have done some mistakes during storing, because sometime my second saved database is fine. In that case, my third round scanned database has problem.
Is there any clue on it? Thanks so much~

Have a nice day.
Reply | Threaded
Open this post in threaded view
|

Re: Open the existing database and continuously scan the room.

matlabbe
Administrator
Hi,

g2o and TORO optimizations manage poorly (very poorly sometimes like in your second screenshot) multi-session maps. I've found GTSAM working pretty well most of the time (correctly assemble the maps together). Unfortunately, GTSAM is not available in the Windows binaries yet (I'm still struggling with GTSAM compilation issues on Windows 10/Visual studio 2015).

What you can try however is to change the solver/optimizer approach used by g2o to see if another one would give better results. Go in Preferences (Advanced)->Optimizer, and try different combinations of g2o's solver and optimization algorithm. The optimization error parameter can be set to 0 too. Under Graph Optimization panel, you can change the optimization approach between TORO and g2o too. Just change the parameters and click on Edit->Download graph only (optimized) in the main window to re-optimize the map.

Well, this could be caused by a wrong loop closure too. You may do Tool->Edit Database..., open Constraints and Graph views (see View menu) and browse the loop closures in Constraints View. If one is bad, you can reject it (when you close the dialog you will be asked to save the changes to database).

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

Re: Open the existing database and continuously scan the room.

Suzy
Hello,

Thanks so much.
It helps a lot.
Here is the revised result based on your help.



I changed the solver to another one in g2o, and the result is improved.
Maybe it is caused by a wrong loop, I will check the loop closure to revise loop closure manually.

I still have one question. Is it possible to make my scanned data regular? Like here, I hope my scanned room is a regular cubic shape.

Thanks again for your help.
Reply | Threaded
Open this post in threaded view
|

Re: Open the existing database and continuously scan the room.

matlabbe
Administrator
Hi Suzy,

The curved shape of the scanned map is caused by odometry drift. To reduce odometry drift, scan slowly and avoid scanning areas where there are no visual features (e.g., only a white wall in camera field of view). These areas can cause big drifts that are difficult to correct even when there are loop closures. You can increase the minimum required features for transformation computation so scanning will stop tracking when you reach a featureless areas, forcing you to go back and try to scan differently (to have more visual features).



The curved shape of a map can be also caused by poor camera calibration, often seen with stereo cameras. This may not be your problem with the Kinect v2.

We cannot ensure that a rectangular room would be rectangular.

cheers,
Mathieu