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

Sim3 using default storage; derived from Sim3Base. More...

#include <sim3.hpp>

Public Types

using Adjoint = typename Base::Adjoint
 
using Base = Sim3Base< Sim3< Scalar_, Options > >
 
using HomogeneousPoint = typename Base::HomogeneousPoint
 
using Point = typename Base::Point
 
using RxSo3Member = RxSO3< Scalar, Options >
 
using Scalar = Scalar_
 
using Tangent = typename Base::Tangent
 
using Transformation = typename Base::Transformation
 
using TranslationMember = Vector3< Scalar, Options >
 

Public Member Functions

SOPHUS_FUNC Scalardata ()
 
SOPHUS_FUNC Scalar const * data () const
 
SOPHUS_FUNC RxSo3Memberrxso3 ()
 
SOPHUS_FUNC RxSo3Member const & rxso3 () const
 
EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC Sim3 ()
 
template<class D1 , class D2 >
SOPHUS_FUNC Sim3 (Eigen::QuaternionBase< D1 > const &quaternion, Eigen::MatrixBase< D2 > const &translation)
 
SOPHUS_FUNC Sim3 (Matrix< Scalar, 4, 4 > const &T)
 
template<class OtherDerived , class D >
SOPHUS_FUNC Sim3 (RxSO3Base< OtherDerived > const &rxso3, Eigen::MatrixBase< D > const &translation)
 
SOPHUS_FUNC Sim3 (Sim3 const &other)=default
 
template<class OtherDerived >
SOPHUS_FUNC Sim3 (Sim3Base< OtherDerived > const &other)
 
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 Sim3< 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 Sim3 sampleUniform (UniformRandomBitGenerator &generator)
 
static SOPHUS_FUNC Tangent vee (Transformation const &Omega)
 

Protected Attributes

RxSo3Member rxso3_
 
TranslationMember translation_
 

Detailed Description

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

Sim3 using default storage; derived from Sim3Base.

Definition at line 12 of file sim3.hpp.

Member Typedef Documentation

◆ Adjoint

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

Definition at line 364 of file sim3.hpp.

◆ Base

template<class Scalar_ , int Options>
using Sophus::Sim3< Scalar_, Options >::Base = Sim3Base<Sim3<Scalar_, Options> >

Definition at line 358 of file sim3.hpp.

◆ HomogeneousPoint

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

Definition at line 362 of file sim3.hpp.

◆ Point

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

Definition at line 361 of file sim3.hpp.

◆ RxSo3Member

template<class Scalar_ , int Options>
using Sophus::Sim3< Scalar_, Options >::RxSo3Member = RxSO3<Scalar, Options>

Definition at line 365 of file sim3.hpp.

◆ Scalar

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

Definition at line 359 of file sim3.hpp.

◆ Tangent

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

Definition at line 363 of file sim3.hpp.

◆ Transformation

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

Definition at line 360 of file sim3.hpp.

◆ TranslationMember

template<class Scalar_ , int Options>
using Sophus::Sim3< Scalar_, Options >::TranslationMember = Vector3<Scalar, Options>

Definition at line 366 of file sim3.hpp.

Constructor & Destructor Documentation

◆ Sim3() [1/6]

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

Default constructor initializes similarity transform to the identity.

Definition at line 635 of file sim3.hpp.

◆ Sim3() [2/6]

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

Copy constructor

◆ Sim3() [3/6]

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

Copy-like constructor from OtherDerived.

Definition at line 381 of file sim3.hpp.

◆ Sim3() [4/6]

template<class Scalar_ , int Options>
template<class OtherDerived , class D >
SOPHUS_FUNC Sophus::Sim3< Scalar_, Options >::Sim3 ( RxSO3Base< OtherDerived > const &  rxso3,
Eigen::MatrixBase< D > const &  translation 
)
inline

Constructor from RxSO3 and translation vector

Definition at line 390 of file sim3.hpp.

◆ Sim3() [5/6]

template<class Scalar_ , int Options>
template<class D1 , class D2 >
SOPHUS_FUNC Sophus::Sim3< Scalar_, Options >::Sim3 ( Eigen::QuaternionBase< D1 > const &  quaternion,
Eigen::MatrixBase< D2 > const &  translation 
)
inline

Constructor from quaternion and translation vector.

Precondition: quaternion must not be close to zero.

Definition at line 404 of file sim3.hpp.

◆ Sim3() [6/6]

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

Constructor from 4x4 matrix

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

Definition at line 418 of file sim3.hpp.

Member Function Documentation

◆ data() [1/2]

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

This provides unsafe read/write access to internal data. Sim(3) is represented by an Eigen::Quaternion (four parameters) and a 3-vector. When using direct write access, the user needs to take care of that the quaternion is not set close to zero.

Definition at line 427 of file sim3.hpp.

◆ data() [2/2]

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

Const version of data() above.

Definition at line 434 of file sim3.hpp.

◆ Dxi_exp_x_matrix_at_0()

template<class Scalar_ , int Options>
static SOPHUS_FUNC Transformation Sophus::Sim3< 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 459 of file sim3.hpp.

◆ exp()

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

Group exponential

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

The first three components of a represent the translational part upsilon in the tangent space of Sim(3), the following three components of a represents the rotation vector omega 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(3), see below.

Definition at line 476 of file sim3.hpp.

◆ generator()

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

Returns the ith infinitesimal generators of Sim(3).

The infinitesimal generators of Sim(3) are:

| 0 0 0 1 |
G_0 = | 0 0 0 0 |
| 0 0 0 0 |
| 0 0 0 0 |
| 0 0 0 0 |
G_1 = | 0 0 0 1 |
| 0 0 0 0 |
| 0 0 0 0 |
| 0 0 0 0 |
G_2 = | 0 0 0 0 |
| 0 0 0 1 |
| 0 0 0 0 |
| 0 0 0 0 |
G_3 = | 0 0 -1 0 |
| 0 1 0 0 |
| 0 0 0 0 |
| 0 0 1 0 |
G_4 = | 0 0 0 0 |
| -1 0 0 0 |
| 0 0 0 0 |
| 0 -1 0 0 |
G_5 = | 1 0 0 0 |
| 0 0 0 0 |
| 0 0 0 0 |
| 1 0 0 0 |
G_6 = | 0 1 0 0 |
| 0 0 1 0 |
| 0 0 0 0 |

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

Definition at line 536 of file sim3.hpp.

◆ hat()

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

hat-operator

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

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

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

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

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

Definition at line 557 of file sim3.hpp.

◆ lieBracket()

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

Lie bracket

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

[omega_1, omega_2]_sim3 := 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(3).

Definition at line 575 of file sim3.hpp.

◆ rxso3() [1/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC RxSo3Member& Sophus::Sim3< Scalar_, Options >::rxso3 ( )
inline

Accessor of RxSO3

Definition at line 441 of file sim3.hpp.

◆ rxso3() [2/2]

template<class Scalar_ , int Options>
SOPHUS_FUNC RxSo3Member const& Sophus::Sim3< Scalar_, Options >::rxso3 ( ) const
inline

Mutator of RxSO3

Definition at line 445 of file sim3.hpp.

◆ sampleUniform()

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

Draw uniform sample from Sim(3) 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 600 of file sim3.hpp.

◆ translation() [1/2]

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

Mutator of translation vector

Definition at line 449 of file sim3.hpp.

◆ translation() [2/2]

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

Accessor of translation vector

Definition at line 453 of file sim3.hpp.

◆ vee()

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

vee-operator

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

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

Precondition: Omega must have the following structure:

           |  g -f  e  a |
           |  f  g -d  b |
           | -e  d  g  c |
           |  0  0  0  0 |

Definition at line 621 of file sim3.hpp.

Member Data Documentation

◆ rxso3_

template<class Scalar_ , int Options>
RxSo3Member Sophus::Sim3< Scalar_, Options >::rxso3_
protected

Definition at line 630 of file sim3.hpp.

◆ translation_

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

Definition at line 631 of file sim3.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