aligator  0.15.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Loading...
Searching...
No Matches
integrator-semi-euler.hpp
Go to the documentation of this file.
1#pragma once
6
8
9namespace aligator {
10namespace dynamics {
11template <typename Scalar> struct IntegratorSemiImplDataTpl;
16template <typename _Scalar>
18 using Scalar = _Scalar;
26
29
30 IntegratorSemiImplEulerTpl(const xyz::polymorphic<ODEType> &cont_dynamics,
31 const Scalar timestep);
32
33 void forward(const ConstVectorRef &x, const ConstVectorRef &u,
34 BaseData &data) const;
35
36 void dForward(const ConstVectorRef &x, const ConstVectorRef &u,
37 BaseData &data) const;
38
39 shared_ptr<BaseData> createData() const {
40 return std::make_shared<Data>(*this);
41 }
42};
43
44template <typename Scalar>
50
51 MatrixXs Jtmp_xnext2;
52 MatrixXs Jtmp_u;
53
54 explicit IntegratorSemiImplDataTpl(const Model &integrator)
55 : Base(integrator)
56 , Jtmp_xnext2(integrator.ndx1(), integrator.ndx1())
57 , Jtmp_u(integrator.ndx1(), integrator.nu) {
58 Jtmp_xnext2.setZero();
59 Jtmp_u.setZero();
60 }
61
62 using Base::dx_;
63 using Base::xnext_;
64};
65
66#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
67extern template struct IntegratorSemiImplEulerTpl<context::Scalar>;
68extern template struct IntegratorSemiImplDataTpl<context::Scalar>;
69#endif
70
71} // namespace dynamics
72} // namespace aligator
Base definitions for explicit integrators.
Namespace for modelling system dynamics.
Main package namespace.
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Data struct for ContinuousDynamicsAbstractTpl.
ExplicitIntegratorAbstractTpl(const xyz::polymorphic< ODEType > &cont_dynamics)
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Compute the Jacobians of the forward dynamics.
IntegratorSemiImplEulerTpl(const xyz::polymorphic< ODEType > &cont_dynamics, const Scalar timestep)
ExplicitIntegratorAbstractTpl< Scalar > Base
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the forward discrete dynamics.
Base class for ODE dynamics .