Ask Your Question
0

Rtabmap behaves as 3DOF even though 6DOF is true

asked 2019-08-08 15:04:55 -0500

achille gravatar image

updated 2019-08-12 17:55:34 -0500

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?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2019-08-16 09:43:28 -0500

matlabbe gravatar image

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).

edit flag offensive delete link more

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?

achille gravatar imageachille ( 2019-08-18 17:20:46 -0500 )edit

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).

matlabbe gravatar imagematlabbe ( 2019-08-18 17:51:19 -0500 )edit

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

achille gravatar imageachille ( 2019-08-18 17:54:29 -0500 )edit
-1

answered 2019-08-08 16:13:55 -0500

pring gravatar image

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

edit flag offensive delete link more

Comments

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

achille gravatar imageachille ( 2019-08-08 17:29:21 -0500 )edit

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

Stats

Asked: 2019-08-08 15:04:55 -0500

Seen: 16 times

Last updated: Aug 16