# Multi-Contact Whole-Body Force Control for Position-Controlled Robots

Quentin Rouxel, Serena Ivaldi, and Jean-Baptiste Mouret

**Abstract**—Many humanoid and multi-legged robots are controlled in positions rather than in torques, which prevents direct control of contact forces, and hampers their ability to create multiple contacts to enhance their balance, such as placing a hand on a wall or a handrail. This paper introduces the SEIKO (Sequential Equilibrium Inverse Kinematic Optimization) pipeline, and proposes a unified formulation that exploits an explicit model of flexibility to indirectly control contact forces on traditional position-controlled robots. SEIKO formulates whole-body retargeting from Cartesian commands and admittance control using two quadratic programs solved in real time. Our pipeline is validated with experiments on the real, full-scale humanoid robot Talos in various multi-contact scenarios, including pushing tasks, far-reaching tasks, stair climbing, and stepping on sloped surfaces. Code and videos are available at: https://hucebot.github.io/seiko_controller_website/

**Index Terms**—Multi-Contact Whole-Body Motion Planning and Control, Whole-Body Motion Planning and Control, Humanoid Robot Systems.

## I. INTRODUCTION

HUMANS often use additional contact points to enhance their stability, for instance, by using a handrail or a wall when walking, or to extend their reach, for instance, when grasping a distant object. While humanoid robots would benefit from a similar strategy, current robots minimize the number of contacts and use them only for feet and required interactions with the environment, such as pushing a button [1].

The primary challenge in controlling multi-contact lies in the redundancy of force distribution resulting from closed kinematic chains [2]. For a given posture with several contacts, there are infinite ways to distribute force among them. For instance, a humanoid with both hands on a table can apply more or less force to the hands without any visible change in joint position.

To regulate forces, most prior studies on multi-contact whole-body control rely on torque-controlled robots with inverse dynamics controllers [3]–[5]. Unfortunately, inverse dynamics is highly sensitive to model and calibration errors, and identifying models for humanoids is particularly challenging [6]. Perfect identification of environment's properties is generally not possible. This is why most deployed robots use position control, which is simpler and more reliable [7], but it lacks direct control authority over contact forces.

<figure><img src="image_1.png" /><figcaption>Figure 1. Overview of our control pipeline (top), and illustrations of teleoperated multi-contact experiments on Talos humanoid robot (bottom).</figcaption></figure>

Prior work on position-controlled robots [8]–[11] has often regulated contact forces indirectly using various forms of admittance schemes applied independently to each effector. While effective in many scenarios, this strategy may lack robustness in challenging situations near physical limits or with significant model errors. This is due to its heuristic nature, which lacks theoretical grounding and fails to consider the whole-body effect of postural changes on contact forces.

Our main idea is to exploit the robot's non-rigidity to explicitly model the relationship between joint position commands and contact forces. Flexibility arises from either non-observable mechanical structural bending or internal impedance of non-ideal joint position control. We present a control pipeline (Fig. 1) designed to regulate contact forces on position-controlled robots. Our approach offers a novel unified whole-body formulation using optimization-based Quadratic Programming (QP) to leverage fast QP solvers.

We conducted experiments on the Talos humanoid robot [12], equipped with powerful arms but known for significant hip mechanical flexibility [13]. Our control pipeline is compatible with commands from autonomous planners and teleoperation, with a focus on the latter in this study. Well-suited for teleoperation, our method is robust against operator errors related to awareness and embodiment challenges. Unlike most existing methods, our approach enables motions close to feasibility boundaries (both in term of kinematic, balance, and torque limits), allowing full exploitation of the capabilities of the hardware.

Manuscript received: December, 29, 2023; Revised March, 16, 2024; Accepted April, 16, 2024. This paper was recommended for publication by Editor A. Kheddar upon evaluation of the Associate Editor and Reviewers' comments. This research was supported by the CPER CyberEntreprises, the Creativ'Lab platform of Inria/LORIA, the EurROBIN Horizon project (grant number 101070596), and the ANR in the France 2030 program through project PEPR O2R AS3 (ANR-22-EXOD-007).

Q. Rouxel, S. Ivaldi, and J.B. Mouret are with Inria, CNRS, Université de Lorraine, France. firstname.lastname@inria.fr

Digital Object Identifier (DOI): https://doi.org/10.1109/LRA.2024.3396094.
Our work named SEIKO for Sequential Equilibrium Inverse Kinematic Optimization provides the following contributions:

* A Sequential QP (SQP) formulation that computes posture deflection and joint command correction, accounting for joint flexibility in multi-contact quasi-static conditions.

* A multi-contact retargeting and control architecture for position-controlled robots with contact switch and pushing capabilities, designed to be robust against model errors.

* Validation on the hardware Talos humanoid robot with several multi-contact tasks, including the validation of our prior retargeting work, which was previously tested only in simulation for humanoid robots.

## II. RELATED WORK

Multi-contact tasks have been studied in-depth on humanoid robots with torque control [3]–[5], where contact forces are directly regulated using whole-body inverse dynamic controllers. But torque control relies on an accurate model of the robot’s dynamic, which is challenging to identify [6], [13] and lacks robustness. Joint impedance control [14], [15] offers a more robust alternative to torque control, but still requires modeling the actuators to be able to specify torque feedforward references.

Although [16] demonstrated ladder climbing on a position-controlled robot without regulating contact forces, it is essential to regulate these forces. Doing so enables pushing tasks, smooth contact transitions, and enhances robustness for motions near system limits, where stability margins are reduced. Most studies using position-controlled robots [9]–[11], [17] regulate contact forces indirectly through methods named “effector admittance”, “foot force difference control”, or “damping control” all based on the same principle introduced in [8]: an admittance feedback law is applied to each effector to adjust its Cartesian pose reference. For example, to reduce the force measured on the hand, these approaches will retract its desired position away from the contact surface. However, because it is expected that the hand remains in contact, these approaches implicitly rely on flexibility without explicitly considering it. In contrast, SEIKO Controller models the whole-body flexibility, providing a more grounded formulation. This also enables the accounting of postural changes on the contact forces, which the effector admittance scheme cannot do.

[18] proposed the idea of modeling torques produced by position-controlled actuators, which was further studied in [19] and applied to multi-contact in [20], [21]. Similar to our approach, they differentiate the quasi-static equilibrium but their method uses pseudo-inverses which fails at considering constraints. Furthermore, [21] also uses elastic joint models, but their method solves a cascade of several QP problems. Their purely reactive control architecture lacks feedforward terms and retargeted references, making it more sensitive to noise and violations of the quasi-static assumption. In contrast, our method is unified, allows faster motions, and does not require actual joint positions to be measured, which accommodates robots with mechanical flexibility like the Talos robot.

This work builds upon our prior work [22]–[24] which devised a retargeting framework for multi-contact tasks on simulated humanoids and hardware bimanual manipulators

<table><caption>Table I
MATHEMATICAL NOTATIONS</caption><thead><tr><th>Notation</th><th>Description</th></tr></thead><tbody><tr><td>$n \in \mathbb{N}$</td><td>Number of joints</td></tr><tr><td>$m_{\text{plane}} \in \mathbb{N}$</td><td>Number of enabled plane contacts</td></tr><tr><td>$m_{\text{point}} \in \mathbb{N}$</td><td>Number of enabled point contacts</td></tr><tr><td>$m=6m_{\text{plane}}+3m_{\text{point}}$</td><td>Dimension of stacked wrench</td></tr><tr><td>($\bullet$)tead</td><td>Estimated measured quantities</td></tr><tr><td>($\bullet$)op</td><td>Operator's raw Cartesian commands</td></tr><tr><td>($\bullet$)adm</td><td>Effectors admittance scheme quantities</td></tr><tr><td>($\bullet$)target</td><td>Processed commands for retargeting input</td></tr><tr><td>($\bullet$)<sup>d</sup></td><td>Desired state computed by retargeting</td></tr><tr><td>($\bullet$)flex</td><td>Flexible state computed by controller</td></tr><tr><td>($\bullet$)on</td><td>Enabled contact quantities</td></tr><tr><td>($\bullet$)off</td><td>Disabled contact (free effector) quantities</td></tr><tr><td>$\mathbf{X} \in \text{SE}(3)$</td><td>Cartesian pose</td></tr><tr><td>$\mathbf{v} \in \mathbb{R}^6$</td><td>Cartesian spatial velocity</td></tr><tr><td>$\mathbf{q} \in \mathbb{R}^{7+n}$</td><td>Posture position (floating base and joints)</td></tr><tr><td>$\dot{\mathbf{q}} \in \mathbb{R}^{6+n}$</td><td>Posture velocity</td></tr><tr><td>$\mathbf{\theta}, \dot{\mathbf{\theta}} \in \mathbb{R}^n$</td><td>Joint position and velocity</td></tr><tr><td>$\mathbf{\theta}^{\text{cmd}} \in \mathbb{R}^n$</td><td>Joint position command sent to robot</td></tr><tr><td>$\mathbf{\theta}^{\text{min}}, \mathbf{\theta}^{\text{max}} \in \mathbb{R}^n$</td><td>Joint position min/max bounds</td></tr><tr><td>$\Delta\mathbf{\lambda}^{\text{effort}} \in \mathbb{R}^m$</td><td>Wrench effort (input to controller)</td></tr><tr><td>$\mathbf{\tau} \in \mathbb{R}^n$</td><td>Joint torque</td></tr><tr><td>$\mathbf{\tau}^{\text{max}} \in \mathbb{R}^n$</td><td>Absolute maximum joint torque</td></tr><tr><td>$\dot{\mathbf{\tau}}^{\text{max}} \in \mathbb{R}^n$</td><td>Joint torque limits used in Controller</td></tr><tr><td>$\mathbf{\lambda} \in \mathbb{R}^m$</td><td>Stacked contact wrench</td></tr><tr><td>$\mathbf{k} \in \mathbb{R}^n$</td><td>Joint stiffness vector</td></tr><tr><td>$\mathbf{K} = \text{diag}(\mathbf{k}) \in \mathbb{R}^{n \times n}$</td><td>Joint stiffness matrix</td></tr><tr><td>$\mathbf{S} \in \mathbb{R}^{(6+n) \times n}$</td><td>Selection matrix joint to full dimension</td></tr><tr><td>$\mathbf{S}' \in \mathbb{R}^{n \times (6+n)}$</td><td>Selection matrix full to joint dimension</td></tr><tr><td>$\mathbf{g}(\mathbf{q}) \in \mathbb{R}^{6+n}$</td><td>Gravity vector</td></tr><tr><td>$\mathbf{J}_{\text{on/off}}(\mathbf{q}) \in \mathbb{R}^{(6+n) \times m}$</td><td>Stacked effectors Jacobian matrix</td></tr><tr><td>$K_p, K_d \in \mathbb{R}$</td><td>Proportional and derivative control gains</td></tr><tr><td>$K_{\text{adm}} \in \mathbb{R}$</td><td>Effectors admittance gain</td></tr><tr><td>$\Delta t \in \mathbb{R}$</td><td>Time step</td></tr><tr><td>$\mathbf{F}K_{\text{on/off}}(\mathbf{q})$</td><td>Effector poses (forward kinematic)</td></tr><tr><td>$\oplus, \ominus$</td><td>Operations on SE(3) Lie algebra</td></tr></tbody></table>

with an highlight on enforcing feasibility. Both this work and [22]–[24] also target teleoperation applications. While many studies have investigated the teleoperation of complex robots with floating bases [25], fewer have explicitly addressed multi-contact scenarios [26], [27]. In contrast to these, our work addresses the regulation of contact forces and demonstrates both contact switch and pushing tasks.

## III. PROBLEM DEFINITION

Quasi-static robot configurations are defined by postural positions, joint torques, and contact wrenches $q, \tau, \lambda$. For position-controlled robots, control inputs only consist of joint position commands $\theta^{\text{cmd}}$. The whole-body retargeting stage (illustrated in Fig. 1 and proposed in previous work [22]) provides a stream of desired quasi-static configurations $q^d, \tau^d, \lambda^d$ expected to be feasible.

Achieving desired contact wrenches $\lambda^d$ is essential for multi-contact tasks, but contact wrenches can not be directly commanded on position-controlled robots. Our approach aims to indirectly control contact wrenches through joint position commands $\theta^{\text{cmd}}$ optimized to take into account the flexibility of the robot. Table I lists the notations and quantities used throughout this letter.

Addressing the problem involves overcoming the following challenges:
<figure><img src="image_2.png" /><figcaption>Figure 2. Control architecture for position-controlled robots: Operator's Cartesian commands are retargeted into a feasible whole-body configuration. The controller uses a joint flexibility model to adjust actuator position commands for contact wrench control and prevent exceeding joint torque limits.</figcaption></figure>

* Multi-contact tasks exhibit redundancy in both kinematics and contact wrench distribution, akin to the Grasp matrix's nullspace in manipulation [28].

* While adding contacts is generally feasible, removing contacts challenge the robot's balance and can be infeasible.

* Transitioning between contact states (enabled or disabled) involves discrete changes in problem formulation. Ensuring continuity in contact wrenches (from non-zero to zero and vice versa) and posture is essential for smooth transitions.

* To ensure safety, physical limits must be enforced such as balance, joint kinematics, actuator torque limits, and contact stability conditions prohibiting pulling, sliding, tilting.

* For application to hardware, the controller must be robust to model errors and violations of simplifying assumptions.

# IV. METHOD

## A. Main Idea

According to rigid body theory in multi-contact [2], [28], the contact wrenches of an ideal infinitely stiff mechanical system are non-unique and lie in a redundant nullspace. Real systems, however, always exhibit inherent flexibility: the structure slightly bends, and both the deflected posture and contact wrenches uniquely evolve towards the configuration minimizing overall elastic energy. Therefore, given constant joint position commands, the mapping that takes into account flexibility $\theta^{\text{cmd}} \mapsto (q^{\text{flex}}, \lambda^{\text{flex}})$ is unique and well-defined. Our approach models and predicts this whole-body non-linear deflection effect, utilizing it for the control of contact wrenches.

Specifically, we linearize and compute derivatives of the deflection effect to consider how contact wrenches change with variations in joint position commands through the Jacobian matrix $\frac{\partial \lambda^{\text{flex}}}{\partial \theta^{\text{cmd}}}(q^{\text{flex}}, \lambda^{\text{flex}}, \theta^{\text{cmd}})$. Instead of directly inverting this Jacobian matrix, we formulate the control problem as a Quadratic Programming (QP) which solves for position command changes and optimizes multiple objectives, similar to task space inverse dynamic approaches. We explicitly model the system's flexibility by treating each robot joint as a spring, encompassing both internal actuator impedance and mechanical flexibilities.

## B. Overall Architecture

Our proposed control architecture depicted in Fig. 2 consists of a two-stage pipeline. Firstly, *SEIKO Retargeting*, previously introduced in [22], optimizes a desired whole-body configuration $q^d, \lambda^d, \tau^d$ within feasibility limits. Subsequently, our novel *SEIKO Controller* computes corrected joint position commands $\theta^{\text{cmd}}$ for tracking $\lambda^d$. These joint commands are then sent to the robot's low-level servomotors and tracked by stiff internal position controllers.

The controller has three goals: (i) achieve the desired contact wrenches $\lambda^d$, (ii) avoid violations of joint torque limits $\tau^{\text{max}}$, and (iii) enhance robustness against model inaccuracies. The Retargeting step is crucial as it enforces feasibility limits a priori, and generates a desired configuration to be tracked. The controller indeed exhibits reduced stability when tracking a highly infeasible non-retargeted reference.

The set of effectors that may come into contact with the environment is pre-defined. Each effector's state is either: "enabled", standing for fixed and in contact transmitting forces and torques to the environment, or "disabled", indicating that it is free to move and is commanded by the operator. Our formulation handles both plane contacts (6 DoFs, e.g., feet) and point contacts (3 DoFs, e.g., hands with ball shape). The full details of contact formulation are available in the supplementary material of [22]. Other types of contacts can also be easily implemented, such as full grasp contact for hand grippers or even line contact on the edge of feet.

An external planner or human operator provides commands as input to the Retargeting stage: (i) Cartesian pose $X^{\text{op}}$ or velocity $v^{\text{op}}$ commands for each free (disabled) effector, (ii) a Boolean signal that manually triggers the transition between contact states, and (iii) an optional "pushing mode" enabling explicit control of the normal force of a specific enabled contact. Our method does not plan contact sequencing, and relies on external decisions for contact stances and sequence.

The proposed method operates instantaneously without considering the future of unknown intention, and relies on the quasi-static assumption. The nonlinear whole-body optimizations are solved using SQP schemes with only one QP
iteration per time step. This allows for quick convergence at high frequency (500 Hz) and responsiveness to input changes.

### C. Equilibrium Equation and Flexibility Model

Motions of mobile robots with a floating base are governed by the equation of motion in joint space [2]. Under the quasi-static assumption, where $\ddot{q} \approx \dot{q} \approx 0$, this equation simplifies to represent the equilibrium, i.e. system's balance, between contact wrenches, gravity effects, and applied torques:

$$g(q) = S\tau + J(q)^{\mathrm{T}}\lambda, \quad (1)$$

which is non-linear in $q$. We approximate the linearization of the equilibrium equation by considering small variations of the configuration $(q+\Delta q, \lambda+\Delta \lambda, \tau+\Delta \tau)$ and partial derivatives:

$$g(q) + \frac{\partial g}{\partial q} \Delta q = S\tau + S\Delta\tau + J(q)^{\mathrm{T}}\lambda + J(q)^{\mathrm{T}}\Delta\lambda + \left(\frac{\partial J}{\partial q}\right)^{\mathrm{T}}\lambda \Delta q, \quad (2)$$

while neglecting second order terms (see Section B in supplementary material for details).

Stiff position-controlled robots deviate from the rigid assumption due to inherent hardware flexibility arising from factors like Series Elastic Actuators [29], deformations in links or transmissions [13], impedance of non-ideal position control [18], or the inclusion of soft damper elements within the structure [30]. In this work, we model this flexibility as joint elastic flexibility, where the relation between joint position and generated torque is expressed as follows:

$$\tau^{\mathrm{flex}} = K(\theta^{\mathrm{cmd}} - \theta^{\mathrm{flex}}). \quad (3)$$

Note that link flexibility can also be modeled in a similar manner by introducing passive joints without actuation. Its derivative is written:

$$\Delta\tau^{\mathrm{flex}} = K(\Delta\theta^{\mathrm{cmd}} - \Delta\theta^{\mathrm{flex}}) = K(\Delta\theta^{\mathrm{cmd}} - S'\Delta q^{\mathrm{flex}}), \quad (4)$$

where $q^{\mathrm{flex}}$ is the deflected posture under joint flexibility and $\theta^{\mathrm{cmd}}$ is the joint position command of actuators.

The derivative-based linear approximation of the equilibrium equation (2) combined with flexibility model (4) is linear w.r.t. configuration changes:

$$SK\Delta\theta^{\mathrm{cmd}} = T(q^{\mathrm{flex}}, \lambda^{\mathrm{flex}}) \begin{bmatrix} \Delta q^{\mathrm{flex}} \\ \Delta\lambda^{\mathrm{flex}} \end{bmatrix} + t(q^{\mathrm{flex}}, \lambda^{\mathrm{flex}}, \theta^{\mathrm{cmd}}) \\ \text{where } T(q^{\mathrm{flex}}, \lambda^{\mathrm{flex}}) = \begin{bmatrix} \frac{\partial g}{\partial q}(q^{\mathrm{flex}}) - \left(\frac{\partial J}{\partial q}(q^{\mathrm{flex}})\lambda^{\mathrm{flex}}\right) + SKS' & -J(q^{\mathrm{flex}})^{\mathrm{T}} \end{bmatrix}, \quad (5) \\ t(q^{\mathrm{flex}}, \lambda^{\mathrm{flex}}, \theta^{\mathrm{cmd}}) = g(q^{\mathrm{flex}}) - S\tau^{\mathrm{flex}} - J(q^{\mathrm{flex}})^{\mathrm{T}}\lambda^{\mathrm{flex}}.$$

Therefore $\Delta\theta^{\mathrm{cmd}}$ can also be linearly expressed from $\Delta q^{\mathrm{flex}}$ and $\Delta\lambda^{\mathrm{flex}}$ using the following row decomposition:

$$\begin{bmatrix} 0 \\ K\Delta\theta^{\mathrm{cmd}} \end{bmatrix} = \begin{bmatrix} T_B \\ T_J \end{bmatrix} \begin{bmatrix} \Delta q^{\mathrm{flex}} \\ \Delta\lambda^{\mathrm{flex}} \end{bmatrix} + \begin{bmatrix} t_B \\ t_J \end{bmatrix} \quad (6)$$

$$\Delta\theta^{\mathrm{cmd}}(\Delta q^{\mathrm{flex}}, \Delta\lambda^{\mathrm{flex}}) = K^{-1} \left( T_J \begin{bmatrix} \Delta q^{\mathrm{flex}} \\ \Delta\lambda^{\mathrm{flex}} \end{bmatrix} + t_J \right), \quad (7)$$

where $T_B, t_B$ refer to the first 6 rows representing the floating base and $T_J, t_J$ the remaining $n$ joint rows.

### D. SEIKO Retargeting

This section summarizes the SEIKO Retargeting method developed in [22], [23]. From this previous work, Section C in supplementary material provides further explanation on how balance is enforced.

The Retargeting preprocesses inputs for each disabled effector, which includes the commanded motion from the operator (comprising both pose $X^{\mathrm{op}}$ and velocity $\nu^{\mathrm{op}}$) and the admittance velocity command $\nu^{\mathrm{adm}}$ (see Section IV-F). Processing includes filtering and merging these commands:

$$\begin{align} X_{\mathrm{off}}^{\mathrm{target}} &= \mathrm{filtering}(X_{\mathrm{ref}}(t)X^{\mathrm{op}}), \quad X_{\mathrm{ref}}(0) = X^{\mathrm{read}}, \nonumber \\ X_{\mathrm{ref}}(t+\Delta t) &= \nonumber \\ \mathrm{boundDistance}(X_{\mathrm{ref}}(t) \oplus \Delta t(\nu^{\mathrm{op}} + \nu^{\mathrm{adm}}), X_{\mathrm{off}}^{\mathrm{d}}) &\end{align} \quad (8)$$

where $X_{\mathrm{ref}} \in SE(3)$ is a reference pose that integrates velocity commands at each time step (see [23]). $X_{\mathrm{ref}}$ allows the Cartesian pose command $X^{\mathrm{op}}$ to be expressed relative to this reference, and not in arbitrary world frame. The filtering process incorporates a smoothing low-pass filter and bounds signal's velocity and acceleration through time-optimal bang-bang trajectory replanning [23]. With the clamping boundDistance(), we also constrain separately the position and orientation of $X_{\mathrm{ref}}$ within a radius centered on $X_{\mathrm{off}}^{\mathrm{d}}$ to prevent the reference pose from windup when the retargeted motion is saturated by the feasibility constraints.

At each time step, SEIKO Retargeting solve the QP:

$$\begin{align} \underset{\Delta q^d, \Delta \lambda^d, \Delta \tau^d}{\operatorname{argmin}} & \\ & \left\| F K_{\mathrm{off}}(q^d) \oplus J_{\mathrm{off}}(q^d) \Delta q^d \ominus X_{\mathrm{off}}^{\mathrm{target}} \right\|^2 + \end{align} \quad (9a)$$

$$\left\| \theta^d + \Delta\theta^d - \theta^{\mathrm{target}} \right\|^2 + \quad (9b)$$

$$\left\| \tau^d + \Delta\tau^d \right\|^2 + \quad (9c)$$

$$\left\| \lambda^d + \Delta\lambda^d \right\|^2 + \quad (9d)$$

$$\left\| \Delta q^d \right\|^2 + \left\| \Delta \lambda^d \right\|^2 \quad (9e)$$

$$\left\| \Delta q^d \right\|^2 + \left\| \Delta \lambda^d \right\|^2 \quad (9f)$$

such that

$$\text{linearized equilibrium equation (2)} \quad (9g)$$

$$F K_{\mathrm{on}}(q^d) \oplus J_{\mathrm{on}}(q^d) \Delta q^d \ominus X_{\mathrm{on}}^{\mathrm{target}} = 0 \quad (9h)$$

$$\theta^{\mathrm{min}} \leq \theta^d + \Delta\theta^d \leq \theta^{\mathrm{max}} \quad (9i)$$

$$-\tau^{\mathrm{max}} \leq \tau^d + \Delta\tau^d \leq \tau^{\mathrm{max}} \quad (9j)$$

$$C_{\mathrm{contact}}\Delta\lambda^d + C_{\mathrm{contact}}\lambda^d + c_{\mathrm{contact}} \geq 0 \quad (9k)$$

$$-\Delta t \dot{\theta}^{\mathrm{max}} \leq \Delta\theta^d \leq \Delta t \dot{\theta}^{\mathrm{max}} \quad (9l)$$

$$-\Delta t \dot{\lambda}^{\mathrm{max}} \leq \Delta\lambda^d \leq \Delta t \dot{\lambda}^{\mathrm{max}}. \quad (9m)$$

The QP solves for the configuration change (9a), integrating it to update the desired configuration, e.g., $\lambda^d(t+\Delta t) = \lambda^d(t) + \Delta\lambda^d$. The optimization minimizes tasks weighted by manually tuned parameters for stability and desired trade-off. The cost function includes disabled effector pose targets (9b), default joint position targets (9c) for regularization and mitigating kinematic local minima, joint torque minimization (9d) for human-like postures, contact wrench penalization (9e), and decision variable regularization (9f).

Equality constraints enforce the linearized equilibrium equation (9g) and ensure enabled contacts are fixed (9h). Inequality
constraints include joint position limits (9i), joint torque limits (9j), and contact stability conditions (9k) considering unilaterality, friction pyramid, and center of pressure (see Section D in supplementary material). Additional constraints involve limits on joint changes (9l) and contact wrench changes (9m).

Compared to our prior SEIKO Retargeting work [22], we enhanced the contact switching procedure with fewer arbitrary choices and clearer physical semantics. Details can be found in Section E in supplementary material.

### E. SEIKO Controller

We assume that actual joint positions under flexibility cannot be directly measured but can be estimated from the model. Despite model errors, our approach relies on the model's derivatives direction to provide sufficient information about system evolution. The controller uses the derivative-based linear approximation of the equilibrium equation with flexibility (5) to model how contact wrench distribution changes with joint command changes $\Delta\theta^{cmd}$. This approach generalizes previously used admittance control laws such as “foot difference control” [8] which implicitly depends on flexibility without considering it.

The following feedback law regulates contact wrenches. It is the only feedback effect in our unified formulation that uses measured quantities and is tuned with only two parameters:

$$ \Delta\lambda^{\text{effort}} = \Delta\lambda^{\text{d}} + K_p(\lambda^{\text{d}} - \tilde{\lambda}^{\text{read}}) - K_d\dot{\lambda}^{\text{read}}, \quad (10) $$

where $\Delta\lambda^{effort}$ is the desired effort in the controller optimization, and $\Delta\lambda^{d}$ acts as a feedforward term. SEIKO Controller solves the following QP at each time step:

$$ \underset{\Delta q^{\text{flex}}, \Delta \lambda^{\text{flex}}}{\operatorname{argmin}} \qquad (11a) $$

$$ \| \Delta \lambda^{\text{effort}} - \Delta \lambda^{\text{flex}} \|^2 + \qquad (11b) $$

$$ \| \mathrm{FK}_{\mathrm{off}}(q^{\text{flex}}) \oplus \mathbf{J}_{\mathrm{off}}(q^{\text{flex}}) \Delta q^{\text{flex}} \ominus \mathbf{X}_{\mathrm{off}}^{\mathrm{d}} \|^2 + \qquad (11c) $$

$$ \| \theta^{\text{cmd}} + \Delta \theta^{\text{cmd}} - \theta^{\text{d}} \|^2 + \qquad (11d) $$

$$ \| \Delta \theta^{\text{cmd}} \|^2 \qquad (11e) $$

such that

$$ T_B \left[ \frac{\Delta q^{\text{flex}}}{\Delta \lambda^{\text{flex}}} \right] + t_B = 0 \qquad (11f) $$

$$ \mathrm{FK}_{\mathrm{on}}(q^{\text{flex}}) \oplus \mathbf{J}_{\mathrm{on}}(q^{\text{flex}}) \Delta q^{\text{flex}} \ominus \mathbf{X}_{\mathrm{on}}^{\text{target}} = 0 \qquad (11g) $$

$$ \theta^{\min} \leq \theta^{\text{cmd}} + \Delta\theta^{\text{cmd}} \leq \theta^{\text{max}} \qquad (11h) $$

$$ -\tilde{\tau}^{\max} \leq \tau^{\text{flex}} + \Delta\tau^{\text{flex}} \leq \tilde{\tau}^{\max}. \qquad (11i) $$

The QP solves for flexible configuration changes $\Delta q^{flex}$, $\Delta\lambda^{flex}$ (11a). Joint command changes $\Delta\theta^{cmd}$ are obtained from the decision variables using (7) and $q^{flex}$, $\lambda^{flex}$, $\theta^{cmd}$ are then obtained by integration.

The cost function primarily computes joint position correction $\Delta\theta^{cmd}$ and resulting posture deflection $\Delta q^{flex}$ to achieve the control effort on contact wrench changes $\Delta\lambda^{effort}$ (11b). It also adjusts disabled effector poses influenced by flexibility toward Retargeting's desired poses (11c). As secondary objectives, the optimization penalizes the discrepancy between corrected and desired joint positions (11d) and regularizes changes in joint commands (11e).

Equality constraints enforce the linearized equilibrium equation with flexibility (11f) through the first upper 6 floating base rows of decomposition (6) and ensure no Cartesian motion for enabled contacts (11g). Inequality constraints ensure kinematic limits of joint position commands $\theta^{cmd}$ (11h) and restrict maximum joint torques (11i).

Joint torque limits $\tilde{\tau}^{max}$ used as constraints are dynamically updated to prevent the integrated state $|\tau^{flex}|$ from continuously increasing when the measured joint torque $|\tau^{read}|$ reaches the defined torque limit $\tau^{max}$. For each joint at each time step:

$$ \tilde{\tau}^{\max}(t + \Delta t) = \begin{cases} \tau^{\text{flex}} + \epsilon_1 & \text{if } |\tau^{\text{read}}| > \tau^{\max} \land \\ & \tilde{\tau}^{\max}(t) > \tau^{\text{flex}} + \epsilon_1, \\ \tilde{\tau}^{\max}(t) + \epsilon_2 & \text{else if } |\tau^{\text{read}}| < \tau^{\max} - \epsilon_3 \land \\ & \tilde{\tau}^{\max}(t) < \tau^{\max}, \\ \tau^{\max} & \text{else if } \tilde{\tau}^{\max}(t) > \tau^{\max}, \\ \tilde{\tau}^{\max}(t) & \text{else,} \end{cases} \qquad (12) $$

where $\epsilon_1, \epsilon_2, \epsilon_3 \in \mathbb{R}$ are small positive margin parameters implementing a hysteresis effect to improve stability.

### F. State Estimation and Effectors Admittance

The estimated measured wrench $\tilde{\lambda}^{read}$ in feedback law (10) is computed using a complementary filter:

$$ \tilde{\lambda}^{\text{read}}(t + \Delta t) = \alpha(\tilde{\lambda}^{\text{read}}(t) + \Delta\lambda^{\text{flex}}) + (1-\alpha)\lambda^{\text{read}}. \qquad (13) $$

This filter enhances closed-loop stability by mitigating dynamical effects affecting $\lambda^{read}$ neglected by the quasi-static assumption. It introduces a trade-off between the reactive measurement and the term estimated through the integration of the predicted change $\Delta\lambda^{flex}$. The measured contact wrench velocity $\tilde{\lambda}^{read}$ is computed using finite differences from $\lambda^{read}$, and then it is low-pass filtered at 10 Hz using an exponential first-order scheme.

We utilize an admittance scheme to compute an additional Cartesian velocity command for disabled effectors $\nu^{adm}$:

$$ \nu^{\text{adm}} = \text{filtering}(K_{\text{adm}}\lambda_{\text{off}}^{\text{read}}), \qquad (14) $$

where the filtering applies a deadband and output clamping to both linear and angular vector norms, thereby rejecting peak forces and inertial effects during motion. This effect minimizes interaction wrenches for disabled effectors, reducing collision forces during contact establishment and after contact removal, while also aiding in aligning feet with surface orientation. Implemented at input of the Retargeting level, this approach seamlessly integrates with operator command processing (8).

## V. EXPERIMENTAL EVALUATION

### A. Implementation Details

We implemented SEIKO in C++ using RBDL (due to historical reasons) and Pinocchio [31] rigid body libraries. More specifically, Pinocchio efficiently computes the analytical derivatives of the terms appearing in the equation (2). We solve the QP problems using the QuadProg [32] solver.

The entire control pipeline operates at a frequency of 500 Hz, with joint position commands interpolated at 2 kHz before being transmitted to the robot's actuators. The median
<figure><img src="image_3.png" /><figcaption>Figure 3. Force distribution tracking during pushing tasks. The Talos robot (left) pushes a vertical wall using its left hand, following a predefined hand force target trajectory. Plots display the desired and measured normal force for the left hand (top) and the sagittal tangential force for the left foot (bottom); comparing with control enabled (5 trials) and without (5 trials).</figcaption></figure>

<figure><img src="image_4.png" /><figcaption>Figure 4. Comparison of contact switch trials with and without SEIKO Controller. Initially, both feet and right hand are in contact. The operator teleoperated the robot to disable the right foot contact, lift the foot, and re-establish contact. Vertical contact forces $\lambda^d, \lambda^{read}$ (top row) and the desired vertical position of the right foot $\mathbf{X}^d_{right foot}$ (bottom row) are displayed.</figcaption></figure>

computing times observed on the internal computer of the Talos robot are 0.50 ms and 0.40 ms for SEIKO Retargeting and SEIKO Controller, respectively. The maximum measured times for each were 0.56 ms and 0.43 ms, respectively.

The Talos robot, manufactured by PAL Robotics, is a humanoid robot of 1.75 m height with 32 DoFs. We measured with an independent weighing scale its actual total mass to be 99.7 kg, while the URDF model provided by PAL assumes a mass of 93.4 kg. This discrepancy of 6 kg can be seen by the Force-Torque sensors in the feet, which enable our controller to adapt to this model error. We changed the robot's right hand and forearm with a 3D printed part that replaced the gripper and wrist joints beyond the elbow joint. The ball-shaped hand (point contact) allows us to apply high contact forces (up to 30 kg) on the arm during multi-contact tests. After removing the right forearm joints and excluding the head joints, our QP solver works with $n = 25$ joints. All joints are used in position-controlled mode.

Throughout all our evaluations, we used as flexibility model *K* the position-control *P* gains imported from PAL's Gazebo simulation of the Talos robot. Unlike other work [13] that estimate precise flexibility model, our approach does not heavily depend on model accuracy. This is because our formulation with derivatives utilizes only the approximate “gradient” direction for whole-body control.

In all subsequent experiments, an expert operator issued velocity commands for each robot's effectors using dedicated 6-DoF input devices<fnref n="1" />, with one device assigned to each effector. Teleoperation was conducted with a clear, direct line of sight to the robot and its surrounding environment.

## B. Wrench Distribution Tracking

In Fig. 3, we illustrate the role of SEIKO Controller in realizing multi-contact wrench distribution during a hand pushing task. The robot initiates a point contact with a vertical wall using its left hand. The “pushing mode” of SEIKO is employed to command a target trajectory for the normal force applied on the wall. Retargeting adjusts the robot’s posture

slightly forward to apply a large force (75 N), and generates the desired contact wrenches, including opposing tangential forces on the feet in the sagittal plane.

We did not perform any identification or tuning of the robot flexibility model on the actual hardware, which may have significant errors. Estimating this flexibility [13] could enhance tracking accuracy, given that we observed near-perfect tracking performance in the Gazebo simulator which uses an ideal model.

The attached video<fnref n="2" /> demonstrates additional multi-contact scenarios, such as stair climbing and stepping on sloped surfaces (Fig. 1). The observed motions of the robot are deliberately slow due to the focus on quasi-static movements. We also conducted additional comparisons with the prior method effector admittance control [17] in Section A in supplementary material.

## C. Contact Switch

Fig. 4 illustrates the foot contact switch capabilities, showcasing the Talos robot being teleoperated to lift and then re-establish contact with the right foot. Without the Controller, weight transfer from the right to the left foot and hand occurs abruptly during the foot lift. The robot did not fall as it was operating far from its feasibility boundaries. Conversely, when the controller and admittance scheme (equation (14)) were enabled, the redistribution of contact wrenches became smooth and controlled. Additionally, at $t=43$ s, when the foot collided with the ground, the admittance control slightly lifted the foot to prevent unwanted ground forces before contact was re-established.

## D. Whole Body Damping

Imperfect stiff position control and flexibilities lead to small oscillations when disturbed, particularly noticeable on Talos in the sagittal plane, causing forward-backward oscillations. In equation (10), the controller's feedback law employs a damping term with the gain parameter $K_d$. In Fig. 5, we show that this feedback law applied to contact wrenches, serving as the only

<footnote n="1">¹3Dconnexion SpaceMouse: https://3dconnexion.com/uk/spacemouse/</footnote>

<footnote n="2">²Additional videos: https://hucebot.github.io/seiko_controller_website/</footnote>
<figure><img src="image_5.png" /><figcaption>Figure 5. Impact of damping gain $K_d$ on Talos's torso oscillations. Short pushes are applied (left), and IMU's gyroscope measures sagittal plane oscillation for varying $K_d$ values (middle). Damping effect is quantified using logarithmic decrement metric from oscillation peaks (right).</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Figure 6. Far reaching task with and without adding a large unmodeled mass (9 kg) on the hand. The controller enforces joint torque ratio limits (top row, set to 0.6) and tracks the foot contact wrenches (middle row) to ensure balance.</figcaption></figure>

feedback mechanism in our formulation using sensor measurements, effectively attenuates the whole-body oscillations.

In double support, we applied short pushes (10-12 pushes, Fig.5 left) to the robot's torso and observed oscillations until energy dissipation. Using the controller, we tested various damping gain ($K_d$ = 0.0, 0.01, 0.05). We recorded unfiltered angular velocity in sagittal plane with pelvis IMU's gyroscope since it does not rely on model nor unobserved joint positions. Fig. 5 (center) shows median and 20%–80% deciles confidence interval of sagittal motion velocity. To quantify damping (Fig. 5 right), we estimated the averaged logarithmic decrement from oscillation peaks ($\delta = \text{avg} \left( \log\left(\frac{\omega(t)}{\omega(t+T)}\right) \right)$), reflecting damping of oscillation amplitudes and linked to the damping ratio for under-damped systems.

In following experiments, the damping gain is set to $K_d$ = 0.02, as higher values tended to be unstable near feasibility boundaries where model errors had a more pronounced effect.

### E. Far Reaching with Model Errors

Fig. 6 illustrates the capability of our approach to perform challenging far-reaching tasks near feasibility limits, even in the presence of large model errors. We teleoperated the right hand of the Talos robot for a forward-reaching motion as far as allowed by the controller, and added a 9 kg load during operation on the hand to induce mass model errors. The robot remained stable thanks to the tracking of foot contact wrenches and adaptation of the whole-body posture. Additionally, the Controller through equation (12) prevents excessive violation of joint torques, with a limit ratio set to $\frac{|\tau^{\text{read}}|}{\tau^{\text{max}}} < 0.6$.

### F. Robustness Evaluation

We performed a comprehensive analysis of our approach's robustness using the MuJoCo simulator, as summarized in Fig. 7. The focus was on evaluating the impact of model errors and motion speed on system's balance. We simulated the Talos robot in double support, executing 10 motion sequences reaching a distant target with the left hand and returning to the initial posture. The number of successful trials without fall for three conditions are reported: (i) without SEIKO Controller, (ii) with SEIKO Controller but without considering joint torque limits (11i), (12), and (iii) using the full control method. Variations

included hand Cartesian motion velocity (slow 2 cm/s to fast 40 cm/s) and additional mass on the left hand (none to 12 kg).

We observed that MuJoCo's soft contact model produces a more pronounced flexibility behavior than Gazebo or even the actual robot. The presented results implicitly incorporate flexibility model errors, although they are not quantified.

SEIKO Retargeting without whole-body control (left) operates in open-loop and is partially robust to motion speed but struggles with model errors. Using SEIKO Controller (middle) significantly improves success rates, adapting joint position commands to handle additional hand mass for balance. However, unplanned posture adaptations and model errors near full extension reach actuator torque limits, leading to loss of control authority. Considering actuator torque limits in the controller (right) enhances robustness by optimizing posture and avoiding infeasible hand pose commands. Challenges persist at high speeds and heavy masses, where inertial effects violate the quasi-static assumption.

## VI. DISCUSSION AND CONCLUSION

Our control architecture's robustness is showcased at moderate motion speeds (Fig. 7), but it inherently relies on the quasi-static assumption and is unsuitable for highly dynamic motions. Exploring more dynamic and agile motions is an avenue for future research. Establishing contact with stiff position-controlled robots requires precise and slow operator commands, even if effectors admittance (14) helps mitigating this problem. Future work could explore applying the proposed approach to robots using joint impedance control. As analyzed in [13], we noted greater leg flexibility in the Talos robot than in our basic model. Although our controller enables successful contact transitions in teleoperated tasks, this significant difference hampers the quick contact switches needed for walking. Refining the flexibility model may allow walking capabilities.

The robot fell when attempting to climb large 20 cm stairs for exceeding arm joint torque limits during the challenging contact switch. Despite being theoretically feasible according
<figure><img src="image_7.png" /><figcaption>Figure 7. Comparison of our controller’s robustness against model errors and motion velocity. The Talos robot performs in double support 10 far-reaching tasks at the edge of the feasibility boundary in the MuJoCo simulator (left). The number of successful trials without falling is indicated (out of 10). Different combinations of hand motion velocity and added mass on the robot’s hand are compared (middle). The comparison includes scenarios with the SEIKO controller disabled (only open-loop SEIKO retargeting), the SEIKO controller with only foot wrenches control, and the full controller also considering joint torque limits. Overall success ratio comparing the three controllers is given on right panel.</figcaption></figure>

to the retargeting model, the adaptation of joint torque limits (12) is insufficient to ensure robustness if an infeasible contact transition is attempted due to model errors (e.g., underestimating the robot’s weight).

SEIKO Controller overcomes the inherent lack of direct control authority over contact forces of position-controlled by explicitly considering flexibilities. The whole-body multi-contact formulation is grounded in model and enhances robustness to moderate motion speeds and model errors, safely carrying substantial unmodelled loads at arm’s length. The unified whole-body formulation employs a single feedback law on contact forces, effectively leveraging both postural change (i.e., CoM displacement) and contact force redistribution to regulate balance. Given that the primary advantage of humanoids and other multi-limbed robots lies in their strong versatility, this research paves the way for broadening the application and deployment of real-world scenarios, utilizing more capable and adaptable multi-contact systems in uncertain contexts and environments.

## REFERENCES

[1] C. G. Atkeson et al., “What happened at the DARPA robotics challenge finals,” *The DARPA robotics challenge finals*, 2018.

[2] R. Featherstone, *Rigid body dynamics algorithms*. Springer, 2014.

[3] R. Cisneros-Limon et al., “An inverse dynamics-based multi-contact locomotion control framework without joint torque feedback,” *Advanced Robotics*, vol. 34, no. 21-22, 2020.

[4] B. Henze, M. A. Roa, and C. Ott, “Passivity-based whole-body balancing for torque-controlled humanoid robots in multi-contact scenarios,” *Int. Journal of Robotics Research*, vol. 35, no. 12, 2016.

[5] F. Abi-Farraj et al., “Torque-based balancing for a humanoid robot performing high-force interaction tasks,” *IEEE RA-L*, vol. 4, no. 2, 2019.

[6] N. Ramuzat et al., “Actuator model, identification and differential dynamic programming for a TALOS humanoid robot,” in *IEEE ECC*, 2020.

[7] G. Romualdi et al., “A benchmarking of dcm-based architectures for position, velocity and torque-controlled humanoid robots,” *International Journal of Humanoid Robotics*, vol. 17, no. 01, 2020.

[8] S. Kajita et al., “Biped walking stabilization based on linear inverted pendulum tracking,” in *IEEE/RSJ IROS*, 2010.

[9] S. Caron, A. Kheddar, and O. Tempier, “Stair climbing stabilization of the HRP-4 humanoid robot using whole-body admittance control,” in *IEEE ICRA*, 2019.

[10] R. Cisneros et al., “QP-based task-space hybrid/parallel control for multi-contact motion in a torque-controlled humanoid robot,” in *IEEE-RAS Humanoids*, 2019.

[11] S. Samadi et al., “Humanoid control under interchangeable fixed and sliding unilateral contacts,” *IEEE RA-L*, vol. 6, no. 2, 2021.

[12] O. Stasse et al., “TALOS: A new humanoid research platform targeted for industrial applications,” in *IEEE-RAS Humanoids*, 2017.

[13] N. A. Villa et al., “Torque controlled locomotion of a biped robot with link flexibility,” in *IEEE-RAS Humanoids*, 2022.

[14] F. Ruscelli et al., “A multi-contact motion planning and control strategy for physical interaction tasks using a humanoid robot,” in *IEEE/RSJ IROS*, 2020.

[15] M. P. Polverini et al., “Multi-contact heavy object pushing with a centaur-type humanoid robot: Planning and control for a real demonstrator,” *IEEE RA-L*, vol. 5, no. 2, 2020.

[16] J. Vaillant et al., “Multi-contact vertical ladder climbing with an HRP-2 humanoid,” *Autonomous Robots*, vol. 40, no. 3, 2016.

[17] M. Murooka, M. Morisawa, and F. Kanehiro, “Centroidal trajectory generation and stabilization based on preview control for humanoid multi-contact motion,” *IEEE RA-L*, vol. 7, no. 3, 2022.

[18] O. Khatib et al., “Torque-position transformer for task control of position controlled robots,” in *IEEE ICRA*, 2008.

[19] A. Del Prete et al., “Implementing torque control with high-ratio gear boxes and without joint-torque sensors,” *Int. Journal of Humanoid Robotics*, vol. 13, no. 01, 2016.

[20] E. Farnioli, M. Gabiccini, and A. Bicchi, “Toward whole-body loco-manipulation: Experimental results on multi-contact interaction with the walk-man robot,” in *IEEE/RSJ IROS*, 2016.

[21] N. Hiraoka et al., “Online generation and control of quasi-static multi-contact motion by PWT jacobian matrix with contact wrench estimation and joint load reduction,” *Advanced Robotics*, vol. 35, no. 1, 2021.

[22] Q. Rouxel, K. Yuan, R. Wen, and Z. Li, “Multicontact motion retargeting using whole-body optimization of full kinematics and sequential force equilibrium,” *Trans. on Mechatronics*, vol. 27, no. 5, 2022.

[23] R. Wen, Q. Rouxel, M. Mistry, Z. Li, and C. Tiseo, “Collaborative bimanual manipulation using optimal motion adaptation and interaction control,” *IEEE RAM*, 2023.

[24] Q. Rouxel, R. Wen, Z. Li, C. Tiseo, J.-B. Mouret, and S. Ivaldi, “Feasibility retargeting for multi-contact teleoperation and physical interaction,” *2nd Workshop Toward Robot Avatars*, ICRA, 2023.

[25] K. Darvish et al., “Teleoperation of humanoid robots: A survey,” *IEEE Trans. on Robotics*, vol. 39, no. 3, 2023.

[26] A. Di Fava et al., “Multi-contact motion retargeting from human to humanoid robot,” in *IEEE-RAS Humanoids*, 2016.

[27] S. McCrory et al., “Generating humanoid multi-contact through feasibility visualization,” in *IEEE-RAS Humanoids*, 2023.

[28] E. Rimon and J. Burdick, *The Mechanics of Robot Grasping*. Cambridge University Press, 2019.

[29] G. Nava, D. Pucci, and F. Nori, “Momentum control of humanoid robots with series elastic actuators,” in *IEEE/RSJ IROS*, 2017.

[30] K. H. Koch, K. Mombaur, O. Stasse, and P. Soueres, “Optimization based exploitation of the ankle elasticity of HRP-2 for overstepping large obstacles,” in *IEEE-RAS Humanoids*, 2014.

[31] J. Carpentier et al., “The pinocchio C++ library – a fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives,” in *IEEE SII*, 2019.

[32] D. Goldfarb and A. Idnani, “A numerically stable dual method for solving strictly convex quadratic programs,” *Mathematical programming*, vol. 27, no. 1, 1983.
## Supplementary Material:
Multi-Contact Whole-Body Force Control
for Position-Controlled Robots

Quentin Rouxel, Serena Ivaldi, and Jean-Baptiste Mouret

<figure><img src="image_8.png" /><figcaption>Figure S1. Comparison of our SEIKO Controller and effector admittance [17] for tracking inconsistent references on Talos humanoid robot simulated in double support using Gazebo simulator (left). SEIKO Retargeting is used to generate a configuration where most of the robot's weight is positioned above the right foot. At $t=1s$, the reference sent to the controller is overridden, requesting an equal weight distribution between the two feet, inconsistent with the desired posture and CoM position. Both controllers are initiated at $t=6s$ and foot normal force tracking is displayed for each controller (right). SEIKO Controller successfully tracks the overridden reference by shifting the CoM of the robot, while the effector admittance controller results in the robot falling.</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Figure S2. Comparison between our SEIKO Controller and effector admittance [17] for hand multi-contact and large model errors. Talos humanoid robot is simulated in Gazebo, with a posture featuring both feet and the right hand in contact (left). Tracking of the right hand force is compared across several initial contact forces (right). In the second row, a large external vertical force (200N) is applied on the robot's torso. The effector admittance scheme fails to track the reference when faced with large external disturbances.</figcaption></figure>

## SUPPLEMENTARY MATERIAL

### A. Comparison With Effector Admittance Control

As detailed in Section II, prior studies focusing on position-controlled robots [9]–[11] often use the method introduced in [8] for regulating contact forces. These approaches named “effector admittance”, “foot force difference control”, or “damping control for limb ends” all operate on a similar principle. They employ an admittance feedback law applied to each effector of the robot, which adjusts its Cartesian pose reference based on desired and measured contact forces before being realized via Inverse Kinematics (IK).

To compare our method against this baseline, we specifically implemented the “damping control” approach described in [17], Section IV.C. We substituted the SEIKO Controller block in Fig. 2 with an IK module. Prior to the IK calculation, we apply the following admittance law to each enabled and disabled effector:

$$X^{\text{IK}}(t) = X^{\text{d}}(t) \oplus \Delta r(t), \qquad (15)$$

$$\Delta r(t+\Delta t) = \Delta r(t) \oplus \Delta t (K_f(\tilde{\lambda}^{\text{read}} - \lambda^d) \ominus K_s \Delta r(t)), \quad (16)$$

where $X^{\text{IK}}(t) \in SE(3)$ is the corrected effector pose input sent to the IK, $\Delta r(t) \in SE(3)$ is the computed admittance pose
offset (slightly abusing the SE(3) notation), and $K_f, K_s \in \mathbb{R}$ are the manually tuned wrench and spring gains, respectively. It is worth noting that we did not implement for our comparison the two additional feedback effects described in [17], as detailed in Sections IV.A and B. These two effects only use position measurements to regulate the centroidal pose. However, our Talos robot is controlled in position with stiff gains, and no significant position errors can be measured with respect to the desired posture optimized by our SEIKO Retargeting (posture flexibility is unobservable on joint sensors).

From a theoretical standpoint, contact forces in rigid multi-contact scenarios are influenced by two key factors. Firstly, the distribution of forces among different contacts can be selected within the redundant contact nullspace without inducing motion. Secondly, this nullspace is defined by the posture, specifically the position of the CoM. As its formulation is not whole-body, the effector admittance approach only utilizes the first component of force redistribution, while our SEIKO Controller offers a unified formulation capable of leveraging both force redistribution and postural adjustments.

For instance, the effector admittance approach relies on the assumption that retracting the effector away from the surface will decrease the contact force. While this assumption holds true in many scenarios, it can lead to failure when confronted with significant model errors, flexibility, or challenging postures that bring the robot's configuration close to its feasibility limits. The following simulation experiments highlight two cases where the effector admittance method fails to accurately track the force reference due to its inability to account for whole-body postural adjustments.

1) **Inconsistent Reference Input:** Fig. S1 presents a clear example of a simulated double support scenario where retracting the foot position away from the surface fails to decrease the contact force. This situation arises when the planner module (in this case, SEIKO Retargeting) outputs an erroneous desired reference, subsequently sent to the underlying controller. Due to the inconsistency between the desired contact force and the desired posture, the controller is unable to track both simultaneously. The effector admittance control attempts to lift the right foot, which bears most of the robot's weight, leading to the robot's fall. In contrast, our SEIKO Controller prioritizes balance by focusing on tracking the contact forces and adjusting the posture through the whole-body formulation.

2) **Large Model Errors:** In numerous instances where the robot's configuration remained away from the feasibility limits, we observed that the effector admittance method effectively regulated the contact forces. However, the robustness of the controller is challenged in scenarios with large model errors. Fig. S2 illustrates a failure case where a substantial external force applied to the torso necessitates the adaptation of the robot's posture to accurately track the desired contact forces, a capability only exhibited by the SEIKO Controller.

## B. Derivative of Equilibrium Equations

In the quasi-static case, the whole-body equilibrium equation in joint space is expressed as:

$$g(q) = S\tau + J(q)^{\mathrm{T}}\lambda. \quad (17)$$

Since this equation is nonlinear with respect to $q$, we linearize it by approximating its derivative through consideration of small variations in the configuration $(q+\Delta q, \lambda+\Delta \lambda, \tau+\Delta \tau)$:

$$g(q+\Delta q) = S(\tau+\Delta\tau)+J(q+\Delta q)^{\mathrm{T}}(\lambda+\Delta\lambda), \quad (18)$$

which is linearized and approximated as following considering partial derivatives of the gravity vector and the contact Jacobian matrix:

$$g(q) + \frac{\partial g}{\partial q}(q) \Delta q = S\tau + S\Delta\tau + J(q)^{\mathrm{T}}\lambda + J(q)^{\mathrm{T}}\Delta\lambda \\ + \left(\frac{\partial J^{\mathrm{T}}}{\partial q}(q)\lambda\right) \Delta q + \left(\frac{\partial J^{\mathrm{T}}}{\partial q}(q)\Delta\lambda\right) \Delta q. \quad (19)$$

We further neglect the following term, considering it to be of second order:

$$\left(\frac{\partial J^{\mathrm{T}}}{\partial q} \Delta \lambda\right) \Delta q \approx 0, \quad (20)$$

which leads to the derivative-based linear approximation of the equilibrium equation:

$$g(q) + \frac{\partial g}{\partial q}(q) \Delta q = S\tau + S\Delta\tau + J(q)^{\mathrm{T}}\lambda + J(q)^{\mathrm{T}}\Delta\lambda \\ + \left(\frac{\partial J^{\mathrm{T}}}{\partial q}(q)\lambda\right) \Delta q. \quad (21)$$

Note that if we choose instead to linearize the equilibrium equation by only considering small variations in the posture $(q+\Delta q, \lambda, \tau)$, then the following term appears:

$$\left(\frac{\partial J^{\mathrm{T}}}{\partial q}(q)\lambda\right) \Delta q, \quad (22)$$

which is of first order but also bilinear with respect to the decision variables $(\Delta q, \lambda)$. However, bilinear terms cannot be expressed in a QP formulation. Therefore, instead of neglecting the term (22), which is of first order, the former expression (21) provides a better approximation of the equilibrium equation by considering $(\Delta q, \Delta \lambda, \Delta \tau)$ as the decision variables.

In the formulation of SEIKO Retargeting, the equality constraint $(9g)$ is obtained by setting $q=q^d$ and $\lambda=\lambda^d$ in (21).

In the formulation of SEIKO Controller, the derivative of the joint flexibility model (4) is combined with (21) by setting $q=q^{\mathrm{flex}}$, $\lambda=\lambda^{\mathrm{flex}}$, $\tau=\tau^{\mathrm{flex}}$. This results in the derivative-based linear approximation of the equilibrium under flexibility:

$$g(q^{\mathrm{flex}}) + \frac{\partial g}{\partial q}(q^{\mathrm{flex}}) \Delta q^{\mathrm{flex}} = S\tau^{\mathrm{flex}} \\ + SK\Delta\theta^{\mathrm{cmd}} - SKS'\Delta q^{\mathrm{flex}} \\ + J(q^{\mathrm{flex}})^{\mathrm{T}}\lambda^{\mathrm{flex}} + J(q^{\mathrm{flex}})^{\mathrm{T}}\Delta\lambda^{\mathrm{flex}} \\ + \left(\frac{\partial J^{\mathrm{T}}}{\partial q}(q^{\mathrm{flex}})\lambda^{\mathrm{flex}}\right) \Delta q^{\mathrm{flex}}, \quad (23)$$

yielding equation (5).
### C. Whole-Body Balance Conditions

Ensuring the robustness and stability of the overall system requires sending feasible desired configurations to the controller, taking into account the robot's balance to prevent potential falls. Balance sufficient conditions such as the projection of the CoM onto the support polygon (for flat ground) or the Gravito-Inertial Wrench Cone (GIWC) [33] are advantageous for reduced models like the centroidal model, as they enable faster computations.

But these conditions do not consider the whole-body state and thus overlook joint kinematic and actuator torque limits. Instead, our formulation considers the complete whole-body configuration in quasi-static equilibrium. In this case, considering the CoM is not necessary, and both our SEIKO Retargeting and Controller formulation deliberately never explicitly include CoM consideration.

A sufficient condition for the robot to be balanced is that all contacts remain asymptotically stable, i.e., in contact with the environment without any relative motion between the effector in contact and the surface. For these conditions to be satisfied, both in static and dynamic cases, it is sufficient that for each contact, the contact wrench remains within a 6d or 3d convex polytope (see Section D). These conditions are explicitly enforced in SEIKO Retargeting QP by the inequality constraints in equation (9k).

Given our quasi-static assumption and instantaneous formulation (without considering the future), enforcing conditions at the next time step is sufficient to meet the asymptotic requirement. If these conditions hold true at the next time step, they should theoretically extend into the future. Furthermore, the quasi-static equilibrium assumption is enforced by ensuring that the computed posture and contact forces satisfy the equilibrium equation (1) through its linear approximation in equations (2) and (5).

### D. Contact Stability Conditions

A plane contact, which constrains 6 DoFs, between the robot's effector and the environment is considered stable when the relative linear and angular velocities between the effector and the contact surface are zero. Similarly, for point contact (3 DoFs), only the linear velocity is taken into account. For stability to be ensured, a sufficient condition is that the forces and torques, denoted by $\lambda = [f_x \ f_y \ f_z \ \tau_x \ \tau_y \ \tau_z]^T$, exerted on the environment by this contact, must satisfy the following convex inequalities [34] (the unilaterally, friction pyramid and Center of Pressure (CoP) constraints):

$$f_z \ge 0, \qquad (24)$$

$$\left| \frac{f_x}{f_z} \right| \le \mu, \quad \left| \frac{f_y}{f_z} \right| \le \mu, \qquad (25)$$

$$\left| \frac{\tau_y}{f_z} \right| \le CoP_x^{\max}, \quad \left| \frac{\tau_x}{f_z} \right| \le CoP_y^{\max}, \qquad (26)$$

$$\tau_z^{\min} \le \tau_z \le \tau_z^{\max}, \qquad (27)$$

where $\mu, CoP_x^{\max}, CoP_y^{\max} \in R$ are respectively the friction coefficient, and the maximum half lengths in the X and Y directions of the rectangular contact surface. The local Z axis

is aligned with the contact normal. Please refer to [34] for the expression of $\tau_z^{\min}$ and $\tau_z^{\max}$.

Additionally, a bound on the maximum normal force $f^{\max} \in R$ can be included to prevent excessive force from being applied, particularly on a fragile effector:

$$f_z \le f^{\max}. \qquad (28)$$

These inequality equations can be linearly rewritten as (refer to [35] for details):

$$C_{\text{contact}}\lambda + c_{\text{contact}} \ge 0, \qquad (29)$$

where $C_{\text{contact}} \in \mathbb{R}^{18 \times 6}$ and $c_{\text{contact}} \in \mathbb{R}^{18}$ for a plane contact, and $C_{\text{contact}} \in \mathbb{R}^{6 \times 3}$ and $c_{\text{contact}} \in \mathbb{R}^{6}$ for a point contact.

In (9k), all the contacts are stacked and $\lambda$ is replaced with $\lambda^d + \Delta\lambda^d$.

### E. Improved Contact Switching Procedure

We enhanced the contact switching procedure compared to our prior SEIKO Retargeting work [22]. To remove a contact, the desired contact force must smoothly be reduced to zero, often necessitating a smooth adjustment of the whole-body posture. To address this, SEIKO Retargeting employs a strategy of increasing the weight associated with the regularization task (9e): by heavily penalizing the contact force, the whole-body optimization naturally diminishes the force and adjusts the posture accordingly.

In [22], we empirically observed that smoothly increasing the weight of task (9e) using exponential growth yielded satisfactory switching motions. The contact is removed from the formulation when the desired force falls below a small threshold. However, the exponential choice and tuning of this procedure were arbitrary and not based on the robot's physical limits.

In this letter, we propose a refinement of this procedure. Instead of gradually increasing the weight of task (9e), we set it instantaneously to a high value (typically $1e4$). The smoothness of the transition is ensured by introducing two inequality constraints on the maximum rates of change for joint positions $\dot{\theta}^{\max}$ (9l) and contact wrenches $\dot{\lambda}^{\max}$ (9m).

While the overall generated motions between the two procedures are very similar, this updated approach requires fewer arbitrary choices and tuning. Additionally, it offers the added benefit of explicit control over transition duration by setting the rate of change limits, which has clear physical semantics.

## SUPPLEMENTARY REFERENCES

[33] S. Caron, Q.-C. Pham, and Y. Nakamura, "Leveraging cone double description for multi-contact stability of humanoids with applications to statics and dynamics." in *Robotics: science and systems*, vol. 11, 2015.

[34] ——, "Stability of surface contacts for humanoid robots: Closed-form formulae of the contact wrench cone for rectangular support areas," in *IEEE ICRA*, 2015.

[35] S. Feng, E. Whitman, X. Xinjilefu, and C. G. Atkeson, "Optimization-based full body control for the darpa robotics challenge," *Journal of field robotics*, vol. 32, no. 2, 2015.