Primal-Dual iLQR for GPU-Accelerated Learning and Control in Legged Robots
Lorenzo Amatucci, João Sousa-Pinto, Giulio Turrisi, Dominique Orban, Victor Barasuol, Claudio Semini
TL;DR
This work presents a GPU-accelerated, primal-dual iLQR MPC framework for legged robots that uses a parallel associative scan to solve the KKT system, achieving logarithmic scaling in horizon length and square-log scaling in state/control dimensions. The method delivers substantial runtime improvements over state-of-the-art solvers, enables centralized control of multiple robots, and supports large-scale multi-environment learning through a JAX-based implementation. Key contributions include a rigorous parallel solver with exact backward passes, practical handling of inequalities via barrier terms, and open-source code for real-time, learning-enabled locomotion. The results demonstrate real-time performance for up to 16 robots and large-scale learning scenarios, highlighting the approach’s practicality for complex, multi-robot locomotion tasks.
Abstract
This paper introduces a novel Model Predictive Control (MPC) implementation for legged robot locomotion that leverages GPU parallelization. Our approach enables both temporal and state-space parallelization by incorporating a parallel associative scan to solve the primal-dual Karush-Kuhn-Tucker (KKT) system. In this way, the optimal control problem is solved in $\mathcal{O}(\log^2(n)\log{N} + \log^2(m))$ complexity, instead of $\mathcal{O}(N(n + m)^3)$, where $n$, $m$, and $N$ are the dimension of the system state, control vector, and the length of the prediction horizon. We demonstrate the advantages of this implementation over two state-of-the-art solvers (acados and crocoddyl), achieving up to a 60\% improvement in runtime for Whole Body Dynamics (WB)-MPC and a 700\% improvement for Single Rigid Body Dynamics (SRBD)-MPC when varying the prediction horizon length. The presented formulation scales efficiently with the problem state dimensions as well, enabling the definition of a centralized controller for up to 16 legged robots that can be computed in less than 25 ms. Furthermore, thanks to the JAX implementation, the solver supports large-scale parallelization across multiple environments, allowing the possibility of performing learning with the MPC in the loop directly in GPU. The code associated with this work can be found at https://github.com/iit-DLSLab/mpx.
