9 #ifndef CROCODDYL_MULTIBODY_ACTIONS_FREE_FWDDYN_HPP_ 10 #define CROCODDYL_MULTIBODY_ACTIONS_FREE_FWDDYN_HPP_ 14 #include "crocoddyl/multibody/fwd.hpp" 15 #include "crocoddyl/core/diff-action-base.hpp" 16 #include "crocoddyl/core/actuation-base.hpp" 17 #include "crocoddyl/multibody/data/multibody.hpp" 18 #include "crocoddyl/multibody/states/multibody.hpp" 19 #include "crocoddyl/multibody/costs/cost-sum.hpp" 23 template <
typename _Scalar>
26 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
28 typedef _Scalar Scalar;
36 typedef typename MathBase::VectorXs VectorXs;
37 typedef typename MathBase::MatrixXs MatrixXs;
40 boost::shared_ptr<ActuationModelAbstract> actuation,
41 boost::shared_ptr<CostModelSum> costs);
44 virtual void calc(
const boost::shared_ptr<DifferentialActionDataAbstract>& data,
const Eigen::Ref<const VectorXs>& x,
45 const Eigen::Ref<const VectorXs>& u);
46 virtual void calcDiff(
const boost::shared_ptr<DifferentialActionDataAbstract>& data,
47 const Eigen::Ref<const VectorXs>& x,
const Eigen::Ref<const VectorXs>& u);
48 boost::shared_ptr<DifferentialActionDataAbstract> createData();
50 const boost::shared_ptr<ActuationModelAbstract>& get_actuation()
const;
51 const boost::shared_ptr<CostModelSum>& get_costs()
const;
52 pinocchio::ModelTpl<Scalar>& get_pinocchio()
const;
53 const VectorXs& get_armature()
const;
54 void set_armature(
const VectorXs& armature);
66 boost::shared_ptr<ActuationModelAbstract> actuation_;
67 boost::shared_ptr<CostModelSum> costs_;
68 pinocchio::ModelTpl<Scalar>& pinocchio_;
73 template <
typename _Scalar>
75 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
76 typedef _Scalar Scalar;
79 typedef typename MathBase::VectorXs VectorXs;
80 typedef typename MathBase::MatrixXs MatrixXs;
82 template <
template <
typename Scalar>
class Model>
85 pinocchio(pinocchio::DataTpl<Scalar>(model->get_pinocchio())),
86 multibody(&pinocchio, model->get_actuation()->createData()),
87 costs(model->get_costs()->createData(&multibody)),
88 Minv(model->get_state()->get_nv(), model->get_state()->get_nv()),
89 u_drift(model->get_nu()),
90 dtau_dx(model->get_nu(), model->get_state()->get_ndx()) {
91 costs->shareMemory(
this);
97 pinocchio::DataTpl<Scalar> pinocchio;
99 boost::shared_ptr<CostDataSumTpl<Scalar> > costs;
121 #include <crocoddyl/multibody/actions/free-fwddyn.hxx> 123 #endif // CROCODDYL_MULTIBODY_ACTIONS_FREE_FWDDYN_HPP_ VectorXs u_lb_
Lower control limits.
This class DifferentialActionModelAbstract represents a first-order ODE, i.e. where and represents ...
VectorXs unone_
Neutral state.
std::size_t nr_
Dimension of the cost residual.
std::size_t nu_
Control dimension.
bool has_control_limits_
Indicates whether any of the control limits is finite.
boost::shared_ptr< StateAbstract > state_
Model of the state.
VectorXs u_ub_
Upper control limits.