Crocoddyl
Loading...
Searching...
No Matches
GuidanceModelAbstractTpl< _Scalar > Class Template Referenceabstract

Differentiable mapping from a task error to a desired task rate. More...

#include <guidance-base.hpp>

Inheritance diagram for GuidanceModelAbstractTpl< _Scalar >:
GuidanceModelBaseGuidanceModelComponentwiseSaturationTpl< _Scalar >GuidanceModelLinearTpl< _Scalar >GuidanceModelSmoothSaturationTpl< _Scalar >

Public Types

typedef GuidanceDataAbstractTpl< Scalar > GuidanceDataAbstract
typedef MathBaseTpl< Scalar > MathBase
typedef MathBase::MatrixXs MatrixXs
typedef MathBase::VectorXs VectorXs

Public Member Functions

 GuidanceModelAbstractTpl (const std::size_t nr)
 Initialize the guidance-model dimension.
virtual void calc (const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const =0
 Compute the desired task rate $g=\phi(e)$.
virtual void calcDiff (const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const =0
 Compute $\partial g/\partial e$.
virtual std::shared_ptr< GuidanceDataAbstract > createData () const
 Allocate the precomputed guidance data.
std::size_t get_nr () const
 Return the error and desired-rate dimension.
virtual void print (std::ostream &os) const
 Print relevant information about the guidance model.

Public Attributes

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Protected Member Functions

void checkErrorDimension (const Eigen::Ref< const VectorXs > &error) const
void checkJacobianDimension (const Eigen::Ref< const MatrixXs > &Ge) const
void checkRateDimension (const Eigen::Ref< const VectorXs > &g) const

Protected Attributes

std::size_t nr_

Detailed Description

template<typename _Scalar>
class crocoddyl::GuidanceModelAbstractTpl< _Scalar >

Differentiable mapping from a task error to a desired task rate.

A guidance model implements

\‍[  g = \phi(e), \qquad
  G_e = \frac{\partial g}{\partial e}.
\‍]

The input and output dimensions are deliberately identical. Mixed-unit tasks (for example, an SE(3) error) should use a block-structured model or a task-specific metric instead of a single radial norm.

Implementations must not allocate in calc() or calcDiff(). The caller owns the preallocated data storage.

The model exposes the generic relation

\‍[  g = \phi(e), \qquad G_e = \frac{\partial g}{\partial e}.
\‍]

Definition at line 46 of file guidance-base.hpp.

Member Typedef Documentation

◆ MathBase

template<typename _Scalar>
typedef MathBaseTpl<Scalar> MathBase

Definition at line 51 of file guidance-base.hpp.

◆ GuidanceDataAbstract

template<typename _Scalar>
typedef GuidanceDataAbstractTpl<Scalar> GuidanceDataAbstract

Definition at line 52 of file guidance-base.hpp.

◆ VectorXs

template<typename _Scalar>
typedef MathBase::VectorXs VectorXs

Definition at line 53 of file guidance-base.hpp.

◆ MatrixXs

template<typename _Scalar>
typedef MathBase::MatrixXs MatrixXs

Definition at line 54 of file guidance-base.hpp.

Constructor & Destructor Documentation

◆ GuidanceModelAbstractTpl()

template<typename _Scalar>
GuidanceModelAbstractTpl(const std::size_tnr)
explicit

Initialize the guidance-model dimension.

Parameters
[in]nrDimension of the task error and desired task rate.

Member Function Documentation

◆ createData()

template<typename _Scalar>
virtual std::shared_ptr< GuidanceDataAbstract > createData()const
virtual

Allocate the precomputed guidance data.

Returns
A zero-initialized data object sized from the model.

Reimplemented in GuidanceModelComponentwiseSaturationTpl< _Scalar >, GuidanceModelComponentwiseSaturationTpl< double >, GuidanceModelSmoothSaturationTpl< _Scalar >, and GuidanceModelSmoothSaturationTpl< double >.

◆ calc()

template<typename _Scalar>
virtual void calc(const std::shared_ptr< GuidanceDataAbstract > &data,
const Eigen::Ref< const VectorXs > &error ) const
pure virtual

◆ calcDiff()

template<typename _Scalar>
virtual void calcDiff(const std::shared_ptr< GuidanceDataAbstract > &data,
const Eigen::Ref< const VectorXs > &error ) const
pure virtual

◆ get_nr()

template<typename _Scalar>
std::size_t get_nr()const

Return the error and desired-rate dimension.

Returns
Dimension of the task error and desired task rate.

◆ print()

template<typename _Scalar>
virtual void print(std::ostream &os)const
virtual

Member Data Documentation

◆ Scalar

template<typename _Scalar>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Definition at line 50 of file guidance-base.hpp.

◆ nr_

template<typename _Scalar>
std::size_t nr_
protected

Definition at line 108 of file guidance-base.hpp.


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