Quaternion to Rotation

RISCV_DSP_ATTRIBUTE void riscv_quaternion2rotation_f32 (const float32_t *pInputQuaternions, float32_t *pOutputRotations, uint32_t nbQuaternions)
group Quaternion to Rotation

Conversions from quaternion to rotation.

Functions

RISCV_DSP_ATTRIBUTE void riscv_quaternion2rotation_f32 (const float32_t *pInputQuaternions, float32_t *pOutputRotations, uint32_t nbQuaternions)

Conversion of quaternion to equivalent rotation matrix.

The quaternion a + ib + jc + kd is converted into rotation matrix:

a^2 + b^2 - c^2 - d^2                 2bc - 2ad                 2bd + 2ac
            2bc + 2ad     a^2 - b^2 + c^2 - d^2                 2cd - 2ab
            2bd - 2ac                 2cd + 2ab     a^2 - b^2 - c^2 + d^2
Rotation matrix is saved in row order : R00 R01 R02 R10 R11 R12 R20 R21 R22

Format of rotation matrix

Parameters:
  • pInputQuaternions[in] points to an array of normalized quaternions

  • pOutputRotations[out] points to an array of 3x3 rotations (in row order)

  • nbQuaternions[in] number of quaternions in the array