Hi Alan,
If you have a sample database to share you know that is crashing everytime you do "Detect more loop closures", I could try to reproduce the problem here. The Global SBA option in RTAB-Map GUI is not available in DatabaseViewer. You may detect more loop closures in DatabaseViewer, save the database, then re-open it with RTAB-Map to do Global SBA before exporting.
With default settings, the detector assumes that all loop closures accepted are good ones. It would be better to increase the acceptation thresholds to reject all bad ones. In particular, if you open the "Core Parameters" view, you may increase
Vis/MinInliers.
RGBD/OptimizeMaxError could be lowered too so that loop closures causing very large deformations are rejected.
Another approach (if Optimizer/Strategy is 1 or 2) is to enable
Optimizer/Robust parameter (
Vertigo approach). You should set
RGBD/OptimizeMaxError to 0 if so (they are not compatible parameters). With this approach, bad and good loop closures would be all accepted. In the final optimization, the bad ones would be disabled by the robust optimization approach like in this
tutorial.
Personally, I still prefer the first approach, as the Vertigo approach doesn't always reject the bad loop closures if the odometry covariance is not correctly set.
cheers,
Mathieu