aligator  0.15.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
aligator::TangentBundleTpl< Base > Struct Template Reference

Tangent bundle of a base manifold M. More...

#include <aligator/modelling/spaces/tangent-bundle.hpp>

Inheritance diagram for aligator::TangentBundleTpl< Base >:
[legend]
Collaboration diagram for aligator::TangentBundleTpl< Base >:
[legend]

Public Types

using Self = TangentBundleTpl<Base>
 
using Scalar = typename Base::Scalar
 
using ManifoldBase = ManifoldAbstractTpl<Scalar>
 
- Public Types inherited from aligator::ManifoldAbstractTpl< Base::Scalar >
using Scalar
 
using TangentSpaceType
 Typedef for the tangent space, as a manifold.
 

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 
 TangentBundleTpl (const Base &base)
 Constructor using base space instance.
 
template<typename... BaseCtorArgs>
 TangentBundleTpl (BaseCtorArgs... args)
 Constructor using base space constructor.
 
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
 
const Base & getBaseSpace () const
 
template<typename Point>
Point::ConstSegmentReturnType getBasePoint (const Eigen::MatrixBase< Point > &x) const
 
template<typename Point>
Point::SegmentReturnType getBasePointWrite (const Eigen::MatrixBase< Point > &x) const
 
template<typename Tangent>
Tangent::ConstSegmentReturnType getBaseTangent (const Tangent &v) const
 
template<typename Tangent>
Tangent::SegmentReturnType getTangentHeadWrite (const Eigen::MatrixBase< Tangent > &v) const
 
template<typename Jac>
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > getBaseJacobian (const Eigen::MatrixBase< Jac > &J) const
 
int ndx () const
 Get manifold tangent space dimension.
 
int nx () const
 Get manifold representation dimension.
 
- Public Member Functions inherited from aligator::ManifoldAbstractTpl< Base::Scalar >
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 Scalar type.
 
 ManifoldAbstractTpl (int nx, int ndx)
 
virtual ~ManifoldAbstractTpl ()=default
 
int nx () const
 Get manifold representation dimension.
 
int ndx () const
 Get manifold tangent space dimension.
 
VectorXs neutral () const
 Get the neutral element \(e \in M\) from the manifold (if this makes sense).
 
void neutral (VectorRef out) const
 Get the neutral element \(e \in M\) from the manifold (if this makes sense).
 
VectorXs rand () const
 Sample a random point \(x \in M\) on the manifold.
 
void rand (VectorRef out) const
 Sample a random point \(x \in M\) on the manifold.
 
TangentSpaceType tangentSpace () const
 Return an object representing the tangent space as a manifold.
 
void integrate (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
 Manifold integration operation \(x \oplus v\).
 
void Jintegrate (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 Jacobian of the integation operation.
 
void JintegrateTransport (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 Perform the parallel transport operation.
 
void difference (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
 Manifold difference/retraction operation \(x_1 \ominus x_0\).
 
void Jdifference (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const
 Jacobian of the retraction operation.
 
void interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 
VectorXs integrate (const ConstVectorRef &x, const ConstVectorRef &v) const
 Manifold integration operation \(x \oplus v\).
 
VectorXs difference (const ConstVectorRef &x0, const ConstVectorRef &x1) const
 Manifold difference/retraction operation \(x_1 \ominus x_0\).
 
VectorXs interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u) const
 Interpolation operation.
 

Static Public Attributes

static constexpr int Options = Base::Options
 

Protected Member Functions

Implementations of operators
void neutral_impl (VectorRef out) const
 
void rand_impl (VectorRef out) const
 
void integrate_impl (const ConstVectorRef &x, const ConstVectorRef &dx, VectorRef out) const
 Perform the manifold integration operation.
 
void difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef out) const
 Implementation of the manifold retraction operation.
 
void Jintegrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 
void JintegrateTransport_impl (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 
void Jdifference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, MatrixRef Jout, int arg) const
 
void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.
 

Protected Attributes

Base base_
 
- Protected Attributes inherited from aligator::ManifoldAbstractTpl< Base::Scalar >
int nx_
 
int ndx_
 

Detailed Description

template<class Base>
struct aligator::TangentBundleTpl< Base >

Tangent bundle of a base manifold M.

Definition at line 9 of file tangent-bundle.hpp.

Member Typedef Documentation

◆ Self

template<class Base>
using aligator::TangentBundleTpl< Base >::Self = TangentBundleTpl<Base>

Definition at line 14 of file tangent-bundle.hpp.

◆ Scalar

template<class Base>
using aligator::TangentBundleTpl< Base >::Scalar = typename Base::Scalar

Definition at line 15 of file tangent-bundle.hpp.

◆ ManifoldBase

template<class Base>
using aligator::TangentBundleTpl< Base >::ManifoldBase = ManifoldAbstractTpl<Scalar>

Definition at line 18 of file tangent-bundle.hpp.

Constructor & Destructor Documentation

◆ TangentBundleTpl() [1/2]

template<class Base>
aligator::TangentBundleTpl< Base >::TangentBundleTpl ( const Base & base)
inline

Constructor using base space instance.

Definition at line 23 of file tangent-bundle.hpp.

◆ TangentBundleTpl() [2/2]

template<class Base>
template<typename... BaseCtorArgs>
aligator::TangentBundleTpl< Base >::TangentBundleTpl ( BaseCtorArgs... args)
inline

Constructor using base space constructor.

Definition at line 29 of file tangent-bundle.hpp.

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<class Base>
aligator::TangentBundleTpl< Base >::ALIGATOR_DYNAMIC_TYPEDEFS ( Scalar )

◆ isNormalized()

template<class Base>
bool aligator::TangentBundleTpl< Base >::isNormalized ( const ConstVectorRef & ) const
inlinevirtual

Check if the input vector x is a viable element of the manifold.

Reimplemented from aligator::ManifoldAbstractTpl< Base::Scalar >.

Definition at line 36 of file tangent-bundle.hpp.

◆ getBaseSpace()

template<class Base>
const Base & aligator::TangentBundleTpl< Base >::getBaseSpace ( ) const
inline

Definition at line 41 of file tangent-bundle.hpp.

◆ getBasePoint()

template<class Base>
template<typename Point>
Point::ConstSegmentReturnType aligator::TangentBundleTpl< Base >::getBasePoint ( const Eigen::MatrixBase< Point > & x) const
inline

Get base point of an element of the tangent bundle. This map is exactly the natural projection.

Definition at line 47 of file tangent-bundle.hpp.

◆ getBasePointWrite()

template<class Base>
template<typename Point>
Point::SegmentReturnType aligator::TangentBundleTpl< Base >::getBasePointWrite ( const Eigen::MatrixBase< Point > & x) const
inline

Definition at line 53 of file tangent-bundle.hpp.

◆ getBaseTangent()

template<class Base>
template<typename Tangent>
Tangent::ConstSegmentReturnType aligator::TangentBundleTpl< Base >::getBaseTangent ( const Tangent & v) const
inline

Definition at line 59 of file tangent-bundle.hpp.

◆ getTangentHeadWrite()

template<class Base>
template<typename Tangent>
Tangent::SegmentReturnType aligator::TangentBundleTpl< Base >::getTangentHeadWrite ( const Eigen::MatrixBase< Tangent > & v) const
inline

Definition at line 65 of file tangent-bundle.hpp.

◆ getBaseJacobian()

template<class Base>
template<typename Jac>
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > aligator::TangentBundleTpl< Base >::getBaseJacobian ( const Eigen::MatrixBase< Jac > & J) const
inline

Definition at line 71 of file tangent-bundle.hpp.

◆ neutral_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::neutral_impl ( VectorRef out) const
protectedvirtual

◆ rand_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::rand_impl ( VectorRef out) const
protectedvirtual

◆ integrate_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::integrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
VectorRef out ) const
protectedvirtual

Perform the manifold integration operation.

Implements aligator::ManifoldAbstractTpl< Base::Scalar >.

◆ difference_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::difference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
VectorRef out ) const
protectedvirtual

Implementation of the manifold retraction operation.

Implements aligator::ManifoldAbstractTpl< Base::Scalar >.

◆ Jintegrate_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::Jintegrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
protectedvirtual

◆ JintegrateTransport_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::JintegrateTransport_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
protectedvirtual

◆ Jdifference_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::Jdifference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
MatrixRef Jout,
int arg ) const
protectedvirtual

◆ interpolate_impl()

template<class Base>
void aligator::TangentBundleTpl< Base >::interpolate_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
const Scalar & u,
VectorRef out ) const
protectedvirtual

Interpolation operation.

Reimplemented from aligator::ManifoldAbstractTpl< Base::Scalar >.

◆ ndx()

template<class Base>
int aligator::ManifoldAbstractTpl< Scalar >::ndx ( ) const
inline

Get manifold tangent space dimension.

Definition at line 27 of file manifold-base.hpp.

◆ nx()

template<class Base>
int aligator::ManifoldAbstractTpl< Scalar >::nx ( ) const
inline

Get manifold representation dimension.

Definition at line 25 of file manifold-base.hpp.

Member Data Documentation

◆ base_

template<class Base>
Base aligator::TangentBundleTpl< Base >::base_
protected

Definition at line 11 of file tangent-bundle.hpp.

◆ Options

template<class Base>
int aligator::TangentBundleTpl< Base >::Options = Base::Options
staticconstexpr

Definition at line 16 of file tangent-bundle.hpp.


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