math::SE3#
rb::math::SE3 provides 3D rigid transform helpers. It is the natural
companion to SO3 when controllers or planners need poses, twists, or
adjoint operators between reference frames.
Header
Header |
|
Declaration
Namespace |
|
Kind |
|
Primary role |
Provide static helpers for 3D rigid transforms and adjoint operations. |
Member Types
Type |
Purpose |
Notes |
|---|---|---|
|
Matrix representation used by the transform helpers. |
Returned by the construction methods on this page. |
Public Member Functions
Method group |
Purpose |
Notes |
|---|---|---|
|
Create or invert rigid transforms. |
|
|
Move between transform matrices and twist-space representations. |
Common in model-based control and estimation. |
|
Apply adjoint and Lie-bracket operators. |
Useful for wrench and twist transforms. |
|
Extract components or apply a transform to a point. |
Good for task-space utility code. |
|
Average a set of rigid transforms. |
Useful for pose filtering and alignment. |
Detailed Reference
-
class SE3#
Public Types
-
using MatrixType = Eigen::Matrix4d#
Public Static Functions
-
static Eigen::Matrix<double, 6, 6> Ad(const MatrixType &T)#
-
static se3v::MatrixType Ad(const MatrixType &T, const se3v::MatrixType &S)#
-
static Eigen::Matrix<double, 6, 6> ad(const se3v::MatrixType &S)#
-
static se3v::MatrixType ad(const se3v::MatrixType &S1, const se3v::MatrixType &S2)#
-
static Eigen::Matrix<double, 6, 6> adTranspose(const se3v::MatrixType &S)#
-
static se3v::MatrixType adTranspose(const se3v::MatrixType &S1, const se3v::MatrixType &S2)#
-
template<typename Container, typename = std::enable_if_t<std::is_same_v<typename Container::value_type, MatrixType>>>
static std::optional<MatrixType> Average(const Container &matrices, double eps, int max_iter = -1)#
-
static MatrixType Exp(const se3v::MatrixType &S, double angle = 1.)#
-
static MatrixType Exp(so3v::MatrixType w, Eigen::Vector3d v, double angle = 1.)#
-
static Eigen::Vector3d GetPosition(const MatrixType &T)#
-
static SO3::MatrixType GetRotation(const MatrixType &T)#
-
static se3::MatrixType Hat(const se3v::MatrixType &v)#
-
static MatrixType Identity()#
-
static Eigen::Matrix<double, 6, 6> InvAd(const MatrixType &T)#
-
static se3v::MatrixType InvAd(const MatrixType &T, const se3v::MatrixType &S)#
-
static MatrixType Inverse(const MatrixType &T)#
-
static se3v::MatrixType Log(const MatrixType &T)#
-
static Eigen::Vector3d Multiply(const MatrixType &T, const Eigen::Vector3d &p)#
-
static MatrixType T(const Eigen::Vector3d &p)#
-
static MatrixType T(const SO3::MatrixType &R, const Eigen::Vector3d &p = Eigen::Vector3d::Zero())#
-
static se3v::MatrixType Vec(const se3::MatrixType &s)#
-
using MatrixType = Eigen::Matrix4d#
Related Types
Examples
dynamics/load_urdf.cppandoptimal_control.cppare good places to seeSE3in context.