ethz-asl / ethzasl_icp_mapping

3D mapping tools for robotic applications
273 stars 156 forks source link

yaw problem using icp-mapper, does it consider the odometry? #48

Open strmichael opened 8 years ago

strmichael commented 8 years ago

Hi,

I am trying to do 3D SLAM with pose graph with a hokuyo 2D laser and need to match the pointclouds of the nodes. Therefore I thought the ethzasl_icp_mapping is a good starting point.

The 3D sweeping of the hokuyo is similar to the railyard- and multifloor-mapping of the nifti. At the beginning I stand still, make a 3D sweep, publish the pointcloud, put the laser back in horizontal position, drive x meters, stand still, make a 3D sweep etc.

Currently I try to simulate the mapping with gazebo but it seems that when I yaw the robot about 20 degrees it doesn't match the point clouds anymore. Perhaps around 10 degrees are fine but I thought that this should work better. I tried different configurations, the nifti-railyard-icp-configuration, the velodyne-icp-configuration, tried my own configurations but it doesn't seem to get much better. Additionally when entering a small corridor from a large room it also seems to disturb the matcher. Shouldn't it consider the odometry to get an initial guess between 2 pointclouds where the matcher should start to look? Is there a bagfile of the nifti-railyard- or nfiti-multifloor-mapping available to find out what I do wrong?

Because my tries didn't work very well, I thought perhaps it is possible to use the 2D laser for matching the 2D information with the created 3D map. Is that possible (because it doesn't seem to work)? When I use the VLP-16 instead of the hokuyo everything works fine but I don't have a 3D laser, just the hokuyo.

Do you have any suggestions what I do wrong or what I could do to improve the pointcloud matching in my case?

Thanks in advance.

pomerlef commented 8 years ago

In general, it is very hard for me to do support for specific applications because it would require me to much time to analyse your data and figure out what are the particularities of your setup, noise on your data and environments.

In general:

For a more details explanation on different use cases, I suggest you to read: A Review of Point Cloud Registration Algorithms for Mobile Robotics.