Crocoddyl
Loading...
Searching...
No Matches
TaskModelJointPositionTpl< _Scalar > Class Template Reference

Joint-position task model. More...

#include <joint-position.hpp>

Inheritance diagram for TaskModelJointPositionTpl< _Scalar >:
TaskModelAbstractTpl< _Scalar >TaskModelBase

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_

Detailed Description

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

Joint-position task model.

Let

\‍[  \operatorname{diff}(x_{\mathrm{ref}},x)=
  \begin{bmatrix}e_q\\e_v\end{bmatrix}.
\‍]

The task defines

\‍[  y=e_q, \qquad v=e_v, \qquad
  a=\ddot q-\ddot q_{\mathrm{ref}}.
\‍]

Combined with proportional and derivative convergence gains, this yields $\ddot q-\ddot q_{\mathrm{ref}}+K_d e_v+K_p e_q$.

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.

Member Typedef Documentation

◆ MathBase

template<typename _Scalar>
typedef MathBaseTpl<Scalar> MathBase

Definition at line 48 of file joint-position.hpp.

◆ Base

template<typename _Scalar>
typedef TaskModelAbstractTpl<Scalar> Base

Definition at line 49 of file joint-position.hpp.

◆ Data

template<typename _Scalar>
typedef TaskDataJointPositionTpl<Scalar> Data

Definition at line 50 of file joint-position.hpp.

◆ TaskDataAbstract

template<typename _Scalar>
typedef TaskDataAbstractTpl<Scalar> TaskDataAbstract

Definition at line 51 of file joint-position.hpp.

◆ DataCollectorAbstract

template<typename _Scalar>
typedef DataCollectorAbstractTpl<Scalar> DataCollectorAbstract

Definition at line 52 of file joint-position.hpp.

◆ StateMultibody

template<typename _Scalar>
typedef StateMultibodyTpl<Scalar> StateMultibody

Definition at line 53 of file joint-position.hpp.

◆ VectorXs

template<typename _Scalar>
typedef MathBase::VectorXs VectorXs

Definition at line 54 of file joint-position.hpp.

Constructor & Destructor Documentation

◆ TaskModelJointPositionTpl() [1/4]

template<typename _Scalar>
TaskModelJointPositionTpl(std::shared_ptr< StateMultibody >state,
const VectorXs &xref,
const VectorXs &aref,
const std::size_tnu )

Initialize with state and acceleration references.

Parameters
[in]stateState of the multibody system
[in]xrefReference state containing configuration and velocity
[in]arefReference generalized acceleration
[in]nuDimension of the control vector

◆ TaskModelJointPositionTpl() [2/4]

template<typename _Scalar>
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.

Parameters
[in]stateState of the multibody system
[in]xrefReference state containing configuration and velocity
[in]arefReference generalized acceleration

◆ TaskModelJointPositionTpl() [3/4]

template<typename _Scalar>
TaskModelJointPositionTpl(std::shared_ptr< StateMultibody >state,
const VectorXs &xref,
const std::size_tnu )

Initialize with a state reference and zero acceleration reference.

Parameters
[in]stateState of the multibody system
[in]xrefReference state containing configuration and velocity
[in]nuDimension of the control vector

◆ TaskModelJointPositionTpl() [4/4]

template<typename _Scalar>
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.

Parameters
[in]stateState of the multibody system
[in]xrefReference state containing configuration and velocity

Member Function Documentation

◆ calc()

template<typename _Scalar>
virtual void calc(const std::shared_ptr< TaskDataAbstract > &data,
const Eigen::Ref< const VectorXs > &x,
const Eigen::Ref< const VectorXs > &u )
overridevirtual

Compute the task quantity, rate, and acceleration.

Implements TaskModelAbstractTpl< _Scalar >.

◆ calcDiff()

template<typename _Scalar>
virtual void calcDiff(const std::shared_ptr< TaskDataAbstract > &data,
const Eigen::Ref< const VectorXs > &x,
const Eigen::Ref< const VectorXs > &u )
overridevirtual

Compute task Jacobians using values stored by calc().

Implements TaskModelAbstractTpl< _Scalar >.

◆ createData()

template<typename _Scalar>
virtual std::shared_ptr< TaskDataAbstract > createData(DataCollectorAbstract *constdata)
overridevirtual

Allocate task data and bind it to the action model's shared data.

Reimplemented from TaskModelAbstractTpl< _Scalar >.

◆ print()

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

Print relevant information about the task model.

Reimplemented from TaskModelAbstractTpl< _Scalar >.

Member Data Documentation

◆ Scalar

template<typename _Scalar>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar

Definition at line 47 of file joint-position.hpp.

◆ nr_

template<typename _Scalar>
std::size_t nr_
protected

Definition at line 114 of file task-base.hpp.

◆ nu_

template<typename _Scalar>
std::size_t nu_
protected

Definition at line 115 of file task-base.hpp.

◆ state_

template<typename _Scalar>
std::shared_ptr<StateAbstract> state_
protected

Definition at line 113 of file task-base.hpp.


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