|
| CostModelControlGravTpl (boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation, const std::size_t nu) |
| Initialize the control gravity cost model. More...
|
|
| CostModelControlGravTpl (boost::shared_ptr< StateMultibody > state, boost::shared_ptr< ActivationModelAbstract > activation) |
| Initialize the control gravity cost model. More...
|
|
| CostModelControlGravTpl (boost::shared_ptr< StateMultibody > state, const std::size_t nu) |
| Initialize the control gravity cost model. More...
|
|
| CostModelControlGravTpl (boost::shared_ptr< StateMultibody > state) |
| Initialize the control gravity cost model. More...
|
|
virtual void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the control gravity cost. More...
|
|
virtual void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) |
| Compute the derivatives of the control gravity cost. More...
|
|
virtual boost::shared_ptr< CostDataAbstract > | createData (DataCollectorAbstract *const data) |
| Create the cost data. More...
|
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActivationModelAbstract > activation, const std::size_t nu) |
| Initialize the cost model. More...
|
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, boost::shared_ptr< ActivationModelAbstract > activation) |
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr, const std::size_t nu) |
|
| CostModelAbstractTpl (boost::shared_ptr< StateAbstract > state, const std::size_t nr) |
|
virtual void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0 |
| Compute the cost value and its residual vector. More...
|
|
void | calc (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
|
virtual void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u)=0 |
| Compute the Jacobian and Hessian of cost and its residual vector. More...
|
|
void | calcDiff (const boost::shared_ptr< CostDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) |
|
const boost::shared_ptr< ActivationModelAbstract > & | get_activation () const |
| Return the activation model.
|
|
std::size_t | get_nu () const |
| Return the dimension of the control input.
|
|
template<class ReferenceType > |
ReferenceType | get_reference () const |
| Return the cost reference.
|
|
const boost::shared_ptr< StateAbstract > & | get_state () const |
| Return the state.
|
|
template<class ReferenceType > |
void | set_reference (ReferenceType ref) |
| Modify the cost reference.
|
|
template<typename _Scalar>
class crocoddyl::CostModelControlGravTpl< _Scalar >
Control gravity cost.
This cost function defines a residual vector as \(\mathbf{r}=\mathbf{u}-\mathbf{g}(\mathbf{q})\), where \(\mathbf{u}\in~\mathbb{R}^{nu}\) is the current control input, \(\mathbf{g}(\mathbf{q})\) is the gravity torque corresponding to the current configuration, \(\mathbf{q}\in~\mathbb{R}^{nq}\) the current position joints input. Note that the dimension of the residual vector is obtained from StateAbstractTpl::get_nv()
.
Both cost and residual derivatives are computed analytically. For the computation of the cost Hessian, we use the Gauss-Newton approximation, e.g. \(\mathbf{l_{xx}} = \mathbf{l_{x}}^T \mathbf{l_{x}} \).
As described in CostModelAbstractTpl(), the cost value and its derivatives are calculated by calc
and calcDiff
, respectively.
- See also
CostModelAbstractTpl
, calc(), calcDiff(), createData()
Definition at line 36 of file control-gravity.hpp.