Average rotation from 10 3x3 rotation matrices

1.1k Views Asked by At

Let's say I have 10 3x3 rotation matrices. They were sampled and are all close to each other. I know there is a true rotation matrix which is a statistical aggregation of the 10 matrices (average rotation!). How would I be able to calculate the approximated correct matrix from the aggregation of the 10?

1

There are 1 best solutions below

1
On BEST ANSWER

There are different answers depending on what you mean by "correct". One point of view is to think that the "true" rotation $R_{true}$ is perturbed by random changes with a known distribution, and $R_{measured}$ has a distribution that is dependent on $R_{true}$, $P(R_{measured}|R_{true})$. Once this is known, maximum likelihood can be applied to find the best $R_{true}$.

The technical issue is usually how to represent rotations, so that averaging will also yield a rotation. My favorite method is to consider the exponential representation $R = e^{[\bf{r}]_{\times }}$ where $\bf{r}$ is a vector and $[\bf{r}]_{\times}$ is the antisymmetric matrix that is equivalent to the cross product. Averaging the $\bf{r}$ over the measured rotations will give you a representation of an new rotation that is in some way an average of the original 10. In order to extract these vectors, given the original rotation matrices, please refer to this wikipedia entry, which has more details on the exponential representation.