Table of Contents
Fetching ...

Rapid Integrator for a Class of Multi-Contact Systems

Marion Anderson, Shai Revzen

TL;DR

This work introduces a novel universal numerical integrator for multi-contact robotics built on Event Selected Systems (ESS). By alternately performing conventional ODE integration and Bouligand Derivative–based projections, it resolves multiple near-simultaneous contact events within a single hybrid domain, achieving first-order correctness and practical second-order accuracy. The method is implemented in Python and benchmarked against MuJoCo, showing comparable per-contact efficiency across models with 2–100 contacts and favorable potential for real-time, high-contact robotics applications. The approach generalizes beyond traditional rigid-body simulators and holds promise for online optimization and model-predictive control in complex contact-rich tasks. The paper provides theoretical justification, empirical order verification, and performance comparisons that support its viability for fast, accurate multi-contact simulation and control.

Abstract

Many problems in robotics involve creating or breaking multiple contacts nearly simultaneously or in an indeterminate order. We present a novel general purpose numerical integrator based on the theory of Event Selected Systems (ESS). Many multicontact models are ESS, which has recently been shown to imply that despite a discontinuous vector field, the flow of these systems is continuous, piecewise smooth, and has a well defined orbital derivative for all trajectories, which can be rapidly computed. We provide an elementary proof that our integrator is first-order accurate and verify numerically that it is in fact second-order accurate as its construction anticipated. We also compare our integrator, implemented in NumPy, to a MuJoCo simulation on models with 2 to 100 contacts, and confirm that the increase in simulation time per contact is nearly identical. The results suggest that this novel integrator can be invaluable for modelling and control in many robotics applications.

Rapid Integrator for a Class of Multi-Contact Systems

TL;DR

This work introduces a novel universal numerical integrator for multi-contact robotics built on Event Selected Systems (ESS). By alternately performing conventional ODE integration and Bouligand Derivative–based projections, it resolves multiple near-simultaneous contact events within a single hybrid domain, achieving first-order correctness and practical second-order accuracy. The method is implemented in Python and benchmarked against MuJoCo, showing comparable per-contact efficiency across models with 2–100 contacts and favorable potential for real-time, high-contact robotics applications. The approach generalizes beyond traditional rigid-body simulators and holds promise for online optimization and model-predictive control in complex contact-rich tasks. The paper provides theoretical justification, empirical order verification, and performance comparisons that support its viability for fast, accurate multi-contact simulation and control.

Abstract

Many problems in robotics involve creating or breaking multiple contacts nearly simultaneously or in an indeterminate order. We present a novel general purpose numerical integrator based on the theory of Event Selected Systems (ESS). Many multicontact models are ESS, which has recently been shown to imply that despite a discontinuous vector field, the flow of these systems is continuous, piecewise smooth, and has a well defined orbital derivative for all trajectories, which can be rapidly computed. We provide an elementary proof that our integrator is first-order accurate and verify numerically that it is in fact second-order accurate as its construction anticipated. We also compare our integrator, implemented in NumPy, to a MuJoCo simulation on models with 2 to 100 contacts, and confirm that the increase in simulation time per contact is nearly identical. The results suggest that this novel integrator can be invaluable for modelling and control in many robotics applications.
Paper Structure (16 sections, 6 equations, 5 figures, 2 tables)

This paper contains 16 sections, 6 equations, 5 figures, 2 tables.

Figures (5)

  • Figure 1: A three-legged hopping robot we developed, which motivated much of this work mclaughlin-2020-hoppinganderson-2020-dw. It "preloads" its elastic legs prior to ground contact using a cable assembly. The cable assembly can only exert force upward on the legs. The legs immediately exert a force on the ground at the moment of contact. As a result, the hopper contact force model is affine, and cannot be readily solved using the machinery for linear complementarity problems brogliato2003perspectives.
  • Figure 1: Our algorithm integrating a piecewise-constant ESS (purple dotted line). The system has two guards, $\mathfrak{g}_1$ (thick red line) and $\mathfrak{g}_2$ (dashed thick blue line) with non-zero slope and intersect at a point away from the origin. The integrator projects (purple line) when the trajectory enters $N^{\nu_k}$, otherwise it performs conventional integration (purple dots).
  • Figure 1: Log-log plot of our algorithm's RMS integration error versus $1/\varepsilon$ (dotted red line) for an initial value problem. The data interval used to determine the order (gray rectangle) and the fit extended over the entire interval considered (dashed blue line) are overlaid. The integrator achieved second-order accuracy, indicated by the slope of the blue line. The flat tails for small and large $1/\varepsilon$ are expected.
  • Figure 1: Time series output of our calibration: integrating a the trajectory of a 1D hopping robot. The top row of plots show the exact trajectory (dotted gray), MuJoCo's result (dashed blue), and our result (red) overlaid. The bottom row shows the residual from the exact trajectory for both MuJoCo and our solver. The left plots show height above the ground (contact height $=1$) and the right plots show vertical velocity.
  • Figure 2: The marginal cost of our algorithm (red) and MuJoCo (dashed blue) for increasing number of spring-damper contacts. We integrated the same $N=120$ random initial conditions for each number of contacts. Our algorithm implemented in Python has roughly the same marginal cost per contact as MuJoCo.