=Paper= {{Paper |id=Vol-2525/paper19 |storemode=property |title=Control of the four-cable-driven parallel robot with the help of the inverse kinematic model |pdfUrl=https://ceur-ws.org/Vol-2525/ITTCS-19_paper_34.pdf |volume=Vol-2525 |authors=Mikhail Fadeev,Alexander Maloletov |dblpUrl=https://dblp.org/rec/conf/ittcs/FadeevM19 }} ==Control of the four-cable-driven parallel robot with the help of the inverse kinematic model== https://ceur-ws.org/Vol-2525/ITTCS-19_paper_34.pdf
    Control of the four-cable-driven parallel robot with the help of the
                         inverse kinematic model*

                                 Fadeev Mikhail                           Maloletov Alexander
                              Innopolis University                        Innopolis University
                                Innopolis, Russia                           Innopolis, Russia
                             m.fadeew@gmail.com                         a.maloletov@innopolis.ru



                                                       Abstract
                      In this work, we consider the solution of the problem of inverse kinematics
                      and software implementation of the control algorithm for a four-cable robot
                      with a parallel structure. The control algorithm takes into account the design
                      features of the cable winding mechanisms of the prototype cable robot
                      developed at Innopolis University. The control system of the cable robot
                      prototype is based on the OMRON controller. In this work, we describe the
                      structure of the control system. We consider an experimental measurement
                      method of the accuracy of the position of a mobile platform. The data obtained
                      during testing are presented and analyzed.



1    Introduction
    Cable robots are one of the types parallel structure manipulators and have several advantages compared to other types
of robots, such as:
    • low energy consumption;
    • low material consumption;
    • the ability to widely expand the working space of the robot;
    • high speeds of movement.

Today, thanks to its merits, cable robots are gaining popularity around the world. They find application for:
     • television and film [1];
     • assembly [2];
     • coloring of large-sized products [3];
     • 3D printing of large objects [4];
     • motion simulators [5]
     • and in other tasks.
    For complete control of the position and orientation of the end effector in space, 6 or more cables are needed. Cable
robots with fewer flexible connections can only control the position, but not the orientation of the working body, which in
some tasks is sufficient. At the same time, controlling a robot with an insufficient number of control actions is a more
difficult task.
    In the previous works of the team, problems related to calculating the control action for positioning the working body
of a parallel four-cable robot were considered taking into account the design features of this model, namely, guide rollers
and winding mechanisms [6, 7], the analysis of the results and errors of the control system was performed a mobile platform
 *Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0
 International (CC BY 4.0).
of a cable robot and methods for their compensation have been developed [8, 9]. The current work presents the results of
experimental studies of the control algorithm, its capabilities and features.




                                          Figure 1: A prototype of cable robot

2    Robot

     The prototype of a cable robot (Figure 1), developed at Innopolis University together with ARCODIM, is a modular
reconfigurable system with four controllable winches and allows up to 12 winches at the nodes of the frame points. The
control system is based on the components of Omron firms (Table 1). As a working body, a 24-liter tank was installed
with a mechanical sand feed valve (Figure 2). The winding mechanism consists of vertically arranged tanks with a radius

                                    Table 1: Electronic components of a cable robot

 NJ501-1300 NJ-Series Universal Machine Controller CPU module, 20MB of program memory, 4MB of non-
 stored data memory, 2MB of stored data memory, up to 40 CJ I/O modules, up to 16 axes, 1 x USB2.0, 1 x
 EtherNet/IP, 1 x EtherCAT , 1 x SD card slot
 NB7W-TW01B Touchscreen operator panel of the NB series, diagonal 7”, TFT, 65535 colors, resolution
 800x480 pixels, 1x RS-232C port, 1 x RS-232C / RS-422 / RS-485 port, Ethernet, 128 MB memory, USB, USB
 host, 24VDC power

 R88D-KN15F-ECT G5 Series Servo Drive, 1.5kW, 3x400V, EtherCAT Control

 R88M-K1K030F-S2 Servo motor G5 series, without brake, 1kW, 400V, 3.18Nm, 3000 rpm

 S8VK-C12024 S8VK-C series switching power supply, power 120 W, input voltage 240 ~ B, 350 = B, input
 current 4.8 A, output voltage 24 V, output current 5 A, frequency 50/60 Hz (47. .450 Hz), overload protection,
 overvoltage protection
 NJ-PD3001 Power Supply Module for NJ Series Universal Machine Controller, 24VDC, 30W, 5VDC / 6A,
 24VDC / 1A
of R = 0.048 m, the pitch of the helical groove on the tank h = 0.005 m and the feeding mechanism in the form of a
movable roller kinematically connected with the tank (Figure 2).

      Servo motors are equipped with gearboxes with a gear ratio of 30:1. The torque from the gearbox is transmitted via
a toothed belt to a cable winding drum with a diameter of 100mm. The design characteristics of electromechanical
winches are given in Table 2.

                                  Table 2: Design characteristics of electromechanical winches

 Reduction ratio                                                                 30:1
 Servo rated speed                                                               3000 rpm

 Maximum drum rotation speed                                                     100 rpm

 Drum diameter                                                                   100 mm

 Maximum linear cable speed                                                      523 mm/sec

 Cable effort at rated torque                                                    194 kg


                Table 3: Cable exit points in the adopted coordinate system taking into account rotating blocks

  Coordinate \ cable               0                      1                      2                      3

        X, mm                   4366,35              -4435,848              -4433,995               4368,262

        Y, mm                   -1943,798            -1950,001               1948,413                1942,21

        Z, mm                   2893,303              2894,382               2896,691               2896,331




        Figure 2: The end effector is a tank with a feed mechanism and laser tracker FARO, (left); winding mechanism
                                      (center); scheme of winding mechanism (right)
2.1    Kinematic model
      Since the control action is the angle of rotation of the servomotor. To control robots in the Cartesian coordinate
system associated with the robot frame, it is necessary to find the cable lengths necessary for the desired coordinate,
which in turn are directly proportional to the angle of rotation of the drum. For these calculations, this kinematic model is
used:



                             𝐿 = 𝑟(𝜋 − 𝛾) + √(ξ𝐴 − ξ𝐵 )2 + (η𝐴 − η𝐵 )2 + (ζ𝐴 − ζ𝐵 )2




      Figure 3: Diagram of a swivel guide roller (left), diagram for determining the direction of the cable in the horizontal
                                                         plane (right)



     Figure 3 shows the design diagrams of the upper guide roller and the winding mechanism, according to which the
cable length L is determined from the point Ci to the point Ai which indicates the point of attachment of the cable to the
working body:
                                                                ξ𝐴 − ξ𝐶
                                           cos(𝛽) =
                                                      √(ξ𝐴 − ξ𝐶 )2 + (η𝐴 + η𝐶 )2


                                                                η𝐴 − η𝐶
                                           sin(𝛽) =
                                                      √(ξ𝐴 − ξ𝐶 )2 + (η𝐴 + η𝐶 )2


                                                                    r
                                    cos(𝜀) =
                                               √(ξ𝐴 − ξ∗𝐶 )2 + (η𝐴 − η∗𝐶 )2 + (ζ𝐴 − ζ∗𝐶 )2



                                                      √(ξ𝐴 − ξ∗𝐶 )2 + (η𝐴 + η∗𝐶 )2
                                    sin(𝛿) =
                                               √(ξ𝐴 − ξ∗𝐶 )2 + (η𝐴 − η∗𝐶 )2 + (ζ𝐴 − ζ∗𝐶 )2
                                                          𝛾 =𝜀−𝛿


                                               ξ𝐵      ξ∗𝐶      𝑟 cos(𝛾) cos(𝛽)
                                              [η𝐵 ] = [η∗𝐶 ] + [ 𝑟 cos(𝛾) sin(𝛽) ]
                                               ζ𝐵      ζ∗𝐶           𝑟 sin (𝛾)


    The expression for the rotation angle of each of the drums, taking into account the design of the winding
mechanism:
                                                            𝐿 − 𝐻 − 𝐿0
                                                       𝜗=
                                                                𝑅
                                                               𝐿 − 𝐿0
                                                        𝜗′ =          ;
                                                                 𝑅


                                                           𝜗′ ℎ(𝐿 − 𝐿0 )
                                                    𝐻=ℎ       =
                                                           2𝜋   2𝜋𝑅

r – radius of the guide roller; L0 – cable length at the moment the working body is at the point (0; 0; 0); R – cylinder
diameter; h – winding pitch; the meaning of the angles β, ε, γ, δ – explained on the design scheme (Figure 3).


2.2    Motion control
       To move the working body from one given position to another with a smooth set of speed and smooth
deceleration, the following algorithm is implemented. Acceleration for acceleration, maximum linear speed and negative
acceleration for the braking stage are transmitted as input. Their projections on the axis of the coordinate system are
calculated:
                                                            (𝑝𝑛,𝑖 − 𝑝𝑛,0 )
                                  ki =
                                         √(𝑝𝑛,𝑥 − 𝑝0,𝑥 )2 + (𝑝𝑛,𝑦 − 𝑝0,𝑦 )2 + (𝑝𝑛,𝑧 − 𝑝0,𝑧 )2



                                                        𝑎𝑎𝑐𝑐,𝑖 = 𝑘𝑖 𝑎𝑎𝑐𝑐

                                                       𝑣𝑚𝑎𝑥,𝑖 = 𝑘𝑖 𝑣𝑚𝑎𝑥

                                                        𝑎𝑑𝑒𝑐,𝑖 = 𝑘𝑖 𝑎𝑑𝑒𝑐

                                                          𝑖 ∈ {𝑥, 𝑦, 𝑧}



pn – endpoint of the robot; p0 – point where the robot moves; aacc – acceleration of speed gain; vmax – maximum linear
speed; adec – deceleration during braking.

       After that, the sequence of coordinates of points on the trajectory is calculated with a step of 4 ms in time:
                              Si,j = √(𝑝𝑛,𝑥 − 𝑝𝑗,𝑥 )2 + (𝑝𝑛,𝑦 − 𝑝𝑗,𝑦 )2 + (𝑝𝑛,𝑧 − 𝑝𝑗,𝑧 )2



                              𝑣𝑖,𝑗 = 𝑣𝑖,𝑖−1 + 𝑎𝑎𝑐𝑐,𝑖 𝜏                                        |𝑣𝑗 |2
                             {𝑝 = 𝑝                    ;               𝑣𝑖,𝑗 < 𝑣𝑚𝑎𝑥,𝑖 , 𝑆𝑖,𝑗 >
                                𝑖,𝑗     𝑖,𝑗−1 + 𝑣𝑖,𝑗 𝜏                                       2𝑎𝑑𝑒𝑐
                                   𝑣𝑖,𝑗 = 𝑣𝑚𝑎𝑥,𝑖                                             |𝑣𝑗 |2
                             {𝑝 = 𝑝                     ;             𝑣𝑖,𝑗 = 𝑣𝑚𝑎𝑥,𝑖 , 𝑆𝑖,𝑗 >
                               𝑖,𝑗     𝑖,𝑗−1 + 𝑣𝑚𝑎𝑥,𝑖 𝜏                                      2𝑎𝑑𝑒𝑐
                              𝑣𝑖,𝑗 = 𝑣𝑖,𝑖−1 − 𝑎𝑑𝑒𝑐,𝑖 𝜏                                       |𝑣𝑗 |2
                             {𝑝 = 𝑝          + 𝑣 𝜏;                                   𝑆𝑖,𝑗 ≤
                         {      𝑖,𝑗     𝑖,𝑗−1       𝑖,𝑗                                      2𝑎𝑑𝑒𝑐

                                                 𝑖 ∈ {𝑥, 𝑦, 𝑧}; 𝑗 ∈ [0; 𝑛]

S – distance from the current position of the robot to the final point of movement of the robot; v (i, j) – velocity at point j
along the coordinate i; τ – period of the controller.

         The calculations are performed in the developed algorithmic software implemented in the Go programming
language. The calculated values of the rotation angles of the winch drums are sent using the FINS protocol every 4ms to
the robot controller in 16-byte packets, ensuring the working body is moved to the desired position.


2.3       Robot control system structure
          The robot control system consists of three main modules: an operator panel, computer, and controller. The
interaction between them is via the EtherNet/IP bus (Figure 4).

2.3.1      Operator panel
         It is a 7-inch touch screen with an internal programmable module, which allows you to implement a user
interface and send commands to the robot controller.
         The current software implementation allows to send commands to the controller for control the power of
servomotors, performing rotation of each of the robot motor independent, and moving in the coordinate plane associated
with the robot frame according to a simplified model.

2.4       Computer
       A personal computer with running proprietary software. Which has the ability to send commands to the controller,
both to control each motor separately, and all at the same time, it is also possible to read the readings of the encoders of
each motor and control the power of the motors.

2.4.1      Controller
         NJ501-1300 NJ-Series Universal Machine Controller CPU module manufactured by OMRON, executes
computer commands. and processing input signals from the operator panel. In addition, due to the fact that the encoders
of the motors do not have their own non-volatile memory, the controller implements integrated virtual encoders using the
internal non-volatile memory of the controller. This avoids the calibration of the robot at each start.

2.4.1.1      Signal processing from the operator panel
           To process signals from the operator panel, two subprograms are implemented in the controller:
             •   Manual control of the rotation of each of the servomotors, while the controller receives the drive
                 number and direction, rotation always occurs at a constant speed specified in the program. It is also
                 possible to rotate the motor in the direction of winding the cable to a specific indicator of the current
                 consumption of the motor, this algorithm allows you to pre-tension before calibration. The algorithm is
                 implemented both for working with one engine, and with all at the same time.
             •   Movement in the coordinate plane according to the simplified kinematic model. In this case, the rotary
                 mechanisms, rollers and the winding mechanism are neglected. The algorithm is integral, which does
                 not allow you to specify the end point of the motion path, but allows you to use the robot offset in the
                 form of an input signal, which is more preferable when using the touch panel. Its main purpose is to
                 provide the operator with the opportunity to change the position of the working fluid without using a
                 personal computer.

2.4.1.2   Processing signals from a computer
         When controlling the robot from a computer, the calculations made on the controller are minimized. It performs
the following three functions:

             •   Receives the desired angles of rotation of the engine from the computer and transfers them to the
                 drivers of the servomotors, taking into account the reduction coefficient;
             •   Executes computer commands related to providing power to various system components;
             •   Carries out monitoring of all-important indicators of the system and displays the system in error when
                 one of them is critically changed.




                                          Figure 4: Robot control system structure

3    Experiments
    After the implementation of the algorithm, measurements were made of the accuracy of the positioning of the
working body. The test was a measurement of 343 points located in the form of a 7x7x7 grid, the dimensions of the
measured area were equal to the dimensions of the working area of the robot and amounted to 7000x3000x1200 mm.
Also, 3 tests were carried out with different weights of the working body: 5kg 17kg and 33kg. For measurement, a FARO
laser tracker was used (Figure 2) with a stated accuracy of 20 microns ± 5 microns / m. The test results are presented in
table 4 and in figures 5 and 6.




Figure 5: Graphs of the length of the deviation vector for the value of the Z axis 0 (first row), 400 (second row) and 800
    (third row), for the mass of the end effector 5 kg (left column), 17 kg (center column) and 33 kg (right column)
Figure 6: Graphs of the length of the deviation vector for the value of the Z axis 1000 (first row) and 1200 (second row),
           for the mass of the end effector 5 kg (left column), 17 kg (center column) and 33 kg (right column)



                                                 Table 4: Experimental results

                                         The length of the maximum deviation        The average length of the deviation
 The weight of the working body, kg
                                          vector from the given position, mm        vector from the given position, mm

                   5                                  178.043685                                 81.170893
                  17                                  148.114591                                 67.009629
                  33                                  125.400091                                 63.558832



4    Conclusion
      As we can see from the graphs, the values of the length of the error vector are not equal throughout the work area.
Its increase from the center to the edges is clearly pronounced for the Z value of less than 800 mm, which is presumably
caused by the fact that in the border regions the influence of the sagging of the robot cables is most pronounced and
contributes to a decrease in positioning accuracy. It is also possible to observe a sharp increase in the deviation in the
central region for a value of Z greater than 800 mm, which is presumably caused by the influence of tensile forces on the
cables in this region.
     Also, from the results presented in table 4 it can be seen that the length of the deviation vector from a given position
decreases with increasing mass of the working body, which is supposedly due to the fact that the effect of sagging cables
with a large mass of the working body decreases.

      From all of the above, we can conclude that when using a cable robot in the boundary zones and in the central zone
for large values on the Z axis, the error and positioning error increase sharply, which makes it inappropriate to use this
model to perform work in these areas. But areas that are not critical for this type of robot, the model shows indicators that
are acceptable for use in most cases.

References
1.  J.H. Timmer Arends, K.H.J. Voss, W.B.J. Hakvoort, R.G.K.M. Aarts. Calibration of a Six DOF Flexure-based Parallel
    Manipulator { Proceedings of the 8th ECCOMAS Thematic Conference on Multibody Dynamics 2017 (Prague, June
    19-22, 2017) Editors: M. Valasek [et al.]; Czech Technical University in Prague, Faculty of Mechanical Engineering
    [et al.]. – Prague, 2017. – P. 199-211.
2. D. Q. Nguyen, M. Gouttefarde, O. Company, F. Pierrot. On the analysis of large-dimension reconfigurable suspended
    cable-driven parallel robots { Robotics and Automation (ICRA), IEEE International Conference on ‒IEEE, 2014. ‒ P.
    5728-5735.
3. Gagliardini L., Caro S., Gouttefarde M., Wenger P., Girin A. A reconfigurable cable-driven parallel robot for
    sandblasting and painting of large structures { Cable-Driven Parallel Robots: Springer, 2015. ‒ P. 275-291.
4. J.-B. Izard, A. Dubor, P.-E. Hervé, E. Cabay, D. Culla, M. Rodriguez, M. Barrado. On the Improvements of a Cable-
    Driven Parallel Robot for Achieving Additive Manufacturing for Construction { Cable-Driven Parallel Robots:
    Springer, 2018. ‒ P. 353-363.
5. K. Usher, G. Winstanley, R. Carnie. Air vehicle simulator: an application for a cable array robot { Robotics and
    Automation, ICRA. Proceedings of the IEEE International Conference on ‒IEEE, 2005. ‒ P. 2241-2246.
6. М.Ю. Фадеев, А.В. Малолетов. Управление параллельным четырехтросовым роботом с помощью обратной
    кинематической модели { В сборнике: XXX Международная инновационная конференция молодых ученых и
    студентов (МИКМУС - 2018) Сборник трудов конференции. ‒ 2019. ‒ С. 696-699.
7. А.В. Малолетов, А.С. Климчик, К.В. Костенко. Учет конструкций направляющих роликов и механизмов
    намотки при управлении движением тросового робота { Известия Волгоградского государственного
    технического университета. - 2018. - № 13 (223). - С. 113-119.
8. A.V.Maloletov, M.Y. Fadeev, A.S. Klimchik. Error Analysis in Solving the Inverse Problem of the Cable-driven
    Parallel Underactuated Robot Kinematics and Methods for their Elimination { 9th IFAC Conference on Manufacturing
    Modelling, Management and Control (Berlin, August 28-30, 2019) – in print.
9. А.В.Малолетов, М.Ю.Фадеев, А.С.Климчик. Анализ ошибок позиционирования неполноприводного
    тросового робота и методы их компенсации { XII Всероссийский съезд по фундаментальным проблемам
    теоретической и прикладной механики (Уфа, 19 - 24 августа 2019 г.) – in print.
10. C. Gosselin, P. Cardou, T. Bruckmann, A. Pott. Cable-Driven Parallel Robots: Proceedings of the Third International
    Conference on Cable-Driven Parallel Robots (Mechanisms and Machine Science) { Volume 53 Via Di Biasio 43,
    03043 Cassino (Fr), Italy, Jan 1 2018
11. M. Ceccarelli, T. Bruckmann, A. Pott Mechanisms and Machine Science { Volume 12, New York Dordrecht London
    2013
12. M. Ceccarelli A. Pott T. Bruckmann Cable-Driven Parallel Robots { Proceedings of the Second International
    Conference on Cable-Driven Parallel Robots, Cassino, Italy, 2015