proxsuite-nlp  0.10.0
A primal-dual augmented Lagrangian-type solver for nonlinear programming on manifolds.
Loading...
Searching...
No Matches
proxsuite::nlp::PinocchioLieGroup< _LieGroup > Struct Template Reference

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

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

Inheritance diagram for proxsuite::nlp::PinocchioLieGroup< _LieGroup >:
[legend]
Collaboration diagram for proxsuite::nlp::PinocchioLieGroup< _LieGroup >:
[legend]

Public Types

using LieGroup = _LieGroup
 
using Scalar = typename LieGroup::Scalar
 
using Base = ManifoldAbstractTpl<Scalar, Options>
 
- Public Types inherited from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >
using Scalar
 
using TangentSpaceType
 Typedef for the tangent space, as a manifold.
 

Public Member Functions

 PinocchioLieGroup ()
 
 PinocchioLieGroup (const LieGroup &lg)
 
 PinocchioLieGroup (LieGroup &&lg)
 
 PinocchioLieGroup (const PinocchioLieGroup &lg)=default
 
 PinocchioLieGroup (PinocchioLieGroup &&lg)=default
 
template<typename... Args>
 PinocchioLieGroup (Args &&...args)
 
 operator LieGroup ()
 
int nx () const
 Get manifold representation dimension.
 
int ndx () const
 Get manifold tangent space dimension.
 
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 (const ConstVectorRef &x, const ConstVectorRef &v, MatrixRef Jout, int arg) const
 Perform the parallel transport operation.
 
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
 
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.
 
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
 
- Public Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >
virtual ~ManifoldAbstractTpl ()=default
 
const 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 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.
 

Public Attributes

 Scalar
 
LieGroup lg_
 
- Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >
 Scalar
 

Static Public Attributes

static constexpr int Options = LieGroup::Options
 
- Static Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >
static constexpr int Options
 Scalar type.
 

Additional Inherited Members

- Protected Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >
virtual void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.
 

Detailed Description

template<typename _LieGroup>
struct proxsuite::nlp::PinocchioLieGroup< _LieGroup >

Wrap a Pinocchio Lie group into a ManifoldAbstractTpl object.

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

Member Typedef Documentation

◆ LieGroup

template<typename _LieGroup >
using proxsuite::nlp::PinocchioLieGroup< _LieGroup >::LieGroup = _LieGroup

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

◆ Scalar

template<typename _LieGroup >
using proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Scalar = typename LieGroup::Scalar

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

◆ Base

template<typename _LieGroup >
using proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Base = ManifoldAbstractTpl<Scalar, Options>

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

Constructor & Destructor Documentation

◆ PinocchioLieGroup() [1/6]

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( )
inline

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

◆ PinocchioLieGroup() [2/6]

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( const LieGroup & lg)
inline

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

◆ PinocchioLieGroup() [3/6]

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( LieGroup && lg)
inline

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

◆ PinocchioLieGroup() [4/6]

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( const PinocchioLieGroup< _LieGroup > & lg)
default

◆ PinocchioLieGroup() [5/6]

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( PinocchioLieGroup< _LieGroup > && lg)
default

◆ PinocchioLieGroup() [6/6]

template<typename _LieGroup >
template<typename... Args>
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::PinocchioLieGroup ( Args &&... args)
inline

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

Member Function Documentation

◆ operator LieGroup()

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::operator LieGroup ( )
inline

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

◆ nx()

template<typename _LieGroup >
int proxsuite::nlp::PinocchioLieGroup< _LieGroup >::nx ( ) const
inlinevirtual

Get manifold representation dimension.

Implements proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ ndx()

template<typename _LieGroup >
int proxsuite::nlp::PinocchioLieGroup< _LieGroup >::ndx ( ) const
inlinevirtual

Get manifold tangent space dimension.

Implements proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ integrate_impl()

template<typename _LieGroup >
void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::integrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
VectorRef out ) const
inlinevirtual

Perform the manifold integration operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ difference_impl()

template<typename _LieGroup >
void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::difference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
VectorRef out ) const
inlinevirtual

Implementation of the manifold retraction operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ Jintegrate_impl()

template<typename _LieGroup >
void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Jintegrate_impl ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
inlinevirtual

◆ JintegrateTransport()

template<typename _LieGroup >
void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::JintegrateTransport ( const ConstVectorRef & x,
const ConstVectorRef & v,
MatrixRef Jout,
int arg ) const
inlinevirtual

Perform the parallel transport operation.

Implements proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ Jdifference_impl()

template<typename _LieGroup >
void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Jdifference_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
MatrixRef Jout,
int arg ) const
inlinevirtual

◆ interpolate_impl()

template<typename _LieGroup >
virtual void proxsuite::nlp::PinocchioLieGroup< _LieGroup >::interpolate_impl ( const ConstVectorRef & x0,
const ConstVectorRef & x1,
const Scalar & u,
VectorRef out ) const
inlinevirtual

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

◆ neutral()

template<typename _LieGroup >
VectorXs proxsuite::nlp::PinocchioLieGroup< _LieGroup >::neutral ( ) const
inlinevirtual

Get the neutral element \(e \in M\) from the manifold (if this makes sense).

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ rand()

template<typename _LieGroup >
VectorXs proxsuite::nlp::PinocchioLieGroup< _LieGroup >::rand ( ) const
inlinevirtual

Sample a random point \(x \in M\) on the manifold.

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

◆ isNormalized()

template<typename _LieGroup >
bool proxsuite::nlp::PinocchioLieGroup< _LieGroup >::isNormalized ( const ConstVectorRef & ) const
inlinevirtual

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

Reimplemented from proxsuite::nlp::ManifoldAbstractTpl< _LieGroup::Scalar, _LieGroup::Options >.

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

Member Data Documentation

◆ Options

template<typename _LieGroup >
int proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Options = LieGroup::Options
staticconstexpr

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

◆ Scalar

template<typename _LieGroup >
proxsuite::nlp::PinocchioLieGroup< _LieGroup >::Scalar

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

◆ lg_

template<typename _LieGroup >
LieGroup proxsuite::nlp::PinocchioLieGroup< _LieGroup >::lg_

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


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