Vector and Matrix Math
Description
Inertial measurement unit fusion driver math routines.
Functions |
|
void | sl_imu_normalize_angle (float *a) |
Normalize the angle ( -PI < angle <= PI )
|
|
void | sl_imu_matrix_multiply (float c[3][3], float a[3][3], float b[3][3]) |
Multiply two 3x3 matrices.
|
|
void | sl_imu_vector_normalize_angle (float v[3]) |
Normalize the angle of a vector.
|
|
void | sl_imu_vector_zero (float v[3]) |
Set all elements of a vector to 0.
|
|
void | sl_imu_vector_scale (float v[3], float scale) |
Scale a vector by a factor.
|
|
void | sl_imu_vector_scalar_multiplication (float r[3], float v[3], float scale) |
Multiply a vector by a scalar.
|
|
void | sl_imu_vector_add (float r[3], float a[3], float b[3]) |
Add two vectors.
|
|
void | sl_imu_vector_subtract (float r[3], float a[3], float b[3]) |
Subtract vector b from vector a.
|
|
float | sl_imu_vector_dot_product (float a[3], float b[3]) |
Calculate the dot product of two vectors.
|
|
void | sl_imu_vector_cross_product (float r[3], float a[3], float b[3]) |
Calculate the cross product of two vectors.
|
|
Function Documentation
◆ sl_imu_normalize_angle()
void sl_imu_normalize_angle | ( | float * |
a
|
) |
Normalize the angle ( -PI < angle <= PI )
- Parameters
-
a
The angle to be normalized
◆ sl_imu_matrix_multiply()
void sl_imu_matrix_multiply | ( | float |
c[3][3],
|
float |
a[3][3],
|
||
float |
b[3][3]
|
||
) |
Multiply two 3x3 matrices.
- Parameters
-
[out] c
The multiplication result, AB [in] a
Input vector A [in] b
Input vector B
◆ sl_imu_vector_normalize_angle()
void sl_imu_vector_normalize_angle | ( | float |
v[3]
|
) |
Normalize the angle of a vector.
- Parameters
-
v
The vector, which contains angles to be normalized
◆ sl_imu_vector_zero()
void sl_imu_vector_zero | ( | float |
v[3]
|
) |
Set all elements of a vector to 0.
- Parameters
-
v
The vector to be cleared
◆ sl_imu_vector_scale()
void sl_imu_vector_scale | ( | float |
v[3],
|
float |
scale
|
||
) |
Scale a vector by a factor.
- Parameters
-
v
The vector to be scaled [in] scale
The scale factor
◆ sl_imu_vector_scalar_multiplication()
void sl_imu_vector_scalar_multiplication | ( | float |
r[3],
|
float |
v[3],
|
||
float |
scale
|
||
) |
Multiply a vector by a scalar.
- Parameters
-
[out] r
The multiplied vector [in] v
The vector to be multiplied [in] scale
The scalar multiplicator value
◆ sl_imu_vector_add()
void sl_imu_vector_add | ( | float |
r[3],
|
float |
a[3],
|
||
float |
b[3]
|
||
) |
Add two vectors.
- Parameters
-
[out] r
The vectorial sum of the vectors, a+b [in] a
The first vector [in] b
The second vector
◆ sl_imu_vector_subtract()
void sl_imu_vector_subtract | ( | float |
r[3],
|
float |
a[3],
|
||
float |
b[3]
|
||
) |
Subtract vector b from vector a.
- Parameters
-
[out] r
The vectorial difference, a-b [in] a
Vector a [in] b
Vector b
◆ sl_imu_vector_dot_product()
float sl_imu_vector_dot_product | ( | float |
a[3],
|
float |
b[3]
|
||
) |
Calculate the dot product of two vectors.
- Parameters
-
[in] a
The first vector [in] b
The second vector
- Returns
- The dot product
◆ sl_imu_vector_cross_product()
void sl_imu_vector_cross_product | ( | float |
r[3],
|
float |
a[3],
|
||
float |
b[3]
|
||
) |
Calculate the cross product of two vectors.
- Parameters
-
[out] r
The cross product [in] a
The first vector [in] b
The second vector