Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

Cable-driven parallel robot (CDPR) have the mechanical structure of the Gough platform with rigid legs except that the legs are cables whose length may be controlled. We will assume that the output of the coiling system for cable i is a single point \(A_i\), while the cable is connected at point \(B_i\) on the platform (Fig. 1). Classical kinematics problem are the inverse kinematics (find the lengths of the cables for a given pose of the platform) and the forward kinematics (FK) (find the pose(s) of the platform for given cable lengths). Solving the FK of parallel robots is one of the most challenging problem in modern kinematics. Two categories of FK may be distinguished:

  • real-time FK: used for control purposes with the objective of determining the current pose of the robot. It need to be fast (running within a sampling time of the robot controller) and uses the knowledge that the solution is “close” to a known pose. It may also be used for simulation purposes

  • full FK: the purpose is to determine all solutions of the FK. It is used off-line for determining the possible initial states of the robot when running a simulation

We will see later on that the real time FK is not a problem and we will address only the full FK. This problem has been addressed for CDPRDs in a very preliminary stage only very recently and under restrictive assumptions on the behavior of the cables. Indeed we may consider:

  • non-deformable cables: they are aligned along the direction \(A_iB_i\)

  • elastic cables: they are also aligned along \(A_iB_i\) but their lengths depend upon the tension to which they are submitted

  • catenary cables: they exhibit elasticity and their own mass leads to a deformed shape

Most of the kinematic works have assumed non-deformable cables. For robots having at least 6 cables the FK is equivalent to the one of classical parallel robots (for more than 6 cables at most 6 will be under tension simultaneously [1]). With less than 6 cables the problem is still open as the geometrical constraints relating the length of the cables to the pose leads to less equations than unknowns, which imposes to add the 6 additional statics equations and the cable tensions as additional unknowns. For a CDPR with m cables the minimal system has \(6+m\) equations in \(6+m\) unknowns, to be compared with the system of 6 equations for the Gough platform. Although there has been progress recently to solve these problems [24] there are still a lot of progress to be made in order to determine the maximal number of solutions according to m, solutions that should have only positive tensions and are stable.

Fig. 1
figure 1

Cable driven parallel robots with sagging cables

If we assume elasticity in the cables there has been some works for the IK [5, 6] but to the best of our knowledge the FK has never been addressed in the general case.

This paper addresses the most general case of FK for CDPR having catenary type cables. Very few works have addressed the IK and FK of such a robot [79] and none have considered the general case.

2 Problem Statement

2.1 Cable Model

We will assume cables with linear density \(\mu \), cross-section \(A_0\) and E will denote the Young modulus of the cable material. A reference frame \(O, \mathbf{x,y,z}\) will be used and the coordinates of the \(A_i\) points are known in this frame. In the vertical plane of the cable we may assume that the cable is attached at point A with coordinates (0,0) while the other extremity is attached at point B with coordinates \((x_b, y_b)\) (Fig. 2). The vertical and horizontal forces \(F_z, F_x\) are exerted on the cable at point B and the cable length at rest is \(L_0\). With this notation the coordinates of B are related to the forces \(F_x, F_z\) [10] by:

$$\begin{aligned} x_b = F_x(\frac{L_0}{EA_0}+\frac{\text {sin}h^{-1}(F_z)-\text {sin}h^{-1}(F_z -\frac{\mu g L_0}{F_x})}{\mu g}) \end{aligned}$$
(1)
$$\begin{aligned} z_b=\;&\frac{\sqrt{F_x^2+F_z^2}- \sqrt{F_x^2+(F_z-\mu g L_0)^2}}{\mu g} \nonumber \\&+\frac{F_z L_0}{E A_0}-\frac{\mu g L_0^2}{2 E A_0} \end{aligned}$$
(2)
Fig. 2
figure 2

A deformed cable

2.2 The FK Problem

We consider a spatial robot with m cables whose lengths will be denoted \(L_0^1,\ldots , L_0^m\). Without loss of generality we will assume that the Young modulus, linear density and cross-section of the cables are identical. The problem we have to solve is to determine all the possible poses of the platform being given the \(L_0^j\) and the location of the \(A_i\), together with the external forces/torques \({\mathscr {F}}\) that act on the platform. In terms of unknowns we will assume a minimal representation of the pose with 6 parameters and we have also the 2m unknown forces \(F_x^i, F_z^i\), for a total of \(6+2m\) unknowns. Note that to express these forces in the reference frame we need to establish a rotation matrix \(\mathbf{Rot}\) that rotates the planar frame around the z axis by an angle \(u_i\) so that in the reference frame we get the force acting on the platform \(\mathbf{F}\) as \(\mathbf{F}= \mathbf{Rot}(-F_x,0,-F_z)^T\) and hence for cable j \(\mathbf{F_j}=(-F_x^j \cos u_j, F_x^j \sin u_j, F_z^j)\). If we assume that the external force acting on the platform is the gravity and that the platform mass is M the mechanical equilibrium imposes that:

$$\begin{aligned} \sum _{j=1}^{j=m} F_x^j\cos u_j=0~~~~~\sum _{j=1}^{j=m} F_x^j\sin u_j=0~~~~~ \sum _{j=1}^{j=m} F_z^j=M g~~~~~ \end{aligned}$$
(3)

If C is the center of mass of the platform we get also

$$\begin{aligned} \sum _{j=1}^{j=m} \mathbf{CB_j} \times \mathbf{F_j} = \mathbf{0} \end{aligned}$$
(4)

In terms of equations we have the 2m Eqs. (1), (2) and the 6 static equations that express the mechanical equilibrium of the platform. Hence we end up with \(6+2m\) equations so that solving the FK requires to solve a square system, which will usually have a finite number of solutions. It may also been seen that the FK in that case is much more complex than the FK of the Gough platform (it has 2m additional equations) and that the classical methods used to determine an upper bound of the maximum number of solutions (Bezout number, elimination, Gröbner basis) cannot be applied here as Eqs. (1), (2) are not algebraic.

3 Solving the FK

As a theoretical solving appears to be difficult to be used we will have to resort to a numerical solving method, that has to provide all the solutions. We will use an interval analysis (IA) approach, which guarantees to find all the solutions lying within some given ranges. The basis of IA is the interval evaluation: being given a function \(f(x_1,\ldots ,x_n)\) in n variables and assuming that each variable \(x_i\) lies in the range \([\underline{x_i},\overline{x_i}]\) the interval evaluation of f is a range [AB] such that \(\forall x_i \in [\underline{x_i},\overline{x_i}], i \in [1,n]\) we have \(A \le f(x_1,\ldots ,x_n) \le B\). There are multiple ways to define an interval evaluation but the most simple is the natural evaluation: each mathematical operator has an interval equivalent (for example the addition interval operator \(\underline{+}\) is defined as \([a,b]\,\,\,\underline{+}\,\,\,[c , d]=[a+c , b+d]\)) and transforming any function by using the interval operators allows to calculate the interval evaluation. One of the property of the interval evaluation [AB] is that if \(A>0\) of \(B<0\), then f cannot cancel whatever is the value of the variables in their ranges. Note that an interval evaluation may be overestimated: there may not be value of the variables in their respective range such that \(f(x_1,\ldots ,x_n)=A\) or \(f(x_1,\ldots ,x_n)=B\). Indeed overestimation may occur because of multiple occurrences of a given variable that are considered as independent: for example the evaluation of \(x-x\) when \(x \in [-1,1]\) is [\(-2\), 2]. But the size of the overestimation decreases with the width of the variable ranges.

The second key ingredient of IA is the branch and bound algorithm. A box \({\mathscr {B}}\) is defined as a set of ranges for the variables. If for a given box we have \(f({\mathscr {B}}=[A,B]\) with \(A<0, B>0\), then we select one of the variable, \(x_i\) bisect its range in two and create two new boxes \({\mathscr {B}}_1,{\mathscr {B}}_2\) that are identical to \({\mathscr {B}}\) except for the range for \(x_i\) which result from the bisection. These boxes are stored in a list and will be processed later on. We will see in the next section that if a box is tiny enough we may determine if it includes a single solution and compute this solution with an arbitrary accuracy.

However we will not use the minimal set of equations for the FK. Indeed the pose of the platform will not be represented by the coordinates of C and three orientation angles. The motivation is that coordinates \(x_b, z_b\) in (1, 2) will be obtained after using the rotation matrix and will include several occurrences of the rotation angles, possibly leading to large overestimation. We prefer to represent the pose of the platform by the 12 coordinates in the reference frame of 4 of the points \(B_i\), which are not coplanar (we assume here that \(B_1, B_2, B_3, B_4\) are chosen). With this choice the coordinates of any point M on the platform may be obtained as \(\mathbf{OM}= \alpha _1 \mathbf{OB_1}+\alpha _2 \mathbf{OB_2}+\alpha _3 \mathbf{OB_3}+ \alpha _4 \mathbf{OB_4}\) where the \(\alpha \) are known constants. Such a representation allows one to obtain the coordinates of the \(B_j, j>4\) and of the center of mass C. As we have now 12 unknowns for representing the pose of the platform instead of 6 with the minimal representation we need 6 additional equations that are obtained by stating that the distance between a pair of points in the set \(B_1, \ldots B_4\) is a known constant. Note that these equations are not sufficient to fully describe the geometry of the platform (e.g. the equations does not allow to differentiate if a \(B_j\) point is over or under the plane that includes the three other points). Another test is needed and we will use the fact that for any point M of the platform there exist constants \(\beta _j\) such that

$$\begin{aligned} \mathbf{B_jM}= \beta _1 \mathbf{B_jB_k}+ \beta _2 \mathbf{B_jB_l}+ \beta _3 \mathbf{B_jB_k \times B_jB_l}, ~~j, k, l \in [1,4] \end{aligned}$$
(5)

It remains to manage the angles \(u_i\): formally they can be obtained using the equation

$$\begin{aligned} x_b^j\sin (u_j)+ y_b^j\cos (u_j) =0 \end{aligned}$$
(6)

where \(x_b^j, y_b^j\) are the coordinates of \(B_j\) in the reference frame. But by so doing their interval evaluation will be relatively large even for small width for the \(x_b^j, y_b^j\) intervals, especially if \(j>4\). Hence we prefer to add them as additional unknowns and to use (6) as additional equations. Hence we end up with \(12+3m\) unknowns for \(12+3m\) equations. Note that we have checked that solving this system in the context of a real-time FK is not difficult as soon as a certified strategy is used [11]: this strategy allows one to determine the current pose of the robot or eventually that the pose is too close to a singularity (in which case the FK has an infinite number of solutions).

An IA approach impose to determine a domain in which are located all the solutions. This can be easily done for the \(x_b^j, y_b^j\) variable that are restricted to lie within the convex hull of the \(A_i\) points. This can also be done for \(z_b^j\), the z coordinate of \(B_j\) that cannot be greater than the highest z coordinate of the \(A_i\) points and cannot be lower than the length obtained if we assume that the cable is vertical and bears the platform. As for the \(u_i\) as the cable have to lie within the convex hull of the \(A_i\) we can also get bounds for these variables. It remains the variables \(F_x, F_z\) which have no natural bounds except that \(F_x\) cannot be negative. We will first define m new variables \(\lambda _j\) such that \(F_z^j = \lambda _j F_x\) (which allows one to have simpler expressions for (1, 2). We take then as upper bound for \(F_x\) 10 times the value of m g and for the \(\lambda \) a range of [\(-10,10\)] (at the extremities of this range the cables are almost vertical).

3.1 Determining Exact Solutions

The classical IA branch and bound algorithm assume that if the width of a box is smaller than a small value and the interval evaluations of all equations include 0, then we have found an approximate solution of the system. Here we proceed in another way: for each box of the algorithm we run a few iterations of the Newton-Raphson scheme with as estimate of the solution the center of the box H. Note that even if the NR algorithm converges there is no guarantee (1) that the result is indeed an approximate solution of the system, (2) that the solution lie within the box or even within the search space, (3) that the result satisfies the constraint (5). In order to check if the result is really a solution of the system we use Kantorovitch theorem [11] that allows one to verify that there is indeed a single solution of the system in a ball centered at H with a known radius. If this test succeed we have furthermore the property that the NR scheme, initialized with H as guess point, converges toward the solution. We will see in the implementation section that this property will allow us to compute an approximation of the solution with an arbitrary accuracy.

As soon as a solution \(H_0\) is found it is stored and in a first step we will assume that there is no other solution in a ball centered at \(H_0\) with a given radius, this being applied only on the 12 coordinates of the point \(B_1, \ldots , B_4\). Any box that is fully included in this ball will be eliminated and if a box has an intersection with the ball, then the intersection part will be removed from the box. Our purpose in this first step is to determine balls that include a solution and possibly others. In a second step we will run the algorithm on this ball and this check will be faster because the search domain will be drastically reduced. With this approach the IA algorithm is guaranteed to complete.

3.2 Heuristics

A drawback of the usual IA branch and bound algorithm that eliminates boxes only according to the interval evaluation of the equations is that is not efficient as soon as we have complex equations with multiple occurrences of the variables. But several heuristics allows one to drastically improve the efficiency of the algorithm. A first set of heuristics is called the consistency approach, which is based on a rewriting of the equations. Consider for example the equation that described that the distance between the points of a pair of \(B_i\) point is constant. This equation is written as

$$\begin{aligned} (x_b^i-x_b^j)^2+(y_b^i-y_b^j)^2+(z_b^i-z_b^j)^2=d_{ij}^2 \end{aligned}$$
(7)

which may be rewritten as

$$ (x_b^i-x_b^j)^2=d_{ij}^2-(y_b^i-y_b^j)^2-(z_b^i-z_b^j)^2 $$

Let [AB] denote the interval evaluation of the right hand-side of this equation. We deduce that

  • if \(B<0\) the equation has no solution

  • if \(A\le 0, B\ge 0\) then \(-\sqrt{B}+x_b^j\le x_b^i \le -x_b^j+\sqrt{B}\)

  • if \(A \ge 0\) then \(x_b^i\) belongs to \([-\sqrt{B}+x_b^j,-\sqrt{A}+x_b^j] \cup [\sqrt{A}+x_b^j,\sqrt{B}+x_b^j]\)

With this approach we may improve the range for any variable in the equation or even eliminate a box without having to use the bisection process. It is important to note that if the set of variable is denoted x and we are able to write an equation under the form \(g(x_i)= G(x)\) the consistency requires an inverse operator of g in order to be able to update \(x_i\). This also motivate our choice not to use the minimal representation of the pose but a more algebraic formulation whose inverse is trivial. In our implementation the consistency is applied on all equations of the system and for all variables. It is also used on Eq. (5) and on the equations \(\mathbf{B_iB_j}.\mathbf{B_iB_k}= d_{ij} d_{ik}\cos (\theta )\) where \(\theta \) is the known angle between the lines going through (\(B_i, B_j\)) and (\(B_i, B_k\)).

Another efficient heuristic is the 3B method. Assume that we have a box and select one of the variable \(x_i\) whose range is \([\underline{x_i}, \overline{x_i}]\). We change this range to \([\underline{x_i}, [\underline{x_i}+\varepsilon ]\), where \(\varepsilon \) has a small value. Interval evaluation of the equations and the consistency are used to determine if this new box may include a solution. If the answer is negative we can safely modify the initial box by setting the range for \(x_i\) to \([\underline{x_i}+\varepsilon , \overline{x_i}]\). This process is applied for all variables but also on the right side of the interval for \(x_i\).

Another approach is used for the equations that have multiple occurrences of the same variable. We calculate the gradient of these equations and it interval evaluation for the current box. If this evaluation has a constant sign we set the variable to the appropriate lower or upper bound of the range to improve the interval evaluation. This process has to be recursive: as soon as a variable is set to an extremity of its range, then the interval evaluation of the gradient for another variable may become of constant sign.

Another important issue is the choice of the variable that will be selected for the bisection process. Our strategy is to bisect in priority the 12 coordinates of the \(B_1, \ldots B_4\) until the width of their interval is lower than a given threshold. Indeed these variables play an important role in the equations: if they are fixed the Eqs. (1), (2) admit a single solution that correspond to the minimal potential energy of the cables.

3.3 Implementation

The algorithm is implemented using the interval arithmetics of BIAS/PROFILFootnote 1 while the higher level uses the functions of our ALIAS libraryFootnote 2 that mixes a C++ library and a Maple interface. The Maple interface has allowed to generate most of the C++ code for the algorithm and includes an arbitrary accuracy Newton scheme which allow us to calculate an approximation of the solution with n digits, the n-th digit being guaranteed to be exact, n being a number given by the end-user.

Fig. 3
figure 3

The robot developed for the ANR Cogiro project. Although the robot is real we present a CAD drawing that allows one to better figure out the CDPR

Another property of the Maple interface is that it allows one to implement the algorithm in a distributed manner, i.e. running the algorithm on several computers. Indeed it must be noticed that in the solving scheme the treatment of a given box is independent from the treatment of the other boxes to be processed. This allow to have a master program that manages the list of boxes to be processed and the list o solutions and an arbitrary number m of slave computers. The master computer process the initial box until it has a fixed number of boxes in its list. Then it sends the top boxes to the slave computer that a few iterations of the solving algorithm and send back to the master the eventual solution and the boxes that remain to be treated. As the communication overhead is small compared to the computing time of the algorithm the distributed version allows to divide the processing time by m.

Table 1 Coordinates of the attachment points on the base (in meters)
Table 2 Lengths of the cable at rest (in meters)

4 Example

We consider the large scale robot developed by LIRMM and Tecnalia as part of the ANR project Cogiro [7] (Fig. 3). This robot is a suspended CDPR (i.e. there is no cable pulling the platform downward) with 8 cables, whose \(A_i\) coordinates are given in Table 1. The cables characteristics are \(E= 100^9\,\text {N/m}^2\), \(\mu = 0.346\) kg/m and their diameter is 10 mm. The mass of the platform of 10 kg. The value of the \(L_0\)s (Table 2) are the non-deformed cable lengths for the pose (1, 0, 2) in meters and for an orientation such that the reference frame and the mobile frame are aligned.

With 8 cables we have to solve a system of 36 equations and this is probably the most challenging FK task that has even been considered. The solving algorithm has been implemented using 10 computers and nineteen solutions were found in the search domain in a computation of about 24 h. They are presented in Table 3, while the cable tensions are given in Table 4. The solutions are depicted in Fig. 4. It is interesting to note that the solution poses are distributed all over the possible workspace: for example the xyz coordinates of \(B_1\) are in the ranges [0.29, 1.86], [\(-\)0.74, 0.98], [2.37, 4.99]. The \(F_x\) forces exhibit also a very large range. For example for cable 1 this force ranges from 20.08 to 417 N. We observe the same variation for the \(F_z\) force: for the same cable its ranges from \(-30.25\) to 15.91 N. In 15 cases on 19 the \(F_Z\) tension in cable 1 is positive, meaning that the cable exert a downward force on the platform. The number of cables that exert an upward force to support the load is either 2, 3 or 4, meaning that only a small subset of cables contributes to this support: this may be an useful information for dimensioning the cable.

Table 3 The coordinates of \(B1, B_2, B_3\) for the 19 solutions (meter)
Table 4 Cable tensions for the 19 solutions (Newton)

5 Conclusions

We have presented for the first time a generic algorithm to solve the FK for CDPR with sagging cables. This a computer intensive algorithm (because of the complexity of the problem), that is however guaranteed to provide all solutions. A test case of a robot with 8 cables (probably one of the most complex that has been studied) has shown that we may obtain surprising poses. As prospective our objective is to determine a better balance between the various heuristics that are used in the solving. We will also study the stability of the solutions, possibly introducing stability condition as an additional solving heuristic in order to speed up the computation.

Fig. 4
figure 4

Solutions 1–19