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-solvers-base.cpp
Go to the documentation of this file.
1
#include "
aligator/python/fwd.hpp
"
2
#include "
aligator/python/visitors.hpp
"
3
4
#include "
aligator/solvers/results-base.hpp
"
5
#include "
aligator/solvers/workspace-base.hpp
"
6
7
namespace
aligator
{
8
namespace
python
{
9
10
/* fwd declarations */
11
12
void
exposeFDDP
();
13
void
exposeProxDDP
();
14
16
void
exposeSolverCommon
() {
17
using
context::Scalar
;
18
19
using
WorkspaceBase =
WorkspaceBaseTpl<Scalar>
;
20
bp::class_<WorkspaceBase, boost::noncopyable>(
21
"WorkspaceBase"
,
"Base workspace struct."
, bp::no_init)
22
.def_readonly(
"nsteps"
, &WorkspaceBase::nsteps)
23
.def_readonly(
"problem_data"
, &WorkspaceBase::problem_data)
24
.def_readonly(
"trial_xs"
, &WorkspaceBase::trial_xs)
25
.def_readonly(
"trial_us"
, &WorkspaceBase::trial_us)
26
.def_readonly(
"dyn_slacks"
, &WorkspaceBase::dyn_slacks,
27
"Expose dynamics' slack variables (e.g. feasibility gaps)."
)
28
.def(
"cycleLeft"
, &WorkspaceBase::cycleLeft,
"self"
_a,
29
"Cycle the workspace to the left: this will rotate all the data "
30
"(states, controls, multipliers) forward by one rank."
)
31
.def(
"cycleAppend"
, &WorkspaceBase::cycleAppend, (
"self"
_a,
"data"
),
32
"Insert a StageData object and cycle the workspace left (using "
33
"`cycleLeft()`) and insert the allocated data (useful for MPC)."
);
34
35
using
ResultsBase =
ResultsBaseTpl<Scalar>
;
36
bp::class_<ResultsBase>(
"ResultsBase"
,
"Base results struct."
, bp::no_init)
37
.def_readonly(
"num_iters"
, &ResultsBase::num_iters,
38
"Number of solver iterations."
)
39
.def_readonly(
"conv"
, &ResultsBase::conv)
40
.def_readonly(
"gains"
, &ResultsBase::gains_)
41
.def_readonly(
"xs"
, &ResultsBase::xs)
42
.def_readonly(
"us"
, &ResultsBase::us)
43
.def_readonly(
"primal_infeas"
, &ResultsBase::prim_infeas)
44
.def_readonly(
"dual_infeas"
, &ResultsBase::dual_infeas)
45
.def_readonly(
"traj_cost"
, &ResultsBase::traj_cost_,
"Trajectory cost."
)
46
.def_readonly(
"merit_value"
, &ResultsBase::merit_value_,
47
"Merit function value."
)
48
.def(
"controlFeedbacks"
, &ResultsBase::getCtrlFeedbacks,
"self"
_a,
49
"Get the control feedback matrices."
)
50
.def(
"controlFeedforwards"
, &ResultsBase::getCtrlFeedforwards,
"self"
_a,
51
"Get the control feedforward gains."
)
52
.def(
PrintableVisitor<ResultsBase>
());
53
}
54
55
void
exposeSolvers
() {
56
exposeSolverCommon
();
57
exposeFDDP
();
58
exposeProxDDP
();
59
}
60
61
}
// namespace python
62
}
// namespace aligator
fwd.hpp
aligator::context::Scalar
double Scalar
Definition
context.hpp:9
aligator::python
The Python bindings.
Definition
blk-matrix.hpp:7
aligator::python::exposeSolverCommon
void exposeSolverCommon()
Expose base solver elements.
Definition
expose-solvers-base.cpp:16
aligator::python::exposeProxDDP
void exposeProxDDP()
Definition
expose-solver-prox.cpp:58
aligator::python::exposeSolvers
void exposeSolvers()
Expose solvers.
Definition
expose-solvers-base.cpp:55
aligator::python::exposeFDDP
void exposeFDDP()
Definition
expose-solver-fddp.cpp:16
aligator
Main package namespace.
Definition
action-model-wrap.hpp:14
results-base.hpp
aligator::ResultsBaseTpl
Definition
results-base.hpp:10
aligator::WorkspaceBaseTpl
Base workspace struct for the algorithms.
Definition
workspace-base.hpp:13
aligator::python::PrintableVisitor
Definition
visitors.hpp:49
visitors.hpp
workspace-base.hpp
bindings
python
src
expose-solvers-base.cpp
Generated by
1.17.0