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"
36template <
typename _Scalar>
39 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
41 typedef _Scalar Scalar;
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();
91 const boost::shared_ptr<ControlParametrizationModelAbstract>&
get_control()
const;
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_;
125template <
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>
156#include "crocoddyl/core/integ-action-base.hxx"
Abstract class for action model.
VectorXs u_lb_
Lower control limits.
VectorXs u_ub_
Upper control limits.
bool has_control_limits_
Indicates whether any of the control limits is finite.
boost::shared_ptr< StateAbstract > state_
Model of the state.
std::size_t nu_
Control dimension.
VectorXs unone_
Neutral state.
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.
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.
Scalar time_step_
Time step used for integration.
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< DifferentialActionModelAbstract > differential_
Differential action model that is integrated.
boost::shared_ptr< ControlParametrizationModelAbstract > control_
Model of the control parametrization.
virtual boost::shared_ptr< ActionDataAbstract > createData()
Create the integrator data.
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.
Scalar time_step2_
Square of the time step used for integration.
IntegratedActionModelAbstractTpl(boost::shared_ptr< DifferentialActionModelAbstract > model, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true)
Initialize the integrator.
const boost::shared_ptr< DifferentialActionModelAbstract > & get_differential() const
Return the differential action model associated to this integrated action model.
VectorXs xnext
evolution state
MatrixXs Fx
Jacobian of the dynamics.
MatrixXs Fu
Jacobian of the dynamics.
MatrixXs Luu
Hessian of the cost function.
VectorXs Lx
Jacobian of the cost function.
MatrixXs Lxx
Hessian of the cost function.
VectorXs Lu
Jacobian of the cost function.
MatrixXs Lxu
Hessian of the cost function.