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.
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.
template<class Scalar_ , int Options>
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.
template<class Scalar_ , int Options>
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.
template<class Scalar_ , int Options>
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.
template<class Scalar_ , int Options>
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.
template<class Scalar_ , int Options>
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.
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.
template<class Scalar_ , int Options>
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.