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 |