Angelica Ginnante
email: aginnante@nimbl-bot.com

St Éphane Caro
email: stephane.caro@ls2n.fr

Enrico Simetti
email: enrico.simetti@unige.it

Kinetostatic Optimization for Kinematic Redundancy Planning of Nimbl'Bot Robot

In manufacturing industry, Computer Numerical Control (CNC) machines are often preferred over Industrial Serial Robots (ISR) for machining tasks. Indeed, CNC machines offer high positioning accuracy, which leads to slight dimensional deviation on the final product. However, these machines have a restricted workspace generating limitations in the machining work. Conversely, ISR are typically characterized by a larger workspace. ISR have already shown satisfactory performance in tasks like polishing, grinding and deburring. This paper proposes a kinematic redundant robot composed of a novel two degrees-of-freedom mechanism with a closed kinematic chain. After describing a task priority inverse kinematic control framework used for joint trajectory planning exploiting the robot kinematic redundancy, the paper analyses the kinetostatic performance of this robot depending on the considered control tasks. Moreover, two kinetostatic tasks are introduced and employed to improve the robot performance. Simulation results show how the robot better performs when the optimization tasks are active.

Introduction

Machining tasks in manufacturing industry were automated over the past few decades using automated machining tools to speed up processes, such as milling and grinding, and improve their quality [START_REF] Liang | Machining process monitoring and control: the state-of-the-art[END_REF]. Machining tasks are often performed by Computer Numerical Control (CNC) machines, as such industrial machines feature a very good accuracy. Nevertheless, these machines are generally expensive and do not provide a high versatility [START_REF] Ji | Industrial robotic machining: a review[END_REF]. Therefore, Industrial Serial Robots (ISR) started to be investigated for manufacturing tasks since they can cover larger workspaces and increase the range of achievable operations, but their real capabilities in machining applications have yet to be realized as explained in [START_REF] Chen | Robot machining: recent development and future research issues[END_REF]. Furthermore, ISR reduces the scrap rates and production costs compared to CNC machines [START_REF] Caro | Workpiece placement optimization for machining operations with a KUKA KR270-2 robot[END_REF]. ISR have already shown satisfactory performance in some tasks, like polishing [START_REF] Takeuchi | Automated polishing process with a human-like dexterous robot[END_REF], grinding [START_REF] Liu | Robotic grinding force regulation: design, implementation and benefits[END_REF] and deburring [START_REF] Pires | Force/torque sensing applied to industrial robotic deburring[END_REF]. The topic of ISR in machining tasks is actively studied and new techniques have been defined to improve their performance, for example, analysing their stiffness [START_REF] Dumas | Joint stiffness identification of six-revolute industrial serial robots[END_REF][START_REF] Dumas | Joint stiffness identification of industrial serial robots[END_REF]. Moreover, the authors of [START_REF] Brunete | Hard material small-batch industrial machining robot[END_REF] collected a series of tools to define a solid background for building ISR employed in industrial machining applications.

In machining trajectory planning, the kinematic redundancy of robotic manipulators can be viewed as a possible way to improve the machine abilities and performance [START_REF] Gonul | Improved stable conditions in robotic milling by kinematic redundancy[END_REF]. In fact, the kinematic redundancy allows working in cluttered environments such as medical robotics [START_REF] Menon | Trajectory planning and obstacle avoidance for hyper-redundant serial robots[END_REF]. Moreover, the kinematic redundancy can be used for solving several tasks simultaneously while optimizing some performance criteria [START_REF] Seereeram | A global approach to path planning for redundant manipulators[END_REF]. From a mathematical point of view, a robot is kinematically redundant with respect to a task when it has more degrees-of-freedom than the required amount necessary to perform that task [START_REF] Siciliano | Kinematic control of redundant robot manipulators: A tutorial[END_REF]. Namely, the desired task can be achieved by an infinite number of possible robot configurations. Redundant robots can be designed in several ways and are classified into three categories: discrete, continuous and modular robots [START_REF] Chirikjian | A geometric approach to hyper-redundant manipulator obstacle avoidance[END_REF][START_REF] Chirikjian | Kinematically optimal hyper-redundant manipulator configurations[END_REF]. In [START_REF] Shammas | New joint design for three-dimensional hyper redundant robots[END_REF], the authors presented a novel two degrees-of-freedom mechanism for modular redundant robots. The investigated concept uses a complex design optimized for compactness, strength and range of motion. However, the proposed mechanism was never used to build a machining robot. This paper introduces a new patented two degrees-of-freedom mechanism employed as actuator for redundant manipulators designed by Nimbl'Bot [START_REF] Dufau | Articulated robot arm[END_REF] and named NB-module. The main drawback of redundant robots is solving the inverse kinematic problem [START_REF] Burdick | Hyper-redundant robot mechanisms and their applications[END_REF]. The simplest way to deal with this problem is using the pseudo-inverse Jacobian matrix method [START_REF] Khalil | Modeling, identification and control of robots[END_REF]. However, this approach neither avoids singularities nor takes advantage of the robot kinematic redundancy to perform robot configuration optimization. In [START_REF] Reiter | Inverse kinematics in minimum-time trajectory planning for kinematically redundant manipulators[END_REF], the authors treated the problem of trajectory planning for a general kinematic redundant robot as two interdependent problems, inverse kinematics and trajectory optimization, to identify the time-optimal path tracking solution. However, this method does not solve other simultaneous tasks, e.g., performance criteria improvement or obstacle avoidance. The work presented in [START_REF] Dharmawan | Task-constrained optimal motion planning of redundant robots via sequential expanded lagrangian homotopy[END_REF] describes the solution for kinematically redundant robots given a set of desired tasks and performance metrics through the use of a mixed analytical and numerical approaches. This method is compared with other types, like genetic algorithm [START_REF] Marcos | An evolutionary approach for the motion planning of redundant and hyper-redundant manipulators[END_REF] and neural networks [START_REF] Toshani | Real-time inverse kinematics of redundant manipulators using neural networks and quadratic programming: A lyapunov-based approach[END_REF], demonstrating an improvement in the time computation. However, this methodology does not present any hierarchy associated to the tasks or mechanisms for activating and deactivating the tasks. This reduces the amount of possible tasks that can be taken into account by the control algorithm. In [START_REF] Escande | Hierarchical quadratic programming: Fast online humanoid-robot motion generation[END_REF], the authors present a hierarchical quadratic programming control algorithm used to find a solution to multiple and antagonistic objectives for humanoid robot motion generation. Another multiple tasks control framework is presented in [START_REF] Di Lillo | Handling robot constraints within a set-based multi-task priority inverse kinematics framework[END_REF], called Set-Based Multi-Task Priority Inverse Kinematics Framework. In [START_REF] Flacco | Prioritized multi-task motion control of redundant robots under hard joint constraints[END_REF], the so-called Saturation in the Null Space (SNS) algorithm implements a predictive prioritizing technique for multiple tasks. One of the main drawbacks of these task priority algorithms is that activating or deactivating one or more tasks generates a discontinuity in the null space projector [START_REF] Simetti | A novel practical technique to integrate inequality control objectives and task transitions in priority based control[END_REF].

This paper introduces the Nimbl'Bot two degrees-of-freedom mechanism and presents its geometric and kinematic models.

The complete computation of these models is shown in [START_REF] Ginnante | Design and kinematic analysis of a novel 2-dof closed-loop mechanism for the actuation of machining robots[END_REF]. Then, the first design of the "Nimbl'Bot robot" composed of a serial arrangement of ten mechanisms is described and tested by tracing several trajectories to analyze its kinetostatic performance. To kinematically control this robot, a task-priority based control algorithm, named Task Priority Inverse Kinematic (TPIK) [START_REF] Simetti | A novel practical technique to integrate inequality control objectives and task transitions in priority based control[END_REF][START_REF] Simetti | Task priority control of underwater intervention systems: Theory and applications[END_REF][START_REF] Simetti | A task priority approach to cooperative mobile manipulation: Theory and experiments[END_REF], is employed. Moreover, two new tasks, based on kinetostatic performance metrics, are added to the control algorithm to improve the robot performance. The paper aims to demonstrate how a kinematically redundant robot can be employed in machining task trajectory planning while optimizing its kinetostatic performance. The paper is organized as follows, Section 2 presents the Nimbl'Bot robot design and shows the first prototype. Section 3 introduces the Nimbl'Bot actuation mechanism, its geometric and kinematic models and its workspace. Section 4 describes the kinematic control algorithm used to test the robot. Section 5 defines the metrics used to evaluate the robot kinetostatic performance and the Jacobian matrices that relate the rate of these metrics with the robot joint velocities. Section 6 presents the trajectory planning of the Nimbl'Bot robot for a series of trajectories and compares the obtained kinetostatic results. Conclusions and future work are given in Section 7.

Nimbl'Bot Robot Overview

The first prototype of the Nimbl'Bot robot developed for machining is shown in Fig. 1. This robot is composed by the serial arrangement of ten NB-modules. Each NB-module base platform is attached to the previous NB-module ending platform. This version of the Nimbl'Bot robot is called RP-120. It was design for machining application, for example, the milling, grooving and trimming of small metal parts for the nuclear sector. The RP-120 can be divided into three regions, i.e. the shoulder, composed of three NB-modules, the elbow, composed of four NB-modules, and the wrist, composed of three NB-modules. Since the solid angle reachable by one NB-module is ±π/6, several NB-modules need to be arranged together to ensure a sufficiently large orientation workspace. Figure 2 Fig. 1: RP-120 actuated by ten NB-modules mounted in series and a final revolute joint. Shoulder and wrist made of three NB-modules, total covered solid angle of ±π/2 radians each. Elbow made of four NB-modules, solid angle of ±2π/3 radians. shows the vertical section of the RP-120 Cartesian workspace reachable by at least one end-effector orientation. The complete workspace is obtained by rotating this section around the z axis. In total, the RP-120 has 21 degrees-of-freedom since each of the ten NB-modules provides two degrees-of-freedom, plus a final revolute joint that allows adjusting the tool orientation. So, this design is redundant considering that the task of following a trajectory, typical of machining operations, only requires five degrees-of-freedom. Mathematically, a robot is defined as redundant when the dimension of its actuation vector q ∈ R n is greater than the dimension of the task vector x ∈ R m , namely when n > m [START_REF] Chirikjian | A hyper-redundant manipulator[END_REF].

Figure 3 shows four postures of the RP-120 first prototype. A cable passes inside the RP-120 and constrains the architecture cancelling most of the mechanical backlash. The two links are hollow to reduce the weight and allow the routing of internal cables.

Nimbl'Bot Module Overview

This section describes the novel two degrees-of-freedom mechanism developed by the company Nimbl'Bot and called NB-module. This actuation system features a closed kinematic chain composed of two chains, one internal and the other external. It is actuated by two motors that provide two rotational motions. The NB-module geometric and kinematic models are analysed in [START_REF] Ginnante | Design and kinematic analysis of a novel 2-dof closed-loop mechanism for the actuation of machining robots[END_REF]. 4. The fixed base, in yellow, is named Platform 1 and is considered centered on the origin frame for which the NB-module transformation matrix is calculated. Above Platform 1, there is a rotating cylinder, in green, named Tube 1. Tube 1 is a hollow cylinder cut by an oblique plane with height r and slope α, shown in Fig. 5. The first motor actuates the component Tube 1. The motor is attached directly to the inner side of Tube 1. In this way, Tube 1 can rotate around the vertical axis that passes through the center of Platform 1. Tube 2 is placed over Tube 1 and they have the same shape in this case, even if, in principle, their height r and slope α could be different. The second motor actuates Tube 2 and is attached to the inner side of Tube 2. Tube 2 can rotate around the axis perpendicular to and centered in Platform 2. The external kinematic chain is closed by Platform 2, the moving platform, which is the end-effector of the NB-module.

Cutting obliquely the cylindrical tubes results in an elliptical shape. However, the tube oblique sides are reshaped in a circular way to allow a continuous rotation between the oblique planes. So, as it can be seen in Figs. 6 and7, a circular groove is designed above the inclined sides of the two tubes. Three rolling circles formed of a series of small balls are inserted between the platforms and the tubes to allow a fluid movement. The balls are inserted in the grooves machined in the platforms and tubes, as shown in Fig. 8. These are called Rolling Circle 1, Rolling Circle 2 and Rolling Circle 3 and represent the last three elements of the external kinematic chain. Consequently, Tube 1 and Tube 2 can independently rotate with a continuous movement.

Description of the Internal Kinematic Chain

The internal kinematic chain has four components, as shown in Fig. 9. Two of those also belong to the external chain, i.e. Platform 1 and Platform 2, generating the closed kinematic chains mechanism. Platform 1 is linked to the component Ball Nut in purple through a prismatic joint, which prevents internal breaks while the NB-module is actuated. These could occur due to dimensional inaccuracies in the mechanical parts. Following that, there is Ball Joint Axis in cyan, which forms a constant velocity joint with Ball Nut. Finally, the Ball Joint Axis is linked to Platform 2 through another prismatic joint, again to avoid internal breaks. The variable r equal to the tube heights represents also the distance between Platform 1 and the constant velocity joint and between the constant velocity joint and Platform 2. The interesting feature of the NB-module is the constant velocity joint [START_REF] Carricato | Decoupled and homokinetic transmission of rotational motion via constant-velocity joints in closed-chain orientational manipulators[END_REF], which works like a universal joint, but allows its two ends to rotate at the same velocity. Therefore, fixing Platform 1 means forcing no torsion to the whole internal kinematic chain. So, thanks to the constant velocity joint and the rolling circles that decouple the rotation of each component, the tube rotations lead to an inclination of Platform 2 with no rotation about its normal axis. The NB-module amounts to a zero-torsion mechanism.

Geometric Model

Here, the geometric model of the NB-module is described. Since the NB-module is a zero-torsion mechanism, the rotation matrix of a frame rigidly attached to Platform 2 with respect to a frame rigidly attached to Platform 1 can be described using the notation presented in [START_REF] Bonev | Advantages of the modified Euler angles in the design and control of PKMs[END_REF], i.e. the Tilt & Azimuth (T&A) angle notation. Figure 10 shows the T&A based geometric model of the NB-module. A series of three revolute joints form the model. The first revolute joint represents the azimuth angle φ of the NB-module. The second revolute joint is the tilt angle θ. The third revolute joint is constrained to have the negative value of the azimuth angle -φ as a consequence of the NB-module zero-torsion characteristics. The azimuth angle φ gives the orientation along which Platform 2 is tilted. Figure 11 shows the Azimuth Plane. Figure 12 shows the Tilt Plane, which is parallel to the top of the Platform 2 and oriented along with the Azimuth Planes. The angle between the plane spanned by axes ⃗

x 0 and ⃗ y 0 and the Tilt Plane is the tilt angle θ.

Given the kinematic chain of Fig. 10, the NB-module rotation matrix 0 R 3 (φ, θ) and translation vector 0 p 3 (φ, θ, r) pointing from the origin of frame F 0 to the origin of frame F 3 are The complete homogeneous transformation matrix of the NB-module from frame F 0 to frame F 3 is expressed as

R(φ, θ) =   cos 2 φ cos θ + sin 2 φ cos φ sin φ(cos θ -1) cos φ sin θ sin φ cos φ(cos θ -1) sin 2 φ cos θ + cos 2 φ sin φ sin θ -sin θ cos φ -sin θ sin φ cos θ   and 0 p 3 (φ, θ, r) =   r sin θ cos φ r sin θ sin φ r + r cos θ   . (1)
0 T 3 (φ, θ, r) =     0 R 3 (φ, θ) 0 p 3 (φ, θ, r) 0 3×1 1     . (2)
The azimuth φ and tilt θ angles help express the NB-module transformation matrix in the T&A notation. However, these angles do not represent the angular position of the motors attached to the inner side of each tube. The angular positions of the motors are called q 1 and q 2 So, the azimuth φ and tilt θ rotation angles need to be expressed as functions of the actuation variables q 1 and q 2 . Similarly, q 1 and q 2 can be expressed as functions of φ and θ.

       φ = q 1 + q 2 -π 2 θ = arctan - 2 tan α sin q 1 -q 2 2 1 -tan 2 α sin 2 q 1 -q 2 2        q 1 = φ + arccos - cos α (cos θ -1) sin α sin θ q 2 = φ -arccos - cos α (cos θ -1) sin α sin θ + π , ( 3
)
where α is the slope of the oblique planes in Tube 1 and Tube 2. When the tilt θ is equal to 0, the value of the actuation variables is q 1 = q 2 = φ + π/2.

Kinematic Model

This section presents the kinematic model of the NB-module based on the parameterization defined in Fig. 10. The kinematic Jacobian matrix of the NB-module is computed in two steps. First of all, the Jacobian matrix J 1 (φ, θ, r) ∈ R 6×2 is calculated as a function of the angles [φ, θ] ⊤ . This matrix maps the tilt and azimuth angles time derivatives φ, θ ⊤ to the NB-module tip twist t = ṗ⊤ , ω ω ω ⊤ ⊤ ∈ R 6 where ṗ ∈ R 3 and ω ω ω ∈ R 3 are the linear and angular velocity vectors of frame F 3 , respectively. The Jacobian J 1 results to be

t = J 1 (φ, θ, r) φ θ ⊤ with J 1 (φ, θ, r) =         -r sin φ sin θ r cos φ cos θ r cos φ sin θ r sin φ cos θ 0 -r sin θ -cos φ sin θ -sin φ -sin φ sin θ cos φ 1 -cos θ 0         . (4)
Then, the Jacobian matrix J 2 (q 1 , q 2 ) ∈ R 2×2 , which maps the motors velocities [ q1 , q2 ] ⊤ to the angular velocities [ φ, θ] ⊤ , is obtained upon time differentiation of Eq. ( 3), and takes the form

[ φ, θ] ⊤ = J 2 (q 1 , q 2 ) [ q1 , q2 ] ⊤ with J 2 (q 1 , q 2 ) = 1 2 1 1 -c c where: c = 2 tan α cos q 1 -q 2 2 1 + tan 2 α sin 2 q 1 -q 2 2 . ( 5
)
The complete kinematic Jacobian matrix J of the NB-module is computed as

J = J 1 J 2 . (6)
Then, the end-effector twist t is expressed as a function of the motor velocities [ q1 , q2 ] ⊤ as follows

t = J [ q1 , q2 ] ⊤ . ( 7
)

Module workspace

The workspace of the NB-module is a portion of a sphere whose dimension depends on the length of r and the amplitude of 2α. Here the design parameters are set to r = 0.07 m and α = π/12 = 15 • to give an example of the NB-module workspace. Figure 13 shows the 3D view of the workspace. It corresponds to all the positions reached by frame F 3 for all the possible values of q 1 and q 2 in [-π, π]. Each point on the sphere portion can be reached by two combinations of q 1 and q 2 , both of them corresponding to the same orientation of the moving platform. Figure 14 plots the tilt θ and azimuth φ angles on the 2D view of the workspace. The value of φ stays in the range [-π, π] and θ in [-π/6, π/6]. In fact, the maximum absolute possible value of θ is twice the slope of each tube, i.e. 2α = π/6. The workspace of the NB-module is symmetric with respect to the z-axis.

Kinematic Control Algorithm

This section describes the kinematic control algorithm used to control the RP-120. Before introducing the kinematic control algorithm, some definitions are recalled from [START_REF] Simetti | Task priority control of underwater intervention systems: Theory and applications[END_REF]. The vector q ∈ R n is the joint variable vector, describing the arm configuration, where n is the number of joints. The joint velocities are collected in the vector q ∈ R n . The notion of control objectives defines the goals of the robot. A control objective is a scalar variable x(q) computed as a function of the robot configuration vector q and represents the state of one task. A control objective can be of two different types, equality and inequality. Equality control objectives aim to satisfy the relationship x(q) = x 0 . Inequality control objectives take the form x(q) ≤ x M , or x(q) ≥ x m , or both simultaneously, where x m and x M are the lower and upper bounds of the variable x(q) [START_REF] Simetti | Task priority control of underwater intervention systems: Theory and applications[END_REF]. Control objectives can be divided into categories depending on their scope: system safety objectives, e.g. joint limits or obstacle avoidance, action oriented objectives, e.g. reaching a desired pose or following a desired trajectory, and optimization objectives, e.g. minimizing the joint velocities or optimizing the kinetostatic performance metrics. This division is purely semantic and helps identify the correct priority level for each control objective. Then, each scalar control objective is associated with a feedback reference rate ẋ. The closed-loop rate control law drives the actual variable x(q) to the desired point x * with the associated feed-forward changing rate ẋ * and is defined as

ẋ = λ(x * -x(q)) + ẋ * , ( 8
)
where λ is a positive gain related to the target convergence rate. The actual derivative of x is defined as a function of the joint velocity vector q as follows:

ẋ(q, q) = J task (q) q = ∂x ∂q 1 . . . ∂x ∂q n q, (9)
where q = [q 1 . . . q n ].

An activation function a i (x) ∈ [0, 1] is associated to each control objective x(q), and it represents whether the objective is relevant or not in a given time instant. The tasks associated with inequality control objectives are relevant only when the scalar variable x(q) is near or out of the validity region. So, the activation function assumes zero values within the validity region of the associated inequality objective and one when it is not, with a smooth transition between the two states. For tasks associated with equality control objectives, the activation function is set to a i (x) = 1 because they always need to be active. A specific priority is assigned to each task based on the relative importance of each objective. The meaning of the priority is that the highest priority tasks are solved first using the available robot degrees-of-freedom and are not affected by the lower priority ones. Hence, lower priority tasks are solved if enough robot degrees-of-freedom remains. When two or more tasks have the same priority, they are grouped in a multidimensional control task. A specific list of prioritized tasks is called control action A . With the previous definitions, the following quantities associated with each priority level in a control action A can be defined [START_REF] Simetti | A task priority approach to cooperative mobile manipulation: Theory and experiments[END_REF]: ẋk = [ ẋ1,k , ẋ2,k , . . . , ẋm k ,k ] ⊤ is the vector collecting all the reference rates of the scalar control tasks, where m k is the number of scalar tasks for the priority level k. J k is the Jacobian matrix associated with the k th task vector [ ẋ1,k , . . . , ẋm k ,k ] ⊤ with respect to the joint velocity vector q. A k = diag(a 1,k , . . . , a m k ,k ) is a diagonal matrix of the activation functions. To find the system velocity reference vector q that meets the priority requirements of a given action, the TPIK algorithm solves a sequence of nested minimization problems

S k = arg R -min q∈S k-1 ||A k ( ẋk -J k q)|| 2 , ( 10
)
where S k is the solution at the k th task and S k-1 is the manifold of solutions of the previous priority level. The TPIK algorithm uses regularized space projection to implement priorities among the tasks. These computations are highlighted by the notation Rmin. In addition to the minimization performed in Eq. ( 10), other regularization costs are included. These regularization costs are necessary to avoid discontinuities in the system velocity vector due to kinematic and algorithmic singularities. These regularization costs will not be analyzed in this work, since they are fully explained in [START_REF] Simetti | A novel practical technique to integrate inequality control objectives and task transitions in priority based control[END_REF]. A significant advantage of the TPIK algorithm is the use of the activation functions to handle inequality control objectives without over-constraining the system. Both equality and inequality control require a certain amount of robot degrees-offreedom specified by the associated task. When an inequality task is inside its validity region, the activation function goes to zero, therefore not consuming any degrees-of-freedom. So, safety tasks, like joint limits, can be placed at the top of the hierarchy without over-constraining the system.

Finally, the TPIK algorithm adopts another continuous sigmoidal function a p (p) which includes the previous and current executed actions and the time elapsed in the current step to perform a smooth activation/deactivation transition between two actions. This function a p (p) is used together with a i (x). More details are presented in [START_REF] Simetti | Task priority control of underwater intervention systems: Theory and applications[END_REF].

Kinetostatic Tasks for Robot Performance Optimization

The TPIK algorithm considers two tasks related to the end-effector pose and velocity to control the RP-120 and performs a series of machining tasks. The kinematic Jacobian matrix J e of these tasks is the one that relates the end-effector twist t ∈ R 6 to the joint velocity vector q ∈ R n ,

t = ṗ ω ω ω = J e (q) q = J l (q) J a (q) q. ( 11
)
Other two tasks, based on the robot kinetostatic performance metrics, are used to optimize the robot performance. This section describes the two kinetostatic performance metrics that rate the kinetostatic robot abilities. Together with the definition of these metrices, their Jacobian matrices are computed as a function of the robot configuration vector q. In this way, the TPIK algorithm uses these kinetostatic tasks to optimize the robot performance while performing the machining operations. The kinetostatic performance metrics proposed in this paper are the dexterity [START_REF] Angeles | Kinematic isotropy and the conditioning index of serial robotic manipulators[END_REF] and the robot transmission ratio (RTR) [START_REF] Zargarbashi | Posture optimization in robot-assisted machining operations[END_REF]. Before introducing the definitions of dexterity and RTR, it is essential to recall that the kinematic Jacobian matrix needs to be weighted to compute these metrics since it contains non-homogeneous terms, i.e. linear and angular ones. The weighting of J e employs the characteristic length L. It was introduced in [START_REF] Angeles | The design of isotropic manipulator architectures in the presence of redundancies[END_REF] to solve the absence of dimensional homogeneity in the kinematic Jacobian matrix entries and its determination is described in [START_REF] Khan | The kinetostatic optimization of robotic manipulators: The inverse and the direct problems[END_REF]. To weight J e , the revolute joint columns of the linear kinematic Jacobian matrix part are divided by L. The weighted kinematic Jacobian matrix of the RP-120, which accounts only revolute joints, is written as

J w (q) = J l (q)/L J a (q) . (12)

Dexterity

The dexterity η 1 (J w ) characterizes the kinematic performance of a manipulator in a given configuration and is defined as the inverse of the conditioning number κ(J w ) of its Jacobian matrix [START_REF] Angeles | Kinematic isotropy and the conditioning index of serial robotic manipulators[END_REF]:

κ(J w ) = ||J w || ||J -1 w || and η 1 (J w ) = 1/κ(J w ). (13)
The index η 1 is bounded by 0 and 1. The higher η 1 , the better the manipulator dexterity. If η 1 = 1, the robot is in an isotropic configuration. The smaller η 1 , the worse the manipulator dexterity and the closer to a singularity. Moreover, η 1 corresponds to the ratio between the smallest and highest singular values of J w denoting how close the manipulability hyper-ellipsoid is to being a hyper-sphere [START_REF] Pond | Formulating jacobian matrices for the dexterity analysis of parallel manipulators[END_REF]. So, in case of η 1 = 1, the robot can move with the same velocity amplification factor in all the task space directions. Contrary, in case of η 1 = 0, the robot cannot move in one or more task space directions. In this case, the Frobenius norm of J w [START_REF] Rakotomanga | Kinetostatic performance of a planar parallel mechanism with variable actuation[END_REF] is employed to obtain an analytical expression of η 1 :

η 1 (J w ) = m trace(J w J ⊤ w ) trace[(J w J ⊤ w ) -1 ] , ( 14
)
where m is the number of rows of J w and represents the dimension of task space. The following definitions are introduced to increase the readability of the equations:

γ 1 (J w ) ≜ trace(J w J ⊤ w ) and γ 2 (J w ) ≜ trace[(J w J ⊤ w ) -1 ]. (15)
where ≜ represents the definition symbol. So, η 1 can be rewritten as

η 1 (J w ) = m γ 1 (J w ) γ 2 (J w ) . ( 16
)
The dexterity Jacobian matrix is determined to relate the velocity rate of η 1 with respect to the joint velocity vector q. Since the Frobenius formula used in Eq. ( 14) expresses η 1 as a function of joint position vector q in an analytical way, it allows its derivation. So, the derivative of Eq. ( 14) with respect to each joint position q i ∈ q is

∂η 1 ∂q i = -η 1 ∂γ 1 ∂q i 1 γ 1 + 1 γ 2 ∂γ 2 ∂q i , (17)
where

∂γ 1 ∂q i = 1 γ 1 trace J w ∂J ⊤ w ∂q i and ∂γ 2 ∂q i = 1 γ 2 trace -J w ∂J ⊤ w ∂q i (J w J ⊤ w ) 2 . (18)
In conclusion, the dexterity Jacobian matrix J η 1 as a function of the joint variables is

J η 1 = ∂η 1 ∂q 1 . . . ∂η 1 ∂q n , ( 19
)
where n is the number of columns of J w and represents the dimension of joint space.

Robot transmission ratio

The RTR η 2 (J w ) measures how effectively the actuator forces produce the desired robot motion [START_REF] Zargarbashi | Posture optimization in robot-assisted machining operations[END_REF]. It corresponds to the angle between the joint velocity q and torque τ τ τ vectors

η 2 = |τ τ τ ⊤ q| ||τ τ τ|| || q|| = | cos ∠(τ τ τ, q)|. ( 20
)
This index is bounded between 0 and 1. Maximizing η 2 protects the joint motors not only from velocity saturation but also from torque saturation [START_REF] Zargarbashi | Posture optimization in robot-assisted machining operations[END_REF]. In case of kinetostatic redundancy, η 2 can also be written as a function of the end-effector twist t and the wrench w applied to it:

η 2 = |w ⊤ t| ||J ⊤ w w|| ||J + w t|| , ( 21
)
where t is the robot end-effector twist defined in Eq. ( 11) and w = [f ⊤ , m ⊤ ] ⊤ is the wrench that collects the forces f and moments m exerted by the environment on the end-effector. The matrix J + w is the pseudo-inverse of the weighted kinematic Jacobian matrix. To ensure that η 2 is dimensionless, the linear part ṗ in t and the moment m in w are divided by the characteristic length L.

The RTR Jacobian matrix is obtained by doing the derivative of Eq. ( 21) with respect to each joint position q i ∈ q:

∂η 2 ∂q i = η 2 w ⊤ J w ∂J ⊤ w ∂q i w||J + w t|| 2 -||J ⊤ w w|| 2 t ⊤ J + ⊤ w ∂J + w ∂q i t (||J ⊤ w w|| ||J + w t||) 2 , ( 22
)
where the values of the end-effector twist t and the wrench w applied to it are defined in the trajectory planning and therefore known. The derivative of the pseudo-inverse weighted kinematic Jacobian matrix ∂J + w /∂q i is defined in [START_REF] Golub | The differentiation of pseudo-inverses and nonlinear least squares problems whose variables separate[END_REF]. The RTR Jacobian matrix J η 2 as a function of the joint variables is

J η 2 = ∂η 2 ∂q 1 . . . ∂η 2 ∂q n , ( 23
)
where n is the number of columns of J w and represents the dimension of joint space.

6 Trajectory Tracking with the Nimbl'Bot Robot This section describes the tests performed in a computer simulation on the RP-120 design and discusses the obtained results. The test consists in a joint trajectory planning and makes the RP-120 track different trajectories with and without activating the tasks related to dexterity and RTR. After collecting the metric values on each trajectory, these are compared to demonstrate the benefit of using the optimization tasks and identify the best joint trajectory planning for this robot on each trajectory. The RP-120 has to track four trajectories of the same shape and size. Figure 15 shows the RP-120 next to the four trajectories. Two of them are oriented horizontally and the others are vertical. These trajectories describe a cubic area whose side are 0.5 m × 0.5 m centered in (x, y, z) = (0.0, 1.05, 0.45). The machining tool is shown in the top right corner of Fig. 15. The tool ending part is rotated of 45 • around the red point. This allows the robot to reach all the points on each trajectory. The trajectories are planned to cut a squared shape using a machining tool and the measures are shown in Fig. 16. The tool trajectory is divided in four parts (a), (b), (c) and (d). Figure 16 also shows the orientation of the velocity vector ⃗ v and the tangential and radial force vectors ⃗ f t and ⃗ f r applied on the machining tool. The magnitudes of ⃗ v, ⃗ f t and ⃗ f r are constant along the entire trajectory. The profiles of⃗ v, ⃗ f t and ⃗ f r are depicted in Figs. 17 and18. The gravity force and the cutting one along⃗ z p are neglected in this work. The details about the RP-120 and trajectory features are in Tables 1 and2, respectively. The details of the machine and the implementation are given in Table 3. The RP-120 features, trajectory size and velocity/force magnitudes were provided by Nimbl'Bot.

Since both dexterity η 1 and RTR η 2 are employed, they are combined in a linear function used to rate the performance of the RP-120 on each trajectory,

η = λ 1 η 1 + λ 2 η 2 , (24)
where λ 1 and λ 2 are scaling factors. Since η 1 and η 2 are valid in the same range, the weighting factors are selected as λ 1 = λ 2 = 0.5 and η becomes valid in the same range [0, 1] So, η = 1 means that the robot is in an isotropic config- Optimized. Variables: Number of trajectories (n t ) is 4 and number of repetitions (n r ) is 100. Variable t is time step. Object robot represents the simulated design, contains joint position vector q and values of (η, η 1 , η 2 ), can use the TPIK function to perform the desired action A . Object tra jectory contains all the poses, velocities and forces at each Step(0 : End).

1: for i := 1 → n t do 2:

for j := 1 → n r do 3:

robot.q = RandomInit() ▷ Random initialization of the robot configuration 4:

Save(robot.q) ▷ Same random starting configuration reused with optimization tasks, step 14

Load tra jectory(i) robot.η(t) = 0.5(robot.η 1 (t) + robot.η 2 (t))

12:

Save(robot.[η(t), η 1 (t), η 2 (t)]) ▷ Save performance metrics for result analysis 13:

end while 14:

Reload saved robot.q ▷ Use same random starting configuration generated at step 3 robot.η(t) = 0.5(robot.η 1 (t) + robot.η

Save(robot.[η(t), η 1 (t), η 2 (t)]) ▷ Save performance metrics for result analysis 22:

end while

23:

end for 24: end for same process is repeated activating the dexterity and RTR tasks, both when approaching the starting point and following the trajectory. The robot is initialized using the same random configurations used in the tests without optimization. Moreover, when the optimization tasks are active, a monitoring is added while reaching the starting point to check if the control algorithm is still optimizing the robot configuration even though the end-effector frame has already reached the desired pose. This methodology is applied to each trajectory. A summary of the methodology is presented in Algorithm 1.

Figures 19 and21 give a general overview of the results. Figure 19 collects the values of η of the robot on the starting poses with and without optimization tasks. For each trajectory 1 to 4, two box plots are shown containing the results obtained by repeating the process without (blue) and with (red) optimization a hundred times. When the dexterity and RTR tasks are activated, the variance of η is smaller and the minimum and maximum values are high. This means that the optimization tasks always help reaching configurations with high values of η. On the contrary, when the dexterity and RTR tasks are deactivated, the variance of η on the starting poses is bigger. Since the optimization tasks are disabled, the TPIK algorithm runs the robot straightly to the desired pose without performing any optimization on the robot configuration and η can reach higher or lower values. Furthermore, as described in the testing algorithm, the action A 3 is allowed to run until the metrics local maxima are reached. This implies that moving the robot to the starting pose with active dexterity and RTR tasks requires, on average, 80% more time than without these tasks; though the end-effector reaches the desired pose in the same time in both scenarii. In fact, the average time for running the TPIK algorithm at each step is 698 µs when the optimization tasks disabled and 744 µs when the optimization is active. Figure 20 presents the improvement of η at starting pose of trajectory, with and without the optimization tasks for each of the hundred repetitions. The improvement of η are almost always high, over 250% in some However, few cases show a negative percentage. This is due to the control algorithm converging to a local maxima when optimizing the metrics. In fact, the optimized control algorithm reaches a local maxima in these few cases while the non-optimized one moves the robot in a configuration that escaped the local maxima and had higher kinetostatic performance unintentionally. This behavior happens a few times, which justifies the need to run the algorithm several times to obtain the best robot performance. Figure 21 collects the mean values η of η reached on each trajectory. Again, for each trajectory 1 to 4, there are two box plots containing the results obtained by repeating a hundred times the process without (blue) and with (red) optimization. The optimization tasks lead to a smaller variance for η compared to the non-optimized results. However, the minimum values of η in the non-optimized cases are higher than the minimum η obtained on the non-optimized starting poses. This means that the RP-120 can maintain good kinetostatic performance on the trajectories even if the optimization tasks are disabled and the starting η is low. Moreover, the first trajectory shows the best performance, followed by the second, the third and the fourth. So, this design has better kinetostatic performance when the trajectory is horizontal and nearer to the base. Figure 22 presents the improvement of η on each trajectory, with and without the optimization tasks for each of the hundred repetitions. Again, it can be noticed that in a few cases the percentage is negative due local maxima issue.

Figure 23 shows the robot on the starting pose of each trajectory for the minimum value of η in case of no optimization and the maximum η when optimization tasks were active. The values η 1 and η 2 for the optimized and not optimized configurations are shown next to the robots in each figure. In the configurations assumed by the optimized robots, the ⃗ x pose difference of one NB-module center and the next is lower than in the non-optimized cases. This leads to a smaller angle between the joint velocity and torque vectors and increases the RTR value. Moreover, the vectors from the joint frames to the end-effector frame are different in length and orientation, giving distinct contributions to the kinematic Jacobian matrix and increasing the dexterity value.

Figure 24 shows the robot dexterity and RTR profiles along the first trajectory for the minimum value of η in case of no optimization and the maximum η when optimization tasks are active. The dexterity and RTR graphs are divided in the four trajectory sectors (a), (b), (c) and (d). The curves are higher when their tasks are active. The graphs also show the percentage of optimization for each curve. The activation of the dexterity task can improve the performance by a factor 2. It can also be noticed how the RTR curve has discontinuities in correspondence to the trajectory corners since its value is directly affected by the orientation of the velocity and force vectors applied to the ending tool. Here, only the graphs for the first trajectory are shown since all the other trajectories showed similar behaviors. However, a video of the robot simulation on each trajectory with dexterity and RTR graphs for minimum value of η without optimization and maximum η with optimization can be seen at this link 1 . Comparing all the dexterity and RTR results on each trajectory with and without optimization repeated a hundred times shows that the optimization tasks averagely increase the dexterity value of 33% and the RTR of 22%. Figures 25 and26 show the improvement of η 1 and η 2 respectively, with and without the optimization tasks on all trajectories and for a hundred repetitions. These percentages demonstrate how the use of optimization tasks generally improves the robot performance. In few cases, the negative percentage issue is met. However, this issue appears only for the RTR. A final consideration that can be pointed out is the relation between the RTR value and the velocity and force vectors orientation. Taking into account the first and second trajectories, the RTR values are 24% higher when the moves along ⃗ x, (b) and (d) sectors, than along ⃗ y, (a) and (c) sectors, in case of no optimization. When the RTR task is active, the reduces to 16% because the task helps optimizing the robot configuration. Then, considering third and fourth trajectories, the RTR values are 21% higher when robot moves along ⃗ x, (b) and (d) sectors, than along ⃗ z, (a) and (c) sectors. When the RTR task active, the percentage becomes 3%. So, the robot has higher performance for the RTR when the end-effector does a tangential horizontal movement than radial and vertical movements. A similar behavior can not be noticed in the dexterity because it is not affected by the magnitude or orientation of the velocity and force vectors applied to the end-effector.

Conclusions and Future Work

This paper presented a new design for redundant robots formed of a series of closed kinematic chain mechanisms called NB-modules. The geometric and kinematic models of the NB-module are extracted from the previous work and presented. Then, a kinematic control algorithm called Task Priority Inverse Kinematic (TPIK) is used to kinematically control the robot performing machining tasks. This kinematic control algorithm is suitable for the RP-120 and exploits its kinematic redundancy to solve simultaneous tasks. Two new tasks are introduced to improve the robot kinetostatic performance. One is based on the dexterity and the other on the robot transmission ratio (RTR). The robot tracks a series of trajectories, both activating and deactivating the optimization tasks. The major limitation of this algorithm is that it is attracted by local maxima. So, the process needs to be run several times to come up with the best joint trajectory planning for the desired set of tasks. When the optimization tasks are active, the results clearly show an improvement in the robot performance, both dexterity and RTR, without affecting the time consumption. In fact, the average time consumed by the algorithm at each step with or without the optimization tasks is almost equal, the difference is less than 50 µs. To rate the improvement given by the optimization tasks, a linear combination of dexterity and RTR is used, i.e. η. When the robot reaches the trajectory starting pose with active optimization task, η is averagely 54% higher than the non-optimized case. Along each trajectory, the mean value η is averagely 26% higher in the optimized case compared to the non-optimized one. Moreover, it can be noticed that the kinetostatic performance are affected by the trajectory placement and by the velocity and force vectors orientation. However, this paper uses only four squared trajectories with constant velocities and forces to test the robot performance. So, it is not possible to identify the best placement and orientation for the workpiece, but this is a starting point for future analysis. Then, there is no comparison with the performance of other existing manipulators on the same tasks. This will be done later on to study the potential of the RP-120 with respect to its counterparts. Finally, the prototype shown in Section 2 will be tested to analyze its performance in real life.

Fig. 2 :Fig. 3 :

 23 Fig. 2: Vertical section of the RP-120 Cartesian workspace for at least one end-effector orientation

Fig. 4 :Fig. 5 :Fig. 6 : 7 :

 4567 Fig. 4: External view of the NB-module

2 Fig. 8 :Fig. 9 :

 289 Fig. 8: Location of rolling circles formed of a series of balls in the NB-module

Fig. 10 :

 10 Fig. 10: Tilt and azimuth model of the NB-module

Fig. 13 :

 13 Fig. 13: 3D view of the workspace of one NB-module Fig. 14: 2D view of the workspace of one NB-module

Fig. 15 :Fig. 16 :

 1516 Fig. 15: Schematics of the RP-120 with the four trajectories to track in 3D space. In the top right corner the machining tool attached to the RP-120 end-effector used in the cutting phase. Tool center point (TCP) highlighted in green. Tool ending section rotated around red point of 45 • . Fig. 16: Measures of the desired workpiece, machining tool and trajectory tool with workpiece frame F p . Orientation of velocity vector⃗ v (yellow) plus tangential and radial force vectors ⃗ f t and ⃗ f r (blue and green). The tool trajectory is divided into four parts (a), (b), (c) and (d).

Fig. 17 :

 17 Fig. 17: Velocity profiles of the machining tool in frame F p . Each sector is labeled (a), (b), (c) and (d) to match the corresponding part of the trajectory.

Fig. 18 :

 18 Fig. 18: Cutting force profiles in frame F p . Each sector is labeled (a), (b), (c) and (d) to match the corresponding part of the trajectory.

Fig. 19 :Fig. 20 :

 1920 Fig. 19: Values taken by η at the starting pose of each trajectory (1 to 4, Fig. 15) for each one of the hundred repetitions, without (blue) and with (red) optimization of dexterity and RTR Fig. 20: Percentages of optimization for η in the starting pose of each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions.

Fig. 21 :Fig. 22 :

 2122 Fig. 21: Mean values η of η reached along each trajectory (1 to 4, Fig. 15) for each one of the hundred repetitions, without (blue) and with (red) optimization of dexterity and RTR Fig. 22: Percentages of optimization for mean value η of η on each trajectory comparing the optimized and non-optimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions.

Fig. 23 :

 23 Fig. 23: Robot in starting configuration on each trajectory for least value of η in case of no optimization (blue) and highest value of η when optimization is active (red). Values of η 1 and η 2 in both cases are shown on the right of each sub-figure.

2 Fig. 24 :

 224 Fig. 24: Graph of η 1 and η 2 while following the first trajectory for least value of η in case of no optimization (blue) and highest value of η when optimization is active (red). Each sector is labeled (a), (b), (c) and (d) to match the corresponding part of the trajectory.

Fig. 25 :Fig. 26 :

 2526 Fig. 25: Percentages of optimization for mean value η 1 of η 1 on each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions. Fig. 26: Percentages of optimization for mean value η 2 of η 2 on each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions.

21

  Mean values η of η reached along each trajectory (1 to 4, Fig. 15) for each one of the hundred repetitions, without (blue) and with (red) optimization of dexterity and RTR . . . . . . . . . . . . . . . . . . . . . . . 14 22 Percentages of optimization for mean value η of η on each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 23 Robot in starting configuration on each trajectory for least value of η in case of no optimization (blue) and highest value of η when optimization is active (red). Values of η 1 and η 2 in both cases are shown on the right of each sub-figure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 24 Graph of η 1 and η 2 while following the first trajectory for least value of η in case of no optimization (blue) and highest value of η when optimization is active (red). Each sector is labeled (a), (b), (c) and (d) to match the corresponding part of the trajectory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 25 Percentages of optimization for mean value η 1 of η 1 on each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 26 Percentages of optimization for mean value η 2 of η 2 on each trajectory comparing the optimized and nonoptimized case for each of the hundred repetitions. The circle • highlights the mean percentage of the hundred repetitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Table 1 :

 1 Main robot dimensions plus joint velocity and acceleration limits

	Module half height r	0.07 m
	Module tube slope α	15 •
	Link length	0.2 m
	Tool height	0.1 m
	Tool offset	45 •
	Robot + tool total height	1.9 m
	Max/min joint velocity	±1.0 rad/s
	Max joint acceleration/deceleration 2.0 rad/s 2

Table 2 :

 2 Test trajectory details, velocities and forces exerted on end-effector and time for tracking entire trajectory

	Square side	0.5 m
	Steps	2001
	Magnitude velocity vector ||⃗ v||	0.002 m/s
	Magnitude tangential force vector || ⃗ f t ||	60 N
	Magnitude radial force vector || ⃗ f r ||	20 N
	Time	1000 s

Table 3 :

 3 Machine and implementation details

	Operating System	Linux
	Distribution	Ubuntu 20.04
	CPUs number	4
	CPU model	Intel Core i7 10th Gen, 1.30GHz
	Language	C++
	Control frequency	10Hz
	Total simulation time	2.5 hours

Table 4 :

 4 Details about the task names, control objective types, and hierarchy levels. Symbol (E) represents the equality control objective tasks and (I) the inequality control objective tasks. The last four columns list the hierarchy level for each task in actions A 1 (Reach Pose), A 2 (Follow Trajectory), A 3 (Reach Pose Optimized) and A 4 (Follow Trajectory Optimized). When symbol (/) is used, it means that a task is not present in the action and has no hierarchy level.

	Hierarchy levels

  . . . . . 16 List of Tables 1 Main robot dimensions plus joint velocity and acceleration limits . . . . . . . . . . . . . . . . . . . . . . . 11 2 Test trajectory details, velocities and forces exerted on end-effector and time for tracking entire trajectory . 11 3 Machine and implementation details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 4 Details about the task names, control objective types, and hierarchy levels. Symbol (E) represents the equality control objective tasks and (I) the inequality control objective tasks. The last four columns list the hierarchy level for each task in actions A 1 (Reach Pose), A 2 (Follow Trajectory), A 3 (Reach Pose Optimized) and A 4 (Follow Trajectory Optimized). When symbol (/) is used, it means that a task is not present in the action and has no hierarchy level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Link to simulation video: https://nimbl-bot.com/video-nb-120_1/

Acknowledgements

This work was supported by the ANRT (Association Nationale de la Recherche et de la Technologie) grant CIFRE n • 2020/1051 and Nimbl'Bot (https://nimbl-bot.com/)

List of Figures


Zane Zak
email: zane.zake@irt-jules-verne.fr

Nicolò Pedemonte

Boris Moriniere

Adolfo Suarez Roos

Stéphane Caro
email: stephane.caro@ls2n.fr

Elasto-Static Model and Accuracy Analysis of a Large Deployable Cable-Driven Parallel Robot

Keywords: CDPR, deployable, accuracy, repeatability, elasticity

Cable-driven parallel robots (CDPRs) have the potential of being the go-to rapidly deployable and reconfigurable robots. This is because cables are used instead of rigid links and thus the overall robot architecture can consist of only four masts, eight motors and very long cables actuating the moving-platform. This paper introduces a large deployable CDPR called ROCASPECT. Its accuracy and repeatability have been evaluated according to ISO 9283:1998. Moreover, the effect of modeling errors and mast compliance on the CDPR accuracy and repeatability is studied.

Introduction

Cable-driven parallel robots (CDPRs) are a type of parallel robots with cables instead of rigid links. Due to this, CDPRs can have a very large workspace (WS) and a light deployable and reconfigurable structure. However, with the increased size, a decreased accuracy and repeatability can usually be observed. Among the existing large CDPRs we can mention: To our knowledge only IPANEMA has been evaluated according to ISO 9283:1998 [START_REF]Manipulating industrial robots -Performance criteria and related test methods[END_REF] so far. In [START_REF] Pott | IPAnema: a family of cable-driven parallel robots for industrial applications[END_REF] the pose repeatability of the IPANEMA robot was below 0.75 mm for all tested velocities. Interestingly, the authors observed that the best values could be achieved with the highest velocity of their CDPR. The authors report path repeatability of 0.5 mm. In [START_REF] Schmidt | Implementing extended kinematics of a cable-driven parallel robot in real-time[END_REF] the pose accuracy is reported to be 37.86 mm. In both papers ground truth measurements were performed using a Leica Absolute Laser Tracker AT901-MR (Leica Laser-Tracker) with a certified absolute accuracy of less than 10 µm. For CoGiRo the reported mean accuracy is 50 mm and mean repeatability is 3 mm [START_REF] Auffray | Vers la manipulation précise de grandes pièces dans de très grands espaces de travail[END_REF]. However, ISO 9283 relies on the worst accuracy and repeatability measurement instead of the mean. No comparable accuracy or repeatability has been reported for the CDPR used in the art installation.

In this paper, a large deployable CDPR named ROCASPECT, shown in Fig. 1a, is presented. The structure consists of four masts, each being an assembly of multiple pieces, as shown in Fig. 1b. Thus, the CDPR can be stored in a small space when not deployed. The moving-platform (MP) is pulled by 8 cables. In the configuration shown in Fig. 1a, the CDPR size is 23.3 m × 19.0 m × 4.0 m. The MP size is 1.0 m × 1.0 m × 0.5 m and its mass is 35 kg. The coordinates of cable exit points A ij measured by the Leica Laser-Tracker can be found in Table 1. For security, the masts are fixed to the ground to avoid them tipping over. While the robot footprint is 443 m 2 , the actual WS is considerably smaller. Its footprint is computed to be 332.5 m 2 and it is marked with the light green shape in Fig. 2.

During the experiments it was observed that the masts are subject to torsion and bending due to their light structure. In this paper we address the modeling of the CDPR with bending masts as well as the analysis of the effect of mast deformation on the robot accuracy and repeatability.

Design and Modeling

As discussed in [START_REF] Merlet | The Prince's tears, a large cable-driven parallel robot for an artistic exhibition[END_REF], the height of a CDPR can become a limiting factor as the ground footprint is increased. To counteract the large cable tensions pulling on the masts, ROCASPECT masts are designed with supporting ropes that can be seen in Fig. 1b and Fig. 2. These are certified inelastic Dyneema ropes. However, these ropes have spliced loops on each end and as the splicing tightened during the experiments they elongated by approximately 15 mm or 0.39% of their nominal length of 3.8 m. While the elongation is small and normally would be negligible, it was not possible to tighten the supporting ropes and as a result the masts were bent slightly towards the center of the WS and not as stiff as expected.

Mast

After two weeks of experiments the cable exit points were remeasured with the MP positioned at [10.0; 8.56; 1.0]. The new measurements, denoted as A r ij are shown in Table 1 along with the Euclidean distance ||

# » A ij A r ij || 2 .
Furthermore, a certain compliance of masts and as a consequence a displacement of pulleys depending on the MP pose was observed. As an example, the Cartesian coordinates of A 21 and A 22 and their distance to A r ij depending on the MP pose are shown in Table 2.

Kinematic Model

A CDPR is defined by cable exit points A ij and anchor points B ij , where i denotes the ith mast with i = 1, . . . , k and k = 4; j denotes the jth cable exiting from ith mast with j = 1, . . . , p and p = 2. The ijth cable vector is expressed as:

l ij = b a ij -b t p -b R p p b ij (1)
where b a ij is the Cartesian coordinates vector of A ij expressed in frame F b ; p b ij is the Cartesian coordinates vector of B ij expressed in frame F p ; b t p and b R p are the position vector and rotation matrix of the MP expressed in F b .

The static equilibrium of the MP is given by:

Wτ + w g = 0 ( 2
)
where τ is the cable tension vector, w g is the MP gravity wrench, and W is the wrench matrix of the CDPR, defined as [START_REF] Pott | Cable-Driven Parallel Robots: Theory and Application[END_REF]:

W = b u 11 . . . b u kp b R p p b 11 × b u 11 . . . b R p p b kp × b u kp (3)
where b u ij is the unit vector of l ij , namely b u ij = lij ||lij ||2 . Note that ROCASPECT has large pulleys, thus pulley kinematics must be taken into account, but not detailed here due to the limited space. Please refer to [START_REF] Pott | Influence of pulley kinematics on cable-driven parallel robots[END_REF][START_REF] Picard | Pulleys and Force Sensors Influence on Payload Estimation of Cable-Driven Parallel Robots[END_REF][START_REF] Paty | Cable-Driven Parallel Robot Modelling Considering Pulley Kinematics and Cable Elasticity[END_REF][START_REF] Zake | Design and stability analysis of visual servoing on cable-driven parallel robots for accuracy improvement[END_REF] for the expression of the unit vector b u ij .

Mast model

The elongation of the supporting ropes leads to a displacement of cable exit points from A ij to A * ij , because the mast beam tilts forward at its lower assembly point. Moreover, as the beam and rope assembly (mast) is no longer stiff, applying forces to CDPR cables leads to a small displacement around A * ij . The latter can be modeled by three perpendicular and intersecting elastic joints at the base of the mast, as shown in Fig. 1b. Although two pulleys are on the same mast, the resulting displacement of each pulley is different and is described as:

δa ij = C ij w ij (4)
where C ij is the Compliance matrix expressed as:

C ij = J ij K -1 θi J ij (5)
J ij is the mast Jacobian matrix expressed for each pulley as follows:

J ij = i j k # » A * ij O i × i # » A * ij O i × j # » A * ij O i × k (6)
with i, j and k being the unit vectors along x b , y b , and z b axes, respectively. The matrix K θi is the (3 × 3) diagonal joint stiffness matrix of ith mast. w ij is the resultant wrench exerted on the mast expressed as:

w ij = f i m ij = p z=1 f iz p z=1 ( b a * iz -b a * ij ) × f iz (7)
with

f ij = -τ ij (v ij + u ij ), b a * ij is the Cartesian coordinates vector of A * ij ex- pressed in F b , and v ij is the unit vector of # » A * ij O i .
Cable tensions are either measured or estimated, for example by using a tension distribution algorithm [START_REF] Picard | Stiffness Oriented Tension Distribution Algorithm for Cable-Driven Parallel Robots[END_REF].

Finally, the actual cable exit point coordinates are thus:

A # ij = A * ij + δa T ij (8)
where δa T ij is the translational part or the last three components of δa ij . Note that the cable exit point coordinates A r ij shown in Table 1 are A # ij for the MP pose b t p =[10.0 m; 8.56 m; 1.0 m; 0°; 0°; 0°].

Mast compliance can be used in the control scheme as shown in Fig. 3.

To find the actual MP pose, given the new cable exit point coordinates, one would need to solve the direct geometric problem defined by (1), which is a complex task. Here, the desired MP pose is used as the first guess and the actual MP pose is found via a least squares algorithm.

Planar case. Let us begin with a planar CDPR with two cables and a point mass MP, as shown in Fig. 4a. Equation (1) becomes

l i = # » OA i - # » OP c = b a i -b t p .
Similarly, w g = [0, -mg] and the wrench matrix (3) becomes W = b u 1 b u 2 . Here, each mast has one degree of freedom (DoF) about E i . A rotation about E i leads to a displacement of cable exit points from A i to A * i , as shown in Fig. 4b. If the cable lengths l i remain the same, then the MP is no longer at P c , but instead at P * , thus producing a pose error.

For compliant masts, shown in Fig. 4c, cable exit points are at A # i = A * i + δa i , where δa i is a small displacement due to mast compliance computed by [START_REF]Manipulating industrial robots -Performance criteria and related test methods[END_REF]. Of course, in this case mast Jacobian is Finally, if the MP is actually at P c as requested by controller, but the model is not correct, then the actual cable lengths l # i will not be equal to cable lengths l i computed by control, as can be seen in Fig. 4d. Fig. 5 shows the behavior of a simulated CDPR with compliant masts that is controlled by a controller using the simple CDPR model. Here, the desired trajectory is shown in red and it is executed clockwise from the initial MP pose b t p = [3.0; 0.6] . Mast height is set to h i = 4 m. Masts are rotated by 1.5°, which leads to a distance of approximately 10 cm between A i and A * i . Then, to find δa i and A # i , we used m = 35 kg and k θi = 710000 [Nm]. First, if the MP pose is computed from cable lengths, the MP is always significantly lower than desired, as shown in Figs. 4b and5a. Here, the cyan path corresponds to simulated CDPR with cable exit points at A * i , while the blue path corresponds to a simulated CDPR with cable exit points at A # i . However, the most likely scenario is shown in Fig. 4d. The initial MP pose is measured by an external system to initialize the controller. The real cable lengths l # i are shorter than l i , which are computed by the controller at the point of initialization. Now the behavior of the robot depends on where the initialization is done, as can be seen in Figs. 5b to 5d. In Fig. 5b, the initialization is in the center of the WS and not on the path. Most of the path, the MP is above the desired pose and the closer it is to the masts, the larger the difference. While the two curves get very close between X = 8 m and X = 12 m, none of the path points match. In Fig. 5c the initialization is done on the path at b t p = [13; 1.2] and the rest of the blue path is above the desired one. Finally, in Fig. 5d the initialization is done at b t p = [23; 0.6] , which leads to the largest deviation compared to Figs. 5b and5c. Thus, it appears that to minimize the modeling errors, the CDPR should be initialized in the center of the WS or in the center of the path, if it does not coincide with the center of the WS.

J i = h i Ev i , where h i is the length of the ith mast, v i is a unit vector pointing from E i to A * i and E = 0 -1 1 0 . Similarly, w ij is simply w ij = f i = -τ i (v i + u i ) using the tensions τ obtained from (2). IGM CDPR Mast Compliance δa T ij Desired MP pose l ij τ A * ij A # ij Internal position control q ij

Accuracy and Repeatability

ISO Standard 9283:1998

The ISO 9283:1998 [START_REF]Manipulating industrial robots -Performance criteria and related test methods[END_REF] describes a collection of experiments to evaluate robot precision. Pose accuracy AP and repeatability RP , as well as path accuracy AT and repeatability RT was assessed. Note that here the notation from the ISO standard is being used. For this, the test plane shown in gray in Fig. 2 was defined. The poses to visit for the evaluation of AP and RP must be placed at the center and at (0.1 ± 0.02)d from each corner of the test plane, where d is the WS diagonal, d = 26.238 m. This corresponds to the gold spheres in Fig. 2. However, as it is often shown that CDPRs are more precise at the center of the WS, two additional sets of poses were defined and are shown in pink and violet in Fig. 2. Regarding the choice of the path for AT and RT , we were constrained by our case study, where the main goal was to compare a path in the middle of the WS (shown in brown) and close to WS border (shown in cyan). Furthermore, each path was executed with initialization at the brown sphere and then at the cyan sphere.

Pose accuracy and repeatability

Each set of five poses was visited 30 times and with several MP velocities defined as a percentage v % of the maximum velocity of 0.5m/s. Moreover, the violet set was repeated with the remeasured cable exit points A r ij , shown in Table 1. However, mast compliance was not taken into account during these tests.

Position accuracy and repeatability results can be seen in Fig. 6. First, let us compare the experiments with the nominal CDPR model shown in the first six columns of each bar graph. It can be seen that indeed, the closer the MP to the WS boundaries, the worse the translational accuracy AP , while the components along each global axis do not always follow this trend. On the other hand, the best repeatability is for the largest (gold) test set, while the worst one is for the medium (pink) set. Regarding the rotational accuracy (AP R ) and repeatability (RP R ), in general they both become worse with increased distance from the WS center. However, all the values are very close to one another and the AP R always remains below 2.5°and RP R below 0.6°.

It appears that higher velocity leads to better results, as described in [START_REF] Pott | IPAnema: a family of cable-driven parallel robots for industrial applications[END_REF]. Indeed, both AP and RP are better with v % = 100% for the violet and pink test sets compared to v % = 10%. For the large test set only RP is better.

Comparing the results obtained with the nominal and the remeasured CDPR model, the latter gives a better result, except for AP z with v % = 100%. Furthermore, the results for the remeasured model are almost the same no matter the velocity with only two exceptions -the aforementioned AP z with v % = 100%, and RP z with v % = 10%. Surprisingly, the AP R and RP R are worse with the new model, even though they are still very good, not surpassing 1.5°and 0.55°, resp.

Finally, the WS covered in the violet test set is slightly larger than the WS of IPANEMA [START_REF] Pott | IPAnema: a family of cable-driven parallel robots for industrial applications[END_REF][START_REF] Schmidt | Implementing extended kinematics of a cable-driven parallel robot in real-time[END_REF]. With the remeasured model we obtain almost the same accuracy, with the exception of the aforementioned AP z with v % = 100%.

Path accuracy and repeatability

As explained in Section 3.1 and shown in Fig. 2, two paths parallel to the global ZY plane were selected: one in the center and one on the side of the WS. More-over, two initialization poses were used for each path: in the center and on the side of the WS. The starting position is [10.0; 8.56; 1.2] or [1.0; 8.56; 1.2], corresponding to the brown and cyan spheres shown in Fig. 2, resp. The results are shown in Fig. 7 on the left, where the desired path is shown in red and the executed one is shown in blue. Furthermore, the evolution of the translational accuracy AT along the path can also be seen in Fig. 7 on the right with the notation nominal. Here, the translational accuracy is the difference between the desired path and the measured one. It is clear that the best behavior is when both the path and the initialization are in the center of the WS, shown in Figs. 7a and7b. Accuracy AT is 2.5 cm on average, and the worst peak of 4.6 cm is due to AT z . Note that the shape of the executed trajectory is very close to the simulated one in Fig. 5b. Then, if the initialization is done on the side of the WS (Fig. 7c), the average AT is 5.2 cm, while the peak reaches 7.7 cm, thus roughly doubling when compared to Figs. 7a and7b. The main reason behind this increase is a considerable increase of AT x , that remains at about 4 cm throughout the path. Thus, it is important to initialize the robot on the trajectory to have the best accuracy.

Next, in Fig. 7e both the initialization and the path are on the side of the WS. The executed trajectory is even less precise and is very similar to the simulated one in Fig. 5c. As initialization is done on the path, the AT x is small. However, the large deviation along Z drives AT to peak at 12.8 cm. Finally, in Fig. 7g the initialization is now done in the center, while the path is on the side of the WS. This leads to the worst accuracy out of the four scenarios, AT peaking at 20.6 cm due AT z . Thus, in both scenarios shown in Figs. 7c and 7g initialization far from the path leads to worse accuracy.

Accuracy and repeatability with the compliant mast model

In this section the model proposed in Section 2.2 is verified by estimating the behavior of ROCASPECT given the desired paths shown in red in Fig. 7. It is assumed that the final cable exit points A # ij are computed as A # ij = A * ij + δa ij , where A * ij corresponds to cable exit point coordinates after the elongation of supporting ropes by 1.5 cm and δa ij is the additional cable exit point displacement due to mast compliance. To compute δa ij , the stiffness matrix of each mast is set so that the diagonal components are k 11 = 200000 [Nm], k 22 = 500000 [Nm], k 33 = 300000 [Nm]. These stiffness coefficients were obtained by simulating the robot with the MP poses given in Table 2 and tuning the coefficients to get similar cable exit point coordinates. Cable tensions τ are also needed, however the real cable tensions were not measured. Accordingly, the cable tensions were estimated by using the tension distribution algorithm described in [START_REF] Mikelsons | A real-time capable force calculation algorithm for redundant tendon-based parallel manipulators[END_REF][START_REF] Rasheed | Tension Distribution Algorithm for Planar Mobile Cable-Driven Parallel Robots[END_REF].

The resulting paths are shown in cyan in Fig. 7 on the left. The translational accuracy AT is plotted in Fig. 7 on the right with the notation Compliant.

Here AT is the difference between the estimated and the measured paths. Right away it can be seen in Fig. 7a that the estimated and measured paths are almost the same. Compliant AT x and AT y almost coincide with the nominal ones in Fig. 7b, while AT z is considerably lower. Indeed, now AT peaks at 2.8 cm due to AT y . Thus, while the compliant model is indeed considerably closer to the real robot, there are some sources of errors, affecting AT y that are not modeled. In Fig. 7c, the difference between the cyan and blue paths is a bit larger, but they are still very similar. As can be seen in Fig. 7d, compliant AT x is almost 0, thus the error of the nominal AT x comes mainly from the difference between the control model A ij and the compliant model A # ij . Compliant AT z is also smaller than the nominal one, consequently compliant AT averages at 2.4 cm and peaks at 4.6 cm, which is almost twice better than the nominal AT .

In Figs. 7e and7f, thanks to the dramatic decrease of compliant AT z to less than 3 cm, the accuracy AT is now twice better than the nominal one. Finally, the difference between the estimated and the measured paths is large in Fig. 7g. Indeed, the compliant AT z remains at about 10 cm, as shown in Fig. 7h, however even that is significantly better than the nominal AT z that averages at 15.4 cm and peaks at 20.6 cm. This is also the only case where a large difference between nominal and compliant AT x can be seen. It seems that initializing the MP in the center and then working on the side of the WS accentuates the modeling issues.

Conclusions

In this paper the accuracy and repeatability of a very large deployable CDPR measured according to the ISO 9283:1988 standard is presented. A simple compliant mast model is then proposed to explain the behavior observed during experimentation.

Overall, the results are comparable to the state of the art, especially with the remeasured model: about 5 cm for accuracy and less than 1 cm for repeatability, which is 0.19% and 0.04% of the WS diagonal, resp. However, to obtain this model, it is important to first have a working-in period for a CDPR to ensure that all cables (supporting and actuated) stretch and tighten in their knots, splices or winding systems.

CDPR accuracy depends on the distance of the MP to its WS center, as could be seen in both sets of experiments. Moreover, as shown in the path experiments, the initialization pose matters as well. Indeed, a badly chosen initialization pose can accentuate the differences between the model and the actual robot.

CDPR accuracy depends also on the robot model used within the controller. Indeed, if the model is not correct or too simple, the behavior of the robot cannot be precise. Using a compliant mast model the obtained behavior is very similar to the measured one given the same control output. Note that our estimation was obtained without the real tension measurements, without a mast stiffness identification and assuming that all masts have the same stiffness coefficients. Thus, the resulting accuracy can be significantly improved by using the proposed model in the controller. As a consequence, future work includes mast stiffness identification and implementation of a control scheme that takes into account cable tensions and mast compliance.

  (a) IPANEMA 8 m × 6 m × 5 m [1]; (b) CoGiRo 16 m × 11 m × 6 m [2]; (c) CDPR in the art installation Prince's Tears 20.8 m × 7.3 m × 5.1 m [3].

Fig. 1 .Fig. 2 .

 12 Fig. 1. ROCASPECT: (a) test size of 23.3 m × 19.0 m × 4.0 m; (b) CAD model of the mast with: two cables (violet and orange); the resultant force of each cable tension (black arrows) on its pulley shown with cyan arrow; mast rotation and torsion shown with one-DoF elastic joints at the bottom of mast

Fig. 3 .Fig. 4 .Fig. 5 .

 345 Fig. 3. Control scheme taking into account mast compliance

Fig. 6 .Fig. 7 .

 67 Fig. 6. Pose accuracy AP and repeatability RP . Notation: first letters V, P, G refer to violet, pink and gold sets of poses shown in Fig. 2, resp.; second letters N and Rto the use of nominal or remeasured CDPR models shown in Table1; numbers 10, 40, 100 refer to velocity as percentage of max MP velocity of 0.5 m/s

Table 1 .

 1 Coordinates

	||	# AijA r » ij ||2, m

of ROCASPECT cable exit points Nominal Aij in F b , m A11 [0.0; 0.0; 3.565] A12 [-0.772; 0.559; 3.864] A21 [-0.765; 16.593; 3.559] A22 [-0.006; 17.168; 3.858] A31 [20.166; 17.135; 3.558] A32 [20.934; 16.573; 3.867] A41 [20.926; 0.548; 3.561] A42 [20.136; 0.0; 3.856] A r ij in F b , m

Table 2 .

 2 A21 and A22 measurements depending on the MP position

	MP position, m	A21, m	δa21c, m	A22, m	δa22c, m
	[4.5; 4.5; 1.0]	[-0.725; 16.529; 3.555]	0.0204 [0.030; 17.090; 3.859]	0.0322
	[4.5; 12.5; 1.0]	[-0.699; 16.524; 3.559]	0.0103 [0.063; 17.093; 3.853]	0.0131
	[15.5; 12.5; 1.0] [-0.689; 16.554; 3.567]	0.0286 [0.072; 17.129; 3.847]	0.0289
	[15.5; 4.5; 1.0]	[-0.711; 16.547; 3.561]	0.0167 [0.040; 17.119; 3.854]	0.0232

Table 3 .

 3 MP translational errors with the nominal and the compliant models Path Initialization N ATmax, mm N ATavg, mm CATmax, mm CATavg, mm

	Center Center	43.1	24.8	28.0	13.6
	Center Side	77.1	52.0	46.3	24.0
	Side Side	127.6	67.8	69.2	34.2
	Side Center	206.3	154.0	111.4	95.7

Supported by IRT Jules Verne (