GibsonEnv icon indicating copy to clipboard operation
GibsonEnv copied to clipboard

gibson-ros pointcloud registration

Open shantanusingh16 opened this issue 5 years ago • 0 comments

Hi, I'm trying to use turtlebot2 in gibson with ros by adapting the example script as follows:

turtlebot_depth.py

I've simply used the TF Broadcaster to publish data for the camera each timestep as well. I run the above script and simply issue angular velocity of 0.1 to the robot continuously, but zero linear velocity. Now I use the depth and camera_info information to generate a point cloud using image_pipeline package in ros using the depth_image_proc/point_cloud_xyz nodelet.

When I try to visualize the point cloud in rviz, the first issue I notice is that the z-axis appears inverted. Screenshot from 2020-07-25 02-06-17

Now I try to read the pointclouds being published in a separate script and combine two adjacent ones to test registration. I use the following code which uses the stamp of the pointcloud message header to fetch the relevant transform for the camera and then transforms the pointcloud points accordingly before merging them into one.

pointcloud_registration.py

The problem here is that the merged point clouds do not overlap properly. There is a significant difference in the depth of surfaces for two adjacent frames for small rotations (0.1 radians) of the bot. The following images should help highlight the difference: perspective_poor_overlap top_poor_overlap

Can someone please let me know how to fix this issue?

shantanusingh16 avatar Jul 24 '20 20:07 shantanusingh16