10 #ifndef CROCODDYL_CORE_INTEGRATED_ACTION_BASE_HPP_ 11 #define CROCODDYL_CORE_INTEGRATED_ACTION_BASE_HPP_ 13 #include "crocoddyl/core/fwd.hpp" 14 #include "crocoddyl/core/action-base.hpp" 15 #include "crocoddyl/core/diff-action-base.hpp" 16 #include "crocoddyl/core/control-base.hpp" 17 #include "crocoddyl/core/utils/deprecate.hpp" 36 template <
typename _Scalar>
37 class IntegratedActionModelAbstractTpl :
public ActionModelAbstractTpl<_Scalar> {
39 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 typedef _Scalar Scalar;
42 typedef MathBaseTpl<Scalar> MathBase;
43 typedef ActionModelAbstractTpl<Scalar> Base;
44 typedef IntegratedActionDataAbstractTpl<Scalar> Data;
45 typedef ActionDataAbstractTpl<Scalar> ActionDataAbstract;
46 typedef DifferentialActionModelAbstractTpl<Scalar> DifferentialActionModelAbstract;
47 typedef ControlParametrizationModelAbstractTpl<Scalar> ControlParametrizationModelAbstract;
48 typedef typename MathBase::VectorXs VectorXs;
49 typedef typename MathBase::MatrixXs MatrixXs;
60 boost::shared_ptr<ControlParametrizationModelAbstract> control,
61 const Scalar time_step = Scalar(1e-3),
const bool with_cost_residual =
true);
73 const Scalar time_step = Scalar(1e-3),
const bool with_cost_residual =
true);
81 virtual boost::shared_ptr<ActionDataAbstract>
createData();
86 const boost::shared_ptr<DifferentialActionModelAbstract>&
get_differential()
const;
91 const boost::shared_ptr<ControlParametrizationModelAbstract>&
get_control()
const;
96 const Scalar
get_dt()
const;
101 void set_dt(
const Scalar dt);
103 DEPRECATED(
"The DifferentialActionModel should be set at construction time",
104 void set_differential(boost::shared_ptr<DifferentialActionModelAbstract> model));
118 boost::shared_ptr<ControlParametrizationModelAbstract>
control_;
125 template <
typename _Scalar>
127 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
129 typedef _Scalar Scalar;
132 typedef typename MathBase::VectorXs VectorXs;
133 typedef typename MathBase::MatrixXs MatrixXs;
135 template <
template <
typename Scalar>
class Model>
137 virtual ~IntegratedActionDataAbstractTpl() {}
156 #include "crocoddyl/core/integ-action-base.hxx" 158 #endif // CROCODDYL_CORE_INTEGRATED_ACTION_BASE_HPP_ bool has_control_limits_
Indicates whether any of the control limits is finite.
MatrixXs Lxx
Hessian of the cost function.
Scalar time_step_
Time step used for integration.
std::size_t nu_
Control dimension.
IntegratedActionModelAbstractTpl(boost::shared_ptr< DifferentialActionModelAbstract > model, boost::shared_ptr< ControlParametrizationModelAbstract > control, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true)
Initialize the integrator.
void init()
< Neutral state
const Scalar get_dt() const
Return the time step used for the integration.
bool with_cost_residual_
Flag indicating whether a cost residual is used.
VectorXs xnext
evolution state
void set_dt(const Scalar dt)
Set the time step for the integration.
const boost::shared_ptr< ControlParametrizationModelAbstract > & get_control() const
Return the control parametrization model associated to this integrated action model.
boost::shared_ptr< ControlParametrizationModelAbstract > control_
Model of the control parametrization.
virtual boost::shared_ptr< ActionDataAbstract > createData()
Create the integrator data.
const boost::shared_ptr< DifferentialActionModelAbstract > & get_differential() const
Return the differential action model associated to this integrated action model.
VectorXs Lx
Jacobian of the cost function.
VectorXs unone_
Neutral state.
MatrixXs Fx
Jacobian of the dynamics.
VectorXs Lu
Jacobian of the cost function.
Scalar time_step2_
Square of the time step used for integration.
boost::shared_ptr< DifferentialActionModelAbstract > differential_
Differential action model that is integrated.
VectorXs u_ub_
Upper control limits.
MatrixXs Luu
Hessian of the cost function.
VectorXs u_lb_
Lower control limits.
boost::shared_ptr< StateAbstract > state_
Model of the state.
MatrixXs Lxu
Hessian of the cost function.
std::size_t nr_
Dimension of the cost residual.
MatrixXs Fu
Jacobian of the dynamics.