Robotics StackExchange | Archived questions

Rtabmap behaves as 3DOF even though 6DOF is true

I have a mobile base mounted with several RGBD cameras and a 2D lidar. I use the wheel encoders for odometry, which is fed into rtabmap via the odom_frame_id. This all works very well, localizing the robot in the 2D plane, but the localization doesn't update when the robot is tilted or lifted out of the plane. I supply appropriate covariances for odometry but they don't seem to affect this. When rtabmap is launched, the robot does localize to the same height, but that never changes.

What are some solutions for fixing this and why does this happen? Would sending odometry messages with fixed covariances help instead of passing the tf2 frame? Or is the only way to fuse with visual odometry or with an additional IMU?

Asked by achille on 2019-08-08 15:04:55 UTC

Comments

Answers

Note that rtabmap is simply a package that uses ROS. Checkout the rtabmap_ros github to get a better answer.

Asked by pring on 2019-08-08 16:13:55 UTC

Comments

this is not an answer. The github is for issues, not for questions.

Asked by achille on 2019-08-08 17:29:21 UTC

This all works very well, localizing the robot in the 2D plane, but the localization doesn't update when the robot is tilted or lifted out of the plane.

When Reg/Force3DoF is enabled, it is assumed that the robot won't move in 3D (only x,y and yaw). If it is tilted, this will cause some problems with scan matching too as the 2D lidar scan won't match the 2D map, so localization won't be possible. If you want to do 6DoF mapping, then remove the 2D lidar from slam, only use the cameras. To estimate the tilt and elevation, you would need an IMU and/or visual odometry to fuse with wheel odometry (e.g., with robot_localization pkg).

Asked by matlabbe on 2019-08-16 09:43:28 UTC

Comments

Reg/Force3DOF is set to true (mentioned in title). Are you saying that even in that case, a 2D lidar is not useful for Rtabmap? Or only if I fuse it with wheel and IMU?

Asked by achille on 2019-08-18 17:20:46 UTC

No if Reg/Force3DoF is true, you have advantage to use 2D lidar. Wheel odometry would be also 2D. For IMU, you may only fuse the yaw value, to keep the odometry pose 2D (x,y,yaw).

Asked by matlabbe on 2019-08-18 17:51:19 UTC

Apologies - it's set to false so I'm mapping 6D

Asked by achille on 2019-08-18 17:54:29 UTC