aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear 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;
20 using Base = ExplicitIntegratorAbstractTpl<Scalar>;
21 using BaseData = ExplicitDynamicsDataTpl<Scalar>;
22 using Data = IntegratorSemiImplDataTpl<Scalar>;
23 using ODEType = ODEAbstractTpl<Scalar>;
25
28
29 IntegratorSemiImplEulerTpl(const shared_ptr<ODEType> &cont_dynamics,
30 const Scalar timestep);
31
32 void forward(const ConstVectorRef &x, const ConstVectorRef &u,
33 BaseData &data) const;
34
35 void dForward(const ConstVectorRef &x, const ConstVectorRef &u,
36 BaseData &data) const;
37
38 shared_ptr<StageFunctionDataTpl<Scalar>> createData() const {
39 return std::make_shared<Data>(this);
40 }
41};
42
43template <typename Scalar>
46 using Base = ExplicitIntegratorDataTpl<Scalar>;
47 using ODEData = ODEDataTpl<Scalar>;
48
49 MatrixXs Jtmp_xnext2;
50 MatrixXs Jtmp_u;
51
53 const IntegratorSemiImplEulerTpl<Scalar> *integrator);
54
55 using Base::dx_;
56 using Base::Jtmp_xnext;
57 using Base::Ju_;
58 using Base::Jx_;
59 using Base::xnext_;
60};
61
62} // namespace dynamics
63} // namespace aligator
64
65#include "aligator/modelling/dynamics/integrator-semi-euler.hxx"
Base definitions for explicit integrators.
Main package namespace.
ManifoldPtr space_next_
State space for the output of this dynamics model.
Definition dynamics.hpp:29
VectorXs dx_
Difference vector between current state x and xnext_.
MatrixRef Jx_
Jacobian with respect to .
MatrixRef Ju_
Jacobian with respect to .
IntegratorSemiImplDataTpl(const IntegratorSemiImplEulerTpl< Scalar > *integrator)
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Compute the Jacobians of the forward dynamics.
IntegratorSemiImplEulerTpl(const shared_ptr< ODEType > &cont_dynamics, const Scalar timestep)
void forward(const ConstVectorRef &x, const ConstVectorRef &u, BaseData &data) const
Evaluate the forward discrete dynamics.
shared_ptr< StageFunctionDataTpl< Scalar > > createData() const
Instantiate a Data object.