State residual. More...
#include <state.hpp>
Public Member Functions | |
| ResidualModelStateTpl (std::shared_ptr< typename Base::StateAbstract > state) | |
| Initialize the state residual model. | |
| ResidualModelStateTpl (std::shared_ptr< typename Base::StateAbstract > state, const std::size_t nu) | |
| Initialize the state residual model. | |
| ResidualModelStateTpl (std::shared_ptr< typename Base::StateAbstract > state, const VectorXs &xref) | |
| Initialize the state residual model. | |
| ResidualModelStateTpl (std::shared_ptr< typename Base::StateAbstract > state, const VectorXs &xref, const std::size_t nu) | |
| Initialize the state residual model. | |
| virtual void | calc (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the state residual. | |
| virtual void | calcCostDiff (const std::shared_ptr< CostDataAbstract > &cdata, const std::shared_ptr< ResidualDataAbstract > &rdata, const std::shared_ptr< ActivationDataAbstract > &adata, const bool update_u=true) |
| Compute the derivative of the state-cost function and store it in cost data. | |
| virtual void | calcDiff (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the Jacobians of the state residual. | |
| const VectorXs & | get_reference () const |
| Return the reference state. | |
| virtual void | print (std::ostream &os) const |
| Print relevant information of the state residual. | |
| void | set_reference (const VectorXs &reference) |
| Modify the reference state. | |
Public Member Functions inherited from ResidualModelAbstractTpl< _Scalar > | |
| ResidualModelAbstractTpl (std::shared_ptr< StateAbstract > state, const std::size_t nr, const bool q_dependent=true, const bool v_dependent=true, const bool u_dependent=true) | |
| ResidualModelAbstractTpl (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) | |
| Initialize the residual model. | |
| virtual void | calc (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
| Compute the residual vector for nodes that depends only on the state. | |
| virtual void | calcDiff (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
| Compute the Jacobian of the residual functions with respect to the state only. | |
| virtual std::shared_ptr< ResidualDataAbstract > | createData (DataCollectorAbstract *const data) |
| Create the residual data. | |
| std::size_t | get_nr () const |
| Return the dimension of the residual vector. | |
| std::size_t | get_nu () const |
| Return the dimension of the control input. | |
| bool | get_q_dependent () const |
| Return true if the residual function depends on q. | |
| const std::shared_ptr< StateAbstract > & | get_state () const |
| Return the state. | |
| bool | get_u_dependent () const |
| Return true if the residual function depends on u. | |
| bool | get_v_dependent () const |
| Return true if the residual function depends on v. | |
Public Attributes | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Public Attributes inherited from ResidualModelAbstractTpl< _Scalar > | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar | Scalar |
Protected Attributes | |
| std::size_t | nr_ |
| Residual vector dimension. | |
| std::size_t | nu_ |
| Control dimension. | |
| std::shared_ptr< StateAbstract > | state_ |
| State description. | |
| bool | u_dependent_ |
Protected Attributes inherited from ResidualModelAbstractTpl< _Scalar > | |
| std::size_t | nr_ |
| Residual vector dimension. | |
| std::size_t | nu_ |
| Control dimension. | |
| bool | q_dependent_ |
| std::shared_ptr< StateAbstract > | state_ |
| State description. | |
| bool | u_dependent_ |
| VectorXs | unone_ |
| No control vector. | |
| bool | v_dependent_ |
State residual.
This residual function defines the state tracking as \(\mathbf{r}=\mathbf{x}\ominus\mathbf{x}^*\), where \(\mathbf{x},\mathbf{x}^*\in~\mathcal{X}\) are the current and reference states, respectively, which belong to the state manifold \(\mathcal{X}\). Note that the dimension of the residual vector is obtained from StateAbstract::get_ndx(). Furthermore, the Jacobians of the residual function are computed analytically.
As described in ResidualModelAbstractTpl(), the residual value and its derivatives are calculated by calc and calcDiff, respectively.
ResidualModelAbstractTpl, calc(), calcDiff(), createData() | typedef MathBaseTpl<Scalar> MathBase |
| typedef ResidualModelAbstractTpl<Scalar> Base |
| typedef StateMultibodyTpl<Scalar> StateMultibody |
| typedef ActivationModelAbstractTpl<Scalar> ActivationModelAbstract |
| typedef ResidualDataAbstractTpl<Scalar> ResidualDataAbstract |
| typedef ActivationDataAbstractTpl<Scalar> ActivationDataAbstract |
| typedef CostDataAbstractTpl<Scalar> CostDataAbstract |
| typedef DataCollectorAbstractTpl<Scalar> DataCollectorAbstract |
| typedef MathBase::VectorXs VectorXs |
| typedef MathBase::MatrixXs MatrixXs |
| ResidualModelStateTpl | ( | std::shared_ptr< typename Base::StateAbstract > | state, |
| const VectorXs & | xref, | ||
| const std::size_t | nu | ||
| ) |
Initialize the state residual model.
| [in] | state | State of the multibody system |
| [in] | xref | Reference state |
| [in] | nu | Dimension of the control vector |
| ResidualModelStateTpl | ( | std::shared_ptr< typename Base::StateAbstract > | state, |
| const VectorXs & | xref | ||
| ) |
Initialize the state residual model.
The default nu value is obtained from StateAbstractTpl::get_nv().
| [in] | state | State of the multibody system |
| [in] | xref | Reference state |
| ResidualModelStateTpl | ( | std::shared_ptr< typename Base::StateAbstract > | state, |
| const std::size_t | nu | ||
| ) |
Initialize the state residual model.
The default reference state is obtained from StateAbstractTpl::zero().
| [in] | state | State of the multibody system |
| [in] | nu | Dimension of the control vector |
| ResidualModelStateTpl | ( | std::shared_ptr< typename Base::StateAbstract > | state | ) |
Initialize the state residual model.
The default state reference is obtained from StateAbstractTpl::zero(), and nu from StateAbstractTpl::get_nv().
| [in] | state | State of the multibody system |
| [in] | activation | Activation model |
|
virtual |
Compute the state residual.
| [in] | data | State residual data |
| [in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
| [in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Compute the Jacobians of the state residual.
| [in] | data | State residual data |
| [in] | x | State point \(\mathbf{x}\in\mathbb{R}^{ndx}\) |
| [in] | u | Control input \(\mathbf{u}\in\mathbb{R}^{nu}\) |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Compute the derivative of the state-cost function and store it in cost data.
This function assumes that the derivatives of the activation and residual are computed via calcDiff functions.
| cdata | Cost data |
| rdata | Residual data |
| adata | Activation data |
| update_u | Update the derivative of the cost function w.r.t. to the control if True. |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
|
virtual |
Print relevant information of the state residual.
| [out] | os | Output stream object |
Reimplemented from ResidualModelAbstractTpl< _Scalar >.
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar |
|
protected |
Residual vector dimension.
Definition at line 226 of file residual-base.hpp.
|
protected |
Control dimension.
Definition at line 227 of file residual-base.hpp.
|
protected |
State description.
Definition at line 225 of file residual-base.hpp.
|
protected |
Label that indicates if the residual function depends on u
Definition at line 233 of file residual-base.hpp.