|
MROB
|

Public Member Functions | |
| SE3 (const Mat4 &T=Mat4::Identity()) | |
| SE3 (const Mat61 &xi) | |
| SE3 (const SE3 &T) | |
| SE3 (const SO3 &R, const Mat31 &t) | |
| SE3 (const Mat3 &R, const Mat31 &t) | |
| template<typename OtherDerived > | |
| SE3 (const Eigen::MatrixBase< OtherDerived > &rhs) | |
| SE3 & | operator= (const SE3 &rhs) |
| SE3 | operator* (const SE3 &rhs) const |
| SE3 | mul (const SE3 &rhs) const |
| void | update_lhs (const Mat61 &dxi) |
| void | update_rhs (const Mat61 &dxi) |
| void | exp (const Mat4 &xi_hat) |
| Mat4 | ln (void) const |
| Mat61 | ln_vee () const |
| Mat31 | transform (const Mat31 &p) const |
| MatX | transform_array (const MatX &P) const |
| SE3 | inv (void) const |
| Mat6 | adj () const |
| const Eigen::Ref< const Mat4 > | T () const |
| Mat4 & | ref2T () |
| Mat3 | R () const |
| Mat31 | t () const |
| double | distance (const SE3 &rhs=SE3()) const |
| double | distance_rotation (const SE3 &rhs=SE3()) const |
| double | distance_trans (const SE3 &rhs=SE3()) const |
| void | regenerate () |
| Mat41 | transform_plane (const Mat41 &pi) |
| void | print (void) const |
| void | print_lie (void) const |
| std::string | toString () const |
| Generates string representation of the object. More... | |
Protected Attributes | |
| Mat4 | T_ |
| SE3::SE3 | ( | const Mat4 & | T = Mat4::Identity() | ) |
Constructor, requires the Transformation matrix 4x4
| SE3::SE3 | ( | const Mat61 & | xi | ) |
Constructor, requires the Lie algebra xi^ se3 representing the rigid body transformation around the identity, by default generates T = exp(0^) = I
| SE3::SE3 | ( | const SE3 & | T | ) |
Constructor, requires the Transformation in Se3
| SE3::SE3 | ( | const SO3 & | R, |
| const Mat31 & | t | ||
| ) |
Constructor, requires the Rotation in SO3 and translation
| SE3::SE3 | ( | const Mat3 & | R, |
| const Mat31 & | t | ||
| ) |
Constructor, requires the Rotation as a 3x3 matrix and translation
| SE3::SE3 | ( | const Eigen::MatrixBase< OtherDerived > & | rhs | ) |
This constructor allows to construct from Eigen expressions Eigen suggestion: TopicCustomizingEigen.html
| Mat6 SE3::adj | ( | ) | const |
Adjoint: T Exp(x) = Exp ( Adj_T x) T Adj_T = [R , 0] [t^R, R]
Provide the distance as a norm on the tangent space of the ln(T * T_rhs^{-1})
Provide the distance on the rotation in the tangent space of the ln(R * R_rhs^{-1})
Provide the distance of the translation part ||t - t'||
| void SE3::exp | ( | const Mat4 & | xi_hat | ) |
Exponential mapping of a skew symetric matrix in se3. exp(xi^) = [exp(w^) Vv], where exp(w^) is the so3_exp and V = I + c2*(w^) + c3*(w^)^2 , where o = norm(w), c2 = (1 - cos(o))/o^2, c3 = (o- sin(o) / o^3 t= Vv Exponential mapping of a skew symetric matrix in so3. The Rodrigues formula provides an exact solution to the Taylor expansion of exp(A) = I + A + c2*A^2 + ... exp(A) = I + c1*w^ + c2*(w^)^2, where o = norm(w), c1 =sin(o)/o and c2 = (1 - cos(o))/o^2
| SE3 SE3::inv | ( | void | ) | const |
Inverse: T^-1 = [R', -R't] [0 1]
| Mat4 SE3::ln | ( | void | ) | const |
Logarithm map, first we calculate ln(R) and then V^-1 = I - 1/2 w^ + 1/o^2(1 - A / 2B) (w^)^2 v = V^-1 t
| Mat61 SE3::ln_vee | ( | ) | const |
Returns the vector xi R^6 which corresponds to the Lie algebra se3
| Mat3 SE3::R | ( | ) | const |
R method returns a matrix 3x3 of the SO3 rotation corresponding to the subblock matrix
| Mat4 & SE3::ref2T | ( | ) |
ref2T returns a non-const reference to the matrix T to modify its content directly
| void SE3::regenerate | ( | ) |
Regenerate, does the following operation: T = Exp ( Ln(T) )
| const Eigen::Ref< const Mat4 > SE3::T | ( | ) | const |
T method returns a matrix 4x4 of the SE3 transformation. Ref<> is more convinient than the matrix for the factor/nodes base class definitions and python bindings
| Mat31 SE3::t | ( | ) | const |
t method returns translation
| std::string SE3::toString | ( | ) | const |
Generates string representation of the object.
| Mat31 SE3::transform | ( | const Mat31 & | p | ) | const |
Transforms a point p = (x,y,z)' such as res = T*p. This function saves to transform to homogeneous coordinates.
| MatX SE3::transform_array | ( | const MatX & | P | ) | const |
Transforms an array of points P = {p_n} = (x,y,z)'_n such as res = T*p_n. The array is of the form Nx3 (usual convention from arrays) This function saves to transform to homogeneous coordinates.
| void SE3::update_lhs | ( | const Mat61 & | dxi | ) |
This is our default way to update transformations, from the Left hand side of T Updates the current transformation with the incremental dxi se3 T'=exp(dxi^) * T
| void SE3::update_rhs | ( | const Mat61 & | dxi | ) |
Updates the current transformation with the incremental dxi se3 T'= T * exp(dxi^)
1.8.13