LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

3D measuring - Iterative closest points algorithm

Hello,

 

Is there someone knowledgeable in the filed of 3D measuring and so on...? I have trouble programming the ICP algorithm and would really appreciate some help.

I think I understand the theory, but my implementation isn´t working at the moment..

 

Thank you

0 Kudos
Message 1 of 10
(1,205 Views)

Do you have a typical set of 2 data clouds for testing.

0 Kudos
Message 2 of 10
(1,173 Views)

I have created some basic 2D and 3D shapes for testing. Didn´t use the Stanford bunny or other point cloud.

0 Kudos
Message 3 of 10
(1,169 Views)

Well, the actual meaning of my question was if you could share a typical dataset. i.e. attach it here.

 

Lets start with the 2D problem (fewer degrees of freedom)> I assume you allow translation and rotation.

0 Kudos
Message 4 of 10
(1,163 Views)

Sure, I´ll attach them. Fix is the stationary one and Mov is to which I apply the calculated translation and rotation. Sadly the translation vector seem to be always wrong. Don´t know about the rotation matrix. I have tried to figure out the mistake, but no luck so far. The Mov file is just rotated and translated version of the first one (checked on that).

Download All
0 Kudos
Message 5 of 10
(1,158 Views)

Can we assume that the points of the two sets are ordered the same way?

0 Kudos
Message 6 of 10
(1,153 Views)

Yes, here they are in order. Though the real data will not be, so my application needs to work for both ordered and unordered clouds. I have coded a function to assign each point from Fix cloud a coresponding point in Mov cloud. So that I can minimize the error function based on euclidian distances between the corespondencees.

0 Kudos
Message 7 of 10
(1,143 Views)

A very primitive attempt using Levenberg-Marquardt (assuming points are ordered).

 

altenbach_0-1649793761704.png

 

0 Kudos
Message 8 of 10
(1,110 Views)

Many thanks for your idea and your time spent on this. I will look into it and hopefully get something out of it for my work.

0 Kudos
Message 9 of 10
(1,103 Views)

It would be trivial to rewrite the model to output N distances. The Y input would then be an array of N zeroes, i.e. you want to translate/rotate until all pairwise distances are as small as possible.

0 Kudos
Message 10 of 10
(1,038 Views)