30 #ifndef EXOTICA_ILQR_SOLVER_ILQR_SOLVER_H_ 31 #define EXOTICA_ILQR_SOLVER_ILQR_SOLVER_H_ 37 #include <exotica_ilqr_solver/ilqr_solver_initializer.h> 49 void Solve(Eigen::MatrixXd& solution)
override;
78 #endif // EXOTICA_ILQR_SOLVER_ILQR_SOLVER_H_ double ForwardPass(const double alpha, Eigen::MatrixXdRefConst ref_x, Eigen::MatrixXdRefConst ref_u)
Forward simulates the dynamics using the gains computed in the last BackwardPass;.
std::vector< Eigen::MatrixXd > Kv_gains_
Eigen::MatrixXd best_ref_u_
DynamicTimeIndexedShootingProblemPtr prob_
std::shared_ptr< exotica::DynamicsSolver > DynamicsSolverPtr
const Eigen::Ref< const Eigen::MatrixXd > & MatrixXdRefConst
std::vector< Eigen::MatrixXd > K_gains_
!< Shared pointer to the dynamics solver.
Eigen::MatrixXd best_ref_x_
!< Control gains.
void Solve(Eigen::MatrixXd &solution) override
Solves the problem.
void SpecifyProblem(PlanningProblemPtr pointer) override
Binds the solver to a specific problem which must be pre-initalised.
const Eigen::Ref< const Eigen::VectorXd > & VectorXdRefConst
Eigen::VectorXd GetFeedbackControl(Eigen::VectorXdRefConst x, int t) const override
std::shared_ptr< exotica::DynamicTimeIndexedShootingProblem > DynamicTimeIndexedShootingProblemPtr
std::shared_ptr< PlanningProblem > PlanningProblemPtr
void BackwardPass()
!< Reference trajectory for feedback control.
std::vector< Eigen::MatrixXd > Ku_gains_
DynamicsSolverPtr dynamics_solver_
!< Shared pointer to the planning problem.
std::vector< Eigen::MatrixXd > vk_gains_