# Dynamics aware Cartesian wrench polytope estimation based on human musculoskeletal models

Antun Skuric, Nasser Rezzoug, David Daney, Vincent Padois

► To cite this version:

Antun Skuric, Nasser Rezzoug, David Daney, Vincent Padois. Dynamics aware Cartesian wrench polytope estimation based on human musculoskeletal models. Computer Methods in Biomechanics and Biomedical Engineering, 2023, 26 (sup1), pp.S210-S212. 10.1080/10255842.2023.2246304. hal-04190087

HAL Id: hal-04190087

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

Submitted on 29 Aug 2023

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 CC BY 4.0 - Attribution - International License
# Dynamics aware Cartesian wrench polytope estimation based on human musculoskeletal models

A. Skuric<sup>a*</sup>, N. Rezzoug<sup>ab</sup>, D. Daney<sup>a</sup> and V. Padois<sup>a</sup>

## 1. Introduction

Cartesian wrench capacity, the range of achievable forces and moments that a human, with different parts of his body, can generate in different directions of space, is an important tool for analyzing human physical abilities in various fields such as sport and rehabilitation (Rezzoug et al. 2021). However, obtaining this information through empirical means is time-consuming and often limited to static conditions. Musculoskeletal models provide an efficient way of calculating Cartesian wrench capacity metrics, such as Cartesian wrench polytopes, enabling real-time applications (Skuric et al. 2022; Carmichael et al. 2011). However, when using these metrics on the fly, it is essential to consider the dynamic factors related to gravity and inertia.

Therefore in this paper, we propose a new extended formulation of Cartesian wrench capacity polytope based on musculoskeletal models accounting for these motion and gravity related effects.

## 2. Methods

The dynamical model of the human musculoskeletal model can be expressed as

$$M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + g(q) = -L^T(q)t - J^T(q)F$$
where $M(q)$ and $C(q, \dot{q})$ are state $q, \dot{q}$ dependent inertia and Coriolis and centrifugal matrix, $g(q)$ is the vector of gravity induced joint torques. Matrix $-L(q)^T$ is the muscle moment arm matrix describing the relationship between muscular forces and generated joint torques $\tau = -L(q)^T t$ and $J(q)$ is the jacobian matrix relating joint velocities $\dot{q}$ and the cartesian velocity $\dot{x} = J(q) \dot{q}$. Vector $t$ is a vector of muscular tension forces and $F$ is the generated cartesian wrench.

### 2.1 Influence of dynamic on the wrench generation

The generation of the Cartesian wrench $F$ involves two main factors: muscular forces $t$ and the effects of rigid body dynamics. These effects can be represented as a state-dependent bias joint torque vector.

$$\tau_b(q, \dot{q}, \ddot{q}) = M(q) \ddot{q} + C(q, \dot{q}) \dot{q} + g(q)$$

If assuming kineto-static conditions, where velocity and acceleration is approximately zero $\dot{q}, \ddot{q} \approx 0$, the bias vector corresponds to the gravity vector $g(q)$. The influence of dynamical movements is present in the range of available muscular forces as well

$$t \in [t_{min}(q, \dot{q}), t_{max}(q, \dot{q})]$$

as they depend on the muscle lengths and contraction velocities which can be known from $q$ and $\dot{q}$. $t_{min}$ and $t_{max}$ correspond to the muscular forces produced by fully activated (activation $a=1$) and unactivated ($a=0$) muscle correspondingly.

### 2.2 Cartesian wrench polytope formulation

For given joint position $q_k$, velocity $\dot{q}_k$ and acceleration $\ddot{q}_k$, jacobian $J_k = J(q_k)$ and moment arm $L_k = L(q_k)$ matrices can be determined, as well as the range of available muscle tension forces $t_{k,min}, t_{k,max}$ and the bias vector $\tau_{k,b}$. Finally, the resulting set of all achievable Cartesian wrenches $F$ can be represented as a convex polytope

$$P = \{ F \mid t \in [t_{k,min}, t_{k,max}], J_k^T F = -L_k^T t - \tau_{k,b} \}$$

### 2.3 Polytope evaluation

In order to transform this polytope to the minimal set of vertices (vertex representation) or a set of constraints $HF \le d$ (half-plane representation) an extension of the Iterative convex hull method (ICHM) (Skuric et al. 2022) is proposed. ICHM is defined for families of problems

$$P_x = \{ x \mid y \in [y_{min}, y_{max}], Ax = By \}$$

To enable this method to evaluate the dynamics aware Cartesian wrench polytope $P$, it needs to be extended to account for additional bias $b$

$$P_x = \{ x \mid y \in [y_{min}, y_{max}], Ax = By + b \}$$

If the vector $By + b$ belongs to the image $Im\{A\}$ of the matrix $A$, then the problem can be reformulated as

$$x = A^+(By + b)$$

where $A^+$ is the pseudo-inverse of $A$. To ensure that $By + b$ does belong to $Im\{A\}$, the equality constraint can be enforced

$$V_2^T By + V_2^T b = 0$$

where $V_2^T$ is the projector matrix onto the null-space of $A$, obtained from its Singular Value Decomposition (SVD). This constraint guarantees that any solution $x$ to the equation $x = A^+(By + b)$ also satisfies the original equation $Ax = By + b$.

Finally, the new formulation of the Linear Program (LP) used by the ICHM for finding the extreme points (vertices) of the polytope $P_x$, in the direction of space defined by the vector $c$, becomes

<footnote><sup>a</sup> AUCTUS team, INRIA Bordeaux, Bordeaux INP, Talence, France</footnote>

<footnote><sup>b</sup> Institut PPrime, CNRS-Université de Poitiers-ENSMA, UPR 3346, Poitiers, France</footnote>
$$
\begin{array}{l}
\max c^T A^+ By + c^T A^+ b \\
\text{s.t.} \quad V_2^T By = -V_2^T b \\
\qquad y_{\min} \le y \le y_{\max}
\end{array}
$$

3. Results and discussion

To demonstrate the influence of dynamical effects, a 3D Cartesian force polytope P is calculated for a 50 muscle, 7 degrees of freedom, upper limb musculoskeletal model (Holzbaur et al. 2005), generating forces with its hand. To make these effects more visible the model has been extended to include a mass of 5kg rigidly fixed to its hand. The joint configuration used for the experiments is

$$
q_o = [0, 0.76, -1.29, 1.82, 0, 0, 0]^T
$$

The first experiment demonstrates the effect of gravity on the polytope P. For this experiment the kineto-static conditions are assumed $\dot{q}_o, \ddot{q}_o = 0$, where the bias vector becomes $\tau_b(q_o, 0, 0) = g(q_o)$.

<figure><img src="image_2.png" /><figcaption>Figure 1. Cartesian wrench polytope with (green) and without (gray) the effect of gravity</figcaption></figure>

The influence of the arm's gravity on the polytope *P* can be seen as a vertical shift of the polytope. As shown on Figure 1, compared to no gravity polytope, the arm is capable of applying a higher force in the gravity direction and a lower force in the opposite direction, while forces in other directions are not impacted.

In the second experiment, the effect of the arm's
movement is demonstrated. Joint velocity $\dot{q}_o$ and
acceleration $\ddot{q}_o$ are set to ones producing $2 \, \text{ms}^{-1}$ and
$2 \, \text{ms}^{-2}$ in the x-axis direction.

$$
J(q_o) \dot{q}_o = [2, 0, 0]^T \text{ms}^{-1}, \quad J(q_o) \ddot{q}_o = [2, 0, 0]^T \text{ms}^{-2}
$$

<figure><img src="image_3.png" /><figcaption>Figure 2. Cartesian wrench polytope with (blue) and without (gray) the effects of dynamics and gravity</figcaption></figure>

Figure 2 shows that when considering the effect of the
arm's movement in the x-axis (red arrow), the
polytope *P* is shifted in the same direction. This fact

confirms that the arm is capable of generating higher
forces in the direction of movement.

Average polytope calculation time is around 150ms.
The experiments are implemented in programming
language python using biorbd library (Michaud et al.
2021) and the proposed method is available as a part
of the open-source python library called *pycapacity*<fnref n="1" />.

4. Conclusions

In conclusion, this paper presents a new method for
calculating human wrench capacity polytopes based
on musculoskeletal models that takes into
consideration the dynamics of the human body. The
method has a potential to be used in real-time
applications and could be a useful tool for analyzing
human performance online.

However, the method relies entirely on the accuracy
of the musculoskeletal model used. Therefore, further
work is needed to validate the accuracy of the
calculated values against real data to ensure the
reliability of the method.

Acknowledgements

Partially funded by the BPI France project Lichie.

References

Carmichael MG, Liu D. Towards using musculoskeletal models for intelligent control of physically assistive robots. Annual International Conference of the IEEE Engineering in Medicine and Biology Society. IEEE Engineering in Medicine and Biology Society. Annual International Conference. 2011;2011:8162–8165.

Holzbaur KRS, Murray WM, Delp SL. A model of the upper extremity for simulating musculoskeletal surgery and analyzing neuromuscular control. Annals of biomedical engineering. 2005;33(6):829–840.

Michaud B, Begon M. biorbd: A C++, Python and MATLAB library to analyze and simulate the human body biomechanics. Journal of open source software. 2021;6(57):2562.

Rezzoug N, Hernandez V, Gorce P. Upper-limb isometric force feasible set: Evaluation of joint torque-based models. Biomechanics (Basel, Switzerland). 2021;1(1):102–117.

Skuric A, Padois V, Rezzoug N, Daney D. On-line feasible wrench polytope evaluation based on human musculoskeletal models: An iterative convex hull method. IEEE robotics and automation letters. 2022;7(2):5206–5213.

**Keywords:** wrench polytopes; musculoskeletal human model; rigid body dynamics;

*Corresponding author

Email: antun.skuric@inria.fr

<footnote n="1">¹ https://pypi.org/project/pycapacity/</footnote>