11 #ifndef CROCODDYL_CORE_INTEGRATED_ACTION_BASE_HPP_
12 #define CROCODDYL_CORE_INTEGRATED_ACTION_BASE_HPP_
14 #include "crocoddyl/core/action-base.hpp"
15 #include "crocoddyl/core/control-base.hpp"
16 #include "crocoddyl/core/diff-action-base.hpp"
17 #include "crocoddyl/core/fwd.hpp"
18 #include "crocoddyl/core/utils/deprecate.hpp"
40 template <
typename _Scalar>
44 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
46 typedef _Scalar Scalar;
55 typedef typename MathBase::VectorXs VectorXs;
56 typedef typename MathBase::MatrixXs MatrixXs;
67 std::shared_ptr<DifferentialActionModelAbstract> model,
68 std::shared_ptr<ControlParametrizationModelAbstract> control,
69 const Scalar time_step = Scalar(1e-3),
70 const bool with_cost_residual =
true);
83 std::shared_ptr<DifferentialActionModelAbstract> model,
84 const Scalar time_step = Scalar(1e-3),
85 const bool with_cost_residual =
true);
93 virtual std::shared_ptr<ActionDataAbstract>
createData()
override;
98 virtual std::size_t
get_ng()
const override;
103 virtual std::size_t
get_nh()
const override;
136 const std::shared_ptr<ControlParametrizationModelAbstract>&
get_control()
149 DEPRECATED(
"The DifferentialActionModel should be set at construction time",
150 void set_differential(
151 std::shared_ptr<DifferentialActionModelAbstract> model));
170 std::shared_ptr<DifferentialActionModelAbstract>
172 std::shared_ptr<ControlParametrizationModelAbstract>
181 template <
typename _Scalar>
183 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
185 typedef _Scalar Scalar;
188 typedef typename MathBase::VectorXs VectorXs;
189 typedef typename MathBase::MatrixXs MatrixXs;
191 template <
template <
typename Scalar>
class Model>
213 #include "crocoddyl/core/integ-action-base.hxx"
215 CROCODDYL_DECLARE_EXTERN_TEMPLATE_CLASS(
217 CROCODDYL_DECLARE_EXTERN_TEMPLATE_STRUCT(
Abstract class for action model.
std::shared_ptr< StateAbstract > state_
Model of the state.
VectorXs u_lb_
Lower control limits.
VectorXs u_ub_
Upper control limits.
std::size_t nu_
Control dimension.
std::size_t nr_
Dimension of the cost residual.
Abstract class for the control trajectory parametrization.
Abstract class for differential action model.
Abstract class for an integrated action model.
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.
const std::shared_ptr< DifferentialActionModelAbstract > & get_differential() const
Return the differential action model associated to this integrated action model.
const std::shared_ptr< ControlParametrizationModelAbstract > & get_control() const
Return the control parametrization model associated to this integrated action model.
Scalar time_step_
Time step used for integration.
virtual std::shared_ptr< ActionDataAbstract > createData() override
Create the integrator data.
IntegratedActionModelAbstractTpl()
< Upper control limits
void set_dt(const Scalar dt)
Set the time step for the integration.
virtual std::size_t get_ng() const override
Return the number of inequality constraints.
std::shared_ptr< ControlParametrizationModelAbstract > control_
Model of the control parametrization.
virtual const VectorXs & get_g_ub() const override
Return the upper bound of the inequality constraints.
virtual std::size_t get_nh_T() const override
Return the number of equality terminal constraints.
virtual std::size_t get_nh() const override
Return the number of equality constraints.
std::shared_ptr< DifferentialActionModelAbstract > differential_
Differential action model that is integrated.
virtual std::size_t get_ng_T() const override
Return the number of inequality terminal constraints.
IntegratedActionModelAbstractTpl(std::shared_ptr< DifferentialActionModelAbstract > model, std::shared_ptr< ControlParametrizationModelAbstract > control, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true)
Initialize the integrator.
Scalar time_step2_
Square of the time step used for integration.
IntegratedActionModelAbstractTpl(std::shared_ptr< DifferentialActionModelAbstract > model, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true)
Initialize the integrator.
virtual const VectorXs & get_g_lb() const override
Return the lower bound of the inequality constraints.
VectorXs xnext
evolution state
MatrixXs Fx
Jacobian of the dynamics w.r.t. the state .
MatrixXs Fu
Jacobian of the dynamics w.r.t. the control .
MatrixXs Luu
Hessian of the cost w.r.t. the control .
VectorXs Lx
Jacobian of the cost w.r.t. the state .
MatrixXs Lxx
Hessian of the cost w.r.t. the state .
VectorXs Lu
Jacobian of the cost w.r.t. the control .