# Dynamic Models for Simulation of Cable-Driven Parallel Robots with Elasticity and Sagging

Karim Moussa, Maxime Thieffry, Fabien Claveau, Philippe Chevrel, Stéphane Caro

► To cite this version:

Karim Moussa, Maxime Thieffry, Fabien Claveau, Philippe Chevrel, Stéphane Caro. Dynamic Models for Simulation of Cable-Driven Parallel Robots with Elasticity and Sagging. Mechanism and Machine Theory, 2025, 209 (July 2025), pp.105972. 10.1016/j.mechmachtheory.2025.105972. hal-04977864v2

HAL Id: hal-04977864

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

Submitted on 6 Mar 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
# Dynamic Models for Simulation of Cable-Driven Parallel Robots with Elasticity and Sagging*

Karim Moussa<sup>a,*</sup>, Maxime Thieffry<sup>b</sup>, Fabien Claveau<sup>b</sup>, Philippe Chevrel<sup>b</sup>, Stéphane Caro<sup>b</sup>

## Abstract

Cable-Driven Parallel Robots (CDPRs) are a type of parallel robots that uses cables instead of rigid links, making accurate modeling complex due to intricate cable dynamics. For simulation and control applications, it is appropriate to employ simplifying hypotheses to account for cable deformations. However, when high precision is necessary, models capturing the cable deformation become compulsory, making it challenging to balance model fidelity with computation time. This paper addresses this challenge, by proposing and comparing dynamic models of CDPRs that are both accurate and suitable for controller design. Leveraging recent advances in Finite Element Method (FEM) modeling for robotics, this paper extends recent findings and adapts them to the specific case of CDPRs. Additionally, a second model based on the assumed mode approach is extended to 3D context. The accuracy of both models is then compared with that of a lumped parameter model provided by the commercial software MapleSim, focusing on pick-and-place tasks to highlight the strengths and limitations of each approach for establishing a common benchmark. Following initial experimental validation of the models' precision in a single-cable setup, the FEM model was selected as a comparison reference. Finally, simulation results for an eight-cable 3D suspended robot are presented.

**Keywords:** Cable-Driven Parallel Robots, Dynamic Modeling, Finite Element Method, Cable Model, Beam Theory, Assumed Mode

## Nomenclature

**A** Jacobian matrix of constraints, $\in \mathbb{R}^{3m \times 4m+6}$ (assumed mode) or $\in \mathbb{R}^{3m+\sum_{k=0}^{m} 3pk+3wk \times (6p+8)m+6}$ (Timoshenko).

**A** Cross-sectional area of the cable.

$A_k$ Anchoring point of pulley $k$ and cable entry point.

$A'_k$ Cable exit point on pulley $k$.

$A_{si}$ Cross-sectional area of each strand in layer $i$.

$A_{sy}$, $A_{sz}$ Cable cross-sectional area due to shear along $y$ and $z$ directions.

**Ad**$_T_j$ Adjoint map of transformation matrix $T_j$, $\in \mathbb{R}^{6 \times 6}$.

$a$ Number of layers in the cable.

$B_k$ Cable attachment point on the platform.

$\mathbf{b}_k$ Coordinates vector $(x_{Bk}, y_{Bk}, z_{Bk})^T$ of $B_k$ on the platform side in $\mathcal{F}_b$, $\in \mathbb{R}^3$.

$\mathbf{b}_k(\mathbf{q}_k)$ Coordinates vector $(x_{Bk}(\mathbf{q}_k), y_{Bk}(\mathbf{q}_k), z_{Bk}(\mathbf{q}_k))^T$ of $B_k$ on the cable side in $\mathcal{F}_b$, $\in \mathbb{R}^3$.

$\mathbf{b}_{kl}$ Coordinates vector $(x_{Bkl}, y_{Bkl}, z_{Bkl})^T$ of $B_k$ in $\mathcal{F}_p$, $\in \mathbb{R}^3$.

$C_k$ Center of the pulley.

<footnote><sup>a</sup>Nantes Université, IRT Jules Verne, F-44000, Nantes, France</footnote>

<footnote><sup>b</sup>Nantes Université, École Centrale Nantes, IMT Atlantique, CNRS, LS2N, UMR 6004, F-44000, Nantes, France</footnote>

<footnote>*This work was supported by both IRT Jules Verne in the framework of the PERFORM program and ROBOTEX 2.0 (Grants ROBOTEX ANR-10-EQPX-44-01 and TIRREX ANR-21-ESRE-0015).</footnote>

<footnote>*Corresponding author</footnote>
c(\dot{q}, q) Generalized forces vector due to the kinetic energy specific to the assumed mode robot, $\in \mathbb{R}^{4m+6}$.

c(\dot{q}^b, q^b) Generalized forces vector due to the kinetic energy specific to the Timoshenko robot, $\in \mathbb{R}^{(6p+8)m+6}$.

c_p(\dot{q}_p, q_p) Generalized forces vector due to the kinetic energy of the platform, $\in \mathbb{R}^6$.

$d_k$ Indicator variable to distinguish cables pulling upwards and downwards.

E Young's modulus of the cable.

$\mathcal{F}_b(O_b, \mathbf{x}_b, \mathbf{y}_b, \mathbf{z}_b)$ Global frame.

$\mathcal{F}_{ck}(A'_k, \mathbf{x}_{ck}, \mathbf{y}_{ck}, \mathbf{z}_{ck})$ Local frame of cable k.

$\mathcal{F}_j$ Local beam segment frame.

$\mathbf{F}_k$ Damping coefficients matrix for Timoshenko cable, $\in \mathbb{R}^{6(p+1)}$.

$\mathcal{F}_p$ Local platform frame.

$\mathcal{F}_{pulleyk}(A_k, \mathbf{x}_{pk}, \mathbf{y}_{pk}, \mathbf{z}_{pk})$ Local frame of pulley k.

$\mathbf{F}_v$ Damping coefficients matrix for assumed mode robot, $\in \mathbb{R}^{4m+6}$.

$\mathbf{F}_v^b$ Damping coefficients matrix for Timoshenko robot, $\in \mathbb{R}^{(6p+8)m+6}$.

$\mathbf{f}_{ek}$ Vector of stiffness forces applied to the beam segments of cable k, $\in \mathbb{R}^{6(p+1)}$.

$\mathbf{f}_{gk}$ Vector of weight forces applied to the beam segments of cable k, $\in \mathbb{R}^{6(p+1)}$.

$f_i$ Total forces/moments at the beam extremes along/around its local x, y, and z axes.

$\mathbf{f}_{j,j+1}^e$ Stiffness force applied to extremity j+1 due to the deformation of beam j in $\mathcal{F}_b$, $\in \mathbb{R}^6$.

$\mathbf{f}_{j,j+1}^{e,l}$ Stiffness force applied to extremity j+1 due to the deformation of beam j in $\mathcal{F}_j$, $\in \mathbb{R}^6$.

$\mathbf{f}_{j,j+1}^g$ Weight force applied to extremity j+1 due to the weight of beam j in $\mathcal{F}_b$, $\in \mathbb{R}^6$.

$\mathbf{f}_{j,j+1}^{g,l}$ Weight force applied to extremity j+1 due to the weight of beam j in $\mathcal{F}_j$, $\in \mathbb{R}^6$.

$f_{\theta k}$ Winch k damping coefficient.

$f_{\phi k}$ Pulley k orientation damping coefficient.

$\mathbf{g}$ Gravity acceleration vector, $\in \mathbb{R}^6$.

$\mathbf{g}(\mathbf{q})$ Generalized potential forces vector specific to the assumed mode robot, $\in \mathbb{R}^{4m+6}$.

$\mathbf{g}(\mathbf{q}^b)$ Generalized potential forces vector specific to the Timoshenko robot, $\in \mathbb{R}^{(6p+8)m+6}$.

$\mathbf{g}_p(\mathbf{q}_p)$ Generalized potential forces vector of the platform, $\in \mathbb{R}^6$.

$g$ Gravity acceleration.

$\mathbf{g}^l$ Local gravity acceleration vector in $\mathcal{F}_j$, $\in \mathbb{R}^6$.

$\mathbf{h}_{1k}$ Vector of cable/platform constraints in Timoshenko, $\in \mathbb{R}^3$.

$\mathbf{h}_{2k}$ Vector of cable/pulley constraints in Timoshenko, $\in \mathbb{R}^{3pk}$.

$\mathbf{h}_{3k}$ Vector of cable/winch constraints in Timoshenko, $\in \mathbb{R}^{3wk}$.

$\mathbf{h}_k$ Constraints vector in Assumed mode ($\in \mathbb{R}^3$) and Timoshenko ($\in \mathbb{R}^{3+3pk+3wk}$).

$I_c$ Second moment of area of the cable core.

$I_{max}$ Maximum value of the second moment of area.

$I_{min}$ Minimum value of the second moment of area.

$I_{px}, I_{py}, I_{pz}$ Inertia of the platform with respect to x, y, and z axes of $\mathcal{F}_p$.

$I_{s_{min},i}$ Minimum second moment of area of strand i.

$I_y$ Second moment of area around the y-axis of the cable.

$I_z$ Second moment of area around the z-axis of the cable.

$I_{\beta k}$ Inertia of cable k and pulley k around its rotation axis.

$I_{\phi k}$ Inertia of pulley k around its orientation axis.

$J_k$ Inertia of winch k.

$J_x$ Second polar moment of area around the x-axis of the cable.

$\mathbf{K}$ Beam stiffness matrix, $\in \mathbb{R}^{12 \times 12}$.
k Cable index.

L Beam element length.

$l_{ck}$ Unwound length of cable k between the pulley and the platform.

$l_k$ Unwound length of cable k.

$l_{k,init}$ Unwound length of cable k at initialization.

$l_{pk}$ Length of cable k wrapped around the pulley.

$l_t$ Total length of the cable.

$\mathbf{M}(\mathbf{q})$ Inertia matrix specific to the assumed mode robot, $\in \mathbb{R}^{4m+6} \times 4m+6$.

$\mathbf{M}(\mathbf{q}^b)$ Inertia matrix specific to the Timoshenko robot, $\in \mathbb{R}^{(6p+8)m+6} \times (6p+8)m+6$.

$\mathbf{M}_{cn}$ Beam inertia matrix, $\in \mathbb{R}^{12 \times 12}$.

$\mathbf{M}_k$ Inertia matrix of Timoshenko cable k, $\in \mathbb{R}^{6(p+1)} \times 6(p+1)$.

$M_k$ A point along the cable between the pulley and the platform.

$\mathbf{M}_k(\mathbf{q}_k)$ Inertia matrix of winch, pulley, and cable k in assumed mode, $\in \mathbb{R}^{4 \times 4}$.

$\mathbf{M}_p(\mathbf{q}_p)$ Inertia matrix of the platform, $\in \mathbb{R}^{6 \times 6}$.

m Number of cables.

$\mathbf{m}_k$ Homogeneous coordinates vector $(x_{M_k}, y_{M_k}, z_{M_k}, 1)^T$ of $M_k$ in $\mathcal{F}_{ck}$, $\in \mathbb{R}^4$.

$\mathbf{m}_k^l$ Homogeneous coordinates vector $(x_k, y_k, z_k, 1)^T$ of $M_k$ in $\mathcal{F}_b$, $\in \mathbb{R}^4$.

$m_p$ Pulley mass.

$m_{plt}$ Platform mass.

$m_w$ Winch mass.

n Number of cable modes.

$n_i$ Number of strands in layer i.

$n_r$ Number of registered measurements.

$n_s$ Number of strands.

$P_{k_j}$ Point of contact j between a beam extremity and pulley k.

$\mathbf{p}$ Global Cartesian coordinates vector of the platform $(x_p, y_p, z_p)^T$, $\in \mathbb{R}^3$.

p Number of Timoshenko beams in a cable.

$\mathbf{p}_j$ Translation vector between $\mathcal{F}_j$ and $\mathcal{F}_b$, $\in \mathbb{R}^3$.

$[\mathbf{p}_j]$ Skew-symmetric matrix associated to $\mathbf{p}_j$, $\in \mathbb{R}^{3 \times 3}$.

$pk$ Number of beam extremities in contact with pulley k.

$\mathbf{q}$ Generalized coordinates vector of the assumed mode robot, $\in \mathbb{R}^{4m+6}$.

$\mathbf{q}^b$ Generalized coordinates vector of the Timoshenko robot, $\in \mathbb{R}^{(6p+8)m+6}$.

$\mathbf{q}_k$ Generalized coordinates vector of cable k in assumed mode, $\in \mathbb{R}^4$.

$\tilde{\mathbf{q}}_k$ Generalized coordinates vector of $M_k$ in assumed mode, $\in \mathbb{R}^4$.

$\mathbf{q}_k^b$ Generalized coordinates vector of cable k in Timoshenko, $\in \mathbb{R}^{6(p+1)}$.

$\mathbf{q}_k^{b,l}$ Local Generalized coordinates vector of cable k in Timoshenko in $\mathcal{F}_j$, $\in \mathbb{R}^{6(p+1)}$.

$\tilde{\mathbf{q}}_k^{b,l}$ Rest vector of $\mathbf{q}_k^{b,l}$, $\in \mathbb{R}^{6(p+1)}$.

$\mathbf{q}_p$ Generalized coordinates vector of the platform, $\in \mathbb{R}^6$.

$\mathbf{R}(\eta, \theta, \psi)$ Rotation matrix from $\mathcal{F}_p$ to $\mathcal{F}_b$, $\in \mathbb{R}^{3 \times 3}$.

$\mathbf{R}_j$ Rotation matrix from $\mathcal{F}_j$ to $\mathcal{F}_b$, $\in \mathbb{R}^{3 \times 3}$.

$r_i$ Radius of layer i.

$r_p$ Pulley radius.

$r_w$ Winch radius.

s Curvilinear abscissa of $M_k$.

T Kinetic energy of the robot.

$\mathbf{T}(\alpha_k)$ Transformation matrix from $\mathcal{F}_{ck}$ to $\mathcal{F}_{pulleyk}$, $\in \mathbb{R}^{4 \times 4}$.

$\mathbf{T}(\phi_k)$ Transformation matrix from $\mathcal{F}_{pulleyk}$ to $\mathcal{F}_b$, $\in \mathbb{R}^{4 \times 4}$.

$\mathbf{T}(\phi_k, \alpha_k)$ Transformation matrix from $\mathcal{F}_{ck}$ to $\mathcal{F}_b$, $\in \mathbb{R}^{4 \times 4}$.

$\mathbf{T}_j$ Transformation matrix from $\mathcal{F}_j$ to $\mathcal{F}_b$, $\in \mathbb{R}^{4 \times 4}$.
<table>
  <tr>
    <td>T<sub>k</sub></td>
    <td>Kinetic energy of cable k.</td>
    <td>ε</td>
    <td>Slope parameter of the sigmoid function.</td>
  </tr>
  <tr>
    <td>T<sub>p</sub></td>
    <td>Kinetic energy of the platform.</td>
    <td>η, θ, ψ</td>
    <td>Euler angles (ZYX) for platform orientation.</td>
  </tr>
  <tr>
    <td>t<sub>k</sub></td>
    <td>Tension in cable k.</td>
    <td>θ*</td>
    <td>Angular position of an infinitesimal cable section around the winch.</td>
  </tr>
  <tr>
    <td>V</td>
    <td>Potential energy of the robot.</td>
    <td>θ<sub>k</sub></td>
    <td>Winch k angular position.</td>
  </tr>
  <tr>
    <td>V<sub>k</sub></td>
    <td>Potential energy of cable k.</td>
    <td>θ<sub>k0</sub></td>
    <td>Angular position of cable attachment point Wk<sub>0</sub>.</td>
  </tr>
  <tr>
    <td>V<sub>p</sub></td>
    <td>Potential energy of the platform.</td>
    <td>θ<sub>k0,init</sub></td>
    <td>Angular position of cable attachment point Wk<sub>0</sub> at initialization.</td>
  </tr>
  <tr>
    <td>W<sub>k</sub></td>
    <td>Center of the winch.</td>
    <td>κ</td>
    <td>Cable curvature.</td>
  </tr>
  <tr>
    <td>Wk<sub>o</sub></td>
    <td>Point of contact o between a beam extremity and winch k.</td>
    <td>λ</td>
    <td>Vector of Lagrange multipliers, ∈ ℝ<sup>3m</sup> (assumed mode) or ∈ ℝ<sup>3m+∑<sub>k=0</sub><sup>m</sup> 3pk+3wk</sup> (Timoshenko).</td>
  </tr>
  <tr>
    <td>w<sub>jk</sub></td>
    <td>Generalized coordinate of Φ<sub>j</sub> for cable k.</td>
    <td>μ</td>
    <td>Poisson's ratio.</td>
  </tr>
  <tr>
    <td>w<sub>k</sub></td>
    <td>Generalized coordinate of Φ<sub>1</sub> for cable k.</td>
    <td>ρ</td>
    <td>Linear cable density at rest.</td>
  </tr>
  <tr>
    <td>wk</td>
    <td>Number of beam extremities in contact with winch k.</td>
    <td>ρ<sub>e</sub></td>
    <td>Linear cable density after elongation.</td>
  </tr>
  <tr>
    <td>z<sub>Wk</sub></td>
    <td>z-coordinate of the cable exit point on the winch.</td>
    <td>τ</td>
    <td>Generalized forces vector in assumed mode, ∈ ℝ<sup>4m+6</sup>.</td>
  </tr>
  <tr>
    <td>α*</td>
    <td>Angular position of an infinitesimal cable section around the pulley.</td>
    <td>τ<sup>b</sup></td>
    <td>Generalized forces vector in Timoshenko, ∈ ℝ<sup>(6p+8)m+6</sup>.</td>
  </tr>
  <tr>
    <td>α<sub>k</sub></td>
    <td>Angle defining the cable k exit point on the pulley.</td>
    <td>τ<sub>k</sub></td>
    <td>Applied torque to winch k.</td>
  </tr>
  <tr>
    <td>β<sub>s,i</sub></td>
    <td>Lay angle of strand i.</td>
    <td>Φ<sub>j</sub></td>
    <td>Cable mode j.</td>
  </tr>
  <tr>
    <td>β<sub>l,i</sub></td>
    <td>Lay angle of the strands in layer i.</td>
    <td>φ<sub>k</sub></td>
    <td>Orientation angle of the pulley k.</td>
  </tr>
  <tr>
    <td>β<sub>k</sub></td>
    <td>Axial rotation of the pulley k.</td>
    <td></td>
    <td></td>
  </tr>
  <tr>
    <td>δl<sub>k</sub></td>
    <td>Elastic cable elongation.</td>
    <td></td>
    <td></td>
  </tr>
</table>

# 1. Introduction

Cable-Driven Parallel Robots (CDPRs) are a type of parallel manipulator that relies on cables to control the position and orientation of its end-effector, called the moving-platform. Typically, CDPRs are composed of five main parts, i.e. a fixed frame, a given number of cables, pulleys to redirect the path of the cables and motor-actuated winches to wind the end of the cables, and a moving-platform as shown in Fig. 1. CDPRs are used in a wide range of applications, including accomplishing logistic tasks [1], transporting heavy parts [2], filming sports events in large stadiums, or as part of very big radio telescope [3]. These implementations benefit from the capability of the cables to withstand large tensions and reach very fast dynamics, as well as their ability to go unnoticed since they are not space consuming. Modeling CDPR implies the necessity to model every part of the robot, and mainly the cables. This can be a challenging task due to their complex structure and non-symmetrical behavior when tensioned or compressed. Such model of CDPR can be developed for different kinds of applications, leading to different requirements and therefore to different simplifying hypotheses [4]. Indeed, a model intended purely for simulation work, such as estimating the robot's workspace or tuning control parameters offline, and a model designed to be embedded in an online control strategy such as Model Predictive Control (MPC), will have to offer a
different performance/execution-speed compromise [5]. Figure 2 shows the most common hypotheses made to model cable deformations.

<figure><img src="image_2.png" /><figcaption>Figure 1: Schematic of a suspended CDPR with 4 cables</figcaption></figure>

<figure><img src="image_3.png" /><figcaption>Figure 2: Most common cable models</figcaption></figure>

One of the most common and precise model for CDPR is the Irvine catenary model [6], where sag and elasticity are considered, but is limited to quasi-static motions and is not directly suitable for dynamic control applications. On the one hand, a number of studies have presented modeling methods that attempt to overcome certain simplifying assumptions. Among them, Arena et al. [7] present a three-dimensional nonlinear dynamic model of CDPRs with cable elasticity and distributed mass. Cosserat rod theory also offers the possibility of faithfully modeling cable dynamics [8, 9], but their use in a control scheme remains for now an open issue. On the other hand, Santos et al. [10] implemented online control of CDPR but the model considers only massless and inextensible cables. In [11], Ayala Cuevas et al. used the assumed mode approach to model the cable sag while neglecting its elasticity. The results are limited to a 2D planar CDPR with a point-mass end-effector. It was later extended to include the orientation of a planar platform [12]. In [13], Liu et al. applied Euler-Bernoulli beam theory to model cable elasticity and bending; however, this model encounters challenges when cable deflection is large. Finally, some simulators offer the possibility of modeling cable robots. For example, Maplesoft™ develops *MapleSim Ropes and Pulleys Library*, dedicated to winch and pulley systems. In parallel, open-source solution exists such as the SOFA software and its soft-robotics plugin [14], dedicated to the simulation of deformable structures. This simulation software includes an implementation of 3D Timoshenko beams [15] with corotational method [16], on which part of the presented work relies. With this in mind, this paper aims at providing a comparative study of
existing modeling strategies, with the ambition to find the best compromise between accuracy and ease of implementation in a control algorithm.

**Contributions:** This article presents and compares dynamic models for cable-driven parallel robots that are both accurate and suitable for controller design. The contributions fall into three categories:

* Extension of the assumed mode model from 2D planar case to 3D, incorporating cable elasticity. The pulleys are also added to the model.

* Detailed presentation of the 3D FEM model, which incorporates an equivalent quadratic moment, a more accurate calculation of the stiffness matrix compared to a beam model, for which preliminary simulation results were initially presented in [17] but without any theoretical details regarding the underlying model.

* Coordinated implementation and comparison of four dynamic models for CDPRs: assumed mode, FEM and two MapleSim models. The comparison is conducted on a suspended 3D CDPR with eight cables, based on the pick-and-place scenarios presented in this article. The study focuses on simulating sagging and elasticity effects, considering real robot behavior and computational performance (CPU time and memory usage), for both simulation runtime and model-building phases. Additionally, intrinsic characteristic of each modeling approach, such as state vector size and the number of mechanical parameters to be identified, are analyzed.

The paper is organized as follows: Sec. 2 details the equations of the two proposed modeling approaches. Section 3 shows the results of the simulations and the comparison between the models. The conclusions and perspectives are drawn in Sec. 4 while the experimental setup and model calibration are gathered in the appendix.

## 2. CDPR Dynamic Model

This section presents the derivation of the dynamic model equations of a 3D suspended CDPR. The CDPR is made of $m$ cables, $m$ pulleys fixed on the upper part of the robot's frame, $m$ winches under the pulleys, and a moving-platform (see Fig. 1). Each pulley has two degrees of freedom (DOF) $\beta_k$ and $\phi_k$, and can rotate around its rotation axis passing through its center $C_k$, and around its orientation axis $z_{pk}$ passing through the fixed point $A_k$ as shown in Figs. 3a and 3b. Each winch has one DOF $\theta_k$ as illustrated in Fig. 3a. The gravity is along axis $z_b$. In this paper, two approaches are considered to model the cables. The first one relies on modal decomposition to illustrate in-plane bending flexibility of the cable, using the assumed mode approach to model the cable sag. The cable is assumed to remain in a vertical plane, neglecting any out-of-plane motion that might occur under fast dynamics. The model is designed to offer the option of incorporating simplified cable elasticity through Hooke's law. The cable is assumed elastic only in the unwound part, i.e. from $A_k$ to $B_k$. The second approach uses a spatial discretization of the cable to small Timoshenko beams in order to model its six DOF, i.e. elongation, shear, torsion, and bending. However, in the context of CDPRs, cables are connected to the platform through spherical joints. As a result, the cables experience minimal torsion due to the misalignment of the cable plane and the winch plane. Therefore, both torsion and shear can be neglected. Nevertheless, the use of the Timoshenko beam model allows for accounting for greater cable deflection, unlike other models such as the Euler-Bernoulli beam model.

### 2.1. First Approach: Assumed Mode-Based Cable Model

Considering $l_k$ as the unwound length of cable $k$, Fig. 3a shows that the effective unwound cable length between $A'_k$ and the platform at $B_k$ is:

$$l_{ck} = l_k - l_{pk} = l_k - r_p(\pi - \alpha_k) \quad (1)$$

where $l_{pk}$ is the length of the cable wrapped on the pulley between $A_k$ and $A'_k$, $\alpha_k$ is the angle between the pulley's x-axis $x_{pk}$ and the cable exit point $A'_k$, and $r_p$ is the radius of the pulley. The cable is considered to
<figure><img src="image_4.png" /><figcaption>Figure 3: Top and side view of cable k connected to the platform from the pulley</figcaption></figure>

be tangent to the pulley at $A'_k$. Each point $M_k$ of the cable between $A'_k$ and $B_k$ has homogeneous coordinates $\mathbf{m}_k = (x_k, y_k, z_k, 1)^T$ in the global frame $\mathcal{F}_b(O_b, \mathbf{x}_b, \mathbf{y}_b, \mathbf{z}_b)$ and $\mathbf{m}_k^l = (x_{M_k}, y_{M_k}, z_{M_k}, 1)^T$ in the local cable frame $\mathcal{F}_{ck}(A'_k, \mathbf{x}_{ck}, \mathbf{y}_{ck}, \mathbf{z}_{ck})$, where axis $\mathbf{x}_{ck}$ is tangent to the pulley at the cable output point and axis $\mathbf{z}_{ck}$ is in the pulley-cable plane. The global coordinates are calculated as follows:

$$ \mathbf{m}_k = \mathbf{T}(\phi_k, \alpha_k)\mathbf{m}_k^l \qquad (2) $$

where $\phi_k$ is the orientation angle of the pulley as shown in Fig. 3b, $\mathbf{T}(\phi_k, \alpha_k) = \mathbf{T}(\phi_k)\mathbf{T}(\alpha_k)$ is the transformation matrix between the global frame $\mathcal{F}_b$ and the local cable frame $\mathcal{F}_{ck}$, $\mathbf{T}(\phi_k)$ is the transformation matrix between the global frame $\mathcal{F}_b$ and the local pulley frame $\mathcal{F}_{pulleyk}(A_k, \mathbf{x}_{pk}, \mathbf{y}_{pk}, \mathbf{z}_{pk})$:

$$ \mathbf{T}(\phi_k) = \begin{bmatrix} c(\phi_k) & -s(\phi_k) & 0 & x_{Ak} \\ s(\phi_k) & c(\phi_k) & 0 & y_{Ak} \\ 0 & 0 & 1 & z_{Ak} \\ 0 & 0 & 0 & 1 \end{bmatrix} \qquad (3) $$

and $\mathbf{T}(\alpha_k)$ is the transformation matrix between the local pulley frame $\mathcal{F}_{pulleyk}$ and the local cable frame $\mathcal{F}_{ck}$:

$$ \mathbf{T}(\alpha_k) = \begin{bmatrix} s(\alpha_k) & 0 & c(\alpha_k) & r_p(1+c(\alpha_k)) \\ 0 & 1 & 0 & 0 \\ -c(\alpha_k) & 0 & s(\alpha_k) & r_p s(\alpha_k) \\ 0 & 0 & 0 & 1 \end{bmatrix} \qquad (4) $$

where $c(.)$ and $s(.)$ are the cosine and sine functions, respectively.

After deformation of the cable k, each point $M_k$ of curvilinear abscissa $s \in [0, l_{ck} + \delta l_k]$ has the following coordinates:

$$ M_k = (x_{M_k} = s + \delta x_{M_k}, y_{M_k} = 0, z_{M_k} = \delta z_{M_k}) \qquad (5) $$
where $\delta l_k$ is the cable elongation due to the cable tension. Since $s$ is the coordinate in the strained profile of the cable, the geometric constraint that needs to be satisfied is:

$$ \partial x_{M_k}^2 + \partial y_{M_k}^2 + \partial z_{M_k}^2 = \partial s^2 \qquad (6) $$

It can be simplified using Eq. (5) as follows:

$$ \left( \frac{\partial \delta x_{M_k}}{\partial s} + 1 \right)^2 + \left( \frac{\partial \delta z_{M_k}}{\partial s} \right)^2 = 1 \qquad (7) $$

Assuming that $\frac{\partial \delta z_{M_k}}{\partial s} \ll 1$, and using a second order Taylor expansion, $\delta x_{M_k}$ can be calculated:

$$ \delta x_{M_k}(s,t) = -\frac{1}{2} \int_{0}^{s} \left( \frac{\partial \delta z_{M_k}(u,t)}{\partial u} \right)^2 du \qquad (8) $$

Using the assumed mode hypothesis, the displacement $\delta z_{M_k}$ along axis $z_{ck}$ is supposed as a superposition of $n$ modes $\Phi_j(s)$ in $s$ [18]:

$$ \delta z_{M_k}(s,t) = \sum_{j=1}^{n} \Phi_j(s) w_{jk}(t) = \frac{s^2}{l_{ck} + \delta l_k} w_{1k}(t) \qquad (9) $$

In this work, only one polynomial mode is used $\Phi_1(s) = \frac{s^2}{l_{ck} + \delta l_k}$, where $\delta l_k = \frac{l_k t_k}{EA}$, $t_k$ is the cable tension at $B_k$, $E$ is the Young Modulus of the cable, $A$ is the cross section of the cable and $w_{jk}(t)$ is the generalized coordinate of mode $\Phi_j(s)$. In the remainder of this paper, $w_{1k}$ is denoted as $w_k$. Therefore, the global coordinates of $M_k$ can be written as a function of $\tilde{q}_k = (s, w_k, \phi_k, \alpha_k)^T$. The cable point that is of interest is $B_k$, the fixation point on the platform where $s = l_k + \delta l_k$. Therefore the cable is modeled with the generalized coordinates vector:

$$ \mathbf{q}_k = (l_k, w_k, \phi_k, \alpha_k)^T \qquad (10) $$

Then, the Lagrangian is used to write the dynamic equation of the robot. First, the potential and kinetic energies of a single cable, its pulley, and the winch are calculated. By neglecting the potential energy of the winch, pulley, and cable between the winch and the pulley, which are constant, the potential energy of the cable is expressed as:

$$ V_k = \int_{-\pi}^{\theta_{k0}} \rho g (r_w \sin \theta^*)(r_w d\theta^*) + \int_{\pi-\alpha_k}^{\pi} \rho_e g (z_{Ak} + r_p \sin \alpha^*)(r_p d\alpha^*) + \int_{0}^{l_{ck}+\delta l_k} \rho_e g z_k(\tilde{q}_k) ds \qquad (11) $$

where $\theta_{k0} = \theta_{k0,init} + \frac{l_{k,init} - l_k}{r_w}$ is the angular position of the cable attachment point on the winch $W_{k0}$, $\theta_{k0,init}$ is initial value of $\theta_{k0}$, $l_{k,init}$ is the initial value of $l_k$, $\rho$ is the linear cable density of the cable at rest, $g$ is the acceleration of the gravity, $r_w$ is the radius of the winch, $\theta^*$ is the angular position of an infinitesimal cable section on the winch, $\rho_e = \frac{l_k}{l_k + \delta l_k}$ is the linear cable density after the cable elongation, and $\alpha^*$ is the angular position of an infinitesimal cable section on the pulley. Due to the symmetry of the winch, the only portion of the cable that is non-constant corresponds geometrically to the section between the cable attachment point ($\theta^* = \theta_{k0}$) and the cable exit point ($\theta^* = -\pi$).

Four elements contribute to the kinetic energy: the winch, the cable between the winch and the pulley, the pulley, and the cable between the pulley and the platform. The kinetic energy is given by:

$$ T_k = \frac{1}{2} \frac{J_k}{r_w^2} j_k^2 + \frac{1}{2} \rho (z_{Ak} - z_{Wk}) j_k^2 + \frac{1}{2} I_{\phi k} \dot{\phi}_k^2 + \frac{1}{2} \frac{I_{\beta k}}{r_p^2} j_k^2 + \frac{1}{2} \int_{0}^{l_{ck}+\delta l_k} \rho_e (\dot{x}_k(\tilde{q}_k)^2 + \dot{y}_k(\tilde{q}_k)^2 + \dot{z}_k(\tilde{q}_k)^2) ds \qquad (12) $$

where $J_k = \frac{m_w r_w^2}{2} + \frac{\rho(l_t - l_k - (z_{Ak} - z_{Wk}))r_w^2}{2}$ is the inertia of winch $k$ with the wound cable, $m_w$ is the mass of the winch, $l_t$ is the total length of the cable, $z_{Wk}$ is the z-coordinate of the cable exit point on the
winch, $I_{\phi k} = \frac{m_p r_p^2}{4} + m_p r_p^2$ is the inertia of the pulley $k$ around its orientation axis $\mathbf{z}_{pk}$, $m_p$ is the mass of the pulley, $I_{\beta k} = \frac{m_p r_p^2}{2} + \frac{\rho_e (r_p(\pi - \alpha_k)) r_p^2}{2}$ is the inertia of the pulley $k$ and the wrapped cable around its rotation axis, and $\dot{x}_k(\tilde{\mathbf{q}}_k) = \sum_{i=1}^{n+3} \frac{\partial x_k}{\partial \tilde{\mathbf{q}}_{ki}} \dot{\tilde{\mathbf{q}}}_{ki}$ (similarly $\dot{y}_k(\tilde{\mathbf{q}}_k)$ and $\dot{z}_k(\tilde{\mathbf{q}}_k)$), with $\dot{s} = \dot{l}_k + \dot{\delta}l_k = \dot{l}_k(1 + \frac{t_k}{EA})$.

Then, the potential and kinetic energies of the platform are calculated. The platform has three translational DOF and three rotational DOF, and its vector of generalized coordinates is $\mathbf{q}_p = (x_p, y_p, z_p, \eta, \theta, \psi)^T$ in the global frame, where $(\eta, \theta, \psi)$ are the three Euler angles with ZYX convention. This order should not reach a gimbal lock state, because $\theta = \pm \frac{\pi}{2}$ is not attainable due to the limited rotation reachable by the platform of a CDPR. Other order sequences, such as ZXZ, are not suitable since the rest position of the platform would be a singularity (first and third axes are aligned). The translational kinetic energy of the platform is calculated in the global frame $\mathcal{F}_b$, whereas its rotational kinetic energy is calculated with the rotational velocities of the moving-platform expressed in its local frame $\mathcal{F}_p$ where the inertia moments are fixed:

$$T_p = \frac{1}{2} m_{\text{plt}} (\dot{x}_p + \dot{y}_p + \dot{z}_p) + \frac{1}{2} I_{px} (\dot{\psi} - \dot{\eta} \sin(\theta))^2 + \frac{1}{2} I_{py} (\dot{\eta} \cos(\theta) \sin(\psi) + \dot{\theta} \cos(\psi))^2 \\ + \frac{1}{2} I_{pz} (\dot{\eta} \cos(\theta) \cos(\psi) - \dot{\theta} \sin(\psi))^2 \quad (13)$$

where $m_{\text{plt}}$ is the mass of the platform, and $I_{px}$, $I_{py}$, $I_{pz}$ are the moments of inertia of the platform with respect to the $x$, $y$, and $z$ axes of $\mathcal{F}_p$, respectively. The potential energy of the platform is:

$$V_p = m_{\text{plt}} g z_p \quad (14)$$

Finally, the generalized coordinates vector of the full CDPR is made from the vectors of generalized coordinates of each cable and the platform: $\mathbf{q} = (\mathbf{q}_1^T, ..., \mathbf{q}_m^T, \mathbf{q}_p^T)^T$. The kinetic energy of the CDPR is the sum of the kinetic energies of the platform and each of the cables:

$$T = T_p + \sum_{k=1}^{m} T_k = \frac{1}{2} \dot{\mathbf{q}}^T \mathbf{M}(\mathbf{q}) \dot{\mathbf{q}} \quad (15)$$

where $\mathbf{M}(\mathbf{q}) = \text{diag}(\mathbf{M}_1(\mathbf{q}_1), ..., \mathbf{M}_m(\mathbf{q}_m), \mathbf{M}_p(\mathbf{q}_p))$ is the inertia matrix of the CDPR and is made of the inertia matrices of each kinematic chain set (winch, pulley, cable) and the platform. Similarly, the potential energy of the CDPR is:

$$V = V_p + \sum_{k=1}^{m} V_k \quad (16)$$

Assuming no external forces are applied to the platform and the cables other than their weights, the only external forces applied to the CDPR are the torques $\tau_k$ applied to the winches that act on the cable length $l_k$. The generalized forces vector is:

$$\boldsymbol{\tau} = \left( \frac{\tau_1}{r_w}, 0_{1 \times 3}, \frac{\tau_2}{r_w}, 0_{1 \times 3}, \dots, \frac{\tau_m}{r_w}, 0_{1 \times 3}, 0_{1 \times 6} \right)^T \quad (17)$$

The only dissipative forces considered in this model are the damping forces represented by $\mathbf{F}_v \dot{\mathbf{q}}$, where $\mathbf{F}_v$ is a diagonal matrix of damping coefficients. This term accounts for the friction in the winches, pulleys, and cables.

The cables are connected to the platform at anchor points $B_1, ..., B_m$, creating 3m geometric constraints of the type:

$$\mathbf{h}_k = \mathbf{b}_k(\mathbf{q}_k) - \mathbf{b}_k = 0_{3 \times 1} \quad (18)$$

The corresponding Jacobian matrix is $\mathbf{A} = \frac{\partial \mathbf{h}_k(i)}{\partial \mathbf{q}}$ and $\mathbf{\lambda} = (\lambda_1, ..., \lambda_{3m})^T$ are the Lagrange multipliers, where $\mathbf{b}_k(\mathbf{q}_k) = (x_{Bk}(\mathbf{q}_k), y_{Bk}(\mathbf{q}_k), z_{Bk}(\mathbf{q}_k))^T$ is the coordinates vector of anchor point $B_k$ that are calculated using Eq. (2). $\mathbf{b}_k = (x_{Bk}, y_{Bk}, z_{Bk})^T$ is the coordinates vector of point $B_k$ on the platform side and is
calculated as follows:

$$ \mathbf{b}_k = \mathbf{p} + \mathbf{R}(\eta, \theta, \psi)\mathbf{b}_{kl} \quad (19) $$

where $\mathbf{b}_{kl} = (x_{Bkl}, y_{Bkl}, z_{Bkl})^T$ contains the fixed coordinates of point $B_k$ in the local frame of the platform $\mathcal{F}_p$, $\mathbf{p} = (x_p, y_p, z_p)^T$ is the vector of Cartesian coordinates of the platform in the global frame $\mathcal{F}_b$, and $\mathbf{R}(\eta, \theta, \psi)$ is the rotation matrix between the global frame $\mathcal{F}_b$ and local frame $\mathcal{F}_p$:

$$ \mathbf{R}(\eta, \theta, \psi) = \begin{bmatrix} c(\eta)c(\theta) & -s(\eta)c(\psi) + c(\eta)s(\theta)s(\psi) & s(\eta)s(\psi) + c(\eta)s(\theta)c(\psi) \\ s(\eta)c(\theta) & c(\eta)c(\psi) + s(\eta)s(\theta)s(\psi) & -c(\eta)s(\psi) + s(\eta)s(\theta)c(\psi) \\ -s(\theta) & c(\theta)s(\psi) & c(\theta)c(\psi) \end{bmatrix} \quad (20) $$

Finally, the full CDPR dynamic model takes the form:

$$ \frac{d}{dt} \frac{\partial T}{\partial \dot{\mathbf{q}}} - \frac{\partial T}{\partial \mathbf{q}} = \boldsymbol{\tau} - \frac{\partial V}{\partial \mathbf{q}} - \mathbf{F}_v \dot{\mathbf{q}} + \mathbf{A}^T \boldsymbol{\lambda} \quad (21) $$

In order to solve the system with the Lagrange multipliers, the holonomic constraints in Eq. (18) are differentiated twice with respect to time which yields:

$$ \mathbf{A}(\mathbf{q})\dot{\mathbf{q}} = 0 \quad (22) $$

and:

$$ \dot{\mathbf{A}}(\dot{\mathbf{q}}, \mathbf{q})\dot{\mathbf{q}} + \mathbf{A}(\mathbf{q})\ddot{\mathbf{q}} = 0 \quad (23) $$

Combining Eq. (21) and Eq. (23), gives the complete dynamic model of the CDPR:

$$ \begin{bmatrix} \mathbf{M}(\mathbf{q}) & -\mathbf{A}(\mathbf{q})^T \\ \mathbf{A}(\mathbf{q}) & 0 \end{bmatrix} \begin{bmatrix} \ddot{\mathbf{q}} \\ \lambda \end{bmatrix} = \begin{bmatrix} \boldsymbol{\tau} + \mathbf{c}(\dot{\mathbf{q}}, \mathbf{q}) - \mathbf{g}(\mathbf{q}) - \dot{\mathbf{M}}(\dot{\mathbf{q}}, \mathbf{q})\dot{\mathbf{q}} - \mathbf{F}_v \dot{\mathbf{q}} \\ -\dot{\mathbf{A}}(\dot{\mathbf{q}}, \mathbf{q})\dot{\mathbf{q}} \end{bmatrix} \quad (24) $$

where $\mathbf{c}(\dot{\mathbf{q}}, \mathbf{q}) = \frac{\partial T}{\partial \dot{\mathbf{q}}}$ and $\mathbf{g}(\mathbf{q}) = \frac{\partial V}{\partial \mathbf{q}}$. The vector $\boldsymbol{\lambda}$ represents the internal forces applied between the cables and the platform to maintain each of the geometrical constraints. Therefore, the magnitude of the three Lagrange multipliers $\lambda_{3k-2}$, $\lambda_{3k-1}$, $\lambda_{3k}$ gives the tension $t_k$ in the cable $k$. To ensure that the elongation of each cable is considered only when the cable is in tension, i.e. when pulling the platform, the tension $t_k$ is non-zero when $\lambda_{3k}$ is negative for a cable pulling the platform upwards, and when $\lambda_{3k}$ is positive for a cable pulling the platform downwards. In a suspended CDPR, all cables pull upwards, so $\lambda_{3k}$ should be negative for all cables in tension. The tension $t_k$ can then be calculated as:

$$ t_k = \sqrt{\lambda_{3k-2}^2 + \lambda_{3k-1}^2 + \lambda_{3k}^2} \frac{1}{1 + e^{\epsilon(-1)^{d_k} \lambda_{3k}}} \quad (25) $$

A sigmoid-type function has been added to ensure that $\delta l_k = 0$ when $(-1)^{d_k} \lambda_{3k} > 0$, avoiding the use of a discontinuous function such as the Heaviside step function. The parameter $\epsilon$ is the slope parameter defining the sharpness of the sigmoid function. A sufficiently high value of $\epsilon$ (chosen to be $\epsilon = 100$) was selected to reduce the transition phase of the sigmoid function. Here, $d_k$ is used to distinguish between a cable pulling upwards ($d_k = 2$) and a cable pulling downwards ($d_k = 1$). This model can also be used with the consideration of an inextensible cable by using $\delta l_k = 0$ at all times.

## 2.2. Second Approach: Timoshenko Beams-Based Cable Model

In this approach, the dynamic equations are formulated separately for each component of a single kinematic chain in the robot— namely, the winch, pulley, and cable. Then, by adding the dynamic equation of the platform and applying the geometric constraints, the dynamic equation of the full CDPR is obtained. Because the forces acting on each coordinate of the winches, pulleys, and cables are known, Newton's second law can be used to write their dynamic equations. Conversely, because the platform orientation is defined using Euler angles, it is more convenient to use the Lagrangian to write its dynamic equation.
The dynamic equation of the winch k is given by Newton's second law for rotation:

$$J_k \ddot{\theta}_k = \tau_k - f_{\theta k} \dot{\theta}_k \qquad (26)$$

where $J_k = \frac{m_w r_w^2}{2}$ is the moment of inertia of the winch, $\theta_k$ is the angular position of the winch, and $f_{\theta k}$ is the damping coefficient.

The two DOF $\phi_k$ and $\beta_k$ of pulley k are independent, and they are both not subject to any external forces. However, due to the observed inaccuracies in the simulation, particularly for small platform masses, $\beta_k$ will be coupled to the angular position of the winch $\theta_k$ as follows:

$$\beta_k = -\frac{r_w}{r_p} \theta_k \qquad (27)$$

The evolution of $\phi_k$ will be a result of the forces generated by the geometrical constraints. Its dynamic equation according to Newton's second law for rotation is:

$$I_{\phi k} \ddot{\phi}_k = -f_{\phi k} \dot{\phi}_k \qquad (28)$$

where $f_{\phi k}$ is the damping coefficient.

Each cable k is discretized into p Timoshenko beams, as shown in Fig. 4. Each of these beams corresponds to the one depicted in Fig. 5, where the $f_i$ components represent the total forces and moments at the extremities of a single beam element along and around the x, y, and z axes of its local frame $\mathcal{F}_j$. This

<figure><img src="image_5.png" /><figcaption>Figure 4: Cable discretization, frame $\mathcal{F}_j$: x in red, y in green, and z in blue</figcaption></figure>

<figure><img src="image_6.png" /><figcaption>Figure 5: A single beam element</figcaption></figure>

approach was first presented in [19] to model wire-like structures using the three-dimensional Timoshenko beam theory [15] and a specific corotational formulation to account for large displacements [16]. The motion of each beam j is decomposed into a rigid body motion and a small local deformation motion. The dynamic equation of the cable k can be written according to Newton's second law for translation and rotation as:

$$\mathbf{M}_k \ddot{\mathbf{q}}_k^b = \mathbf{f}_{ek} + \mathbf{f}_{gk} - \mathbf{F}_k \dot{\mathbf{q}}_k^b \qquad (29)$$

where $\mathbf{q}_k^b$ contains the positional and rotational components of all the extremities of the beams $j = 0, ..., p$, $\mathbf{f}_{ek}$ is the vector of forces exerted on the extremities of the beams due to cable stiffness, $\mathbf{f}_{gk}$ is the vector of forces exerted on the extremities of the beams due to the weight of the cable, and $\mathbf{F}_k$ is a diagonal matrix
of damping coefficients. The components of $\mathbf{q}_k^b$, $\mathbf{f}_{ek}$, and $\mathbf{f}_{gk}$ are calculated individually for each beam in its own local frame $\mathcal{F}_j$, and then transformed to the global frame $\mathcal{F}_b$. For each beam $j$ with extremities $j$ and $j+1$ (see Fig. 4), the stiffness forces exerted on beam $j$ in $\mathcal{F}_j$ are depicted on Figs. 4 and 5 and are described by the following equations:

$$ \left[ \begin{matrix} \mathbf{f}_{j,j}^{e,l} \\ \mathbf{f}_{j,j+1}^{e,l} \end{matrix} \right] = \mathbf{K} \left[ \begin{matrix} \mathbf{q}_k^{b,l}(6j:6j+5) - \bar{\mathbf{q}}_k^{b,l}(6j:6j+5) \\ \mathbf{q}_k^{b,l}(6(j+1):6(j+1)+5) - \bar{\mathbf{q}}_k^{b,l}(6(j+1):6(j+1)+5) \end{matrix} \right] \quad (30) $$

where $\mathbf{f}_{j,j}^{e,l}$ is the 6D local stiffness force applied to extremity $j$ due to the deformation of beam $j$, $\mathbf{f}_{j,j+1}^{e,l}$ is the 6D local stiffness force applied to extremity $j+1$ due to the deformation of beam $j$, $\mathbf{q}_k^{b,l}(6j:6j+5)$ is the vector of positional and rotational components of the extremity $j$ in the local frame $\mathcal{F}_j$, $(6j:6j+5)$ is $\{6j, 6j+1, ..., 6j+5\}$, $\bar{\mathbf{q}}_k^{b,l}$ is the rest vector of $\mathbf{q}_k^{b,l}$, and $\mathbf{K}$ is the 12×12 beam stiffness matrix given from [15] by:

$$ \mathbf{K} = \begin{bmatrix} \frac{EA}{L} & & & & & & & & \\ 0 & \frac{12EI_z}{L^3\phi_y} & & & & & & & \\ 0 & 0 & \frac{12EI_y}{L^3\phi_z} & & & & & & \\ 0 & 0 & 0 & \frac{GJ}{L} & & & & & \\ 0 & 0 & -\frac{6EI_y}{L^2\phi_z} & 0 & \frac{EI_y\Phi_{pz}}{L\phi_z} & & & & \\ 0 & \frac{6EI_z}{L^2\phi_y} & 0 & 0 & 0 & \frac{EI_z\Phi_{py}}{L\phi_y} & & & \\ -\frac{EA}{L} & 0 & 0 & 0 & 0 & 0 & \frac{EA}{L} & & \\ 0 & -\frac{12EI_z}{L^3\phi_y} & 0 & 0 & 0 & -\frac{6EI_z}{L^2\phi_y} & 0 & \frac{12EI_z}{L^3\phi_y} & \\ 0 & 0 & -\frac{12EI_y}{L^3\phi_z} & 0 & \frac{6EI_y}{L^2\phi_z} & 0 & 0 & 0 & \frac{12EI_y}{L^3\phi_z} \\ 0 & 0 & 0 & -\frac{GJ}{L} & 0 & 0 & 0 & 0 & \frac{GJ}{L} \\ 0 & 0 & -\frac{6EI_y}{L^2\phi_z} & 0 & \frac{EI_y\Phi_{nz}}{L\phi_z} & 0 & 0 & 0 & \frac{6EI_y}{L^2\phi_z} \\ 0 & \frac{6EI_z}{L^2\phi_y} & 0 & 0 & 0 & \frac{EI_z\Phi_{ny}}{L\phi_y} & 0 & -\frac{6EI_z}{L^2\phi_y} & 0 \\ & & & & & & 0 & 0 & 0 & \frac{EI_z\Phi_{py}}{L\phi_y} \end{bmatrix} \quad (31) $$

where $L = \frac{l_t}{p}$ is the length of a beam element, $\Phi_{py} = 3+\phi_y$, $\Phi_{ny} = 3-\phi_y$, $\phi_y = 1+\frac{12EI_z}{GA_{sy}L^2}$, $\Phi_{pz} = 3+\phi_z$,

$\Phi_{nz} = 3-\phi_z$, $\phi_z = 1+\frac{12EI_y}{GA_{sz}L^2}$, $G = \frac{E}{2(1+\mu)}$, $\mu$ is the Poisson's ratio, and $A_{sy}$ and $A_{sz}$ are the actual surfaces of the cable due to shear along the $y$ and $z$ directions.

In CDPR use cases, the shearing can be neglected and therefore $\phi_y = \phi_z = 1$. The cables have a symmetrical cross-section and therefore $I_y = I_z = I$.

Similarly for the weight forces exerted on each beam $j$, the gravity vector $\mathbf{g}$ is calculated in the local frame $\mathcal{F}_j$ in order to calculate the local weight force:

$$ \left[ \begin{matrix} \mathbf{f}_{j,j}^{g,l} \\ \mathbf{f}_{j,j+1}^{g,l} \end{matrix} \right] = \mathbf{M}_{cn} \left[ \begin{matrix} \mathbf{g}^l \\ \mathbf{g}^l \end{matrix} \right] \quad (32) $$

where $\mathbf{f}_{j,j}^{g,l}$ is the local weight force applied to extremity $j$ due to the weight of beam $j$, $\mathbf{f}_{j,j+1}^{g,l}$ is the local weight force applied to extremity $j+1$ due to the weight of beam $j$, $\mathbf{M}_{cn}$ is the 12×12 beam inertia matrix detailed in [15], $\mathbf{g}^l$ is the gravity vector in $\mathcal{F}_j$ is given by:

$$ \mathbf{g}^l = \begin{bmatrix} \mathbf{R}_j^T & \begin{bmatrix} 0 \\ 0 \\ -g \end{bmatrix} \\ 0_{3 \times 1} \end{bmatrix} \quad (33) $$
where $\mathbf{R}_j$ is the rotation matrix between $\mathcal{F}_j$ and $\mathcal{F}_b$.

Using the Transformation matrix $\mathbf{T}_j$ of beam $j$ between $\mathcal{F}_j$ and $\mathcal{F}_b$ and its Adjoint map $\mathbf{Ad}_{\mathbf{T}_j}$, the stiffness forces in the global frame can be computed:

$$ \begin{bmatrix} \mathbf{f}_{j,j}^e \\ \mathbf{f}_{j,j+1}^e \end{bmatrix} = \begin{bmatrix} \mathbf{Ad}_{\mathbf{T}_j} \mathbf{f}_{j,j}^{e,l} \\ \mathbf{Ad}_{\mathbf{T}_j} \mathbf{f}_{j,j+1}^{e,l} \end{bmatrix} \qquad (34) $$

and similarly for the weight:

$$ \begin{bmatrix} \mathbf{f}_{j,j}^g \\ \mathbf{f}_{j,j+1}^g \end{bmatrix} = \begin{bmatrix} \mathbf{Ad}_{\mathbf{T}_j} \mathbf{f}_{j,j}^{g,l} \\ \mathbf{Ad}_{\mathbf{T}_j} \mathbf{f}_{j,j+1}^{g,l} \end{bmatrix} \qquad (35) $$

where

$$ \mathbf{T}_j = \begin{bmatrix} \mathbf{R}_j & \mathbf{p}_j \\ 0_{1 \times 3} & 1 \end{bmatrix} \qquad (36) $$

and

$$ \mathbf{Ad}_{\mathbf{T}_j} = \begin{bmatrix} \mathbf{R}_j & [\mathbf{p}_j] \mathbf{R}_j \\ 0_{3 \times 3} & \mathbf{R}_j \end{bmatrix} \qquad (37) $$

$\mathbf{p}_j$ is the translation vector between $\mathcal{F}_j$ and $\mathcal{F}_b$, and $[\mathbf{p}_j]$ is the skew-symmetric matrix associated to $\mathbf{p}_j$.

The extremities of the cable 0 and $p$ are subject each to one stiffness force $\mathbf{f}_{0,0}^e$ and $\mathbf{f}_{p-1,p}^e$ respectively, due to the deformation of beam 0 and beam $p-1$ respectively. The rest of the extremities $j$ are subject each to two stiffness forces $\mathbf{f}_{j-1,j}^e$ and $\mathbf{f}_{j,j}^e$, due to the deformation of beam $j-1$ and beam $j$ respectively. Therefore, the total applied force to extremity $j$ is:

$$ \mathbf{f}_{ek}(6j:6j+5) = \begin{cases} \mathbf{f}_{j,j}^e, & j=0 \\ \mathbf{f}_{j-1,j}^e, & j=p \\ \mathbf{f}_{j-1,j}^e + \mathbf{f}_{j,j}^e, & 0 < j < p \end{cases} \qquad (38) $$

Similarly for the weight:

$$ \mathbf{f}_{gk}(6j:6j+5) = \begin{cases} \mathbf{f}_{j,j}^g, & j=0 \\ \mathbf{f}_{j-1,j}^g, & j=p \\ \mathbf{f}_{j-1,j}^g + \mathbf{f}_{j,j}^g, & 0 < j < p \end{cases} \qquad (39) $$

The cable inertia matrix $\mathbf{M}_k$ is built from the $12 \times 12$ beam inertia matrix $\mathbf{M}_{cn}$:

$$ \mathbf{M}_k = \begin{bmatrix} \mathbf{AD}_{\mathbf{T}_0} \mathbf{M}_{cn} \mathbf{AD}_{\mathbf{T}_0}^T & 0_{12 \times 6(p-1)} \\ 0_{6(p-1) \times 12} & 0_{6(p-1) \times 6(p-1)} \end{bmatrix} + \begin{bmatrix} 0_{6 \times 6} & 0_{6 \times 12} & 0_{6 \times 6(p-2)} \\ 0_{12 \times 6} & \mathbf{AD}_{\mathbf{T}_j} \mathbf{M}_{cn} \mathbf{AD}_{\mathbf{T}_j}^T & 0_{12 \times 6(p-2)} \\ 0_{6(p-2) \times 6} & 0_{6(p-2) \times 12} & 0_{6(p-2) \times 6(p-2)} \end{bmatrix} + \dots + \begin{bmatrix} 0_{6(p-1) \times 6(p-1)} & 0_{6(p-1) \times 12} & \mathbf{AD}_{\mathbf{T}_p} \mathbf{M}_{cn} \mathbf{AD}_{\mathbf{T}_p}^T \\ 0_{12 \times 6(p-1)} & \mathbf{AD}_{\mathbf{T}_p} \mathbf{M}_{cn} \mathbf{AD}_{\mathbf{T}_p}^T & 0_{6(p-1) \times 6(p-1)} \end{bmatrix} \qquad (40) $$

where

$$ \mathbf{AD}_{\mathbf{T}_j} = \begin{bmatrix} \mathbf{Ad}_{\mathbf{T}_j} & 0 \\ 0 & \mathbf{Ad}_{\mathbf{T}_j} \end{bmatrix} \qquad (41) $$

The dynamic equation of the platform with vector of generalized coordinates $\mathbf{q}_p$ is given from the kinetic and potential energies calculated in Eq. (13) and Eq. (14) respectively, using the Lagrangian formulation, and finally it is the same as the one found in Eq. (24) without the constraints:

$$ \mathbf{M}_p(\mathbf{q}_p)\ddot{\mathbf{q}}_p = \mathbf{c}_p(\dot{\mathbf{q}}_p, \mathbf{q}_p) - \mathbf{g}_p(\mathbf{q}_p) - \dot{\mathbf{M}}_p(\dot{\mathbf{q}}_p, \mathbf{q}_p)\dot{\mathbf{q}}_p \qquad (42) $$

Each cable $k$ is connected to its corresponding winch, pulley, and anchor points $B_k$ on the platform, leading to geometric constraints that must be satisfied. The perimeters of the winch and the pulley are discretized into arcs, each with a length equal to the length of each beam $L$. The constraints involving the
winch and the pulley must be updated online to account for changes in the indices of the beams in contact with each of them. The constraints can be written as:

$$ \mathbf{h}_{1k} = \begin{bmatrix} x_{Bk}(\mathbf{q}_k^b) - x_{Bk} \\ y_{Bk}(\mathbf{q}_k^b) - y_{Bk} \\ z_{Bk}(\mathbf{q}_k^b) - z_{Bk} \end{bmatrix}, \quad \mathbf{h}_{2k} = \begin{bmatrix} x_{Pk_j}(\mathbf{q}_k^b) - x_{Pk_j} \\ y_{Pk_j}(\mathbf{q}_k^b) - y_{Pk_j} \\ z_{Pk_j}(\mathbf{q}_k^b) - z_{Pk_j} \end{bmatrix}, \quad \mathbf{h}_{3k} = \begin{bmatrix} x_{Wk_o}(\mathbf{q}_k^b) - x_{Wk_o} \\ y_{Wk_o}(\mathbf{q}_k^b) - y_{Wk_o} \\ z_{Wk_o}(\mathbf{q}_k^b) - z_{Wk_o} \end{bmatrix} \quad (43) $$

where $\mathbf{h}_{1k}$ contains the three platform constraints, $\mathbf{h}_{2k}$ contains the 3pk pulley constraints, $\mathbf{h}_{3k}$ contains the 3wk winch constraints, $Pk_j$ is a point of contact between a beam extremity and the pulley, $pk$ is the number of beam extremities in contact with the pulley at points $Pk_j$, $Wk_o$ is a point of contact between a beam extremity and the winch, and $wk$ is the number of beam extremities in contact with the winch at points $Wk_o$. Figure 6 illustrates the constraints described above, represented by cyan vectors. The constraints vector

<figure><img src="image_7.png" /><figcaption>Figure 6: Illustration of the cable constraints at the corresponding platform anchor point, pulley, and winch</figcaption></figure>

should satisfy $\mathbf{h}_k = (\mathbf{h}_{1k}^T, \mathbf{h}_{2k}^T, \mathbf{h}_{3k}^T)^T = 0_{(3+3pk+3wk) \times 1}$. The corresponding Jacobian matrix is $\mathbf{A} = \frac{\partial \mathbf{h}_k(i)}{\partial \mathbf{q}^b}$, where $\mathbf{q}^b$ is the generalized coordinates vector for the full CDPR. It contains the angular positions of the winches $\theta_k$, the orientations of the pulleys $\phi_k$, the poses of the beam extremities of the cables $\mathbf{q}_k^b$, and the pose of the platform $\mathbf{q}_p$. Its dimension is $m + m + m + 6m(p+1) + 6 = 3m + 6p + 12$, and its dynamic equation is the concatenation of Eqs. 26, 28, 29, 42 with the Lagrange multipliers:

$$ \mathbf{M}(\mathbf{q}^b)\ddot{\mathbf{q}}^b = \mathbf{\tau}^b + \mathbf{c}(\dot{\mathbf{q}}^b, \mathbf{q}^b) - \mathbf{g}(\mathbf{q}^b) - \dot{\mathbf{M}}(\dot{\mathbf{q}}^b, \mathbf{q}^b)\dot{\mathbf{q}}^b - \mathbf{F}_v^b\dot{\mathbf{q}}^b + \mathbf{A}^T(\mathbf{q}^b)\mathbf{\lambda} \quad (44) $$

which, after adding Eq. (23), has the same form as Eq. (24):

$$ \begin{bmatrix} \mathbf{M}(\mathbf{q}^b) & -\mathbf{A}(\mathbf{q}^b)^T \\ \mathbf{A}(\mathbf{q}^b) & 0 \end{bmatrix} \begin{bmatrix} \ddot{\mathbf{q}}^b \\ \mathbf{\lambda} \end{bmatrix} = \begin{bmatrix} \mathbf{\tau}^b + \mathbf{c}(\dot{\mathbf{q}}^b, \mathbf{q}^b) - \mathbf{g}(\mathbf{q}^b) - \dot{\mathbf{M}}(\dot{\mathbf{q}}^b, \mathbf{q}^b)\dot{\mathbf{q}}^b - \mathbf{F}_v^b\dot{\mathbf{q}}^b \\ -\dot{\mathbf{A}}(\dot{\mathbf{q}}^b, \mathbf{q}^b)\dot{\mathbf{q}}^b \end{bmatrix} \quad (45) $$

The expression for the terms $\mathbf{M}(\mathbf{q}^b)$, $\mathbf{q}^b$, $\mathbf{\tau}^b$, $\mathbf{c}(\dot{\mathbf{q}}^b, \mathbf{q}^b)$, $\mathbf{g}(\mathbf{q}^b)$, $\dot{\mathbf{M}}(\dot{\mathbf{q}}^b, \mathbf{q}^b)\dot{\mathbf{q}}^b$, and $\mathbf{F}_v^b\dot{\mathbf{q}}^b$ is given in Appendix A.

### Equivalent second moment of area

The model presented in Sec. 2.2 assumes that the cable is made of multiple beams. However, a main difference between a cable and a beam is their ability to withstand compressive forces. Contrary to a beam, a cable is unable to resist a bending load, and when a cable is subjected to a compressive force, it will bend more easily. This is due to the second moment of area $I$ that impacts the bending stiffness of the cable as can be seen in Eq. (31).

A steel cable is usually made of braided wires and strands as shown in Fig. 7. Figure 8 illustrates the difference in the state of the strands and wires of the cable between the straight and bent configurations. It was shown in [20] that when the cable is straight, there is no slippage between the wires and they all act
<figure><img src="image_8.png" /><figcaption>Figure 7: Typical Cross section of a 2-layer braided steel cable</figcaption></figure>

<figure><img src="image_9.png" /><figcaption>Figure 8: Comparison of the state of the strands and wires between a straight and a bent cable</figcaption></figure>

as a single homogeneous body, as shown in Fig. 8a, that can bend around the transverse axis of the cable. The quadratic moment is at its maximum $I_{max}$. However, when the curvature $\kappa$ of the cable increases, the wires start to slip, and eventually each wire bends around its own transverse axis in the most extreme case, as shown in Fig. 8b. The quadratic moment is then at its minimum $I_{min}$ defined as:

$$I_{min} = I_c + \sum_{i=1}^{n_s} I_{s_{min},i} \cos \beta_{s,i} \quad (46)$$

where $I_c$ is the quadratic moment of the steel core around its own axis, $\beta_{s,i}$ is the lay angle of strand $i$, $n_s$ is the number of strands, and $I_{s_{min},i}$ is the minimum quadratic moment of strand $i$ around its own axis calculated with Eq. (46) after replacing strand with wire. Then, $I_{max}$ can be calculated:

$$I_{max} = I_{min} + \sum_{i=1}^{a} \frac{n_i}{2} A_{si} r_i^2 \cos^3 \beta_{l,i} \quad (47)$$

where $n_i$ is the number of strands in layer $i$, $A_{si}$ is the cross-sectional area of each strand in layer $i$, $r_i$ is the radius of layer $i$, $\beta_{l,i}$ is the lay angle of the strands in layer $i$ and $a$ is the number of layers. Note that $I_{min}$ and $I_{max}$ are independent from the curvature of the cable and its tension force value. The variation of the bending moment for a 2-layers cable shown in Fig. 7 of radius 3cm, with a 30° lay angle for strands and wires, and a $1.022 \times 10^{11}$ Pa Young modulus is shown in Fig. 9. In order to simplify the model, a constant value of $I \in [I_{min}, I_{max}]$ can be chosen based on the working zone of the cable.

### 3. Models Comparison and Simulation Results

In this section, the presented models in Sec. 2 are evaluated based on different criteria. First, the complexity to implement the models and calculate their matrices and vectors is discussed. Then, they
<figure><img src="image_10.png" /><figcaption>Figure 9: Theoretical evolution of bending stiffness EI as function of the curvature κ for different tension T values, based on [20]</figcaption></figure>

are simulated in different scenarios, and the results are compared to state-of-the-art models ("Rope" and "Cable" described in Sec. 3.2) of the simulation software MapleSim. The CAROCA robot [21], shown in Fig. 10, is used for simulation. Its dimensions are 7m × 4m × 3m, and it is made of 8 cables, winches and

<figure><img src="image_11.png" /><figcaption>Figure 10: CDPR (CAROCA) located at IRT Jules Verne, from [2]</figcaption></figure>

pulleys. For the first simulation test, a 1.5m × 1.5m × 0.9m heavy 365kg moving-platform is considered and the parameters used in the first test are given in Tab. 1. The damping coefficients matrix $F_k$ of Timoshenko's cable model, as well as the values used for MapleSim's models is the one identified in [22] through dynamic mechanical analysis. As for the assumed mode cable model, the damping coefficients of $w_k$ and $\alpha_k$ were tuned manually to the smallest values that ensured no high-frequency oscillations. Similar process was conducted for the pulleys and winches. Two other test scenarios are considered, replacing the moving-platform with a 0.375m × 0.375m × 0.225m light 20kg platform, and reducing the cable's Young modulus. The choice of heavy
<table><caption>Table 1: Numerical values of the CDPR parameters</caption><thead><tr><th>Parameter</th><th><i>E</i><br>(×10<sup>11</sup>Pa)</th><th>μ</th><th><i>A</i><br>(×10<sup>-5</sup>m<sup>2</sup>)</th><th>ρ<br>(kg m<sup>-1</sup>)</th><th><i>r</i><sub>p</sub><br>(cm)</th><th><i>m</i><sub>p</sub><br>(kg)</th><th><i>r</i><sub>w</sub><br>(cm)</th><th><i>m</i><sub>w</sub><br>(kg)</th></tr></thead><tbody><tr><td>Value</td><td>1.022</td><td>0.28</td><td>2.1488</td><td>0.145</td><td>7.5</td><td>3.4</td><td>6</td><td>5</td></tr></tbody></table>

and light platforms is made to emphasize the appearance of elasticity and sag, respectively. The impact of elasticity is amplified when the platform is heavier, as a consequence of cable tension. Conversely, when the cable-to-platform weight ratio is greater, indicating a lighter platform, the cable tension is diminished, resulting in a more pronounced sag impact. The decrease in Young's modulus aims to show the impact of more elastic cables on the robot's response. The summary of the three tests is given in Tab. 2.

<table><caption>Table 2: Summary of modified parameters between simulations</caption><thead><tr><th>Simulation</th><th><i>m</i><sub>plt</sub><br>(kg)</th><th>Platform dimensions</th><th><i>E</i><br>(×10<sup>11</sup>Pa)</th></tr></thead><tbody><tr><td>1</td><td>365</td><td>1.5m × 1.5m × 0.9m</td><td>1.022</td></tr><tr><td>2</td><td>20</td><td>0.375m × 0.375m × 0.225m</td><td>1.022</td></tr><tr><td>3</td><td>365</td><td>1.5m × 1.5m × 0.9m</td><td>0.1022</td></tr></tbody></table>

### 3.1. Comparison of models complexity

The necessary parameters to simulate each model are shown in Tab. 3. It should be noted that the damping coefficients matrix $\mathbf{F}_v$ for the assumed mode approach is not the same as the damping coefficients matrix $\mathbf{F}_v^b$ for the Timoshenko approach; their dimensions are related to the dimension of $\mathbf{q}_k$ and $\mathbf{q}_k^b$. The

<table><caption>Table 3: Necessary parameters for the simulation of each model</caption><thead><tr><th rowspan="2">Model</th><th colspan="5">Parameters</th><th rowspan="2">I</th></tr><tr><th><i>E</i></th><th><i>A</i></th><th>μ</th><th>ρ</th><th><b>F</b><sub>v</sub> or <b>F</b><sub>v</sub><sup>b</sup></th></tr></thead><tbody><tr><td>Timoshenko</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>✓(Cable geometry)</td></tr><tr><td>Assumed mode (elastic)</td><td>✓</td><td>✓</td><td>X</td><td>✓</td><td>✓</td><td>X</td></tr><tr><td>Assumed mode (inelastic)</td><td>X</td><td>X</td><td>X</td><td>✓</td><td>✓</td><td>X</td></tr></tbody></table>

dimensions of each model's generalized coordinates vector and Lagrange multipliers are shown in Tab. 4. The dimensions of both assumed mode-based models are the same, this is due to the fact that the elongation $\delta l_k$ of cable $k$ is being expressed as function of the other coordinates of the system. However, the dimension of the Timoshenko beam-based model is bigger than the assumed mode-based model for any number of beams $p$ used. The reason is that the Timoshenko beam-based model takes into account the 6 directions of deformation of the cable resulting in bigger dimension even for $p = 1$. Furthermore, the assumed mode approach bypasses the constraints of the cables around the pulleys and the winches resulting in a smaller dimension of $\lambda$. As a consequence, even if the number of states and Lagrange multipliers in the Timoshenko beam-based model can be reduced by neglecting some directions of deformation, the size of the states of the assumed mode-based model will still be smaller. Furthermore, if the models are used to simulate a real robot, the measurement of the initial states of the assumed mode-based model is easier due to the lower number of coordinates and the ability to express the elements of $\mathbf{q}_k$ in relation to each other. After measuring the initial cable lengths from the winch encoders and knowing the initial moving-platform position, and based on the geometrical relations extracted from Figs. 3a and 3b, it can be shown that for a suspended CDPR:

$$ \phi_k = \operatorname{atan2}(y_{Bk} - y_{Ak}, x_{Bk} - x_{Ak}) \qquad (48) $$
<table><caption>Table 4: Dimension of generalized vector and Lagrange multipliers of each model</caption><thead><tr><th rowspan="2">Model</th><th colspan="2">Vector</th></tr><tr><th>q or q<sup>b</sup></th><th>λ</th></tr></thead><tbody><tr><td>Timoshenko</td><td>(6p + 8)m + 6</td><td>3m + Σ<sup>m</sup><sub>k=0</sub> 3pk + 3wk</td></tr><tr><td>Assumed mode (elastic)</td><td>4m + 6</td><td>3m</td></tr><tr><td>Assumed mode (inelastic)</td><td>4m + 6</td><td>3m</td></tr></tbody></table>

$$ w_k = - \frac{3}{4 \tan\left(\frac{\pi}{2} + \operatorname{atan2}(z_{Bk} - z_{Ak'}, \sqrt{(x_{Bk} - x_{Ak'})^2 + (y_{Bk} - y_{Ak'})^2}) - \alpha_k\right)} + \frac{9}{4 \tan^2\left(\frac{\pi}{2} + \operatorname{atan2}(z_{Bk} - z_{Ak'}, \sqrt{(x_{Bk} - x_{Ak'})^2 + (y_{Bk} - y_{Ak'})^2}) - \alpha_k\right)} + 6 \quad (49) $$

$$ l_{ck} \sqrt{4w_k^4 - 3w_k^2 + 9 - 3\sqrt{(x_{Bk} - x_{Ak'})^2 + (y_{Bk} - y_{Ak'})^2 + (z_{Bk} - z_{Ak'})^2}} = 0 \quad (50) $$

Equations 49 and 50 can be solved numerically to determine $\alpha_k$ and $w_k$.

However, the symbolic expressions of the dynamic equation matrices of the Timoshenko beam-based model is simpler than the assumed mode-based one. The generalized coordinates $q_k$ of the assumed mode model for cable $k$ are connected, making the expressions of the kinetic and potential energies sophisticated. The expressions become far more complex when introducing the elongation of the cable $\delta l_k$. Compiling this model was not possible using an HP ZBook G3 with 32GB RAM and Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz. Therefore, in what remains, the assumed mode based model considers cable sag only.

## 3.2. MapleSim

The MapleSim™ software, specifically its Ropes and Pulleys library, provides various built-in tools for modeling cable-driven robots, including pre-defined models for cables, pulleys, and winches. This framework provides three possible cable models: rope, chain, and cable. Rope and cable models will be considered here. Rope is the simplest one where only the elasticity is considered, and cable is the most accurate one where elasticity and sagging are considered. The rope model is made up of two massless nodes connected by a spring and a damper. The cable model relies on [23], where the cable is discretized into $N$ equidistant nodes, being connected with each other by springs and dampers. Moreover, the cable mass is spread along the nodes. It should be noted that the cable model requires the second moment of area as a parameter. However, MapleSim mandates a fixed value before the start of the simulation, making the dynamic equivalent second moment of area described in Sec. 2.2 inapplicable. Furthermore, unlike the rope model, which considers only elongation and is thus limited to a 1D representation, the cable model accounts for bending in both the vertical and out-of-plane directions, enabling a full 3D representation.

## 3.3. Implementation

The assumed mode-based model is implemented in two steps. First, a symbolic calculation within Maple software allows to calculate the expressions of the matrices and vectors of Eq. 24. Then, they are exported to MATLAB where the simulation is built within Simulink. Simulink was used due to the tools available within it, which facilitate easier debugging and analysis of the results. However, an implementation in Python is still in progress. Additionally, the Timoshenko beam-based model was implemented within the SOFA framework [14], an open source framework dedicated to finite element modeling and simulation of soft objects, in order to take advantage of existing libraries that are already powerful in terms of computation time. The cable model uses a modified version of the BeamAdapter plugin of SOFA, where the equations presented in Sec. 2.2 are implemented in C++, allowing for an optimized computation time. The pulleys, winches, and platform utilize SOFA's low-level built-in functions to define their dynamic equations by creating DOF, adding mass components, and establishing the relation with other components in Python. Table 5 summarizes the assumptions considered in each model.
<table><caption>Table 5: Assumptions made by each model</caption><thead><tr><th rowspan="2">Model</th><th colspan="5">Assumptions</th></tr><tr><th>Elasticity</th><th>Bending</th><th>Torsion</th><th>Shear</th><th>Pulley</th><th>Winch</th></tr></thead><tbody><tr><td>Timoshenko</td><td>✓</td><td>✓</td><td>✓</td><td>✓</td><td>1 DOF + 1 DOF coupled to winch</td><td>1 DOF</td></tr><tr><td>Assumed mode</td><td>Not considered</td><td>In vertical plane only</td><td>X</td><td>X</td><td>2 DOF</td><td>1 DOF</td></tr><tr><td>MapleSim rope</td><td>✓</td><td>X</td><td>X</td><td>X</td><td>2 DOF</td><td>1 DOF</td></tr><tr><td>MapleSim cable</td><td>✓</td><td>✓</td><td>X</td><td>X</td><td>2 DOF</td><td>1 DOF</td></tr></tbody></table>

### 3.3.1. Reference trajectory and error evaluation

The target task in all three tests is the same; to accomplish a pick-and-place trajectory as depicted in Figs. 11 and 12. This trajectory starts after a 10s initialization phase, where the platform is kept at the initial target Cartesian position. At the first iteration, all models are initialized to straight cable configuration. The initialization phase is cut from the plots of the results. The main objective of this work is not

<figure><img src="image_12.png" /><figcaption>Figure 11: Reference Cartesian trajectory of the robot platform</figcaption></figure>

to evaluate the precision of the control law, and hence the tracking of the reference trajectory. Instead, it focuses on analyzing the model behavior under the same reference in an identical setup. To achieve this objective, three ground rules are established. First, an inverse geometric model (IGM) and an inverse kinematic model (IKM) based on an ideal cable model are used to generate the joint space trajectory; angular positions and velocities of the winches. A detailed calculation of the cable length and its rate of change for each winch, as derived from the IGM and IKM and based on the platform position and pulley radius, can be found in [24]. The angular positions and velocities of the winches are then determined in proportion to the length and rate of change of each cable, based on the winch radius. Second, the same PD controller is used for all models. Third, the states of the robot (winches angular positions, cables tensions at the platform, and platform Cartesian position) are compared between the models instead of the tracking precision of the reference Cartesian trajectory. The corresponding block diagram is shown in Fig. 13. The criteria used to evaluate the difference between the models is the Relative Root Mean Squared Error (RRMSE). Given that the Timoshenko beam model captures all six deformation directions, and based on the accuracy comparison from an initial experimental test described in Appendix B, it is considered to be the ground truth, with the RRMSE of the other models being evaluated with respect to it. The RRMSE is defined as:

$$RRMSE = \frac{\sqrt{\frac{1}{n_r} \sum_{i=1}^{n_r} (y_{\text{Timoshenko},i} - y_{\text{model},i})^2}}{\sqrt{\frac{1}{n_r} \sum_{i=1}^{n_r} y_{\text{Timoshenko},i}^2}} \quad (51)$$
<figure><img src="image_13.png" /><figcaption>Figure 12: Simulation environment in SOFA with winch numbering $w_k$ and the reference Cartesian trajectory of the platform from $P_1$ to $P_4$</figcaption></figure>

where $y_{\text{Timoshenko},i}$ represents the values measured from the Timoshenko model, $y_{\text{model},i}$ represents the predicted values from the model being evaluated, and $n_r$ is the number of registered measurements. This measurement provides a normalized error metric, allowing for comparison between models in terms of their relative accuracy to the Timoshenko model.

<figure><img src="image_14.png" /><figcaption>Figure 13: Trajectory generation and control architecture</figcaption></figure>

### 3.3.2. Test 1

In the first test, the heavy platform of 365kg is used with cables of Young modulus $E = 1.022 \times 10^{11}$ Pa. The angular position of winch 6 is shown in Fig. 14. It shows that the angular position is almost identical for all four models. The RRMSE of each cable and their means are shown in Fig. 15. All but 1 winch have a very small RRMSE (< 5%), indicating the similar response between all winches of the different models.

However, the cable tensions show a different result. Two different behaviors are seen in Figs. 16 and 17.

In all cases, the tension calculated using both MapleSim models rope and cable are almost identical, and very close to the Timoshenko's that has the same shape. On the other hand, the tensions calculated by the assumed mode model are showing an important offset with the other 3 plots as the robot advances. This appears clearly on the RRMSE bar graph in Fig. 18, where four cables have acceptable errors (< 20%) and four others have significant errors (> 20%). Finally, the platform's Cartesian position is examined and the relative Cartesian error with respect to the Timoshenko model shows in Fig. 19 a maximum value less than 12cm for both MapleSim models along the z-axis, and less than 16cm for the assumed mode model. The RRMSE in Fig. 20 along the 3 axes shows that the behavior is similar for both MapleSim models, and slightly different for the assumed mode model. This result was expected because the heavy platform mass, compared to the cable mass, significantly reduces the cable sag, causing the cables to become almost straight.
<figure><img src="image_15.png" /><figcaption>Figure 14: Angular position of winch 6 during test 1</figcaption></figure>

<figure><img src="image_16.png" /><figcaption>Figure 15: RRMSE (%) for each winch angular position during test 1</figcaption></figure>

<figure><img src="image_17.png" /><figcaption>Figure 16: Cable 6 tension at the platform during test 1</figcaption></figure>

and making the chosen mode less precise. In addition, the cable has a large Young modulus making it very stiff, and thus the elongation due to elasticity is very small which is the reason why both MapleSim models gave similar results.
<figure><img src="image_18.png" /><figcaption>Figure 17: Cable 8 tension at the platform during test 1</figcaption></figure>

<figure><img src="image_19.png" /><figcaption>Figure 18: RRMSE (%) for each cable tension during test 1</figcaption></figure>

<figure><img src="image_20.png" /><figcaption>Figure 19: Cartesian position error with respect to Timoshenko model along z-axis during test 1</figcaption></figure>
<figure><img src="image_21.png" /><figcaption>Figure 20: RRMSE (%) for the Cartesian position along each axis during test 1</figcaption></figure>

### 3.3.3. Test 2

In this test, the platform's mass is reduced to 20kg as well as its dimensions (see Tab. 2). The objective is to increase the cable-to-platform mass ratio, which promotes the sagging of the cables. The angular positions of the winches, similarly to test 1, are very close between the models as can be seen in Fig. 21. Figure 22 shows that the RRMSE is also very small (< 5%) for all winches, confirming the similar response of the models to the input. However, contrary to test 1, the cable tensions of MapleSim's models rope and

<figure><img src="image_22.png" /><figcaption>Figure 21: Angular position of winch 6 during test 2</figcaption></figure>

<figure><img src="image_23.png" /><figcaption>Figure 22: RRMSE (%) for each winch angular position during test 2</figcaption></figure>
cable are no longer the same as shown in Fig. 23. The rope model estimated a lower tension than the cable model, which remains close to the Timoshenko model. This bias emphasizes the non negligible impact of considering the cable mass in this scenario. In contrast, the assumed mode model estimated higher tension values. It should be noted that for some cables, the tensions predicted by the rope model were higher than the cable and Timoshenko models, and the ones predicted by the assumed mode model were lower. The RRMSE histogram in Fig. 24 confirms the impact of considering the cable mass, having a mean RRMSE of 10% approximately for the MapleSim cable model in contrast with 42% for the MapleSim rope model. The assumed mode model, as in test 1, has a high 38% RRMSE. Finally, the platform's Cartesian position

<figure><img src="image_24.png" /><figcaption>Figure 23: Cable 8 tension at the platform during test 2</figcaption></figure>

<figure><img src="image_25.png" /><figcaption>Figure 24: RRMSE (%) for each cable tension during test 2</figcaption></figure>

error is evaluated and Fig. 25 depicts the error along the z-axis. The assumed mode's error is reduced approximately to half its value compared to results analyzed in Fig. 19, indicating that the cable's shape matches better the defined mode. As expected, the rope model shows the biggest error due to disregarding the cable's mass. Fig. 26 indicates that the absolute error is slightly lower in the assumed mode model compared to the cable model, which is slightly lower compared to the rope model.

### 3.3.4. Test 3

In this test, the Young modulus is reduced to $E = 1.022e10$ Pa compared to test 1. The aim is to reduce the axial stiffness of the robot $EA/L$, making the cable more elastic. The 365kg platform is used to ensure
<figure><img src="image_26.png" /><figcaption>Figure 25: Cartesian position error with respect to Timoshenko model along z-axis during test 2</figcaption></figure>

<figure><img src="image_27.png" /><figcaption>Figure 26: RRMSE (%) for the Cartesian position along each axis during test 2</figcaption></figure>

high cable tension that will help promote cable elongation. Figures 27 and 28 show that the angular positions of the winches are close for all models, similarly to tests 1 and 2. The RRMSE is very small (< 5%) for five winches, and slightly higher for the remaining three winches (< 7.5%). The responses of the models are close in terms of angular positions of the winches.

However, the same offset found in test 1 for the assumed mode cable tension on some of the cables is found again. The rest of the curves have similar shapes and the cable tensions are close, as shown in Figs. 29 and 30. The RRMSE of the assumed mode model is very high and reaches up to 50% as seen in Fig. 31. On the other hand, the MapleSim models have similar values and have a mean value of 10% approximately, meaning the tension is not very far off.

Finally, the Cartesian position error along the z-axis and the RRMSE along each axis and the absolute distance are given in Figs. 32 and 33 respectively. The MapleSim models have similar results. However, the errors for the assumed mode model are larger. This is due to the hypotheses used in this test, i.e. making the cables more elastic, that promote the elongation of the cables. The current assumed mode model used does not incorporate elastic behavior, which increases the differences in the Cartesian pose as the platform becomes heavier.

### 3.4. Simulation time

The last criterion used to compare the models is the simulation time, which is shown in Fig. 34. The
<figure><img src="image_28.png" /><figcaption>Figure 27: Angular position of winch 6 during test 3</figcaption></figure>

<figure><img src="image_29.png" /><figcaption>Figure 28: RRMSE (%) for each winch angular position during test 3</figcaption></figure>

<figure><img src="image_30.png" /><figcaption>Figure 29: Cable 6 tension at the platform during test 3</figcaption></figure>

simulation time is displayed on a logarithmic scale to accommodate the wide range of values. A different solver has been used for each simulation in order to ensure the numerical stability and convergence of the results. MapleSim™ recommends the variable-step Rosenbrock solver as the system equations are stiff. In SOFA, the fixed-step implicit Euler method is utilized, with a time step of $dt = 5$ms. In Simulink, the variable-step Runge-Kutta method is utilized. The assumed mode model gave the fastest results and
<figure><img src="image_31.png" /><figcaption>Figure 30: Cable 8 tension at the platform during test 3</figcaption></figure>

<figure><img src="image_32.png" /><figcaption>Figure 31: RRMSE (%) for each cable tension during test 3</figcaption></figure>

<figure><img src="image_33.png" /><figcaption>Figure 32: Cartesian position error with respect to Timoshenko model along z-axis during test 3</figcaption></figure>
<figure><img src="image_34.png" /><figcaption>Figure 33: RRMSE (%) for the Cartesian position along each axis during test 3</figcaption></figure>

<figure><img src="image_35.png" /><figcaption>Figure 34: Simulation time for different models (logarithmic scale)</figcaption></figure>

proved to be capable of real-time simulation. The rest of the models were unable to reach real-time speed. MapleSim rope model was the second fastest; however, the difference with the Timoshenko model decreased significantly for test 2, suggesting that in certain tests the Timoshenko model could be as fast or faster if Rosenbrock solver uses a very small time step compared to the fixed time step of implicit Euler. Finally, the MapleSim cable model was the slowest. It is important to highlight that in SOFA, the code of the base elements is compiled only once in C++. However, the assembly for the simulation is done in Python. This is in contrast to MapleSim, where the code needs to be compiled for every simulation. Additionally, the discretization of MapleSim cable model and Timoshenko beam model is not the same. Only 6 segments (7 nodes) were used in MapleSim cable model, in contrast to 294 beam segments in Timoshenko beam model. The large number of beam segments used is constrained by the discretization of the pulleys and winches. The length of each beam must match the length of each arc of the pulley and the winch. Increasing the number of segments in MapleSim to match that of the Timoshenko model was not feasible due to the excessive simulation time. For instance, increasing the number of segments to 11 raised the simulation time of test 2 from 27h to 74h.

### 3.5. Tests summary

The results of the tests show larger or smaller differences between the models depending on the hypotheses. In test 1, the cables were stiffer and the mass of the platform was large, hence the cable elongation was small and the cables are almost straight. In this case, focusing first on positional accuracy, the MapleSim models produced the same platform position and almost the same as Timoshenko model. The assumed mode was a little bit further, possibly because it tries to fit a parabolic shape to an almost straight line. However, in test 2, the platform mass is smaller, thus cable sag is bigger. The assumed mode model is closer to the Timoshenko model. A slight difference appears between MapleSim's models with the cable model
closer to Timoshenko because it takes the cable mass into account. Lastly, in test 3 where the cables are more elastic, the assumed mode model gives the biggest Cartesian error, especially along the z-direction. As for the cable tension, the assumed mode model produced significantly different values than the other models for all tests. The rope model's predictions were far from cable and Timoshenko model for test 2 only, where sag was considerable. On the other hand, simulation time proved to be a non negligible factor due to the big disparity between the results. While the cable model's results were close to the Timoshenko model's, it took several hours or a day depending on the test. The rope model was faster, but was still not able to produce real time results, which was only possible with the assumed mode model. Some works within the SOFA framework implemented a model reduction algorithm [25] that can be applied to the Timoshenko model to allow faster computation and help to reach real time simulation. Ultimately, the choice of the ideal model depends on the simulation scenario, i.e. elastic or "rigid" cables, large or small cable-to-platform weight ratio, required model output, i.e. platform position or/and cable tension and/or angular positions of the winches, as well as the required simulation speed, i.e. real-time or not.

## 4. Conclusions

This paper deals with the modeling and simulation of cable-driven parallel robots (CDPRs) accounting for either the effects of cable sag, elasticity, or both. Although ambitious in terms of the realism targeted, the complexity of the model must remain limited. A detailed theoretical description and comparison of two approaches is proposed based on the assumed mode theory and the use of three-dimensional Timoshenko beam theory. The equations of the assumed mode model were extracted using Maple and simulated in MATLAB/Simulink while the Timoshenko beam model was implemented using finite element method within a physics-based simulation platform, the SOFA framework. To authors' knowledge, the 3D formulation of the assumed mode, in particular while taking into account the cable elasticity in addition to the use of Timoshenko's model for CDPR are novel results that should benefit the robotics community. To evaluate the proposed models, the simulations are compared with other literature works implemented using MapleSim software and the MapleSim Ropes and Pulleys Library. The cable tensions, the angular positions of the winches, as well as the Cartesian platform position were compared. The models showed similarities and differences in results based on the simulated scenario. It should be noted that the assumed mode model can simulate in real-time compared to the three other models. The Timoshenko beam model is faster than the MapleSim cable model, but slower than the MapleSim massless rope model. These different models have their advantages and disadvantages. From our point of view, the use of the Timoshenko approach is worth considering for a fine simulation model, particularly as it is available in working environments such as SOFA, which facilitates implementation. Furthermore, our various tests enabled us to observe a constant simulation time whatever the assumptions made about cable elasticity, the mass ratio between the cables and the platform, etc., while observing a simulation time that may not be real-time, but which is perfectly acceptable in view of the precision of the mesh selected. Our initial analysis of the assumed mode model requires further studies, in particular to understand the discrepancies observed in cable tension estimates. One avenue we are currently exploring involves estimating cable tension based on the applied torques to the motors and calculating the tension at the platform while accounting for the variation in tension along the cable due to its mass. Moreover, taking into account an additional mode, accounting for out-of-plane cable motion, or obtaining a compiled model that takes elasticity into account, are promising perspectives for future work. This is due to the fact that the real-time simulation capability makes this model particularly appealing for the implementation of advanced control strategies, such as predictive control [26].

## Appendix A. Matrices and vectors appearing in the Timoshenko model

The matrices and vectors used in the Timoshenko CDPR dynamic model, as described in Eq. 44, are defined as follows:
$$
\begin{align*}
\mathbf{M}(\mathbf{q}^b) &=
\begin{bmatrix}
\begin{bmatrix} J_0 & & & 0 \\ & \ddots & & \\ 0 & & J_m & \end{bmatrix} & & & \\
& \begin{bmatrix} I_{\phi 0} & & & 0 \\ & \ddots & & \\ 0 & & I_{\phi m} & \end{bmatrix} & & \\
& & \begin{bmatrix} \mathbf{M}_0 & & & 0 \\ & \ddots & & \\ 0 & & \mathbf{M}_m & \end{bmatrix} & & \\
& & & \mathbf{M}_p(\mathbf{q}_p)
\end{bmatrix}
\begin{bmatrix}
\theta_0 \\
\vdots \\
\theta_m \\
\phi_0 \\
\vdots \\
\phi_m \\
\mathbf{q}_0^b \\
\vdots \\
\mathbf{q}_m^b \\
\mathbf{q}_p
\end{bmatrix}
=
\begin{bmatrix}
\tau_0 \\
\vdots \\
\tau_m \\
0 \\
\vdots \\
0 \\
0 \\
\vdots \\
0 \\
0
\end{bmatrix} \\
\mathbf{c}(\dot{\mathbf{q}}^b, \mathbf{q}^b) &=
\begin{bmatrix} 0 \\ \vdots \\ 0 \\ 0 \\ \vdots \\ 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix}
\mathbf{g}(\mathbf{q}^b) =
\begin{bmatrix} 0 \\ \vdots \\ 0 \\ 0 \\ \vdots \\ 0 \\ -\mathbf{f}_{e0}(\mathbf{q}_0^b) - \mathbf{f}_{g0}(\mathbf{q}_0^b) \\ \vdots \\ -\mathbf{f}_{e7}(\mathbf{q}_7^b) - \mathbf{f}_{g7}(\mathbf{q}_7^b) \\ \mathbf{g}_p(\mathbf{q}_p) \end{bmatrix}
\dot{\mathbf{M}}(\dot{\mathbf{q}}^b, \mathbf{q}^b) \dot{\mathbf{q}}^b =
\begin{bmatrix} 0 \\ \vdots \\ 0 \\ 0 \\ \vdots \\ 0 \\ 0 \\ \vdots \\ 0 \\ \dot{\mathbf{M}}_p(\dot{\mathbf{q}}_p, \mathbf{q}_p) \dot{\mathbf{q}}_p \end{bmatrix}
\mathbf{F}_v^b \dot{\mathbf{q}}^b =
\begin{bmatrix}
f_{\theta 0} \dot{\theta}_0 \\
\vdots \\
f_{\theta m} \dot{\theta}_m \\
f_{\phi 0} \dot{\phi}_0 \\
\vdots \\
f_{\phi m} \phi_m \\
\mathbf{F}_0 \dot{\mathbf{q}}_0^b \\
\vdots \\
\mathbf{F}_m \dot{\mathbf{q}}_m^b \\
0
\end{bmatrix}
\end{align*}
$$

Appendix B. Experimental validation

Appendix B.1. Experimental setup

This experiment is limited to the static case, serving as a preliminary validation step for the models
presented in Sec. 2. Future studies should incorporate dynamic testing for more comprehensive evaluation.
The experimental procedure is designed to study the cable under varying conditions, beginning with a
highly tensioned state where the cable is nearly straight. A total of seven tests are conducted, with the
tension progressively reduced in each test, allowing for an increase in the cable’s sag. This systematic
reduction in tension provides insight into the cables performances under different loading scenarios and
allows for a thorough comparison between the models’ predictions and the observed experimental outcomes.
To implement this experimental setup, one end of the cable is securely fixed to the stationary chassis of
CAROCA, while the other end is attached to the moving-platform of CAROCA. By adjusting the position
of the moving-platform, the tension in the cable can be precisely increased or decreased. To monitor the
tension in the cable throughout the experiment, TCA load cells (model CTCA50k5) from AEP Transducers
are utilized. One sensor is placed at each end of the cable by using U-shaped shackles as shown in Fig. B.35.
The full experimental setup can be seen in Fig. B.36, where the relevant cable is highlighted in black.

The shape of the cable is measured manually using a T-probe connected to a Leica laser station. In each
test scenario, the 3D Cartesian coordinates of 11 equidistant marked points along the cable are accurately
recorded with the T-probe as shown in Fig. B.37, while ensuring that the cable remains undisturbed during
the measurement process. To determine the initial rest length of each discretized cable segment, the T-probe
was used to capture measurements while the cable was laid straight on the floor. The rest lengths of each
cable segment are given in Tab. B.6.

Appendix B.2. Model Comparisons

To accurately evaluate the precision of the models, a numerical reconstruction of the measured cable
shape is required. For each marked point on the cable, three consecutive measurements were taken to
<figure><img src="image_36.png" /><figcaption>Figure B.35: Connection of the cable to the platform and chassis using U-shaped shackles and through tension sensors</figcaption></figure>

<figure><img src="image_37.png" /><figcaption>Figure B.36: The experimental setup used to measure cable shape</figcaption></figure>

minimize the error caused by contact with the cable, especially when the tension is low. The mean of these three measurements is considered as the initial experimental value for each point.

The cable is assumed to lie within a vertical plane, which can be defined in one of two ways: by creating a vertical plane that passes through the first and last measured points, or by generating a best-fit vertical plane through all 11 measured points. Since the measured endpoints are not the true cable extremities but are located just after the ferrule clamp, the best-fit plane is preferred. This accounts for the possibility that the endpoints, similarly to the other points along the cable, may have slightly shifted out of the assumed vertical plane during measurement.

Finally, the initial experimental measurements are projected onto this best-fit plane to produce the final, ready-to-use experimental data points which will only be referred to in the remainder of the analysis. Figure B.38 shows a comparison between the simulated points using Timoshenko's cable model as described in Sec. 2.2, and the experimental measurements. Each point is represented by a 3D vector frame, with the purple frames indicating the experimental measurements and the multi-colored frames (blue, green, and red) representing the model. Since the orientation of the points was not captured using the T-probe, it cannot
<figure><img src="image_38.png" /><figcaption>Figure B.37: Measuring the 3D Cartesian coordinates of a marked point on the cable using the laser tracker</figcaption></figure>

<table><caption>Table B.6: Rest lengths of each cable segment</caption><thead><tr><th>Segment</th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr></thead><tbody><tr><td>Rest length (mm)</td><td>462.163</td><td>468.191</td><td>468.244</td><td>472.443</td><td>469.077</td></tr><tr><td>Segment</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td></tr><tr><td>Rest length (mm)</td><td>471.32</td><td>471.794</td><td>464.986</td><td>473.257</td><td>460.603</td></tr></tbody></table>

be directly compared to the model's orientation. However, the vector frames are used to visually distinguish between the experimental data and the model. The same process was repeated for the assumed mode model described in Sec. 2.1. However, since elasticity is not taken into account, it is not possible to simulate the model for higher cable tension, i.e. tests 1 and 2, where the distance between the cable endpoints is greater than the cable length. The comparison could not be made for MapleSim's cable model, as MapleSim requires the rest length of the discretized cable segments to be equal. The complete test details and results are given in Tab. B.7. The cable sag is determined from the experimental measurements by calculating the maximum distance between a measured point and the straight line connecting the two measured endpoints, as illustrated in Fig. B.39. The mean error is calculated as the average Euclidean distance between each experimental measurement and its corresponding simulated point. It can be observed that, across all tests, whether the cable is tensioned or sagging, the maximum mean error is 6.5mm for the Timoshenko model, demonstrating an excellent estimation of the cable's geometry. On the other hand, the assumed mode model also provided good estimations for cases with small to moderate sag (19.1cm) but was less accurate than the Timoshenko model. In extreme test cases with significant sag, the error for the assumed mode model increased notably, indicating that the chosen mode cannot accurately represent the cable shape in these conditions. For this reason, the Timoshenko cable model is used as a comparison reference for the CDPR
<figure><img src="image_39.png" /><figcaption>Figure B.38: Comparison of cable shape: tensioned cable in test 1 (left), and sagging cable in test 7 (right)</figcaption></figure>

<table><caption>Table B.7: Summary of cable shape comparison</caption><thead><tr><td>Test</td><td>Tension (kg)</td><td>Sag (cm)</td><td>Mean error Timoshenko (mm)</td><td>Mean error assumed mode (mm)</td></tr></thead><tbody><tr><td>1</td><td>41.25</td><td>0.9</td><td>3.3</td><td>-</td></tr><tr><td>2</td><td>15.15</td><td>2.3</td><td>1.6</td><td>-</td></tr><tr><td>3</td><td>5.4</td><td>6.2</td><td>5.1</td><td>7.1</td></tr><tr><td>4</td><td>1.75</td><td>19.1</td><td>3.5</td><td>6.9</td></tr><tr><td>5</td><td>1.36</td><td>25.3</td><td>3.2</td><td>11.2</td></tr><tr><td>6</td><td>1.2</td><td>29.3</td><td>3.6</td><td>16.2</td></tr><tr><td>7</td><td>0.82</td><td>43.3</td><td>6.5</td><td>72.2</td></tr></tbody></table>

test scenarios.

References

[1] N. Pedemonte, T. Rasheed, D. Marquez-Gamez, P. Long, É. Hocquard, F. Babin, C. Fouché, G. Caverot, A. Girin, S. Caro, Fastkit: A mobile cable-driven parallel robot for logistics, in: A. Grau, Y. Morel, A. Puig-Pey, F. Cecchi (Eds.), Advances in Robotics Research: From Lab to Market: ECHORD++: Robotic Science Supporting Innovation, Springer International Publishing, Cham, 2020, pp. 141–163. doi:10.1007/978-3-030-22327-4_8.

[2] E. Picard, F. Plestan, E. Tahoumi, F. Claveau, S. Caro, Control strategies for a cable-driven parallel robot with varying payload information, Mechatronics 79 (2021) 102648. doi:10.1016/j.mechatronics.2021.102648.

[3] X. Tang, R. Yao, Dimensional Design on the Six-Cable Driven Parallel Manipulator of FAST, Journal of Mechanical Design 133 (11) (2011) 111012. doi:10.1115/1.4004988.

[4] M. Zarebidoki, J. S. Dhupia, W. Xu, A review of cable-driven parallel robots: Typical configurations, analysis techniques, and control methods, IEEE Robotics & Automation Magazine 29 (3) (2022) 89–106. doi:10.1109/MRA.2021.3138387.

[5] Z. Zhang, Z. Shao, Z. You, X. Tang, B. Zi, G. Yang, C. Gosselin, S. Caro, State-of-the-art on theories and applications of cable-driven parallel robots, Frontiers of Mechanical Engineering 17 (3) (2022) 37. doi:10.1007/s11465-022-0693-3.

[6] H. Irvine, Cable Structures, Dover books on engineering, Dover Publications, 1992.

[7] A. Arena, E. Ottaviano, V. Gattulli, Dynamics of cable-driven parallel manipulators with variable length vibrating cables, International Journal of Non-Linear Mechanics 151 (2023) 104382. doi:10.1016/j.ijnonlinmec.2023.104382.

[8] P. Tempel, D. Lee, F. Trautwein, A. Pott, Modeling of elastic-flexible cables with time-varying length for cable-driven parallel robots, in: Cable-Driven Parallel Robots: Proceedings of the 4th International Conference on Cable-Driven Parallel Robots 4, Springer, 2019, pp. 295–306. doi:10.1007/978-3-030-20751-9_25.

[9] A. T. Mathew, I. Ben Hmida, S. A. Mustafa, A. N. Ahmed, R. K. A. Al-Rub, B. El-Khasawneh, F. Renda, Dynamics of suspended cable driven parallel robots using the geometric variable strain approach, in: 2023 IEEE International Conference on Soft Robotics (RoboSoft), 2023, pp. 1–7. doi:10.1109/RoboSoft55895.2023.10121928.

[10] J. C. Santos, A. Chemori, M. Gouttefarde, Model predictive control of large-dimension cable-driven parallel robots, in: A. Pott, T. Bruckmann (Eds.), Cable-Driven Parallel Robots, Springer International Publishing, Cham, 2019, pp. 221–232. doi:10.1007/978-3-030-20751-9_19.

[11] J. I. Ayala Cuevas, É. Laroche, O. Piccin, Assumed-mode-based dynamic model for cable robots with non-straight cables, in: C. Gosselin, P. Cardou, T. Bruckmann, A. Pott (Eds.), Cable-Driven Parallel Robots, Springer International Publishing, Cham, 2018, pp. 15–25. doi:10.1007/978-3-319-61431-1_2.
<figure><img src="image_40.png" /><figcaption>Figure B.39: Measurement of cable sag</figcaption></figure>

[12] R. Saadaoui, E. Laroche, I. G. Bara, O. Piccin, $H_\infty$ control of a planar 3-dof flexible-cable manipulator, IFAC-PapersOnLine 55 (25) (2022) 199-204, 10th IFAC Symposium on Robust Control Design ROCOND 2022. doi:10.1016/j.ifacol.2022.09.347.

[13] F. Liu, Z. Song, J. Ma, Modeling and analysis of a cable-driven serial-parallel manipulator, Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science 238 (4) (2024) 1012-1028. doi:10.1177/09544062231175296.

[14] E. Coevoet, T. Morales-Bieze, F. Largilliere, Z. Zhang, M. Thieffry, M. Sanz-Lopez, B. Carrez, D. Marchal, O. Goury, J. Dequidt, C. Duriez, Software toolkit for modeling, simulation, and control of soft robots, Advanced Robotics 31 (22) (2017) 1208-1224. doi:10.1080/01691864.2017.1395362.

[15] J. S. Przemieniecki, Theory of matrix structural analysis, Courier Corporation, 1985.

[16] C. A. Felippa, B. Haugen, A unified formulation of small-strain corotational finite elements: I. theory, Computer Methods in Applied Mechanics and Engineering 194 (21-24) (2005) 2285-2335. doi:10.1016/j.cma.2004.07.035.

[17] K. Moussa, E. Coevoet, C. Duriez, M. Thieffry, F. Claveau, P. Chevrel, S. Caro, Fem-based dynamic model for cable-driven parallel robots with elasticity and sagging, in: International Conference on Cable-Driven Parallel Robots, Springer, 2023, pp. 55-68. doi:10.1007/978-3-031-32322-5_5.

[18] A. De Luca, B. Siciliano, Closed-form dynamic model of planar multilink lightweight robots, IEEE Transactions on Systems, Man, and Cybernetics 21 (4) (1991) 826-839. doi:10.1109/21.108300.

[19] C. Duriez, S. Cotin, J. Lenoir, P. Neumann, New approaches to catheter navigation for interventional radiology simulation, Computer aided surgery 11 (6) (2006) 300-308. doi:10.3109/10929080601090623.

[20] K. O. Papailiou, On the bending stiffness of transmission line conductors, IEEE Transactions on Power Delivery 12 (4) (1997) 1576-1588. doi:10.1109/61.634178.

[21] S. Baklouti, S. Caro, E. Courteille, Sensitivity analysis of the elasto-geometrical model of cable-driven parallel robots, in: C. Gosselin, P. Cardou, T. Bruckmann, A. Pott (Eds.), Cable-Driven Parallel Robots, Springer International Publishing, Cham, 2018, pp. 37-49. doi:10.1007/978-3-319-61431-1_4.

[22] S. Baklouti, E. Courteille, S. Caro, M. Dkhil, Dynamic and oscillatory motions of cable-driven parallel robots based on a nonlinear cable tension model, Journal of Mechanisms and Robotics 9 (6) (2017) 061014. doi:10.1115/1.4038068.

[23] P. Mitiguy, A. Banerjee, Determination of spring constants for modeling flexible beams, Working Model Technical Paper (2000).

[24] Z. Zake, Design and stability analysis of visual servoing on cable-driven parallel robots for accuracy improvement, Ph.D. thesis, École centrale de Nantes (2021).

[25] O. Goury, C. Duriez, Fast, generic, and reliable control and simulation of soft robots using model order reduction, IEEE Transactions on Robotics 34 (6) (2018) 1565-1576. doi:10.1109/TRO.2018.2861900.

[26] K. Moussa, A. Vié, M. Thieffry, F. Claveau, P. Chevrel, Model predictive control of cable-driven parallel robot with cable sagging: an assumed mode approach, in: 2024 28th International Conference on System Theory, Control and Computing (ICSTCC), 2024, pp. 533-538. doi:10.1109/ICSTCC62912.2024.10744726.