ICP_odom jumps

asked 2015-06-23 11:00:28 -0500

AbrahamAyala gravatar image

Hello, thanks for the easy to use implemenation of ICP you had developed. I am using an Ibeo Lidar to extract pointclouds and input them to the ICP mapper. The map seems to be consistent eventhough my wheel odometry information is not so reliable, Which seems to me that the ICP is performing a good registration. My problem now arises in the icp_odom output, which does not present a continuous trajectory and is bumpy (with abrupt changes or bumps). I am not sure if my problem is provoked because the Ibeo pointclouds are not so dense as other types of sensors like kinect which I have the next configuration In input filters : - SurfaceNormalDataPointsFilter: knn: 5 epsilon: 0.01 keepNormals: 1 keepDensities: 0 - ObservationDirectionDataPointsFilter - OrientNormalsDataPointsFilter

and for ICP.yaml atcher: KDTreeMatcher: knn: 5 # max distance to search for matching points around one point maxDist: 1.0 #approximation to use for the nearest-neighbor search epsilon: 1.0

errorMinimizer: PointToPointErrorMinimizer

transformationCheckers: - DifferentialTransformationChecker: minDiffRotErr: 0.001 minDiffTransErr: 0.01 smoothLength: 4 - CounterTransformationChecker: maxIterationCount: 40 - BoundTransformationChecker: maxRotationNorm: 0.80 maxTranslationNorm: 10.00

In some test that I had done, the icp_odom seems more reliable than my wheel dodometry in terms of the final goal point, so fusing the icp_odom with the wheel odometry with robot_pose_ekf gives me a trajectory that goes farther away than it should because of the error in the odometry. Any suggestions to improve the icp_odom???

Also I would like to know more about the epsilon parameter in the Kdtree, is not so clear to me.

Thanks in advance!

edit retag flag offensive close merge delete