# Motion Accuracy and Computational Effort in QP-based Robot Control

Sélim Chefchaouni, Mehdi Benallegue, Adrien Escande, Pierre-Brice Wieber

► To cite this version:

Sélim Chefchaouni, Mehdi Benallegue, Adrien Escande, Pierre-Brice Wieber. Motion Accuracy and Computational Effort in QP-based Robot Control. 2024. hal-04652473v2

HAL Id: hal-04652473

https://hal.science/hal-04652473v2

Preprint submitted on 17 Oct 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Motion Accuracy and Computational Effort in QP-based Robot Control

Sélim Chefchaouni<fnref n="1" />,*, Mehdi Benallegue<fnref n="2" />, Adrien Escande<fnref n="1" /> and Pierre-Brice Wieber<fnref n="1" />

**Abstract**— Quadratic Programs (QPs) have become a mature technology for the control of robots of all kinds, including humanoid robots. One aspect has been largely overlooked, however, which is the accuracy with which these QPs should be solved. QP solvers aim at providing solutions accurate up to floating point precision ($\approx 10^{-8}$). Considering physical quantities expressed in SI or similar units (meters, radians, etc.), such precision seems completely unrelated to both task requirements and hardware capacity. Typically, humanoid robots never achieve, nor are capable of achieving sub-millimeter precision in manipulation tasks. With this observation in mind, our objectives in this paper are two-fold: first examine how the QP solution accuracy impacts the resulting robot motion accuracy, then evaluate how a reduced solution accuracy requirement can be leveraged to reduce the corresponding computational effort. Experiments with a dynamic simulation of RHPS-1 humanoid robot indicate that computational effort can be divided by more than 27 while maintaining the desired motion accuracy.

## I. INTRODUCTION

Quadratic Programs (QPs) have become a mature technology for the control of robots of all kinds, applied successfully to complex problems such as biped and quadruped locomotion [1] [2], whole-body humanoid motion [3] [4], aerial manipulation [5], etc. They allow handling multiple simultaneous tasks while satisfying various physical constraints, but this usually comes at the cost of solving an optimization problem at each sampling period.

The corresponding computational effort incurs significant hardware requirements (and costs) for the embedded CPUs, and can also represent more than half of the energy consumption of the whole robot, even for a robot as complex as a humanoid [6] [7] [8]. Despite recent energy-efficient mechatronic designs [9] [10] and control approaches [8], the typical energy autonomy of current humanoid robots doesn't exceed a few hours at most [11] [12], which isn't satisfying for the applications usually targeted. Reducing the computational effort necessary to solve QPs in robot control laws could make a difference in this regard.

Solving a QP usually requires a series of matrix computations with algorithmic complexity $O(n^3)$, where the dimension $n$ of the QP typically varies from 10 to 1000 in the case of humanoid robot control. These computations

usually need to be updated at each sampling period, with typical control frequency $f$ from 100 to 1000 [Hz] [13]. The specific choice of which solver is used naturally impacts the computational effort to solve a QP [14]. Also, it has already been shown that lower-frequency control laws ($5 \sim 15$ [Hz]) can be perfectly reasonable for biped balancing [15], and that reducing the frequency of QP matrices updates can improve the performances of a controller in the case of predictive control schemes [16]. One aspect has been largely overlooked, however, which is the accuracy with which these QPs should be solved.

Typical QP solvers aim at providing solutions accurate up to floating point precision ($\approx 10^{-8}$). Considering physical quantities expressed in SI or similar units (meters, radians, etc.), such precision is unrelated to both task requirements and hardware capacity. Typically, humanoid robots never achieve, nor are capable of achieving sub-millimeter precision in manipulation tasks. With this observation in mind, our objectives in this paper are two-fold: first examine how

<figure><img src="image_2.png" /><figcaption>Fig. 1: Snapshot of simulated RHPS-1 robot controlled with a QP-based whole-body motion control law. The green square represents the desired left hand trajectory.</figcaption></figure>

<footnote>This work was supported by the French government under the management of Agence Nationale de la Recherche (ANR) through the INEXACT project (ANR-22-CE33-0007), and the European Union's Horizon 2020 research and innovation programme under the Marie Sklodowska-Curie grant agreement (grant no. 101066915).</footnote>

<footnote n="1">¹Inria Centre at Grenoble-Alpes University, Montbonnot-Saint-Martin, France.</footnote>

<footnote n="2">²CNRS-AIST Joint Robotics Laboratory (JRL), Tsukuba, Japan.</footnote>

<footnote>*Corresponding author. E-mail: selim.chefchaouni-moussaoui@inria.fr.</footnote>
the QP solution accuracy impacts the resulting robot motion accuracy, then evaluate how a reduced solution accuracy requirement can be leveraged to reduce the corresponding computational effort.

To do so, we introduce in Section II a typical QP-based whole-body motion controller. We examine in Section III how the QP solution accuracy impacts the resulting robot motion accuracy in a dynamic simulation of a RHPS-1 robot. We evaluate then in Section IV how a reduced solution accuracy requirement can be leveraged to reduce the corresponding computational effort, before concluding with a summary of findings and perspectives in Section V.

## II. PROBLEM FORMULATION

### A. System Representation

We consider an articulated robot with a floating base and $n_j \in \mathbb{N}$ actuated joints. We define the robot's configuration, velocity and acceleration as

$$ \hat{q} \in \mathrm{SE}(3) \times \mathbb{R}^{n_j} \qquad (1) $$

$$ \dot{q} \in \mathbb{R}^{6+n_j} \qquad (2) $$

$$ \ddot{q} \in \mathbb{R}^{6+n_j} \qquad (3) $$

where the configuration $\hat{q}$ involves an element of $\mathrm{SE}(3)$, the corresponding velocity being represented as an element of $\mathbb{R}^6$. As a result, the velocity $\dot{q}$ is not exactly the time-derivative of $\hat{q}$.

We consider a QP-based whole-body motion controller to compute at each sampling period an optimal control parameter

$$ x = [\ddot{q} \quad \tau \quad f_c]^\top \qquad (4) $$

including joint torques $\tau \in \mathbb{R}^{n_j}$ [17] and $n_c$ contact forces $f_c \in \mathbb{R}^{3 \times n_c}$ exerted by the robot feet on the ground [3]. We consider, however, that this motion controller eventually provides a reference configuration $\hat{q}^u$ and velocity $\dot{q}^u$ to low-level motor controllers, as represented in Fig. 2a.

### B. Task-Based Approach

We define kinematic tasks and their derivatives as

$$ e = \hat{g}(\hat{q}) \ominus \dot{g}^* \qquad (5) $$

$$ \dot{e} = J(\hat{q})\dot{q} - \ddot{g}^* \qquad (6) $$

$$ \ddot{e} = J(\hat{q})\ddot{q} + \dot{J}(\hat{q}, \dot{q})\dot{q} - \ddot{g}^* \qquad (7) $$

using a difference operator $\ominus$ between a function of the robot configuration $\hat{g}(\hat{q})$ and a (possibly time-dependent) target value $\hat{g}^*$. This operator depends on the image space of the function: typically, $x-y$ over $\mathbb{R}^n$ and $\log(y^{-1}x)$ over $\mathrm{SE}(3)$ or $\mathrm{SO}(3)$. Note that $\ddot{e}$ is related to $\ddot{q}$ linearly through the Jacobian matrix $J(\hat{q})$.

In order to regulate these tasks and derivatives to 0, we consider a critically damped Proportional-Derivative (PD) target behavior with gain $k$:

$$ \ddot{e}^* = ke + 2\sqrt{k}\dot{e}. \qquad (8) $$

Our QP-based whole-body motion controller will then include constraints $\ddot{e} = \ddot{e}^*$ and objectives $\|\ddot{e} - \ddot{e}^*\|^2$ which are respectively linear and quadratic functions of $\ddot{q}$.

<figure><img src="image_3.png" /><figcaption>Fig. 2: (a) Control scheme for a position and speed controlled robot based on an acceleration obtained from a QP. (b) Same scheme with noise $\sigma$ added to the QP solution to model solution inaccuracy.</figcaption></figure>

### C. Control Constraints

1) **Equations of Motion:** The robot must satisfy the equations of motion (EoM)

$$ M(\hat{q})\ddot{q} + h(\hat{q}, \dot{q}) = S\tau + J_c(\hat{q})^\top f_c \qquad (9) $$

with an inertia matrix $M(\hat{q})$, inertial effects $h(\hat{q}, \dot{q})$, a selection matrix $S = [0 \ I_{n_j}]^\top$ for joint actuators, and a contact Jacobian matrix $J_c(\hat{q})$.

2) **Feet Motion:** To keep both feet on the ground, we regulate their position and orientation:

$$ e_{\mathrm{lf}} = \xi_{\mathrm{lf}}(\hat{q}) \ominus \xi_{\mathrm{lf}}^* \qquad (10\mathrm{a}) $$

$$ e_{\mathrm{rf}} = \xi_{\mathrm{rf}}(\hat{q}) \ominus \xi_{\mathrm{rf}}^*. \qquad (10\mathrm{b}) $$

where $\xi_{\mathrm{lf}}$ and $\xi_{\mathrm{rf}}$ refer to the left and right foot respectively.

3) **Friction Cones:** Contact forces must stay inside friction cones, which we approximate as polytopes [18]:

$$ f_c \in C. \qquad (11) $$

4) **Joint Limits:** Joint motion must respect acceleration limits (that include position and velocity limits through a velocity damper [19]) and torque limits:

$$ \ddot{q}^- \le \ddot{q} \le \ddot{q}^+ \qquad (12) $$

$$ \tau^- \le \tau \le \tau^+. \qquad (13) $$

### D. Control Objectives

1) **Left Hand Motion:** In the experiments that follow, the main task for the robot is to track a desired trajectory (a vertical square with fixed hand orientation) with a frame attached to the left hand of the robot:

$$ e_1 = \xi_{\mathrm{lh}}(\hat{q}) \ominus \xi_{\mathrm{lh}}^*(t). \qquad (14) $$

2) **Center of Mass:** The Center of Mass (CoM) of the robot must stay nevertheless at a fixed position above the support polygon to preserve balance:

$$ e_2 = x_{\mathrm{CoM}}(\hat{q}) \ominus x_{\mathrm{CoM}}^*. \qquad (15) $$
3) Body Posture: A desired configuration $\hat{q}^*$ is specified:

$$e_3 = P(\hat{q} \ominus \hat{q}^*) \quad (16)$$

where $P$ is a diagonal weight matrix with lower weights on the left arm.

4) QP convexity: To ensure the uniqueness of the solution, we include an objective involving contact forces, making the QP strictly convex:

$$e_4 = f_c - f_c^* \quad (17)$$

### E. QP Formulation

Following the procedure outlined in Section II-B, these control constraints (9)-(13) and objectives (14)-(17) can be summarized in the following QP, using weights $w_i$:

$$\underset{x}{\text{minimize}} \quad \sum_{i=1}^{3} w_i \|\ddot{e}_i - \ddot{e}_i^*\|^2 + w_4 \|e_4\|^2 \quad (18)$$

subject to constraints derived from (9) to (13),

or in canonical form,

$$\underset{x}{\text{minimize}} \quad \frac{1}{2} \|Rx - s\|_W^2 = \frac{1}{2} x^\top G x + a^\top x + b \quad (19)$$

subject to $l \le Cx \le u$

where $G = R^\top W R \in \mathbb{R}^{n \times n}$ is a symmetric positive definite Hessian matrix, $a = -R^\top W s \in \mathbb{R}^n$ is the linear part of the objective function, $b \in \mathbb{R}^n$ is a constant vector, $C \in \mathbb{R}^{n \times m}$ is the constraints matrix with $l \in \mathbb{R}^m$ and $u \in \mathbb{R}^m$ the corresponding bounds (we can have $l_i = u_i$ for some $i$ to define equality constraints).

In practice, by separating the joint dynamics (denoted with subscript $_l$) from the floating base dynamics, the torques $\tau$ can be removed from this QP and computed separately with

$$\tau = M_l(\hat{q}) \ddot{q} + h_l(\hat{q}, \dot{q}) - J_{c,l}(\hat{q})^\top f_c, \quad (20)$$

then replaced in (9) and (12) (as well as $\tau^-$ and $\tau^+$). This helps reduce the computational effort to solve the QP by reducing the number of variables and constraints involved [20]. Consequently, we work with a reduced control parameter

$$x = [\ddot{q} \quad f_c]^\top \quad (21)$$

in the following. This QP is implemented in a closed-loop controller, as represented in Fig. 2a.

### III. MOTION ACCURACY AS A FUNCTION OF QP SOLUTION ACCURACY

#### A. Desired Motion Accuracy

The desired accuracy for each control objective introduced in the previous Section can vary, depending on the task that the robot has to fulfill. For typical tasks such as nailing [21] or peg-in-hole [22], we consider that the left hand position accuracy

$$e_x = \|x_{lh} - x_{lh}^*\| \quad (22)$$

should ideally stay below $10^{-3}$ [m]. Similarly, we consider that the hand orientation accuracy

$$e_r = \|\log(R_{lh}^\top R_{lh}^*)\| \quad (23)$$

<table><caption>TABLE I: Desired motion accuracy for each control objective of the robot.</caption><thead><tr><th>Control objective</th><th>Desired accuracy</th></tr></thead><tbody><tr><td>Left hand position</td><td>10<sup>-3</sup> [m]</td></tr><tr><td>Left hand orientation</td><td>10<sup>-3</sup> [rad]</td></tr><tr><td>CoM position</td><td>10<sup>-2</sup> [m]</td></tr><tr><td>Joint positions</td><td>10<sup>-2</sup> [m]</td></tr></tbody></table>

<table><caption>TABLE II: Gains $k$ and weights $w_i$ for the different control objectives.</caption><thead><tr><th>Control objective</th><th>k [s<sup>-2</sup>]</th><th>w<sub>i</sub></th></tr></thead><tbody><tr><td>Left hand position</td><td>cf. Table III</td><td>2000</td></tr><tr><td>Left hand orientation</td><td>cf. Table III</td><td>5000</td></tr><tr><td>CoM position (x and y axes)</td><td>100</td><td>1000</td></tr><tr><td>CoM position (z axis)</td><td>100</td><td>200</td></tr><tr><td>Body posture (left arm)</td><td>50</td><td>1</td></tr><tr><td>Body posture (other joints)</td><td>50</td><td>5000</td></tr><tr><td>Contact forces</td><td>-</td><td>0.01</td></tr></tbody></table>

should ideally stay below $10^{-3}$ [rad]. Since radians are defined with respect to arc length, we believe this provides a measure that can be directly compared to position accuracy.

Considering the typical size of the support polygon, we consider that the CoM position accuracy

$$e_{\text{CoM}} = \|x_{\text{CoM}} - x_{\text{CoM}}^*\| \quad (24)$$

should stay below $10^{-2}$ [m] to preserve balance of the robot.

Regarding the posture of the rest of the body, we propose to measure the joint centers' deviations in Cartesian space, as the impact of a deviation measured in joint space would deeply depend on the dimensions of the attached body. The deviation is measured as follows:

$$e_{\text{post}} = \frac{1}{h} \sum_{j \in \mathcal{H}} \|x_j - x_j^*\| \quad (25)$$

with $x_j$ the Cartesian position of joint $j$, $x_j^*$ its desired position obtained from the desired configuration $\hat{q}^*$, $\mathcal{H}$ the set of indices of joints not included in the left arm, which is discarded here, and $h$ the size of $\mathcal{H}$. We believe that a reasonable accuracy here would be also $10^{-2}$ [m] to avoid kinematic issues such as collisions. All these values are collected in Table I.

#### B. The Impact of QP Solution Accuracy

We consider a dynamic simulation of a RHPS-1 humanoid robot [23] with $n_j = 42$ articulated joints, controlled with the QP (18) (dimensions $n = 72$ and $m = 124$) using parameters from Table II at a standard frequency $f = 200$ [Hz], implemented in Python using the Pinocchio library [24]. To model solution accuracy, we introduce a uniform noise

$$\sigma \sim \mathcal{U}(-I_{\sigma}, +I_{\sigma}) \quad (26)$$

added to the solution of the QP with different values of $I_\sigma$, as shown in Fig. 2b. We can observe in Fig. 3 that this added uniform noise has little to no visible effect on motion
accuracy for values of $I_σ$ as large as $10^{-2}$, and that the desired motion accuracy specified in Table I is even satisfied for values as large as $10^0$ ($10^{-1}$ for the CoM position), indicating that it may be completely unnecessary to compute solutions of the QP (18) more accurately than this value.

## IV. REDUCED ACCURACY ALLOWS REDUCED COMPUTATIONAL EFFORT

### A. Updating QP Matrices Less Frequently

The QP (18) is solved at each sampling period with updated vectors and matrices. In our experiments, we solve it using a C++ implementation of a standard Goldfarb-Idnani dual active-set method [25], jrl-qp [26]. In this algorithm, expensive matrix computations with complexity $O(n^3)$ and $O(mn^2)$ are done once, at the beginning of the solution process:

- a Cholesky decomposition of the Hessian matrix $G = LL^T$,

- a matrix inversion $J = L^{-T}$,

- a matrix product $B = J^T N$ where $N$ is a selection of columns of $C^T$,

- a QR decomposition of $B = QR$,

- and a matrix product $H = JQ$.

Updating these matrix computations only every $r$ sampling periods could save a lot of computational effort. This corresponds to keeping the matrices $G$ and $C$ of the QP (19) constant over $r$ sampling periods while still updating its vectors $a$, $l$ and $u$. That would lead to potentially incorrect solutions, because these matrices vary with time, but we have seen that inaccurate solutions can have little to no visible effect on the resulting robot motion.

We can observe in Fig. 4 how this update ratio $r$ affects both the hand position and orientation tracking errors and the computational effort to solve the QP (18), measured over 1 [s] of robot motion using the C++ std::time library on an Intel® Core™ i7-13800H CPU. For update ratios up to $r = 22$, corresponding to a matrix update frequency

$$f_u = \frac{f}{r} \approx 9 \text{ [Hz]}, \quad (27)$$

there are no visible effects on hand motion tracking error, whereas the computational effort is reduced by more than 15 with respect to a standard controller (when $r = 1$). Beyond this value, motion accuracy starts degrading steeply with little additional gain in computational effort, making this value an obvious optimal choice.

### B. Updating the QP Solution Less Frequently

In addition to updating the QP matrices less frequently, we could also update the QP solution itself less frequently. This corresponds to keeping both the matrices $G$ and $C$ and the vectors $a$, $l$ and $u$ of the QP (19) constant over a larger period of time. But this corresponds to lowering the control frequency, and this requires lowering the feedback gain accordingly in order to keep the control law stable, what contributes to degrading the tracking accuracy. The feedback gain $k$ that we used for the left hand task is chosen

<table><caption>TABLE III: Feedback gain $k$ [s$^{-2}$] for the left hand motion (position and orientation), QP matrices update ratio $r$ and corresponding frequency $f_u$ [Hz] for varying control frequencies $f$ [Hz].</caption><thead><tr><th>Control freq.<br>$f$ [Hz]</th><th>Feedback gain<br>$k$ [s<sup>-2</sup>]</th><th>Update ratio<br>$r$</th><th>Update freq.<br>$f_u$ [Hz]</th></tr></thead><tbody><tr><td>200</td><td>18000</td><td>22</td><td>9.1</td></tr><tr><td>150</td><td>10000</td><td>16</td><td>9.4</td></tr><tr><td>100</td><td>4000</td><td>12</td><td>8.3</td></tr><tr><td>50</td><td>1150</td><td>5</td><td>10</td></tr><tr><td>25</td><td>280</td><td>3</td><td>8.3</td></tr></tbody></table>

empirically to minimize tracking error, and can be found in Table III for varying control frequencies $f$.

The update ratio $r$ of the QP matrices, and the corresponding update frequency $f_u$ need to be adapted as well to the control frequency $f$, as specified in Table III. We specifically look for the highest ratio $r$ such that tracking errors don't increase more than 5 % compared to the case when $r = 1$. We keep the feedback gains for other objectives fixed, however, as already stated in Table II. Interestingly, the optimal choice for the matrices update frequency always stays around $f_u \approx 9$ [Hz].

We can observe in Fig. 5 how this combination of varying control frequency, feedback gain and matrices update ratio affects both the hand position and orientation tracking errors and the computational effort to solve the QP (18), measured as before over 1 [s] of robot motion. With respect to the results already presented in Fig. 4, we can further reduce the computational effort by lowering the control frequency, but this comes at the cost of reducing motion accuracy. The desired accuracy specified in Table I can still be satisfied, however, with a control frequency as low as 50 [Hz], allowing a total reduction of computational effort by more than 27, from 91.9 [ms] per second of motion, down to 3.3 [ms]. As displayed in Fig. 6, the left hand motion obtained with these parameters has no visible difference with the motion obtained in the reference case.

## V. CONCLUSION

In this paper, we considered a dynamic simulation of a RHPS-1 humanoid robot standing on both legs while tracking a trajectory with its left hand, using a standard QP-based whole-body motion control law. We examined how the QP solution accuracy impacts the resulting robot motion accuracy, and evaluated how this can be leveraged to reduce the corresponding computational effort. The result is that we can divide this computational effort by more than 27 while maintaining the desired motion accuracy. This is obtained by carefully choosing the frequency at which the matrices $G$ and $C$ and the vectors $a$, $l$ and $u$ of the QP (19) are updated. The key observation is that sufficient motion accuracy is perfectly possible with very degraded QP solutions, which can be obtained in turn with heavily reduced computational effort. These initial findings need to be confirmed now in more complex, more dynamic scenarios (e.g. walking), on real
<figure><img src="image_4.png" /><figcaption>Fig. 3: Tracking errors as functions of noise level $I_\sigma$ added to the QP solution: (a) hand position and orientation, (b) CoM position and (c) joint positions.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>Fig. 4: Tracking errors and computational effort over 1 [s] of robot motion for varying QP matrices update ratios $r$.</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Fig. 5: Tracking errors and computational effort over 1 [s] of robot motion for varying control frequencies $f$, feedback gains $k$ and matrices update ratios $r$ as specified in Table III. An additional point with standard values ($f = 200$ [Hz], $r = 1$) is added for comparison.</figcaption></figure>
<figure><img src="image_7.png" /><figcaption>Fig. 6: Left hand motion in the yz plane. The left hand trajectory $x_{lh}$ is plotted for the reference case ($f = 200$ [Hz], $r = 1$) and the faster case satisfying the desired accuracy ($f = 50$ [Hz], $r = 5$).</figcaption></figure>

hardware. We believe, however, that this shows a promising direction to reduce the computational burden of QP-based robot control laws.

## REFERENCES

[1] A. Herdt, H. Diedam, P. Wieber, D. Dimitrov, K. D. Mombaur, and M. Diehl, "Online Walking Motion Generation with Automatic Footstep Placement," *Adv. Robotics*, vol. 24, no. 5-6, pp. 719-737, 2010.

[2] S. Fahmi, C. Mastalli, M. Focchi, and C. Semini, "Passive Whole-body Control for Quadruped Robots: Experimental Validation over Challenging Terrain," vol. 4, no. 3, pp. 2553-2560.

[3] R. Cisneros, M. Benallegue, A. Benallegue, M. Morisawa, H. Audren, P. Gergondet, A. Escande, A. Kheddar, and F. Kanehiro, "Robust Humanoid Control Using a QP Solver with Integral Gains," in *2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)*. Madrid: IEEE, Oct. 2018, pp. 7472-7479.

[4] A. Kheddar, S. Caron, P. Gergondet, A. Comport, A. Tanguy, C. Ott, B. Henze, G. Mesesan, J. Englberger, M. A. Roa, P.-B. Wieber, F. Chaumette, F. Spindler, G. Oriolo, L. Lanari, A. Escande, K. Chap-pellet, F. Kanehiro, and P. Rabaté, "Humanoid Robots in Aircraft Manufacturing: The Airbus Use Cases," *IEEE Robotics & Automation Magazine*, vol. 26, no. 4, pp. 30-45, 2019.

[5] G. Nava, Q. Sablé, M. Tognon, D. Pucci, and A. Franchi, "Direct Force Feedback Control and Online Multi-Task Optimization for Aerial Manipulators," *IEEE Robotics and Automation Letters*, vol. 5, no. 2, pp. 331-338, 2020.

[6] J. Heredia, R. J. Kirschner, C. Schlette, S. Abdolshah, S. Haddadin, and M. B. Kjægaard, "ECDP: Energy Consumption Disaggregation Pipeline for Energy Optimization in Lightweight Robots," *IEEE Robotics and Automation Letters*, vol. 8, no. 10, pp. 6107-6114, 2023.

[7] S. A. Mohamed, M.-H. Haghbayan, A. Miele, O. Mutlu, and J. Plosila, "Energy-Efficient Mobile Robot Control via Run-time Monitoring of Environmental Complexity and Computing Workload," in *2021 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)*, 2021, pp. 7587-7593.

[8] B. Henze, M. A. Roa, A. Werner, A. Dietrich, C. Ott, and A. O. Albu-Schäffer, "Experiments with Human-inspired Behaviors in a Humanoid Robot: Quasi-static Balancing using Toe-off Motion and Stretched Knees," *2019 International Conference on Robotics and Automation (ICRA)*, pp. 2510-2516, 2019.

[9] G. Fadini, T. Flayols, A. Del Prete, N. Mansard, and P. Souères, "Computational Design of Energy-Efficient Legged Robots: Optimizing for Size and Actuators," in *2021 IEEE International Conference on Robotics and Automation (ICRA)*, 2021, pp. 9898-9904.

[10] R. Balderas Hill, S. Briot, A. Chriette, and P. Martinet, "Performing Energy-Efficient Pick-and-Place Motions for High-Speed Robots by using Variable Stiffness Springs," *Journal of Mechanisms and Robotics*, vol. 14, pp. 051004-1-051004-10, Feb. 2022.

[11] J.-Y. Kim, I.-W. Park, J. Lee, M.-S. Kim, B. kyu Cho, and J.-H. Oh, "System Design and Dynamic Walking of Humanoid Robot KHR-2," in *Proceedings of the 2005 IEEE International Conference on Robotics and Automation*, 2005, pp. 1431-1436.

[12] R. Tellez, F. Ferro, S. Garcia, E. Gomez, E. Jorge, D. Mora, D. Pinyol, J. Oliver, O. Torres, J. Velazquez, and D. Faconti, "Reem-B: An Autonomous Lightweight Human-Size Humanoid Robot," in *Humanoids 2008 - 8th IEEE-RAS International Conference on Humanoid Robots*, 2008, pp. 462-468.

[13] S. M. Neuman, B. Plancher, T. Bourgeat, T. Tambe, S. Devadas, and V. J. Reddi, "Robomorphic Computing: A Design Methodology for Domain-Specific Accelerators Parameterized by Robot Morphology," in *Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems*, ser. ASPLOS '21. New York, NY, USA: Association for Computing Machinery, 2021, p. 674-686.

[14] A. Bambade, S. El-Kazdadi, A. Taylor, and J. Carpentier, "PROX-QP: Yet another Quadratic Programming Solver for Robotics and beyond," in *RSS 2022 - Robotics: Science and Systems*, New York, United States, Jun. 2022.

[15] N. A. Villa, J. Englberger, and P.-B. Wieber, "Sensitivity of Legged Balance Control to Uncertainties and Sampling Period," *IEEE Robotics and Automation Letters*, vol. 4, no. 4, pp. 3665-3670, 2019.

[16] Y. Chen, M. Bruschetta, D. Cuccato, and A. Beghi, "An Adaptive Partial Sensitivity Updating Scheme for Fast Nonlinear Model Predictive Control," *IEEE Transactions on Automatic Control*, vol. 64, no. 7, pp. 2712-2726, 2019.

[17] M. Djeha, P. Gergondet, and A. Kheddar, "Robust Task-Space Quadratic Programming for Kinematic-Controlled Robots," *IEEE Transactions on Robotics*, vol. 39, no. 5, pp. 3857-3874, Oct. 2023.

[18] K. Bouyarmane, S. Caron, A. Escande, and A. Kheddar, *Multi-contact Motion Planning and Control*. Dordrecht: Springer Netherlands, Jan. 2018.

[19] J. Vaillant, A. Kheddar, H. Audren, F. Keith, S. Brossette, A. Escande, K. Bouyarmane, K. Kaneko, M. Morisawa, P. Gergondet, E. Yoshida, S. Kajita, and F. Kanehiro, "Multi-Contact Vertical Ladder Climbing with an HRP-2 Humanoid," *Autonomous Robots*, vol. 40, no. 3, pp. 561-580, Mar. 2016.

[20] A. Herzog, L. Righetti, F. Grimminger, P. Pastor, and S. Schaal, "Balancing Experiments on a Torque-Controlled Humanoid with Hierarchical Inverse Dynamics," in *2014 IEEE/RSJ International Conference on Intelligent Robots and Systems*, 2014, pp. 981-988.

[21] T. Tsujita, A. Konno, S. Komizunai, Y. Nomura, T. Owa, T. Myojin, Y. Ayaz, and M. Uchiyama, "Humanoid Robot Motion Generation for Nailing Task," in *2008 IEEE/ASME International Conference on Advanced Intelligent Mechatronics*, 2008, pp. 1024-1029.

[22] C. H. Kim and J. Seo, "Shallow-Depth Insertion: Peg in Shallow Hole Through Robotic In-Hand Manipulation," *IEEE Robotics and Automation Letters*, vol. 4, no. 2, pp. 383-390, 2019.

[23] M. Benallegue, G. Lorthioir, A. Dallard, R. Cisneros-Limón, I. Kumagai, M. Morisawa, H. Kaminaga, M. Murooka, A. André, P. Gergondet, K. Kaneko, G. Caron, F. Kanehiro, A. Kheddar, S. Yukizaki, J. Karasuyama, J. Murakami, and M. Kamon, "Humanoid Robot RHP Friends: Seamless Combination of Autonomous and Teleoperated Tasks in a Nursing Context," Unpublished Manuscript.

[24] J. Carpentier, G. Saurel, G. Buondonno, J. Mirabel, F. Lamiraux, O. Stasse, and N. Mansard, "The Pinocchio C++ Library – A Fast and Flexible Implementation of Rigid Body Dynamics Algorithms and their Analytical Derivatives," in *IEEE International Symposium on System Integrations (SII)*, 2019.

[25] D. Goldfarb and A. Idnani, "A Numerically Stable Dual Method for Solving Strictly Convex Quadratic Programs," *Mathematical Programming*, vol. 27, no. 1, pp. 1-33, Sep. 1983.

[26] A. Escande, "jrl-qp: Tools and implementations to write, specialize and test QP solvers," 2024. [Online]. Available: https://github.com/jrl-umi3218/jrl-qp