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

RxSO2 using storage; derived from RxSO2Base. More...

#include <rxso2.hpp>

Public Types

using Adjoint = typename Base::Adjoint
 
using Base = RxSO2Base< RxSO2< Scalar_, Options > >
 
using ComplexMember = Eigen::Matrix< Scalar, 2, 1, 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

SOPHUS_FUNC ComplexMember const & complex () const
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC RxSO2 ()
 
SOPHUS_FUNC RxSO2 (RxSO2 const &other)=default
 
template<class OtherDerived >
SOPHUS_FUNC RxSO2 (RxSO2Base< OtherDerived > const &other)
 
SOPHUS_FUNC RxSO2 (Scalar const &real, Scalar const &imag)
 
SOPHUS_FUNC RxSO2 (Scalar const &scale, SO2< Scalar > const &so2)
 
SOPHUS_FUNC RxSO2 (Scalar const &scale, Transformation const &R)
 
SOPHUS_FUNC RxSO2 (Transformation const &sR)
 
SOPHUS_FUNC RxSO2 (Vector2< Scalar > const &z)
 

Static Public Member Functions

static SOPHUS_FUNC Transformation Dxi_exp_x_matrix_at_0 (int i)
 
static SOPHUS_FUNC RxSO2< Scalarexp (Tangent const &a)
 
static SOPHUS_FUNC Transformation generator (int i)
 
static SOPHUS_FUNC Transformation hat (Tangent const &a)
 
static SOPHUS_FUNC Tangent lieBracket (Tangent const &, Tangent const &)
 
template<class UniformRandomBitGenerator >
static RxSO2 sampleUniform (UniformRandomBitGenerator &generator)
 
static SOPHUS_FUNC Tangent vee (Transformation const &Omega)
 

Protected Member Functions

SOPHUS_FUNC ComplexMembercomplex_nonconst ()
 

Protected Attributes

ComplexMember complex_
 

Friends

class RxSO2Base< RxSO2< Scalar_, Options > >
 Base is friend so complex_nonconst can be accessed from Base. More...
 

Detailed Description

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

RxSO2 using storage; derived from RxSO2Base.

Definition at line 11 of file rxso2.hpp.

Member Typedef Documentation

◆ Adjoint

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

Definition at line 382 of file rxso2.hpp.

◆ Base

template<class Scalar_ , int Options>
using Sophus::RxSO2< Scalar_, Options >::Base = RxSO2Base<RxSO2<Scalar_, Options> >

Definition at line 376 of file rxso2.hpp.

◆ ComplexMember

template<class Scalar_ , int Options>
using Sophus::RxSO2< Scalar_, Options >::ComplexMember = Eigen::Matrix<Scalar, 2, 1, Options>

Definition at line 383 of file rxso2.hpp.

◆ HomogeneousPoint

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

Definition at line 380 of file rxso2.hpp.

◆ Point

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

Definition at line 379 of file rxso2.hpp.

◆ Scalar

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

Definition at line 377 of file rxso2.hpp.

◆ Tangent

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

Definition at line 381 of file rxso2.hpp.

◆ Transformation

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

Definition at line 378 of file rxso2.hpp.

Constructor & Destructor Documentation

◆ RxSO2() [1/8]

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

Default constructor initializes complex number to identity rotation and scale to 1.

Definition at line 393 of file rxso2.hpp.

◆ RxSO2() [2/8]

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

Copy constructor

◆ RxSO2() [3/8]

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

Copy-like constructor from OtherDerived.

Definition at line 402 of file rxso2.hpp.

◆ RxSO2() [4/8]

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

Constructor from scaled rotation matrix

Precondition: rotation matrix need to be scaled orthogonal with determinant of s^2.

Definition at line 410 of file rxso2.hpp.

◆ RxSO2() [5/8]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::RxSO2< Scalar_, Options >::RxSO2 ( Scalar const &  scale,
Transformation const &  R 
)
inline

Constructor from scale factor and rotation matrix R.

Precondition: Rotation matrix R must to be orthogonal with determinant of 1 and scale must to be close to zero.

Definition at line 419 of file rxso2.hpp.

◆ RxSO2() [6/8]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::RxSO2< Scalar_, Options >::RxSO2 ( Scalar const &  scale,
SO2< Scalar > const &  so2 
)
inline

Constructor from scale factor and SO2

Precondition: scale must be close to zero.

Definition at line 426 of file rxso2.hpp.

◆ RxSO2() [7/8]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::RxSO2< Scalar_, Options >::RxSO2 ( Vector2< Scalar > const &  z)
inlineexplicit

Constructor from complex number.

Precondition: complex number must not be close to zero.

Definition at line 433 of file rxso2.hpp.

◆ RxSO2() [8/8]

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

Constructor from complex number.

Precondition: complex number must not be close to zero.

Definition at line 445 of file rxso2.hpp.

Member Function Documentation

◆ complex()

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

Accessor of complex.

Definition at line 450 of file rxso2.hpp.

◆ complex_nonconst()

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

Definition at line 569 of file rxso2.hpp.

◆ Dxi_exp_x_matrix_at_0()

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

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

Definition at line 454 of file rxso2.hpp.

◆ exp()

template<class Scalar_ , int Options>
static SOPHUS_FUNC RxSO2<Scalar> Sophus::RxSO2< Scalar_, Options >::exp ( Tangent const &  a)
inlinestatic

Group exponential

This functions takes in an element of tangent space (= rotation angle plus logarithm of scale) and returns the corresponding element of the group RxSO2.

To be more specific, this function computes expmat(hat(theta)) with expmat(.) being the matrix exponential and hat(.) being the hat()-operator of RSO2.

Definition at line 467 of file rxso2.hpp.

◆ generator()

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

Returns the ith infinitesimal generators of R+ x SO(2).

The infinitesimal generators of RxSO2 are:

| 0 -1 |
G_0 = | 1 0 |
| 1 0 |
G_1 = | 0 1 |

Precondition: i must be 0, or 1.

Definition at line 492 of file rxso2.hpp.

◆ hat()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::RxSO2< Scalar_, Options >::hat ( Tangent const &  a)
inlinestatic

hat-operator

It takes in the 2-vector representation a (= rotation angle plus logarithm of scale) and returns the corresponding matrix representation of Lie algebra element.

Formally, the hat()-operator of RxSO2 is defined as

hat(.): R^2 -> R^{2x2}, hat(a) = sum_i a_i * G_i (for i=0,1,2)

with G_i being the ith infinitesimal generator of RxSO2.

The corresponding inverse is the vee()-operator, see below.

Definition at line 514 of file rxso2.hpp.

◆ lieBracket()

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

Lie bracket

It computes the Lie bracket of RxSO(2). To be more specific, it computes

[omega_1, omega_2]_rxso2 := vee([hat(omega_1), hat(omega_2)])

with [A,B] := AB-BA being the matrix commutator, hat(.) the hat()-operator and vee(.) the vee()-operator of RxSO2.

Definition at line 532 of file rxso2.hpp.

◆ sampleUniform()

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

Draw uniform sample from RxSO(2) manifold.

The scale factor is drawn uniformly in log2-space from [-1, 1], hence the scale is in [0.5, 2)].

Definition at line 544 of file rxso2.hpp.

◆ vee()

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

vee-operator

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

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

Precondition: Omega must have the following structure:

           |  d -x |
           |  x  d |

Definition at line 563 of file rxso2.hpp.

Friends And Related Function Documentation

◆ RxSO2Base< RxSO2< Scalar_, Options > >

template<class Scalar_ , int Options>
friend class RxSO2Base< RxSO2< Scalar_, Options > >
friend

Base is friend so complex_nonconst can be accessed from Base.

Definition at line 386 of file rxso2.hpp.

Member Data Documentation

◆ complex_

template<class Scalar_ , int Options>
ComplexMember Sophus::RxSO2< Scalar_, Options >::complex_
protected

Definition at line 571 of file rxso2.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