# Quadratic-programming based simulation for human movement analysis

Anna Bucchieri, Serena Ivaldi, Pauline Maurice

► To cite this version:

Anna Bucchieri, Serena Ivaldi, Pauline Maurice. Quadratic-programming based simulation for human movement analysis. SB 2025 - 50ème congrès de la Société de Biomécanique, Oct 2025, Marseille, France. hal-05229492

HAL Id: hal-05229492

https://inria.hal.science/hal-05229492v1

Submitted on 29 Aug 2025

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
# Quadratic-programming based simulation for human movement analysis

Anna Bucchieri, Serena Ivaldi, Pauline Maurice

Université de Lorraine, CNRS, Inria, LORIA, F-54000 Nancy

*Corresponding author: anna.bucchieri@inria.fr

**Keywords:** Human motion analysis, Inverse kinematics, Inverse dynamics, Quadratic programming, Physics-based simulation

## 1. Introduction

Work-related musculoskeletal disorders are a major concern in physically demanding jobs. Digital human simulation is a powerful tool to estimate internal forces and complement experimental assessments when designing or evaluating workstations. Biomechanical analysis of human motion is traditionally done through inverse kinematics (IK) and inverse dynamics (ID), to estimate the joint trajectories and forces. An alternative approach introduced in [1] uses Quadratic Programming (QP) in a physics-based simulation to directly compute the human joint torques needed to track Cartesian trajectories. Given the growing interest for robotic assistance such as occupational exoskeletons, a benefit of the QP-based approach is that it can readily account for the physical effect of the assistance in the human motion computation. However, the accuracy of the motion and force estimated with QP have not been validated against the standard IK-ID approach so far, even in non-assisted conditions. This study therefore aims to fill this gap and quantitatively compare QP-based and IK-ID motion analysis.

## 2. Methods

### 2.1 Algorithms

**IK-ID:** IK-ID was implemented using the Pinocchio and Pink libraries [2].

**QP:** QP control computes joint torques and ground reaction forces (GRF) that minimize a weighted sum of errors between actual and reference Cartesian trajectories, under physical (dynamic model equation, contact) and biomechanical (joint and torque limits) constraints [21]. QP control was implemented with TSID library and coupled to a physics engine based on Dart [3].

Both algorithms were run on the same human model, and tracked position and orientation of all body segments. IK and QP weights were tuned manually, with higher values for distal segments (hands, head, feet).

### 2.2 Experimentation

The motion and force estimated with IK-ID and QP were compared using experimental data of 3 able-bodied participants (protocol approved by INRIA ethical committee #2024-09). Participants performed a manual tracking task with a 0.78kg tool, in 7 conditions, each repeated 12 times [4]. Whole-body kinematics was recorded with Xsens inertial motion capture system (240Hz), and GRF with AMTI force plates (100Hz). These data served as input for IK-ID (Xsens + GRF) and QP (Xsens only).

## 3. Results and discussion

Fig. 1 displays the recorded and reconstructed (IK and QP) hand trajectory of one representative trial. Table 1 presents RMSE between reconstructed human segments poses with both methods, and ground truth Xsens data. The tracking accuracy is higher with IK compared to QP, yet the average RMSE remains below 2.6cm (position) and 15° (orientation) for all segments. The high orientation error on the forearm is similar for both methods, suggesting this is due to the human model rather than the algorithm. RMS difference between joint positions estimated with IK and QP remains below 4.7±3.7° (ankle). RMS difference between upper-body joint torques estimated with ID and QP remains below 2.6±1.9N.m (lumbar). Contrary to IK, the QP-based analysis currently imposes to keep the feet fixed throughout the trial, to maintain ground contact. This explains the lower tracking performance for the lower-limb, since participants sometimes slightly moved their feet (e.g. standing on toes in squat and overhead postures).

The computation time is of the same order of magnitude with both methods (IK-ID: 10.3±2.5s; QP: 12.4±2.6s, for trials around 25s long).

## 4. Conclusions

This work assessed the reliability of QP-based motion analysis, an alternative to IK-ID. While IK tracking accuracy remains superior to QP, mostly due to the fixed feet constraint, QP-based analysis offers an alternative with a reasonable accuracy. In addition, QP weights were tuned manually, but automatic tuning using Bayesian optimization or CMA-ES is investigated to further improve the tracking accuracy. Importantly, QP offers two advantages over IK-ID. First, GRF are automatically estimated, thus no force plates are needed, which facilitates acquisition especially for field studies. Second, physical effects of an assistance (e.g. exoskeleton) can be directly included in the motion computation, potentially enabling to simulate motor adaptation induced by the assistance for predictive assessment. Starting from
motion data collected in a non-assisted situation, a digital mock-up of the exoskeleton can be coupled to the human model to compute the resulting biomechanical load and associated motion. Future work involves analyzing more participants and a larger variety of motions. The addition of a balance objective in the QP formulation is also under investigation, to enable the analysis of motions where human balance is more challenged (which currently results in the human model falling), with a trade-off between stability and tracking accuracy.

## Funding

This work was supported by LUE EXOSIM project.

## References

[1] Maurice, P., Padois, V., Measson, Y., & Bidaud, P. (2019). Assessing and improving human movements

using sensitivity analysis and digital human simulation. International Journal of Computer Integrated Manufacturing, 32(6), 546-558.

[2] Carpentier, J., Saurel, G., Buondonno, G., Mirabel, J., Lamiraux, F., Stasse, O., & Mansard, N. (2019, January). The Pinocchio C++ library: A fast and flexible implementation of rigid body dynamics algorithms and their analytical derivatives. In 2019 IEEE/SICE International Symposium on System Integration (SII).

[3] Del Prete, A., Nori, F., Metta, G., & Natale, L. (2015). Prioritized motion-force control of constrained fully-actuated robots: "Task Space Inverse Dynamics". Robotics and Autonomous Systems, 63, 150-157.

[4] Colombel, J., Thomas, V., Colas, F., & Maurice, P. (2024). Identifying human movement strategies for human-robot collaboration. Multidisciplinary Biomechanics Journal, 49.

<figure><img src="image_2.png" /><figcaption>**Figure 1.** Right hand Cartesian trajectory (X,Y,Z) of one representative trial and participant, from Xsens data (red) and reconstructed with IK (blue) and with QP (green).</figcaption></figure>

<table><caption>**Table 1.** Comparison of motion and force reconstructed with IK-ID and QP. Top: RMSE (mean±SD) between segment Cartesian position and orientation reconstructed with IK or QP, and Xsens data. Bottom: RMSE (mean±SD) between joint positions (q) and torques (τ) reconstructed with IK-ID and with QP. Mean and SD are computed on all participants, all conditions and all trials. Bold (resp. underlined) results indicate the maximum (resp. minimum) value. Lower-body torques are work in progress.</caption><thead><tr><th></th><th>Wrist</th><th>Elbow</th><th>Shoulder</th><th>Head</th><th>Pelvis</th><th>Hip</th><th>Ankle</th><th>Average</th></tr></thead><tbody><tr><td colspan="9">Cartesian position (norm) [cm]</td></tr><tr><td>QP</td><td>1.99±1.03</td><td>2.33±1.0</td><td>1.04±0.53</td><td>1.18±0.62</td><td>1.51±0.73</td><td>1.66±0.84</td><td>2.56±1.78</td><td>1.66</td></tr><tr><td>IK</td><td>0.26±0.19</td><td>1.26±0.63</td><td>0.42±0.49</td><td>0.09±0.09</td><td>0.37±0.31</td><td>0.51±0.69</td><td>0.13±0.17</td><td>0.44</td></tr><tr><td colspan="9">Cartesian orientation (average across roll, pitch, yaw) [degree]</td></tr><tr><td>QP</td><td>8.15±12.1</td><td>14.38±19.6</td><td>4.91±4.43</td><td>1.18±0.62</td><td>2.12±1.5</td><td>1.73±1.21</td><td>4.62±0.3.89</td><td>4.88</td></tr><tr><td>IK</td><td>1.59±3.24</td><td>13.86±19.3</td><td>6.28±5.57</td><td>0.09±0.09</td><td>1.51±2.09</td><td>1.86±3.27</td><td>0.46±0.76</td><td>4.00</td></tr><tr><td colspan="9">Joint positions [degree] and torques [N.m]</td></tr><tr><td>Δq</td><td>2.87±2.63</td><td>3.75±3.25</td><td>3.19±5.05</td><td>1.18±0.62</td><td>2.47±3.4</td><td>3.43±3.98</td><td>4.71±3.70</td><td>2.68</td></tr><tr><td>Δτ</td><td>0.25±0.29</td><td>0.39±0.62</td><td>1.16±1.06</td><td>0.09±0.09</td><td>2.61±1.88</td><td></td><td></td><td></td></tr></tbody></table>