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

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

#include <aligator/modelling/spaces/multibody.hpp>

Inheritance diagram for aligator::MultibodyPhaseSpace< Scalar >:
[legend]
Collaboration diagram for aligator::MultibodyPhaseSpace< Scalar >:
[legend]

Public Types

using ConfigSpace = MultibodyConfiguration<Scalar>
using ModelType = typename ConfigSpace::ModelType
Public Types inherited from aligator::TangentBundleTpl< MultibodyConfiguration< Scalar > >
using Self
using Scalar
using ManifoldBase
Public Types inherited from aligator::ManifoldAbstractTpl< MultibodyConfiguration< Scalar >::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 aligator::TangentBundleTpl< MultibodyConfiguration< Scalar > >
int ndx () const
 Get manifold tangent space dimension.
int nx () const
 Get manifold representation dimension.
 ALIGATOR_DYNAMIC_TYPEDEFS (Scalar)
 TangentBundleTpl (const MultibodyConfiguration< Scalar > &base)
 Constructor using base space instance.
bool isNormalized (const ConstVectorRef &x) const
 Check if the input vector x is a viable element of the manifold.
const MultibodyConfiguration< Scalar > & getBaseSpace () const
Point::ConstSegmentReturnType getBasePoint (const Eigen::MatrixBase< Point > &x) const
Point::SegmentReturnType getBasePointWrite (const Eigen::MatrixBase< Point > &x) const
Tangent::ConstSegmentReturnType getBaseTangent (const Tangent &v) const
Tangent::SegmentReturnType getTangentHeadWrite (const Eigen::MatrixBase< Tangent > &v) const
Eigen::Block< Jac, Eigen::Dynamic, Eigen::Dynamic > getBaseJacobian (const Eigen::MatrixBase< Jac > &J) const
Public Member Functions inherited from aligator::ManifoldAbstractTpl< MultibodyConfiguration< Scalar >::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

Additional Inherited Members

Static Public Attributes inherited from aligator::TangentBundleTpl< MultibodyConfiguration< Scalar > >
static constexpr int Options
Protected Member Functions inherited from aligator::TangentBundleTpl< MultibodyConfiguration< Scalar > >
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 inherited from aligator::TangentBundleTpl< MultibodyConfiguration< Scalar > >
MultibodyConfiguration< Scalarbase_
Protected Attributes inherited from aligator::ManifoldAbstractTpl< MultibodyConfiguration< Scalar >::Scalar >
int nx_
int ndx_

Detailed Description

template<typename Scalar>
struct aligator::MultibodyPhaseSpace< Scalar >

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 118 of file multibody.hpp.

Member Typedef Documentation

◆ ConfigSpace

template<typename Scalar>
using aligator::MultibodyPhaseSpace< Scalar >::ConfigSpace = MultibodyConfiguration<Scalar>

Definition at line 119 of file multibody.hpp.

◆ ModelType

template<typename Scalar>
using aligator::MultibodyPhaseSpace< Scalar >::ModelType = typename ConfigSpace::ModelType

Definition at line 120 of file multibody.hpp.

Constructor & Destructor Documentation

◆ MultibodyPhaseSpace() [1/3]

template<typename Scalar>
aligator::MultibodyPhaseSpace< Scalar >::MultibodyPhaseSpace(const ModelType &model)
inline

Definition at line 124 of file multibody.hpp.

◆ MultibodyPhaseSpace() [2/3]

template<typename Scalar>
aligator::MultibodyPhaseSpace< Scalar >::MultibodyPhaseSpace(const MultibodyPhaseSpace< Scalar > &)
default

◆ MultibodyPhaseSpace() [3/3]

template<typename Scalar>
aligator::MultibodyPhaseSpace< Scalar >::MultibodyPhaseSpace(MultibodyPhaseSpace< Scalar > &&)
default

Member Function Documentation

◆ getModel()

template<typename Scalar>
const ModelType & aligator::MultibodyPhaseSpace< Scalar >::getModel()const
inline

Definition at line 122 of file multibody.hpp.

◆ operator=() [1/2]

template<typename Scalar>
MultibodyPhaseSpace & aligator::MultibodyPhaseSpace< Scalar >::operator=(const MultibodyPhaseSpace< Scalar > &)
default

◆ operator=() [2/2]


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