Options "Bundle Adjustment" and "Proximitiy in Time" no use in rtabmap-ros
I've tried to enable the options "Bundle Adjustment" and "Proximitiy in Time" in rtabmap and it works well. However, when I turn to rtabmap-ros and tried to use the same options, it seems that there happens no difference whether I enabled the options or not (thus also different from the outputs of rtabmap with the same options enabled). I've tried directly use ros param to enable the option or use config_path to use the same config file as rtabmap, but no use.
As the attachment, the result of rtabmap after enable this option is far more better than rtabmap_ros. The database is created by same rosbag through data recorder.
Any way to solve the problem? Thank you very much.
To see if they have same dependencies (they should).
To know how exactly the parameters are called in rtabmap_ros, mouse over the checkbox in Preferences to show a tooltip with its code name. "Proximitiy in Time" would be RGBD/ProximityByTime, but there are more than one "Bundle Adjustment" parameter. If it is the one under Odometry panel (OdomF2M/BundleAdjustment), that parameter should be set to rgbd_odometry node, not rtabmap node:
$ rtabmap --params | grep Bundle
Param: OdomF2M/BundleAdjustment = "1" [Local bundle adjustment: 0=disabled, 1=g2o, 2=cvsba.]
Param: OdomF2M/BundleAdjustmentMaxFrames = "10" [Maximum frames used for bundle adjustment (0=inf or all current frames in the local map).]
Param: RGBD/LocalBundleOnLoopClosure = "false" [Do local bundle adjustment with neighborhood of the loop closure.]
Param: Vis/BundleAdjustment = "1" [Optimization with bundle adjustment: 0=disabled, 1=g2o, 2=cvsba.]
If you are not sure which node uses which parameter, set the parameter to both nodes. You can also do "rosrun rtabmap_ros rgbd_odometry --params" to see parameters specific to odometry, same for rtabmap node.
Note that replaying a rosbag could give slightly differences between runs, as not always the same frames will be processed.