Joint-position task model. More...
#include <joint-position.hpp>
Public Types | |
| typedef TaskModelAbstractTpl< Scalar > | Base |
| typedef TaskDataJointPositionTpl< Scalar > | Data |
| typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
| typedef MathBaseTpl< Scalar > | MathBase |
| typedef StateMultibodyTpl< Scalar > | StateMultibody |
| typedef TaskDataAbstractTpl< Scalar > | TaskDataAbstract |
| typedef MathBase::VectorXs | VectorXs |
| Public Types inherited from TaskModelAbstractTpl< _Scalar > | |
| typedef DataCollectorAbstractTpl< Scalar > | DataCollectorAbstract |
| typedef MathBaseTpl< Scalar > | MathBase |
| typedef MathBase::MatrixXs | MatrixXs |
| typedef StateAbstractTpl< Scalar > | StateAbstract |
| typedef TaskDataAbstractTpl< Scalar > | TaskDataAbstract |
| typedef MathBase::VectorXs | VectorXs |
Public Member Functions | |
| TaskModelJointPositionTpl (std::shared_ptr< StateMultibody > state, const VectorXs &xref) | |
| Initialize with a state reference and zero acceleration reference. | |
| TaskModelJointPositionTpl (std::shared_ptr< StateMultibody > state, const VectorXs &xref, const std::size_t nu) | |
| Initialize with a state reference and zero acceleration reference. | |
| TaskModelJointPositionTpl (std::shared_ptr< StateMultibody > state, const VectorXs &xref, const VectorXs &aref) | |
| Initialize with state and acceleration references. | |
| TaskModelJointPositionTpl (std::shared_ptr< StateMultibody > state, const VectorXs &xref, const VectorXs &aref, const std::size_t nu) | |
| Initialize with state and acceleration references. | |
| virtual void | calc (const std::shared_ptr< TaskDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override |
| Compute the task quantity, rate, and acceleration. | |
| virtual void | calcDiff (const std::shared_ptr< TaskDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override |
| Compute task Jacobians using values stored by calc(). | |
| template<typename NewScalar> | |
| TaskModelJointPositionTpl< NewScalar > | cast () const |
| virtual std::shared_ptr< TaskDataAbstract > | createData (DataCollectorAbstract *const data) override |
| Allocate task data and bind it to the action model's shared data. | |
| const VectorXs & | get_acceleration_reference () const |
| const VectorXs & | get_reference () const |
| virtual void | print (std::ostream &os) const override |
| Print relevant information about the task model. | |
| void | set_acceleration_reference (const VectorXs &aref) |
| void | set_reference (const VectorXs &xref) |
| Public Member Functions inherited from TaskModelAbstractTpl< _Scalar > | |
| TaskModelAbstractTpl (std::shared_ptr< StateAbstract > state, const std::size_t nr, const std::size_t nu, const bool q_dependent=true, const bool v_dependent=true, const bool u_dependent=true, const bool has_acceleration=true) | |
| Initialize the task model. | |
| bool | get_has_acceleration () const |
| Return whether the task defines an acceleration component. | |
| std::size_t | get_nr () const |
| std::size_t | get_nu () const |
| bool | get_q_dependent () const |
| const std::shared_ptr< StateAbstract > & | get_state () const |
| bool | get_u_dependent () const |
| bool | get_v_dependent () const |
Public Attributes | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
| Public Attributes inherited from TaskModelAbstractTpl< _Scalar > | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Protected Attributes | |
| std::size_t | nr_ |
| std::size_t | nu_ |
| std::shared_ptr< StateAbstract > | state_ |
| Protected Attributes inherited from TaskModelAbstractTpl< _Scalar > | |
| bool | has_acceleration_ |
| std::size_t | nr_ |
| std::size_t | nu_ |
| bool | q_dependent_ |
| std::shared_ptr< StateAbstract > | state_ |
| bool | u_dependent_ |
| bool | v_dependent_ |
Joint-position task model.
Let
![\[ \operatorname{diff}(x_{\mathrm{ref}},x)=
\begin{bmatrix}e_q\\e_v\end{bmatrix}.
\]](form_442.png)
The task defines
![\[ y=e_q, \qquad v=e_v, \qquad
a=\ddot q-\ddot q_{\mathrm{ref}}.
\]](form_443.png)
Combined with proportional and derivative convergence gains, this yields 
The generalized acceleration is read from shared joint data when available. Otherwise, it is read from the shared Pinocchio ddq cache. Acceleration derivatives with respect to the action-model variables require shared joint data.
Definition at line 42 of file joint-position.hpp.
| typedef MathBaseTpl<Scalar> MathBase |
Definition at line 48 of file joint-position.hpp.
| typedef TaskModelAbstractTpl<Scalar> Base |
Definition at line 49 of file joint-position.hpp.
| typedef TaskDataJointPositionTpl<Scalar> Data |
Definition at line 50 of file joint-position.hpp.
| typedef TaskDataAbstractTpl<Scalar> TaskDataAbstract |
Definition at line 51 of file joint-position.hpp.
| typedef DataCollectorAbstractTpl<Scalar> DataCollectorAbstract |
Definition at line 52 of file joint-position.hpp.
| typedef StateMultibodyTpl<Scalar> StateMultibody |
Definition at line 53 of file joint-position.hpp.
| typedef MathBase::VectorXs VectorXs |
Definition at line 54 of file joint-position.hpp.
| TaskModelJointPositionTpl | ( | std::shared_ptr< StateMultibody > | state, |
| const VectorXs & | xref, | ||
| const VectorXs & | aref, | ||
| const std::size_t | nu ) |
Initialize with state and acceleration references.
| [in] | state | State of the multibody system |
| [in] | xref | Reference state containing configuration and velocity |
| [in] | aref | Reference generalized acceleration |
| [in] | nu | Dimension of the control vector |
| TaskModelJointPositionTpl | ( | std::shared_ptr< StateMultibody > | state, |
| const VectorXs & | xref, | ||
| const VectorXs & | aref ) |
Initialize with state and acceleration references.
The default control dimension is state.nv.
| [in] | state | State of the multibody system |
| [in] | xref | Reference state containing configuration and velocity |
| [in] | aref | Reference generalized acceleration |
| TaskModelJointPositionTpl | ( | std::shared_ptr< StateMultibody > | state, |
| const VectorXs & | xref, | ||
| const std::size_t | nu ) |
Initialize with a state reference and zero acceleration reference.
| [in] | state | State of the multibody system |
| [in] | xref | Reference state containing configuration and velocity |
| [in] | nu | Dimension of the control vector |
| TaskModelJointPositionTpl | ( | std::shared_ptr< StateMultibody > | state, |
| const VectorXs & | xref ) |
Initialize with a state reference and zero acceleration reference.
The default control dimension is state.nv.
| [in] | state | State of the multibody system |
| [in] | xref | Reference state containing configuration and velocity |
| overridevirtual |
Compute the task quantity, rate, and acceleration.
Implements TaskModelAbstractTpl< _Scalar >.
| overridevirtual |
Compute task Jacobians using values stored by calc().
Implements TaskModelAbstractTpl< _Scalar >.
| overridevirtual |
Allocate task data and bind it to the action model's shared data.
Reimplemented from TaskModelAbstractTpl< _Scalar >.
| overridevirtual |
Print relevant information about the task model.
Reimplemented from TaskModelAbstractTpl< _Scalar >.
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar |
Definition at line 47 of file joint-position.hpp.
| protected |
Definition at line 114 of file task-base.hpp.
| protected |
Definition at line 115 of file task-base.hpp.
| protected |
Definition at line 113 of file task-base.hpp.