1 #ifndef MODERN_ROBOTICS__RIGID_BODY_MOTIONS_HPP___
2 #define MODERN_ROBOTICS__RIGID_BODY_MOTIONS_HPP___
15 const arma::mat33
RotInv(
const arma::mat33 & R);
21 const arma::mat33
VecToso3(
const arma::vec3 & omg);
27 const arma::vec3
so3ToVec(
const arma::mat33 & so3mat);
35 const std::tuple<const arma::vec3, double>
AxisAng3(
const arma::vec3 & expc3);
41 const arma::mat33
MatrixExp3(
const arma::mat33 & so3mat);
47 const arma::mat33
MatrixLog3(
const arma::mat33 & R);
55 const arma::mat44
RpToTrans(
const arma::mat33 & R,
const arma::vec3 & p);
63 const std::tuple<const arma::mat33, const arma::vec3>
TransToRp(
const arma::mat44 & T);
71 const arma::mat44
TransInv(
const arma::mat44 & T);
77 const arma::mat44
VecTose3(
const arma::vec6 & V);
83 const arma::vec6
se3ToVec(
const arma::mat44 & se3mat);
89 const arma::mat66
Adjoint(
const arma::mat44 & T);
98 const arma::vec6
ScrewToAxis(
const arma::vec3 & q,
const arma::vec3 & s,
const double h);
105 const std::tuple<const arma::vec6, double>
AxisAng6(
const arma::vec6 & expc6);
112 const arma::mat44
MatrixExp6(
const arma::mat44 & se3mat);
118 const arma::mat44
MatrixLog6(
const arma::mat44 & T);
128 const arma::mat33
ProjectToSO3(
const arma::mat33 & mat);
138 const arma::mat44
ProjectToSE3(
const arma::mat44 & mat);
const arma::vec6 se3ToVec(const arma::mat44 &se3mat)
Converts an se3 matrix into a spatial velocity vector.
Definition: rigid_body_motions.cpp:135
const arma::mat44 RpToTrans(const arma::mat33 &R, const arma::vec3 &p)
Converts a rotation matrix and a position vector into homogeneous transformation matrix.
Definition: rigid_body_motions.cpp:92
const arma::mat33 MatrixLog3(const arma::mat33 &R)
Computes the matrix logarithm of a rotation matrix.
Definition: rigid_body_motions.cpp:62
const std::tuple< const arma::mat33, const arma::vec3 > TransToRp(const arma::mat44 &T)
Converts a homogeneous transformation matrix into a rotation matrix and position vector.
Definition: rigid_body_motions.cpp:101
const arma::mat33 VecToso3(const arma::vec3 &omg)
Converts a 3-vector to an so(3) representation.
Definition: rigid_body_motions.cpp:14
bool TestIfSE3(const arma::mat44 &mat)
Returns true if mat is close to or on the manifold SE(3)
Definition: rigid_body_motions.hpp:189
const arma::mat44 TransInv(const arma::mat44 &T)
Inverts a homogeneous transformation matrix.
Definition: rigid_body_motions.cpp:109
const arma::mat44 ProjectToSE3(const arma::mat44 &mat)
Returns a projection of mat into SE(3)
Definition: rigid_body_motions.cpp:259
const arma::mat33 MatrixExp3(const arma::mat33 &so3mat)
Computes the matrix exponential of a matrix in so(3)
Definition: rigid_body_motions.cpp:46
const arma::mat33 RotInv(const arma::mat33 &R)
Inverts a rotation matrix.
Definition: rigid_body_motions.cpp:8
double DistanceToSE3(const arma::mat44 &mat)
Returns the Frobenius norm to describe the distance of mat from the SE(3) manifold.
Definition: rigid_body_motions.cpp:278
const arma::mat44 MatrixLog6(const arma::mat44 &T)
Computes the matrix logarithm of a homogeneous transformation matrix.
Definition: rigid_body_motions.cpp:213
const arma::mat44 VecTose3(const arma::vec6 &V)
Converts a spatial velocity vector into a 4x4 matrix in se3.
Definition: rigid_body_motions.cpp:122
const std::tuple< const arma::vec3, double > AxisAng3(const arma::vec3 &expc3)
Converts a 3-vector of exponential coordinates for rotation into axis-angle form.
Definition: rigid_body_motions.cpp:38
double DistanceToSO3(const arma::mat33 &mat)
Returns the Frobenius norm to describe the distance of mat from the SO(3) manifold.
Definition: rigid_body_motions.cpp:268
const std::tuple< const arma::vec6, double > AxisAng6(const arma::vec6 &expc6)
Converts a 6-vector of exponential coordinates into screw axis-angle form.
Definition: rigid_body_motions.cpp:167
const arma::vec3 so3ToVec(const arma::mat33 &so3mat)
Converts an so(3) representation to a 3-vector.
Definition: rigid_body_motions.cpp:28
const arma::mat33 ProjectToSO3(const arma::mat33 &mat)
Returns a projection of mat into SO(3)
Definition: rigid_body_motions.cpp:243
const arma::mat66 Adjoint(const arma::mat44 &T)
Computes the adjoint representation of a homogeneous transformation matrix.
Definition: rigid_body_motions.cpp:144
bool TestIfSO3(const arma::mat33 &mat)
Returns true if mat is close to or on the manifold SO(3)
Definition: rigid_body_motions.hpp:172
const arma::mat44 MatrixExp6(const arma::mat44 &se3mat)
Computes the matrix exponential of an se3 representation of exponential coordinates.
Definition: rigid_body_motions.cpp:183
const arma::vec6 ScrewToAxis(const arma::vec3 &q, const arma::vec3 &s, const double h)
Takes a parametric description of a screw axis and converts it to a normalized screw axis.
Definition: rigid_body_motions.cpp:158
Definition: dynamics_of_open_chains.hpp:7
constexpr double tolerance
Definition: utils.hpp:10