I'm testing rtabmap with a bumblebee2 stereo camera mounted on a clearpath jackal ugv in an indoor environment, with the stereo_img_proc and stereo_odometry nodes publishing to rtabmap. Rtabmap seems to be failing frequently with the following error:
[FATAL] (2018-08-02 13:10:38.767) OptimizerG2O.cpp:533::optimize() Condition (optimizer.verifyInformationMatrices()) not met!
terminate called after throwing an instance of 'UException'
what(): [FATAL] (2018-08-02 13:10:38.767) OptimizerG2O.cpp:533::optimize() Condition (optimizer.verifyInformationMatrices()) not met!
[rtabmap-1] process has died [pid 9352, exit code -6, cmd /opt/ros/kinetic/lib/rtabmap_ros/rtabmap --delete_db_on_start left/image_rect:=/camera/left/image_rect_color right/image_rect:=/camera/right/image_rect left/camera_info:=/camera/left/camera_info right/camera_info:=/camera/right/camera_info rgbd_image:=/camera/rgbd_image odom:=/odometry/filtered __name:=rtabmap __log:=/home/administrator/.ros/log/4b4b82e8-967d-11e8-8a19-e1e488c6b69e/rtabmap-1.log].
log file: /home/administrator/.ros/log/4b4b82e8-967d-11e8-8a19-e1e488c6b69e/rtabmap-1*.log
is /odometry/filtered already published by jackal? You remap odometry output of stereo_odometry to /odometry/filtered, you may have 2 nodes publishing under the same name. Normally, odometry covariance coming from rtabmap_ros/stereo_odometry should be already compatible with g2o. The only thing I see is that rtabmap is receiving both /odometry/filtered from jackal and stereo_odometry, where covariance from jackal's odometry may not be compatible with g2o. Can you remove the remap of stereo_odometry? and set rtabmap to subscribe to odometry from stereo_odometry alone?
For TF, can you show your TF tree when everything is started?