ResidualModelContactControlGravTpl (std::shared_ptr< StateMultibody > state) Initialize the contact control gravity contact residual model. ResidualModelContactControlGravTpl (std::shared_ptr< StateMultibody > state, const std::size_t nu) Initialize the contact control gravity contact residual model. virtual void calc (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override Compute the residual vector for nodes that depends only on the state. virtual void calc (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override Compute the contact control gravity contact residual. virtual void calcDiff (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override Compute the Jacobian of the residual functions with respect to the state only. virtual void calcDiff (const std::shared_ptr< ResidualDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override Compute the Jacobians of the contact control gravity contact residual. template<typename NewScalar> ResidualModelContactControlGravTpl < NewScalar > cast () const Cast the contact-control-gravity residual model to a different scalar type. virtual std::shared_ptr< ResidualDataAbstract > createData (DataCollectorAbstract *const data) override Create the contact-control-gravity residual data. virtual void print (std::ostream &os) const override Print relevant information of the contact-control-grav residual. 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) Initialize the residual model. 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 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 cost function. 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.
template<typename _Scalar> class crocoddyl::ResidualModelContactControlGravTpl< _Scalar >
Control gravity residual under contact.
This residual function is defined as , where is the current control input, is the contact Jacobians, contains the contact forces, is the gravity torque corresponding to the current configuration, is the current position joints input. Note that the dimension of the residual vector is obtained from state->get_nv() .
As described in ResidualModelAbstractTpl() , the residual value and its Jacobians are calculated by calc() and calcDiff() , respectively.
See also ResidualModelAbstractTpl , calc() , calcDiff() , createData() Definition at line 39 of file contact-control-gravity.hpp .
template<typename _Scalar>
virtual void calc ( const std::shared_ptr< ResidualDataAbstract > & data ,const Eigen::Ref< const VectorXs > & x )
override virtual
Compute the residual vector for nodes that depends only on the state.
It updates the residual vector based on the state only (i.e., it ignores the contact forces). This function is used in the terminal nodes of an optimal control problem.
Parameters [in] data Residual data [in] x State point
Reimplemented from ResidualModelAbstractTpl< _Scalar > .
template<typename _Scalar>
virtual void calcDiff ( const std::shared_ptr< ResidualDataAbstract > & data ,const Eigen::Ref< const VectorXs > & x )
override virtual
Compute the Jacobian of the residual functions with respect to the state only.
It updates the Jacobian of the residual function based on the state only (i.e., it ignores the contact forces). This function is used in the terminal nodes of an optimal control problem.
Parameters [in] data Residual data [in] x State point
Reimplemented from ResidualModelAbstractTpl< _Scalar > .