aligator  0.6.1
A primal-dual augmented Lagrangian-type solver for nonlinear trajectory optimization.
Loading...
Searching...
No Matches
workspace.hpp
Go to the documentation of this file.
1#pragma once
2
5#include <Eigen/Cholesky>
6
7namespace aligator {
8
10template <typename Scalar> struct WorkspaceFDDPTpl : WorkspaceBaseTpl<Scalar> {
11 using VParams = ValueFunctionTpl<Scalar>;
12 using QParams = QFunctionTpl<Scalar>;
13 using Base = WorkspaceBaseTpl<Scalar>;
15 using Base::nsteps;
16 using Base::trial_us;
17 using Base::trial_xs;
18
20 std::vector<VectorXs> dxs;
22 std::vector<VectorXs> dus;
24 std::vector<VectorXs> Quuks_;
25 std::vector<VectorXs> ftVxx_;
27 std::vector<MatrixXs> kktRhs;
29 std::vector<Eigen::LLT<MatrixXs>> llts_;
31 std::vector<VParams> value_params;
33 std::vector<QParams> q_params;
34
36 using RowMatrixXs = Eigen::Matrix<Scalar, -1, -1, Eigen::RowMajor>;
37 std::vector<RowMatrixXs> JtH_temp_;
38
39 Scalar dg_ = 0.;
40 Scalar dq_ = 0.;
41 Scalar dv_ = 0.;
42 Scalar d1_ = 0.;
43 Scalar d2_ = 0.;
44
46 explicit WorkspaceFDDPTpl(const TrajOptProblemTpl<Scalar> &problem);
47
48 void cycleLeft();
49};
50
51} // namespace aligator
52
53#include "./workspace.hxx"
54
55#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
56#include "./workspace.txx"
57#endif
Main package namespace.
Base workspace struct for the algorithms.
std::size_t nsteps
Number of steps in the problem.
std::vector< VectorXs > trial_us
std::vector< VectorXs > trial_xs
Workspace for solver SolverFDDP.
Definition workspace.hpp:10
WorkspaceFDDPTpl(const TrajOptProblemTpl< Scalar > &problem)
std::vector< VectorXs > Quuks_
Storage for the product .
Definition workspace.hpp:24
QFunctionTpl< Scalar > QParams
Definition workspace.hpp:12
std::vector< Eigen::LLT< MatrixXs > > llts_
LLT struct for each KKT system.
Definition workspace.hpp:29
std::vector< VParams > value_params
Value function parameter storage.
Definition workspace.hpp:31
std::vector< VectorXs > dxs
State increment.
Definition workspace.hpp:20
std::vector< VectorXs > dus
Control increment.
Definition workspace.hpp:22
Eigen::Matrix< Scalar, -1, -1, Eigen::RowMajor > RowMatrixXs
Temporary storage for jacobian transpose-Q-hessian product.
Definition workspace.hpp:36
std::vector< VectorXs > ftVxx_
Definition workspace.hpp:25
std::vector< MatrixXs > kktRhs
Buffer for KKT system right-hand sides.
Definition workspace.hpp:27
std::vector< QParams > q_params
Q-function storage.
Definition workspace.hpp:33
ValueFunctionTpl< Scalar > VParams
Definition workspace.hpp:11
std::vector< RowMatrixXs > JtH_temp_
Definition workspace.hpp:37
Define storage for Q-function and value-function parameters.