SO2 using default storage; derived from SO2Base. More...
#include <so2.hpp>
Public Types | |
using | Adjoint = typename Base::Adjoint |
using | Base = SO2Base< SO2< Scalar_, Options > > |
using | ComplexMember = Vector2< Scalar, Options > |
using | HomogeneousPoint = typename Base::HomogeneousPoint |
using | Point = typename Base::Point |
using | Scalar = Scalar_ |
using | Tangent = typename Base::Tangent |
using | Transformation = typename Base::Transformation |
Public Member Functions | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC | SO2 () |
template<class D > | |
SOPHUS_FUNC | SO2 (Eigen::MatrixBase< D > const &complex) |
SOPHUS_FUNC | SO2 (Scalar const &real, Scalar const &imag) |
SOPHUS_FUNC | SO2 (Scalar theta) |
SOPHUS_FUNC | SO2 (SO2 const &other)=default |
template<class OtherDerived > | |
SOPHUS_FUNC | SO2 (SO2Base< OtherDerived > const &other) |
SOPHUS_FUNC | SO2 (Transformation const &R) |
SOPHUS_FUNC ComplexMember const & | unit_complex () const |
Static Public Member Functions | |
static SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoF > | Dx_exp_x (Tangent const &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) |
static SOPHUS_FUNC SO2< Scalar > | exp (Tangent const &theta) |
template<class S = Scalar> | |
static SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, SO2 > | fitToSO2 (Transformation const &R) |
static SOPHUS_FUNC Transformation | generator () |
static SOPHUS_FUNC Transformation | hat (Tangent const &theta) |
static SOPHUS_FUNC Tangent | lieBracket (Tangent const &, Tangent const &) |
template<class UniformRandomBitGenerator > | |
static SO2 | sampleUniform (UniformRandomBitGenerator &generator) |
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 Member Functions | |
SOPHUS_FUNC ComplexMember & | unit_complex_nonconst () |
Protected Attributes | |
ComplexMember | unit_complex_ |
Friends | |
class | SO2Base< SO2< Scalar, Options > > |
Base is friend so unit_complex_nonconst can be accessed from Base . More... | |
using Sophus::SO2< Scalar_, Options >::Adjoint = typename Base::Adjoint |
using Sophus::SO2< Scalar_, Options >::Base = SO2Base<SO2<Scalar_, Options> > |
using Sophus::SO2< Scalar_, Options >::ComplexMember = Vector2<Scalar, Options> |
using Sophus::SO2< Scalar_, Options >::HomogeneousPoint = typename Base::HomogeneousPoint |
using Sophus::SO2< Scalar_, Options >::Point = typename Base::Point |
using Sophus::SO2< Scalar_, Options >::Scalar = Scalar_ |
using Sophus::SO2< Scalar_, Options >::Tangent = typename Base::Tangent |
using Sophus::SO2< Scalar_, Options >::Transformation = typename Base::Transformation |
|
inline |
|
default |
Copy constructor
|
inline |
|
inlineexplicit |
|
inline |
|
inlineexplicit |
|
inlineexplicit |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Group exponential
This functions takes in an element of tangent space (= rotation angle theta
) and returns the corresponding element of the group SO(2).
To be more specific, this function computes expmat(hat(omega))
with expmat(.)
being the matrix exponential and hat(.)
being the hat()-operator of SO(2).
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
hat-operator
It takes in the scalar representation theta
(= rotation angle) and returns the corresponding matrix representation of Lie algebra element.
Formally, the hat()-operator of SO(2) is defined as
hat(.): R^2 -> R^{2x2}, hat(theta) = theta * G
with G
being the infinitesimal generator of SO(2).
The corresponding inverse is the vee()-operator, see below.
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inlineprotected |
|
inlinestatic |
|
staticconstexpr |
|
staticconstexpr |
|
protected |