Differentiable mapping from a task error to a desired task rate. More...
#include <guidance-base.hpp>
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 | |
| virtual void | calcDiff (const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const =0 |
| Compute | |
| 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 Attributes | |
| std::size_t | nr_ |
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}.
\]](form_91.png)
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}.
\]](form_92.png)
Definition at line 46 of file guidance-base.hpp.
| typedef MathBaseTpl<Scalar> MathBase |
Definition at line 51 of file guidance-base.hpp.
| typedef GuidanceDataAbstractTpl<Scalar> GuidanceDataAbstract |
Definition at line 52 of file guidance-base.hpp.
| typedef MathBase::VectorXs VectorXs |
Definition at line 53 of file guidance-base.hpp.
| typedef MathBase::MatrixXs MatrixXs |
Definition at line 54 of file guidance-base.hpp.
| explicit |
Initialize the guidance-model dimension.
| [in] | nr | Dimension of the task error and desired task rate. |
| virtual |
Allocate the precomputed guidance data.
Reimplemented in GuidanceModelComponentwiseSaturationTpl< _Scalar >, GuidanceModelComponentwiseSaturationTpl< double >, GuidanceModelSmoothSaturationTpl< _Scalar >, and GuidanceModelSmoothSaturationTpl< double >.
| pure virtual |
Compute the desired task rate 
| [in,out] | data | Preallocated guidance data. |
| [in] | error | Task error |
Implemented in GuidanceModelComponentwiseSaturationTpl< _Scalar >, GuidanceModelComponentwiseSaturationTpl< double >, GuidanceModelLinearTpl< _Scalar >, GuidanceModelLinearTpl< double >, GuidanceModelSmoothSaturationTpl< _Scalar >, and GuidanceModelSmoothSaturationTpl< double >.
| pure virtual |
Compute 
| [in,out] | data | Preallocated guidance data. |
| [in] | error | Task error |
Implemented in GuidanceModelComponentwiseSaturationTpl< _Scalar >, GuidanceModelComponentwiseSaturationTpl< double >, GuidanceModelLinearTpl< _Scalar >, GuidanceModelLinearTpl< double >, GuidanceModelSmoothSaturationTpl< _Scalar >, and GuidanceModelSmoothSaturationTpl< double >.
| std::size_t get_nr | ( | ) | const |
Return the error and desired-rate dimension.
| virtual |
Print relevant information about the guidance model.
| [out] | os | Output stream. |
Reimplemented in GuidanceModelComponentwiseSaturationTpl< _Scalar >, GuidanceModelComponentwiseSaturationTpl< double >, GuidanceModelLinearTpl< _Scalar >, GuidanceModelLinearTpl< double >, GuidanceModelSmoothSaturationTpl< _Scalar >, and GuidanceModelSmoothSaturationTpl< double >.
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar |
Definition at line 50 of file guidance-base.hpp.
| protected |
Definition at line 108 of file guidance-base.hpp.