Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
Sophus::SO2< Scalar_, Options > Class Template Reference

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, DoFDx_exp_x (Tangent const &theta)
 
static SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoFDx_exp_x_at_0 ()
 
static SOPHUS_FUNC Transformation Dxi_exp_x_matrix_at_0 (int)
 
static SOPHUS_FUNC SO2< Scalarexp (Tangent const &theta)
 
template<class S = Scalar>
static SOPHUS_FUNC enable_if_t< std::is_floating_point< S >::value, SO2fitToSO2 (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 ComplexMemberunit_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...
 

Detailed Description

template<class Scalar_, int Options>
class Sophus::SO2< Scalar_, Options >

SO2 using default storage; derived from SO2Base.

Definition at line 19 of file so2.hpp.

Member Typedef Documentation

◆ Adjoint

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Adjoint = typename Base::Adjoint

Definition at line 345 of file so2.hpp.

◆ Base

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Base = SO2Base<SO2<Scalar_, Options> >

Definition at line 336 of file so2.hpp.

◆ ComplexMember

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::ComplexMember = Vector2<Scalar, Options>

Definition at line 346 of file so2.hpp.

◆ HomogeneousPoint

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::HomogeneousPoint = typename Base::HomogeneousPoint

Definition at line 343 of file so2.hpp.

◆ Point

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Point = typename Base::Point

Definition at line 342 of file so2.hpp.

◆ Scalar

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Scalar = Scalar_

Definition at line 340 of file so2.hpp.

◆ Tangent

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Tangent = typename Base::Tangent

Definition at line 344 of file so2.hpp.

◆ Transformation

template<class Scalar_ , int Options>
using Sophus::SO2< Scalar_, Options >::Transformation = typename Base::Transformation

Definition at line 341 of file so2.hpp.

Constructor & Destructor Documentation

◆ SO2() [1/7]

template<class Scalar_ , int Options>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( )
inline

Default constructor initializes unit complex number to identity rotation.

Definition at line 355 of file so2.hpp.

◆ SO2() [2/7]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( SO2< Scalar_, Options > const &  other)
default

Copy constructor

◆ SO2() [3/7]

template<class Scalar_ , int Options>
template<class OtherDerived >
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( SO2Base< OtherDerived > const &  other)
inline

Copy-like constructor from OtherDerived.

Definition at line 364 of file so2.hpp.

◆ SO2() [4/7]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( Transformation const &  R)
inlineexplicit

Constructor from rotation matrix

Precondition: rotation matrix need to be orthogonal with determinant of 1.

Definition at line 371 of file so2.hpp.

◆ SO2() [5/7]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( Scalar const &  real,
Scalar const &  imag 
)
inline

Constructor from pair of real and imaginary number.

Precondition: The pair must not be close to zero.

Definition at line 383 of file so2.hpp.

◆ SO2() [6/7]

template<class Scalar_ , int Options>
template<class D >
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( Eigen::MatrixBase< D > const &  complex)
inlineexplicit

Constructor from 2-vector.

Precondition: The vector must not be close to zero.

Definition at line 393 of file so2.hpp.

◆ SO2() [7/7]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::SO2< Scalar_, Options >::SO2 ( Scalar  theta)
inlineexplicit

Constructor from an rotation angle.

Definition at line 402 of file so2.hpp.

Member Function Documentation

◆ Dx_exp_x()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Sophus::Matrix<Scalar, num_parameters, DoF> Sophus::SO2< Scalar_, Options >::Dx_exp_x ( Tangent const &  theta)
inlinestatic

Returns derivative of exp(x) wrt. x.

Definition at line 429 of file so2.hpp.

◆ Dx_exp_x_at_0()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Sophus::Matrix<Scalar, num_parameters, DoF> Sophus::SO2< Scalar_, Options >::Dx_exp_x_at_0 ( )
inlinestatic

Returns derivative of exp(x) wrt. x_i at x=0.

Definition at line 439 of file so2.hpp.

◆ Dxi_exp_x_matrix_at_0()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::SO2< Scalar_, Options >::Dxi_exp_x_matrix_at_0 ( int  )
inlinestatic

Returns derivative of exp(x).matrix() wrt. x_i at x=0.

Definition at line 445 of file so2.hpp.

◆ exp()

template<class Scalar_ , int Options>
static SOPHUS_FUNC SO2<Scalar> Sophus::SO2< Scalar_, Options >::exp ( Tangent const &  theta)
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).

Definition at line 421 of file so2.hpp.

◆ fitToSO2()

template<class Scalar_ , int Options>
template<class S = Scalar>
static SOPHUS_FUNC enable_if_t<std::is_floating_point<S>::value, SO2> Sophus::SO2< Scalar_, Options >::fitToSO2 ( Transformation const &  R)
inlinestatic

Returns closed SO2 given arbitrary 2x2 matrix.

Definition at line 485 of file so2.hpp.

◆ generator()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::SO2< Scalar_, Options >::generator ( )
inlinestatic

Returns the infinitesimal generators of SO(2).

The infinitesimal generators of SO(2) is:

|  0  1 |
| -1  0 |

Definition at line 456 of file so2.hpp.

◆ hat()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::SO2< Scalar_, Options >::hat ( Tangent const &  theta)
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.

Definition at line 471 of file so2.hpp.

◆ lieBracket()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Tangent Sophus::SO2< Scalar_, Options >::lieBracket ( Tangent const &  ,
Tangent const &   
)
inlinestatic

Lie bracket

It returns the Lie bracket of SO(2). Since SO(2) is a commutative group, the Lie bracket is simple 0.

Definition at line 494 of file so2.hpp.

◆ sampleUniform()

template<class Scalar_ , int Options>
template<class UniformRandomBitGenerator >
static SO2 Sophus::SO2< Scalar_, Options >::sampleUniform ( UniformRandomBitGenerator &  generator)
inlinestatic

Draw uniform sample from SO(2) manifold.

Definition at line 501 of file so2.hpp.

◆ unit_complex()

template<class Scalar_ , int Options>
SOPHUS_FUNC ComplexMember const& Sophus::SO2< Scalar_, Options >::unit_complex ( ) const
inline

Accessor of unit complex number

Definition at line 408 of file so2.hpp.

◆ unit_complex_nonconst()

template<class Scalar_ , int Options>
SOPHUS_FUNC ComplexMember& Sophus::SO2< Scalar_, Options >::unit_complex_nonconst ( )
inlineprotected

Mutator of complex number is protected to ensure class invariant.

Definition at line 529 of file so2.hpp.

◆ vee()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Tangent Sophus::SO2< Scalar_, Options >::vee ( Transformation const &  Omega)
inlinestatic

vee-operator

It takes the 2x2-matrix representation Omega and maps it to the corresponding scalar representation of Lie algebra.

This is the inverse of the hat()-operator, see above.

Precondition: Omega must have the following structure:

           |  0 -a |
           |  a  0 |

Definition at line 521 of file so2.hpp.

Friends And Related Function Documentation

◆ SO2Base< SO2< Scalar, Options > >

template<class Scalar_ , int Options>
friend class SO2Base< SO2< Scalar, Options > >
friend

Base is friend so unit_complex_nonconst can be accessed from Base.

Definition at line 349 of file so2.hpp.

Member Data Documentation

◆ DoF

template<class Scalar_ , int Options>
constexpr int Sophus::SO2< Scalar_, Options >::DoF = Base::DoF
staticconstexpr

Definition at line 337 of file so2.hpp.

◆ num_parameters

template<class Scalar_ , int Options>
constexpr int Sophus::SO2< Scalar_, Options >::num_parameters = Base::num_parameters
staticconstexpr

Definition at line 338 of file so2.hpp.

◆ unit_complex_

template<class Scalar_ , int Options>
ComplexMember Sophus::SO2< Scalar_, Options >::unit_complex_
protected

Definition at line 531 of file so2.hpp.


The documentation for this class was generated from the following file:


sophus
Author(s): Hauke Strasdat
autogenerated on Wed Mar 2 2022 01:01:48