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

Sim2 using default storage; derived from Sim2Base. More...

#include <sim2.hpp>

Public Types

using Adjoint = typename Base::Adjoint
 
using Base = Sim2Base< Sim2< Scalar_, Options > >
 
using HomogeneousPoint = typename Base::HomogeneousPoint
 
using Point = typename Base::Point
 
using RxSo2Member = RxSO2< Scalar, Options >
 
using Scalar = Scalar_
 
using Tangent = typename Base::Tangent
 
using Transformation = typename Base::Transformation
 
using TranslationMember = Vector2< Scalar, Options >
 

Public Member Functions

SOPHUS_FUNC Scalardata ()
 
SOPHUS_FUNC Scalar const * data () const
 
SOPHUS_FUNC RxSo2Memberrxso2 ()
 
SOPHUS_FUNC RxSo2Member const & rxso2 () const
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC Sim2 ()
 
SOPHUS_FUNC Sim2 (Matrix< Scalar, 3, 3 > const &T)
 
template<class OtherDerived , class D >
SOPHUS_FUNC Sim2 (RxSO2Base< OtherDerived > const &rxso2, Eigen::MatrixBase< D > const &translation)
 
SOPHUS_FUNC Sim2 (Sim2 const &other)=default
 
template<class OtherDerived >
SOPHUS_FUNC Sim2 (Sim2Base< OtherDerived > const &other)
 
template<class D >
SOPHUS_FUNC Sim2 (Vector2< Scalar > const &complex_number, Eigen::MatrixBase< D > const &translation)
 
SOPHUS_FUNC TranslationMembertranslation ()
 
SOPHUS_FUNC TranslationMember const & translation () const
 

Static Public Member Functions

static SOPHUS_FUNC Transformation Dxi_exp_x_matrix_at_0 (int i)
 
static SOPHUS_FUNC Sim2< 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 &a, Tangent const &b)
 
template<class UniformRandomBitGenerator >
static Sim2 sampleUniform (UniformRandomBitGenerator &generator)
 
static SOPHUS_FUNC Tangent vee (Transformation const &Omega)
 

Protected Attributes

RxSo2Member rxso2_
 
TranslationMember translation_
 

Detailed Description

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

Sim2 using default storage; derived from Sim2Base.

Definition at line 12 of file sim2.hpp.

Member Typedef Documentation

◆ Adjoint

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

Definition at line 364 of file sim2.hpp.

◆ Base

template<class Scalar_ , int Options>
using Sophus::Sim2< Scalar_, Options >::Base = Sim2Base<Sim2<Scalar_, Options> >

Definition at line 358 of file sim2.hpp.

◆ HomogeneousPoint

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

Definition at line 362 of file sim2.hpp.

◆ Point

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

Definition at line 361 of file sim2.hpp.

◆ RxSo2Member

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

Definition at line 365 of file sim2.hpp.

◆ Scalar

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

Definition at line 359 of file sim2.hpp.

◆ Tangent

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

Definition at line 363 of file sim2.hpp.

◆ Transformation

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

Definition at line 360 of file sim2.hpp.

◆ TranslationMember

template<class Scalar_ , int Options>
using Sophus::Sim2< Scalar_, Options >::TranslationMember = Vector2<Scalar, Options>

Definition at line 366 of file sim2.hpp.

Constructor & Destructor Documentation

◆ Sim2() [1/6]

template<class Scalar , int Options>
Sophus::Sim2< Scalar, Options >::Sim2

Default constructor initializes similarity transform to the identity.

Definition at line 618 of file sim2.hpp.

◆ Sim2() [2/6]

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

Copy constructor

◆ Sim2() [3/6]

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

Copy-like constructor from OtherDerived.

Definition at line 381 of file sim2.hpp.

◆ Sim2() [4/6]

template<class Scalar_ , int Options>
template<class OtherDerived , class D >
SOPHUS_FUNC Sophus::Sim2< Scalar_, Options >::Sim2 ( RxSO2Base< OtherDerived > const &  rxso2,
Eigen::MatrixBase< D > const &  translation 
)
inline

Constructor from RxSO2 and translation vector

Definition at line 390 of file sim2.hpp.

◆ Sim2() [5/6]

template<class Scalar_ , int Options>
template<class D >
SOPHUS_FUNC Sophus::Sim2< Scalar_, Options >::Sim2 ( Vector2< Scalar > const &  complex_number,
Eigen::MatrixBase< D > const &  translation 
)
inline

Constructor from complex number and translation vector.

Precondition: complex number must not be close to zero.

Definition at line 404 of file sim2.hpp.

◆ Sim2() [6/6]

template<class Scalar_ , int Options>
SOPHUS_FUNC Sophus::Sim2< Scalar_, Options >::Sim2 ( Matrix< Scalar, 3, 3 > const &  T)
inlineexplicit

Constructor from 3x3 matrix

Precondition: Top-left 2x2 matrix needs to be "scaled-orthogonal" with positive determinant. The last row must be (0, 0, 1).

Definition at line 416 of file sim2.hpp.

Member Function Documentation

◆ data() [1/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC Scalar* Sophus::Sim2< Scalar_, Options >::data ( )
inline

This provides unsafe read/write access to internal data. Sim(2) is represented by a complex number (two parameters) and a 2-vector. When using direct write access, the user needs to take care of that the complex number is not set close to zero.

Definition at line 425 of file sim2.hpp.

◆ data() [2/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC Scalar const* Sophus::Sim2< Scalar_, Options >::data ( ) const
inline

Const version of data() above.

Definition at line 432 of file sim2.hpp.

◆ Dxi_exp_x_matrix_at_0()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::Sim2< 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 457 of file sim2.hpp.

◆ exp()

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

Derivative of Lie bracket with respect to first element.

This function returns D_a [a, b] with D_a being the differential operator with respect to a, [a, b] being the lie bracket of the Lie algebra sim(2). See lieBracket() below. Group exponential

This functions takes in an element of tangent space and returns the corresponding element of the group Sim(2).

The first two components of a represent the translational part upsilon in the tangent space of Sim(2), the following two components of a represents the rotation theta and the final component represents the logarithm of the scaling factor sigma. To be more specific, this function computes expmat(hat(a)) with expmat(.) being the matrix exponential and hat(.) the hat-operator of Sim(2), see below.

Definition at line 482 of file sim2.hpp.

◆ generator()

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

Returns the ith infinitesimal generators of Sim(2).

The infinitesimal generators of Sim(2) are:

| 0 0 1 |
G_0 = | 0 0 0 |
| 0 0 0 |
| 0 0 0 |
G_1 = | 0 0 1 |
| 0 0 0 |
| 0 -1 0 |
G_2 = | 1 0 0 |
| 0 0 0 |
| 1 0 0 |
G_3 = | 0 1 0 |
| 0 0 0 |

Precondition: i must be in [0, 3].

Definition at line 520 of file sim2.hpp.

◆ hat()

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

hat-operator

It takes in the 4-vector representation and returns the corresponding matrix representation of Lie algebra element.

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

hat(.): R^4 -> R^{3x3}, hat(a) = sum_i a_i * G_i (for i=0,...,6)

with G_i being the ith infinitesimal generator of Sim(2).

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

Definition at line 541 of file sim2.hpp.

◆ lieBracket()

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

Lie bracket

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

[omega_1, omega_2]_sim2 := 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 Sim(2).

Definition at line 559 of file sim2.hpp.

◆ rxso2() [1/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC RxSo2Member& Sophus::Sim2< Scalar_, Options >::rxso2 ( )
inline

Accessor of RxSO2

Definition at line 439 of file sim2.hpp.

◆ rxso2() [2/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC RxSo2Member const& Sophus::Sim2< Scalar_, Options >::rxso2 ( ) const
inline

Mutator of RxSO2

Definition at line 443 of file sim2.hpp.

◆ sampleUniform()

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

Draw uniform sample from Sim(2) manifold.

Translations are drawn component-wise from the range [-1, 1]. The scale factor is drawn uniformly in log2-space from [-1, 1], hence the scale is in [0.5, 2].

Definition at line 585 of file sim2.hpp.

◆ translation() [1/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC TranslationMember& Sophus::Sim2< Scalar_, Options >::translation ( )
inline

Mutator of translation vector

Definition at line 447 of file sim2.hpp.

◆ translation() [2/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC TranslationMember const& Sophus::Sim2< Scalar_, Options >::translation ( ) const
inline

Accessor of translation vector

Definition at line 451 of file sim2.hpp.

◆ vee()

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

vee-operator

It takes the 3x3-matrix representation Omega and maps it to the corresponding 4-vector representation of Lie algebra.

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

Precondition: Omega must have the following structure:

           |  d -c  a |
           |  c  d  b |
           |  0  0  0 |

Definition at line 604 of file sim2.hpp.

Member Data Documentation

◆ rxso2_

template<class Scalar_ , int Options>
RxSo2Member Sophus::Sim2< Scalar_, Options >::rxso2_
protected

Definition at line 613 of file sim2.hpp.

◆ translation_

template<class Scalar_ , int Options>
TranslationMember Sophus::Sim2< Scalar_, Options >::translation_
protected

Definition at line 614 of file sim2.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