Data types#
Define data structures and types
- class diffilqrax.typs.ModelDims(n, m, horizon, dt)[source]#
Bases:
NamedTupleModel dimensions
- class diffilqrax.typs.Gains(K, k)[source]#
Bases:
NamedTupleLinear input gains
- class diffilqrax.typs.CostToGo(V, v)[source]#
Bases:
NamedTupleCost-to-go
- class diffilqrax.typs.System(cost, costf, dynamics, dims, lin_dyn=None, lin_cost=None, quad_cost=None)[source]#
Bases:
objectiLQR System
- Variables:
cost (Callable) – Running cost l(t, x, u, params).
costf (Callable) – Final state cost lf(xf, params).
dynamics (Callable) – Dynamical update f(t, x, u, params).
dims (ModelDims) – iLQR evaluate time horizon, dt, state and input dimension.
- class diffilqrax.typs.LQR(A, B, a, Q, q, R, r, S, Qf, qf)[source]#
Bases:
NamedTupleLQR params
- Variables:
A (Array) – Dynamics matrix.
B (Array) – Input matrix.
a (Array) – Offset vector.
Q (Array) – State cost matrix.
q (Array) – State cost vector.
R (Array) – Input cost matrix.
r (Array) – Input cost vector.
S (Array) – Cross term matrix.
Qf (Array) – Final state cost matrix.
qf (Array) – Final state cost vector.
- class diffilqrax.typs.LQRParams(x0, lqr)[source]#
Bases:
NamedTupleContains initial states and LQR parameters
- class diffilqrax.typs.iLQRParams(x0, theta)[source]#
Bases:
NamedTupleNon-linear parameter struct
- class diffilqrax.typs.Theta(Uh, Wh, sigma, Q)[source]#
Bases:
NamedTupleRNN parameters
- class diffilqrax.typs.Thetax0(Uh, Wh, sigma, Q, x0)[source]#
Bases:
NamedTupleRNN parameters and initial state
- class diffilqrax.typs.PendulumParams(m, l, g)[source]#
Bases:
NamedTuplePendulum parameters
- class diffilqrax.typs.ParallelSystem(model, parallel_dynamics=None, parallel_dynamics_feedback=None)[source]#
Bases:
NamedTupleilqr system for the parallel solvers (
diffilqrax.parallel_ilqr.pilqr_solver()).- Variables:
model (System) – iLQR problem with non-linear cost, costf, dynamics, dims.
parallel_dynamics_feedback (parallel_dynamics,) – Deprecated and unused: pilqr_solver either rolls out the non-linear dynamics or uses multiple shooting (
rollout), so no linearised integrators are needed.