Re: Database Post Processing - Save refined links

Posted by matlabbe on
URL: http://official-rtab-map-forum.206.s1.nabble.com/Database-Post-Processing-Save-refined-links-tp6504p6528.html

Hi DavideR,

I fixed the problem with the graph not optimized the same way before closing databaseViewer and re-oppeing it.

When we change the graph, the global map should be also re-assembled on ROS side. To easier way to do this is when we modify the graph in DatabaseViewer, we clear all optimized stuff saved in the database to force rtabmap to re-update everything depending on the graph. This is done only one time though, if you re-use the same database in localization mode multiple times, the last optimized graph and map of the previous session will be used directly.

For the parameters modified in DatabaseViewer, they are not indeed pushed back to database, which is keeping the original parameters. I kinda like keeping the original parameters in the database for debugging purpose. Also, if someone changes the parameters and does nothing with them (e.g., changing registration strategy without refining all links), the database could have inconsistencies the next sessions if we push them, which may add bugs difficult to debug. If you want to modify them, it is possible in the launch files: parameters set in the launch files overwrite those saved in the database. Another way is to reprocess the database with the new parameters:
$ rtabmap-reprocess --Reg/Strategy 1 map.db output.db
that way we make sure that all data contained in the database has been reprocessed with the same parameters.

For the libpointmatcher config files, the only way right now is to copy/paste them in a post of a forum or in an issue on github.

cheers,
Mathieu