Robots must make and break contact to interact with the world and perform useful tasks. However, planning and control through contact remains a formidable challenge. In this work, we achieve real-time contact-implicit model predictive control with a surprisingly simple method: inverse dynamics trajectory optimization. While trajectory optimization with inverse dynamics is not new, we introduce a series of incremental innovations that collectively enable fast model predictive control on a variety of challenging manipulation and locomotion tasks. We implement these innovations in an open-source solver, and present a variety of simulation examples to support the effectiveness of the proposed approach. Additionally, we demonstrate contact-implicit model predictive control on hardware at over 100 Hz for a 20 degree-of-freedom bi-manual manipulation task.
IDTO can be used as an offline trajectory planning tool. The user specifies a (quadratic) cost defining the desired behavior. Contact timings, sequences, and locations are then determined by the solver.
Acrobot
Spinner
Hopper
IDTO also enables feedback control through contact via Model Predictive Control (MPC). For these simple examples, contact-implicit MPC runs in real time at over 100 Hz on a laptop.
Acrobot (MPC)
Spinner (MPC)
Hopper (MPC)
IDTO can design a dynamically feasible trajectory that rotates the ball even when this Allegro hand is upside down — something that reinforcement learning methods struggle with.
Rightside up (open loop)
Upside down (open loop)
Contact-implicit MPC runs in real time at about 10 Hz. The planner uses a smooth contact model that allows force at a distance, while the simulator uses a more realistic hydroelastic contact model.
Real-time MPC
Contact-implicit MPC runs at about 60 Hz for a quadruped in simulation. We don't specify a desired gait or a preferred contact sequence. The solver chooses when and where to make contact on the fly: trotting emerges automatically.
The robot stops automatically when it reaches the edge of a platform, even though the cost function says to keep going.
Feel free to reach out with questions on our paper, formulation or our open source implementation.
This project is the result of a very fruitful summer internship at TRI. Vince Kurtz came to TRI in the summer of 2022 to work in the Dynamics and Simulation team under the mentorship of Alejandro Castro. We were so happy with this project that Vince came later in May 2023 to work with Aykut and Alejandro on robot experiments. You can read more about TRI's internships program on the TRI website.
Last day of experiments in the lab. From left to right: Aykut, Vince and Alejandro
@article{kurtz2023inverse,
title = {Inverse Dynamics Trajectory Optimization for Contact-Implicit Model Predictive Control},
author = {Kurtz, Vince and Castro, Alejandro and \"{O}nol, Aykut \"{O}zg\"{u}n and Lin, Hai},
journal = {arXiv preprint arXiv:2309.01813},
year = {2023},
}