valid reprocess flow

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

valid reprocess flow

dnozik
This post was updated on .
Hi ,
I like to know if following flow steps are valid.
1.Rtabmap running mapping during playback. // data collection
2.after playback finished user will  call service function in CoreWrapper.cpp
                            PostProcessin():
                     
                                     2.1 rtabmap_.close();  // write all data into db file
                                     2.2 run  external reprocess tools on db file  // running externals tools on db file without fully closing rtabmap .
                                     2.3 rtabmap_.init // load new db file .


P.S.
Look like after rtabmap.close I am getting memory corruption during rtabmap.init

Thanks.

Reply | Threaded
Open this post in threaded view
|

Re: valid reprocess flow

matlabbe
Administrator
Hi,

you could do something like what is done in load_database service:

https://github.com/introlab/rtabmap_ros/blob/a97efff760720132ced2a607f384dc5d28a0d296/rtabmap_slam/src/CoreWrapper.cpp#L2859-L2991

There are plenty of things from the ros wrapper that need to be re-initialized. To avoid changing the code inside rtabmap node, you could create a python node calling "load_database" service to save the previous database and create a new one with a new name, call external rtabmap reprocessing/post-processing tools on the previous database file.

cheers,
Mathieu