IntegratedActionModelEulerTpl (std::shared_ptr< DifferentialActionModelAbstract > model, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true) Initialize the symplectic Euler integrator. IntegratedActionModelEulerTpl (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 symplectic Euler integrator. virtual void calc (const std::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override Integrate the total cost value for nodes that depends only on the state using symplectic Euler scheme. virtual void calc (const std::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override Integrate the differential action model using symplectic Euler scheme. virtual void calcDiff (const std::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x) override Compute the partial derivatives of the cost. virtual void calcDiff (const std::shared_ptr< ActionDataAbstract > &data, const Eigen::Ref< const VectorXs > &x, const Eigen::Ref< const VectorXs > &u) override Compute the partial derivatives of the symplectic Euler integrator. template<typename NewScalar> IntegratedActionModelEulerTpl < NewScalar > cast () const Cast the Euler integrated-action model to a different scalar type. virtual bool checkData (const std::shared_ptr< ActionDataAbstract > &data) override Checks that a specific data belongs to this model. virtual std::shared_ptr< ActionDataAbstract > createData () override Create the symplectic Euler data. virtual void print (std::ostream &os) const override Print relevant information of the Euler integrator model. virtual void quasiStatic (const std::shared_ptr< ActionDataAbstract > &data, Eigen::Ref< VectorXs > u, const Eigen::Ref< const VectorXs > &x, const std::size_t maxiter=100, const Scalar tol=Scalar(1e-9)) override Computes the quasic static commands. IntegratedActionModelAbstractTpl (std::shared_ptr< DifferentialActionModelAbstract > model, const Scalar time_step=Scalar(1e-3), const bool with_cost_residual=true) Initialize the integrator. 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. DEPRECATED ("The DifferentialActionModel should be set at construction time", void set_differential(std::shared_ptr< DifferentialActionModelAbstract > model))const std::shared_ptr< ControlParametrizationModelAbstract > & get_control () const Return the control parametrization model associated to this integrated action model. const std::shared_ptr< DifferentialActionModelAbstract > & get_differential () const Return the differential action model associated to this integrated action model. const Scalar get_dt () const Return the time step used for the integration. virtual const VectorXs & get_g_lb () const override Return the lower bound of the inequality constraints. virtual const VectorXs & get_g_ub () const override Return the upper bound of the inequality constraints. virtual std::size_t get_ng () const override Return the number of inequality constraints. virtual std::size_t get_ng_T () const override Return the number of inequality terminal constraints. virtual std::size_t get_nh () const override Return the number of equality constraints. virtual std::size_t get_nh_T () const override Return the number of equality terminal constraints. void set_dt (const Scalar dt) Set the time step for the integration. ActionModelAbstractTpl (const ActionModelAbstractTpl< Scalar > &other) Copy constructor. ActionModelAbstractTpl (std::shared_ptr< StateAbstract > state, const std::size_t nu, const std::size_t nr=0, const std::size_t ng=0, const std::size_t nh=0, const std::size_t ng_T=0, const std::size_t nh_T=0) Initialize the action model. bool get_has_control_limits () const Indicates if there are defined control limits. std::size_t get_nr () const Return the dimension of the cost-residual vector. std::size_t get_nu () const Return the dimension of the control input. const std::shared_ptr< StateAbstract > & get_state () const Return the state. const VectorXs & get_u_lb () const Return the control lower bound. const VectorXs & get_u_ub () const Return the control upper bound. VectorXs quasiStatic_x (const std::shared_ptr< ActionDataAbstract > &data, const VectorXs &x, const std::size_t maxiter=100, const Scalar tol=Scalar(1e-9))void set_g_lb (const VectorXs &g_lb) Modify the lower bound of the inequality constraints. void set_g_ub (const VectorXs &g_ub) Modify the upper bound of the inequality constraints. void set_u_lb (const VectorXs &u_lb) Modify the control lower bounds. void set_u_ub (const VectorXs &u_ub) Modify the control upper bounds.
std::shared_ptr< ControlParametrizationModelAbstract > control_ Model of the control parametrization. std::shared_ptr< DifferentialActionModelAbstract > differential_ < Control parametrization std::size_t nu_ < Number of equality constraints std::shared_ptr< StateAbstract > state_ < Dimension of the control Scalar time_step2_ < Model of the state Scalar time_step_ < Square of the time step used for integration bool with_cost_residual_ < Time step used for integration std::shared_ptr< ControlParametrizationModelAbstract > control_ Model of the control parametrization. std::shared_ptr< DifferentialActionModelAbstract > differential_ Differential action model that is integrated. bool has_control_limits_ std::size_t nr_ std::size_t nu_ < Dimension of the cost residual std::shared_ptr< StateAbstract > state_ < Dimension of the control Scalar time_step2_ Square of the time step used for integration. Scalar time_step_ Time step used for integration. VectorXs u_lb_ < Model of the state VectorXs u_ub_ < Lower control limits bool with_cost_residual_ Flag indicating whether a cost residual is used. VectorXs g_lb_ Lower bound of the inequality constraints. VectorXs g_ub_ Lower bound of the inequality constraints. bool has_control_limits_ std::size_t ng_ Number of inequality constraints. std::size_t ng_T_ Number of inequality terminal constraints. std::size_t nh_ Number of equality constraints. std::size_t nh_T_ Number of equality terminal constraints. std::size_t nr_ Dimension of the cost residual. std::size_t nu_ Control dimension. std::shared_ptr< StateAbstract > state_ Model of the state. VectorXs u_lb_ Lower control limits. VectorXs u_ub_ Upper control limits. VectorXs unone_ Neutral state.
template<typename _Scalar> class crocoddyl::IntegratedActionModelEulerTpl< _Scalar >
Symplectic Euler integrator.
It applies a symplectic Euler integration scheme to a differential (i.e., continuous time) action model.
This symplectic Euler scheme introduces also the possibility to parametrize the control trajectory inside an integration step, for instance using polynomials. This requires introducing some notation to clarify the difference between the control inputs of the differential model and the control inputs to the integrated model. We have decided to use to refer to the control inputs of the differential model and for the control inputs of the integrated action model. Note that the zero-order (e.g., ControlParametrizationModelPolyZeroTpl ) are the only ones that make sense to use within this integrator.
See also calc() , calcDiff() , createData() Definition at line 37 of file euler.hpp .