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