|
int | ulqr_SolveRiccati (RiccatiSolver *solver) |
| Solve the LQR problem using Riccati recursion and a forward simulation of the linear dynamics. More...
|
|
int | ulqr_BackwardPass (RiccatiSolver *solver) |
| Run the Riccati solver backward pass. More...
|
|
int | ulqr_ForwardPass (RiccatiSolver *solver) |
| Run the Riccati forward pass to solve for the solution vector. More...
|
|
RiccatiSolver * | ulqr_NewRiccatiSolver (int nstates, int ninputs, int nhorizon) |
| Initialize a new Riccati solver. More...
|
|
int | ulqr_FreeRiccatiSolver (RiccatiSolver **solver) |
| Free the memory for a Riccati solver. More...
|
|
int | ulqr_PrintRiccatiSummary (RiccatiSolver *solver) |
| Prints a summary of the solve. More...
|
|
int | ulqr_GetNumVars (RiccatiSolver *solver) |
|
enum ulqr_ReturnCode | ulqr_SetInitialState (RiccatiSolver *solver, double *x0) |
| Set the initial state. More...
|
|
enum ulqr_ReturnCode | ulqr_SetCost (RiccatiSolver *solver, const double *Q, const double *R, const double *H, const double *q, const double *r, double c, int k_start, int k_end) |
|
enum ulqr_ReturnCode | ulqr_SetDynamics (RiccatiSolver *solver, const double *A, const double *B, const double *f, int k_start, int k_end) |
|
Matrix * | ulqr_GetA (RiccatiSolver *solver, int k) |
| Get (n,n) state transition matrix.
|
|
Matrix * | ulqr_GetB (RiccatiSolver *solver, int k) |
| Get (n,m) control input matrix.
|
|
Matrix * | ulqr_Getf (RiccatiSolver *solver, int k) |
| Get (n,) affine dynamice term.
|
|
Matrix * | ulqr_GetQ (RiccatiSolver *solver, int k) |
| Get state cost Hessian.
|
|
Matrix * | ulqr_GetR (RiccatiSolver *solver, int k) |
| Get control cost Hessian.
|
|
Matrix * | ulqr_GetH (RiccatiSolver *solver, int k) |
| Get cost Hessian cross-term (m,n)
|
|
Matrix * | ulqr_Getq (RiccatiSolver *solver, int k) |
| Get affine state cost.
|
|
Matrix * | ulqr_Getr (RiccatiSolver *solver, int k) |
| Get affine control cost.
|
|
double | ulqr_Getc (RiccatiSolver *solver, int k) |
| Get cost constant.
|
|
Matrix * | ulqr_GetFeedbackGain (RiccatiSolver *solver, int k) |
| Get (m,n) feedback gain.
|
|
Matrix * | ulqr_GetFeedforwardGain (RiccatiSolver *solver, int k) |
| Get (m,) feedforward gain.
|
|
Matrix * | ulqr_GetCostToGoHessian (RiccatiSolver *solver, int k) |
| Get (n,n) Hessian of the cost-to-go.
|
|
Matrix * | ulqr_GetCostToGoGradient (RiccatiSolver *solver, int k) |
| Get (n,) Gradient of the cost-to-go.
|
|
Matrix * | ulqr_GetQxx (RiccatiSolver *solver, int k) |
| Get (n,n) Action-value state Hessian.
|
|
Matrix * | ulqr_GetQuu (RiccatiSolver *solver, int k) |
| Get (m,m) Action-value control Hessian.
|
|
Matrix * | ulqr_GetQux (RiccatiSolver *solver, int k) |
| Get (m,n) Action-value Hessian cross-term.
|
|
Matrix * | ulqr_GetQx (RiccatiSolver *solver, int k) |
| Get (n,) Action-value state gradient.
|
|
Matrix * | ulqr_GetQu (RiccatiSolver *solver, int k) |
| Get (m,) Action-value conrol gradient.
|
|
Matrix * | ulqr_GetState (RiccatiSolver *solver, int k) |
| Get (n,) state vector.
|
|
Matrix * | ulqr_GetInput (RiccatiSolver *solver, int k) |
| Get (m,) input vector.
|
|
Matrix * | ulqr_GetDual (RiccatiSolver *solver, int k) |
| Get (n,) dual vector.
|
|
double | ulqr_CalcCost (RiccatiSolver *solver) |
|