FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_quaternion.h
1
2#ifndef FSB_QUATERNION_H
3#define FSB_QUATERNION_H
4
5#include "fsb_types.h"
6
7namespace fsb
8{
9
24{
28 real_t qw;
32 real_t qx;
36 real_t qy;
40 real_t qz;
41};
42
55Quaternion quat_multiply(const Quaternion& q_a, const Quaternion& q_b);
56
64Vec3 quat_rotate_vector(const Quaternion& q_in, const Vec3& p_in);
65
76
85real_t quat_norm(const Quaternion& q_in);
86
92void quat_normalize(Quaternion& q_inout);
93
100Vec3 quat_log(const Quaternion& q_in);
101
108Quaternion quat_exp(const Vec3& v_in);
109
119Quaternion quat_boxplus(const Quaternion& quat, const Vec3& phi_delta);
120
130Vec3 quat_boxminus(const Quaternion& q_a, const Quaternion& q_b);
131
141Quaternion quat_circplus(const Quaternion& quat, const Vec3& phi_delta);
142
152Vec3 quat_circminus(const Quaternion& q_a, const Quaternion& q_b);
153
162
169Quaternion quat_rx(real_t rx);
170
177Quaternion quat_ry(real_t ry);
178
185Quaternion quat_rz(real_t rz);
186
191} // namespace fsb
192
193#endif
Vec3 quat_boxminus(const Quaternion &q_a, const Quaternion &q_b)
Get body-fixed rotation vector from quaternion difference.
Definition fsb_quaternion.cpp:108
Quaternion quat_ry(real_t ry)
Rotation about y-axis.
Definition fsb_quaternion.cpp:142
Quaternion quat_multiply(const Quaternion &q_a, const Quaternion &q_b)
Multiply two quaternions.
Definition fsb_quaternion.cpp:9
Quaternion quat_exp(const Vec3 &v_in)
Exponential of quaternion vector.
Definition fsb_quaternion.cpp:85
real_t quat_norm(const Quaternion &q_in)
2-norm of quaternion
Definition fsb_quaternion.cpp:39
Vec3 quat_log(const Quaternion &q_in)
Logarithm of unit quaternion.
Definition fsb_quaternion.cpp:70
Quaternion quat_conjugate(const Quaternion &q_in)
Conjugate of quaternion.
Definition fsb_quaternion.cpp:34
Quaternion quat_circplus(const Quaternion &quat, const Vec3 &phi_delta)
Add space frame rotation vector to quaternion.
Definition fsb_quaternion.cpp:117
Quaternion quat_identity()
Identity quaternion.
Definition fsb_quaternion.cpp:133
void quat_normalize(Quaternion &q_inout)
Normalize quaternion.
Definition fsb_quaternion.cpp:44
Quaternion quat_rx(real_t rx)
Rotation about x-axis.
Definition fsb_quaternion.cpp:138
Quaternion quat_rz(real_t rz)
Rotation about z-axis.
Definition fsb_quaternion.cpp:146
Quaternion quat_boxplus(const Quaternion &quat, const Vec3 &phi_delta)
Add body-fixed rotation vector to quaternion.
Definition fsb_quaternion.cpp:101
Vec3 quat_circminus(const Quaternion &q_a, const Quaternion &q_b)
Get space frame rotation vector from quaternion difference.
Definition fsb_quaternion.cpp:124
Vec3 quat_rotate_vector(const Quaternion &q_in, const Vec3 &p_in)
Rotate vector by quaternion.
Definition fsb_quaternion.cpp:18
Unit quaternion.
Definition fsb_quaternion.h:24
real_t qw
Scalar component.
Definition fsb_quaternion.h:28
real_t qy
Y component.
Definition fsb_quaternion.h:36
real_t qx
X component.
Definition fsb_quaternion.h:32
real_t qz
Z component.
Definition fsb_quaternion.h:40
3D vector
Definition fsb_types.h:27