how to debug RTAB-Map

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

how to debug RTAB-Map

yanmingz
Hi Mathieu,

I deeply appreciate  your help before.

Now I meet some problems when debugging.

I have a long image sequence, for example 2000 frames and the algorithms failed at the 1000th frame. Unfortunately the problem is also related to the 100th frame. So I have to replay the sequence whenever I want to repeat the problem. It may take a long time. Since the algorithm is multi-thread, I can't get the same scenario each time.

So I want to know
1. How can I ensure each time the input is the exactly the same? There was a single-thread version of RTAB-Map before. Does it still work nowadays?
2. Is there a tool to record all the variables when a new frame come in?, Just like in Matlab, you can save the whole environment. With this tool, I can load the saved environment and start from 1000th frame directly. Can the database saved in the process work for this purpose?

Thanks a lot.
Yanming

Reply | Threaded
Open this post in threaded view
|

Re: how to debug RTAB-Map

matlabbe
Administrator
Hi,

1. There is a c++ example without threads that you can get at the end of the C++ RGBD Mapping tutorial (main.cpp). If you have RGB-D images, you may want to use CameraRGBDImages class instead of CameraStereoImages.

2. You can stop mapping at some time (e.g., after 1000 frames), close the database, backup it somewhere and copy it back each time you want to restart from the latest state contained in the backup database. However, rtabmap will create a new map on restart (as it cannot assume that the robot is starting from the latest position). If a loop closure can be found on start, the new map will be merged with the old one in the database. When starting fresh the GUI with an old database, you will need to refresh the cache so you can view the previous map (see Open a previous mapping session section on the Kinect tutorial).

cheers,
Mathieu