ni.com is currently undergoing scheduled maintenance.

Some services may be unavailable at this time. Please contact us for help or try again later.

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
(2,089 Views)

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

0 Kudos
Message 2 of 10
(2,057 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
(2,053 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
(2,047 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
(2,042 Views)

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

0 Kudos
Message 6 of 10
(2,037 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
(2,027 Views)

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

 

altenbach_0-1649793761704.png

 

0 Kudos
Message 8 of 10
(1,994 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,987 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,922 Views)