MBot Software Library
v1.0
An API documentation to mbot_firmware repository
|
Collection of quaternion manipulation functions. More...
#include <stdio.h>
#include <math.h>
#include <rc/math/quaternion.h>
#include "algebra_common.h"
Functions | |
double | rc_quaternion_norm (rc_vector_t q) |
Returns the length of a quaternion vector by finding its 2-norm. More... | |
double | rc_quaternion_norm_array (double q[4]) |
Returns the length of a quaternion vector by finding its 2-norm. More... | |
int | rc_normalize_quaternion (rc_vector_t *q) |
Normalizes a quaternion in-place to have length 1.0. More... | |
int | rc_normalize_quaternion_array (double q[4]) |
Normalizes a quaternion in-place to have length 1.0. More... | |
int | rc_quaternion_to_tb (rc_vector_t q, rc_vector_t *tb) |
Calculates 321 Tait Bryan angles in array order XYZ with operation order 321(yaw-Z, pitch-Y, roll-x). More... | |
int | rc_quaternion_to_tb_array (double q[4], double tb[3]) |
Calculates 321 Tait Bryan angles in array order XYZ with operation order 321(yaw-Z, pitch-Y, roll-x). More... | |
int | rc_quaternion_from_tb (rc_vector_t tb, rc_vector_t *q) |
Calculates quaternion vector q from tait-bryan angles tb. More... | |
int | rc_quaternion_from_tb_array (double tb[3], double q[4]) |
Calculates quaternion vector q from tait-bryan angles tb. More... | |
int | rc_quaternion_conjugate (rc_vector_t q, rc_vector_t *c) |
Calculates conjugate of quaternion q. More... | |
int | rc_quaternion_conjugate_inplace (rc_vector_t *q) |
Calculates conjugate of quaternion q and overwrites the old q. More... | |
int | rc_quaternion_conjugate_array (double q[4], double c[4]) |
Calculates conjugate of quaternion q. More... | |
int | rc_quaternion_conjugate_array_inplace (double q[4]) |
Calculates conjugate of quaternion q and overwrites the old q. More... | |
int | rc_quaternion_imaginary_part (rc_vector_t q, rc_vector_t *img) |
Populates vector i with the imaginary components ijk of of quaternion vector q. More... | |
int | rc_quaternion_multiply (rc_vector_t a, rc_vector_t b, rc_vector_t *c) |
Calculates the quaternion Hamilton product ab=c. More... | |
int | rc_quaternion_multiply_array (double a[4], double b[4], double c[4]) |
Calculates the quaternion Hamilton product ab=c. More... | |
int | rc_quaternion_rotate (rc_vector_t *p, rc_vector_t q) |
Rotates the quaternion p by quaternion q with the operation p'=qpq*. More... | |
int | rc_quaternion_rotate_array (double p[4], double q[4]) |
Rotates the quaternion p by quaternion q with the operation p'=qpq*. More... | |
int | rc_quaternion_rotate_vector (rc_vector_t *v, rc_vector_t q) |
Rotate a 3D vector v in-place about the origin by quaternion q by converting v to a quaternion and performing the operation p'=qpq*. More... | |
int | rc_quaternion_rotate_vector_array (double v[3], double q[4]) |
Rotate a 3D vector v in-place about the origin by quaternion q by converting v to a quaternion and performing the operation p'=qpq*. More... | |
int | rc_quaternion_to_rotation_matrix (rc_vector_t q, rc_matrix_t *m) |
Converts a normalized quaternion to a 3x3 orthogonal rotation matrix. More... | |
Collection of quaternion manipulation functions.
Arrays are assumed to contain the quaternion components in the order [Wijk]