aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
expose-integrators.cpp
Go to the documentation of this file.
1
3
4
#include "
aligator/python/dynamics.hpp
"
5
6
#include "
aligator/modelling/dynamics/fwd.hpp
"
7
#include "
aligator/modelling/dynamics/integrator-abstract.hpp
"
8
#include "
aligator/modelling/dynamics/integrator-midpoint.hpp
"
9
10
namespace
aligator
{
11
namespace
python
{
12
using
context::Scalar
;
13
using namespace
aligator::dynamics;
14
using
context::DynamicsData
;
15
using
context::DynamicsModel
;
16
using
context::IntegratorAbstract
;
17
18
void
exposeIntegrators
() {
19
using
DAEType =
ContinuousDynamicsAbstractTpl<Scalar>
;
20
21
using
PolyIntegrator = xyz::polymorphic<IntegratorAbstract>;
22
using
PyIntegratorAbstract =
PyDynamics<IntegratorAbstract>
;
23
register_polymorphic_to_python<PolyIntegrator>
();
24
25
PolymorphicMultiBaseVisitor<DynamicsModel, IntegratorAbstract>
26
conversions_visitor;
27
28
bp::class_<PyIntegratorAbstract, bp::bases<DynamicsModel>,
29
boost::noncopyable>(
"IntegratorAbstract"
,
30
"Base class for numerical integrators."
,
31
bp::init<const xyz::polymorphic<DAEType> &>(
32
"Construct the integrator from a DAE."
,
33
bp::args(
"self"
,
"cont_dynamics"
)))
34
.def_readwrite(
"continuous_dynamics"
,
35
&
IntegratorAbstract::continuous_dynamics_
,
36
"The underlying ODE or DAE."
)
37
.add_property(
"space"
,
38
bp::make_function(&
IntegratorAbstract::space
,
39
bp::return_internal_reference<>()),
40
"Return the state manifold."
)
41
// allow casting custom Python class to polymorphic<base_classes>...
42
.def(conversions_visitor);
43
44
bp::register_ptr_to_python<shared_ptr<IntegratorDataTpl<Scalar>>>();
45
bp::class_<IntegratorDataTpl<Scalar>, bp::bases<DynamicsData>>(
46
"IntegratorData"
,
"Base class for integrators' data."
, bp::no_init)
47
.def_readwrite(
"continuous_data"
,
48
&
IntegratorDataTpl<Scalar>::continuous_data
);
49
50
using
MidpointIntegrator =
IntegratorMidpointTpl<Scalar>
;
51
bp::class_<MidpointIntegrator, bp::bases<IntegratorAbstract>>(
52
"IntegratorMidpoint"
, bp::init<xyz::polymorphic<DAEType>,
Scalar
>(
53
bp::args(
"self"
,
"dae"
,
"timestep"
)))
54
.def_readwrite(
"timestep"
, &MidpointIntegrator::timestep_,
"Time step."
)
55
.def(conversions_visitor);
56
57
bp::register_ptr_to_python<shared_ptr<IntegratorMidpointDataTpl<Scalar>>>();
58
bp::class_<IntegratorMidpointDataTpl<Scalar>,
59
bp::bases<IntegratorDataTpl<Scalar>>>(
"IntegratorMidpointData"
,
60
bp::no_init);
61
}
62
63
}
// namespace python
64
}
// namespace aligator
dynamics.hpp
fwd.hpp
integrator-abstract.hpp
Base definitions for numerical integrators.
integrator-midpoint.hpp
aligator::context::DynamicsModel
DynamicsModelTpl< Scalar > DynamicsModel
Definition
context.hpp:27
aligator::context::IntegratorAbstract
dynamics::IntegratorAbstractTpl< Scalar > IntegratorAbstract
Definition
fwd.hpp:67
aligator::context::DynamicsData
DynamicsDataTpl< Scalar > DynamicsData
Definition
context.hpp:28
aligator::context::Scalar
double Scalar
Definition
context.hpp:9
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:7
aligator::python::register_polymorphic_to_python
void register_polymorphic_to_python()
Expose a polymorphic value type, e.g. xyz::polymorphic<T, A>.
Definition
polymorphic.hpp:23
aligator::python::exposeIntegrators
void exposeIntegrators()
Expose numerical integrators.
Definition
expose-integrators.cpp:18
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::DynamicsModelTpl< Scalar >::space
const Manifold & space() const
Definition
dynamics.hpp:32
aligator::dynamics::ContinuousDynamicsAbstractTpl
Continuous dynamics described by differential-algebraic equations (DAEs) .
Definition
continuous-dynamics-abstract.hpp:19
aligator::dynamics::IntegratorAbstractTpl< Scalar >::continuous_dynamics_
xyz::polymorphic< ContinuousDynamics > continuous_dynamics_
Definition
integrator-abstract.hpp:32
aligator::dynamics::IntegratorDataTpl::continuous_data
shared_ptr< ContinuousDynamicsDataTpl< Scalar > > continuous_data
Definition
integrator-abstract.hpp:54
aligator::dynamics::IntegratorMidpointTpl
Midpoint integration rule.
Definition
integrator-midpoint.hpp:28
aligator::python::PolymorphicMultiBaseVisitor
Definition
polymorphic.hpp:107
aligator::python::PyDynamics
Definition
dynamics.hpp:22
bindings
python
src
modelling
expose-integrators.cpp
Generated by
1.17.0