From Compliant to Rigid Contact Simulation:
a Unified and Efficient Approach

Justin Carpentier* Inria, École normale supérieure
CNRS, PSL Research University
75005 Paris, France
Email: [email protected]
   Quentin Le Lidec* Inria, École normale supérieure
CNRS, PSL Research University
75005 Paris, France
Email: [email protected]
   Louis Montaut* Inria, École normale supérieure
CNRS, PSL Research University
75005 Paris, France
Email: [email protected]
Abstract

Whether rigid or compliant, contact interactions are inherent to robot motions, enabling them to move or manipulate things. Contact interactions result from complex physical phenomena, that can be mathematically cast as Nonlinear Complementarity Problems (NCPs) in the context of rigid or compliant point contact interactions. Such a class of complementarity problems is, in general, difficult to solve both from an optimization and numerical perspective. Over the past decades, dedicated and specialized contact solvers, implemented in modern robotics simulators (e.g., Bullet, Drake, MuJoCo, DART, Raisim) have emerged. Yet, most of these solvers tend either to solve a relaxed formulation of the original contact problems (at the price of physical inconsistencies) or to scale poorly with the problem dimension or its numerical conditioning (e.g., a robotic hand manipulating a paper sheet). In this paper, we introduce a unified and efficient approach to solving NCPs in the context of contact simulation. It relies on a sound combination of the Alternating Direction Method of Multipliers (ADMM) and proximal algorithms to account for both compliant and rigid contact interfaces in a unified way. To handle ill-conditioned problems and accelerate the convergence rate, we also propose an efficient update strategy to adapt the ADMM hyperparameters automatically. By leveraging proximal methods, we also propose new algorithmic solutions to efficiently evaluate the inverse dynamics involving rigid and compliant contact interactions, extending the approach developed in MuJoCo. We validate the efficiency and robustness of our contact solver against several alternative contact methods of the literature and benchmark them on various robotics and granular mechanics scenarios. Overall, the proposed approach is shown to be competitive against classic methods for simple contact problems and outperforms existing solutions on more complex scenarios, involving tens of contacts and poor conditioning. Our code is made open-source at https://github.com/Simple-Robotics/Simple.

**footnotetext: Equal contribution. Authors are listed in alphabetical order.

I Introduction

Contact interactions are the substrate of movement. When performing locomotion or manipulation tasks, one naturally makes and breaks contact with the environment. Providing robots with such abilities would require them to precisely apprehend the physics of contact. In this respect, simulators have been key components for various robotics applications. Reinforcement Learning (RL) policies for manipulation [11, 23] or locomotion [34] often rely on years of simulated trajectories during training. Alternatively, Model Predictive Control (MPC) techniques call the simulator and its derivatives at high frequency at runtime to achieve a reactive behavior [31, 29].

Simulating rigid contact interactions with friction requires solving a Nonlinear Complementarity Problem (NCP) which has been recognized as a hard problem both from an optimization and numerical perspective [2]. For this reason, simulators proceed to tradeoffs between physical realism, robustness, and efficiency. In this respect, each physics engine embeds its own contact model and contact solver, which come with their underpinning physical hypotheses and numerical capabilities.

Earlier simulators like ODE [48] and Bullet [13] have been developed for graphical purposes. Graphical applications mainly require the physics engine to provide visually consistent trajectories. Nowadays, the requirements in robotics applications are different: the physics of contacts should be as close as possible to reality, and the contact solver should be numerically efficient. Indeed, this would reduce training time and enhance the transferability of RL while making MPC more reactive.

Refer to caption
Figure 1: Simulation of an ill-conditioned stack of cubes. Our approach robustly solves high-dimensional and ill-conditioned problems such as the ones involved when simulating a stack of 15151515 cubes involving more than 60606060 contact points and objects’ masses varying from 1111 kg (bottom row, in light blue) to 10.00010.00010.00010.000 kg (highest row, in bright red). Simulation videos at https://youtu.be/i_qg9cTx0NY?si=NGtx1tiYrIGtHXSK.

More recently, robotics-oriented engines were developed with a focus on efficiency. MuJoCo [53] introduces a physical relaxation that induces a convex contact model with distant and compliant interactions. This choice enables the use of powerful algorithms from the optimization literature and leads to improved stability of the simulation. Its robustness has made MuJoCo the standard testbed for RL algorithms, but its reality gap still limits its use in robotics. Drake [52] leverages a similar contact model [10] and proposes a procedure to set the compliance parameter more realistically, according to the physical parameters of the simulated objects. This results in an improved sim-to-real transfer capability on manipulation tasks [28]. RaiSim [26] fixes MuJoCo’s artifacts due to distant and artificially compliant contact forces but at the expense of less robust numerics [32]. The resulting contact model drove success in quadrupedal locomotion in challenging setups [27, 34, 38].

Recent works [24, 32] compare the different existing approaches and their impact. Although they highlight the significant improvements in contact simulation driven by the efforts of the robotics community, they also reveal current simulators are all subject to trade-offs and, thus, some barriers are still to be removed. Some experimental works [19, 3] also evaluate contact models from current simulators against real-world data. They show that they still fail to capture accurately the physical phenomena involved in contact interactions. Inspired by these studies, we aim to improve the physicality of current simulators while preserving their efficiency.

We make the following contributions:

  • we introduce a new formulation and related algorithm for solving forward dynamics problems with contacts that can efficiently deal with compliant and rigid contacts without making any physical relaxation,

  • we propose a formulation and an algorithmic solution for computing inverse dynamics with rigid and compliant contacts, the reciprocal of forward dynamics, extending the seminal work of Todorov [53],

  • we provide an open-source and efficient C++ implementation leveraging the Eigen library [22], and that can be easily plugged into existing simulation frameworks,

  • we extensively evaluate the proposed solutions on both mechanics and robotics scenarios of the literature.

The paper is organized as follows. We first provide the necessary background on constrained dynamics, how it connects to proximal optimization, the NCP appearing during the simulation of frictional contacts and the existing solver from the robotics community (Sec. II). Second, we propose an ADMM-based algorithm for contact solving (Sec. III). Third, we introduce a similar algorithm for the problem of inverse dynamics in the presence of contacts (Sec. IV). Finally, we evaluate our approach against standard problems of the robotics and mechanics communities (Sec. V) before discussing how it compares to previous works (Sec. VI).

II Background

In this section, we recall the principles underlying the simulation of systems under rigid and compliant constraints. To prepare the ground for the proposed algorithm, we introduce proximal operators and how they can be interpreted from a mechanics point of view. Finally, we introduce the NCP underlying the simulation of physical systems in the presence of frictional contacts and the existing approaches to solve it.

II-A Equality-constrained dynamics

The free motion of a poly-articulated system is governed by the so-called Lagrangian dynamics of the form

M(𝒒)𝒗˙+b(𝒒,𝒗)=𝝉𝑀𝒒bold-˙𝒗𝑏𝒒𝒗𝝉M(\bm{q})\bm{\dot{v}}+b(\bm{q},\bm{v})=\bm{\tau}italic_M ( bold_italic_q ) overbold_˙ start_ARG bold_italic_v end_ARG + italic_b ( bold_italic_q , bold_italic_v ) = bold_italic_τ (1)

where we denote by 𝒒𝒬nq𝒒𝒬superscriptsubscript𝑛𝑞\bm{q}\in\mathcal{Q}\cong\mathbb{R}^{n_{q}}bold_italic_q ∈ caligraphic_Q ≅ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, 𝒗𝒯q𝒬nv𝒗subscript𝒯𝑞𝒬superscriptsubscript𝑛𝑣\bm{v}\in\mathcal{T}_{q}\mathcal{Q}\cong\mathbb{R}^{n_{v}}bold_italic_v ∈ caligraphic_T start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT caligraphic_Q ≅ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUPERSCRIPT and 𝝉𝒯q𝒬nv𝝉superscriptsubscript𝒯𝑞𝒬superscriptsubscript𝑛𝑣\bm{\tau}\in\mathcal{T}_{q}^{*}\mathcal{Q}\cong\mathbb{R}^{n_{v}}bold_italic_τ ∈ caligraphic_T start_POSTSUBSCRIPT italic_q end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT caligraphic_Q ≅ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, the joint configuration vector, the joint velocity vector and the joint torque vector. M(𝒒)𝑀𝒒M(\bm{q})italic_M ( bold_italic_q ) is the joint-space inertia matrix and b(𝒒,𝒗)𝑏𝒒𝒗b(\bm{q},\bm{v})italic_b ( bold_italic_q , bold_italic_v ) includes terms related to the gravity, Coriolis, and centrifugal effects. Considering constraints such as kinematic loop closures or anchor points can be done by adding implicit equations of the form

fc(𝒒)=0,subscript𝑓𝑐𝒒0f_{c}(\bm{q})=0,italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( bold_italic_q ) = 0 , (2)

where fc:𝒬m:subscript𝑓𝑐maps-to𝒬superscript𝑚f_{c}:\mathcal{Q}\mapsto\mathbb{R}^{m}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT : caligraphic_Q ↦ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT is the constraint function of dimension m𝑚mitalic_m. Such constraints act on the system via the constraint forces 𝝀m𝝀superscript𝑚\bm{\lambda}\in\mathbb{R}^{m}bold_italic_λ ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT that are spanned by the transpose of its Jacobian, denoted by Jcm×nvsubscript𝐽𝑐superscript𝑚subscript𝑛𝑣J_{c}\in\mathbb{R}^{m\times n_{v}}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUPERSCRIPT. Thus, the constrained equation of motion reads

M(𝒒)𝒗˙+b(𝒒,𝒗)=𝝉+Jc𝝀.𝑀𝒒bold-˙𝒗𝑏𝒒𝒗𝝉superscriptsubscript𝐽𝑐top𝝀M(\bm{q})\bm{\dot{v}}+b(\bm{q},\bm{v})=\bm{\tau}+J_{c}^{\top}\bm{\lambda}.italic_M ( bold_italic_q ) overbold_˙ start_ARG bold_italic_v end_ARG + italic_b ( bold_italic_q , bold_italic_v ) = bold_italic_τ + italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_λ . (3)

In order to simulate the constrained system, given a torque input 𝝉𝝉\bm{\tau}bold_italic_τ and knowing 𝒒𝒒\bm{q}bold_italic_q, 𝒗𝒗\bm{v}bold_italic_v, one needs to solve (3) and (2) for the unknowns 𝒗˙bold-˙𝒗\bm{\dot{v}}overbold_˙ start_ARG bold_italic_v end_ARG and 𝝀𝝀\bm{\lambda}bold_italic_λ. To do so, it is more convenient to first rewrite (2) as a function of 𝒗˙bold-˙𝒗\bm{\dot{v}}overbold_˙ start_ARG bold_italic_v end_ARG by proceeding to index reduction. Thus, differentiating (2) twice with respect to time yields

Jc𝒗˙+Jc˙𝒗γ(𝒒,𝒗)=0.subscript𝐽𝑐bold-˙𝒗subscript˙subscript𝐽𝑐𝒗𝛾𝒒𝒗0J_{c}\bm{\dot{v}}+\underbrace{\dot{J_{c}}\bm{v}}_{\gamma(\bm{q},\bm{v})}=0.italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG + under⏟ start_ARG over˙ start_ARG italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG bold_italic_v end_ARG start_POSTSUBSCRIPT italic_γ ( bold_italic_q , bold_italic_v ) end_POSTSUBSCRIPT = 0 . (4)

For index reduction to be valid, it implicitly assumes that the preceding once differentiated and the original systems (2) are verified at the current time-step. Due to numerical reasons, such a condition is never exactly met, and a corrective term is added to γ𝛾\gammaitalic_γ to avoid numerical drift as done in the Baumgarte stabilization techniques. Combining the equations (3) and (4) leads to

(MJcJc0m×m)(𝒗˙𝝀)=(𝝉b(𝒒,𝒗)γ(𝒒,𝒗)).matrix𝑀superscriptsubscript𝐽𝑐topsubscript𝐽𝑐subscript0𝑚𝑚matrixbold-˙𝒗𝝀matrix𝝉𝑏𝒒𝒗𝛾𝒒𝒗\begin{pmatrix}M&J_{c}^{\top}\\ J_{c}&0_{m\times m}\end{pmatrix}\begin{pmatrix}\bm{\dot{v}}\\ \bm{-\lambda}\end{pmatrix}=\begin{pmatrix}\bm{\tau}-b(\bm{q},\bm{v})\\ -\gamma(\bm{q},\bm{v})\end{pmatrix}.( start_ARG start_ROW start_CELL italic_M end_CELL start_CELL italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL start_CELL 0 start_POSTSUBSCRIPT italic_m × italic_m end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) ( start_ARG start_ROW start_CELL overbold_˙ start_ARG bold_italic_v end_ARG end_CELL end_ROW start_ROW start_CELL bold_- bold_italic_λ end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL bold_italic_τ - italic_b ( bold_italic_q , bold_italic_v ) end_CELL end_ROW start_ROW start_CELL - italic_γ ( bold_italic_q , bold_italic_v ) end_CELL end_ROW end_ARG ) . (5)

At this stage, it is worth noting that (5) is often not invertible as cases where Jcsubscript𝐽𝑐J_{c}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is rank deficient i.e. hyper-static systems, are common in robotics.

II-B Compliant constraints

In the previously described constrained dynamics, rigid constraints were modeled via (2) which enforces fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT to be null. When modeling compliant constraints, the function fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is allowed to be non-null but now defines a potential energy U(𝒒)=12fc(𝒒)R12𝑈𝒒12subscriptsuperscriptnormsubscript𝑓𝑐𝒒2superscript𝑅1U(\bm{q})=\frac{1}{2}\|f_{c}(\bm{q})\|^{2}_{R^{-1}}italic_U ( bold_italic_q ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( bold_italic_q ) ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_POSTSUBSCRIPT where xA=xAxsubscriptnorm𝑥𝐴superscript𝑥top𝐴𝑥\|x\|_{A}=\sqrt{x^{\top}Ax}∥ italic_x ∥ start_POSTSUBSCRIPT italic_A end_POSTSUBSCRIPT = square-root start_ARG italic_x start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_A italic_x end_ARG for any xm𝑥superscript𝑚x\in\mathbb{R}^{m}italic_x ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT and any Am𝐴superscript𝑚A\in\mathbb{R}^{m}italic_A ∈ blackboard_R start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT positive semi-definite. Here, Rm×m𝑅superscript𝑚𝑚R\in\mathbb{R}^{m\times m}italic_R ∈ blackboard_R start_POSTSUPERSCRIPT italic_m × italic_m end_POSTSUPERSCRIPT denotes compliance, which is a physical property of the system. Such potential energy leads to a constraint torque 𝝉csubscript𝝉𝑐\bm{\tau}_{c}bold_italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT

𝝉c=𝒒U(𝒒)=JcR1fc(𝒒)𝝀,subscript𝝉𝑐subscript𝒒𝑈𝒒superscriptsubscript𝐽𝑐topsubscriptsuperscript𝑅1subscript𝑓𝑐𝒒𝝀\bm{\tau}_{c}=-\nabla_{\bm{q}}U(\bm{q})=-J_{c}^{\top}\underbrace{R^{-1}f_{c}(% \bm{q})}_{-\bm{\lambda}},bold_italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = - ∇ start_POSTSUBSCRIPT bold_italic_q end_POSTSUBSCRIPT italic_U ( bold_italic_q ) = - italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT under⏟ start_ARG italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( bold_italic_q ) end_ARG start_POSTSUBSCRIPT - bold_italic_λ end_POSTSUBSCRIPT , (6)

which induces (2) to be replaced by a linear map** between constraint forces and constraint violation

fc(𝒒)=R𝝀.subscript𝑓𝑐𝒒𝑅𝝀f_{c}(\bm{q})=-R\bm{\lambda}.italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( bold_italic_q ) = - italic_R bold_italic_λ . (7)

As previously described, proceeding to index reduction with (7) and adding (3), simulation of compliant constraints leads to the following system

(MJcJcR)(𝒗˙𝝀)=(𝝉b(𝒒,𝒗)γ),matrix𝑀superscriptsubscript𝐽𝑐topsubscript𝐽𝑐𝑅matrixbold-˙𝒗𝝀matrix𝝉𝑏𝒒𝒗𝛾\begin{pmatrix}M&J_{c}^{\top}\\ J_{c}&-R\end{pmatrix}\begin{pmatrix}\bm{\dot{v}}\\ \bm{-\lambda}\end{pmatrix}=\begin{pmatrix}\bm{\tau}-b(\bm{q},\bm{v})\\ -\gamma\end{pmatrix},( start_ARG start_ROW start_CELL italic_M end_CELL start_CELL italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL start_CELL - italic_R end_CELL end_ROW end_ARG ) ( start_ARG start_ROW start_CELL overbold_˙ start_ARG bold_italic_v end_ARG end_CELL end_ROW start_ROW start_CELL bold_- bold_italic_λ end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL bold_italic_τ - italic_b ( bold_italic_q , bold_italic_v ) end_CELL end_ROW start_ROW start_CELL - italic_γ end_CELL end_ROW end_ARG ) , (8)

whose only difference with (5) lies in the null lower right block being replaced by the compliance matrix R𝑅Ritalic_R. Numerically, this difference appears to be critical. Indeed, R𝑅Ritalic_R being positive definite makes the system (8) always well-defined and invertible [54].

II-C Constrained dynamics from an optimization perspective

All the previous equations could be alternatively derived from an optimization standpoint. Indeed, one could observe that (5) coincides with the Karush–Kuhn–Tucker (KKT) conditions of the following Quadratic Programming (QP):

min𝒗˙subscriptbold-˙𝒗\displaystyle\min_{\bm{\dot{v}}}\ roman_min start_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG end_POSTSUBSCRIPT 12𝒗˙𝒗˙fM212subscriptsuperscriptnormbold-˙𝒗subscriptbold-˙𝒗𝑓2𝑀\displaystyle\frac{1}{2}\|\bm{\dot{v}}-\bm{\dot{v}}_{f}\|^{2}_{M}divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ overbold_˙ start_ARG bold_italic_v end_ARG - overbold_˙ start_ARG bold_italic_v end_ARG start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT (9)
s.t.formulae-sequencest\displaystyle\mathrm{s.t.}\ roman_s . roman_t . Jc𝒗˙+γ=0subscript𝐽𝑐bold-˙𝒗𝛾0\displaystyle J_{c}\bm{\dot{v}}+\gamma=0italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG + italic_γ = 0

where 𝒗˙f=M1(𝝉b(𝒒,𝒗))subscriptbold-˙𝒗𝑓superscript𝑀1𝝉𝑏𝒒𝒗\bm{\dot{v}}_{f}=M^{-1}(\bm{\tau}-b(\bm{q},\bm{v}))overbold_˙ start_ARG bold_italic_v end_ARG start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( bold_italic_τ - italic_b ( bold_italic_q , bold_italic_v ) ) is the so-called joint free acceleration of the unconstrained system (1). Problem (9) corresponds to the formulation of the least constraint principle [7] and is equivalent to the following saddle-point problem:

min𝒗˙max𝝀(𝒗˙,𝝀)subscriptbold-˙𝒗subscript𝝀bold-˙𝒗𝝀\min_{\bm{\dot{v}}}\max_{\bm{\lambda}}\ \mathcal{L}(\bm{\dot{v}},\bm{\lambda})roman_min start_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG end_POSTSUBSCRIPT roman_max start_POSTSUBSCRIPT bold_italic_λ end_POSTSUBSCRIPT caligraphic_L ( overbold_˙ start_ARG bold_italic_v end_ARG , bold_italic_λ ) (10)

with (𝒗˙,𝝀)=12𝒗˙𝒗˙fM2𝝀(Jc𝒗˙+γ)bold-˙𝒗𝝀12subscriptsuperscriptnormbold-˙𝒗subscriptbold-˙𝒗𝑓2𝑀superscript𝝀topsubscript𝐽𝑐bold-˙𝒗𝛾\mathcal{L}(\bm{\dot{v}},\bm{\lambda})=\frac{1}{2}\|\bm{\dot{v}}-\bm{\dot{v}}_% {f}\|^{2}_{M}-\bm{\lambda}^{\top}(J_{c}\bm{\dot{v}}+\gamma)caligraphic_L ( overbold_˙ start_ARG bold_italic_v end_ARG , bold_italic_λ ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ overbold_˙ start_ARG bold_italic_v end_ARG - overbold_˙ start_ARG bold_italic_v end_ARG start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT - bold_italic_λ start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG + italic_γ ) being the Lagrangian associated to (9).

Similarly, the compliant system (8) could be retrieved from the regularized problem:

min𝒗˙max𝝀(𝒗˙,𝝀)12𝝀R2.subscriptbold-˙𝒗subscript𝝀bold-˙𝒗𝝀12subscriptsuperscriptnorm𝝀2𝑅\min_{\bm{\dot{v}}}\max_{\bm{\lambda}}\ \mathcal{L}(\bm{\dot{v}},\bm{\lambda})% -\frac{1}{2}\|\bm{\lambda}\|^{2}_{R}.roman_min start_POSTSUBSCRIPT overbold_˙ start_ARG bold_italic_v end_ARG end_POSTSUBSCRIPT roman_max start_POSTSUBSCRIPT bold_italic_λ end_POSTSUBSCRIPT caligraphic_L ( overbold_˙ start_ARG bold_italic_v end_ARG , bold_italic_λ ) - divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ bold_italic_λ ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT . (11)

where the deformation energy acts as a Tikhonov regularization on the dual variables (i.e., the constraint forces) of the rigid constrained problem (10).

II-D Proximal algorithms

Proximal algorithms [44] are a general class of optimization techniques, ubiquitous in convex optimization, and are essentially rooted around the notion of proximal operators. The proximal operator [39] of a convex function f𝑓fitalic_f is defined by

𝐩𝐫𝐨𝐱ρ,f(x)=argminyf(y)+ρ2xy22subscript𝐩𝐫𝐨𝐱𝜌𝑓𝑥subscriptargmin𝑦𝑓𝑦𝜌2superscriptsubscriptnorm𝑥𝑦22\bm{\mathrm{prox}}_{\rho,f}(x)=\operatorname*{arg\,min}_{y}f(y)+\frac{\rho}{2}% \|x-y\|_{2}^{2}bold_prox start_POSTSUBSCRIPT italic_ρ , italic_f end_POSTSUBSCRIPT ( italic_x ) = start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT italic_f ( italic_y ) + divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ italic_x - italic_y ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (12)

where ρ>0𝜌subscriptabsent0\rho\in\mathbb{R}_{>0}italic_ρ ∈ blackboard_R start_POSTSUBSCRIPT > 0 end_POSTSUBSCRIPT is homogeneous to the inverse of a step size. A specific property of this operator is that its fixed points coincide with the set of minimizers of f𝑓fitalic_f. The proximal point algorithm [44] uses the corresponding fixed point iteration

xk+1=𝐩𝐫𝐨𝐱ρ,f(xk),superscript𝑥𝑘1subscript𝐩𝐫𝐨𝐱𝜌𝑓superscript𝑥𝑘x^{k+1}=\bm{\mathrm{prox}}_{{\rho},f}(x^{k}),italic_x start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT = bold_prox start_POSTSUBSCRIPT italic_ρ , italic_f end_POSTSUBSCRIPT ( italic_x start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ) , (13)

and is known to converge towards a minimizer of f𝑓fitalic_f.

Considering the particular case of QP, one seeks to solve

minxsubscript𝑥\displaystyle\min_{x}\ roman_min start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT 12xHx+gx12superscript𝑥top𝐻𝑥superscript𝑔top𝑥\displaystyle\frac{1}{2}x^{\top}Hx+g^{\top}xdivide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_x start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_H italic_x + italic_g start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_x (14)
s.t.formulae-sequencest\displaystyle\mathrm{s.t.}\ roman_s . roman_t . Ax=b𝐴𝑥𝑏\displaystyle Ax=bitalic_A italic_x = italic_b

where Hq×q𝐻superscript𝑞𝑞H\in\mathbb{R}^{q\times q}italic_H ∈ blackboard_R start_POSTSUPERSCRIPT italic_q × italic_q end_POSTSUPERSCRIPT is a symmetric positive semi-definite matrix, Ap×q𝐴superscript𝑝𝑞A\in\mathbb{R}^{p\times q}italic_A ∈ blackboard_R start_POSTSUPERSCRIPT italic_p × italic_q end_POSTSUPERSCRIPT, gq𝑔superscript𝑞g\in\mathbb{R}^{q}italic_g ∈ blackboard_R start_POSTSUPERSCRIPT italic_q end_POSTSUPERSCRIPT and bp𝑏superscript𝑝b\in\mathbb{R}^{p}italic_b ∈ blackboard_R start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT. The Lagrangian of this problem writes,

(x,z)=12xHx+gxz(Axb),𝑥𝑧12superscript𝑥top𝐻𝑥superscript𝑔top𝑥superscript𝑧top𝐴𝑥𝑏\mathcal{L}(x,z)=\frac{1}{2}x^{\top}Hx+g^{\top}x-z^{\top}(Ax-b),caligraphic_L ( italic_x , italic_z ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_x start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_H italic_x + italic_g start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_x - italic_z start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_A italic_x - italic_b ) , (15)

where zp𝑧superscript𝑝z\in\mathbb{R}^{p}italic_z ∈ blackboard_R start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT is the dual variable. The solution to the problem verifies

x,z=argminxmaxz(x,z)superscript𝑥superscript𝑧argsubscript𝑥subscript𝑧𝑥𝑧x^{*},z^{*}=\text{arg}\min_{x}\max_{z}\mathcal{L}(x,z)italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = arg roman_min start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT roman_max start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT caligraphic_L ( italic_x , italic_z ) (16)

and the KKT conditions

(HAA0p×p)(xz)=(gb).matrix𝐻superscript𝐴top𝐴subscript0𝑝𝑝matrixsuperscript𝑥superscript𝑧matrix𝑔𝑏\begin{pmatrix}H&A^{\top}\\ A&0_{p\times p}\end{pmatrix}\begin{pmatrix}x^{*}\\ -z^{*}\end{pmatrix}=\begin{pmatrix}-g\\ b\end{pmatrix}.( start_ARG start_ROW start_CELL italic_H end_CELL start_CELL italic_A start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_A end_CELL start_CELL 0 start_POSTSUBSCRIPT italic_p × italic_p end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) ( start_ARG start_ROW start_CELL italic_x start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL - italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL - italic_g end_CELL end_ROW start_ROW start_CELL italic_b end_CELL end_ROW end_ARG ) . (17)

When applied to the dual part of the QP (14), the proximal point algorithm can be written as

xk+1,zk+1=argminxmaxz(x,z)ρ2zzk22,superscript𝑥𝑘1superscript𝑧𝑘1argsubscript𝑥subscript𝑧𝑥𝑧𝜌2superscriptsubscriptnorm𝑧superscript𝑧𝑘22x^{k+1},z^{k+1}=\text{arg}\min_{x}\max_{z}\mathcal{L}(x,z)-\frac{\rho}{2}\|z-z% ^{k}\|_{2}^{2},italic_x start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT , italic_z start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT = arg roman_min start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT roman_max start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT caligraphic_L ( italic_x , italic_z ) - divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ italic_z - italic_z start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , (18)

where the minus sign in front of the term ρ2zzk22𝜌2superscriptsubscriptnorm𝑧superscript𝑧𝑘22-\frac{\rho}{2}\|z-z^{k}\|_{2}^{2}- divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ italic_z - italic_z start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT comes from the maximization over the dual variable z𝑧zitalic_z. The solution of the proximal iteration defined in Eq. (18) is obtained by solving the following system of equations

(HAAρId)(xk+1zk+1)=(gbρzk).matrix𝐻superscript𝐴top𝐴𝜌Idmatrixsuperscript𝑥𝑘1superscript𝑧𝑘1matrix𝑔𝑏𝜌superscript𝑧𝑘\begin{pmatrix}H&A^{\top}\\ A&-\rho\text{Id}\end{pmatrix}\begin{pmatrix}x^{k+1}\\ -z^{k+1}\end{pmatrix}=\begin{pmatrix}-g\\ b-\rho z^{k}\end{pmatrix}.( start_ARG start_ROW start_CELL italic_H end_CELL start_CELL italic_A start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL italic_A end_CELL start_CELL - italic_ρ Id end_CELL end_ROW end_ARG ) ( start_ARG start_ROW start_CELL italic_x start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL - italic_z start_POSTSUPERSCRIPT italic_k + 1 end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL - italic_g end_CELL end_ROW start_ROW start_CELL italic_b - italic_ρ italic_z start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) . (19)

This approach is widely used in optimization and at the core of several optimization solvers [50, 4] and algorithms [9] for solving constrained dynamical problems.

Link between proximal and compliance terms. Going back to the simulation of constrained systems, one should notice the similarity between (8) and (19). Interestingly, drawing parallels between these two systems, the proximal regularization acts as a numerical compliance, thus making the iterates (19) always well-defined. However, due to different regularization terms in (11) and (18), the effect of the proximal operator differs from a standard mechanical compliance. This translates into a shift in the right-hand side of (19) through the term ρzk𝜌superscript𝑧𝑘-\rho z^{k}- italic_ρ italic_z start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT. As further discussed in [44], this term cancels out over the iterations, making the proximal solution converge towards the solution of the original rigid problem (17). Therefore, proximal regularization can be seen as a numerical technique akin to vanishing compliance.

II-E Modeling frictional unilateral contacts: the Nonlinear Complementary Problem

Previously described equations govern the motion of systems under equality constraints, i.e., bilateral constraints. However, punctual contact interactions are subject to three main modeling hypotheses: the unilateral contact constraint, the Coulomb friction law, and the Maximum Dissipation Principle (MDP). Next, we detail these principles and the problem they induce.

TABLE I: Characteristics of the contact solvers in robotics.
Physics engine Complementarity problem Contact type Algorithm
ODE[48], PhysX[36], DART [33] LCP hard PGS
Bullet[13] NCP hard PGS
MuJoCo[53], Drake [52] CCP soft non-smooth Newton
RaiSim[26] - hard per-contact bisection
Dojo[25] NCP hard Interior Point
Ours NCP hard & soft ADMM

RaiSim does not model the contact problem as a complementarity problem.superscriptRaiSim does not model the contact problem as a complementarity problem.{}^{*}\text{RaiSim does not model the contact problem as a complementarity % problem.}start_FLOATSUPERSCRIPT ∗ end_FLOATSUPERSCRIPT RaiSim does not model the contact problem as a complementarity problem.

Unilateral contact hypothesis. Through the unilateral hypothesis, one assumes that objects cannot interpenetrate, yielding the following inequality:

Φ(𝒒)N0,Φsubscript𝒒𝑁0\Phi(\bm{q})_{N}\geq 0,roman_Φ ( bold_italic_q ) start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ≥ 0 , (20)

where Φ(𝒒)3ncΦ𝒒superscript3subscript𝑛𝑐\Phi(\bm{q})\in\mathbb{R}^{3n_{c}}roman_Φ ( bold_italic_q ) ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT denotes the separation vector [18] defined as the minimum norm translation vector putting two shapes at a null distance, ncsubscript𝑛𝑐n_{c}italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT being the number of contact points, and the subscripts N𝑁Nitalic_N and T𝑇Titalic_T refer to the normal and tangential indices, respectively.

By duality, such a constraint induces contact forces 𝝀3nc𝝀superscript3subscript𝑛𝑐\bm{\lambda}\in\mathbb{R}^{3n_{c}}bold_italic_λ ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT that can only act in a repulsive fashion and when objects are in contact, i.e., when Φ(𝒒)N=0Φsubscript𝒒𝑁0\Phi(\bm{q})_{N}=0roman_Φ ( bold_italic_q ) start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = 0. These constraints are summarized by the Signorini condition [47]

0𝝀NΦ(𝒒)N0.0subscript𝝀𝑁perpendicular-toΦsubscript𝒒𝑁00\leq\bm{\lambda}_{N}\perp\Phi(\bm{q})_{N}\geq 0.0 ≤ bold_italic_λ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ⟂ roman_Φ ( bold_italic_q ) start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ≥ 0 . (21)

where abperpendicular-to𝑎𝑏a\perp bitalic_a ⟂ italic_b for vectors a𝑎aitalic_a and b𝑏bitalic_b means ab=0superscript𝑎top𝑏0a^{\top}b=0italic_a start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_b = 0.

We use an impulse-based formulation to deal with rigid dynamics and impacts. Applying the Euler symplectic scheme to discretize (3) leads to

M(𝒗t+1𝒗f)=Jc𝝀𝑀superscript𝒗𝑡1subscript𝒗𝑓superscriptsubscript𝐽𝑐top𝝀M(\bm{v}^{t+1}-\bm{v}_{f})=J_{c}^{\top}\bm{\lambda}italic_M ( bold_italic_v start_POSTSUPERSCRIPT italic_t + 1 end_POSTSUPERSCRIPT - bold_italic_v start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ) = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_λ (22)

where 𝝀𝝀\bm{\lambda}bold_italic_λ now denotes an impulse, 𝒗f=Δt𝒗˙fsubscript𝒗𝑓Δ𝑡subscriptbold-˙𝒗𝑓\bm{v}_{f}=\Delta t\bm{\dot{v}}_{f}bold_italic_v start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = roman_Δ italic_t overbold_˙ start_ARG bold_italic_v end_ARG start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, ΔtΔ𝑡\Delta troman_Δ italic_t being the time step, and Jc3nc×nvsubscript𝐽𝑐superscript3subscript𝑛𝑐subscript𝑛𝑣J_{c}\in\mathbb{R}^{3n_{c}\times n_{v}}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT end_POSTSUPERSCRIPT is the Jacobian of ΦΦ\Phiroman_Φ. Here, the choice of integration scheme only requires one costly evaluation of M𝑀Mitalic_M, Jcsubscript𝐽𝑐J_{c}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, 𝒗fsubscript𝒗𝑓\bm{v}_{f}bold_italic_v start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT at the current time step 𝒒tsuperscript𝒒𝑡\bm{q}^{t}bold_italic_q start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT, 𝒗tsuperscript𝒗𝑡\bm{v}^{t}bold_italic_v start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT. More involved implicit integrators could be envisaged to improve stability, but they would also need to evaluate these operators multiple times. In particular, they would require multiple calls to the contact-detection and rigid-body algorithms, which can be computationally expensive. As was done earlier, the Signorini condition can be written in impulse via index reduction [40]

0𝝀N(Jc𝒗t+1+γ)N00subscript𝝀𝑁perpendicular-tosubscriptsubscript𝐽𝑐superscript𝒗𝑡1𝛾𝑁00\leq\bm{\lambda}_{N}\perp(J_{c}\bm{v}^{t+1}+\gamma)_{N}\geq 00 ≤ bold_italic_λ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ⟂ ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUPERSCRIPT italic_t + 1 end_POSTSUPERSCRIPT + italic_γ ) start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ≥ 0 (23)

where γ𝛾\gammaitalic_γ is equal to Φ(qt)Φsuperscript𝑞𝑡\Phi(q^{t})roman_Φ ( italic_q start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT ) plus previously mentioned corrective terms. We note 𝒄=Jc𝒗t+13nc𝒄subscript𝐽𝑐superscript𝒗𝑡1superscript3subscript𝑛𝑐\bm{c}=J_{c}\bm{v}^{t+1}\in\mathbb{R}^{3n_{c}}bold_italic_c = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUPERSCRIPT italic_t + 1 end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT the contact point velocities.

Similarly to the bilateral case from Sec. II, any contact constraint can be made compliant by modifying the Signorini condition

0𝝀N(Jc𝒗t+1+γ+R𝝀)N0.0subscript𝝀𝑁perpendicular-tosubscriptsubscript𝐽𝑐superscript𝒗𝑡1𝛾𝑅𝝀𝑁00\leq\bm{\lambda}_{N}\perp(J_{c}\bm{v}^{t+1}+\gamma+R\bm{\lambda})_{N}\geq 0.0 ≤ bold_italic_λ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ⟂ ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUPERSCRIPT italic_t + 1 end_POSTSUPERSCRIPT + italic_γ + italic_R bold_italic_λ ) start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ≥ 0 . (24)

The additional compliance term of (24) introduces possible interpenetration which can be used to model soft bodies. More involved deformation models based on the finite element method [45] are also used in robotics [35] but requires an extra computational cost.

Coulomb’s law of friction is generally employed to model dry friction via

i,λ(i)𝒦μ(i)for-all𝑖superscript𝜆𝑖subscript𝒦superscript𝜇𝑖\forall i,\ \lambda^{(i)}\in\mathcal{K}_{\mu^{(i)}}∀ italic_i , italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT (25)

where 𝒦μ(i)={λ(i)3|λT(i)2μ(i)λN(i)}subscript𝒦superscript𝜇𝑖conditional-setsuperscript𝜆𝑖superscript3subscriptnormsubscriptsuperscript𝜆𝑖𝑇2superscript𝜇𝑖superscriptsubscript𝜆𝑁𝑖\mathcal{K}_{\mu^{(i)}}=\{\lambda^{(i)}\in\mathbb{R}^{3}|\ \|\lambda^{(i)}_{T}% \|_{2}\leq\mu^{(i)}\lambda_{N}^{(i)}\}caligraphic_K start_POSTSUBSCRIPT italic_μ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT = { italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT | ∥ italic_λ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ italic_μ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT italic_λ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT } is the second-order friction cone, μ=(μ(1),,μ(nc))>0nc𝜇matrixsuperscript𝜇1superscript𝜇subscript𝑛𝑐superscriptsubscriptabsent0subscript𝑛𝑐\mu=\begin{pmatrix}\mu^{(1)},\dots,\mu^{(n_{c})}\end{pmatrix}\in\mathbb{R}_{>0% }^{n_{c}}italic_μ = ( start_ARG start_ROW start_CELL italic_μ start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT , … , italic_μ start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUBSCRIPT > 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT is the vector of coefficient of frictions and the superscript (i)𝑖(i)( italic_i ) refers to the indices associated with the i-th contact point. By noting the Cartesian product 𝒦μ=i=1nc𝒦(i)subscript𝒦𝜇superscriptsubscriptproduct𝑖1subscript𝑛𝑐superscript𝒦𝑖\mathcal{K}_{\mu}=\prod_{i=1}^{n_{c}}\mathcal{K}^{(i)}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT = ∏ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT caligraphic_K start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT, (25) can be aggregated into 𝝀𝒦μ𝝀subscript𝒦𝜇\bm{\lambda}\in\mathcal{K}_{\mu}bold_italic_λ ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT.

Maximum dissipation principle. In addition, the maximum dissipation principle (MDP) [40] states that, whenever a contact point is sliding, friction impulses should maximize the dissipated power

i,𝝀T(i)=for-all𝑖superscriptsubscript𝝀𝑇𝑖absent\displaystyle\forall i,\ \bm{\lambda}_{T}^{(i)}=∀ italic_i , bold_italic_λ start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT = argminβT,βTμ(i)𝝀N(i)βT𝒄T(i).subscriptargminsubscript𝛽𝑇normsubscript𝛽𝑇superscript𝜇𝑖superscriptsubscript𝝀𝑁𝑖superscriptsubscript𝛽𝑇topsuperscriptsubscript𝒄𝑇𝑖\displaystyle\operatorname*{arg\,min}_{\beta_{T},\|\beta_{T}\|\leq\mu^{(i)}\bm% {\lambda}_{N}^{(i)}}\beta_{T}^{\top}\bm{c}_{T}^{(i)}.start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT , ∥ italic_β start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT ∥ ≤ italic_μ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT bold_italic_λ start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT end_POSTSUBSCRIPT italic_β start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_c start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT . (26)

where c𝑐citalic_c is the contact point velocity previously defined.

Nonlinear complementary problem. Finally, combining equations (22), (24), (25), (26), 𝝀𝝀\bm{\lambda}bold_italic_λ verifies the following NCP

𝒦μsubscript𝒦𝜇\displaystyle\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT 𝝀𝝈+Γ(𝝈)𝒦μcontainsabsent𝝀perpendicular-to𝝈Γ𝝈superscriptsubscript𝒦𝜇\displaystyle\ni\bm{\lambda}\perp\bm{\sigma}+\Gamma(\bm{\sigma})\in\mathcal{K}% _{\mu}^{*}∋ bold_italic_λ ⟂ bold_italic_σ + roman_Γ ( bold_italic_σ ) ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT (27)

where 𝒦μ=𝒦1μsuperscriptsubscript𝒦𝜇subscript𝒦1𝜇\mathcal{K}_{\mu}^{*}=\mathcal{K}_{\frac{1}{\mu}}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = caligraphic_K start_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_μ end_ARG end_POSTSUBSCRIPT is the dual friction cone of 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT, G=JcM1Jc𝐺subscript𝐽𝑐superscript𝑀1superscriptsubscript𝐽𝑐topG=J_{c}M^{-1}J_{c}^{\top}italic_G = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_M start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT is the so-called Delassus matrix [15], g=Jc𝒗f+γ𝑔subscript𝐽𝑐subscript𝒗𝑓𝛾g=J_{c}\bm{v}_{f}+\gammaitalic_g = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT + italic_γ is the free contact point velocities plus corrective terms, and we use the shorthand notation 𝝈=(G+R)𝝀+g𝝈𝐺𝑅𝝀𝑔\bm{\sigma}=(G+R)\bm{\lambda}+gbold_italic_σ = ( italic_G + italic_R ) bold_italic_λ + italic_g. We use the notation Γ(𝝈)=(Γ(1)(𝝈(1))Γ(nc)(𝝈(nc)))3ncΓ𝝈matrixsuperscriptΓ1superscript𝝈1superscriptΓsubscript𝑛𝑐superscript𝝈subscript𝑛𝑐superscript3subscript𝑛𝑐\Gamma(\bm{\sigma})=\begin{pmatrix}\Gamma^{(1)}(\bm{\sigma}^{(1)})&\dots&% \Gamma^{(n_{c})}(\bm{\sigma}^{(n_{c})})\end{pmatrix}\in\mathbb{R}^{3n_{c}}roman_Γ ( bold_italic_σ ) = ( start_ARG start_ROW start_CELL roman_Γ start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ( bold_italic_σ start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT ) end_CELL start_CELL … end_CELL start_CELL roman_Γ start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT ( bold_italic_σ start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT ) end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT with Γ(i)(𝝈(i))=(00μ(i)𝝈T(i))3superscriptΓ𝑖superscript𝝈𝑖matrix00superscript𝜇𝑖normsuperscriptsubscript𝝈𝑇𝑖superscript3\Gamma^{(i)}(\bm{\sigma}^{(i)})=\begin{pmatrix}0&0&\mu^{(i)}\|\bm{\sigma}_{T}^% {(i)}\|\end{pmatrix}\in\mathbb{R}^{3}roman_Γ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ( bold_italic_σ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ) = ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_μ start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ∥ bold_italic_σ start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_i ) end_POSTSUPERSCRIPT ∥ end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT denoting the De Saxcé correction [14].

II-F Existing solvers

Due to the non-convexity and nonsmoothness of the complementarity constraint, the nonlinearity of the DeSaxcé correction, and the ill-conditioning of the Delassus matrix G𝐺Gitalic_G, the NCP (27) is known to be a numerically hard problem to solve in general [2].

A first class of simulators, e.g., ODE [48], PhysX [36], DART[33], proceed by linearizing the friction cones to get an approximate but more tractable Linear Complementarity Problem (LCP). LCPs are well-studied [12] and can be solved with the Projected Gauss-Seidel (PGS) algorithm. As a first-order algorithm, PGS is not affected by null eigenvalues due to hyperstaticity but is sensitive to the conditioning of the Delassus matrix G𝐺Gitalic_G, thus hindering robustness. In its recent versions, Bullet [13] implements a similar PGS algorithm working on the original second-order friction cone.

An alternative approach, notably adopted in MuJoCo[53] and Drake[52], consists in ignoring the DeSaxcé correction in (27), which has the effect of relaxing the Signorini condition [32]. This leads to a Cone Complementarity Problem (CCP) which is equivalent to a convex Second-Order Cone Programming (SOCP) problem [6]. Such a problem can be solved via robust off-the-shelf optimization algorithms benefiting from strong guarantees. In this respect, a previous work [51] uses an ADMM algorithm to solve this problem. In MuJoCo [53] and Drake [52] simulators, the hyperstatic cases are handled by systematically adding compliance to the problem, thus making it impossible to simulate purely rigid systems.

Raisim [26] uses a specific contact model enforcing the Signorini condition, which combines favorably with its custom per-contact bisection algorithm. Despite its computational efficiency, this approach inherits the sensitivity to conditioning from Gauss-Seidel-like techniques.

Dojo [25] avoids any physical relaxation and uses an Interior Point (IP) algorithm to solve (27). As a second-order algorithm, Dojo’s solver can handle ill-conditioned problems. However, just like IP algorithms, the resulting algorithm is difficult to warm-start and requires an expensive Choleksy computation at each iteration, which makes the approach time-consuming, and thus limits its range of applications, notably in the context of real-time control scenarios.

III Efficient solving of frictional contact dynamics

In this section, we detail the central contribution of this paper, namely a novel algorithm to solve NCPs of the form of problem (27). At the core of our approach, is the development of a new ADMM method and update strategy, enabling us to solve complex contact problems, that might be poorly conditioned, as it might occur in contact mechanics problems.

III-A NCP as a cascade of optimization problems

The NCP formulated in (27) corresponds to the solving of the interweaving problems of the form

𝝀𝝀\displaystyle\bm{\lambda}bold_italic_λ =argmin𝒇𝒦μ12𝒇(G+R)𝒇+𝒇(Γ(𝝈)+g),absentsubscriptargmin𝒇subscript𝒦𝜇12superscript𝒇top𝐺𝑅𝒇superscript𝒇topΓ𝝈𝑔\displaystyle=\operatorname*{arg\,min}_{\bm{f}\in\mathcal{K}_{\mu}}\frac{1}{2}% \bm{f}^{\top}(G+R)\bm{f}+\bm{f}^{\top}\left(\Gamma(\bm{\sigma})+g\right)\,,= start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT bold_italic_f ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_G + italic_R ) bold_italic_f + bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( roman_Γ ( bold_italic_σ ) + italic_g ) , (28a)
and
𝝈𝝈\displaystyle\bm{\sigma}bold_italic_σ =(G+R)𝝀+g.absent𝐺𝑅𝝀𝑔\displaystyle=(G+R)\bm{\lambda}+g\,.= ( italic_G + italic_R ) bold_italic_λ + italic_g . (28b)

Indeed, if we denote by 𝒛𝒦μ𝒛subscriptsuperscript𝒦𝜇\bm{z}\in\mathcal{K}^{*}_{\mu}bold_italic_z ∈ caligraphic_K start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT the dual variable associated to the primal variable 𝝀𝒦μ𝝀subscript𝒦𝜇\bm{\lambda}\in\mathcal{K}_{\mu}bold_italic_λ ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT, the Lagrangian of Problem (28) reads

(𝒇,𝒛)=12𝒇(G+R)𝒇+𝒇(Γ(𝝈)+g)𝒇𝒛.𝒇𝒛12superscript𝒇top𝐺𝑅𝒇superscript𝒇topΓ𝝈𝑔superscript𝒇top𝒛\mathcal{L}(\bm{f},\bm{z})=\frac{1}{2}\bm{f}^{\top}(G+R)\bm{f}+\bm{f}^{\top}% \left(\Gamma(\bm{\sigma})+g\right)-\bm{f}^{\top}\bm{z}.caligraphic_L ( bold_italic_f , bold_italic_z ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_G + italic_R ) bold_italic_f + bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( roman_Γ ( bold_italic_σ ) + italic_g ) - bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_z . (29)

The optimality conditions are thus given by canceling the gradient of \mathcal{L}caligraphic_L w.r.t. 𝒇𝒇\bm{f}bold_italic_f at the optimal solution (𝝀,𝒛)𝝀superscript𝒛(\bm{\lambda},\bm{z}^{*})( bold_italic_λ , bold_italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT )

𝒇(𝝀,𝒛)=(G+R)𝝀+g+Γ(𝝈)𝒛=0,subscript𝒇𝝀superscript𝒛𝐺𝑅𝝀𝑔Γ𝝈superscript𝒛0\nabla_{\bm{f}}\mathcal{L}(\bm{\lambda},\bm{z}^{*})=(G+R)\bm{\lambda}+g+\Gamma% (\bm{\sigma})-\bm{z}^{*}=0,∇ start_POSTSUBSCRIPT bold_italic_f end_POSTSUBSCRIPT caligraphic_L ( bold_italic_λ , bold_italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ) = ( italic_G + italic_R ) bold_italic_λ + italic_g + roman_Γ ( bold_italic_σ ) - bold_italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = 0 , (30)

and the fact that

𝒦μ𝝀𝒛𝒦μ.containssubscript𝒦𝜇𝝀perpendicular-tosuperscript𝒛superscriptsubscript𝒦𝜇\mathcal{K}_{\mu}\ni\bm{\lambda}\perp\bm{z}^{*}\in\mathcal{K}_{\mu}^{*}.caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT ∋ bold_italic_λ ⟂ bold_italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT . (31)

Injecting (30) into (31), leads to the nonlinear complementarity conditions of (27).

Interestingly, (28a) appears to be a convex problem which proves to be useful as it allows sub-steps of our ADMM approach to be performed efficiently. However, the interweaving of (28a) and (28b) through the non-smooth de Saxcé function ΓΓ\Gammaroman_Γ makes the problem (27) difficult to solve in general by standard optimization techniques [2]. As discussed in [2], one approach consists in incorporating estimates of Γ(𝝈)Γ𝝈\Gamma(\bm{\sigma})roman_Γ ( bold_italic_σ ) (which is equal to Γ(𝒛)Γsuperscript𝒛\Gamma(\bm{z}^{*})roman_Γ ( bold_italic_z start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT )), via the updates of a variable named s𝑠sitalic_s, inside the solving of (28a). More specifically, this results in a cascade of optimization problems and is done by setting, at the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT iterate, sk=Γ(𝒛k)subscript𝑠𝑘Γsubscript𝒛𝑘s_{k}=\Gamma(\bm{z}_{k})italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = roman_Γ ( bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) (Alg. 1, line 1), corresponding to the nonlinear term in (28) considered as constant, then solving (28a) (Alg. 1, line 1) and updating 𝒛ksubscript𝒛𝑘\bm{z}_{k}bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT (Alg. 1, line 1) from the new optimal force vector 𝒇ksubscript𝒇𝑘\bm{f}_{k}bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT. The solving of this cascade of problems continues until the primal and dual optimal convergence criteria have been met up to a certain numerical tolerance ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT.

This cascaded strategy has shown to be effective in practice [2]. A critical part involves solving the inner optimization problem (28a) efficiently, which is nothing more than a Quadratically Constrained Quadratic Program (QCQP). One approach could thus consist in leveraging existing SOCP solvers, such as ECOS [17] or SCS [42]. Yet, because of their high level of versatility, such off-the-shelf solvers tend to be less efficient when considering a specific class of problems such as the ones occurring in contact mechanics [2]. Following this line of thought, we instead propose to develop a dedicated and efficient ADMM approach for solving 28a, particularly suited for solving ill-conditioned problems.

III-B Proximal ADMM formulation

By introducing a slack variable 𝒚𝒚\bm{y}bold_italic_y such that 𝒚=𝒇𝒚𝒇\bm{y}=\bm{f}bold_italic_y = bold_italic_f, the QCQP (28a) is made separable as follows

min𝒇,𝒚subscript𝒇𝒚\displaystyle\min_{\bm{f},\bm{y}}\ roman_min start_POSTSUBSCRIPT bold_italic_f , bold_italic_y end_POSTSUBSCRIPT h1(𝒇)+h2(𝒚)subscript1𝒇subscript2𝒚\displaystyle h_{1}(\bm{f})+h_{2}(\bm{y})italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_f ) + italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_y ) (32a)
s.t.formulae-sequencest\displaystyle\mathrm{s.t.}\ roman_s . roman_t . 𝒇=𝒚,𝒇𝒚\displaystyle\bm{f}=\bm{y}\,,bold_italic_f = bold_italic_y , (32b)

where h1(𝒇):=12𝒇(G+R)𝒇+𝒇(s+g)assignsubscript1𝒇12superscript𝒇top𝐺𝑅𝒇superscript𝒇top𝑠𝑔h_{1}(\bm{f}):=\frac{1}{2}\bm{f}^{\top}(G+R)\bm{f}+\bm{f}^{\top}(s+g)italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_f ) := divide start_ARG 1 end_ARG start_ARG 2 end_ARG bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_G + italic_R ) bold_italic_f + bold_italic_f start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( italic_s + italic_g ) is a smooth convex function with s𝑠sitalic_s being the current estimate of Γ(𝝈)Γ𝝈\Gamma(\bm{\sigma})roman_Γ ( bold_italic_σ ), and h2(𝒚):=𝒦μ(𝒚)assignsubscript2𝒚subscriptsubscript𝒦𝜇𝒚h_{2}(\bm{y}):=\mathcal{I}_{\mathcal{K}_{\mu}}(\bm{y})italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_y ) := caligraphic_I start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_italic_y ) is the nonsmooth indicator function associated with the convex cone 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT defined as

𝒦μ(𝒚)={0,if 𝒚𝒦μ+,otherwise.subscriptsubscript𝒦𝜇𝒚cases0if 𝒚subscript𝒦𝜇otherwise\mathcal{I}_{\mathcal{K}_{\mu}}(\bm{y})=\begin{cases}0,&\text{if }\bm{y}\in% \mathcal{K}_{\mu}\\ +\infty,&\text{otherwise}\end{cases}.caligraphic_I start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_italic_y ) = { start_ROW start_CELL 0 , end_CELL start_CELL if bold_italic_y ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL + ∞ , end_CELL start_CELL otherwise end_CELL end_ROW .

By naming 𝒛𝒛\bm{z}bold_italic_z the dual variable associated with (32b), the augmented Lagrangian of problem (32) reads

ρA(𝒇,𝒚,𝒛)=h1(𝒇)+h2(𝒚)𝒛(𝒇𝒚)+ρ2𝒇𝒚22superscriptsubscript𝜌𝐴𝒇𝒚𝒛subscript1𝒇subscript2𝒚superscript𝒛top𝒇𝒚𝜌2subscriptsuperscriptnorm𝒇𝒚22\mathcal{L}_{\rho}^{A}(\bm{f},\bm{y},\bm{z})=h_{1}(\bm{f})+h_{2}(\bm{y})-\bm{z% }^{\top}(\bm{f}-\bm{y})+\frac{\rho}{2}\|\bm{f}-\bm{y}\|^{2}_{2}\,caligraphic_L start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT ( bold_italic_f , bold_italic_y , bold_italic_z ) = italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_f ) + italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_y ) - bold_italic_z start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ( bold_italic_f - bold_italic_y ) + divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ bold_italic_f - bold_italic_y ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (33)

where ρ𝜌\rhoitalic_ρ is the augmented Lagrangian penalty term [5]. ρAsuperscriptsubscript𝜌𝐴\mathcal{L}_{\rho}^{A}caligraphic_L start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT defined in (33) can be equivalently rewritten as

ρA(𝒇,𝒚,𝒛)=h1(𝒇)+h2(𝒚)+ρ2𝒇𝒚𝒛ρ221ρ𝒛22.superscriptsubscript𝜌𝐴𝒇𝒚𝒛subscript1𝒇subscript2𝒚𝜌2subscriptsuperscriptnorm𝒇𝒚𝒛𝜌221𝜌subscriptsuperscriptnorm𝒛22\mathcal{L}_{\rho}^{A}(\bm{f},\bm{y},\bm{z})=h_{1}(\bm{f})+h_{2}(\bm{y})+\frac% {\rho}{2}\left\|\bm{f}-\bm{y}-\frac{\bm{z}}{\rho}\right\|^{2}_{2}\ -\frac{1}{% \rho}\left\|\bm{z}\right\|^{2}_{2}\,.caligraphic_L start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT ( bold_italic_f , bold_italic_y , bold_italic_z ) = italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_f ) + italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_y ) + divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ bold_italic_f - bold_italic_y - divide start_ARG bold_italic_z end_ARG start_ARG italic_ρ end_ARG ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - divide start_ARG 1 end_ARG start_ARG italic_ρ end_ARG ∥ bold_italic_z ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT . (34)

Finally, to make the sub-problem associated to h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT strongly convex w.r.t. 𝒇𝒇\bm{f}bold_italic_f, we propose to add the proximal term η2𝒇𝒇22𝜂2subscriptsuperscriptnorm𝒇superscript𝒇22\frac{\eta}{2}\|\bm{f}-\bm{f}^{-}\|^{2}_{2}divide start_ARG italic_η end_ARG start_ARG 2 end_ARG ∥ bold_italic_f - bold_italic_f start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT to ρAsuperscriptsubscript𝜌𝐴\mathcal{L}_{\rho}^{A}caligraphic_L start_POSTSUBSCRIPT italic_ρ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT, leading to

ρ,ηA(𝒇,𝒚,𝒛)=h1(𝒇)+η2𝒇𝒇22+h2(𝒚)+ρ2𝒇𝒚𝒛ρ221ρ𝒛22,superscriptsubscript𝜌𝜂𝐴𝒇𝒚𝒛subscript1𝒇𝜂2subscriptsuperscriptdelimited-∥∥𝒇superscript𝒇22subscript2𝒚𝜌2subscriptsuperscriptdelimited-∥∥𝒇𝒚𝒛𝜌221𝜌subscriptsuperscriptdelimited-∥∥𝒛22\mathcal{L}_{\rho,\eta}^{A}(\bm{f},\bm{y},\bm{z})=h_{1}(\bm{f})+\frac{\eta}{2}% \|\bm{f}-\bm{f}^{-}\|^{2}_{2}+h_{2}(\bm{y})\\ +\frac{\rho}{2}\left\|\bm{f}-\bm{y}-\frac{\bm{z}}{\rho}\right\|^{2}_{2}-\frac{% 1}{\rho}\left\|\bm{z}\right\|^{2}_{2},start_ROW start_CELL caligraphic_L start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT ( bold_italic_f , bold_italic_y , bold_italic_z ) = italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( bold_italic_f ) + divide start_ARG italic_η end_ARG start_ARG 2 end_ARG ∥ bold_italic_f - bold_italic_f start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT + italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ( bold_italic_y ) end_CELL end_ROW start_ROW start_CELL + divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ bold_italic_f - bold_italic_y - divide start_ARG bold_italic_z end_ARG start_ARG italic_ρ end_ARG ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - divide start_ARG 1 end_ARG start_ARG italic_ρ end_ARG ∥ bold_italic_z ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , end_CELL end_ROW (35)

where 𝒇superscript𝒇\bm{f}^{-}bold_italic_f start_POSTSUPERSCRIPT - end_POSTSUPERSCRIPT is the previous estimate of 𝒇𝒇\bm{f}bold_italic_f. This proximal term affects the conditioning of the problem by adding a regularization to the Hessian of h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, which will play an essential role in the update strategy further detailed in Sec. III-F. η𝜂\etaitalic_η is fixed and typically set to a value of 106superscript10610^{-6}10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT.

III-C Pseudocode of the ADMM updates

Solving the saddle-point point problem associated with the proximal augmented Lagrangian ρ,ηAsuperscriptsubscript𝜌𝜂𝐴\mathcal{L}_{\rho,\eta}^{A}caligraphic_L start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT defined in (35) can be efficiently done via ADMM iterates. The updates are defined by the following successive optimization steps:

𝒇ksubscript𝒇𝑘\displaystyle\bm{f}_{k}bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =argmin𝒇ρ,ηA(𝒇,𝒚k1,𝒛k1)absentsubscriptargmin𝒇superscriptsubscript𝜌𝜂𝐴𝒇subscript𝒚𝑘1subscript𝒛𝑘1\displaystyle=\operatorname*{arg\,min}_{\bm{f}}\mathcal{L}_{\rho,\eta}^{A}(\bm% {f},\bm{y}_{k-1},\bm{z}_{k-1})= start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT bold_italic_f end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT ( bold_italic_f , bold_italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT , bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) (36a)
𝒚ksubscript𝒚𝑘\displaystyle\bm{y}_{k}bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =argmin𝒚ρ,ηA(𝒇k,𝒚,𝒛k1)absentsubscriptargmin𝒚superscriptsubscript𝜌𝜂𝐴subscript𝒇𝑘𝒚subscript𝒛𝑘1\displaystyle=\operatorname*{arg\,min}_{\bm{y}}\mathcal{L}_{\rho,\eta}^{A}(\bm% {f}_{k},\bm{y},\bm{z}_{k-1})= start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , bold_italic_y , bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) (36b)
𝒛ksubscript𝒛𝑘\displaystyle\bm{z}_{k}bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT =𝒛k1ρ(𝒇k𝒚k).absentsubscript𝒛𝑘1𝜌subscript𝒇𝑘subscript𝒚𝑘\displaystyle=\bm{z}_{k-1}-\rho(\bm{f}_{k}-\bm{y}_{k})\,.= bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_ρ ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) . (36c)

We now detail the content of each sub-computations of (36). The first equation (36a) corresponds to the solving of an unconstrained quadratic problem, whose solution is given by:

𝒇k=(G+R+(η+ρ)Id)1(g+skη𝒇k1ρ𝒚k1𝒛k1).subscript𝒇𝑘superscript𝐺𝑅𝜂𝜌Id1𝑔subscript𝑠𝑘𝜂subscript𝒇𝑘1𝜌subscript𝒚𝑘1subscript𝒛𝑘1\bm{f}_{k}=-\left(G+R+(\eta+\rho)\text{Id}\right)^{-1}\\ \left(g+s_{k}-\eta\bm{f}_{k-1}-\rho\bm{y}_{k-1}-\bm{z}_{k-1}\right)\,.start_ROW start_CELL bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = - ( italic_G + italic_R + ( italic_η + italic_ρ ) Id ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ( italic_g + italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_η bold_italic_f start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_ρ bold_italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) . end_CELL end_ROW (37)

It is worth noting that (37) is always well-defined because of the proximal regularization. This allows our ADMM approach to handle both compliant and purely rigid contacts as illustrated in Fig.2. The second equation (36b) can be explicitly written as:

𝒚k=argmin𝒚𝒦μρ2𝒇k𝒛k1ρ𝒚22.subscript𝒚𝑘subscriptargmin𝒚subscript𝒦𝜇𝜌2subscriptsuperscriptnormsubscript𝒇𝑘subscript𝒛𝑘1𝜌𝒚22\bm{y}_{k}=\operatorname*{arg\,min}_{\bm{y}\in\mathcal{K}_{\mu}}\frac{\rho}{2}% \left\|\bm{f}_{k}-\frac{\bm{z}_{k-1}}{\rho}-\bm{y}\right\|^{2}_{2}\,.bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = start_OPERATOR roman_arg roman_min end_OPERATOR start_POSTSUBSCRIPT bold_italic_y ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT divide start_ARG italic_ρ end_ARG start_ARG 2 end_ARG ∥ bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - divide start_ARG bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ρ end_ARG - bold_italic_y ∥ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT . (38)

It corresponds to the orthogonal projection of the vector 𝒇k𝒛k1ρsubscript𝒇𝑘subscript𝒛𝑘1𝜌\bm{f}_{k}-\frac{\bm{z}_{k-1}}{\rho}bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - divide start_ARG bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ρ end_ARG on the Cartesian product of friction cones 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT, also denoted by:

𝒚k=𝒫𝒦μId(𝒇k𝒛k1ρ)subscript𝒚𝑘subscriptsuperscript𝒫Idsubscript𝒦𝜇subscript𝒇𝑘subscript𝒛𝑘1𝜌\bm{y}_{k}=\mathcal{P}^{\text{Id}}_{\mathcal{K}_{\mu}}\left(\bm{f}_{k}-\frac{% \bm{z}_{k-1}}{\rho}\right)bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = caligraphic_P start_POSTSUPERSCRIPT Id end_POSTSUPERSCRIPT start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - divide start_ARG bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ρ end_ARG ) (39)

The third equation (36c) corresponds to the classic augmented Lagrangian multiplier updates [5].

Refer to caption
Refer to caption
Figure 2: Compliant contacts. Our contact solver can handle both purely rigid (left) and compliant contacts (right).

III-D Primal and dual convergence criteria

As classically done in the ADMM settings, the primal and dual residuals associated with the augmented Lagrangian function ρ,ηAsuperscriptsubscript𝜌𝜂𝐴\mathcal{L}_{\rho,\eta}^{A}caligraphic_L start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_A end_POSTSUPERSCRIPT at the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT iterates are respectively given by

rkprim=𝒇k𝒚k,superscriptsubscriptr𝑘primsubscript𝒇𝑘subscript𝒚𝑘\text{r}_{k}^{\text{prim}}=\bm{f}_{k}-\bm{y}_{k}\,,r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT = bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , (40)

and

rkdual=η(𝒇k𝒇k1)+ρ(𝒚k𝒚k1).superscriptsubscriptr𝑘dual𝜂subscript𝒇𝑘subscript𝒇𝑘1𝜌subscript𝒚𝑘subscript𝒚𝑘1\text{r}_{k}^{\text{dual}}=\eta(\bm{f}_{k}-\bm{f}_{k-1})+\rho(\bm{y}_{k}-\bm{y% }_{k-1})\,.r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT = italic_η ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_f start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) + italic_ρ ( bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) . (41)

In addition, we use a contact complementarity residual defined as

rkcomp=(|𝒇𝒌(𝟏)𝒛k(1)||𝒇𝒌(𝒏𝒄)𝒛k(nc)|).superscriptsubscriptr𝑘compmatrixsuperscriptsubscript𝒇𝒌limit-from1topsuperscriptsubscript𝒛𝑘1superscriptsubscript𝒇𝒌limit-fromsubscript𝒏𝒄topsuperscriptsubscript𝒛𝑘subscript𝑛𝑐\text{r}_{k}^{\text{comp}}=\begin{pmatrix}|\bm{f_{k}^{(1)\top}}\bm{z}_{k}^{(1)% }|&\dots&|\bm{f_{k}^{(n_{c})\top}}\bm{z}_{k}^{(n_{c})}|\end{pmatrix}.r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT comp end_POSTSUPERSCRIPT = ( start_ARG start_ROW start_CELL | bold_italic_f start_POSTSUBSCRIPT bold_italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT bold_( bold_1 bold_) bold_⊤ end_POSTSUPERSCRIPT bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT | end_CELL start_CELL … end_CELL start_CELL | bold_italic_f start_POSTSUBSCRIPT bold_italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT bold_( bold_italic_n start_POSTSUBSCRIPT bold_italic_c end_POSTSUBSCRIPT bold_) bold_⊤ end_POSTSUPERSCRIPT bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT | end_CELL end_ROW end_ARG ) . (42)

The iterations of ADMM have converged to precision ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT when:

rkprim,rkdual,rkcompϵabssubscriptnormsuperscriptsubscriptr𝑘primsubscriptnormsuperscriptsubscriptr𝑘dualsubscriptnormsuperscriptsubscriptr𝑘compsubscriptitalic-ϵabs\|\text{r}_{k}^{\text{prim}}\|_{\infty},\|\text{r}_{k}^{\text{dual}}\|_{\infty% },\|\text{r}_{k}^{\text{comp}}\|_{\infty}\leq\epsilon_{\text{abs}}∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT , ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT , ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT comp end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT ≤ italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT (43)

A typical set of values for ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT which offers a good compromise between realistic simulation (compared to alternative resolution methods) and computation times to solve the NCP problems is [104;106]superscript104superscript106[10^{-4};10^{-6}][ 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT ; 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT ]. We choose to use the infinity norm (.\|.\|_{\infty}∥ . ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT) as it is independent of the problem dimensions. As explained in [44], it is also possible to introduce relative convergence criterion, as done in many optimization solvers of the literature [42, 4], to account for the potential stagnation of the optimization variables due to the numerics.

III-E Exploiting problem sparsity

Over the three main steps of the ADMM recursion (36), the last two (36b) and (36c) are cheap operations of linear complexity w.r.t. the problem dimensions. The most complex operation lies in the resolution of the linear system in Eq. (36a), and detailed in Eq. 37. It notably requires the inversion of the augmented Delassus matrix, denoted by Gρ,ηR:=G+R+(η+ρ)Idassignsuperscriptsubscript𝐺𝜌𝜂𝑅𝐺𝑅𝜂𝜌IdG_{\rho,\eta}^{R}:=G+R+(\eta+\rho)\text{Id}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT := italic_G + italic_R + ( italic_η + italic_ρ ) Id in the sequel. Interestingly, the additional terms R+(η+ρ)Id𝑅𝜂𝜌IdR+(\eta+\rho)\text{Id}italic_R + ( italic_η + italic_ρ ) Id only modify the diagonal of the Delassus matrix G𝐺Gitalic_G with positive elements. In other words, both the sparsity of the Delassus matrix and the positivity are preserved, allowing to directly call sparse or dense Cholesky methods to decompose the augmented Delassus Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT.

Additionally, in the case of kinematics algorithms composed of multiple joints including loop-closure, one can leverage branch-inducing sparsity algorithms [21] to efficiently evaluate the Delassus matrix [20, 46] or directly obtain its Cholesky decomposition at a reduced cost [9]. Finally, it is worth noticing that, as soon as the ADMM penalty term ρ𝜌\rhoitalic_ρ is updated, it requires the full Cholesky refactorization of Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT. In other words, to lower the computational footprint induced by the successive Cholesky factorizations, it is essential to lower the number of updates of ρ𝜌\rhoitalic_ρ. This motivates the introduction of the spectral update rule for ρ𝜌\rhoitalic_ρ, detailed in the next subsection, which is experimentally validated in Sec. V.

III-F ADMM parameters update strategies

The convergence rate of the ADMM methods is directly related to the value of the augmented penalty term ρ𝜌\rhoitalic_ρ [44]. Choosing this value directly depends on input problem values (G,R,g𝐺𝑅𝑔G,R,gitalic_G , italic_R , italic_g and 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT). There is no automatic procedure to choose the best ρ𝜌\rhoitalic_ρ which will lower the number of iterations to reach the desired primal/dual accuracy ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT.

Linear update rule. From a given initial value ρ𝜌\rhoitalic_ρ, a well-known strategy is to linearly update ρ𝜌\rhoitalic_ρ according to the ratio between primal and dual residuals rkprim/rkdualsuperscriptsubscriptr𝑘primsuperscriptsubscriptr𝑘dual{\text{r}_{k}^{\text{prim}}}/{\text{r}_{k}^{\text{dual}}}r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT / r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT, following the update rule at the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT iterate

ρnew={τincρif rkprimαrkdualρ/τdecif rkdualαrkprimρ,otherwise,superscript𝜌newcasessuperscript𝜏inc𝜌if subscriptnormsuperscriptsubscriptr𝑘prim𝛼subscriptnormsuperscriptsubscriptr𝑘dual𝜌superscript𝜏decif subscriptnormsuperscriptsubscriptr𝑘dual𝛼subscriptnormsuperscriptsubscriptr𝑘prim𝜌otherwise\rho^{\text{new}}=\begin{cases}\tau^{\text{inc}}\rho&\text{if }\|\text{r}_{k}^% {\text{prim}}\|_{\infty}\geq\alpha\|\text{r}_{k}^{\text{dual}}\|_{\infty}\\ {\rho}/{\tau^{\text{dec}}}&\text{if }\|\text{r}_{k}^{\text{dual}}\|_{\infty}% \geq\alpha\|\text{r}_{k}^{\text{prim}}\|_{\infty}\\ \rho,&\text{otherwise}\,,\end{cases}italic_ρ start_POSTSUPERSCRIPT new end_POSTSUPERSCRIPT = { start_ROW start_CELL italic_τ start_POSTSUPERSCRIPT inc end_POSTSUPERSCRIPT italic_ρ end_CELL start_CELL if ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT ≥ italic_α ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ρ / italic_τ start_POSTSUPERSCRIPT dec end_POSTSUPERSCRIPT end_CELL start_CELL if ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT ≥ italic_α ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_ρ , end_CELL start_CELL otherwise , end_CELL end_ROW (44)

where τinc>1superscript𝜏inc1\tau^{\text{inc}}>1italic_τ start_POSTSUPERSCRIPT inc end_POSTSUPERSCRIPT > 1 and τdec>1superscript𝜏dec1\tau^{\text{dec}}>1italic_τ start_POSTSUPERSCRIPT dec end_POSTSUPERSCRIPT > 1 are increment/decrement factors, and α>1𝛼1\alpha>1italic_α > 1 is the ratio parameter between primal and dual residuals. The overall idea is to maintain the trajectory of primal and dual residual norms within a tube of diameter α𝛼\alphaitalic_α. Yet, if the problem is poorly conditioned, this linear update rule will often trigger many updates of ρ𝜌\rhoitalic_ρ, thus requiring each time to recompute the Cholesky factorization associated with the nonsingular augmented Delassus matrix Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT.

Spectral update rule. To overcome the inherent limitations of the standard linear ADMM update rule, we introduce a new update strategy that accounts for the spectral properties of the augmented Delassus matrix Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT. More precisely, our approach is inspired by the work of Nishihara et al. [41] which provides a convergence analysis of a generic class of ADMM formulations, including ours depicted by (32). Their analysis assumes that the ADMM penalty parameter ρ𝜌\rhoitalic_ρ is of the form

ρ:=mLκp,assign𝜌𝑚𝐿superscript𝜅𝑝\rho:=\sqrt{mL}\,\,\kappa^{p}\,,italic_ρ := square-root start_ARG italic_m italic_L end_ARG italic_κ start_POSTSUPERSCRIPT italic_p end_POSTSUPERSCRIPT , (45)

where m𝑚mitalic_m is the strong convexity parameter of h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and L𝐿Litalic_L is the Lipschitz constant associated with h1subscript1\nabla h_{1}∇ italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, where h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT refers to the smooth convex function in the ADMM formulation (32). As h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is a quadratic function, m𝑚mitalic_m and L𝐿Litalic_L respectively correspond to the lowest and largest eigenvalues of Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT. The ratio κ:=L/massign𝜅𝐿𝑚\kappa:=L/mitalic_κ := italic_L / italic_m is the condition number of h1subscript1h_{1}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT. p𝑝pitalic_p is the free exponent parameter directly balancing the contribution of the condition number κ𝜅\kappaitalic_κ in the choice of ρ𝜌\rhoitalic_ρ.

While in [41] p𝑝pitalic_p is assumed to be constant, we suggest adjusting its value according to the ratio between primal and dual residuals rkprim/rkdualsubscriptnormsuperscriptsubscriptr𝑘primsubscriptnormsuperscriptsubscriptr𝑘dual{\|\text{r}_{k}^{\text{prim}}}\|_{\infty}/{\|\text{r}_{k}^{\text{dual}}\|_{% \infty}}∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT / ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT, in the spirit of the linear update rule recalled previously. More precisely, we propose this selection strategy

pnewsuperscript𝑝new\displaystyle p^{\text{new}}italic_p start_POSTSUPERSCRIPT new end_POSTSUPERSCRIPT ={p+pincif rkprimαrkdual,ppdecif rkdualαrkprim,p,otherwise,absentcases𝑝superscript𝑝incif subscriptnormsuperscriptsubscriptr𝑘prim𝛼subscriptnormsuperscriptsubscriptr𝑘dual𝑝superscript𝑝decif subscriptnormsuperscriptsubscriptr𝑘dual𝛼subscriptnormsuperscriptsubscriptr𝑘prim𝑝otherwise\displaystyle=\begin{cases}p+p^{\text{inc}}&\text{if }\|\text{r}_{k}^{\text{% prim}}\|_{\infty}\geq\alpha\|\text{r}_{k}^{\text{dual}}\|_{\infty},\\ p-p^{\text{dec}}&\text{if }\|\text{r}_{k}^{\text{dual}}\|_{\infty}\geq\alpha\|% \text{r}_{k}^{\text{prim}}\|_{\infty},\\ p,&\text{otherwise}\,,\end{cases}= { start_ROW start_CELL italic_p + italic_p start_POSTSUPERSCRIPT inc end_POSTSUPERSCRIPT end_CELL start_CELL if ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT ≥ italic_α ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL italic_p - italic_p start_POSTSUPERSCRIPT dec end_POSTSUPERSCRIPT end_CELL start_CELL if ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT ≥ italic_α ∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL italic_p , end_CELL start_CELL otherwise , end_CELL end_ROW (46)
ρnewsuperscript𝜌new\displaystyle\rho^{\text{new}}italic_ρ start_POSTSUPERSCRIPT new end_POSTSUPERSCRIPT =mLκpnew,absent𝑚𝐿superscript𝜅subscript𝑝new\displaystyle=\sqrt{mL}\,\,\kappa^{p_{\text{new}}},= square-root start_ARG italic_m italic_L end_ARG italic_κ start_POSTSUPERSCRIPT italic_p start_POSTSUBSCRIPT new end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,

where pincsuperscript𝑝incp^{\text{inc}}italic_p start_POSTSUPERSCRIPT inc end_POSTSUPERSCRIPT and pdecsuperscript𝑝decp^{\text{dec}}italic_p start_POSTSUPERSCRIPT dec end_POSTSUPERSCRIPT are increments on the exponent parameter p𝑝pitalic_p. A typical value is pinc=pdec=0.05superscript𝑝incsuperscript𝑝dec0.05p^{\text{inc}}=p^{\text{dec}}=0.05italic_p start_POSTSUPERSCRIPT inc end_POSTSUPERSCRIPT = italic_p start_POSTSUPERSCRIPT dec end_POSTSUPERSCRIPT = 0.05. As for the linear update rule, α>1𝛼1\alpha>1italic_α > 1 is the ratio parameter between primal and dual residuals, forcing the primal and dual residual norms to lie within a tube of diameter α𝛼\alphaitalic_α. To the best of the author’s knowledge, this spectral update strategy is novel and directly scales the ADMM update parameter according to the smoothness of the NCP problem.

It is worth noticing that the proposed solution only considers the lowest and largest eigenvalues of Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT, which can be easily estimated from the power iteration algorithm for instance, which, in practice, converges in very few iterations compared to the problem dimensions. Finally, thanks to the presence of the proximal term added in (35), we have mη>0𝑚𝜂0m\geq\eta>0italic_m ≥ italic_η > 0, which guarantees the well-posedness of the strategy.

III-G Pseudocode

Algorithm 1 summarizes our ADMM-based approach for solving the NCP (27) problem of frictional contacts simulation. It takes as inputs the contact problem parameters, such as the Delassus matrix G𝐺Gitalic_G, the free contact point velocities g𝑔gitalic_g, the Cartesian product of the friction cones 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT, the compliance matrix R𝑅Ritalic_R, as well as a desired precision ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT. The outputs of Alg. 1 at line 1 correspond to both the optimal contact forces 𝝀𝝀\bm{\lambda}bold_italic_λ and the contact point velocities 𝝈𝝈\bm{\sigma}bold_italic_σ. This last quantity can be directly obtained from the dual variable 𝒛𝒛\bm{z}bold_italic_z of the NCP problem, which corresponds to the sum of the contact point velocity 𝝈=(G+R)𝝀+g𝝈𝐺𝑅𝝀𝑔\bm{\sigma}=(G+R)\bm{\lambda}+gbold_italic_σ = ( italic_G + italic_R ) bold_italic_λ + italic_g and the DeSaxé corrective term Γ(𝝈)Γ𝝈\Gamma(\bm{\sigma})roman_Γ ( bold_italic_σ ).

Input: Delassus matrix G𝐺Gitalic_G, free contact point velocities g𝑔gitalic_g, friction cones 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT, compliance R𝑅Ritalic_R, desired precision ϵabssubscriptitalic-ϵabs\epsilon_{\text{abs}}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT.
Output: Contact impulses 𝝀𝝀\bm{\lambda}bold_italic_λ and contact velocities 𝝈𝝈\bm{\sigma}bold_italic_σ
1
2for k=1𝑘1k=1italic_k = 1 to nitersubscript𝑛itern_{\text{iter}}italic_n start_POSTSUBSCRIPT iter end_POSTSUBSCRIPT do
       /* ADMM updates */
3       skΓ(𝒛k1)subscript𝑠𝑘Γsubscript𝒛𝑘1s_{k}\leftarrow\Gamma(\bm{z}_{k-1})italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← roman_Γ ( bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) ;
       𝒇k(G+R+(η+ρ)Id)1subscript𝒇𝑘superscript𝐺𝑅𝜂𝜌subscript𝐼𝑑1\bm{f}_{k}\leftarrow-(G+R+(\eta+\rho)I_{d})^{-1}bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← - ( italic_G + italic_R + ( italic_η + italic_ρ ) italic_I start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT (g+skη𝒇k1ρ𝒚k1𝒛k1)𝑔subscript𝑠𝑘𝜂subscript𝒇𝑘1𝜌subscript𝒚𝑘1subscript𝒛𝑘1\left(g+s_{k}-\eta\bm{f}_{k-1}-\rho\bm{y}_{k-1}-\bm{z}_{k-1}\right)( italic_g + italic_s start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - italic_η bold_italic_f start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_ρ bold_italic_y start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ) ; 𝒚k𝒫𝒦μId(𝒇k𝒛k1ρ)subscript𝒚𝑘subscriptsuperscript𝒫Idsubscript𝒦𝜇subscript𝒇𝑘subscript𝒛𝑘1𝜌\bm{y}_{k}\leftarrow\mathcal{P}^{\text{Id}}_{\mathcal{K}_{\mu}}\left(\bm{f}_{k% }-\frac{\bm{z}_{k-1}}{\rho}\right)bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← caligraphic_P start_POSTSUPERSCRIPT Id end_POSTSUPERSCRIPT start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - divide start_ARG bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_ρ end_ARG ); 𝒛k𝒛k1ρ(𝒇k𝒚k)subscript𝒛𝑘subscript𝒛𝑘1𝜌subscript𝒇𝑘subscript𝒚𝑘\bm{z}_{k}\leftarrow\bm{z}_{k-1}-\rho\left(\bm{f}_{k}-\bm{y}_{k}\right)bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← bold_italic_z start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT - italic_ρ ( bold_italic_f start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ); /* Primal/dual criteria evaluation */
4       compute the primal/dual convergence criteria given by (40), (41) and the stop** criteria (43); if converged then
5             break;
6       end if
      /* Update ρ𝜌\rhoitalic_ρ */
7       Update ρ𝜌\rhoitalic_ρ according to the spectral strategy described in Sec. III-F.;
8 end for
𝝀𝒚k𝝀subscript𝒚𝑘\bm{\lambda}\leftarrow\bm{y}_{k}bold_italic_λ ← bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and 𝝈𝒛kΓ(𝒛k)𝝈subscript𝒛𝑘Γsubscript𝒛𝑘\bm{\sigma}\leftarrow\bm{z}_{k}-\Gamma(\bm{z}_{k})bold_italic_σ ← bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - roman_Γ ( bold_italic_z start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT );
Algorithm 1 Pseudocode of the ADMM algorithm for NCP for rigid and compliant contacts.

IV Inverse Dynamics

We now consider the inverse dynamics problem, corresponding to the search of the torque 𝝉𝝉\bm{\tau}bold_italic_τ and the contact impulses 𝝀𝝀\bm{\lambda}bold_italic_λ that induce a given joint velocity 𝒗refsubscript𝒗ref\bm{v}_{\text{ref}}bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT. Starting from the NCP (27) formulation and enforcing the contact point velocities to be equal to Jc𝒗refsubscript𝐽𝑐subscript𝒗refJ_{c}\bm{v}_{\text{ref}}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT yields the inverse dynamics problem,

𝒦μsubscript𝒦𝜇\displaystyle\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT 𝝀𝝈+Γ(𝝈)𝒦μcontainsabsent𝝀perpendicular-to𝝈Γ𝝈superscriptsubscript𝒦𝜇\displaystyle\ni\bm{\lambda}\perp\bm{\sigma}+\Gamma(\bm{\sigma})\in\mathcal{K}% _{\mu}^{*}∋ bold_italic_λ ⟂ bold_italic_σ + roman_Γ ( bold_italic_σ ) ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT (47)
𝝈𝝈\displaystyle\bm{\sigma}bold_italic_σ =R𝝀+Jc𝒗ref+γ.absent𝑅𝝀subscript𝐽𝑐subscript𝒗ref𝛾\displaystyle=R\bm{\lambda}+J_{c}\bm{v}_{\text{ref}}+\gamma.= italic_R bold_italic_λ + italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT + italic_γ .

We recall that, from KKT conditions, a solution of (47) should minimize

minλ𝒦μ12𝝀+R1(Jc𝒗ref+γ+s)R2subscript𝜆subscript𝒦𝜇12superscriptsubscriptnorm𝝀superscript𝑅1subscript𝐽𝑐subscript𝒗ref𝛾𝑠𝑅2\displaystyle\min_{\lambda\in\mathcal{K}_{\mu}}\frac{1}{2}\|\bm{\lambda}+R^{-1% }(J_{c}\bm{v}_{\text{ref}}+\gamma+s)\|_{R}^{2}roman_min start_POSTSUBSCRIPT italic_λ ∈ caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG ∥ bold_italic_λ + italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT + italic_γ + italic_s ) ∥ start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT (48)

where s=Γ(𝝈)𝑠Γ𝝈s=\Gamma(\bm{\sigma})italic_s = roman_Γ ( bold_italic_σ ). This corresponds to the projection on 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT under the metric induced by R𝑅Ritalic_R, so we note 𝒫𝒦μR(R1(Jc𝒗ref+γ+s))superscriptsubscript𝒫subscript𝒦𝜇𝑅superscript𝑅1subscript𝐽𝑐subscript𝒗ref𝛾𝑠\mathcal{P}_{\mathcal{K}_{\mu}}^{R}(-R^{-1}(J_{c}\bm{v}_{\text{ref}}+\gamma+s))caligraphic_P start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT ( - italic_R start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT + italic_γ + italic_s ) ) the minimizer of (48). We observe the formulation of (48) becomes ill-defined for the purely rigid case R=0𝑅0R=0italic_R = 0. Indeed, as described previously (Sec. II), the rigidity often makes the problem of contact impulses under-determined and thus non-invertible. As was done in the case of forward dynamics (Sec. III), we aim to preserve the rigid contact hypothesis by leveraging proximal optimization. For the case of inverse dynamics, iterating the proximal operator associated to (48) (Alg. 2, line 2) allows to find a 𝝀𝝀\bm{\lambda}bold_italic_λ verifying (47) even in the rigid case.

At this stage, it is worth noting that (47) has the same structure as (27) and is also an NCP. Therefore, one could have used the algorithm introduced in Sec. III (Alg. 1) to solve it. However, one notable difference between (27) and (47) is the absence of the Delassus matrix in the latter, which has been replaced by the compliance matrix R𝑅Ritalic_R. Most often, the compliance matrix has a diagonal structure of the form R=Diag(RT(1),RT(1),RN(1),,RT(nc),RT(nc),RN(nc))𝑅Diagsubscriptsuperscript𝑅1𝑇subscriptsuperscript𝑅1𝑇subscriptsuperscript𝑅1𝑁subscriptsuperscript𝑅subscript𝑛𝑐𝑇subscriptsuperscript𝑅subscript𝑛𝑐𝑇subscriptsuperscript𝑅subscript𝑛𝑐𝑁R=\text{Diag}(R^{(1)}_{T},R^{(1)}_{T},R^{(1)}_{N},\dots,R^{(n_{c})}_{T},R^{(n_% {c})}_{T},R^{(n_{c})}_{N})italic_R = Diag ( italic_R start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT , italic_R start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT , italic_R start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT , … , italic_R start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT , italic_R start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT , italic_R start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) which can be exploited to design a more efficient algorithm. Indeed, in the case of a diagonal matrix D3nc×3nc𝐷superscript3subscript𝑛𝑐3subscript𝑛𝑐D\in\mathbb{R}^{3n_{c}\times 3n_{c}}italic_D ∈ blackboard_R start_POSTSUPERSCRIPT 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT × 3 italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, the operator 𝒫𝒦μDsuperscriptsubscript𝒫subscript𝒦𝜇𝐷\mathcal{P}_{\mathcal{K}_{\mu}}^{D}caligraphic_P start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_D end_POSTSUPERSCRIPT can be computed analytically via the equality 𝒫𝒦μD(x)=D12𝒫𝒦μ~Id(D12x)superscriptsubscript𝒫subscript𝒦𝜇𝐷𝑥superscript𝐷12superscriptsubscript𝒫subscript𝒦~𝜇Idsuperscript𝐷12𝑥\mathcal{P}_{\mathcal{K}_{\mu}}^{D}(x)=D^{-\frac{1}{2}}\mathcal{P}_{\mathcal{K% }_{\tilde{\mu}}}^{\text{Id}}(D^{\frac{1}{2}}x)caligraphic_P start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_D end_POSTSUPERSCRIPT ( italic_x ) = italic_D start_POSTSUPERSCRIPT - divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT caligraphic_P start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT over~ start_ARG italic_μ end_ARG end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT Id end_POSTSUPERSCRIPT ( italic_D start_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 end_ARG end_POSTSUPERSCRIPT italic_x ) with μ~=(DT(1)DN(1)μ(1)DT(nc)DN(nc)μ(nc))~𝜇matrixsubscriptsuperscript𝐷1𝑇subscriptsuperscript𝐷1𝑁superscript𝜇1subscriptsuperscript𝐷subscript𝑛𝑐𝑇subscriptsuperscript𝐷subscript𝑛𝑐𝑁superscript𝜇subscript𝑛𝑐\tilde{\mu}=\begin{pmatrix}\sqrt{\frac{D^{(1)}_{T}}{D^{(1)}_{N}}}\mu^{(1)}&% \dots&\sqrt{\frac{D^{(n_{c})}_{T}}{D^{(n_{c})}_{N}}}\mu^{(n_{c})}\end{pmatrix}over~ start_ARG italic_μ end_ARG = ( start_ARG start_ROW start_CELL square-root start_ARG divide start_ARG italic_D start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT end_ARG start_ARG italic_D start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_ARG end_ARG italic_μ start_POSTSUPERSCRIPT ( 1 ) end_POSTSUPERSCRIPT end_CELL start_CELL … end_CELL start_CELL square-root start_ARG divide start_ARG italic_D start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT end_ARG start_ARG italic_D start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_ARG end_ARG italic_μ start_POSTSUPERSCRIPT ( italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ) end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ) which makes the iterations of Alg. 2 computationally cheap.

Once contact forces are determined, the torque 𝝉𝝉\bm{\tau}bold_italic_τ can be retrieved with a call to the Recursive Newton-Euler Algorithm (RNEA) (Alg. 2, line 2). It is worth noticing that the contribution of the contact torque 𝝉c=Jc𝝀subscript𝝉𝑐superscriptsubscript𝐽𝑐top𝝀\bm{\tau}_{c}=J_{c}^{\top}\bm{\lambda}bold_italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_λ can be accounted for through the backward sweep of the RNEA algorithm, thus efficiently exploiting the sparsity induced by the kinematic tree, in the spirit of rigid-body dynamics algorithms [21].

Input: Joint velocity 𝒗refsubscript𝒗ref\bm{v}_{\text{ref}}bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT, compliance R𝑅Ritalic_R, contact Jacobian Jcsubscript𝐽𝑐J_{c}italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, friction cones 𝒦μsubscript𝒦𝜇\mathcal{K}_{\mu}caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT
Output: Torque 𝝉𝝉\bm{\tau}bold_italic_τ, contact impulses 𝝀𝝀\bm{\lambda}bold_italic_λ
1 for k=1𝑘1k=1italic_k = 1 to nitersubscript𝑛itern_{\text{iter}}italic_n start_POSTSUBSCRIPT iter end_POSTSUBSCRIPT do
2       sΓ(R𝝀+Jc𝒗ref+γ)𝑠Γ𝑅𝝀subscript𝐽𝑐subscript𝒗ref𝛾s\leftarrow\Gamma(R\bm{\lambda}+J_{c}\bm{v}_{\text{ref}}+\gamma)italic_s ← roman_Γ ( italic_R bold_italic_λ + italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT + italic_γ ) ;
3       𝝀𝒫𝒦μR+ρId((R+ρId)1(Jc𝒗ref+γ+sρ𝝀))𝝀superscriptsubscript𝒫subscript𝒦𝜇𝑅𝜌Idsuperscript𝑅𝜌Id1subscript𝐽𝑐subscript𝒗ref𝛾𝑠𝜌𝝀\bm{\lambda}\leftarrow\mathcal{P}_{\mathcal{K}_{\mu}}^{R+\rho\text{Id}}(-\big{% (}R+\rho\text{Id}\big{)}^{-1}(J_{c}\bm{v}_{\text{ref}}+\gamma+s-\rho\bm{% \lambda}))bold_italic_λ ← caligraphic_P start_POSTSUBSCRIPT caligraphic_K start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R + italic_ρ Id end_POSTSUPERSCRIPT ( - ( italic_R + italic_ρ Id ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT + italic_γ + italic_s - italic_ρ bold_italic_λ ) );
4      
5 end for
6𝝉RNEA(𝒒,𝒗,𝒗ref)Jc𝝀𝝉RNEA𝒒𝒗subscript𝒗refsuperscriptsubscript𝐽𝑐top𝝀\bm{\tau}\leftarrow\text{RNEA}(\bm{q},\bm{v},\bm{v}_{\text{ref}})-J_{c}^{\top}% \bm{\lambda}bold_italic_τ ← RNEA ( bold_italic_q , bold_italic_v , bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT ) - italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT bold_italic_λ ;
Algorithm 2 Pseudo-code of the proximal algorithm for Inverse Dynamics.

V Evaluations and Benchmarks

Refer to caption
Refer to caption
Refer to caption
Figure 3: Robotics systems. We evaluate our approach on common robotics scenarios occurring during locomotion, e.g., Talos falling on the ground (left), Solo walking on steep terrain (center), and manipulation, e.g., Allegro hand interacting with cubes (right).

In this section, we evaluate our approach to challenging robotics scenarios and benchmarks from the computational mechanics community. In particular, we measure performances in terms of the number of iterations required to converge and computational timings. We also validate our inverse dynamics algorithm by performing a control task involving contact interactions with a UR5 arm. Additional results are available in the companion video (https://youtu.be/i_qg9cTx0NY?si=NGtx1tiYrIGtHXSK).

V-A Simulation benchmarks: standard robotics systems

Our solver has been implemented in C++, leveraging the Eigen library [22] for efficient linear algebra, the Pinocchio framework [8] for efficient rigid body algorithms, which comes with the HPP-FCL library [43] for fast collision detection. As baselines, we have also implemented the over-relaxed PGS algorithm [30] and used the state-of-the-art SCS solver [42] to solve the CCP relaxation. Our experiments are done on a MacBook Pro with a M1 Max CPU. For all the benchmarks, we use a time step ΔtΔ𝑡\Delta troman_Δ italic_t of 1111ms and set the proximal value η𝜂\etaitalic_η to 106superscript10610^{-6}10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT.

Convergence analysis. We evaluate the convergence speed of our algorithm by monitoring the evolution of the convergence criteria rkdualsubscriptnormsuperscriptsubscriptr𝑘dual\|\text{r}_{k}^{\text{dual}}\|_{\infty}∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT dual end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT and rkcompsubscriptnormsuperscriptsubscriptr𝑘comp\|\text{r}_{k}^{\text{comp}}\|_{\infty}∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT comp end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT across iterations (rkprimsubscriptnormsuperscriptsubscriptr𝑘prim\|\text{r}_{k}^{\text{prim}}\|_{\infty}∥ r start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT prim end_POSTSUPERSCRIPT ∥ start_POSTSUBSCRIPT ∞ end_POSTSUBSCRIPT being null due to projection steps). The study is done on two different contact problems. The first one is a stack of rigid boxes of different masses (between 1111 and 104superscript10410^{4}10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPTkg) hit by a ball of 103superscript10310^{3}10 start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPTkg (Fig. 1). Stacking objects of high mass ratios induces bad conditioning of the Delassus matrix G𝐺Gitalic_G (these ratios are of 10101010 for the Talos scene and 104superscript10410^{4}10 start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT for the wall of cubes). Therefore, this scene allows us to evaluate the numerical stability of the solvers. For the second one, we study a problem obtained with the humanoid robot Talos [49] falling on the ground, whose 36-dof kinematic chain induces a complex inertial coupling between all the contact points through the Delassus matrix. Additionally, we use these two scenarios to perform an ablation study on the benefits of using the spectral update rule for the ADMM parameter adaption.

As shown by Fig. 4, the per-contact strategy of PGS loops; this undesired behavior is explained by the fact that these problems involve high mass ratios and strongly coupled contact forces. On the opposite, our ADMM-based algorithm exploits the Cholesky decomposition of Gρ,ηRsuperscriptsubscript𝐺𝜌𝜂𝑅G_{\rho,\eta}^{R}italic_G start_POSTSUBSCRIPT italic_ρ , italic_η end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_R end_POSTSUPERSCRIPT which allows it to be insensitive to the conditioning and to capture the coupling between individual contact problems. Figure 4 also demonstrates how leveraging the spectral information to update adapt ρ𝜌\rhoitalic_ρ leads to an improved convergence rate w.r.t. the linear update rule. Therefore, our approach can efficiently solve the two problems at a high precision threshold ϵabs=109subscriptitalic-ϵabssuperscript109\epsilon_{\text{abs}}=10^{-9}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT = 10 start_POSTSUPERSCRIPT - 9 end_POSTSUPERSCRIPT.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 4: Convergence analysis. Convergence of the dual feasibility (left) and complementarity (right) is monitored across iterations on the contact problems obtained from simulating a stack of cubes (top row) and the Talos robot (bottom row).

Timings. When evaluating timings, we cover a range of contact types that aim to be wide enough to represent robotics applications. To do so, we consider four distinct scenarios (Fig. 1,3). For the first two, we reuse the setups of the convergence analysis: a stack of boxes of different masses (around 60 contact points) and a humanoid falling on the ground (around 10 contact points). As a third experiment, we simulate an Allegro hand holding a stack of cubes, a classical setup in manipulation applications. Finally, we evaluate our approach on a more dynamic task: a quadruped moving on a steep terrain (Fig. 3). The walking motion is generated via an MPC controller, which produces reactive behavior and results in a wide range of contact types, notably many breaking and sliding contacts.

For each benchmark, we average on a trajectory the computational time necessary to reach a fixed precision (ϵabs=104subscriptitalic-ϵabssuperscript104\epsilon_{\text{abs}}=10^{-4}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT = 10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT) or to hit the maximum number of iterations (niter=103subscript𝑛itersuperscript103n_{\text{iter}}=10^{3}italic_n start_POSTSUBSCRIPT iter end_POSTSUBSCRIPT = 10 start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT). Figure 5 summarizes our evaluation of timings on robotics systems. We observe that our algorithm performs consistently well in different scenarios compared to the PGS and SCS algorithms, even when they operate on the relaxed CCP problem. In particular, we note a significant performance gap between ADMM and PGS when the complexity of the structure of the inertia grows, as is the case for the hand, the humanoid, and the stack of cubes. As shown during the convergence analysis, the complex coupling induced by G𝐺Gitalic_G can slow down per-contact approaches and even hinder convergence. It is also worth noting that our algorithm does not require any hyperparameter tuning across the various considered scenarios. Indeed, ρ𝜌\rhoitalic_ρ is automatically scaled via the spectral rule, which induces a reduced computational overhead when combined with rigid body algorithms for the Cholesky updates.

Refer to caption
Figure 5: Timings on robotics systems. Thanks to its combination of automatic spectral adaptation (Sec.III-F) and sparse Cholesky update (Sec. III-E), our algorithm (in red) yields a stable behavior across the various robot simulations.

V-B Comparison against state-of-the-art physics engines

We implemented our algorithm in a C++ simulation loop, building on top of Pinocchio [8] for rigid body dynamics and HPP-FCL [43] for collision detection. We evaluate our approach against the state-of-the-art simulators MuJoCo, Drake, and Bullet on three scenarios of increasing complexity in terms of degrees of freedom: a UR5 robotic arm, a Cassie robot, and the MuJoCo humanoid. For each benchmark, we simulate the robot for 2 seconds without any actuation or dam** in the joints. For all simulators, joint limits are not taken into account. The MuJoCo Humanoid is made of capsules for collisions, while the UR5 and Cassie robots use convex meshes (which can reach up to 1000 vertices per body). All possible pairs of bodies are considered for collision detection, except the successive pairs in the kinematic chain. Performance is measured by the number of time steps per second on a single thread of an Apple M1 Max CPU. The results are reported in Fig. 6. The ADMM solver embedded in a simulation loop depicts competitive results compared to alternative solutions in the robotics literature.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 6: Comparison against SOTA physics simulators. Performances are reported for a UR5 arm (top), and a Cassie robot (middle), the MuJoCo simple humanoid (bottom).

It is worth noticing that this is a preliminary benchmark. A more detailed one (involving additional metrics, more physical systems, and comparisons to real data) would benefit the robotics community but would require a dedicated study. We leave this benchmarking study as future work.

V-C Complex scenarios of computational mechanics

In this section, we leverage the collection of complex contact problems provided in the FCLIB benchmark collections [1]. These problems correspond to a set of various mechanical problems identified as challenging by the computational mechanics community. We focus on three main categories of problems: BoxesStack, Chain, and Capsules. The size and properties of this dataset are reported in Tab. II.

Timings. We benchmark our solver against PGS on the three aforementioned scenarios. We request a precision of ϵabs=106subscriptitalic-ϵabssuperscript106\epsilon_{\text{abs}}=10^{-6}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT = 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT on both solvers. Due to the size of the problems, we exploit the sparse Cholesky solver coming with Eigen to account for the sparsity of the contact problems.

We use performance-profile distributions [16], a metric to fairly compare optimization solvers in the optimization community. More precisely, for a given solver, it measures the ratio of problems solved which are τ𝜏\tauitalic_τ times slower than the best solver for a given problem. We refer to [16] for further details. The performance-profile distributions are reported in Fig. 7 for the three categories. These plots show that our solver significantly outperforms PGS on the complex contact problems collected in the FCLIB dataset. On problems from BoxesStack and Capsules, we observe that PGS is not able to converge to the desired accuracy and reach the maximum number of iterations nitersubscript𝑛itern_{\text{iter}}italic_n start_POSTSUBSCRIPT iter end_POSTSUBSCRIPT set to 20.00020.00020.00020.000.

Category # Problems ncsubscript𝑛𝑐n_{c}italic_n start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT Dofs friction μ𝜇\muitalic_μ
BoxesStack 255 [0:200] [6:300] 0.7
Chain 242 [8:28] [48:60] 0.3
Capsules 249 [0:200] [6:300] 0.7
TABLE II: Problems of the FCLIB dataset [1].
Refer to caption
Refer to caption
Refer to caption
Figure 7: Performance profiles curves on a subset of the FCLIB dataset.

Empirical evaluation of the spectral and linear ADMM updates. In section III-F, we have motivated the introduction of the spectral update strategy as a way to reduce the number of Cholesky factorization updates involved in the ADMM algorithm 1, which is the most computationally demanding part of the ADMM solver. We evaluate this assertion by evaluating the mean number and the standard deviation of Cholesky updates over the BoxesStack, Chain, and Capsules problem categories. We notably vary the linear parameter τ𝜏\tauitalic_τ and spectral parameter p𝑝pitalic_p.

The results are reported in Tab. III. Depending on the problem category, the linear update strategy tends to produce higher standard deviations and mean numbers of Cholesky updates than the spectral rule. The spectral rule provides the most consistent statistics with lower updates and is less sensitive to the class of problems to solve, with an average of a dozen Cholesky updates. We also report in Tab. IV the mean timings to solve a given problem. These timings are consistent with the mean number of Cholesky updates reported in Tab. III, in the sense that best timings are obtained for the spectral update rule depicting the lowest number of Cholesky updates.

TABLE III: Comparison of the number of Cholesky updates between Linear and Spectral update strategies
Linear Spectral
Category τ=2𝜏2\tau=2italic_τ = 2 τ=4𝜏4\tau=4italic_τ = 4 τ=8𝜏8\tau=8italic_τ = 8 τ=16𝜏16\tau=16italic_τ = 16 p = 0.01 p = 0.05 p = 0.08
BoxesStack 9.20±2.48plus-or-minus9.202.489.20\pm 2.489.20 ± 2.48 6.12±1.75plus-or-minus6.121.756.12\pm 1.756.12 ± 1.75 5.85±2.47plus-or-minus5.852.475.85\pm 2.475.85 ± 2.47 6.12±2.40plus-or-minus6.122.406.12\pm 2.406.12 ± 2.40 11.26±4.99plus-or-minus11.264.9911.26\pm 4.9911.26 ± 4.99 5.02±2.40plus-or-minus5.022.405.02\pm 2.405.02 ± 2.40 3.97±1.76plus-or-minus3.971.76\bm{3.97\pm 1.76}bold_3.97 bold_± bold_1.76
Chain 5.74±1.53plus-or-minus5.741.535.74\pm 1.535.74 ± 1.53 8.76±69.93plus-or-minus8.7669.938.76\pm 69.938.76 ± 69.93 33.7±212.77plus-or-minus33.7212.7733.7\pm 212.7733.7 ± 212.77 25.48±154.88plus-or-minus25.48154.8825.48\pm 154.8825.48 ± 154.88 7.87±6.55plus-or-minus7.876.557.87\pm 6.557.87 ± 6.55 2.76±1.65plus-or-minus2.761.65\bm{2.76\pm 1.65}bold_2.76 bold_± bold_1.65 3.61±20.48plus-or-minus3.6120.483.61\pm 20.483.61 ± 20.48
Capsules 4.58±1.71plus-or-minus4.581.714.58\pm 1.714.58 ± 1.71 3.09±2.01plus-or-minus3.092.013.09\pm 2.013.09 ± 2.01 3.60±2.94plus-or-minus3.602.943.60\pm 2.943.60 ± 2.94 4.6±2.06plus-or-minus4.62.064.6\pm 2.064.6 ± 2.06 5.57±4.85plus-or-minus5.574.855.57\pm 4.855.57 ± 4.85 2.30±1.50plus-or-minus2.301.502.30\pm 1.502.30 ± 1.50 2.12±1.01plus-or-minus2.121.01\bm{2.12\pm 1.01}bold_2.12 bold_± bold_1.01
TABLE IV: Comparison of the mean timings, in ms, between Linear and Spectral update strategies
Linear Spectral
Category τ=2𝜏2\tau=2italic_τ = 2 τ=4𝜏4\tau=4italic_τ = 4 τ=8𝜏8\tau=8italic_τ = 8 τ=16𝜏16\tau=16italic_τ = 16 p = 0.01 p = 0.05 p = 0.08
BoxesStack 2.16±1.80plus-or-minus2.161.802.16\pm 1.802.16 ± 1.80 1.73±1.55plus-or-minus1.731.551.73\pm 1.551.73 ± 1.55 1.76±1.80plus-or-minus1.761.801.76\pm 1.801.76 ± 1.80 1.95±1.87plus-or-minus1.951.871.95\pm 1.871.95 ± 1.87 2.56±2.03plus-or-minus2.562.032.56\pm 2.032.56 ± 2.03 1.55±1.60plus-or-minus1.551.601.55\pm 1.601.55 ± 1.60 1.51±1.76plus-or-minus1.511.76\bm{1.51\pm 1.76}bold_1.51 bold_± bold_1.76
Chain 0.527±0.417plus-or-minus0.5270.4170.527\pm 0.4170.527 ± 0.417 0.637±0.373plus-or-minus0.6370.3730.637\pm 0.3730.637 ± 0.373 1.61±7.84plus-or-minus1.617.841.61\pm 7.841.61 ± 7.84 1.34±6.82plus-or-minus1.346.821.34\pm 6.821.34 ± 6.82 0.445±0.53plus-or-minus0.4450.530.445\pm 0.530.445 ± 0.53 0.321±0.304plus-or-minus0.3210.304\bm{0.321\pm 0.304}bold_0.321 bold_± bold_0.304 0.494±0.301plus-or-minus0.4940.3010.494\pm 0.3010.494 ± 0.301
Capsules 2.86±1.90plus-or-minus2.861.902.86\pm 1.902.86 ± 1.90 2.50±1.92plus-or-minus2.501.922.50\pm 1.922.50 ± 1.92 1.95±1.35plus-or-minus1.951.351.95\pm 1.351.95 ± 1.35 1.69±1.20plus-or-minus1.691.201.69\pm 1.201.69 ± 1.20 2.17±1.38plus-or-minus2.171.382.17\pm 1.382.17 ± 1.38 1.72±1.09plus-or-minus1.721.091.72\pm 1.091.72 ± 1.09 1.63±1.10plus-or-minus1.631.10\bm{1.63\pm 1.10}bold_1.63 bold_± bold_1.10

V-D Inverse dynamics

We evaluate our approach for inverse dynamics on the control problem consisting of finding the torque to slide the end effector of a robotic arm (UR5) on a wall where the contact is assumed to be purely rigid R=0𝑅0R=0italic_R = 0 (Fig. 8). The reference joint velocity 𝒗refsubscript𝒗ref\bm{v}_{\text{ref}}bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT is such that the contact point velocity is 𝒄ref=Jc𝒗refsubscript𝒄refsubscript𝐽𝑐subscript𝒗ref\bm{c}_{\text{ref}}=J_{c}\bm{v}_{\text{ref}}bold_italic_c start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT = italic_J start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT is tangent to the wall, i.e., 𝒄refN=0subscriptsubscript𝒄ref𝑁0{\bm{c}_{\text{ref}}}_{N}=0bold_italic_c start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT = 0.

When setting ρ𝜌\rhoitalic_ρ to 108superscript10810^{-8}10 start_POSTSUPERSCRIPT - 8 end_POSTSUPERSCRIPT, the approach proposed in Sec. IV requires only one iteration to find a solution with a precision of ϵabs=106subscriptitalic-ϵabssuperscript106\epsilon_{\text{abs}}=10^{-6}italic_ϵ start_POSTSUBSCRIPT abs end_POSTSUBSCRIPT = 10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT. One should note that the proximal regularization is necessary due to the rigid contact hypothesis. On Fig. 8, we evaluate the benefits of incorporating the iterative De Saxcé correction (Alg. 2, line 2) and work directly with the NCP (27) model. When setting this corrective term to 00 which exactly corresponds to the CCP contact model, we observe that the contact torque 𝝉csubscript𝝉𝑐\bm{\tau}_{c}bold_italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT and thus the actuation torque 𝝉𝝉\bm{\tau}bold_italic_τ diverge. Indeed, for a sliding motion, 𝒄ref𝒦μsubscript𝒄refsubscriptsuperscript𝒦𝜇\bm{c}_{\text{ref}}\notin\mathcal{K}^{*}_{\mu}bold_italic_c start_POSTSUBSCRIPT ref end_POSTSUBSCRIPT ∉ caligraphic_K start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_μ end_POSTSUBSCRIPT which causes the desired motion to be infeasible in the sense of CCP.

Refer to caption
Refer to caption
Refer to caption
Refer to caption
Figure 8: Inverse dynamics is used to slide the end-effector of a UR5 on a wall (top left). The desired tangential contact velocity is infeasible with the CCP model which causes divergence of both the joint (𝝉𝝉\bm{\tau}bold_italic_τ) and contact (𝝉csubscript𝝉𝑐\bm{\tau}_{c}bold_italic_τ start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT) torques, while our approach robustly converges for the NCP formulation (top right). The normal (bottom left) and tangential (bottom right) contact forces computed by the inverse dynamics algorithm are consistent with the forward dynamics solution.

VI Discussion

The closest to our work are the approaches of MuJoCo [53] and Drake [10], which tend to solve linear systems coupling all the contact points together, by inverting a matrix containing the Delassus contact matrix. Unlike per-contact approaches [48, 13], we exploit the Cholesky decomposition of the Delassus matrix to jointly update contact forces, which improves robustness. As explained in Sec. III, such Cholesky decomposition can be efficiently computed by leveraging the sparsity pattern induced by the kinematic trees of robots composing the scene. Moreover, we alleviate the computational footprint by reducing the number of these Cholesky re-factorizations via a spectral adaptation of the ADMM parameter. In terms of physical realism, our improvement is twofold: we do not relax the Signorini condition, i.e., our simulator does not exhibit forces at distance, and we make it possible to simulate purely rigid systems (R=0𝑅0R=0italic_R = 0). Optionally, by setting De Saxcé corrective term to zero, we robustly solve the convex formulation of these simulators and retrieve convergence guarantees. For future work, further experiments should be conducted to evaluate to what extent avoiding simulation artifacts related to relaxations [24, 32] tightens the reality gap of simulators [19, 35] and how a reduced gap impacts downstream tasks.

Our approach also influences the formulation of the inverse dynamics. As shown by Todorov [53], in the case of MuJoCo and Drake, the convex relaxation and the compliance make the dynamics invertible. Because we also encompass rigid contacts, we cannot assume the map** between joint velocities and contact forces to be uniquely defined (e.g., hyperstatic scenarios). Using a proximal algorithm allows handling ill-defined cases (i.e., nonunique solution) and converges toward one possible solution of the inverse problem on forces. Moreover, via the iterative DeSaxcé correction, we preserve the NCP formulation. This enables us to invert the dynamics of motions that were previously infeasible in the sense of the CCP, for instance for sliding motions.

In a parallel line of research, a recent growing effort has been made to port classical simulators such as MuJoCo and PhysX to hardware accelerators e.g. GPUs and TPUs, which resulted in MuJoCo XLA and Isaac Gym [37]. These architectures provide high parallelization capabilities, but they impose hard constraints on the design of contact models and algorithms. The approach introduced in this paper focuses on exploiting the versatility and efficiency of modern CPUs to achieve physically accurate simulation at competitive rates. However, it seems promising for future work to adapt it in order to leverage hardware accelerators.

VII Conclusion

In this paper, we have introduced an ADMM-based algorithm to solve the NCP associated with the simulation of dynamics involving rigid frictional contacts. We have evaluated our approach to challenging benchmarks from both the robotics and computational mechanics communities. Our rich set of experiments demonstrates that we can robustly simulate a wide range of scenarios while kee** a limited computational burden and avoiding physical relaxation.

The current approach could still be improved by gaining timings on the collision detection routine corresponding to the bottleneck. Similarly, rigid-body dynamics algorithms for constrained dynamical systems still represent an active area of research whose improvements would directly affect contact solvers and, thus, physics simulation in robotics. Although we did not observe cases causing our algorithm to diverge, working towards theoretical convergence guarantees could be an interesting research direction. Moreover, our algorithm for inverse dynamics could be generalized to account for the underactuation and the unfeasible reference accelerations it can induce.

Finally, we believe these promising results are a further step towards more computationally efficient and physically consistent simulators which, due to their centrality, could positively impact the overall robotics community and related fields where efficient and reliable simulation matters.

Acknowledgements

This work was supported in part by the French government under the management of Agence Nationale de la Recherche (ANR) as part of the ”Investissements d’avenir” program, references ANR-19-P3IA-0001 (PRAIRIE 3IA Institute) and ANR-22-CE33-0007 (INEXACT), the European project AGIMUS (Grant 101070165), the Louis Vuitton ENS Chair on Artificial Intelligence and the Casino ENS Chair on Algorithmic and Machine Learning. Any opinions, findings, conclusions, or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the funding agencies.

References

  • Acary et al. [2014] Vincent Acary, Maurice Brémond, Tomasz Koziara, and Franck Pérignon. FCLIB: a collection of discrete 3D Frictional Contact problems. Technical Report RT-0444, INRIA, February 2014. URL https://inria.hal.science/hal-00945820.
  • Acary et al. [2017] Vincent Acary, Maurice Brémond, and Olivier Huber. On solving contact problems with Coulomb friction: formulations and numerical comparisons. Research Report RR-9118, INRIA, November 2017. URL https://hal.inria.fr/hal-01630836.
  • Acosta et al. [2022] Brian Acosta, William Yang, and Michael Posa. Validating robotics simulators on real-world impacts. IEEE Robotics and Automation Letters, 7(3):6471–6478, 2022.
  • Bambade et al. [2022] Antoine Bambade, Sarah El-Kazdadi, Adrien Taylor, and Justin Carpentier. Prox-qp: Yet another quadratic programming solver for robotics and beyond. In RSS 2022-Robotics: Science and Systems, 2022.
  • Bertsekas [2014] Dimitri P Bertsekas. Constrained optimization and Lagrange multiplier methods. Academic press, 2014.
  • Boyd and Vandenberghe [2004] Stephen P Boyd and Lieven Vandenberghe. Convex optimization. Cambridge university press, 2004.
  • Bruyninckx and Khatib [2000] Herman Bruyninckx and Oussama Khatib. Gauss’ principle and the dynamics of redundant and constrained manipulators. In Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No. 00CH37065), volume 3, pages 2563–2568. IEEE, 2000.
  • Carpentier et al. [2015–2021] Justin Carpentier, Florian Valenza, Nicolas Mansard, et al. Pinocchio: fast forward and inverse dynamics for poly-articulated systems. https://stack-of-tasks.github.io/pinocchio, 2015–2021.
  • Carpentier et al. [2021] Justin Carpentier, Rohan Budhiraja, and Nicolas Mansard. Proximal and sparse resolution of constrained dynamic equations. In Proc. Robot., Sci. Syst., 2021.
  • Castro et al. [2022] Alejandro M Castro, Frank N Permenter, and Xuchen Han. An unconstrained convex formulation of compliant contact. IEEE Transactions on Robotics, 39(2):1301–1320, 2022.
  • Chen et al. [2022] Tao Chen, Jie Xu, and Pulkit Agrawal. A system for general in-hand object re-orientation. In Conference on Robot Learning, pages 297–307. PMLR, 2022.
  • Cottle et al. [2009] Richard W. Cottle, Jong-Shi Pang, and Richard E. Stone. The Linear Complementarity Problem. Society for Industrial and Applied Mathematics, 2009. doi: 10.1137/1.9780898719000. URL https://epubs.siam.org/doi/abs/10.1137/1.9780898719000.
  • Coumans and Bai [2016–2021] Erwin Coumans and Yunfei Bai. Pybullet, a python module for physics simulation for games, robotics and machine learning. http://pybullet.org, 2016–2021.
  • de Saxcé and Feng [1998] Géry de Saxcé and Z.-Q. Feng. The bipotential method: A constructive approach to design the complete contact law with friction and improved numerical algorithms. Mathematical and Computer Modelling, 28(4-8):225–245, August 1998. doi: 10.1016/S0895-7177(98)00119-8. URL https://hal.archives-ouvertes.fr/hal-03883288.
  • Delassus [1917] Étienne Delassus. Mémoire sur la théorie des liaisons finies unilatérales. In Annales scientifiques de l’École normale supérieure, volume 34, pages 95–179, 1917.
  • Dolan and Moré [2002] Elizabeth D Dolan and Jorge J Moré. Benchmarking optimization software with performance profiles. Mathematical programming, 91:201–213, 2002.
  • Domahidi et al. [2013] Alexander Domahidi, Eric Chu, and Stephen Boyd. Ecos: An socp solver for embedded systems. In 2013 European control conference (ECC), pages 3071–3076. IEEE, 2013.
  • Ericson [2004] Christer Ericson. Real-time collision detection. Crc Press, 2004.
  • Fazeli et al. [2017] Nima Fazeli, Elliott Donlon, Evan Drumwright, and Alberto Rodriguez. Empirical evaluation of common contact models for planar impact. In 2017 IEEE international conference on robotics and automation (ICRA), pages 3418–3425. IEEE, 2017.
  • Featherstone [2010] Roy Featherstone. Exploiting sparsity in operational-space dynamics. The International Journal of Robotics Research, 29(10):1353–1368, 2010.
  • Featherstone [2014] Roy Featherstone. Rigid body dynamics algorithms. Springer, 2014.
  • Guennebaud et al. [2010] Gaël Guennebaud, Benoît Jacob, et al. Eigen v3. http://eigen.tuxfamily.org, 2010.
  • Handa et al. [2023] Ankur Handa, Arthur Allshire, Viktor Makoviychuk, Aleksei Petrenko, Ritvik Singh, **gzhou Liu, Denys Makoviichuk, Karl Van Wyk, Alexander Zhurkevich, Balakumar Sundaralingam, et al. Dextreme: Transfer of agile in-hand manipulation from simulation to reality. In 2023 IEEE International Conference on Robotics and Automation (ICRA), pages 5977–5984. IEEE, 2023.
  • Horak and Trinkle [2019] Peter C Horak and Jeff C Trinkle. On the similarities and differences among contact models in robot simulation. IEEE Robotics and Automation Letters, 4(2):493–499, 2019.
  • Howell et al. [2022] Taylor A Howell, Simon Le Cleac’h, J Zico Kolter, Mac Schwager, and Zachary Manchester. Dojo: A differentiable simulator for robotics. arXiv preprint arXiv:2203.00806, 9, 2022.
  • Hwangbo et al. [2018] Jemin Hwangbo, Joonho Lee, and Marco Hutter. Per-contact iteration method for solving contact dynamics. IEEE Robotics and Automation Letters, 3(2):895–902, 2018. URL www.raisim.com.
  • Hwangbo et al. [2019] Jemin Hwangbo, Joonho Lee, Alexey Dosovitskiy, Dario Bellicoso, Vassilios Tsounis, Vladlen Koltun, and Marco Hutter. Learning agile and dynamic motor skills for legged robots. Science Robotics, 4(26):eaau5872, 2019.
  • [28] Toyota Research Institute. Scoo** (sim vs reality side-by-side). https://youtu.be/5aVDWjWd0EU?si=R511Doxi7Xh-V07W.
  • Jenelten et al. [2024] Fabian Jenelten, Junzhe He, Farbod Farshidian, and Marco Hutter. DTC: Deep Tracking Control. Science Robotics, 9(86):eadh5401, 2024.
  • Jourdan et al. [1998] Franck Jourdan, Pierre Alart, and Michel Jean. A Gauss-Seidel like algorithm to solve frictional contact problems. Computer methods in applied mechanics and engineering, 155(1-2):31–47, 1998.
  • Koenemann et al. [2015] Jonas Koenemann, Andrea Del Prete, Yuval Tassa, Emanuel Todorov, Olivier Stasse, Maren Bennewitz, and Nicolas Mansard. Whole-body model-predictive control applied to the hrp-2 humanoid. In 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 3346–3351. IEEE, 2015.
  • [32] Quentin Le Lidec, Wilson Jallet, Louis Montaut, Ivan Laptev, Cordelia Schmid, and Justin Carpentier. Contact models in robotics: a comparative analysis.
  • Lee et al. [2018] Jeongseok Lee, Michael X. Grey, Sehoon Ha, Tobias Kunz, Sumit Jain, Yuting Ye, Siddhartha S. Srinivasa, Mike Stilman, and C. Karen Liu. DART: Dynamic animation and robotics toolkit. The Journal of Open Source Software, 3(22):500, Feb 2018. doi: 10.21105/joss.00500. URL https://doi.org/10.21105/joss.00500.
  • Lee et al. [2020] Joonho Lee, Jemin Hwangbo, Lorenz Wellhausen, Vladlen Koltun, and Marco Hutter. Learning quadrupedal locomotion over challenging terrain. Science robotics, 5(47):eabc5986, 2020.
  • Ma et al. [2019] Daolin Ma, Elliott Donlon, Siyuan Dong, and Alberto Rodriguez. Dense tactile force estimation using gelslim and inverse fem. In 2019 International Conference on Robotics and Automation (ICRA), pages 5418–5424. IEEE, 2019.
  • Macklin et al. [2019] Miles Macklin, Kier Storey, Michelle Lu, Pierre Terdiman, Nuttapong Chentanez, Stefan Jeschke, and Matthias Müller. Small steps in physics simulation. In Proceedings of the 18th Annual ACM SIGGRAPH/Eurographics Symposium on Computer Animation, SCA ’19, New York, NY, USA, 2019. Association for Computing Machinery. ISBN 9781450366779. doi: 10.1145/3309486.3340247. URL https://doi.org/10.1145/3309486.3340247.
  • Makoviychuk et al. [2021] Viktor Makoviychuk, Lukasz Wawrzyniak, Yunrong Guo, Michelle Lu, Kier Storey, Miles Macklin, David Hoeller, Nikita Rudin, Arthur Allshire, Ankur Handa, et al. Isaac gym: High performance gpu-based physics simulation for robot learning. arXiv preprint arXiv:2108.10470, 2021.
  • Miki et al. [2022] Takahiro Miki, Joonho Lee, Jemin Hwangbo, Lorenz Wellhausen, Vladlen Koltun, and Marco Hutter. Learning robust perceptive locomotion for quadrupedal robots in the wild. Science Robotics, 7(62):eabk2822, 2022.
  • Moreau [1962] Jean Jacques Moreau. Fonctions convexes duales et points proximaux dans un espace hilbertien. Comptes rendus hebdomadaires des séances de l’Académie des sciences, 255:2897–2899, 1962.
  • Moreau [1988] Jean Jacques Moreau. Unilateral Contact and Dry Friction in Finite Freedom Dynamics. In Moreau J.J. and Panagiotopoulos P.D., editors, Nonsmooth Mechanics and Applications, volume 302 of International Centre for Mechanical Sciences (Courses and Lectures), pages 1–82. Springer, 1988. doi: 10.1007/978-3-7091-2624-0“˙1. URL https://hal.archives-ouvertes.fr/hal-01713847.
  • Nishihara et al. [2015] Robert Nishihara, Laurent Lessard, Ben Recht, Andrew Packard, and Michael Jordan. A general analysis of the convergence of ADMM. In International conference on machine learning, pages 343–352. PMLR, 2015.
  • O’Donoghue [2021] Brendan O’Donoghue. Operator splitting for a homogeneous embedding of the linear complementarity problem. SIAM Journal on Optimization, 31:1999–2023, August 2021.
  • Pan et al. [2015–2022] Jia Pan, Sachin Chitta, Dinesh Manocha, Florent Lamiraux, Joseph Mirabel, Justin Carpentier, et al. HPP-FCL: an extension of the Flexible Collision Library. https://github.com/humanoid-path-planner/hpp-fcl, 2015–2022.
  • Parikh et al. [2014] Neal Parikh, Stephen Boyd, et al. Proximal algorithms. Foundations and trends® in Optimization, 1(3):127–239, 2014.
  • Reddy [1993] Junuthula Narasimha Reddy. An introduction to the finite element method. New York, 27:14, 1993.
  • Sathya et al. [2023] Ajay Suresha Sathya, Wilm Decre, and Jan Swevers. Pv-osimr: A lowest order complexity algorithm for computing the delassus matrix, 2023.
  • Signorini [1959] Antonio Signorini. Questioni di elasticità non linearizzata e semilinearizzata. Rendiconti di Matematica e delle sue applicazioni, 18(5):95–139, 1959.
  • Smith [2008] Russell Smith. Open dynamics engine, 2008. URL http://www.ode.org/. http://www.ode.org/.
  • Stasse et al. [2017] Olivier Stasse, Thomas Flayols, Rohan Budhiraja, Kevin Giraud-Esclasse, Justin Carpentier, Joseph Mirabel, Andrea Del Prete, Philippe Souères, Nicolas Mansard, Florent Lamiraux, et al. Talos: A new humanoid research platform targeted for industrial applications. In 2017 IEEE-RAS 17th International Conference on Humanoid Robotics (Humanoids), pages 689–695. IEEE, 2017.
  • Stellato et al. [2020] Bartolomeo Stellato, Goran Banjac, Paul Goulart, Alberto Bemporad, and Stephen Boyd. Osqp: An operator splitting solver for quadratic programs. Mathematical Programming Computation, 12(4):637–672, 2020.
  • Tasora et al. [2021] Alessandro Tasora, Dario Mangoni, Simone Benatti, and Rinaldo Garziera. Solving variational inequalities and cone complementarity problems in nonsmooth dynamics using the alternating direction method of multipliers. International Journal for Numerical Methods in Engineering, 122(16):4093–4113, 2021.
  • Tedrake and the Drake Development Team [2019] Russ Tedrake and the Drake Development Team. Drake: Model-based design and verification for robotics, 2019. URL https://drake.mit.edu.
  • Todorov et al. [2012] Emanuel Todorov, Tom Erez, and Yuval Tassa. Mujoco: A physics engine for model-based control. In 2012 IEEE/RSJ international conference on intelligent robots and systems, pages 5026–5033. IEEE, 2012.
  • Tournier et al. [2015] Maxime Tournier, Matthieu Nesme, Benjamin Gilles, and François Faure. Stable constrained dynamics. ACM Transactions on Graphics (TOG), 34(4):1–10, 2015.