10 using Base = ResultsBaseTpl<Scalar>;
11 using BlockXs = Eigen::Block<MatrixXs, -1, -1>;
21template <
typename Scalar>
23 const TrajOptProblemTpl<Scalar> &problem) {
24 problem.checkIntegrity();
25 using StageModel = StageModelTpl<Scalar>;
27 const std::size_t nsteps = problem.numSteps();
28 xs.resize(nsteps + 1);
34 gains_.resize(nsteps);
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);
44 this->m_isInitialized =
true;
49#ifdef ALIGATOR_ENABLE_TEMPLATE_INSTANTIATION
50#include "./results.txx"
void us_default_init(const TrajOptProblemTpl< Scalar > &problem, std::vector< typename math_types< Scalar >::VectorXs > &us)
Default-initialize a controls trajectory from the neutral element of each control space.
void xs_default_init(const TrajOptProblemTpl< Scalar > &problem, std::vector< typename math_types< Scalar >::VectorXs > &xs)
Default-intialize a trajectory to the neutral states for each state space at each stage.
std::vector< VectorXs > us
Controls.
std::vector< VectorXs > xs
States.
std::vector< MatrixXs > gains_
Riccati gains.
ALIGATOR_DYNAMIC_TYPEDEFS(Scalar)
Eigen::Block< MatrixXs, -1, -1 > BlockXs