Direction-preserving, smoothly bounded guidance model. More...
#include <smooth-saturation.hpp>
Public Types | |
| typedef GuidanceModelAbstractTpl< Scalar > | Base |
| typedef GuidanceDataSmoothSaturationTpl< Scalar > | Data |
| typedef Base::GuidanceDataAbstract | GuidanceDataAbstract |
| typedef MathBaseTpl< Scalar > | MathBase |
| typedef MathBase::MatrixXs | MatrixXs |
| typedef MathBase::VectorXs | VectorXs |
| Public Types inherited from GuidanceModelAbstractTpl< _Scalar > | |
| typedef GuidanceDataAbstractTpl< Scalar > | GuidanceDataAbstract |
| typedef MathBaseTpl< Scalar > | MathBase |
| typedef MathBase::MatrixXs | MatrixXs |
| typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
| GuidanceModelSmoothSaturationTpl (const std::size_t nr, const Scalar &gain, const Scalar &max_rate, const Scalar epsilon=Scalar(1e-6)) | |
| Initialize the smoothly saturated guidance model. | |
| virtual void | calc (const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const override |
| Compute the smooth-saturation guidance output. | |
| virtual void | calcDiff (const std::shared_ptr< GuidanceDataAbstract > &data, const Eigen::Ref< const VectorXs > &error) const override |
| Compute the Jacobian of the smooth-saturation law. | |
| template<typename NewScalar> | |
| GuidanceModelSmoothSaturationTpl< NewScalar > | cast () const |
| Cast the guidance model to a different scalar type. | |
| virtual std::shared_ptr< GuidanceDataAbstract > | createData () const override |
| Allocate the cached guidance data. | |
| const Scalar & | get_epsilon () const |
| Return the smoothing parameter. | |
| const Scalar & | get_gain () const |
| Return the local linear gain. | |
| const Scalar & | get_max_rate () const |
| Return the maximum desired-rate norm. | |
| virtual void | print (std::ostream &os) const override |
| Print the model parameters. | |
| void | set_epsilon (const Scalar &epsilon) |
| Update the smoothing parameter. | |
| void | set_gain (const Scalar &gain) |
| Update the local linear gain. | |
| void | set_max_rate (const Scalar &max_rate) |
| Update the maximum desired-rate norm. | |
| Public Member Functions inherited from GuidanceModelAbstractTpl< _Scalar > | |
| GuidanceModelAbstractTpl (const std::size_t nr) | |
| Initialize the guidance-model dimension. | |
| std::size_t | get_nr () const |
| Return the error and desired-rate dimension. | |
Public Attributes | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
| Public Attributes inherited from GuidanceModelAbstractTpl< _Scalar > | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Additional Inherited Members | |
| Protected Member Functions inherited from GuidanceModelAbstractTpl< _Scalar > | |
| 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 inherited from GuidanceModelAbstractTpl< _Scalar > | |
| std::size_t | nr_ |
Direction-preserving, smoothly bounded guidance model.
This law is intended for Euclidean tasks with homogeneous units and implements the smooth saturation law
![\[ g(e) =
-v_{\max}\tanh\left(\frac{k r_\epsilon}{v_{\max}}\right)
\frac{e}{r_\epsilon}, \qquad
r_\epsilon = \sqrt{e^\top e + \epsilon^2}.
\]](form_106.png)
It is smooth at the origin, approaches 

Definition at line 34 of file smooth-saturation.hpp.
| typedef GuidanceModelAbstractTpl<Scalar> Base |
Definition at line 41 of file smooth-saturation.hpp.
| typedef Base::GuidanceDataAbstract GuidanceDataAbstract |
Definition at line 42 of file smooth-saturation.hpp.
| typedef GuidanceDataSmoothSaturationTpl<Scalar> Data |
Definition at line 43 of file smooth-saturation.hpp.
| typedef MathBaseTpl<Scalar> MathBase |
Definition at line 44 of file smooth-saturation.hpp.
| typedef MathBase::VectorXs VectorXs |
Definition at line 45 of file smooth-saturation.hpp.
| typedef MathBase::MatrixXs MatrixXs |
Definition at line 46 of file smooth-saturation.hpp.
| GuidanceModelSmoothSaturationTpl | ( | const std::size_t | nr, |
| const Scalar & | gain, | ||
| const Scalar & | max_rate, | ||
| const Scalar | epsilon = Scalar(1e-6) ) |
Initialize the smoothly saturated guidance model.
| [in] | nr | Task dimension. |
| [in] | gain | Local linear gain |
| [in] | max_rate | Maximum desired-rate norm |
| [in] | epsilon | Smoothing parameter |
| overridevirtual |
Compute the smooth-saturation guidance output.
| [in,out] | data | Preallocated guidance data. |
| [in] | error | Task error |
Implements GuidanceModelAbstractTpl< _Scalar >.
| overridevirtual |
Compute the Jacobian of the smooth-saturation law.
| [in,out] | data | Preallocated guidance data. |
| [in] | error | Task error |
Implements GuidanceModelAbstractTpl< _Scalar >.
| overridevirtual |
Allocate the cached guidance data.

Reimplemented from GuidanceModelAbstractTpl< _Scalar >.
| const Scalar & get_gain | ( | ) | const |
Return the local linear gain.

| const Scalar & get_max_rate | ( | ) | const |
Return the maximum desired-rate norm.

| const Scalar & get_epsilon | ( | ) | const |
Return the smoothing parameter.

| void set_gain | ( | const Scalar & | gain | ) |
Update the local linear gain.
| [in] | gain | New local linear gain |
| void set_max_rate | ( | const Scalar & | max_rate | ) |
Update the maximum desired-rate norm.
| [in] | max_rate | New saturation bound |
| void set_epsilon | ( | const Scalar & | epsilon | ) |
Update the smoothing parameter.
| [in] | epsilon | New smoothing value |
| overridevirtual |
Print the model parameters.
| [out] | os | Output stream. |
Reimplemented from GuidanceModelAbstractTpl< _Scalar >.
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar |
Definition at line 40 of file smooth-saturation.hpp.