Exotica
|
#include <ilqr_solver.h>
Public Member Functions | |
void | Solve (Eigen::MatrixXd &solution) override |
Solves the problem. More... | |
void | SpecifyProblem (PlanningProblemPtr pointer) override |
Binds the solver to a specific problem which must be pre-initalised. More... | |
Eigen::VectorXd | GetFeedbackControl (Eigen::VectorXdRefConst x, int t) const override |
Public Member Functions inherited from exotica::MotionSolver | |
MotionSolver ()=default | |
virtual | ~MotionSolver ()=default |
void | InstantiateBase (const Initializer &init) override |
PlanningProblemPtr | GetProblem () const |
std::string | Print (const std::string &prepend) const override |
void | SetNumberOfMaxIterations (int max_iter) |
int | GetNumberOfMaxIterations () |
double | GetPlanningTime () |
Public Member Functions inherited from exotica::Object | |
Object () | |
virtual | ~Object () |
virtual std::string | type () const |
Type Information wrapper: must be virtual so that it is polymorphic... More... | |
std::string | GetObjectName () |
void | InstantiateObject (const Initializer &init) |
Public Member Functions inherited from exotica::InstantiableBase | |
InstantiableBase ()=default | |
virtual | ~InstantiableBase ()=default |
virtual std::vector< Initializer > | GetAllTemplates () const =0 |
Public Member Functions inherited from exotica::Instantiable< ILQRSolverInitializer > | |
void | InstantiateInternal (const Initializer &init) override |
Initializer | GetInitializerTemplate () override |
std::vector< Initializer > | GetAllTemplates () const override |
virtual void | Instantiate (const ILQRSolverInitializer &init) |
const ILQRSolverInitializer & | GetParameters () const |
Private Member Functions | |
void | BackwardPass () |
!< Reference trajectory for feedback control. More... | |
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;. More... | |
Private Attributes | |
DynamicTimeIndexedShootingProblemPtr | prob_ |
DynamicsSolverPtr | dynamics_solver_ |
!< Shared pointer to the planning problem. More... | |
std::vector< Eigen::MatrixXd > | K_gains_ |
!< Shared pointer to the dynamics solver. More... | |
std::vector< Eigen::MatrixXd > | Ku_gains_ |
std::vector< Eigen::MatrixXd > | Kv_gains_ |
std::vector< Eigen::MatrixXd > | vk_gains_ |
Eigen::MatrixXd | best_ref_x_ |
!< Control gains. More... | |
Eigen::MatrixXd | best_ref_u_ |
Additional Inherited Members | |
Public Attributes inherited from exotica::Object | |
std::string | ns_ |
std::string | object_name_ |
bool | debug_ |
Protected Attributes inherited from exotica::MotionSolver | |
PlanningProblemPtr | problem_ |
double | planning_time_ = -1 |
int | max_iterations_ = 100 |
Protected Attributes inherited from exotica::Instantiable< ILQRSolverInitializer > | |
ILQRSolverInitializer | parameters_ |
|
private |
!< Reference trajectory for feedback control.
Computes the control gains for a the trajectory in the associated DynamicTimeIndexedProblem.
|
private |
Forward simulates the dynamics using the gains computed in the last BackwardPass;.
alpha | The learning rate. |
ref_trajectory | The reference state trajectory. |
|
overridevirtual |
Implements exotica::FeedbackMotionSolver.
|
overridevirtual |
Solves the problem.
solution | Returned solution trajectory as a vector of joint configurations. |
Implements exotica::MotionSolver.
|
overridevirtual |
Binds the solver to a specific problem which must be pre-initalised.
pointer | Shared pointer to the motion planning problem |
Reimplemented from exotica::MotionSolver.
|
private |
|
private |
!< Control gains.
|
private |
!< Shared pointer to the planning problem.
|
private |
!< Shared pointer to the dynamics solver.
|
private |
|
private |
|
private |
|
private |