Core Question: How can we make querying these gradients memory and batch efficient ?
Differentiable Simulation
Planning and Learning need gradients
Requires gradients of task cost w.r.t controls, states or policy parameters.
\( \mathbf{x}_t, \mathbf{u}_t\)
\( \mathbf{x}_{t+1} \)
Rigid-body Dynamics
Contact geometry / Jacobians
Iterative Contact Solve
Integration
One Simulator Rollout
Planning,
Learning,
Inference
in Robotics
Accumulated
task/learning
Cost
Differentiate through rollout
Loss gradients backpropagate through rollout
Simulator step \(f(\mathbf{x}_t, \mathbf{u}_t)\)
One Simulator Rollout
Planning,
Learning,
Inference
in Robotics
\( \theta \)
Accumulated
task/learning
Cost, \( \mathcal{L}\)
Differentiate through rollout
Loss gradients backpropagate through rollout \( \frac{\partial{\mathcal{L}}}{{\partial{\theta}}}\)
Simulator step \(f_{\theta}(\mathbf{x}_t, \mathbf{u}_t)\)
Contact geometry / Jacobians
\( \mathbf{x}_t, \mathbf{u}_t\)
\( \mathbf{x}_{t+1} \)
Rigid-body Dynamics
Iterative Contact Solve
Integration
Bottleneck: backprop through
iterative contact solve using Automatic Differentiation
Unrolled Autodiff (AD)
Implicit Contact Solve
Iter 1
Iter 2
Iter 3
Iter K
\( \theta \)
\( a^{*} \)
Solve forward
...
Iter 1
Iter 2
Iter 3
Iter K
\( \theta \)
\( a^{*} \)
Solve forward
...
AD unrolled backprop
Utilise Implicit Function Theorem
Implicit Contact Differentiation Implementation
Amortized Trajectory Optimization for Residual MPC
Distil full-horizon optimised actions into
a policy paired with short-horizon residual iLQR, and evaluate closed-loop behaviour on Finger, Franka, and Unitree.
Finger
Hand reorientation\({}^{*}\)
Franka pushing\({}^{*}\)
* Trajectories computed in Batch - visualised individually
Unitree locomotion\({}^{*}\)
Training
Evaluation (Epochs 5, 10, 15, 20, 25)