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:

  1. Sampling-based methods: Try a set of random inputs, allowing for sampling of other contact modes
    → MuJoCo MPC (Howell et. al)
     
  2. 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)
     
  3. 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:

  1. demonstrate important abilities that are needed for many tasks
  2. 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