11 using BlockXs = Eigen::Block<MatrixXs, -1, -1>;
21template <
typename Scalar>
28 const std::size_t nsteps = problem.
numSteps();
29 xs.resize(nsteps + 1);
36 for (std::size_t i = 0; i < nsteps; i++) {
37 const StageModel &sm = *problem.
stages_[i];
39 const int ndx = sm.ndx1();
40 const int nu = sm.nu();
42 gains_[i].setZero(nu, ndx + 1);
49#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
50#include "./results.txx"
#define ALIGATOR_RUNTIME_ERROR(...)
std::vector< VectorXs > us
std::vector< VectorXs > xs
std::vector< MatrixXs > gains_
std::vector< VectorXs > xs
States.
ResultsBaseTpl< Scalar > Base
std::vector< VectorXs > us
Controls.
std::vector< MatrixXs > gains_
Riccati gains.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
Eigen::Block< MatrixXs, -1, -1 > BlockXs
A stage in the control problem.
Trajectory optimization problem.
void initializeSolution(std::vector< VectorXs > &xs, std::vector< VectorXs > &us) const
Execute the initialization strategy to generate an initial candidate solution to the problem.
bool checkIntegrity() const
std::vector< xyz::polymorphic< StageModel > > stages_
Stages of the control problem.
std::size_t numSteps() const