Template Class Cartesian
Defined in File cartesian.hpp
Inheritance Relationships
Base Type
public Sophus::CartesianBase< Cartesian< Scalar_, M, Options >, M >
(Template Class CartesianBase)
Class Documentation
-
template<class Scalar_, int M, int Options>
class Cartesian : public Sophus::CartesianBase<Cartesian<Scalar_, M, Options>, M> Cartesian using default storage; derived from CartesianBase.
Public Types
-
using Transformation = typename Base::Transformation
-
using Point = typename Base::Point
-
using HomogeneousPoint = typename Base::HomogeneousPoint
-
using Tangent = typename Base::Tangent
Public Functions
- SOPHUS_FUNC Cartesian & operator= (Cartesian const &other)=default
Define copy-assignment operator explicitly. The definition of implicit copy assignment operator is deprecated in presence of a user-declared copy constructor (-Wdeprecated-copy in clang >= 13).
- inline EIGEN_MAKE_ALIGNED_OPERATOR_NEW SOPHUS_FUNC Cartesian ()
Default constructor initializes to zero vector.
-
template<class OtherDerived>
inline SOPHUS_FUNC Cartesian(CartesianBase<OtherDerived, M> const &other) Copy-like constructor from OtherDerived.
-
template<class D>
inline explicit SOPHUS_FUNC Cartesian(Eigen::MatrixBase<D> const &m) Accepts either M-vector or (M+1)x(M+1) matrices.
- inline SOPHUS_FUNC Scalar * data ()
This provides unsafe read/write access to internal data.
- inline SOPHUS_FUNC Scalar const * data () const
Const version of data() above.
- inline SOPHUS_FUNC ParamsMember & params ()
Mutator of params vector
- inline SOPHUS_FUNC ParamsMember const & params () const
Accessor of params vector
Public Static Functions
- static inline SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoF > Dx_exp_x_at_0 ()
Returns derivative of exp(x) wrt. x.
- static inline SOPHUS_FUNC Sophus::Matrix< Scalar, num_parameters, DoF > Dx_exp_x (Tangent const &)
Returns derivative of exp(x) wrt. x_i at x=0.
- static inline SOPHUS_FUNC Sophus::Matrix< Scalar, Dim, DoF > Dx_exp_x_times_point_at_0 (Point const &)
Returns derivative of exp(x) * p wrt. x_i at x=0.
- static inline SOPHUS_FUNC Transformation Dxi_exp_x_matrix_at_0 (int i)
Returns derivative of exp(x).matrix() wrt.
x_i at x=0
.
- static inline SOPHUS_FUNC Transformation generator (int i)
Returns the ith infinitesimal generators of Cartesian(M).
The infinitesimal generators for e.g. the 3-dimensional case:
| 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 |
Precondition:
i
must be in [0, M-1].
- static inline SOPHUS_FUNC Cartesian< Scalar, M > exp (Tangent const &a)
Group exponential
For Euclidean vector space, just the identity. Or to be more precise it just constructs the (M+1xM+1) homogeneous matrix representation
- static inline SOPHUS_FUNC Transformation hat (Tangent const &a)
hat-operator
Formally, the hat()-operator of Cartesian(M) is defined as
hat(.): R^M -> R^{M+1xM+1}, hat(a) = sum_i a_i * G_i
(for i=0,…,M-1)with
G_i
being the ith infinitesimal generator of Cartesian(M).The corresponding inverse is the vee()-operator, see below.
- static inline SOPHUS_FUNC Tangent lieBracket (Tangent const &, Tangent const &)
Lie bracket
Always 0 for commutative groups.
-
template<class UniformRandomBitGenerator>
static inline Cartesian sampleUniform(UniformRandomBitGenerator &generator) Draws uniform samples in the range [-1, 1] per coordinates.
- static inline SOPHUS_FUNC Tangent vee (Transformation const &m)
vee-operator
This is the inverse of the hat()-operator, see above.
Public Static Attributes
-
static constexpr int DoF = Base::DoF
-
static constexpr int num_parameters = Base::num_parameters
-
static constexpr int N = Base::N
-
static constexpr int Dim = Base::Dim
Protected Attributes
-
ParamsMember params_
-
using Transformation = typename Base::Transformation