FancySafeBot 0.0.1
A safe robotics library
Loading...
Searching...
No Matches
fsb_motion.h
1
2#ifndef FSB_MOTION_H
3#define FSB_MOTION_H
4
5#include "fsb_quaternion.h"
6#include "fsb_types.h"
7
8namespace fsb
9{
10
32
48
67
77Vec3 vector_add(const Vec3& v_a, const Vec3& v_b);
78
88Vec3 vector_subtract(const Vec3& v_a, const Vec3& v_b);
89
99Vec3 vector_scale(real_t scalar, const Vec3& vec);
100
110Vec3 vector_multiply_elem(const Vec3& v_a, const Vec3& v_b);
111
121Vec3 vector_cross(const Vec3& v_a, const Vec3& v_b);
122
132real_t vector_dot(const Vec3& v_a, const Vec3& v_b);
133
142real_t vector_norm(const Vec3& vec);
143
153
161
178Transform coord_transform(const Transform& transf_a, const Transform& transf_b);
179
196Transform coord_transform_inverse(const Transform& transf_a, const Transform& transf_b);
197
205Vec3 coord_transform_position(const Transform& transf, const Vec3& pos);
206
214Transform coord_transform_apply_error(const Transform& transf_initial, const MotionVector& offset);
215
224coord_transform_get_error(const Transform& transf_initial, const Transform& transf_final);
225
234coord_transform_apply_body_offset(const Transform& transf_initial, const MotionVector& offset);
235
244coord_transform_get_body_offset(const Transform& transf_initial, const Transform& transf_final);
245
257 const Transform& parent_transf, const MotionVector& parent_velocity,
258 const Transform& motion_transf, const MotionVector& motion_velocity);
259
273 const Transform& parent_transf, const MotionVector& parent_velocity,
274 const MotionVector& parent_acceleration, const Transform& motion_transf,
275 const MotionVector& motion_velocity, const MotionVector& motion_acceleration);
276
285motion_transform_space_to_body(const Transform& pose, const MotionVector& space_motion);
286
295motion_transform_body_to_space(const Transform& pose, const MotionVector& body_motion);
296
307 const Transform& parent_transf, const MotionVector& parent_velocity,
308 const Vec3& child_position);
309
321 const Transform& parent_transf, const MotionVector& parent_velocity,
322 const MotionVector& parent_acceleration, const Vec3& child_position);
323
328} // namespace fsb
329
330#endif
Vec3 vector_subtract(const Vec3 &v_a, const Vec3 &v_b)
Vector subtraction.
Definition fsb_motion.cpp:193
Vec3 vector_scale(real_t scalar, const Vec3 &vec)
Scale vector.
Definition fsb_motion.cpp:198
MotionVector motion_transform_space_to_body(const Transform &pose, const MotionVector &space_motion)
Space to body-fixed motion.
Definition fsb_motion.cpp:173
MotionVector motion_transform_body_to_space(const Transform &pose, const MotionVector &body_motion)
Body-fixed to space frame motion.
Definition fsb_motion.cpp:182
Transform coord_transform(const Transform &transf_a, const Transform &transf_b)
Apply coordinate transform.
Definition fsb_motion.cpp:30
Transform coord_transform_apply_body_offset(const Transform &transf_initial, const MotionVector &offset)
Apply motion vector offset to transform in mobile frame.
Definition fsb_motion.cpp:90
MotionVector coord_transform_get_error(const Transform &transf_initial, const Transform &transf_final)
Get motion vector offset between two coordinate transforms in space frame.
Definition fsb_motion.cpp:82
real_t vector_dot(const Vec3 &v_a, const Vec3 &v_b)
Vector dot product.
Definition fsb_motion.cpp:216
Vec3 vector_multiply_elem(const Vec3 &v_a, const Vec3 &v_b)
Element-wise vector multiplication.
Definition fsb_motion.cpp:203
MotionVector motion_transform_velocity_position(const Transform &parent_transf, const MotionVector &parent_velocity, const Vec3 &child_position)
Get velocity of child frame with respect to a common frame given transform between parent and child f...
Definition fsb_motion.cpp:151
Transform coord_transform_apply_error(const Transform &transf_initial, const MotionVector &offset)
Apply motion vector offset to transform in space frame.
Definition fsb_motion.cpp:75
MotionVector coord_transform_get_body_offset(const Transform &transf_initial, const Transform &transf_final)
Get motion vector offset between two coordinate transforms in mobile frame.
Definition fsb_motion.cpp:98
real_t vector_norm(const Vec3 &vec)
Vector norm.
Definition fsb_motion.cpp:221
MotionVector motion_transform_acceleration(const Transform &parent_transf, const MotionVector &parent_velocity, const MotionVector &parent_acceleration, const Transform &motion_transf, const MotionVector &motion_velocity, const MotionVector &motion_acceleration)
Get acceleration of child frame with respect to a common frame given relative motion between parent a...
Definition fsb_motion.cpp:120
MotionVector motion_transform_acceleration_position(const Transform &parent_transf, const MotionVector &parent_velocity, const MotionVector &parent_acceleration, const Vec3 &child_position)
Get acceleration of child frame with respect to a common frame given transform between parent and chi...
Definition fsb_motion.cpp:159
Transform transform_inverse(const Transform &transf)
Get inverse of transform.
Definition fsb_motion.cpp:20
Vec3 vector_add(const Vec3 &v_a, const Vec3 &v_b)
Vector addition.
Definition fsb_motion.cpp:188
Vec3 coord_transform_position(const Transform &transf, const Vec3 &pos)
Apply coordinate transform to position vector.
Definition fsb_motion.cpp:66
Transform transform_identity()
Identity transform.
Definition fsb_motion.cpp:12
Vec3 vector_cross(const Vec3 &v_a, const Vec3 &v_b)
Vector cross product.
Definition fsb_motion.cpp:208
MotionVector motion_transform_velocity(const Transform &parent_transf, const MotionVector &parent_velocity, const Transform &motion_transf, const MotionVector &motion_velocity)
Get velocity of child frame with respect to a common frame given relative velocity between parent and...
Definition fsb_motion.cpp:105
Transform coord_transform_inverse(const Transform &transf_a, const Transform &transf_b)
Apply coordinate transform inverse.
Definition fsb_motion.cpp:49
Cartesian pose, velocity and acceleration.
Definition fsb_motion.h:53
MotionVector velocity
Cartesian velocity.
Definition fsb_motion.h:61
Transform pose
Cartesian pose.
Definition fsb_motion.h:57
MotionVector acceleration
Cartesian acceleration.
Definition fsb_motion.h:65
Motion vector.
Definition fsb_motion.h:37
Vec3 angular
Angular motion vector.
Definition fsb_motion.h:41
Vec3 linear
Linear motion vector.
Definition fsb_motion.h:46
Unit quaternion.
Definition fsb_quaternion.h:24
Coordinate transform.
Definition fsb_motion.h:22
Quaternion rotation
Rotation quaternion.
Definition fsb_motion.h:26
Vec3 translation
Translation vector.
Definition fsb_motion.h:30
3D vector
Definition fsb_types.h:27