Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
strmichael opened this issue Aug 8, 2016 · 1 comment
Open

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

strmichael opened this issue Aug 8, 2016 · 1 comment

Comments

@strmichael
Copy link

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
Copy link
Contributor

pomerlef commented Aug 8, 2016

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:

  • ICP is a local fine tuning algorithm. Any prior on the pose you have should be used to augment robustness
  • 20 deg. should be doable, but it depend of your environment and how much you translate. I would suggest you to scan faster. It seems to be the biggest difference between your setup and the velodyne.
  • the parameter force2D for the errorMinimizer should force the transformation on roll, pitch and z to zero during the minimization.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants