0

Through a sensor I get the rotation between points in coordinate system A to points in coordinate system B. The measured rotations between the coordinate systems are not 100% identical due to the noise of the sensor.

How can I determine the average or optimal rotation matrix between the coordinate systems? Similar to this problem: stackoverflow: Averaging Quatenion, but contrary to that I do not want to use Quaternions, but try some least square approach.

Given: Rba(n): Rotation matrix from a to b, measured at n different time points

Wanted: Rba optimal

My approach: Minimization of the squared distance.

First I define n random points in space and apply the rotations to these points.

Application of the rotations on random points

And now I can calculate the rotation by means of the Krabsch algorithm using singular value decomposition to minimize the square distance between the input points and the transformed points. However, what I don't understand is that the calculated rotation matrix seems to be dependent on the input points. That is, I get different rotation matrices as a result for different input points, although the applied rotation matrices Rba(n) remain the same. Why is that? And what is the right way?

Gian Alessio
  • 95
  • 1
  • 9
  • Doesn't sound right. How many points are you using? What is your final error -- ie the sum of the squares of the lengths of the differences between the transformed -- with your computed R and T -- points and the original random points? – dmuir Jul 25 '21 at 15:59
  • @dmuir I have round about 300 Points. And the square distance between the transformed points and the points on which I applied the optimized R is 0.0003. Its not that I get completely different results, but everytime I run it, the optimized Rotationmatrix is slightly different, which does not make sense to me.. – Gian Alessio Jul 25 '21 at 17:08

0 Answers0