aligator
0.19.0
A versatile and efficient C++ library for real-time constrained trajectory optimization.
Toggle main menu visibility
Loading...
Searching...
No Matches
explicit-dynamics.hpp
Go to the documentation of this file.
1
3
#pragma once
4
5
#include "
aligator/python/fwd.hpp
"
6
#include "
aligator/core/explicit-dynamics.hpp
"
7
8
#include "
aligator/modelling/dynamics/fwd.hpp
"
9
#include "
aligator/modelling/dynamics/integrator-explicit.hpp
"
10
11
namespace
aligator
{
12
namespace
python
{
13
using
context::DynamicsData
;
14
19
template
<
class
Base = context::ExplicitDynamics>
20
struct
PyExplicitDynamics
final
21
:
Base
,
22
PolymorphicWrapper
<PyExplicitDynamics<Base>, Base> {
23
using
Scalar
=
context::Scalar
;
24
ALIGATOR_DYNAMIC_TYPEDEFS
(
Scalar
);
25
// All functions in the interface take this type for output
26
using
Data
=
ExplicitDynamicsDataTpl<Scalar>
;
27
28
using
Base::Base;
29
30
void
forward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
31
Data
&data)
const
{
32
ALIGATOR_PYTHON_OVERRIDE_PURE
(
void
,
"forward"
, x, u, boost::ref(data));
33
}
34
35
void
dForward
(
const
ConstVectorRef &x,
const
ConstVectorRef &u,
36
Data
&data)
const
{
37
ALIGATOR_PYTHON_OVERRIDE_PURE
(
void
,
"dForward"
, x, u, boost::ref(data));
38
}
39
40
shared_ptr<Data>
createData
()
const
{
41
ALIGATOR_PYTHON_OVERRIDE
(shared_ptr<Data>,
Base
,
createData
, );
42
}
43
44
shared_ptr<Data>
default_createData
()
const
{
return
Base::createData
(); }
45
};
46
47
}
// namespace python
48
}
// namespace aligator
49
50
namespace
boost::python::objects {
51
52
template
<>
53
struct
value_holder<aligator::python::PyExplicitDynamics<>>
54
: aligator::python::OwningNonOwningHolder<
55
aligator::python::PyExplicitDynamics<>> {
56
using
OwningNonOwningHolder::OwningNonOwningHolder;
57
};
58
59
template
<>
60
struct
value_holder<aligator::python::PyExplicitDynamics<
61
aligator::context::ExplicitIntegratorAbstract>>
62
: aligator::python::OwningNonOwningHolder<
63
aligator::python::PyExplicitDynamics<
64
aligator::context::ExplicitIntegratorAbstract>> {
65
using
OwningNonOwningHolder::OwningNonOwningHolder;
66
};
67
68
}
// 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
explicit-dynamics.hpp
fwd.hpp
integrator-explicit.hpp
Base definitions for explicit integrators.
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
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::ExplicitDynamicsDataTpl
Specific data struct for explicit dynamics ExplicitDynamicsModelTpl.
Definition
explicit-dynamics.hpp:64
aligator::ExplicitDynamicsModelTpl< Scalar >::createData
virtual shared_ptr< Data > createData() const
Definition
explicit-dynamics.hpp:51
aligator::python::PolymorphicWrapper< PyExplicitDynamics< context::ExplicitDynamics >, context::ExplicitDynamics >::Base
context::ExplicitDynamics Base
Definition
polymorphic.hpp:188
aligator::python::PolymorphicWrapper< PyExplicitDynamics< context::ExplicitDynamics >, context::ExplicitDynamics >::PolymorphicWrapper
PolymorphicWrapper()=default
aligator::python::PyExplicitDynamics
Definition
explicit-dynamics.hpp:22
aligator::python::PyExplicitDynamics::dForward
void dForward(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const
Compute the Jacobians of the forward dynamics.
Definition
explicit-dynamics.hpp:35
aligator::python::PyExplicitDynamics::Scalar
context::Scalar Scalar
Definition
explicit-dynamics.hpp:23
aligator::python::PyExplicitDynamics::forward
void forward(const ConstVectorRef &x, const ConstVectorRef &u, Data &data) const
Evaluate the forward discrete dynamics.
Definition
explicit-dynamics.hpp:30
aligator::python::PyExplicitDynamics::default_createData
shared_ptr< Data > default_createData() const
Definition
explicit-dynamics.hpp:44
aligator::python::PyExplicitDynamics::ALIGATOR_DYNAMIC_TYPEDEFS
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
aligator::python::PyExplicitDynamics::Data
ExplicitDynamicsDataTpl< Scalar > Data
Definition
explicit-dynamics.hpp:26
aligator::python::PyExplicitDynamics::createData
shared_ptr< Data > createData() const
Definition
explicit-dynamics.hpp:40
bindings
python
include
aligator
python
modelling
explicit-dynamics.hpp
Generated by
1.17.0