9 #ifndef CROCODDYL_MULTIBODY_COSTS_COM_POSITION_HPP_ 10 #define CROCODDYL_MULTIBODY_COSTS_COM_POSITION_HPP_ 12 #include "crocoddyl/multibody/fwd.hpp" 13 #include "crocoddyl/multibody/cost-base.hpp" 14 #include "crocoddyl/multibody/data/multibody.hpp" 15 #include "crocoddyl/core/utils/exception.hpp" 19 template <
typename _Scalar>
22 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
24 typedef _Scalar Scalar;
33 typedef typename MathBase::Vector3s Vector3s;
34 typedef typename MathBase::VectorXs VectorXs;
35 typedef typename MathBase::MatrixXs MatrixXs;
38 boost::shared_ptr<ActivationModelAbstract> activation,
const Vector3s& cref,
39 const std::size_t& nu);
41 boost::shared_ptr<ActivationModelAbstract> activation,
const Vector3s& cref);
46 virtual void calc(
const boost::shared_ptr<CostDataAbstract>& data,
const Eigen::Ref<const VectorXs>& x,
47 const Eigen::Ref<const VectorXs>& u);
48 virtual void calcDiff(
const boost::shared_ptr<CostDataAbstract>& data,
const Eigen::Ref<const VectorXs>& x,
49 const Eigen::Ref<const VectorXs>& u);
50 virtual boost::shared_ptr<CostDataAbstract> createData(DataCollectorAbstract*
const data);
52 const Vector3s& get_cref()
const;
53 void set_cref(
const Vector3s& cref_in);
56 virtual void set_referenceImpl(
const std::type_info& ti,
const void* pv);
57 virtual void get_referenceImpl(
const std::type_info& ti,
void* pv);
59 using Base::activation_;
68 template <
typename _Scalar>
70 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
72 typedef _Scalar Scalar;
76 typedef typename MathBase::VectorXs VectorXs;
77 typedef typename MathBase::MatrixXs MatrixXs;
78 typedef typename MathBase::Matrix3xs Matrix3xs;
79 typedef typename MathBase::Matrix6xs Matrix6xs;
80 typedef typename MathBase::Matrix6s Matrix6s;
81 typedef typename MathBase::Vector6s Vector6s;
83 template <
template <
typename Scalar>
class Model>
85 : Base(model, data), Arr_Jcom(3, model->get_state()->get_nv()) {
90 throw_pretty(
"Invalid argument: the shared data should be derived from DataCollectorMultibody");
94 pinocchio = d->pinocchio;
97 pinocchio::DataTpl<Scalar>* pinocchio;
100 using Base::activation;
118 #include "crocoddyl/multibody/costs/com-position.hxx" 120 #endif // CROCODDYL_MULTIBODY_COSTS_COM_POSITION_HPP_