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 |