rtabmap_ros produce cloud_map error

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

rtabmap_ros produce cloud_map error

mantouRobot
Hi, every one~
when i use rtabmap_ros in indigo to produce the cloud_map,  the groud is in the air, but my depth pointcloud of every frame is correct. Anybody kowns what's wrong?
Thanks~
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

matlabbe
Administrator
Hi,

if you are on a robot, make sure your TF is correct and that **frame_id** parameter corresponds on a frame on the floor (e.g., base_footprint), so that point clouds are transformed correctly. If you are doing hand-held scanning, the camera is always started at the origin of the map, so the ground will not be on the virtual grid. You can try "Odom/AlignWithGround" parameter to initialize the camera pose accordingly to the floor, so the ground is aligned with the virtual grid.
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

mantouRobot
Hi, thank u for reply~
      i am using rtabmap_ros on a robot, the robot gives the "/odom", "tf", "image", "depth_image", "camera_info" to the node of rtabmap in the mapping method, but a little difference of this robot with other robot like turtlebot, its rgb camera and depth camera is separated and them not in the same height. i have calibrated the cameras, the result applyed to the tf and camera info. but the cloud_map's groud in the air...
The "frame_id" is base_footprint, the AlignWithGround is new parameter not in the indigo? i have no ideas...
correct floorcloud_map: incorrect floor
       Can u give me any ideas? thanks a lot~
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

matlabbe
Administrator
I didn't know you were on a robot, you should not use Odom/AlignWithGround parameter anyway. It seems more a TF problem.

The camera_info used as input in rtabmap should be the one of the color camera, assuming that depth image is registered into the color camera.

It is difficult to see in the first picture, are the red points lie on the grid? or they are under the grid?

Is the second picture should be the same scene as in the first picture? The point cloud seems smaller.

Using DepthCloud rviz display, can you show the RGBD point cloud? setting depth and rgb images in that display.

Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

mantouRobot
Hi,
      thank u so much that i solve my problem. it's because of the camera_info is not so good that cause the problem. my camera_info's data is produced by my camera calibration.
      thank u for u reply~
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

mantouRobot
In reply to this post by matlabbe
Hi,
      sorry, i run into an another problem. i found that in the cloud_map the same thing can't good  fused to one thing, i try to slow down the robot speed and more correct odom to the rtabmap, but it did't matter. Could u give me some adivice or some parameters i should try to fuse obstacle better?
      thank u a lot~
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

matlabbe
Administrator
Well, if the odometry is drifting, the point cloud will too. On loop closure, the drift should be decreased.

If you have a laser scan, you can activate ICP refining to reduce odometry drift, see this setup: http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot#Kinect_.2B-_Odometry_.2B-_2D_laser

Make sure that TF between your frame used for odometry and the camera is also precise.

cheers
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

mantouRobot
Thank u.
      i found that when I use the visual odom, also the speed may be slow, but the result is better than the robot provide the odom.
      So my understand is right that visual odom if not loss will more precise that the robot?
      thank u.
Reply | Threaded
Open this post in threaded view
|

Re: rtabmap_ros produce cloud_map error

matlabbe
Administrator
That depends, you could still have good odometry using only wheel encoders if they are reliable and calibrated.

Visual odometry accuracy depends on the sensor used, if it is indoor or outdoor. Using a long range lidar can be also very precise.

cheers