Transformation Matrix

Feel free to ask any question here
Post Reply
emardig
Posts: 3
Joined: Fri Jun 10, 2016 2:57 pm

Transformation Matrix

Post by emardig »

Hi all,

I am working on a project where I am registering two of the same object to calculate the 6 degrees of freedom of difference between the registered objects. This can be easily observed by the outputted transformation matrix. I understand the first 3x3 is a rotational matrix and the last column in translation but what is the exact formula being used in the 3x3 rotation matrix. I am trying to do a hand calculation to see match up the data and I cannot get the numbers to match.

1) what is the formula for the rotation matrix?
2) When doing a fine registration of two objects, is the reference box set at zero and the data is taken according to that object?
3) For Axis/Angle, are the numbers outputted based on where the rotation point is located for the axis portion? for the angle what angle is that outputting?

Please let me know if i need to supply more information if something doesn't make sense.
Thank you!
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Transformation Matrix

Post by daniel »

1) Formula? If you refer to how this matrix is generated, then you'll have to look at Horn's algorithm (see http://people.csail.mit.edu/bkph/papers ... tation.pdf)

2) The transformation is always expressed in the aligned cloud coordinate system, i.e. with the origin at (0,0,0) and with the default X(1,0,0), Y(0,1,0) and Z(0,0,1) vectors as basis.

3) Same here, the rotation center is the origin (0,0,0). For a given axis vector there's only two possibilities for the angle ('alpha' or '360 - alpha')
Daniel, CloudCompare admin
emardig
Posts: 3
Joined: Fri Jun 10, 2016 2:57 pm

Re: Transformation Matrix

Post by emardig »

Thank you for replying. I will review Horn's algorithm. However, I am struggling to extract the information I need.

I am trying to determine translation and rotation displacements (x,y,z, roll, pitch, and yaw), ideally in units of mm and degrees from a common origin. I would like to be able to use the cloud compare transformation matrix to obtain these values.

1) See attachment. When the two meshes/clouds are registered in CloudCompare, are the coordinate systems brought together to a shared or mean point? Or is the reference mesh fixed and the data set moved to the reference? Could you please explain the process for the fine registration (not what is included on the manual, since I have already read that)?

2) What is the axis/angle tab representing when a transformation is applied? Do the x, y, z numbers represent a vector of the translated object? What is the angle representing?
Attachments
Untitled.png
Untitled.png (167.67 KiB) Viewed 5094 times
daniel
Site Admin
Posts: 7717
Joined: Wed Oct 13, 2010 7:34 am
Location: Grenoble, France
Contact:

Re: Transformation Matrix

Post by daniel »

1) the data / aligned entity moves towards the reference one (the reference entity is never modified in CC's registration tools).

The Fine Registration tool is simply the ICP algorithm with minor improvements. This is an iterative process where the aligned cloud comes a little bit closer to the reference one at each iteration. It uses the Horn algorithm at each step (each point is paired with its nearest neighbor).

2) the axis is a 3d vector (x, y, z). The angle is the rotation angle about this axis. Axis and angle are equivalent to a rotation matrix. And the last vector is the final translation (applied after the rotation).
Daniel, CloudCompare admin
emardig
Posts: 3
Joined: Fri Jun 10, 2016 2:57 pm

Re: Transformation Matrix

Post by emardig »

Thank you, I will work off of that.
Post Reply