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-solver-fddp.cpp
Go to the documentation of this file.
1
#include "
aligator/python/fwd.hpp
"
2
#include "
aligator/python/visitors.hpp
"
3
#include "
aligator/python/solvers.hpp
"
4
5
#include "
aligator/solvers/fddp/solver-fddp.hpp
"
6
7
namespace
aligator::python
{
8
using
context::Scalar
;
9
using
QParams
=
QFunctionTpl<Scalar>
;
10
using
VParams
=
ValueFunctionTpl<Scalar>
;
11
}
// namespace aligator::python
12
13
namespace
aligator
{
14
namespace
python
{
15
16
void
exposeFDDP
() {
17
using
context::Manifold
;
18
using
context::SolverFDDP
;
19
using
Workspace =
WorkspaceFDDPTpl<Scalar>
;
20
using
Results =
ResultsFDDPTpl<Scalar>
;
21
22
bp::class_<QParams>(
"QParams"
,
"Q-function parameters."
,
23
bp::init<int, int, int>((
"self"
_a,
"ndx"
,
"nu"
,
"ndy"
)))
24
.add_property(
"ntot"
, &
QParams::ntot
)
25
.def_readonly(
"grad"
, &
QParams::grad_
)
26
.def_readonly(
"hess"
, &
QParams::hess_
)
27
.add_property(
28
"Qx"
, bp::make_getter(&
QParams::Qx
,
29
bp::return_value_policy<bp::return_by_value>()))
30
.add_property(
31
"Qu"
, bp::make_getter(&
QParams::Qu
,
32
bp::return_value_policy<bp::return_by_value>()))
33
.add_property(
"Qxx"
, bp::make_getter(
34
&
QParams::Qxx
,
35
bp::return_value_policy<bp::return_by_value>()))
36
.add_property(
"Qxu"
, bp::make_getter(
37
&
QParams::Qxu
,
38
bp::return_value_policy<bp::return_by_value>()))
39
.add_property(
"Qxy"
, bp::make_getter(
40
&
QParams::Qxy
,
41
bp::return_value_policy<bp::return_by_value>()))
42
.add_property(
"Quu"
, bp::make_getter(
43
&
QParams::Quu
,
44
bp::return_value_policy<bp::return_by_value>()))
45
.add_property(
"Quy"
, bp::make_getter(
46
&
QParams::Quy
,
47
bp::return_value_policy<bp::return_by_value>()))
48
.add_property(
"Qyy"
, bp::make_getter(
49
&
QParams::Qyy
,
50
bp::return_value_policy<bp::return_by_value>()))
51
.def(
PrintableVisitor<QParams>
());
52
53
bp::class_<VParams>(
"VParams"
,
"Value function parameters."
, bp::no_init)
54
.def_readonly(
"Vx"
, &
VParams::Vx_
)
55
.def_readonly(
"Vxx"
, &
VParams::Vxx_
)
56
.def(
PrintableVisitor<VParams>
());
57
58
StdVectorPythonVisitor<std::vector<QParams>>::expose(
"StdVec_QParams"
);
59
StdVectorPythonVisitor<std::vector<VParams>>::expose(
"StdVec_VParams"
);
60
61
bp::class_<Workspace, bp::bases<Workspace::Base>, boost::noncopyable>(
62
"WorkspaceFDDP"
, bp::no_init)
63
.def_readonly(
"dxs"
, &Workspace::dxs)
64
.def_readonly(
"dus"
, &Workspace::dus)
65
.def_readonly(
"value_params"
, &Workspace::value_params)
66
.def_readonly(
"q_params"
, &Workspace::q_params)
67
.def_readonly(
"d1"
, &Workspace::d1_)
68
.def_readonly(
"d2"
, &Workspace::d2_);
69
70
bp::class_<Results, bp::bases<Results::Base>>(
"ResultsFDDP"
, bp::no_init)
71
.def(bp::init<const context::TrajOptProblem &>((
"self"
_a,
"problem"
)));
72
73
bp::class_<SolverFDDP, boost::noncopyable>(
74
"SolverFDDP"
,
"An implementation of the FDDP solver from Crocoddyl."
,
75
bp::init<Scalar, VerboseLevel, Scalar, std::size_t>(
76
(
"self"
_a,
"tol"
,
"verbose"
_a =
VerboseLevel::QUIET
,
77
"reg_init"
_a = 1e-9,
"max_iters"
_a = 1000)))
78
.def_readwrite(
"reg_min"
, &
SolverFDDP::reg_min_
)
79
.def_readwrite(
"reg_max"
, &
SolverFDDP::reg_max_
)
80
.def(
SolverVisitor<SolverFDDP>
())
81
.def(
"run"
, &SolverFDDP::run,
82
(
"self"
_a,
"problem"
,
"xs_init"
,
"us_init"
));
83
}
84
85
}
// namespace python
86
}
// namespace aligator
fwd.hpp
aligator::context::Manifold
ManifoldAbstractTpl< Scalar > Manifold
Definition
context.hpp:14
aligator::context::Scalar
double Scalar
Definition
context.hpp:9
aligator::context::SolverFDDP
SolverFDDPTpl< Scalar > SolverFDDP
Definition
context.hpp:42
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:7
aligator::python::VParams
ValueFunctionTpl< Scalar > VParams
Definition
expose-solver-fddp.cpp:10
aligator::python::QParams
QFunctionTpl< Scalar > QParams
Definition
expose-solver-fddp.cpp:9
aligator::python::exposeFDDP
void exposeFDDP()
Definition
expose-solver-fddp.cpp:16
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
aligator::QUIET
@ QUIET
Definition
fwd.hpp:82
solver-fddp.hpp
solvers.hpp
aligator::QFunctionTpl
Q-function model parameters.
Definition
value-function.hpp:44
aligator::QFunctionTpl< Scalar >::grad_
VectorXs grad_
Definition
value-function.hpp:55
aligator::QFunctionTpl< Scalar >::Quu
MatrixRef Quu
Definition
value-function.hpp:64
aligator::QFunctionTpl< Scalar >::Quy
MatrixRef Quy
Definition
value-function.hpp:65
aligator::QFunctionTpl< Scalar >::Qxu
MatrixRef Qxu
Definition
value-function.hpp:62
aligator::QFunctionTpl< Scalar >::hess_
MatrixXs hess_
Definition
value-function.hpp:56
aligator::QFunctionTpl< Scalar >::Qxx
MatrixRef Qxx
Definition
value-function.hpp:61
aligator::QFunctionTpl< Scalar >::Qu
VectorRef Qu
Definition
value-function.hpp:59
aligator::QFunctionTpl< Scalar >::Qyy
MatrixRef Qyy
Definition
value-function.hpp:66
aligator::QFunctionTpl< Scalar >::Qxy
MatrixRef Qxy
Definition
value-function.hpp:63
aligator::QFunctionTpl< Scalar >::Qx
VectorRef Qx
Definition
value-function.hpp:58
aligator::QFunctionTpl< Scalar >::ntot
long ntot() const
Definition
value-function.hpp:51
aligator::ResultsFDDPTpl
Definition
results.hpp:9
aligator::SolverFDDPTpl::reg_max_
Scalar reg_max_
Definition
solver-fddp.hpp:54
aligator::SolverFDDPTpl::reg_min_
Scalar reg_min_
Definition
solver-fddp.hpp:53
aligator::ValueFunctionTpl
Storage for the value function model parameters.
Definition
value-function.hpp:16
aligator::ValueFunctionTpl< Scalar >::Vxx_
MatrixXs Vxx_
Definition
value-function.hpp:21
aligator::ValueFunctionTpl< Scalar >::Vx_
VectorXs Vx_
Definition
value-function.hpp:20
aligator::WorkspaceFDDPTpl
Workspace for solver SolverFDDP.
Definition
workspace.hpp:10
aligator::python::PrintableVisitor
Definition
visitors.hpp:49
aligator::python::SolverVisitor
Definition
solvers.hpp:15
visitors.hpp
bindings
python
src
expose-solver-fddp.cpp
Generated by
1.17.0