aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
dynamics.hpp
Go to the documentation of this file.
1
2
#pragma once
3
4
#include "
aligator/python/fwd.hpp
"
5
#include "
aligator/python/visitors.hpp
"
6
7
#include "
aligator/core/dynamics.hpp
"
8
9
#include "
aligator/modelling/dynamics/fwd.hpp
"
10
#include "
aligator/modelling/dynamics/integrator-abstract.hpp
"
11
12
namespace
aligator
{
13
namespace
python
{
21
template
<
class
Base = context::DynamicsModel>
22
struct
PyDynamics
final :
Base
,
PolymorphicWrapper
<PyDynamics<Base>, Base> {
23
using
Scalar
=
typename
Base::Scalar
;
24
using
Data
=
DynamicsDataTpl<Scalar>
;
25
using
Base::Base;
26
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
27
28
void
evaluate
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
29
const
ConstVectorRef &y,
Data
&data)
const override
{
30
ALIGATOR_PYTHON_OVERRIDE_PURE
(
void
,
"evaluate"
, x, u, y, boost::ref(data));
31
}
32
33
void
computeJacobians
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
34
const
ConstVectorRef &y,
Data
&data)
const override
{
35
ALIGATOR_PYTHON_OVERRIDE_PURE
(
void
,
"computeJacobians"
, x, u, y,
36
boost::ref(data));
37
}
38
39
void
computeVectorHessianProducts
(
const
ConstVectorRef &x,
40
const
ConstVectorRef &u,
41
const
ConstVectorRef &y,
42
const
ConstVectorRef &lbda,
43
Data
&data)
const override
{
44
ALIGATOR_PYTHON_OVERRIDE
(
void
,
Base
,
computeVectorHessianProducts
, x, u, y,
45
lbda, boost::ref(data));
46
}
47
48
shared_ptr<Data>
createData
()
const override
{
49
ALIGATOR_PYTHON_OVERRIDE
(shared_ptr<Data>,
Base
,
createData
, );
50
}
51
52
shared_ptr<Data>
default_createData
()
const
{
return
Base::createData
(); }
53
};
54
55
}
// namespace python
56
}
// namespace aligator
57
58
namespace
boost::python::objects {
59
60
template
<>
61
struct
value_holder<aligator::python::PyDynamics<>>
62
: aligator::python::OwningNonOwningHolder<aligator::python::PyDynamics<>> {
63
using
OwningNonOwningHolder::OwningNonOwningHolder;
64
};
65
66
template
<>
67
struct
value_holder<
68
aligator::python::PyDynamics<aligator::context::IntegratorAbstract>>
69
: aligator::python::OwningNonOwningHolder<
70
aligator::python::PyDynamics<aligator::context::IntegratorAbstract>> {
71
using
OwningNonOwningHolder::OwningNonOwningHolder;
72
};
73
74
}
// namespace boost::python::objects
fwd.hpp
ALIGATOR_PYTHON_OVERRIDE
#define ALIGATOR_PYTHON_OVERRIDE(ret_type, cname, fname,...)
Define the body of a virtual function override. This is meant to reduce boilerplate code when exposin...
Definition
fwd.hpp:98
ALIGATOR_PYTHON_OVERRIDE_PURE
#define ALIGATOR_PYTHON_OVERRIDE_PURE(ret_type, pyname,...)
Define the body of a virtual function override. This is meant to reduce boilerplate code when exposin...
Definition
fwd.hpp:90
dynamics.hpp
fwd.hpp
integrator-abstract.hpp
Base definitions for numerical integrators.
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:7
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::DynamicsDataTpl
Definition
dynamics.hpp:77
aligator::DynamicsModelTpl< Scalar >::createData
virtual shared_ptr< Data > createData() const
aligator::DynamicsModelTpl< Scalar >::Scalar
Scalar Scalar
Definition
dynamics.hpp:15
aligator::python::PolymorphicWrapper< PyDynamics< context::DynamicsModel >, context::DynamicsModel >::Base
context::DynamicsModel Base
Definition
polymorphic.hpp:188
aligator::python::PolymorphicWrapper< PyDynamics< context::DynamicsModel >, context::DynamicsModel >::PolymorphicWrapper
PolymorphicWrapper()=default
aligator::python::PyDynamics
Definition
dynamics.hpp:22
aligator::python::PyDynamics::Scalar
typename Base::Scalar Scalar
Definition
dynamics.hpp:23
aligator::python::PyDynamics::createData
shared_ptr< Data > createData() const override
Definition
dynamics.hpp:48
aligator::python::PyDynamics::evaluate
void evaluate(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const override
Definition
dynamics.hpp:28
aligator::python::PyDynamics::computeVectorHessianProducts
void computeVectorHessianProducts(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, const ConstVectorRef &lbda, Data &data) const override
Definition
dynamics.hpp:39
aligator::python::PyDynamics::computeJacobians
void computeJacobians(const ConstVectorRef &x, const ConstVectorRef &u, const ConstVectorRef &y, Data &data) const override
Definition
dynamics.hpp:33
aligator::python::PyDynamics::Data
DynamicsDataTpl< Scalar > Data
Definition
dynamics.hpp:24
aligator::python::PyDynamics::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::python::PyDynamics::default_createData
shared_ptr< Data > default_createData() const
Definition
dynamics.hpp:52
visitors.hpp
bindings
python
include
aligator
python
dynamics.hpp
Generated by
1.17.0