SE2 using default storage; derived from SE2Base. More...
#include <se2.hpp>
Public Types | |
| using | Adjoint = typename Base::Adjoint |
| using | Base = SE2Base< SE2< Scalar_, Options > > |
| using | HomogeneousPoint = typename Base::HomogeneousPoint |
| using | Point = typename Base::Point |
| using | Scalar = Scalar_ |
| using | SO2Member = SO2< Scalar, Options > |
| using | Tangent = typename Base::Tangent |
| using | Transformation = typename Base::Transformation |
| using | TranslationMember = Vector2< Scalar, Options > |
Public Member Functions | |
| SOPHUS_FUNC Scalar * | data () |
| SOPHUS_FUNC Scalar const * | data () const |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC | SE2 () |
| SOPHUS_FUNC | SE2 (Scalar const &theta, Point const &translation) |
| SOPHUS_FUNC | SE2 (SE2 const &other)=default |
| template<class OtherDerived > | |
| SOPHUS_FUNC | SE2 (SE2Base< OtherDerived > const &other) |
| template<class OtherDerived , class D > | |
| SOPHUS_FUNC | SE2 (SO2Base< OtherDerived > const &so2, Eigen::MatrixBase< D > const &translation) |
| SOPHUS_FUNC | SE2 (Transformation const &T) |
| SOPHUS_FUNC | SE2 (typename SO2< Scalar >::Transformation const &rotation_matrix, Point const &translation) |
| SOPHUS_FUNC | SE2 (Vector2< Scalar > const &complex, Point const &translation) |
| SOPHUS_FUNC SO2Member & | so2 () |
| SOPHUS_FUNC SO2Member const & | so2 () const |
| SOPHUS_FUNC TranslationMember & | translation () |
| SOPHUS_FUNC TranslationMember const & | translation () const |
Static Public Member Functions | |
| static SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoF > | Dx_exp_x (Tangent const &upsilon_theta) |
| static SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoF > | Dx_exp_x_at_0 () |
| static SOPHUS_FUNC Transformation | Dxi_exp_x_matrix_at_0 (int i) |
| static SOPHUS_FUNC SE2< Scalar > | exp (Tangent const &a) |
| template<class S = Scalar> | |
| static SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, SE2 > | fitToSE2 (Matrix3< Scalar > const &T) |
| static SOPHUS_FUNC Transformation | generator (int i) |
| static SOPHUS_FUNC Transformation | hat (Tangent const &a) |
| static SOPHUS_FUNC Tangent | lieBracket (Tangent const &a, Tangent const &b) |
| static SOPHUS_FUNC SE2 | rot (Scalar const &x) |
| template<class UniformRandomBitGenerator > | |
| static SE2 | sampleUniform (UniformRandomBitGenerator &generator) |
| template<class T0 , class T1 > | |
| static SOPHUS_FUNC SE2 | trans (T0 const &x, T1 const &y) |
| static SOPHUS_FUNC SE2 | trans (Vector2< Scalar > const &xy) |
| static SOPHUS_FUNC SE2 | transX (Scalar const &x) |
| static SOPHUS_FUNC SE2 | transY (Scalar const &y) |
| static SOPHUS_FUNC Tangent | vee (Transformation const &Omega) |
Static Public Attributes | |
| static constexpr int | DoF = Base::DoF |
| static constexpr int | num_parameters = Base::num_parameters |
Protected Attributes | |
| SO2Member | so2_ |
| TranslationMember | translation_ |
| using Sophus::SE2< Scalar_, Options >::Adjoint = typename Base::Adjoint |
| using Sophus::SE2< Scalar_, Options >::Base = SE2Base<SE2<Scalar_, Options> > |
| using Sophus::SE2< Scalar_, Options >::HomogeneousPoint = typename Base::HomogeneousPoint |
| using Sophus::SE2< Scalar_, Options >::Point = typename Base::Point |
| using Sophus::SE2< Scalar_, Options >::Scalar = Scalar_ |
| using Sophus::SE2< Scalar_, Options >::SO2Member = SO2<Scalar, Options> |
| using Sophus::SE2< Scalar_, Options >::Tangent = typename Base::Tangent |
| using Sophus::SE2< Scalar_, Options >::Transformation = typename Base::Transformation |
| using Sophus::SE2< Scalar_, Options >::TranslationMember = Vector2<Scalar, Options> |
| Sophus::SE2< Scalar, Options >::SE2 |
|
default |
Copy constructor
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineexplicit |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Group exponential
This functions takes in an element of tangent space (= twist a) and returns the corresponding element of the group SE(2).
The first two components of a represent the translational part upsilon in the tangent space of SE(2), while the last three components of a represents the rotation vector omega. To be more specific, this function computes expmat(hat(a)) with expmat(.) being the matrix exponential and hat(.) the hat-operator of SE(2), see below.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
hat-operator
It takes in the 3-vector representation (= twist) and returns the corresponding matrix representation of Lie algebra element.
Formally, the hat()-operator of SE(3) is defined as
hat(.): R^3 -> R^{3x33}, hat(a) = sum_i a_i * G_i (for i=0,1,2)
with G_i being the ith infinitesimal generator of SE(2).
The corresponding inverse is the vee()-operator, see below.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
vee-operator
It takes the 3x3-matrix representation Omega and maps it to the corresponding 3-vector representation of Lie algebra.
This is the inverse of the hat()-operator, see above.
Precondition: Omega must have the following structure:
| 0 -d a |
| d 0 b |
| 0 0 0 |
|
staticconstexpr |
|
staticconstexpr |
|
protected |
|
protected |