Learn R Programming

Directional (version 4.0)

Converting a rotation matrix on SO(3) to an unsigned unit quaternion: Converting a rotation matrix on SO(3) to an unsigned unit quaternion

Description

It returns an unsigned unite quaternion in \(S^3\) (the four-dimensional sphere) from a \(3 \times 3\) rotation matrix on SO(3).

Usage

rot2quat(X)

Arguments

X

A rotation matrix in SO(3).

Value

A unsigned unite quaternion.

Details

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.

References

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

See Also

quat2rot, rotation, Arotation \ link{rot.matrix}

Examples

Run this code
# NOT RUN {
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
# }

Run the code above in your browser using DataLab