Ask Your Question

Rtabmap: map->odom does not update

asked 2022-04-13 07:22:13 -0500

Per Edwardsson gravatar image

updated 2022-04-13 07:23:42 -0500

I use RtabMap for mapping, an EKF for odometry and nav2 for autonomous movement. Everything works, but RtabMap doesn't compensate odometry drift in the map->odom transform. The odom frame is always glued to the map frame. I have set publish_tf to true, and map is being generated which looks good, until odometry drift means it doesn't anymore. Would love for Rtabmap to compensate that drift.

Running ROS2 Foxy, feeding RtabMap with 2 RGBD cameras. Built from source, using tag 0.20.15-foxy.

rtabmap params:

subscribe_depth: false
subscribe_rgb: False
subscribe_stereo: False
subscribe_rgbd: True
subscribe_scan: False
approx_sync: True
odom_frame_id: "odom"
map_always_update: False
map_empty_ray_tracing: True
rgbd_cameras: 2
database_path: "/hugoros2/rtabmap.db"
publish_tf: True
Grid/RayTracing: "True"
Grid/RangeMax: "4.0"
Grid/CellSize: "0.1"
Grid/NoiseFilteringRadius: "0.1"
Grid/NoiseFilteringMinNeighbors: "6"
Grid/NormalK: "20"
Grid/DepthDecimation: "1"
GridGlobal/Eroded: "True"
GridGlobal/FootprintRadius: "0.6"
RGBD/AngularUpdate: "0.2"
RGBD/LinearUpdate: "0.2"
RGBD/OptimizeFromGraphEnd: "True"
RGBD/NeighborLinkRefining: "True"
Mem/IncrementalMemory: "True"
Mem/ReduceGraph: "True"
# RGBD/CreateOccupancyGrid: "True"
Reg/Force3DoF: "True"
Kp/MaxFeatures: "200"
Stereo/MaxDisparity: "200"
Vis/CorFlowMaxLevel: "5"
Vis/EstimationType: "0" # should be 0 for multi-camera input
Vis/CorGuessWinSize: "0" # should be 0 for multi-camera input
Odom/ResetCountdown: "10"
OdomF2M/BundleAdjustment: "0" # should be 0 for mult-camera input
SURF/GpuVersion: "True"
Mem/NotLinkedNodesKept: "True"
Mem/BinDataKept: "True"
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2022-05-09 13:21:43 -0500

matlabbe gravatar image

It is like no loop closures are detected or accepted. There should be warnings in terminal when loop closures a rejected, telling why. IF you can share the database, we can take a look to see if rtabmap indeed missed or rejected some loop closures.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2022-04-13 07:22:13 -0500

Seen: 68 times

Last updated: May 09