I am currently using the ICP to register Lidar point clouds in two frames. The problem is that the translation value calculated by the difference of average point values of utilized points in two frames seems not precise enough. Is there any alternative solutions to calculate the translation?

  • 1
    $\begingroup$ Welcome s2unn. Can you edit your post and elaborate on your algorithm? It doesn't sound like standard ICP to me. It sounds like you do this: 1: segment the scene into objects. 2: for each object, find the closest matching points from the previous scan. 3: calculate the translation between each pair. 4: take the average translation. Also, what kind of robot is this on, and how can you be sure there is only translation and no rotation between scans. $\endgroup$ – Ben May 10 '19 at 22:36

If you are trying to register two point clouds without a proper initial guess on the alignment (6dof) than it is a global registration problem. The simplest way is combining 3D feature matchings with ICP. Find the initial guess by 3D feature matching and refine it by point-to-point or point-to-plane ICP. Open3D has some example code on that.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.