aligator  0.16.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
aligator::PinocchioLieGroup< G, > Struct Template Reference

Wrap a Pinocchio Lie group into a ManifoldAbstractTpl object. More...

#include <aligator/modelling/spaces/pinocchio-groups.hpp>

Inheritance diagram for aligator::PinocchioLieGroup< G, >:
[legend]
Collaboration diagram for aligator::PinocchioLieGroup< G, >:
[legend]

Public Types

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

Public Member Functions

 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 PinocchioLieGroup ()
 PinocchioLieGroup (const LieGroup &lg)
 PinocchioLieGroup (const PinocchioLieGroup &lg)=default
 PinocchioLieGroup (PinocchioLieGroup &&lg)=default
template<typename... Args>
 PinocchioLieGroup (Args &&...args)
 operator LieGroup () const
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
int ndx () const
 Get manifold tangent space dimension.
int nx () const
 Get manifold representation dimension.
Public Member Functions inherited from aligator::ManifoldAbstractTpl< G::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).
VectorXs rand () 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

Public Attributes

LieGroup lg_

Protected Member Functions

Implementations
void integrate_impl (const ConstVectorRef &x, const ConstVectorRef &v, VectorRef out) const
 Perform the manifold integration operation.
void difference_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, VectorRef vout) 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
virtual void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
virtual void neutral_impl (VectorRef out) const
virtual void rand_impl (VectorRef out) const
Protected Member Functions inherited from aligator::ManifoldAbstractTpl< G::Scalar >
virtual void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.

Additional Inherited Members

Protected Attributes inherited from aligator::ManifoldAbstractTpl< G::Scalar >
int nx_
int ndx_

Detailed Description

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
struct aligator::PinocchioLieGroup< G, >

Wrap a Pinocchio Lie group into a ManifoldAbstractTpl object.

Definition at line 23 of file pinocchio-groups.hpp.

Member Typedef Documentation

◆ LieGroup

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
using aligator::PinocchioLieGroup< G, >::LieGroup = G

Definition at line 25 of file pinocchio-groups.hpp.

◆ Scalar

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
using aligator::PinocchioLieGroup< G, >::Scalar = typename LieGroup::Scalar

Definition at line 26 of file pinocchio-groups.hpp.

◆ Base

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
using aligator::PinocchioLieGroup< G, >::Base = ManifoldAbstractTpl<Scalar>

Definition at line 27 of file pinocchio-groups.hpp.

Constructor & Destructor Documentation

◆ PinocchioLieGroup() [1/5]

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::PinocchioLieGroup()
inline

Definition at line 34 of file pinocchio-groups.hpp.

◆ PinocchioLieGroup() [2/5]

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::PinocchioLieGroup(const LieGroup &lg)
inline

Definition at line 39 of file pinocchio-groups.hpp.

◆ PinocchioLieGroup() [3/5]

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::PinocchioLieGroup(const PinocchioLieGroup< G, > &lg)
default

◆ PinocchioLieGroup() [4/5]

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::PinocchioLieGroup(PinocchioLieGroup< G, > &&lg)
default

◆ PinocchioLieGroup() [5/5]

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
template<typename... Args>
aligator::PinocchioLieGroup< G, >::PinocchioLieGroup(Args &&...args)
inline

Definition at line 46 of file pinocchio-groups.hpp.

Member Function Documentation

◆ ALIGATOR_DYNAMIC_TYPEDEFS()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)

◆ operator LieGroup()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
aligator::PinocchioLieGroup< G, >::operator LieGroup()const
inline

Definition at line 53 of file pinocchio-groups.hpp.

◆ isNormalized()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
bool aligator::PinocchioLieGroup< G, >::isNormalized(const ConstVectorRef &)const
inlinevirtual

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

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

Definition at line 55 of file pinocchio-groups.hpp.

◆ integrate_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
void aligator::PinocchioLieGroup< G, >::integrate_impl(const ConstVectorRef &x,
const ConstVectorRef &v,
VectorRefout ) const
inlineprotectedvirtual

Perform the manifold integration operation.

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

Definition at line 64 of file pinocchio-groups.hpp.

◆ difference_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
void aligator::PinocchioLieGroup< G, >::difference_impl(const ConstVectorRef &x0,
const ConstVectorRef &x1,
VectorRefout ) const
inlineprotectedvirtual

Implementation of the manifold retraction operation.

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

Definition at line 69 of file pinocchio-groups.hpp.

◆ Jintegrate_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
void aligator::PinocchioLieGroup< G, >::Jintegrate_impl(const ConstVectorRef &x,
const ConstVectorRef &v,
MatrixRefJout,
intarg ) const
inlineprotectedvirtual

◆ JintegrateTransport_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
void aligator::PinocchioLieGroup< G, >::JintegrateTransport_impl(const ConstVectorRef &x,
const ConstVectorRef &v,
MatrixRefJout,
intarg ) const
inlineprotectedvirtual

◆ Jdifference_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
void aligator::PinocchioLieGroup< G, >::Jdifference_impl(const ConstVectorRef &x0,
const ConstVectorRef &x1,
MatrixRefJout,
intarg ) const
inlineprotectedvirtual

◆ interpolate_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
virtual void aligator::PinocchioLieGroup< G, >::interpolate_impl(const ConstVectorRef &x0,
const ConstVectorRef &x1,
const Scalar &u,
VectorRefout ) const
inlineprotectedvirtual

Definition at line 104 of file pinocchio-groups.hpp.

◆ neutral_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
virtual void aligator::PinocchioLieGroup< G, >::neutral_impl(VectorRefout)const
inlineprotectedvirtual

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

Definition at line 110 of file pinocchio-groups.hpp.

◆ rand_impl()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
virtual void aligator::PinocchioLieGroup< G, >::rand_impl(VectorRefout)const
inlineprotectedvirtual

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

Definition at line 112 of file pinocchio-groups.hpp.

◆ ndx()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
int aligator::ManifoldAbstractTpl< Scalar >::ndx()const
inline

Get manifold tangent space dimension.

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

◆ nx()

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
int aligator::ManifoldAbstractTpl< Scalar >::nx()const
inline

Get manifold representation dimension.

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

Member Data Documentation

◆ lg_

template<typename G, std::enable_if_t< is_pinocchio_lie_group< G > > * = nullptr>
LieGroup aligator::PinocchioLieGroup< G, >::lg_

Definition at line 32 of file pinocchio-groups.hpp.


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