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

The tangent bundle of a multibody configuration group. More...

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

Inheritance diagram for proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >:
[legend]
Collaboration diagram for proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >:
[legend]

Public Types

using ConfigSpace = MultibodyConfiguration<Scalar, Options>
 
using ModelType = typename ConfigSpace::ModelType
 
- Public Types inherited from proxsuite::nlp::TangentBundleTpl< MultibodyConfiguration< Scalar, 0 > >
using Self
 
using Scalar
 
- Public Types inherited from proxsuite::nlp::ManifoldAbstractTpl< MultibodyConfiguration< Scalar, 0 >::Scalar >
using Scalar
 
using TangentSpaceType
 Typedef for the tangent space, as a manifold.
 

Public Member Functions

const ModelTypegetModel () const
 
 MultibodyPhaseSpace (const ModelType &model)
 
 MultibodyPhaseSpace (const MultibodyPhaseSpace &)=default
 
MultibodyPhaseSpaceoperator= (const MultibodyPhaseSpace &)=default
 
 MultibodyPhaseSpace (MultibodyPhaseSpace &&)=default
 
MultibodyPhaseSpaceoperator= (MultibodyPhaseSpace &&)=default
 
- Public Member Functions inherited from proxsuite::nlp::TangentBundleTpl< MultibodyConfiguration< Scalar, 0 > >
 TangentBundleTpl (MultibodyConfiguration< Scalar, 0 > base)
 Constructor using base space instance.
 
 TangentBundleTpl (BaseCtorArgs... args)
 Constructor using base space constructor.
 
int nx () const
 Declare implementations.
 
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.
 
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
 
const MultibodyConfiguration< Scalar, 0 > & getBaseSpace () 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 (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
 
void interpolate_impl (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u, VectorRef out) const
 Interpolation operation.
 
Point::ConstSegmentReturnType getBasePoint (const Point &x) const
 
Point::SegmentReturnType getBasePointWrite (const Point &x) const
 
Tangent::ConstSegmentReturnType getBaseTangent (const Tangent &v) const
 
Tangent::SegmentReturnType getTangentHeadWrite (const Tangent &v) const
 
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > getBaseJacobian (const Jac &J) const
 
- Public Member Functions inherited from proxsuite::nlp::ManifoldAbstractTpl< MultibodyConfiguration< Scalar, 0 >::Scalar >
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
 
VectorXs difference (const ConstVectorRef &x0, const ConstVectorRef &x1) const
 
VectorXs interpolate (const ConstVectorRef &x0, const ConstVectorRef &x1, const Scalar &u) const
 

Additional Inherited Members

- Public Attributes inherited from proxsuite::nlp::TangentBundleTpl< MultibodyConfiguration< Scalar, 0 > >
 Scalar
 
- Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< MultibodyConfiguration< Scalar, 0 >::Scalar >
 Scalar
 
- Static Public Attributes inherited from proxsuite::nlp::TangentBundleTpl< MultibodyConfiguration< Scalar, 0 > >
static constexpr int Options
 
- Static Public Attributes inherited from proxsuite::nlp::ManifoldAbstractTpl< MultibodyConfiguration< Scalar, 0 >::Scalar >
static constexpr int Options
 Scalar type.
 
- Protected Attributes inherited from proxsuite::nlp::TangentBundleTpl< MultibodyConfiguration< Scalar, 0 > >
MultibodyConfiguration< Scalar, 0 > base_
 

Detailed Description

template<typename Scalar, int Options = 0>
struct proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >

The tangent bundle of a multibody configuration group.

This is not a typedef, since we provide a constructor for the class. Any point on the manifold is of the form \(x = (q,v) \), where \(q \in \mathcal{Q} \) is a configuration and \(v\) is a joint velocity vector.

Definition at line 113 of file multibody.hpp.

Member Typedef Documentation

◆ ConfigSpace

template<typename Scalar , int Options = 0>
using proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::ConfigSpace = MultibodyConfiguration<Scalar, Options>

Definition at line 115 of file multibody.hpp.

◆ ModelType

template<typename Scalar , int Options = 0>
using proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::ModelType = typename ConfigSpace::ModelType

Definition at line 116 of file multibody.hpp.

Constructor & Destructor Documentation

◆ MultibodyPhaseSpace() [1/3]

template<typename Scalar , int Options = 0>
proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::MultibodyPhaseSpace ( const ModelType & model)
inline

Definition at line 120 of file multibody.hpp.

◆ MultibodyPhaseSpace() [2/3]

template<typename Scalar , int Options = 0>
proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::MultibodyPhaseSpace ( const MultibodyPhaseSpace< Scalar, Options > & )
default

◆ MultibodyPhaseSpace() [3/3]

template<typename Scalar , int Options = 0>
proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::MultibodyPhaseSpace ( MultibodyPhaseSpace< Scalar, Options > && )
default

Member Function Documentation

◆ getModel()

template<typename Scalar , int Options = 0>
const ModelType & proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::getModel ( ) const
inline

Definition at line 118 of file multibody.hpp.

◆ operator=() [1/2]

template<typename Scalar , int Options = 0>
MultibodyPhaseSpace & proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::operator= ( const MultibodyPhaseSpace< Scalar, Options > & )
default

◆ operator=() [2/2]

template<typename Scalar , int Options = 0>
MultibodyPhaseSpace & proxsuite::nlp::MultibodyPhaseSpace< Scalar, Options >::operator= ( MultibodyPhaseSpace< Scalar, Options > && )
default

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