farm-ng-core
sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup > Class Template Reference

Semi direct product of a Lie group (factor group) and the vector space (translation). More...

#include <translation_factor_group_product.h>

Public Types

using Scalar = TScalar
 
using FactorGroup = TFactorGroup< Scalar >
 
using Tangent = Eigen::Vector< Scalar, kDof >
 
using Params = Eigen::Vector< Scalar, kNumParams >
 
using Point = Eigen::Vector< Scalar, kPointDim >
 
template<class TCompatibleScalar >
using ScalarReturn = typename Eigen::ScalarBinaryOpTraits< Scalar, TCompatibleScalar >::ReturnType
 
template<class TCompatibleScalar >
using ParamsReturn = Eigen::Vector< ScalarReturn< TCompatibleScalar >, kNumParams >
 
template<class TCompatibleScalar >
using PointReturn = Eigen::Vector< ScalarReturn< TCompatibleScalar >, kPointDim >
 
template<class TCompatibleScalar >
using UnitVectorReturn = UnitVector< ScalarReturn< TCompatibleScalar >, kPointDim >
 

Static Public Member Functions

static auto identityParams () -> Params
 
static auto areParamsValid (Params const &params) -> sophus::Expected< Success >
 
static auto hasShortestPathAmbiguity (Params const &params) -> bool
 
static auto exp (Tangent tangent) -> Params
 
static auto log (Params const &params) -> Tangent
 
static auto hat (Tangent const &tangent) -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
 
static auto vee (Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim > const &mat) -> Eigen::Matrix< Scalar, kDof, 1 >
 
template<class TCompatibleScalar >
static auto multiplication (Params const &lhs_params, Eigen::Vector< TCompatibleScalar, kNumParams > const &rhs_params) -> ParamsReturn< TCompatibleScalar >
 
static auto inverse (Params const &params) -> Params
 
template<class TCompatibleScalar >
static auto action (Params const &params, Eigen::Matrix< TCompatibleScalar, kPointDim, 1 > const &point) -> PointReturn< TCompatibleScalar >
 
static auto toAmbient (Point const &point) -> Eigen::Vector< Scalar, kAmbientDim >
 
template<class TCompatibleScalar >
static auto action (Params const &params, UnitVector< TCompatibleScalar, kPointDim > const &direction) -> UnitVectorReturn< TCompatibleScalar >
 
static auto adj (Params const &params) -> Eigen::Matrix< Scalar, kDof, kDof >
 
static auto ad (Tangent const &tangent) -> Eigen::Matrix< Scalar, kDof, kDof >
 
static auto compactMatrix (Params const &params) -> Eigen::Matrix< Scalar, kPointDim, kAmbientDim >
 
static auto matrix (Params const &params) -> Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim >
 
static auto dxExpXAt0 () -> Eigen::Matrix< Scalar, kNumParams, kDof >
 
static auto dxExpXTimesPointAt0 (Point const &point) -> Eigen::Matrix< Scalar, kPointDim, kDof >
 
static auto dxThisMulExpXAt0 (Params const &params) -> Eigen::Matrix< Scalar, kNumParams, kDof >
 
static auto dxLogThisInvTimesXAtThis (Params const &params) -> Eigen::Matrix< Scalar, kDof, kNumParams >
 
static auto tangentExamples () -> std::vector< Tangent >
 
static auto paramsExamples () -> std::vector< Params >
 
static auto invalidParamsExamples () -> std::vector< Params >
 

Static Public Attributes

static const int kPointDim = kTranslationDim
 
static constexpr bool kIsOriginPreserving = false
 
static constexpr bool kIsAxisDirectionPreserving
 
static constexpr bool kIsDirectionVectorPreserving
 
static constexpr bool kIsShapePreserving = FactorGroup::kIsShapePreserving
 
static constexpr bool kIsSizePreserving = FactorGroup::kIsSizePreserving
 
static constexpr bool kIisParallelLinePreserving = true
 
static const int kDof = FactorGroup::kDof + kPointDim
 
static const int kNumParams = FactorGroup::kNumParams + kPointDim
 
static const int kAmbientDim = kPointDim + 1
 

Detailed Description

template<class TScalar, int kTranslationDim, template< class > class TFactorGroup>
class sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >

Semi direct product of a Lie group (factor group) and the vector space (translation).

Member Typedef Documentation

◆ FactorGroup

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::FactorGroup = TFactorGroup<Scalar>

◆ Params

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::Params = Eigen::Vector<Scalar, kNumParams>

◆ ParamsReturn

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::ParamsReturn = Eigen::Vector<ScalarReturn<TCompatibleScalar>, kNumParams>

◆ Point

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::Point = Eigen::Vector<Scalar, kPointDim>

◆ PointReturn

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::PointReturn = Eigen::Vector<ScalarReturn<TCompatibleScalar>, kPointDim>

◆ Scalar

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::Scalar = TScalar

◆ ScalarReturn

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::ScalarReturn = typename Eigen:: ScalarBinaryOpTraits<Scalar, TCompatibleScalar>::ReturnType

◆ Tangent

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::Tangent = Eigen::Vector<Scalar, kDof>

◆ UnitVectorReturn

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
using sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::UnitVectorReturn = UnitVector<ScalarReturn<TCompatibleScalar>, kPointDim>

Member Function Documentation

◆ action() [1/2]

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::action ( Params const &  params,
Eigen::Matrix< TCompatibleScalar, kPointDim, 1 > const &  point 
) -> PointReturn<TCompatibleScalar>
inlinestatic

◆ action() [2/2]

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::action ( Params const &  params,
UnitVector< TCompatibleScalar, kPointDim > const &  direction 
) -> UnitVectorReturn<TCompatibleScalar>
inlinestatic

◆ ad()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::ad ( Tangent const &  tangent) -> Eigen::Matrix<Scalar, kDof, kDof>
inlinestatic

◆ adj()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::adj ( Params const &  params) -> Eigen::Matrix<Scalar, kDof, kDof>
inlinestatic

◆ areParamsValid()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::areParamsValid ( Params const &  params) -> sophus::Expected<Success>
inlinestatic

◆ compactMatrix()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::compactMatrix ( Params const &  params) -> Eigen::Matrix<Scalar, kPointDim, kAmbientDim>
inlinestatic

◆ dxExpXAt0()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::dxExpXAt0 ( ) -> Eigen::Matrix<Scalar, kNumParams, kDof>
inlinestatic

◆ dxExpXTimesPointAt0()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::dxExpXTimesPointAt0 ( Point const &  point) -> Eigen::Matrix<Scalar, kPointDim, kDof>
inlinestatic

◆ dxLogThisInvTimesXAtThis()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::dxLogThisInvTimesXAtThis ( Params const &  params) -> Eigen::Matrix<Scalar, kDof, kNumParams>
inlinestatic

◆ dxThisMulExpXAt0()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::dxThisMulExpXAt0 ( Params const &  params) -> Eigen::Matrix<Scalar, kNumParams, kDof>
inlinestatic

◆ exp()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::exp ( Tangent  tangent) -> Params
inlinestatic

◆ hasShortestPathAmbiguity()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::hasShortestPathAmbiguity ( Params const &  params) -> bool
inlinestatic

◆ hat()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::hat ( Tangent const &  tangent) -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim>
inlinestatic

◆ identityParams()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::identityParams ( ) -> Params
inlinestatic

◆ invalidParamsExamples()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::invalidParamsExamples ( ) -> std::vector<Params>
inlinestatic

◆ inverse()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::inverse ( Params const &  params) -> Params
inlinestatic

◆ log()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::log ( Params const &  params) -> Tangent
inlinestatic

◆ matrix()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::matrix ( Params const &  params) -> Eigen::Matrix<Scalar, kAmbientDim, kAmbientDim>
inlinestatic

◆ multiplication()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
template<class TCompatibleScalar >
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::multiplication ( Params const &  lhs_params,
Eigen::Vector< TCompatibleScalar, kNumParams > const &  rhs_params 
) -> ParamsReturn<TCompatibleScalar>
inlinestatic

◆ paramsExamples()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::paramsExamples ( ) -> std::vector<Params>
inlinestatic

◆ tangentExamples()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::tangentExamples ( ) -> std::vector<Tangent>
inlinestatic

◆ toAmbient()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::toAmbient ( Point const &  point) -> Eigen::Vector<Scalar, kAmbientDim>
inlinestatic

◆ vee()

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
static auto sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::vee ( Eigen::Matrix< Scalar, kAmbientDim, kAmbientDim > const &  mat) -> Eigen::Matrix<Scalar, kDof, 1>
inlinestatic

Member Data Documentation

◆ kAmbientDim

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
const int sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kAmbientDim = kPointDim + 1
static

◆ kDof

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
const int sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kDof = FactorGroup::kDof + kPointDim
static

◆ kIisParallelLinePreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIisParallelLinePreserving = true
staticconstexpr

◆ kIsAxisDirectionPreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIsAxisDirectionPreserving
staticconstexpr
Initial value:
=
FactorGroup::kIsAxisDirectionPreserving

◆ kIsDirectionVectorPreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIsDirectionVectorPreserving
staticconstexpr
Initial value:
=
FactorGroup::kIsDirectionVectorPreserving

◆ kIsOriginPreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIsOriginPreserving = false
staticconstexpr

◆ kIsShapePreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIsShapePreserving = FactorGroup::kIsShapePreserving
staticconstexpr

◆ kIsSizePreserving

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
constexpr bool sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kIsSizePreserving = FactorGroup::kIsSizePreserving
staticconstexpr

◆ kNumParams

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
const int sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kNumParams = FactorGroup::kNumParams + kPointDim
static

◆ kPointDim

template<class TScalar , int kTranslationDim, template< class > class TFactorGroup>
const int sophus::lie::TranslationFactorGroupProduct< TScalar, kTranslationDim, TFactorGroup >::kPointDim = kTranslationDim
static

The documentation for this class was generated from the following file: