Converting a rotation matrix on SO(3) to an unsigned unit quaternion
It returns an unsigned unite quaternion in S^3 (the four-dimensional sphere) from a 3 \times 3 rotation matrix on SO(3).
rot2quat(X)
X |
A rotation matrix in SO(3). |
Firstly construct a system of linear equations by equating the corresponding components of the theoretical rotation matrix proposed by Prentice (1986), and given a rotation matrix. Finally, the system of linear equations are solved by following the tricks mentioned in second reference here in order to achieve numerical accuracy to get quaternion values.
A unsigned unite quaternion.
Anamul Sajib
R implementation and documentation: Anamul Sajib <sajibstat@du.ac.bd>
Prentice,M. J. (1986). Orientation statistics without parametric assumptions.Journal of the Royal Statistical Society. Series B: Methodological 48(2). //http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm
x <- rnorm(4) x <- x/sqrt( sum(x^2) ) ## an unit quaternion in R4 ## R <- quat2rot(x) R x rot2quat(R) ## sign is not exact as you can see
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.