Contact-implicit MPC:
Methods analysis and comparison
Grey Sarmiento
Research Overview


Contact-implicit methods allow for adaptible/complex actions.
Contact-implicit MPC: Methods comparison study
Contact-implicit formulation: Contact is a decision variable
force/dynamics agreement
Explicit contact formulation: Contact follows pre-specified schedule
\begin{aligned}
\min_{x,u} \quad & \sum_t c(x_t,u_t)\\
\textrm{s.t.} \quad & \dot{x_t} = f(x_t,u_t,\lambda_t)\\
& \lambda_t \textrm{ enabled/disabled by binary contact schedule} \\
& g(x_t, u_t, \lambda_t) \geq0
\end{aligned}
dynamics
dynamics
contact force constraints
\begin{aligned}
\min_{x,u,\lambda} \quad & \sum_t c(x_t,u_t)\\
\textrm{s.t.} \quad & \dot{x_t} = f(x_t,u_t,\lambda_t)\\
& \lambda_t \geq 0 \\
& \lambda_t^\top g(x_t,u_t,\lambda_t) = 0 \\
& g(x_t, u_t, \lambda_t) \geq 0
\end{aligned}
This project looks at three types of contact-implicit method:
-
Sampling-based methods: Try a set of random inputs, allowing for sampling of other contact modes
→ MuJoCo MPC (Howell et. al)
-
Differentiable contact models: Add a small relaxation to the contact force Jacobian at contact boundaries, allowing for solutions to cross modes by indicating "force at a distance"
→ Fast CI-MPC (Cleac'h et. al)
-
Contact force -- dynamics disparity: Allow the controller to separately solve for desired contact and feasible dynamics, and then reconcile the conflict
→ C3 (Aydinoglu et. al)
Methods of comparison
Contact-implicit MPC: Methods comparison study
Many current methods are not evaluated on the same tasks or metrics, which makes it difficult to understand their true contributions / the state of the field
CI-MPC (Cleach et. al) | MuJoCo MPC (Howell et. al) | C3 (Aydinoglu et. al) |
---|---|---|
Pushbot | Shadow Hand | Cartpole with soft walls |
2D Hopper | Humanoid | 2D finger gaiting |
3D Hopper | Quadruped | 2D object pivoting |
Quadruped | Franka ball rolling | |
Biped | Franka waiter task |
This project: Compare different SoTA methods on a set of benchmark tasks
Problem: Current evaluation is not standard.
Contact-implicit MPC: Methods comparison study
What makes a good benchmark?
Benchmark tasks should:
- demonstrate important abilities that are needed for many tasks
- differentiate the strengths and weaknesses of different fundamental approaches.
Aspects of interest:
- Taking advantage of both sticking and sliding contact
- Ability to handle small solution set relative to possible actions
- Ability to scale with number of contacts/inputs
- Ability to pursue "non-obvious" contact (moving around an object, exhibiting longer-horizon action sequences)
Contact-implicit MPC: Methods comparison study
Project benchmark tasks and implementation
Current tasks considered:
- Pushbot: baseline starter task
- 2D waiter: stick-slip
- Stacked pushbot: number of contacts and inputs / small solution set
- Circle corralling: number of contacts, longer horizon actions
Implementation: LCM interface between original paper implementations and Drake simulator
Contact-implicit MPC: Methods comparison study
Metrics to evaluate:
- Time to task success
- Control loop speed
- Observed qualitative behaviors achieved
- Sensitivity to initial state and disturbances
dair-tour-grey-2025
By Grey Sarmiento
dair-tour-grey-2025
- 48