Convert quaternion to rotation vector (radians)
Convert Quaternion to Rotation Vector in Radians
Convert a random quaternion scalar to a rotation vector in radians
quat = quaternion(randn(1,4)); rotvec(quat)
ans = 1×3 1.6866 -2.0774 0.7929
quat — Quaternion to convert
scalar | vector | matrix | multidimensional array
Quaternion to convert, specified as scalar quaternion, vector, matrix, or multidimensional array of quaternions.
rotationVector — Rotation vector (radians)
Rotation vector representation, returned as an N-by-3
matrix of rotations vectors, where each row represents the [X Y Z] angles of
the rotation vectors in radians. The ith row of
rotationVector corresponds to the element
The data type of the rotation vector is the same as the underlying data
All rotations in 3-D can be represented by a three-element axis of rotation and a rotation angle, for a total of four elements. If the rotation axis is constrained to be unit length, the rotation angle can be distributed over the vector elements to reduce the representation to three elements.
Recall that a quaternion can be represented in axis-angle form
where θ is the angle of rotation and [x,y,z] represent the axis of rotation.
Given a quaternion of the form
you can solve for the rotation angle using the axis-angle form of quaternions:
Assuming a normalized axis, you can rewrite the quaternion as a rotation vector without loss of information by distributing θ over the parts b, c, and d. The rotation vector representation of q is
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Introduced in R2019b