Abstract
Solving the forward kinematics (FK) of parallel robots is known to be a difficult task and the problem is even more complex for cable driven parallel robot (CDPR): the system of equations that has to be solved is larger than with rigid legs as first the static equations have to be taken into account and, second because the deformation of the cables because of their elasticity and their mass may play a role, while being described by a relatively non algebraic complex model. We consider in this paper any arbitrary CDPR whose cables may present a significant deformation due to their elasticity and own mass and we present for the first time an interval analysis based generic algorithm that allows to calculate in a guaranteed manner all the FK solutions and illustrate its use for a CDPR with 8 cables.
Access provided by Autonomous University of Puebla. Download conference paper PDF
Similar content being viewed by others
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 [2–4] 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.
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 [7–9] 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:
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:
If C is the center of mass of the platform we get also
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 [A, B] 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 [A, B] 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
It remains to manage the angles \(u_i\): formally they can be obtained using the equation
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
which may be rewritten as
Let [A, B] 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.
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.
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 x, y, z 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.
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.
References
Merlet J-P (2012) The kinematics of the redundant N-1 wire driven parallel robot. In: IEEE international conference on robotics and automation, Saint Paul, 14–18 May 2012, pp 2313–2318
Carricato M, Merlet J-P (2013) Stability analysis of underconstrained cable-driven parallel robots. IEEE Trans Robot 29(1):288–296
Carricato M, Abbasnejad G (2012) Direct geometrico-static analysis of under-constrained cable-driven parallel robots with 4 cables. In: 1st international conference on cable-driven parallel robots, Stuttgart, 3–4 Septembre 2012, pp 269–286
Jiang Q, Kumar V (2010) The inverse kinematics of 3-d towing. In: ARK, Piran, June 28– July 1, 2010, pp 321–328
Merlet J-P (2012) Managing the redundancy of N-1 wire-driven parallel robots. In: ARK, Innsbruck, 25–28 June 2012, pp 405–412
Such M et al (2009) An approach based on the catenary equation to deal with static analysis of three dimensional cable structures. Eng Struct 31(9):2162–2170
Gouttefarde M et al (2012) Simplified static analysis of large-dimension parallel cable-driven robots. In IEEE international conference on robotics and automation, Saint Paul, 14–18 May 2012, pp 2299–2305
Kozak K et al (2006) Static analysis of cable-driven manipulators with non-negligible cable mass. IEEE Trans Robot 22(3):425–433
Riehl N et al (2009) Effects of non-negligible cable mass on the static behavior of large workspace cable-driven parallel mechanisms. In: IEEE international conference on robotics and automation, Kobe, 14–16 May 2009, pp 2193–2198
Irvine HM (1981) Cable structures. MIT Press, Cambridge
Merlet J-P (2004) Solving the forward kinematics of a Gough-type parallel manipulator with interval analysis. Int J Robot Res 23(3):221–236
Acknowledgments
This research has received partial funding from the European Community’s Seventh Framework Program under grant agreement NMP2-SL-2011-285404 (CABLEBOT).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Merlet, JP., Alexandre-dit-Sandretto, J. (2015). The Forward Kinematics of Cable-Driven Parallel Robots with Sagging Cables. In: Pott, A., Bruckmann, T. (eds) Cable-Driven Parallel Robots. Mechanisms and Machine Science, vol 32. Springer, Cham. https://doi.org/10.1007/978-3-319-09489-2_1
Download citation
DOI: https://doi.org/10.1007/978-3-319-09489-2_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-09488-5
Online ISBN: 978-3-319-09489-2
eBook Packages: EngineeringEngineering (R0)