Nicolas Andreff

Philippe Martinet

Redwan Dahmouche

Nicolas Bouton

Laurent Malaterre

Tej Dallej

Datta Ramadasan

Pierre Lebraly

Mustafa Ünel

Introduction Problem

In an industrial environment, mechanisms are assessed by two main criteria: quality and throughput. The ability of a mechanism to operate at a high speed certainly improves throughput, but what about quality? As a rule of thumb, the industry always demands better quality and more throughput, even though these two criteria conflict. Unfortunately with serial robots, there is a limit to the amount we can improve the quality and throughput.

In order to overcome this limit, parallel robots are designed to be faster and more accurate than serial robots. Today, they are being used more and more in industry. Although parallel robots are theoretically more skillful, they are structurally very complex to manipulate. Furthermore, parallel robots are mostly modeled and controlled with approaches adopted from serial robots, which is certainly not the best way. There are plenty of specific controls for mobile robots, for humanoids, etc., so why should parallel robots be controlled like serial robots?

Consequently, in order to push parallel robots to their limits, new methods are a must. So, we are faced with the problem of how to control parallel robots at high speed. We can divide this problem into 3 sub-sections:

1. How can parallel robots be simply and accurately modeled? 2. How can the dynamic state of a high speed parallel robot be measured? 3. What is the appropriate control space for better performance?

Objectives

Thus, the first objective of this thesis is to develop an appropriate control-oriented modeling approach for parallel robots. In modeling, we must always strive to obtain the simplest, most accurate and most applicable solution possible. The second objective of this thesis is to measure the posture and the velocity of a parallel robot at high speed with an off-the-shelf sensor(s). The third objective of this thesis is to explore the existing control spaces and to propose new ones in order to improve the control of parallel robots. contributions are as follows:

-Initially, we pushed the modeling of parallel robots by means of leg orientations one step further. We moved it from kinematics to dynamics. This keeps the dynamic model of a parallel robot simple, clear, and linear. What is more this means that one can write the dynamic model of any complex parallel robot from beginning till end with just pen and paper. -Secondly, we proposed a new approach for estimating the dynamic state of a parallel robot at high speed. We achieved this using only the partial visual contours of the legs. These visual contours were measured from the sequentially grabbed small sub-images of the legs during the motion of the parallel robot.

Figure 1 -A camera is observing the leg directions of a parallel robot. Leg orientation vectors unify modeling and control into a single linear control-oriented framework.

We published the following papers throughout this thesis:

1. "Dynamic Control of the Quattro Robot by the Leg Edges", ICRA 2011;

Outline of the Thesis

The rest of this thesis proceeds as follows: Chapter 1 surveys the state-of-the-art works on parallel robots and discusses the MICMAC project; Chapter 2 outlines a linear framework for the kinematic and dynamic modeling of parallel robots based on leg orientations; Chapter 3 uses kinematic control to estimate the dynamic state (posture and velocity) of a parallel robot at high speed, and defines a versatile sensor-based computed-torque control law; Chapter 4 experimentally validates these new theoretical approaches; Finally, in the last Chapter, I conclude my thesis and offer some future possibilities.

Chapter 1

State of The Art

This chapter gives background to the evolution of the thesis so that the reader can be equipped for the next. The state-of-the-art topics are focused on modeling, control, and identification of parallel robots. We also discuss some new extensions.

Parallel Robots 1.Definition

A parallel robot can be conceptually imagined as Sir Newton's hand holding a red apple with his fingertips (see Fig. 1.1). The palm of the hand forms the base platform of the parallel robot, and the fingers act like serial robots attached to this base platform all cooperatively manipulating the red apple. Here in the parallel robot, the red apple represents a moving platform that might have a large load.

Figure 1.1 -A metaphor for a parallel robot concept: a hand holding a red apple with its fingertips. The palm of the hand forms the base platform. Fingers represent the kinematic chains. The red apple is either the moving platform or the moving platform with a large heavy load.

In a parallel robot, these serial robots are called kinematic chains and they usually contain a single motorized joint while the rest of the joints are passive. Each of these motorized joints are generally located either at the base platform (i.e., the hand's knuckle joints) or at the very first of joint locations close to the base platform. These kinematic chains are connected to the moving platform all together, and consequently they form a closed-loop mechanism. The structures of these kinematic chains are usually identical and their placements are symmetric, but they can be also different like the fingers of a hand. The number of these kinematic chains must be equal to or greater than two, "2", so that we can call it a parallel robot. Here, "parallel" does not imply that the kinematic chains are aligned as parallel lines, but it means rather that these kinematic chains work together to achieve a task. A parallel robot shows better dynamic performances than a serial robot in terms of speed and accuracy while manipulating both large and heavy loads [START_REF] Merlet | Parallel robots[END_REF][START_REF] Gogu | Structural synthesis of parallel robots -part1 : Methodology[END_REF]. Clearly, it would be difficult to eat the red apple with one finger. Figure 1.2 shows the well-known two examples of parallel robots: the Gough-Stewart platform [START_REF] Gough | Universal tyre test machine[END_REF][START_REF] Stewart | A platform with six degrees of freedom[END_REF] and the Delta robot [START_REF] Clavel | Delta: a fast robot with parallel geometry[END_REF][START_REF] Clavel | Conception d'un robot parallèle rapide à 4 degrès de liberté[END_REF].

Joint Types and Graphical Layout

The primitive joints with different degrees of freedom (dof) [START_REF] Khalil | Modeling, identification and control of robots[END_REF] are as follows:

-Prismatic: Slides on an axis (1 dof). It is noted by (P).

-Revolute: Rotates around an axis (1 dof). It is noted by (R).

-Spherical (ball): Rotates around three axes (3 dof). It is a ball and noted by (S). Different combinations of these joints create different types: -Universal: It is composed of two revolute joints that allow two rotations (2 dof). It is noted by (U). -Spherical: It can also be composed of three revolute joints that allow three rotations (3 dof). It is noted again by (S).

-Parallelogram: It is composed of four bars that are connected end to end by revolute joints [START_REF] Clavel | Delta: a fast robot with parallel geometry[END_REF]. These four bars form a parallelogram shape. A parallelogram keeps an output link at fixed orientation with respect to an input link. It allows translation in three axes (3 dof) on a sphere. It is noted by (Pa). A graphical layout of a robot demonstrates the positions of the actuators, of the joints and of the kinematic elements [START_REF] Pierrot | Robots pleinement parallèles légers: Conception modélisation et commande[END_REF][START_REF] Krut | Contribution à l'etude des robots parallèles légers, 3t-1r et 3t-2r, à forts débattements angulaires[END_REF]. A graphical layout is composed of:

-Two bars representing a base and a moving platform.

-Boxes representing the joints. Each box has a symbol indicating the type of joint. If the joint is actuated and contains a sensor (e.g., motor encoder) then the symbol is underlined. -Lines representing the bodies. Figure 1.3 shows the joint-oriented graphical layouts of the parallel robots in Fig. 1.2.

Classification 1.1.3.1 Kinematic Classification

Parallel robots are classified into three groups [START_REF] Merlet | Parallel robots[END_REF] based on their motion capacities: -Mechanism for translation: The Speed-R-Man robot [START_REF] Reboulet | A parallel redundant manipulator: Speed-r-man and its control[END_REF], the Orthoglide robot [START_REF] Wenger | Kinematic analysis of a new parallel machine tool : the Orthoglide[END_REF]. -Mechanism for rotation: The Agile Eye [START_REF] Gosselin | The agile eye: A high performance three-degreeof-freedom camera-orienting device[END_REF].

-Mechanism for translation and rotation: The Gough-Stewart robot [START_REF] Gough | Universal tyre test machine[END_REF][START_REF] Stewart | A platform with six degrees of freedom[END_REF], the Delta robot [START_REF] Clavel | Delta: a fast robot with parallel geometry[END_REF][START_REF] Clavel | Conception d'un robot parallèle rapide à 4 degrès de liberté[END_REF], the Quattro robot, the 3RRR robot [START_REF] Gosselin | The optimum kinematic design of a planar threedegree-of-freedom parallel manipulator[END_REF], the T3R1 parallel robot [START_REF] Gogu | Structural synthesis of parallel robotic manipulators with decoupled motions[END_REF].

Architectural Classification

Parallel robots are also classified into three groups [GLZ + 02, Ren03] based on their structure:

-Group 1: It contains a prismatic joint between the two bodies of each kinematic leg.

-Group 2: It contains a prismatic joint between the base and each kinematic leg.

-Group 3: It lacks prismatic joints. Table 1.1 shows examples of these three groups of robots.

Table 1.1 -Architectural Classification. Lighter: Parallel robots usually have lighter kinematic legs because the heavy actuators are often mounted on the base platform rather than inside the kinematic legs.

Faster: Parallel robots move faster and consume less energy than the serial robots, since their kinematic legs are lighter [START_REF] Clavel | Une nouvelle structure de manipulateurs parallèles pour la robotique legére[END_REF][START_REF] Merlet | Parallel robots[END_REF][START_REF] Tlusty | Fundamental comparison of the use of serial and parallel kinematics for machine tools[END_REF]. Consequently, for a given energetic expenditure, the acceleration of a parallel robot's end-effector is greater than a serial robot's end-effector.

Stronger: Against a disturbing force, a parallel robot's end-effector, which is supported by many kinematic legs in a closed-loop form, shows more rigidity than a serial robot's end-effector, which is supported through a single long and heavy kinematic leg [START_REF] Merlet | Parallel robots[END_REF].

The longer and heavier the kinematic leg is, the weaker it becomes. In addition, the disturbing force applies a compression for the kinematic elements of a parallel robot, while for the kinematic elements of a serial robot it applies a torsion.

More Accurate: Unlike serial robots, parallel robots can be more accurate. This is because errors in the assembly of the mechanism and errors made when controlling the mechanism average out rather than accumulating [START_REF] Merlet | Parallel robots[END_REF].

Disadvantages

In practice, however, parallel robots suffer from:

Limited Workspace & Singularity: Even though they are larger in size they have limited workspace [START_REF] Merlet | Parallel robots[END_REF]. This is because of the closed-loop connections between the kinematic legs. This workspace also gets smaller by the presence of singularities [START_REF] Park | Manipulability and singularity analysis of multiple robot systems: A geometric approach[END_REF], which makes them harder to settle for a given pose than a serial robot. Moreover, in these singularity positions, they completely lose their stiffness and become shaky.

Modeling: Their modeling is difficult because of the complex closed-loop structures and because of the existing passive joints [START_REF] Merlet | Parallel robots[END_REF]. The clearances and assembly errors in the passive joints decrease the precision of the positioning of the end-effector. Calibration cannot solve this totally.

Control: It is hard to compensate for the loss of accuracy in modeling, since the passive joints are not motorized. Furthermore, as a result of the coupling among the kinematic legs, the motion of the end-effector in the Cartesian space imposes a highly non-linear dynamic behavior on the parallel robot [START_REF] Dasgupta | A general strategy based on the Newton-Euler approach for the dynamic formulation of parallels manipulators[END_REF]. In industrial environments, parallel robots are usually controlled by single axis linear controllers. These controllers can take into account neither the influences of the kinematic legs on one another nor the non-linear behavior of the dynamics.

In a high-speed trajectory tracking task, consequently, parallel robots will loose accuracy [START_REF] Denkena | Advanced position and force control concepts for the linear direct driven hexapod palida[END_REF][START_REF] Terrier | Qualification of parallel kinematics machines in high speed milling on free form[END_REF].

The Duality of Parallel and Serial Robots

The fact that parallel robots use passive joints means that, in some respects, they behave oppositely to serial robots [START_REF] Waldron | Series-parallel dualities in actively coordinated mechanisms[END_REF][START_REF] Bruyninckx | Dualities between serial and parallel 321 manipulators[END_REF].

-From a configurational point of view:

A serial robot: The active joint values and the analytical forward kinematic model define uniquely the state of the serial robot [START_REF] Khalil | Modeling, identification and control of robots[END_REF]. There are usually several solutions to the inverse kinematic problem. These solutions may not have a closedform.

A parallel robot: The end-effector pose and the analytical inverse kinematic model define uniquely the state of the parallel robot [START_REF] Merlet | Parallel robots[END_REF] (except some of the parallel robots, e.g., 3RRR, 3RP R). The analytical inverse kinematic model is usually expressed in terms of the active joint values. Nevertheless, writing it in terms of the end-effector pose is more pertinent [START_REF] Dallej | 3D pose visual servoing relieves parallel robot control from joint sensing[END_REF][START_REF] Dasgupta | A general strategy based on the Newton-Euler approach for the dynamic formulation of parallels manipulators[END_REF]. Unlike serial robots, the forward kinematic model of a parallel robot does not always have a closed-form solution and it needs to be estimated numerically. Unfortunately, this may yield many solutions [START_REF] Merlet | An algorithm for the forward kinematics of general 6 dof parallel manipulator[END_REF][START_REF] Husty | An algorithm for solving the direct kinematics of the Gough-Stewart platforms[END_REF] and there are not very many parallel robots that are deliberately designed to have closed-form forward kinematic models [START_REF] Gogu | Fully-isotropic T3R1-type parallel manipulators[END_REF][START_REF] Wenger | Kinematic analysis of a new parallel machine tool : the Orthoglide[END_REF].

By mechanical construction, one can reduce this set of solutions (e.g., the Delta robot, the Quattro robot).

-From a control point of view: It is harder to master the behavior of the end-effector of a parallel robot than a serial robot. This is because of the two conflicting properties of a parallel robot: (i) the lack of a closed-form solution for a forward kinematic model that represents the actual mechanics of a parallel robot (i.e., manufacturing and assembly errors, joint clearances and backlashes, flexibilities); (ii) the end-effector can be moved only by controlling the actuators built in the base platform. -From a sensing point of view:

The previous two points of views (should) induce naturally this third one, duality in sensing.

Serial robots: Since active joints represent fully the configuration, using only the motor encoders for sensing is adequate for control of serial robots. Parallel robots: The full configuration of parallel robots, however, cannot be expressed easily by the active joints (except a few, e.g., the Orthoglide, the Delta). On the other hand, an end-effector pose can represent the full configuration of most of the parallel robots. Thus, sensing the end-effector pose of a parallel robot rather than its active joints is more adequate [START_REF] Dallej | 3D pose visual servoing relieves parallel robot control from joint sensing[END_REF] for control.

Metrological Redundancy

One of the easiest and the fastest and consequently preferred way to measure information from parallel robots is to use again the motor encoders as it is often done in serial robots. But this simplifies neither modeling (e.g., forward kinematics problem) nor the control of parallel robots as discussed above. Thus, it seems that different sensing techniques can affect fundamentally the performance of parallel robots.

Therefore, use of extra sensors (or so-called metrological redundancy) in modeling and control of parallel robots has appeared in the literature as complementary to actuation redundancy where extra motors added in the structure [START_REF] Marquet | A statistical approach for the computation of the forward kinematic model of redundantly actuated mechanisms[END_REF], [START_REF] Muller | A projection method for the elimination of contradicting control forces in redundantly actuated PKM[END_REF], [START_REF] Natal | Dual-space adaptive control of redundantly actuated parallel manipulators for extremely fast operations with load changes[END_REF].

In [START_REF] Cheok | Exact methods for determining the kinematics of a stewart platform using additional displacement sensors[END_REF], [START_REF] Baron | The isotropic decoupling of the direct kinematics of parallel manipulators under sensor redundancy[END_REF], [START_REF] Bonev | A simple new closed-form solution of the direct kinematics of parallel manipulators using three linear extra sensors[END_REF] and [START_REF] Parenti-Castelli | Determination of the actual configuration of the general Stewart platform using only one additional sensor[END_REF], redundant position sensors and the motorized joint encoders were used together to solve forward kinematic problems of parallel robots.

It is well known that the forward kinematics of the Gough-Stewart platform has 40 possible solutions [START_REF] Husty | An algorithm for solving the direct kinematics of the Gough-Stewart platforms[END_REF]. But if one adds sensors to the passive joints, then the solution may become straightforward (e.g., Gough-S. + length + direction of the legs).

Alternately to joint sensing, one can use exteroceptive sensing, such as vision [START_REF] Andreff | Vision-based control of a Gough-Stewart parallel mechanism using legs observation[END_REF], [START_REF] Dallej | 3D pose visual servoing relieves parallel robot control from joint sensing[END_REF]. In [START_REF] Andreff | Vision-based control of a Gough-Stewart parallel mechanism using legs observation[END_REF], vision observed the mechanism legs and replaced advantageously redundant position sensors by delivering the internal state of the mechanism in the Cartesian frame. This approach was then used to servo visually the leg directions of the Gough-Stewart platform rather than its Cartesian pose. Thus, this approach proposed an original vision-based kinematic modeling and control method of parallel robots based on observation of their legs.

In [START_REF] Dallej | 3D pose visual servoing relieves parallel robot control from joint sensing[END_REF], the Cartesian space control of the Gough-Stewart platform was performed using only vision (without using active joint positions). This was done by directly measuring the Cartesian end-effector pose of the Gough-Stewart platform by a camera observing a pattern fastened to the moving platform. Thus, the forward kinematic problem of the Gough-Stewart platform was completely removed and replaced by a computer vision system. This computer vision system gives a unique solution and makes the control of the Gough-Stewart type mechanisms simpler than they are.

In [START_REF] Marquet | Enhancing parallel robots accuracy with redundant sensors[END_REF], the potential of redundant sensors was also shown on a H4 parallel robot. An optical encoder and a vision system observed together the end-effector to yield a full pose information of the H4 parallel robot. Then, this measured end-effector pose was fused with the active joint positions. These fused redundant measurements enclose the H4 mechanism at both ends (from base and end-effector). Consequently, internal mechanical errors were compensated and the control accuracy was enhanced.

Modeling

The geometry, kinematics, mass distribution, and acceleration of a robot define its behavior.

Kinematic Modeling

It would be possible to adapt one of the existing methods for the kinematic modeling of serial robots [DH55, [START_REF] Khalil | A new geometric notation for open and closedloop robots[END_REF][START_REF] Gogu | Représentation des déplacements des robots[END_REF] for use with parallel robots. However, it would be preferable to use a method that takes into account the closed-loop constraints of a parallel robot [START_REF] Krut | Contribution à l'etude des robots parallèles légers, 3t-1r et 3t-2r, à forts débattements angulaires[END_REF][START_REF] Vivas | Contribution à l'identification et à la commande des robots parallèles[END_REF].

The Zeroth-Order Kinematic Models

These models describe the static relations between the configuration variables such as the tool (end-effector) pose X and the articular positions q of the robot:

Inverse Kinematic Model (IKM) This model describes the motor positions (q), given the end-effector pose (X) and the geometric parameters (ξ geo ) of the robot. For serial robots, IKM might offer several solutions:

q i = M 0 Is ( X, ξ geo ) , i = 1, . . . , n 2 (1.1)
On the other hand, for parallel robots except a few (e.g., 3RRR), IKM yields a unique solution:

q = M 0 Ip ( X, ξ geo ) (1.2)
where M 0 Is and M 0 Ip are the inverse kinematic models of a serial robot and of a parallel robot, respectively. The super-right script denotes the order of the kinematic models.

Closed-form expressibility:

The IKM of a parallel robot can be expressed easily in a closed form. But the IKM of a serial robot can be expressed hardly in a closed form.

Forward Kinematic Model (FKM)

This model describes the pose of the end-effector (X),

given the positions of the motors (q) and the geometric parameters of the robot (ξ geo ).

For serial robots, FKM yields a unique solution:

X = M 0 Fs ( q, ξ geo ) (1.3)
where X is a column-array representation of the end-effector pose. On the other hand, for parallel robots, FKM might offer several solutions:

X i = M 0 Fp ( q, ξ geo ) , i = 1, . . . , n 2 (1.4)
where M 0 Fs and M 0 Fp are the forward kinematic models of a serial robot and of a parallel robot, respectively.

Closed-form expressibility: The FKM of a serial robot can be expressed in a closed form, but the formulation of FKM of a parallel robot is more complicated (except a few, e.g., the Orthoglide, the Isoglide4-T3R1, GauntryTau, Delta-like). Use of additional sensors can either complete the missing information of the passive joints of a parallel robot to express its FKM in a closed form [START_REF] Bonev | A simple new closed-form solution of the direct kinematics of parallel manipulators using three linear extra sensors[END_REF] or eliminate the FKM by measuring directly the end-effector pose X of a parallel robot [START_REF] Dallej | 3D pose visual servoing relieves parallel robot control from joint sensing[END_REF].

Implicit Kinematic Model (ImplKM) [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF] Since previously mentioned forward and inverse kinematic models of robots might not exist as injective mappings (i.e., single inputsingle output), one would prefer a formulation of the kinematics under the form of an implicit kinematic model. This model combines the previous models into one implicit model, given the relations between the end-effector pose, the motor positions and the geometric parameters. It is a holonomic constraint for any relevant state of the variables:

M 0 φ ( X, q, ξ geo ) = 0 (1.5)
where M 0 φ is the implicit kinematic model of a robot. Redundant Implicit Kinematic Model (RImplKM) Here, we propose a more generic model by deduction from the implicit model (1.5). Assuming that the robot is equipped with different type(s) of sensor(s) providing redundant measurements r, we rewrite (1.5) as follows:

M 0 φR ( X, q, r, ξ sensor , ξ geo ) = 0 (1.6)

where ξ sensor is the parameter vector of the sensor(s) and M 0 φR is the redundant implicit kinematic model. Equation (1.6) can be written in a more compact form by assembling q and r in a single measurement vector s as follows:

M 0 φR ( X, s, ξ sensor , ξ geo ) = 0 (1.7)
where s contains all the signals of the sensors. The sensor(s) can be proprioceptive (e.g., motor encoders), or exteroceptive (e.g., a camera), or a combination of these. Consequently, this can allow s to be chosen as bijective (minimal) or surjective (redundant) to the end-effector pose. For example, the possible choices for s may be as follows:

s ∈ { q, {q, ρ}, {x 1 , x 2 , . . . , x k }, . . . , . . . } (1.8)

where ρ is a variable set completing the motor positions for a unique solution of the end-effector pose, and where {x 1 , x 2 , . . . , x k } is the set of unit vectors showing the 3D directions of the bodies in a robot, and so on. The rest of this thesis will extensively discuss this issue.

The First-Order Kinematic Models

The time differentiation of the previous kinematic models gives the differential kinematic models relating the Cartesian velocity of the end-effector pose to the speed of the motors, or more precisely to the velocity of the sensor signal s:

Inverse Differential Kinematic Model (IDKM) This model gives the speed of motors, given the end-effector pose and velocity, and as well as the geometric parameters of the robot:

q = ∂ M 0 I ( X, ξ geo ) ∂ X Ẋ (1.9) q = ∂ M 0 I ( X, ξ geo ) ∂ X L X ζ or q = M 1 I ( X, ξ geo ) L X ζ (1.10)
where M 1 I is the inverse differential kinematic model of a robot. This model is necessary for all the controls taking explicitly into account the non-linear couplings between the joints.

Closed-form expressibility:

The IDKM of a parallel robot can be usually expressed in a closed form. On the other hand, expressing IDKM of a serial robot is more complicated.

Forward Differential Kinematic Model (FDKM)

This model gives the velocity of the endeffector pose, given the positions and speeds of the motors and as well as the geometric parameters of the robot:

Ẋ = ∂ M 0 F ( q, ξ geo ) ∂ q q (1.11)
where X is a chosen representation for the end-effector pose. The previous forward differential kinematic model can be associated to the kinematic twist ζ, which defines the instantaneous motion of the end-effector with respect to the base of the robot. ζ is composed of a translational velocity υ and a rotational velocity ω. The chosen Ẋ can be expressed in terms of a representation dependant matrix L X relating the partial derivative of the pose to the kinematic twist ζ [Ang97]:

Ẋ = L X ζ = L X υ ω (1.12)
Then, one can rewrite (1.11) with the kinematic twist ζ as follows:

ζ = L -1 X ∂ M 0 F ( q, ξ geo ) ∂ q q or ζ = L -1 X M 1 F ( q, ξ geo ) q (1.13)
where M 1 F is the forward differential kinematic model of a robot. This model can be used for both simulation and prediction.

Closed-form expressibility:

The FDKM of a parallel robot cannot be expressed easily in a closed form. The FDKM is computed usually by inverting numerically the IDKM of a parallel robot. On the other hand, the FDKM of a serial robot can be expressed in a closed form.

Implicit Differential Kinematic Model (ImplDKM) [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF] The differentiation of (1.5) yields the complete implicit differential kinematic model:

∂ M 0 φ ( X, q, ξ geo ) ∂ X Ẋ + ∂ M 0 φ ( X, q, ξ geo ) ∂ q q = 0 (1.14)
or equivalently, M 1 φ( X) Ẋ + M 1 φ(q) q = 0 (1.15)

In the case of a flexible robot, one must add the term relating the variations of the geometric parameters:

∂ M 0 φ ( X, q, ξ geo ) ∂ X Ẋ + ∂ M 0 φ ( X, q, ξ geo ) ∂ q q + ∂ M 0 φ ( X, q, ξ geo ) ∂ ξ geo ξgeo = 0 (1.16)
or equivalently, M 1 φ( X) Ẋ + M 1 φ(q) q + M 1 φ(ξgeo) ξgeo = 0 (1.17)

This model has 3 matrices: the differential Cartesian kinematic matrix M 1 φ( X) ; the differential articular kinematic matrix M 1 φ(q) ; and the sensibility matrix M 1 φ(ξgeo) . Rewriting (1.15) and (1.17) in a matrix-vector form:

M 1 φ( X) M 1 φ(q) Ẋ q = 0 (1.18) M 1 φ( X) M 1 φ(q) M 1 φ(ξgeo)   Ẋ q ξgeo   = 0 (1.19)
we get the implicit differential kinematic model matrix M 1 φ and the flexible implicit differential kinematic model matrix M 1 φ f :

M 1 φ = M 1 φ( X) M 1 φ(q)
(1.20)

M 1 φ f = M 1 φ( X) M 1 φ(q) M 1 φ(ξgeo)
(1.21)

For a rigid robot, one can write from (1.18) the forward (M 1 F ) and the inverse (M 1 I ) differential kinematic models as follows:

M 1 F = -M 1 φ( X) † M 1 φ(q) , M 1 I = -M 1 φ(q) † M 1 φ( X)
(1.22) provided that M 1 φ( X) and M 1 φ(q) have full rank.

Redundant Implicit Differential Kinematic Model (RImplDKM) Similarly to the previous part (ImplDKM), the differentiation of (1.7) yields the complete redundant implicit differential kinematic model:

M 1 φR( X) Ẋ + M 1 φR(s) ṡ = 0 (1.23)
or equivalently,

M 1 φR( X) M 1 φR(s) Ẋ ṡ = 0 (1.24)
where M 1 φR( X) and M 1 φR(s) are the differential Cartesian kinematic matrix and the differential sensor(s) signal kinematic matrix, respectively. In the case of a flexible robot equipped with dynamic sensors (e.g., a moving and/or zooming camera), the terms relating the variations of the geometric parameters of the robot and the variations of the sensor parameters must be taken into account. Thus, the differentiation of (1.7) yields:

M 1 φR( X) Ẋ + M 1 φR(s) ṡ + M 1 φR(ξsensor ) ξsensor + M 1 φR(ξgeo) ξgeo = 0 (1.25)
or equivalently,

M 1 φR( X) M 1 φR(s) M 1 φR(ξsensor ) M 1 φR(ξgeo)     Ẋ ṡ ξsensor ξgeo     = 0 (1.26)
where M 1 φR(ξsensor ) and M 1 φR(ξgeo) are the differential sensor kinematic matrix and the sensibility matrix, respectively.

Singularities

Equation (1.17) yields three type of singularities [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF]: Articular Singularity: It happens when the differential articular kinematic matrix is singular: {(X, q, ξ geo )|M 1 φ(q) (X, q, ξ geo ) q = 0} (1.27) and as well as where a motion of the active articular joints neither changes the endeffector pose nor deforms the robot.

Cartesian Singularity: It happens when the differential Cartesian kinematic matrix is singular: {(X, q, ξ geo )|M 1 φ(X) (X, q, ξ geo ) Ẋ = 0} (1.28) and as well as where a motion of the end-effector neither changes the active articular positions nor deforms the robot.

Sensibility Singularity: It happens when the sensibility matrix is singular:

{(X, q, ξ geo )|M 1 φ(ξgeo) (X, q, ξ geo ) ξgeo = 0} (1.29)

In these configurations, deformations or variations in the geometric parameters of the robot do not have any effect on the kinematic behavior of the robot. Reconfigurable robots are not considered here.

In the rigid body assumption, the articular and cartesian singularities correspond respectively to the well known serial and parallel singularities of parallel robots [START_REF] Gosselin | Singularity analysis of closed-loop kinematic chains[END_REF][START_REF] Chablat | Working modes and aspects in fullyparallel manipulators[END_REF].

Dynamic Modeling

A dynamic model relates the active forces acting on a robot to the accelerations they cause, or the other way around. These active forces can be both moments in rotation and forces in translation.

Inverse Dynamic Model (IDM) An inverse dynamic model computes the torques and/or forces that the actuators of the robot must deliver to make the end-effector move in a certain way. It is used for control of robot motions and forces:

Γ = A( s ) s + h( s, ṡ ) + Γ f (1.30)
where Γ is the force vector of the actuators, A is the inertia matrix of the robot, h is the vector of the centrifugal, the Coriolis and the gravity forces, Γ f is the vector of the friction forces, and s is the state variable vector of the robot. In the case of a serial robot, the inverse dynamic model is usually written in terms of the joint positions q, because the joint positions uniquely define the posture of a serial robot:

Γ = A( q ) q + h( q, q ) + Γ f (1.31)
or equivalently, Γ = IDM ( q, q, q, ξ geo , ξ dyn ) (1.32)

where ξ dyn denotes the dynamic parameters of the robot. Since the methods for modeling of parallel robots are adopted from serial robots, the inverse dynamic model of a parallel robot is generally written in terms of the articular positions q [KD02] too. It is, however, preferable to write the inverse dynamic model of a parallel robot with the end-effector pose X, since in most cases it is the end-effector pose which defines uniquely the posture of a parallel robot:

Γ = IDM ( Ẍ, Ẋ, X, ξ geo , ξ dyn ) (1.33)
This inverse dynamic model is used for control purposes and ideally it should be as precise and as simple as possible.

Forward Dynamic Model (FDM)

A forward dynamic model computes the accelerations of the state variables for given forces, positions and velocities. It is also known as a direct dynamic model. It is mainly used for simulation. A forward dynamic model is linearly extracted from (1.30) as follows:

s = A -1 (s) (Γ -h(s, ṡ) -Γ f ) (1.34)
or, equivalently, it can be noted as follows:

s = F DM ( Γ, ṡ, s, ξ geo , ξ dyn ) (1.35)
For serial robots, (1.35) is again written in terms of the joint positions q, since the joint positions define uniquely the posture of a serial robot:

q = F DM ( Γ, q, q, ξ geo , ξ dyn ) (1.36)
And for parallel robots, (1.35) is again written in terms of the end-effector pose X, since in most cases the end-effector pose defines uniquely the posture of a parallel robot:

Ẍ = F DM ( Γ, Ẋ, X, ξ geo , ξ dyn ) (1.37)
Implicit Dynamic Model (ImplDM) Here, we introduce an implicit dynamic model which actually corresponds to the equations of motion (EoM) of a robot. We note it as follows:

0 = ImplDM ( Γ, s, ṡ, s, ξ sensor , ξ geo , ξ dyn ) (1.38)
where s is the set of the measured variables which can express uniquely the state of a robot. The definition of s is similar to (1.8), and here we augment it with the end-effector pose X of a robot:

s ∈ { X, q, {q, ρ}, {x 1 , x 2 , . . . , x k }, . . . , . . . } (1.39)
where again ρ is a complementary set of variables enriching the motor positions for the unique solution of a robot posture, and {x 1 , x 2 , . . . , x k } is the set of unit vectors showing the 3D directions of the bodies in a robot, and so on.

Dynamic Modeling Methods of Serial Robots

Many methods exist for dynamic modeling of serial robots, such as the Euler-Lagrange method, the recursive Newton-Euler method, the d'Alembert method and Kane's method. Now, we shall describe briefly these methods.

Euler-Lagrange Method

The Euler-Lagrange method [START_REF] Louis | [END_REF] exploits the principle of conservation of energy in a mechanism to derive the dynamic equations. The equations are in analytic and closed-form. The Euler-Lagrange equations are obtained by differentiating the Lagrangian function:

L(q , q) = T (q , q) -V (q) (1.40)
which yields:

d dt ∂ L ∂ q - ∂ L ∂ q = d dt ∂ T ∂ q - ∂ T ∂ q - ∂ V ∂ q = Γ (1.41)
where T and U are the kinematic and potential energies. This method is good for study of the dynamic properties and analysis of control schemes. However, since it is an energy-based method, it is geometrically less intuitive and it is reported to be computationally inefficient.

Newton-Euler Method / Luh-Walker-Paul's Algorithm

The Newton-Euler method [START_REF] Paul | Robot manipulators: mathematics, programming and control[END_REF][START_REF] Luh | On-line computational scheme for mechanical manipulators[END_REF] exploits the balance of forces and torques in a mechanism to derive the dynamic equations. The equations are in numeric and recursive-form. This method uses the Newtonian equations of motion:

f = m a , τ = I T ω + ω × (I T ω) (1.42)
where f , τ , m, a, ω and I are the linear momentum, the angular momentum, the mass, the linear acceleration, the angular velocity and the inertia of the body, respectively. The method calculates the dynamics through two loops:

-Forward Loop: moves from base to end to evaluate the velocities and the accelerations.

-Backward Loop: moves from end to base to compute the forces and torques. It is systematic and efficient for real time implementation of the control schemes.

d'Alembert Method / Principle of Virtual Work

This method exploits the principle of conservation of virtual work [START_REF] Le Rond D'alembert | [END_REF] in a mechanism to derive the dynamic equations. It states that the sum of differences in work, resulting from either virtual forces acting through a real displacement or real forces acting through a virtual displacement, is zero. The displacement is infinitesimal and is consistent with constraints on the system:

0 = i (f i -m i a i ) T δx i (1.43)
where f is an applied force, m is the mass of a particle, a is the acceleration of a particle, δx is an infinitesimal displacement consistent with the constraints, and i enumerates a particular particle in the system.

Kane's Method

Kane's method [START_REF] Kane | Dynamics: Theory and applications[END_REF] actually has the Lagrange form of d'Alembert principle and offers many advantages, while obtaining the equations of motion of a system. It needs neither the use of energy functions nor consequently their differentiation problem. It uses the generalized forces where the non-contributing forces are directly eliminated by projection. It allows the choice of different variables other than the generalized coordinates, which can have a significant effect on the resulting equations of motion. This method is also more useful for multi-body systems. Now, we introduce briefly the basic equations in Kane's method on which this work is based. Further details will be given in Chapter 2.

Let {f * ur , f ur }| n r=1 be respectively the generalized inertia forces and generalized active forces for a system with n degrees of freedom, and be given as:

f * ur = p k=1 ∂v c k ∂u r T f in k + ∂ω k ∂u r T τ in k , r = 1, . . . , n (1.44) f ur = p k=1 ∂v c k ∂u r T f k + ∂ω k ∂u r T τ k , r = 1, . . . , n (1.45)
where p is the number of rigid bodies, u r is a generalized speed, { ∂vc k ∂ur , ∂ω k ∂ur } are so-called partial linear and angular velocities, {f in k , τ in k } are the inertia force and the inertia torque generated by the accelerated masses and inertias acting on the k th body, {f k , τ k } are the resultant force and the resultant torque that are equivalent to a set of contact and distance forces acting on the k th body. In order to have the equations of motion, namely Kane's dynamical equations, one just needs to add the generalized inertia and active forces and equate them to zero:

f * ur + f ur = 0 , r = 1, . . . , n (1.46)

Dynamic Modeling Methods of Parallel Robots

All the methods for serial robots can be adapted to parallel robots. In addition to those methods, there exist one method designed for parallel robots in particular. Now, we explain briefly this method.

Khalil's Method

Khalil proposed [START_REF] Khalil | General solution for the dynamic modeling of parallel robots[END_REF] to obtain the equations of motion of a parallel robot by extending the systematic approach of the modeling of a serial robot. This approach proceeds as follows: (i) Firstly, each of the kinematic legs of a parallel robot is considered as an independent serial robot and the inverse dynamic model of this kinematic leg is written using one of the methods proposed for modeling of serial robots; (ii) Then, the equilibrium of all the efforts (torques and forces) applied on the moving platform is calculated. These efforts come from each of the kinematic legs, from the acceleration of the moving platform and from the external forces (weight, contact, etc.); (iii) Finally, this total effort collected on the moving platform is projected onto the active joints.

This approach is strongly intuitive for handling of the kinematic constraints, because it allows each leg to contribute for the total effort on the moving platform:

Γ = F DKM T robot   W platf orm + N legs i=1 J T i IDKM T leg(i) IDM leg(i)   (1.47)
where F DKM robot is the forward differential kinematic model of the parallel robot, W platf orm is the wrench vector for the dynamics of the moving platform, J i is the Jacobian matrix relating the velocity of the terminal point of the i th leg to the end-effector velocity, IDKM leg(i) is the inverse differential kinematic model of the i th leg, IDM leg(i) is the inverse dynamic model of the i th leg. The IDM leg(i) can be computed with any of the existing methods for serial robots.

Control

Motion control is concerned with moving the end-effector of the robot to the desired position with a desired velocity profile. Motion control is usually performed by feeding back the state of the robot, which is called either closed-loop control or feedback control. Closed-loop motion control of robots is either at kinematic level or dynamic level. In kinematic control the active forces and masses are not taken into account. However, when a high-speed motion is considered, these forces and masses severely perturb the movement of the robot. And at this point a dynamic control, which can handle these perturbations, is required. Closed-loop control is performed either directly in a sensor space or in an augmented space supported by some auxiliary models. In the next two subsections, we will present kinematic and dynamic controls.

Kinematic Control

Some of the well known sensor-based kinematic controls are joint-space kinematic control, Cartesian-space kinematic control, and visual servoing. Control in the joint space is a sensorspace control where the error is regulated over the measurements supplied by the motor encoders. In the case of Cartesian-space control, two scenarios are possible: (i) if the Cartesian end-effector pose is measured directly by a sensor, then it can be considered as sensor-space control; (ii) if the Cartesian end-effector pose is computed with the help of an additional algorithm, then it can be considered as a model-space control. Lastly, visual servoing is a specific sensor-space control where the sensor is a camera and the error is defined with some extracted image features.

In a kinematic control, the control input for a robot is the velocity of the articular positions q, and the observed output is usually the articular positions q. Therefore, the robot is generally considered as an integrator. Figure 1.4 shows the block representation of a robot in a kinematic control.

Figure 1.4 -Robot model is assumed to be an integrator in a kinematic control.

In a sensor-space kinematic control [START_REF] Samson | Robot control: The task function approach[END_REF] (see Fig. 1.5), let X be a representation of the pose of the end-effector of the robot at time t and let s be a sensor signal depending on X and as well as on t:

s = s(X(t), t) (1.48)
then, the error function e for the task is given as below:

e = e(X(t), t) = C ( s(X(t), t) -s * (t) ) (1.49)
where C is a combination matrix of the current sensor signal s and the desired value of the sensor signal s * (t). Afterwards, the control law that will minimize the error is built upon the following assumptions: (i) the sensor signal s(X(t), t) is observable during the task; (ii) the variations of the matrix C are negligible, Ċ ≪ I, where I is an identity matrix; (iii) the reference trajectory s * (t) corresponds to reachable poses; and (iv) the sensor signal s(X(t), t) is an injective mapping from SE(3) to the sensor space.

Taking the previous assumptions into consideration, the differentiation of the error function yields:

ė = C ṡ -C ṡ * (1.50)
where the variation in the sensor signal s can be expressed as a function of the relative kinematic twist (ζ) of the robot pose with respect to the sensor, and of the observed scene (e.g., static or dynamic properties of shapes, colors, etc.):

ṡ = ∂ s ∂ X Ẋ + ∂ s ∂ t = L s ζ + ∂ s ∂ t (1.51)
with L s = ∂ s ∂ X L X the interaction matrix that relates the variations of the sensor signal s to the relative kinematic twist ζ of the end-effector of the robot, and L X the matrix that relates the variations of the pose of the end-effector X of the robot to the relative kinematic twist ζ. Then, the differentiation of the error function (1.50) can be rewritten as follows:

ė = C L s ζ + C ∂ s ∂ t -C ṡ * (1.52)
Assuming that the robot is a pure integrator, an exponential convergence for the error is imposed by setting its derivative to be equal to ė = -λ e with λ > 0. Hence, one extracts the kinematic twist ζ as below:

ζ = ( C L s ) -1 -λ e -C ∂ s ∂ t + C ṡ * (1.53)
and by using C = L s † as the pseudo-inverse of an estimated L s , the kinematic twist ζ is calculated as follows:

ζ = ( L s † L s ) -1 -λ e -L s † ∂ s ∂ t + L s † ṡ * (1.54)
Since the real interaction matrix L s is not known, its estimation L s should be as accurate as possible so that the multiplication L s † L s can be assumed to yield the identity matrix and so that the so-called pseudo-control vector becomes:

ζ = -λ e -L s † ∂ s ∂ t + L s † ṡ * (1.55) Assuming that ∂ s ∂ t = 0 , ṡ * = 0 (1.56)
the pseudo-control vector ζ in (1.55) gives:

ζ = -λ e (1.57)
The stability of the pseudo-control vector ζ in (1.57) can be analyzed by substituting it into the error dynamics in (1.52) with the assumptions in (1.56):

ė = -λ ( L s † L s ) e (1.58) if the multiplication ( L s † L s
) is a positive-definite matrix, then the pseudo-control law is stable in the sense of Lyapunov. The last step is the conversion of the pseudo-control law to the actual control input q of the robot:

q = M 1 I ζ (1.59)
where M 1 I is an approximate inverse differential kinematic model (IDKM) that relates endeffector kinematic twist (pseudo-control law) to the velocities of the active joints (control input). And again for stability, the multiplication of the approximated IDKM with the forward differential kinematic model M 1 F should also be a positive-definite matrix (

M 1 I M 1 F > 0).
Figure 1.5 -Sensor-space kinematic control. s is the sensor signal, ζ is the pseudo-control law, IDKM is the inverse differential kinematic model computed with an estimated pose of the end-effector X, and q is the actual control input of the parallel robot.

When the regulation of the sensor signal s is not enough to achieve the task, one calls for a model-space control approach (see Fig. 1.6) to enrich the sensor signal s with the known geometry of the scene (robot geometry, object geometry, etc.) so that the task can be accomplished. This model can be the forward kinematic model (FKM) of the robot, an algorithm for computing the relative pose of the end-effector of the robot, and etc.

In order to perform the kinematic control, the inverse differential kinematic model needs the estimated end-effector pose X. The estimated end-effector pose X can be obtained from one of these options:

-X can be sometimes directly measured (laser tracking, specific motions).

-X = X * (t) can be chosen as equal to the current desired end-effector pose.

-X = argmin X ss(X, t) can be computed by minimizing the error between the measured sensor signal s (which is an image of the current end-effector pose) and the initial guess of the sensor signal through the previously known end-effector pose. -X = argmin X q -IKM (X, ξ geo ) can be computed by minimizing the error between the measured motor positions q (which is the map of the current end-effector pose via Figure 1.6 -Model-space kinematic control. s is the sensor signal, ζ is the pseudo-control law and IDKM is the inverse differential kinematic model computed with an estimated pose of the end-effector X, and q is the actual control input of the parallel robot. IKM) and the initial estimate of the motor positions through the previously known endeffector pose. or one can use another convenient method.

Dynamic Control

The computed-torque control method governs the dynamic behavior of a robot based on its inverse dynamic model [START_REF] Luh | Resolved acceleration control of mechanical manipulators[END_REF][START_REF] Paul | Robot manipulators: mathematics, programming and control[END_REF] (see Fig. 1.8). It computes the required actuator forces which correspond to the current dynamic state of the robot. It decouples the non-linear dynamic behavior of the robot and linearizes its control. Here, we recall this method which will be later employed for control purposes. In a dynamic control, the control input is the acceleration, and the observed output is usually the position of the robot. Therefore, a robot in a dynamic control is considered as a double integrator. Figure 1.7 shows the block representation of a robot in a dynamic control.

Figure 1.7 -Robot model is assumed to be a double integrator in a dynamic control.

The computed-torque control method can be simply illustrated using the Lagrange formulation of the inverse dynamic model which is expressed by means of joint positions q, brought from (1.31), as follows:

IDM : Γ = A(q) q + h(q, q) + Γ f (1.60)
where again Γ is the force vector of the actuators, A is the inertia matrix of the robot, h is the vector of the centrifugal, the Coriolis and the gravity forces, Γ f is the vector of the friction forces.

In an ideal case, the control law u is equal to the acceleration q of the sensor signal. The control law u is usually obtained with a proportional-derivative control term u P D and with a feed-forward term of the desired signal acceleration u f f :

u = u f f + u P D (1.61)
where

u f f = q * , u P D = K d ė + K p e (1.62)
and where q * is the desired acceleration, K p , K d are the proportional and derivative positive control gains, e = qq * is the error between the measured signal and the desired reference signal.

Knowing that in ideal case u = q, the behavior of the error is characterized by the following second order form:

ë + K d ė + K p e = 0 (1.63)
In the error dynamics, the oscillation and damping can be regulated by tuning the control gains as follows:

K p = ω 2 , K d = 2 ζ ω (1.64)
with ζ a fixed damping ratio (usually between 0.9 and 1) and ω a cut-off frequency which is fixed to the highest value with respect to the mechanical resonance frequency. Actually, the behavior of the real robot can be written in the following form [START_REF] Khalil | Modeling, identification and control of robots[END_REF]:

Γ = ( A(q) + A) q + ( h(q, q) + h) + ( Γ f + Γ f ) (1.65)
where hats ( • ) are for the estimations and where tildes ( • ) are for the errors of the estimations. Since we calculate the dynamics of the robot with the estimated models, the inverse dynamic model is rewritten as below:

Γ = A(q) u + h(q, q) + Γ f (1.66)
This dynamic model will perturb the system due to the errors in the modeling. If it is necessary to improve the control of the robot, then one must identify the model parameters well [OP01, SGT + 97]. If this does not solve the problem, either robust control methods [BHC00, HBS00, VPP03, LSCH03, BAP98, YOKN98] or adaptive control methods [START_REF] Imm Lammerts | Adaptive computed reference computed torque control of flexible manipulators[END_REF] can be used. Figures 1.8 and 1.9 show the joint-space computed-torque control and the Cartesianspace computed-torque control block diagrams, respectively. The joint-space computed-torque control is better suited for serial robots, while the Cartesian-space computed-torque control is better suited for parallel robots.

Figure 1.8 -Joint-space computed-torque control. q is the motor positions vector and u = q is the control signal. This control is more convenient for serial robots.

Figure 1.9 -Cartesian-space computed-torque control. X is the end-effector pose and u = Ẍ is the control signal.

This control is more convenient for parallel robots.

Identification

Identification process looks for the most accurate values of model parameters to imitate better the real robot behavior. A model of a real robot is usually built on its CAD model assuming that the dimensions and the assembly of the robot are perfect. In reality, however, there are always imperfections in the fabrication and assembly of the pieces, which mean that the model is of a lower quality than its expected accuracy. Consequently, a model identification is a necessary step for better control of robots. There are two types of model parameters to be identified: geometric and dynamic parameters of the robot.

Geometric Identification

A good identification of the geometric parameters ξ geo of the robot improves the precision of the estimated end-effector pose via FKM. Geometric parameters are usually obtained through a non-linear minimization. There are two steps that should be taken into consideration before the identification:

-Configuration decision: Firstly, the number (n) of configurations (static states) should be large enough to span the workspace of the robot as much as possible. -Measurements: Afterwards, the corresponding measurement signals of these configurations should be collected { s m i , s m i } where i = 1, . . . , n. For instance s m i = X m i and s m i = q m i or vice versa. Each of the pairs { s m i , ξ geo } and { s m i , ξ geo } should express a static state of the robot. Once the initial steps are completed, the ξ geo is computed (see Fig 1 .10) by minimizing the following error function:

ξ geo = arg min ξgeo error (s m i , s e i ) , i = 1, . . . , n (1.67)
where s e is the estimated signal given by the model:

s e i = M odel( s m i , ξ geo ) (1.68)
Figure 1.10 -Geometric parameter identification. { s m , s m } and s e are the measured and the estimated signals,

respectively. The ξgeo is the geometric parameters vector. The box "sensors" can contain different sensors such as motor encoders, laser-tracker, camera, etc.

For a serial robot, the forward kinematic model (FKM) is analytically defined and it is usually used as a model for minimization through the measured end-effector pose and the articular positions:

s m i = q m i , s m i = X m i , M odel : F KM ( q m i , ξ geo ) = X e i
(1.69)

ξ geo = arg min ξgeo n i X m i -X e i 2
(1.70)

On the other hand, for a parallel robot, the inverse kinematic model (IKM) is analytically defined and it is usually chosen as a model for minimization [START_REF] Besnard | Calibration of parallel robots using two inclinometers[END_REF] through the measured end-effector pose and the articular positions:

s m i = X m i , s m i = q m i , M odel : IKM ( X m i , ξ geo ) = q e i (1.71) ξ geo = arg min ξgeo n i q m i -q e i ) 2 (

Dynamic Identification

The computed-torque control has to use an inverse dynamic model (IDM) based on the dynamic parameters ξ dyn and previously identified geometric parameters ξ geo of the robot. That is to say, well identified dynamic parameters ξ dyn improve the trajectory tracking performance of the robot. There are three steps that should be taken into consideration before the identification:

-Trajectory design: It is important to design a trajectory which spans the workspace with different velocities so that it can excite all the parameters in the model [START_REF] Gautier | Exciting trajectories for the identification of base inertial parameters of robots[END_REF]. -Fast sensor(s): Since the identification process requires exciting (high frequency) trajectories, the sensors must be able to take measurements quickly and accurately. -Velocity and acceleration measurements: Most of the robots are equipped with sensors which are reasonably precise for position information. However, it is somewhat difficult to obtain precise velocity and acceleration information. Usually, they are computed by successive numerical differentiation of the position signal which introduces high frequency noises. This, especially, makes the acceleration signal impractical. So, the position signal should be passed through a low-pass filter before the numerical differentiations [START_REF] Khalil | Modeling, identification and control of robots[END_REF][START_REF] Guegan | Contribution à la modélisation et l'identification dynamique des robots parallèles[END_REF][START_REF] Vivas | Contribution à l'identification et à la commande des robots parallèles[END_REF][START_REF] Gautier | Extended Kalman filtering and weighted least squares dynamic identification of robot[END_REF]. Dynamic parameters can be obtained either through minimization methods (e.g., non-linear constrained optimization [START_REF] Farhat | Dynamic parameter identification of parallel robots considering physical feasibility and nonlinear friction models[END_REF], interval analysis [START_REF] Poignet | Robust estimation of parallel robot dynamic parameters with interval analysis[END_REF]) similar to geometric identification (see Fig 1 .11) or through solving the simple linear system [START_REF] Abdellatif | Direct identification of dynamic parameters for parallel manipulators[END_REF] given below:

s m = W s m , ṡ m , s m , ξ geo ξ dyn (1.73)
where • implies that the associated variable is optional, W is an observation matrix, function of the measured signals { s m , ṡ m , s m } and previously identified geometric parameters ξ geo . And s m is an output signal measured by another sensor. Linear system (1.73) is written from a M odel of the robot which is noted as follows:

s e = M odel( s m , ṡ m , s m , ξ geo , ξ dyn ) (1.74)
where s e is the estimated output signal corresponding to the measured output signal s m . This M odel can be either an inverse dynamic model (IDM), or an energy model (EM), or a power model (PM) [START_REF] Khalil | Modeling, identification and control of robots[END_REF]. If it is an IDM, then (1.73) takes the form below:

Γ m = W IDM s m , ṡ m , s m , ξ geo ξ dyn (1.75)
where Γ m is the measured actuators' forces. If it is an energy model or a power model, this time the acceleration signal does not appear in the observation matrix:

(Γ m ) T q = W EM s m , ṡ m , ξ geo ξ dyn (1.76) (Γ m ) T q = W P M s m , ṡ m , ξ geo ξ dyn (1.77)
For a parallel robot, it may be more pertinent to perform the identification through the end-effector pose measurements { X m , Ẋm , Ẍm }:

s m = W ( X m , Ẋm , Ẍm , ξ geo ) ξ dyn (1.78)
because the end-effector pose can be obtained by vision (an exteroceptive sensor) and because it is analytically simpler to write the models from the Cartesian space to articular space. The MICMAC project first started in kinematics, then progressed to dynamics. It did so in two parts: firstly modular MICMAC and secondly integrated MICMAC. The modeling, control, and identification modules of parallel robots have been often treated separately so far by being adapted from the customary approaches of the serial robots. It can be, however, difficult to apply these modules for parallel robots as they do not have sensors in their passive joints. The modular MICMAC makes these processes easier by using vision sensor(s) to complete the missing Cartesian geometry of the mechanism. This is, however, still not enough for efficient control of parallel robots. That is because parallel robots are a lot faster and much more architecturally complex than serial robots. Furthermore, parallel robots work in duality, unlike serial robots. Consequently, it would be better to develop new methodologies and sensors for precise and simple control of parallel robots. On the other hand, the integrated MICMAC is concerned with the optimization of modeling, control and identification modules regarding the performance of a mechanism.

In next two subsections, we introduce briefly the modular MICMAC and the integrated MICMAC approaches.

Modular MICMAC

The following people have made important contributions to the modular MICMAC. Their works are discussed in chronological order: (i) In the first part of his Ph.D. thesis [START_REF] Renaud | Apport de la vision pour l'identification géométrique de mécanismes parallèles[END_REF], P. Renaud worked on geometric identification of parallel robots based on observation of the end-effector pose by vision; (ii) In the first part of his Ph.D. thesis [START_REF] Dallej | Contribution à un modèle générique pour l'asservissement visuel des robots parallèles par observation des éléments cinématiques[END_REF], T. Dallej worked on kinematic control of parallel robots based on observation of the end-effector pose by vision; (iii) In his Ph.D. thesis [START_REF] Paccot | Contribution à la commande dynamique référencée capteur de robots parallèles[END_REF], F. Paccot worked on dynamic modeling and Cartesian control of parallel robots based on observation of the end-effector pose by fast vision. But the modeling and visual feedback were neither optimal and nor fast enough; and (iv) In his Ph.D. thesis [START_REF] Dahmouche | Contribution à l'estimation de mouvement 3D et à la commande par vision rapide: Application aux robots parallèles[END_REF], R. Dahmouche worked on fast sensor-space (2D visual servoing) dynamic state estimation of parallel robots based on observation of the end-effector pose with sequential acquisition, and its integration into Paccot's work [START_REF] Paccot | Contribution à la commande dynamique référencée capteur de robots parallèles[END_REF].

Moreover, P. Renaud and T. Dallej have evolved their works, in the rest of their theses, and contributed to the integrated MICMAC part, too.

Integrated MICMAC

In [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF], N. Andreff proposed to observe visually the legs of parallel robots for efficient modeling, control, and identification purposes. Observation of the legs unifies modeling, control, and identification modules into a single control-oriented framework. In this controloriented framework, almost all the expressions are merged through the measurements of the leg directions. These measurements of the leg directions replace many long expressions, thus yielding simplified and more precise models regarding the sensor accuracy. It is shown that it is possible to regulate the Cartesian space too while the leg directions are controlled. In the case of a parallel robot, when the directions of the legs are followed, we find a unique solution for the end-effector pose defining the state. The most attractive side of this approach that the 3D leg directions can be directly calculated from 2D image measurements. So why not use the leg directions (3D lines) for control of parallel robots? Andreff's main objective in [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF] was to build: « a vision-based control-oriented framework for parallel robots based on their leg observations » at kinematic and dynamic levels.

On the way to the main objective, the following mid-objectives are accomplished: -Integration of the modeling, control, and identification modules at the kinematic level based on observation of the leg edges [Ren03, Dal07

Complementary Background

In this section, we recall some background information which forms the fundamental basics of the MICMAC project in complement to the above state-of-the-art. Before giving these basics, in Figure 1.5.4, we outline the evolution of the MICMAC project up to now and we highlight the rest of the main objectives once more. These basics will play a crucial role in the solution of the remaining objectives.

Vision

Let c P = [ c X, c Y , c Z] T be a point defined in the camera frame F c . Then, its projection c p = [ c x, c y, 1] T on the plane c Z = 1 (see Fig. 1.13) is defined by [START_REF] Faugeras | Three-dimensional computer vision -a geometric viewpoint[END_REF]:

c p α c P (1.79)
where α means « proportional to ». Then, the point c p is converted from normalized coordinates to pixel coordinates im p = [u, v, 1] T with the intrinsic camera matrix K:

im p = K c p (1.80)
Assuming that the pixels in the camera sensor are rectangular and are perfectly aligned, the intrinsic matrix K is given as below:

K =   f u 0 u o 0 f v v o 0 0 1   f u > 0 f v > 0 (1.81)
where (f u , f v ) are the effective focal lengths (in pixel units) of the camera and where (u o , v o ) are the coordinates (in pixel units) of the image center. Consequently, the perspective projection model is as follows: im p α K c P (1.82) Figure 1.13 -Perspective projection of a point P onto the image plane.

Lines and Robotic Legs

Here in this section, we revise a 3D line representation, its perspective projection, and we discuss how lines can be adapted for the sensing and representation of the robotic legs.

A 3D Line and Its Projection:

A 3D line L can be uniquely represented in the Euclidian space by Plücker coordinates [START_REF] Plucker | On a new geometry of space[END_REF][START_REF] Semple | Algebraic projective geometry[END_REF]:

(L) : ( x, n ) (1.83)
where x is the unit vector showing the direction of the 3D line L, and n is a normal vector to the plane, which contains the line L and passes through the origin of the reference frame (e.g., a camera frame). This plane is called the interpretation plane. The normal vector n can be expressed using any 3D point P located on the line L:

n = P × x (1.84)
In [START_REF] Andreff | Visual servoing from lines[END_REF], it was suggested that the line L can be represented by decomposing the normal vector n to the depth n of the line L from the origin of the reference frame and to the unit normal vector n of the interpretation plane (n = n n):

(L) : ( x, n, n ) (1.85)
If we want to express a different line, L, lying on the same interpretation plane, the previous representation can be rewritten as follows [START_REF] Andreff | Asservissement visuel à partir de droites et auto-étalonnage pincecaméra[END_REF]:

( L) : ( x, n, n ) (1.86)
where x and n are the direction and the depth of the line L, respectively. Since L is on the same interpretation plane, the unit normal n does not change. Now, consider the intersection of the interpretation plane with the image plane. This gives a unique projection line ℓ (see Fig. 1.14) corresponding to the perspective projections of all the 3D lines (except the line which is orthogonal to the image plane) lying on the interpretation plane. Since ℓ itself is also on the interpretation plane, then it too will be expressed with the same n:

(ℓ) : ( x ℓ , n, n ℓ ) (1.87) where x ℓ and n ℓ are the direction and the depth of the projection line ℓ on the image plane. Consequently, in the representation of the projection line ℓ of any 3D line L, we lose the direction x and the depth n but we still keep in hand the plane unit normal vector n. This means that it should be possible to recover the unit normal vector n from the image. Now, the question is: How should one go about doing so? On the image plane, we observe the pixel points { im p i , i = 1, . . . , m ≥ 2 } lying on the projection line ℓ. Any of these points holds the line equation:

im p i T im n = 0 (1.88)
The solution for im n (in pixel coordinates) is in the null space of the linear system written from (1.88):

   im p 1 T . . . im p m T    (1.89)
Figure 1.14 -3D Line representation and its projection.

The above system can be solved for im n either with QR decomposition [START_REF] Horn | Matrix analysis[END_REF] (algebraic, better for real-time considerations) or with SVD [START_REF] Horn | Matrix analysis[END_REF] (iterative but more precise). Afterwards, substituting (1.80) into (1.88) yields:

c p i T K T im n = 0 (1.90)
and knowing that the line equation can be written in any space as long as the variables are also expressed in the same space:

c p i T c n = 0 (1.91)
we can recover c n (in metric coordinates) from (1.90) and (1.91) as follows:

c n = K T im n K T im n (1.92)
and we can similarly write im n in terms of c n as below: where x shows the direction axis, n x is the normal vector of the interpretation plane passing through the direction axis x of the leg and the optical center of the camera, d x is the shortest distance between the direction axis and the optical center, and shape gives information on the geometric form of the leg (e.g., cylinder). When a leg is projected onto the image plane, we see its visual contours (left and right side edges) located at the borders between the visible and invisible parts of the leg. Figure 1.16 illustrates projection of prism-shaped legs.

im n = K -T c n K -T c n (1.
Figure 1.16 -Perspective projections of the hexagon and cylinder prisms.

These visual contours correspond to the projection lines { ℓ Lef t , ℓ Right } of the two 3D parallel lines { L Lef t , L Right } on the leg surface. Then, we can obtain the unit normal vectors { n Lef t , n Right } of the interpretation planes as explained in the previous Subsection 1.5.4.2.1. These 3D parallel lines { L Lef t , L Right } are also parallel to the direction axis x of the leg. That is to say, the left and right side interpretation plane unit normal vectors are orthogonal to the direction axis:

n T Lef t x = 0 , n T Right x = 0 (1.95)
So, it is possible to calculate the 3D direction axis x of the leg from the interpretation plane unit normal vectors:

x = n Lef t × n Right n Lef t × n Right (1.96)
Consequently, we can extract the following information from the perspective projection of a prism-shaped leg with a calibrated camera (K is known) [START_REF] Andreff | Des droites et des robots. modélisation, identification et commande référencées vision des machines complexes[END_REF]:

-Edges: the unit normal vectors of the interpretation planes ( n Lef t , n Right ).

-3D direction: unit vector showing the direction of the leg (x).

1.5.4.2.3 Special Case of a Cylinder: Finally, we give some more properties related to a cylindrical leg, since this type of leg is more common than other types of legs and is easier to handle. The normal vectors of the interpretation planes of a cylindrical leg can be computed as follows:

n Lef t = -cos ϕ n x -sin ϕ (x × n x ) (1.97) n Right = cos ϕ n x -sin ϕ (x × n x ) (1.98)
where

cos ϕ = d n /d x , sin ϕ = r/d x , d n = d 2 x -r 2
, and where r is the cylindrical leg radius (see Fig 1.17). In addition, the geometry of the cylinder imposes the following constraint:

P T n Lef t = -r , P T n Right = -r (1.99)
where P is any point lying on the direction axis of the cylinder.

Figure 1.17 -View of the geometry of the cylindrical leg from its 3D orientation direction x (perpendicular to the paper plane).

Thesis Objective

This chapter gave the state-of-the-art in control of parallel robots and the necessary background information for the rest of the thesis. We finish this chapter by stating the objective of this thesis, which is to improve the integrated dynamic MICMAC project further towards its remaining goals:

1. Upgrading from kinematic level to the dynamic level in control-oriented modeling of parallel robots from their leg observations.

2. Fast estimation of the dynamic state (position and velocity) of a parallel robot from its leg observations.

3. Proposing a vision-based framework for the dynamic control of parallel robots from their leg observations. 4. Identification of the dynamic parameters of a parallel robot from its leg observations.

Chapter 2

Modeling

Introduction

This chapter presents a new approach to kinematic and dynamic modeling of parallel robots which meets one of the objectives of the integrated dynamic MICMAC: « Upgrading from kinematic level to dynamic level in control-oriented modeling of parallel robots from their leg observations. »

The proposed methodology keeps the expressions simple and clear. Thus, one can easily work out all the equations from the beginning till the end with pen and paper. Here, the methodology will be carried out without paying attention to a particular parallel robot. Furthermore, for better practical understanding, the methodology will be supported with a demonstration on a simple 2 degrees of freedom planar parallel robot. Then, at the end of the chapter, the methodology will be illustrated on a very complex parallel robot: the Quattro robot. The applications of the methodology to other well-known families of parallel robots, such as the Gough-Stewart, the Delta, the 3RRR and the Orthoglide can be followed in Appendix A.

Motivation and Objective

Modeling of robots can be categorized in two groups: application-oriented methods and analysis-oriented methods.

In application-oriented modeling, the generic scenario is as follows: since the motor encoders that measure the articular positions are directly implanted in robots and are rich enough to supply information about the full geometric configuration of serial robots, they are adopted immediately as a basic medium for sensing.

This misleads one into using them also for parallel robots. However, when parallel robots are considered, this information becomes poor because of many other sensorless passive joints. If one expresses models with only active joint coordinates, then the models inflate, become slow, hard to understand and to implement. This inevitably urges one to offer simplifications [START_REF] Vivas | Predictive functional control for a parallel robot[END_REF] and to omit some of the modeling errors in the mechanism, thus giving simplified and fast [NKC + 08] but approximate new models for control. Thus, application-oriented methods, based on joint sensing, become inefficient when the complexity of the robot increases.

On the other hand, analysis-oriented methods mostly concentrate on finding efficient, intuitive, simple and linear procedures for synthesis and analysis of complex robots. Some of these analysis-oriented methods use Screw theory [START_REF] Wolf | Screw theory for the synthesis of the geometry of a parallel robot for a given instantaneous task[END_REF], [START_REF] Featherstone | On the limits to invariance in the twist/wrench and motor representations of motion and force vectors[END_REF], [START_REF] Murray | A mathematical introduction to robotic manipulation[END_REF], [START_REF] Bruyninckx | Unified kinetostatics for serial, parallel and mobile robots[END_REF], [START_REF] Riberio | Screw-based relative Jacobian for manipulators cooperating in a task[END_REF], [START_REF] Tsai | The Jacobian analysis of a parallel maniuplator using the theory of reciprocal screws[END_REF], [START_REF] Mohammed | A direct analysis of instantaneous kinematics of fully parallel robot manipulators[END_REF], [START_REF] Tsai | Robot analysis: The mechanics of serial and parallel manipulators[END_REF] and Grassmann-Cayley [START_REF] Staffetti | Analytic formulation of the kinestatics of robot manipulators with arbitrary topology[END_REF] algebra which are based on lines of motions. These lines of motions are the joint axes, and these works model the joint motions. However, their practical applicability on real complex robots is limited. Instead, they are used for analysis.

Obviously, in these scenarios, the difficulties in modeling and applicability are sourced from the lack of an appropriate sensing. What if we had extra sensor(s)? What if we knew everything about the mechanism? Certainly, we would come up with a better concrete method.

Our objective is to provide a simple, accurate and applicable modeling methodology which would become the favorite option for researchers and engineers.

Discussions on the Inspiring Works

Most of the proposed approaches for deriving the kinematics and dynamics of a parallel robot suffer from the lack of efficiency -as defined by Kane et al. -, namely « relative simplicity, ease of manipulation for purposes of designing automatic control systems and minimal consumption of time during numerical solution » [START_REF] Mitiguy | Motion variables leading to efficient equations of motion[END_REF]. Hence, we shall investigate Kane, Khalil, and Tsai's methodologies which have already made important steps forward in improving efficiency and inspired us to put forward our new control-oriented methodology.

Kane's Method

With regards to efficiency, Kane has revealed the notion of generalized speeds to increase the efficiency of expressions [START_REF] Kane | Dynamics: Theory and applications[END_REF]. The generalized speeds are functions of generalized coordinates (scalar joint values) and their speeds. Their choice is completely arbitrary, and is usually determined by inspection of the velocities of bodies in a mechanism. A good choice of generalized speeds can have important effect on the resulting equations. Once their choice is made, then the methodology proposed by Kane is simply a matter of:

-deriving the mechanism's kinematics in terms of the generalized coordinates and generalized speeds; -computation of all the forces that exist in the mechanism; -projecting these forces on the directions of motion (i.e., directions associated to the generalized speeds) in order to obtain the generalized forces; -formal calculus (i.e., automatic generation of the model equations). Kane's method might be considered as a way of overcoming the difficulties caused by the inappropriate sensing of the mechanism. However, it seems that this method is still relevant for modeling purposes and not for control ones when the parallel robots are considered. Expressed from the control point of view, this is a matter of defining the most appropriate dynamic state variables for a parallel robot. It now seems certain that using the actuator positions (independent set of generalized coordinates) as the static state variables is not necessarily the optimal choice, because there is usually not a single solution to the forward kinematic problem. Consequently, using the actuator positions and their velocities as the dynamic state variables is certainly not the appropriate choice either.

Since the inverse kinematic problem is usually well posed for a parallel robot, a more efficient choice is to use the end-effector Cartesian pose and its velocity as dynamic state variables since this is usually the operational space. This choice leads to efficient models as long as one is able to measure or estimate the pose and velocity of the end-effector in the Cartesian space. And here is another loss of efficiency: one can not directly measure in the Cartesian space, so one has to estimate such variables, either through a mechanism or by optical means (e.g., laser, vision). The estimation is always a non-linear problem, except for high cost laser trackers.

Khalil's Method

In addition to Kane, Khalil [START_REF] Khalil | General solution for the dynamic modeling of parallel robots[END_REF] also proposes a methodology which is specific to parallel robots. His approach has the advantage of intuitively handling the kinematic constraints. To do so, Khalil expresses the dynamics of a parallel robot from the equilibrium of all forces applied on the moving-platform. He takes the following steps in his methodology:

-to consider each kinematic leg of a parallel robot as an independent serial robot; -to write the inverse dynamics of each kinematic leg using all the passive and active joint coordinates (redundant set of variables); -to transfer all the efforts of kinematic legs to the moving-platform using their inverse velocity kinematic models; -finally, to sum all the forces collected on the moving-platform and then to project the final total effort onto the active joints. However, the strong drawback of this method is its loss of efficiency, because it requires sensing and actuation to be collocated. Moreover, the computation of the dynamics of each kinematic leg loses its intuitiveness, and it needs computation of the inverse of the forward velocity kinematic model of a serial kinematic leg because of the balance of all the efforts on the moving-platform. Yet, as shown in [START_REF] Paccot | A review on dynamic control of parallel kinematic machines: theory and experiments[END_REF], the method becomes extremely efficient when used together with the end-effector sensing, because it turns out entirely linear. Nonetheless, the method in [START_REF] Paccot | A review on dynamic control of parallel kinematic machines: theory and experiments[END_REF] is probably not the most efficient one, since, as stated above, the sensing part of it is "sub-efficient".

Tsai's Method

In [START_REF] Tsai | Robot analysis: The mechanics of serial and parallel manipulators[END_REF] Tsai formulated the dynamics of parallel robots based on virtual work principle. This formulation follows the steps below:

-compute the kinematic twist and wrench twosome at the mass center of every link; -compute the link Jacobians relating the link kinematic twist to the end-effector kinematic twist. -finally, express all the virtual works of the links, of the actuators and of the platform, in the end-effector frame through the computed Jacobians. Expressing every effort in the end-effector frame with a similar way to Khalil, Tsai easily takes into account the motion constraints of the closed-loop kinematics. Using virtual work also simplifies writing of the final equations of motion. For application purposes, by MATLAB simula-tions, Tsai demonstrated his formulation for the Gough-Stewart platform where the equations were written based on joint values. However, as stated earlier, for real applications of parallel robots joint sensing is not enough. Since Tsai's work was rather for analysis purposes, he did not put any discussion for the applicability of his method even it looks very intuitive.

The aim of this chapter is thus to investigate further efficient modeling.

Methodology

In order to reduce the ambiguity in the terminology and in the context, we redefine first the descriptive and then a mathematical language for a robot. Afterwards, we proceed into the details of the formulation of the proposed methodology.

The Descriptive Language of a Robot

Joint [articulation]: connects two or more units (e.g., a revolute joint). Link [body, element]: a unit in a connected series of units (e.g., a bar between the joints).

Limb [kinematic chain, linkage, leg, arm]: a chain of units forming a kinematic chain.

End-effector [active tool tip]: interacts with the environment. In parallel robots, it is sometimes incorrectly called a moving-platform, (or a moving-plate). Actually the endeffector should be considered only as a sub-part of the moving-platform.

A Mathematical Language for a Robot

Every robot is a multi-body system and its motion space (i.e., static and dynamic state) can be described through a set of variables and constant parameters. These variables consist of the coordinates of joints, points, vectors fixed within the bodies (e.g., base, legs, moving-platform), matrices defining the motion constraints of the links, and forces (e.g., actuator forces, inertial forces, forces of gravity, frictions) acting on the links, while the constant parameters are the lengths, the masses and the inertias.

Variables

Scalars ∈ ℜ 1×1 : They are represented with small letters and symbols. For example, a distance between two points can be noted as d, and a rotation angle around an axis with θ.

Joint coordinates ∈ ℜ 1×1 : An active joint coordinate, q, may represent the angular (radian) or the distance (meter) measure depending on the type of the joint (revolute or prismatic).

Points & Position Vectors ∈ ℜ 3×1 : They are represented with boldface capital letters, such as: O, P, A, B, C, E and so on. The O and E denote the respective origins of the base and the end-effector frames.

Vectors ∈ ℜ r ×1 : They are denoted with boldface small letters. For instance, a translational displacement t. In addition unit vectors are underlined, such as the directions of a frame axes x, y, z.

Matrices ∈ ℜ r × c : They are represented with capital letters, such as the M, N, V and so on.

Frames : A frame is a set of 3 orthogonal unit axes (x, y, z) fastened to a reference point which uniquely determines (with real numbers) the position and the orientation of a body. It is noted as F point = { point, x point , y point , z point }. For example, the base and endeffector frames, which exist in every robot, will be noted as

F o = { O, x o , y o , z o }
and F e = { E, x e , y e , z e }, respectively. The x axis of a body frame is always oriented in lengthwise direction of the body.

Poses ∈ SE(3): A pose of a frame can be represented either as a r×c matrix or a n×1 column array. The representation of the pose of a frame will be noted with X point regardless of whether it is a matrix or a column array. The difference between a matrix and a column array representations will be made known by defining X point as the element of ℜ r×c or ℜ n×1 , respectively. For example, in the context, the representation of the pose of a frame located at point A will be defined as X a . Only the representation of the pose of the endeffector frame, which is located at point E, will be noted as X without a sub-script for the simplicity of the notation.

Mass centers ∈ ℜ 3×1 : They are denoted with S point . For instance, the mass center of a link attached to an articulation point P will be noted as S p .

Velocities : They are noted with a dot (˙) over the variables. For example, velocity of a mass center is Ṡ, velocity of a joint coordinate is q, velocity of a unit vector is ẋ.

Accelerations : They are shown with double dot (¨) over the variables. For example, acceleration of a mass center is S, acceleration of a joint coordinate is q, acceleration of a unit vector is ẍ.

Active & Reactive Forces : A force will be noted with small f letter and a force vector with small boldface f letter. Active forces are efforts of the linear motors and forces of gravity of the bodies. In order to express a specific active force (or a force vector), a subscript will be added to f (or f ), e.g., a gravity force vector will be f g . On the other hand, reactive forces are inertial and frictional forces. An inertial force (force vector) will be expressed with f * (f * ). A frictional force (force vector) will be noted with f ( f ).

Active & Reactive Torques : A torque will be noted with τ letter and a torque vector with boldface τ letter. Active torques are the efforts of the rotary motors. On the other hand, reactive torques are inertias and frictions. An inertial torque (torque vector) will be expressed with τ * (τ * ). A frictional torque (torque vector) will be noted with τ (τ ).

Note: All the variables are expressed in a single fixed reference frame (e.g., a camera frame, or the robot base frame). The relative velocities of these variables are also expressed with respect to this same fixed reference frame.

Constant Parameters

Length : ℓ shows the length of a body.

Mass : m expresses the mass of a body.

Gravity constant : g is the constant gravity acceleration vector of the Earth. 1 Inertia2 : I x , I y , I z are the principal moments of inertias of a body.

Motion Space

State Variables [Kane's generalized coordinates]: a chosen set of variables used to define the positions, velocities, accelerations and forces of all the links in the mechanism. These variables can be either an independent set or a redundant set.

Motion Basis [Kane's generalized speeds]: a chosen set of variables (i.e., scalars, vectors, functions) whose linear combination expresses the motion of the mechanism. Normally, a basis in linear algebra is a set of linearly independent vectors in the same space, but here we let it also be a dependent set of non-homogenous variables for simplicity of the equations. Hence, in our context, a motion basis is either a set of independent (minimal) variables or a set of dependent (redundant) variables.

Motion Constraints [Change of Motion Basis]: map the motion of the mechanism expressed in a redundant motion basis into the minimal motion basis made of actuator axes.

Kinematic Coordinates [Kane's partial velocities]: express the velocity of the mechanism in a given motion basis. The kinematic coordinates of the velocity of a mechanism are the partial derivatives of its kinematic equations with respect to the motion basis components.

Dynamic Coordinates [Kane's generalized forces]: define the dynamic equilibrium of the mechanism in a given motion basis. They are computed from the active and reactive forces of all the links in the mechanism.

Proposed Modeling Formulation

The methodology we propose here supposes that there is no restriction on the variable set selection needed for modeling, and suggests that the selected state variables should fulfil as much as possible the following criteria:

-Algebraicity: ability to be solved simply with formal tools, such as linear algebra; -Completeness: ability to represent fully both kinematics and dynamics; -Sensibility: ability to be perceived directly by physical sensors; -Readability: ability to allow for a good and easy understanding of the model; -Codability: ability to be implemented easily on a computer; so that the simplicity, the geometric intuitiveness and the numerical efficiency requested by Kane can be kept on the final expressions. The procedure which longs for these expressions passes through the following steps: Decomposition : We decompose the parallel robot into its simplest possible rectilinear parts: the kinematic elements of the kinematic legs and the moving-platform.

Choosing State Variables : We represent the states of these parts with a redundant set of variables: orientation unit vectors of the kinematic elements, the actuator coordinates, etc., so that expressions are compact and linear.

Choosing a Motion Basis : We select a redundant motion basis and derive the motion constraints between the passive (i.e., unactuated) and active (i.e., actuated) variables of this basis. Computing the Coordinates : We compute the kinematic and dynamic coordinates of the mechanism from each of the decomposed kinematic elements. Writing Equations of Motion : We combine all the dynamic coordinates with the motion constraints and then write the final equations of motion of the parallel robot. Note that we do not put any constraint on the minimality (which is inherited from serial robots), contrarily we allow for redundancy.

In the light of d'Alembert's principle of virtual work, the equations of motion (i.e., dynamic equilibrium) take the following form:

Dynamic Coordinates T Redundant M otion Basis = 0 (2.1)
which implies that the sum of all the exerted efforts on the defined redundant motion basis should vanish. This can be rewritten in terms of the minimal motion basis (i.e., actuation space) through the motion constraints (i.e., change of basis) as below:

Dynamic Coordinates T M otion Constraint T ransf ormations M inimal M otion Basis = 0 (2.2)
since the above system is defined at minimal motion basis, then it deduces to the following final form: M otion Constraint T ransf ormations

T Dynamic Coordinates = 0 (2.3)
where the dynamic coordinates (i.e., generalized forces) are written as follows:

Dynamic Coordinates = Kinematic Coordinates T Active F orces + Reactive F orces (2.4)
and where the kinematic coordinates express velocities of kinematic elements, namely the velocity of the whole mechanism:

M echanism V elocity = Kinematic Coordinates T Redundant M otion Basis (2.5)

Theorem 1 [Linear Implicit Dynamic Model]: Let geometric parameters, dynamic parameters, positions, velocities, and accelerations of a mechanism be known, then a linear implicit dynamic model (LImplDM) for this mechanism can be written as follows:

A Γ + b = 0 (2.6)
where matrix A is dependant to mechanism configuration and it relates the unknown force vector Γ of the actuators to the contributing efforts b of the kinematic elements of the mechanism.

In the following subsections, we go into details of the steps (decomposing a robot to its simplest parts, choosing state variables and a motion basis, deriving the motion constraints, etc.) of the proposed modeling formulation and we prove the Theorem 1.

A little note on "cross-product": We will use the cross-product frequently in our equations for two purposes:

-(i) to produce a third perpendicular vector to a plane defined by given two independent vectors (e.g., so as to form an orthogonal basis); -(ii) to compute rotational velocity and acceleration of a body (e.g., motion of a link attached to a revolute joint); Symbolically cross-product is implied by "×" operator which takes left-hand and right-hand operands to its sides.

Let a = [a x , a y , a z ] T , b = [b x , b y , b z ] T and c = [c x , c y , c z ]
T be vectors of 3 dimensional (3D) vector space ℜ 3 , and where the cross-product of a and b is c. Thus, one can write:

a × b = c (2.7) Equation (2.7
) is just a mathematical notation of the cross-product which corresponds to:

c x = a y b z -a z b y c y = a z b x -a x b z c z = a x b y -a y b x (2.8)
The weird calculations in above equations may mislead one to suppose that the cross-product is a non-linear operator. However, in (2.7), the cross-product is a linear map disguising itself as a vector. One can rewrite (2.7) as follows:

[a] × b = c (2.9)
where

{ [a] × : ℜ 3 -→ ℜ 3 | [a] × ∈ SO(3)
} is a linear function of infinitesimal rotation group which maps vector b to vector c in 3D Euclidean space:

[a] × =   0 -a z a y a z 0 -a x -a y a x 0   ∈ ℜ 3×3 (2.10)
In our expressions, we will use the first written style shown in (2.7) for the simplicity of notation, and the second written style shown in (2.9) for the algebraic manipulation consistency of equations.

New Construction « Kinematic Element » Definition

A robot can be broken down into its basic primitives as below:

(robot) : ( { base platf orm } ∪ { limb(s) } ∪ { end -ef f ector } ) (base platf orm) : ( { link(s) } ) (limb) : ( { joints } ∪ { links } ) (end -ef f ector) : ( { link } ) (2.11)
where each of { joints } can be either active or passive. Roughly speaking, a robot is a set of static and moving bodies. Our objective is here to homogenize the theoretical construction of a robotic mechanism by defining a single basic structure. We will call this basic structure as a kinematic element. Here, a kinematic element is an elementary rectilinear sub kinematic chain which contains both joint(s) and link(s), and consequently which has mobilities. In the light of the rough definition of a robot, these kinematic elements will replace the static and moving bodies. The definition of a kinematic element is built upon rigid-body assumption of its primitive components (e.g., links, joints). That is to say, the external forces exerted on a component of the kinematic element do not cause any deformation, or any given two points in the component preserve their distance. A rigid-body robotic mechanism can be thus simply redefined as follows:

(robot) : { (kinematic element) 1 , . . . , (kinematic element) n } (2.12) Tej Dallej in his Ph.D. thesis [START_REF] Dallej | Contribution à un modèle générique pour l'asservissement visuel des robots parallèles par observation des éléments cinématiques[END_REF] has roughly employed the "kinematic element" terminology for the last link of a kinematic chain of a parallel robot in order to propose a framework for the modeling and control of parallel robots at kinematic level. However, in [START_REF] Dallej | Contribution à un modèle générique pour l'asservissement visuel des robots parallèles par observation des éléments cinématiques[END_REF] a "kinematic element" was never fully formalized. On the other hand, here, we will give a mathematical model of a kinematic element which is intuitive and empiric. Furthermore, we are interested not only with the kinematics but also with the dynamics of this kinematic element. In the next subsections, we briefly recall some basic primitives and go into details of the definition of such a kinematic element. Note: In IFToMM dictionary (standardization of terminology of machine and mechanism theory), the term "element" has already been defined as a solid body or a fluid component of a mechanism [START_REF] Ionescu | Terminology for mechanisms and machine science[END_REF]. Here, we augmented this term with the adjective "kinematic" to express our new basic structure which has various mobilities. For the time being, we could not find a better name.

Construction Primitives

Joints

The mobility of the links of a robot are defined by these joint types: -Revolute: Rotates around an axis (1 dof). It is noted by (R).

-Universal: Rotates around two axes (2 dof). It is noted by (U).

-Spherical: Rotates around three axes (3 dof). It is noted by (S).

-Prismatic: Slides on a direction (1 dof). It is noted by (P).

-Parallelogram: Translates in three axes (3 dof). It is noted by (Pa). We note that a parallelogram actually is a mechanical structure composed of links and joints. The reason why we included it here is because another link can be firmly fastened to such a parallelogram, and here we consider the parallelogram link as a pseudo-joint.

Links

The base platform, the limbs (so-called arms or legs) and the end-effector of a robot are formed by a set of links (rigid bodies). Links are connected to each other with previously mentioned joint types and move interactively with respect to the mobility given by these joints.

Geometric Representation of a « Kinematic Element »

Here, we propose to model the geometric state of a kinematic element according to its mobilities which are generated by the interactions with other kinematic elements and by the joints exist in itself. So, we suppose that a kinematic element can have extrinsic and intrinsic mobilities.

The extrinsic mobility can exist due to the connection joint(s) at the input articulation point of a kinematic element, and it can be noted as follows:

(extrinsic mobility joints) :∈ { ∅, (R), (U), (Pa) } (2.13)
We define the state of the extrinsic mobility as below:

(extrinsic mobility state) : { A, x } (2.14)
where A is the input articulation point and x is the 3D unit direction vector of the kinematic element representing the pose sourced from the angular position(s) of the revolute, universal, spherical or parallelogram type joints.

The intrinsic mobility can exist due to the implanted joint(s) inside of a kinematic element, and it can be noted as follows:

(intrinsic mobility joints) :∈ { ∅, (P), (R) } (2.15)
We define the state of the intrinsic mobility as below:

(intrinsic mobility state) : { ∅, d, θ } (2.16)
where ∅, d and θ denote nothing (when there is no intrinsic mobility), the implanted prismatic joint coordinate (elongation along x) and the implanted revolute joint coordinate (twisting about x), respectively. An implanted prismatic joint elongates or contracts the kinematic element along its direction x. Similarly, an implanted revolute joint rotates the kinematic element around itself, namely around x (see Fig. 2.1). Thus, a generic geometric representation of a kinematic element can be described as follows:

(geometric state) : { A, x, d, θ } (2.17)
Analogy 1 Chasles' theorem [START_REF] Chasles | Note sur les propriétés générales du système de deux corps semblables entr'eux et placés d'une manière quelconque dans l'espace; et sur le déplacement fini ou infiniment petit d'un corps solide libre[END_REF] states that any rigid body displacement can be reduced to a canonical form, where the displacement is achieved by a rotation (θ) around a geometric line L and a translation (d) along the same line L. This implies that a kinematic element, which uses the same geometric variables for its state (see Fig. 2

.1), can be considered as a physical (visually concrete) representation of the canonic displacement between its connection points with the previous and next kinematic elements in the chain. Let A and B be the connection points at the tips of a kinematic element (not necessarily on the direction axis), then the displacement from A to B can be represented as follows:

B = A + d x + r(θ)
(2.18)

Figure 2.1 -A kinematic element and its geometric state variables: the input joint center A, the unit 3D direction vector x, the length d and the rotation angle θ around its direction vector. B is the output joint center.

where r is a vector which is a function of the rotation parameter θ. Usually, these connection points are designed to lie on the direction axis (or an axis parallel to the direction axis) of an element so that r ≈ 0, thus (2.18) appears in this way:

B = A + d x (2.19)
this helps keep the expressions simple. Consequently, θ does not have any effect on the position of the output articulation point (B) of the element. If θ is not an internal mobility3 of the mechanism, then it does influence the direction axis of the next kinematic element in the chain.

Below, we give examples for the 4 most common types of kinematic elements that exist in parallel robots:

Bar Type [B]

A kinematic element which has only extrinsic mobility. It moves under the influence of one or more joints, which can be revolute joint, or universal joint, or a combination of revolute and universal joints, or parallelogram pseudo-joint. Hence, we write its geometric state as follows:

(bar state) : { A, x } varying ∪ { d, θ } constant (2.20)
where A is the varying input point and x is the varying 3D direction unit vector of the kinematic element. They vary due to the interactions with other kinematic elements and extrinsic joints of the kinematic element. d and θ are the constant length and angular rotation coordinate of the kinematic element, respectively. In some cases, there might be a rotation around the direction vector x, then its geometric state can be rigorously rewritten as ( A, x, θ ) by replacing θ from constant part to the varying part of the state representation in (2.20). However, we note that in most of the parallel robots this rotation θ is passive (i.e., internal mechanism mobility) and does not effect the orientation of the next kinematic element in the chain. Therefore, the geometric state of a bar type kinematic element will be considered only as its input point A and its unit direction vector x without a rotation. For instance, a parallelogram link, whose rotation around its lengthwise direction is restricted, perfectly fits into this bar type kinematic element representation. The bar kinematic element is the most common type and exists almost in every parallel robot.

Spindle Type [Sp]

A kinematic element which has an extrinsic mobility with an active rotation around its direction vector, or an extrinsic mobility plus an intrinsic mobility with an implanted revolute joint. Thus, we write its geometric state as follows:

(spindle state) : { A, x, θ } varying ∪ { d } constant (2.21)
where θ is the varying angular coordinate of the rotation due to active extrinsic joints and implanted intrinsic revolute joint. One can find some spindle type kinematic elements in Zlatanov's 3-URU DYMO parallel mechanism [START_REF] Zlatanov | Constraint singularities as C-space singularities[END_REF].

Telescopic Type [T ]

A kinematic element which has extrinsic mobility and as well as intrinsic mobility due to an implanted prismatic joint. For instance, this telescopic type kinematic element exists in a Gough-Stewart parallel robot. Its geometric state is as follows:

(telescopic state) : { A, x, d } varying ∪ { θ } constant (2.22)
where d is the varying metric coordinate of the implanted prismatic joint, and it also corresponds to the length of the kinematic element.

Screw Type [Sc]

A kinematic element which has an extrinsic mobility and as well as an intrinsic mobility due to the implanted active prismatic and revolute joints. The fourth leg of the Delta parallel robot (i.e., the one that gives a rotation to the end-effector) can be considered as an example of this screw type kinematic element. Its geometric state is written as follows:

(screw state) : { A, x, d, θ } varying (2.23)
One can imagine other types and can easily define their states with the concept given in these examples. This is a non-minimal representation, but nonetheless it allows one to write the equations in a compact and linear fashion.

Remark: Given the base connection point of a kinematic chain, one can express any point (e.g., an input articulation point A of a kinematic element) along this kinematic chain in terms of only the { x, d, θ } variables of the kinematic elements belong to the this kinematic chain.

Dynamic Representation of a « Kinematic Element »

Dynamic state of a kinematic element can be defined with:

(dynamic state) : { A, x, d, θ } ∪ { m, I, S, Ṡ, S, Ȧ, ẋ, ḋ, θ, Ä, ẍ, d, θ } ∪ { f g , f * , τ * , τ x , τ * x , τ x , f d , f * d , fd , τ θ , τ * θ , τ θ } (2.24)
which contains: -(i) intrinsic dynamic parameters and higher-order kinematics:

-its mass m and its central inertia dyadic I; -its mass center position, velocity and acceleration: S, Ṡ and S; -the velocities of its geometric state variables: Ȧ, ẋ, ḋ, θ; -the accelerations of its geometric state variables: Ä, ẍ, d, θ; -(ii) forces and torques:

-its gravity force f g ; -its body inertial force f * and inertial torque τ * ; -an active extrinsic torque τ x of an extrinsic rotary actuator that turns the kinematic element around z axis of its body frame, where

y = ẋ / ẋ , ( ẋ ⊥ x ) , z = x × y (2.25)
and as well as the inertial torque τ * x and the frictional torque τ x of this rotary actuator; -an active intrinsic force f d which elongates or shortens the kinematic element along its direction x, and as well as the inertial force f * d and frictional force fd of this active prismatic joint; -an active intrinsic torque τ θ of an intrinsic rotary actuator that turns the kinematic element around its direction x, and as well as the inertial torque τ * θ and frictional torque τ θ of this intrinsic rotary actuator;

Kinematics of a « Kinematic Element »

Positions

The output articulation point (the end point) B of the kinematic element can be computed by using its state parameters and its articulation input point A (the initial point) as follows:

B = A + d x (2.26)
and the mass center S of a kinematic element can be written as follows:

S = A + x x + e (2.27)
where x is the projection coordinate of the mass center onto the direction vector x of the kinematic element, and e is a vector representing the eccentricity of the mass center to the direction axis x of the kinematic element (e ⊥ x). If the kinematic element is axis-symmetric and it has a uniform mass distribution along x, then x and e become:

x = d 2 , e = 0 (2.28)

Translational Velocity and Acceleration

The translational velocities of a kinematic element are as follows:

Ḃ = Ȧ + ḋ x + d ẋ (2.29) Ṡ = Ȧ + ẋ x + x ẋ + ė (2.30)
where, thanks to rigidity,

ė = θ x × e (2.31)
The translational accelerations of a kinematic element are as follows:

B = Ä + d x + 2 ḋ ẋ + d ẍ (2.32) S = Ä + ẍ x + 2 ẋ ẋ + x ẍ + ë (2.33) where ë = θ (x × e) + θ (( ẋ × e) + (x × ė)) (2.34)
If a kinematic element is homogenous, symmetric and has a constant length, then its translational velocities and accelerations can be represented as follows:

Ḃ = Ȧ + d ẋ , B = Ä + d ẍ (2.35) Ṡ = Ȧ + x ẋ , S = Ä + x ẍ (2.36)

Rotational Velocity and Acceleration

Lemma 1 The rotational velocity of a kinematic element, expressed in a fixed reference frame with respect to the same fixed reference frame, can be directly written with its unit direction vector, the velocity of it and the angular velocity of a kinematic element around its unit direction vector:

ω = x × ẋ + θ x (2.37)
Proof of Lemma 1: The velocity of a kinematic element's unit direction vector, subject to an arbitrary rotational velocity ω, is governed by the following equation:

ẋ = ω × x (2.38)
The arbitrary rotational velocity ω can be written as follows:

ω = q z q (2.39)
where q is the angular velocity of a kinematic element around an arbitrary instantaneous unit vector z q . Then, substituting (2.39) into (2.38) yields:

ẋ = ( q z q ) × x (2.40)
Expressing z q in terms of the kinematic element's frame vectors {x, y, z } as below:

z q = a x + b y + c z (2.41)
then (2.40) is rewritten as follows:

ẋ = ( a q x + b q y + c q z ) × x (2.42) which simplifies into: ẋ = -b q z + c q y (2.43) If (2.43
) is cross-producted from the left hand side with x, it yields:

x × ẋ = b q y + c q z (2.44)
and by adding the term ( a q x ) to the both sides of (2.44), we end up with:

a q x + x × ẋ = ω (2.45)
which can be deduced to:

θ x + x × ẋ = ω (2.46)
The term ( θ x) corresponds to the rotation of the kinematic element around itself and the term (x × ẋ) corresponds to the rotation component which changes the direction x.

Remark:

In cases where the kinematic element has an extrinsic mobility influenced only by a revolute joint (R) and an intrinsic mobility without a revolute joint (R), the rotation of this kinematic element around itself is not possible and the rotational velocity can be written as follows:

if (extrinsic mobility joint) = (R) & (intrinsic mobility joint) = (R), then ω x × ẋ
(2.47) as long as rigidity is preserved.

In some other cases, even if the kinematic element turns around itself (due to universal or spherical joints), this does not change the configuration of the mechanism that it exists in (i.e. just creates an internal mechanism mobility). Then, the term ( θ x) is useless and can be dropped while expressing the rotational velocity of this kinematic element.

Thus, the rotational acceleration of a kinematic element can be then written regarding (2.37) as below:

ω = x × ẍ + θ x + θ ẋ (2.48)

Dynamics of a « Kinematic Element »

Disturbing a kinematic element with some active forces (e.g., contact forces, distance forces, actuator torques/forces) will cause reactive inertial forces (linear and angular momentums) and frictional forces. In the following subsections, we will explore these forces in detail. The reader is referred to Section 2.5.3, if needs to remember the dynamic state variables of a kinematic element.

Active Forces and Torques

Forces and Torques of Actuators

We write the actuator force/torque vectors (f d , τ x , τ θ ), which can exist in a kinematic element, as follows:

f d = f d x , τ x = τ x z , τ θ = τ θ x (2.49)
where f d is the intrinsic translational force of a kinematic element due to the intrinsic active prismatic actuator whose orientation is along the direction (x) of the kinematic element; τ x is the extrinsic torque of a kinematic element due to the active rotary actuator whose rotation axis is z and whose rotating kinematic element is oriented along x; τ θ is the intrinsic torque of a kinematic element due to the intrinsic active rotary actuator whose rotation axis is x and whose self-rotating kinematic element is oriented along x.

Force of Gravity

Afterwards, the active force of gravity (f g ), which is assumed to act at the center of mass of a kinematic element, is given as below:

f g = m g (2.50)
where m is the mass of the kinematic element and g is the gravity acceleration vector oriented towards the center of the Earth.

Reactive Forces and Torques

Inertial Forces and Torques

Inertial forces and torques will appear at a kinematic element due to its accelerated matter inertia and mass. These inertial forces and torques offer resistance to change of motion of the kinematic element.

Inertial Forces and Torques of Actuators:

The rotary actuator inertial torque τ *

x , which appears due to the extrinsic torque τ x , can be written as follows:

τ * x = -I z (q z) = -I z ( x × ẍ ) (2.51)
where I z is the rotary inertia of the actuator around the z axis and q is the angular acceleration of the actuator. The rotary actuator inertial torque τ * θ , which appears due to the intrinsic torque τ θ , can be written as below:

τ * θ = -I x ( θ x) (2.52)
where I x is the rotary inertia of the actuator around the x axis and θ is the angular acceleration of the actuator. The linear actuator inertial force f * d can be written as follows:

f * d = -m d d x (2.53)
where m d is the mass moved inside the kinematic element by the linear actuator and d is the linear acceleration coordinate of this linear actuator.

Body Inertial Force and Torque:

The accelerated matter mass and inertia of the kinematic element produce the inertial force and torque. The inertial force and torque (f * , τ * ) of a kinematic element can be calculated with the Newton-Euler equations:

f * = -m S , τ * = -I T ω -ω × (I T ω) (2.54)
where m, S, I and ω are the mass, the translational acceleration vector of the mass center, the central inertia dyadic and the rotational velocity vector of the kinematic element, respectively.

Frictional Forces and Torques

Frictional forces/torques ( fd , τ x , τ θ ) will appear at the joint locations of a kinematic element due to its relative mobility. A frictional force/torque offers resistance on the motion of a kinematic element. The extrinsic frictional torque of a rotating kinematic element can be calculated as follows:

τ x = -τv(x) q + τc(x) sign( q) z = -τv(x) ω -τc(x) sign( ω T z ) z (2.55)
where τv(x) and τc(x) are the viscous and Coulomb friction coefficients of the extrinsic joint (q) of the kinematic element; ω is the relative rotational velocity vector between the extrinsic joint and the rest of the kinematic element; and z is the axis of rotation of the kinematic element.

The intrinsic frictional torque of a self-rotating kinematic element can be calculated as follows:

τ θ = -τv(θ) θ + τc(θ) sign( θ) x (2.56)
where τv(θ) and τc(θ) are the viscous and Coulomb friction coefficients of the intrinsic joint (θ) of the kinematic element whose orientation is along x. The intrinsic frictional force of an intrinsically translating kinematic element can be calculated as below:

fd = -fv(d) ḋ + fc(d) sign( ḋ) x (2.57)
where fv(d) and fc(d) are the viscous and Coulomb friction coefficients of the intrinsic translational joint (d) of the kinematic element whose direction is x.

Physical Formation of a Parallel Robot

Here, we homogeneously define the physical formation of a parallel robot through this new construction kinematic element.

A Base Platform

A base platform is composed of base element(s) and its formation can be noted as follows:

(base platf orm) : { (base element) 1 , . . . , (base element) k } (2.58)
with k ≥ 1 and where a base element is a kinematic element without motion.

A Kinematic Leg

A kinematic leg is a chain of consecutive kinematic elements and it can be formed as follows:

(kinematic leg) : { (kinematic element) 1 , . . . , (kinematic element) j } (2.59)
where j is the number of kinematic elements, whose value may be different in another kinematic leg of the parallel robot.

Nacelle

A nacelle is made of an articulated set of nacelle elements. The form of a nacelle can be defined as follows:

(nacelle) : { (nacelle element) 1 , . . . , (nacelle element) n } (2.60)
where n is number of nacelle elements. One of these nacelle elements is the moving platform, or if n = 1, then the nacelle itself is the moving platform. Therefore, a moving platform is made of a single nacelle element. The moving platform can be always a nacelle element, but any nacelle element is not necessarily the moving platform. Hence, the moving platform can be defined as below:

(moving platf orm) : { nacelle element } (2.61)
where a nacelle element is a kinematic element. A parallel robot can have either a nacelle or only the moving platform. If a nacelle exists in a parallel robot, then it is attached to all of the kinematic legs, and its moving platform carries a payload. Otherwise, when the nacelle does not exist, then the moving platform is directly attached to all of the kinematic legs, and it carries the payload.

A Parallel Robot

A parallel robot is composed of a base platform, k kinematic legs and a nacelle. Its formation can be written as follows:

(parallel robot) : { (base platf orm),    (kinematic leg) 1 . . . (kinematic leg) k    , (nacelle) } (2.62)

Distribution of Nacelle Dynamics

Here, the distribution of nacelle dynamics has not yet been solved completely. We try, however, to give some solutions for this problem.

If the nacelle of a parallel robot has equal number of nacelle elements with the number of kinematic legs, then the dynamics of nacelle can be shared such that a kinematic leg contains an additional nacelle element. Otherwise, if the nacelle of a parallel robot has different number of nacelle elements than the number of kinematic legs, then we show how to treat this case by examples in the following subsections.

Moving Platform Distribution

In order to share equally the dynamics of the moving platform by each of the kinematic legs of the parallel robot, we will divide the moving platform into k virtual platform elements in the sense of inertia and mass. The number of virtual platform elements is equal to the number of kinematic legs. So, the new form of the moving platform can be written as below:

(moving platf orm) : { (virtual platf orm element) 1 , . . . , (virtual platf orm element) k }

(2.63) where a virtual platform element is a kinematic element with a virtual mass and a virtual inertia.

Mass Distribution:

The mass m of the moving platform of the Gough-Stewart parallel robot can be divided into 6 point masses (i.e., m/6). These point masses are concentric and located at the same position with the moving platform's real mass center. Inertia Distribution: For example, let the inertia of the moving platform of the Gough-Stewart parallel robot be I. This inertia is calculated about a frame which is fixed at the mass center of the moving platform. This moving platform can be divided into 6 virtual pieces such that each kinematic leg of the Gough-Stewart parallel robot can be augmented with one of these pieces. Then, let the inertias of these pieces, calculated again about the same frame which is fixed at the mass center of the moving platform, be I 1 , I 2 , I 3 , I 4 , I 5 and I 6 . Then, we can write the total inertia of the moving platform in terms of the inertias of the virtual pieces as follows: Remark: Since the moving platform is rigid, any virtual platform element's rotational velocity is always equal to the real moving platform's rotational velocity. Thus, total dynamics of all the virtual elements will be also equal to the dynamics of the moving platform.

I = 6 i=1 I i (2.

Nacelle Distribution

Figure 2.5 shows an example of the H4 parallel robot's nacelle. Its nacelle is composed of 3 articulated nacelle elements while it has 4 kinematic legs. The moving platform (i.e., one of the nacelle elements) of the nacelle of H4 parallel robot is located in the middle of the two parallel nacelle elements and connects them with revolute joints. The parallel nacelle elements have only translational motion, therefore they do not have inertias. However, their relative motion turns the moving platform (i.e., the middle nacelle element) and thus the moving platform has an inertia I. Each of the parallel nacelle elements can be divided into 2 virtual nacelle elements so that we have a virtual nacelle element per kinematic leg. The kinematic legs are now augmented with these virtual nacelle elements up to the connection points of the moving platform. We can divide also the moving platform of the H4 parallel robot into 4 virtual platform elements in a similar way as explained in the previous section for a Gough-Stewart parallel robot's moving platform. So, the inertia I of the moving platform is shared by 4 virtual platform elements whose inertias are I 1 , I 2 , I 3 and I 4 . Note that the inertia I of the moving platform should be recalculated at each iteration (or anytime its configuration changes) before sharing it among the virtual platform elements. The mass of each nacelle element is shared equally by virtual nacelle elements. The mass centers of these virtual kinematic elements are concentric and located at the same positions with the nacelle elements' real mass centers. The inertia I of the moving platform is shared by 4 virtual platform elements (i.e., I = I1 + I2 + I3 + I4).

For the other types of nacelles, one can use a similar concept to share equally the masses and the inertias of the nacelle elements to the each of the parallel robot's kinematic legs. Finally, we remark that there is still some work to do to formalize completely the nacelle dynamics.

Sate Variables and Motion Basis of a Parallel Robot

State Variables

Instead of writing the geometric relations and the motion of a mechanism in terms of the independent number (n q ) of generalized scalar coordinates {q 1 , . . . , q nq } (i.e., active joint values), we break out of the customary routine and we express the geometric relations and the motion with the unit direction vectors of all (n ke ) kinematic elements {x 1 , . . . , x n ke }, the va-rying lengths of these kinematic elements {d 1 , . . . , d n ke }, and the self-rotation angles around the unit directions of these kinematic elements {θ 1 , . . . , θ n ke }. That is to say, we use a redundant set of variables (5n ke ≫ n q ) and we express equations in a vector form wherever possible rather than in a scalar form.

Motion Basis

Choosing a motion basis, different from the first order derivatives of the independent generalized coordinates { q1 , . . . , qnq } of a robot, was proposed for the first time by Kane which is named as generalized speeds. Traditionally, in Kane's method the generalized speeds, u r , are defined (still as scalars) as functions of the derivatives of a minimal set of n q generalized scalar coordinates { q 1 , . . . , q nq }:

u r nq i=1 y ri q i + z r , r = 1, . . . , n q (2.65)
where y ri and z r are functions of { q 1 , . . . , q nq } and the time t. The choice of these functions in (2.65) should yield a unique solution for { q1 , . . . , qnq } [KL85].

Since the redundant set of state variables that we proposed,

{ x 1 , . . . , x n ke } , { d 1 , . . . , d n ke } , { θ 1 , . . . , θ n ke } , (2.66)
compactly represents the configuration of the mechanism and linearizes the expressions, the choices of the generalized speeds appear spontaneously themselves. So (without needing to inspect the expressions), we define directly the motion basis as the time derivatives of the redundant set of motion variables of (2.66):

u xi ẋ i u di ḋi u θi θi i = 1, . . . , n ke (2.67)
Namely, y ri = 1 and z r = 0 in (2.65). This definition preserves the geometric intuitiveness of the mechanism and eases the following of equations.

Kinematics of a Parallel Robot

To give the notion clearly in the rest of the context, from time to time we will refer to a simple 2 degrees of freedom (dof) five-bar mechanism which is a RRR-RR structure planar parallel robot. Figure 2.6 illustrates this 2 dof five-bar mechanism. Regarding defined kinematic element types, a kinematic leg of this robot is composed of two consecutive bar type kinematic elements, and this five-bar mechanism can be renamed as a 2BB parallel robot.

Mass Centers

The mass center position of the i th kinematic element of a kinematic leg (with respect to a constant attachment point P of the kinematic leg onto the base) can be formulated by summing the i -1 elements and adding finally the i th mass center:

S i = P + i-1 j=1 d j x j + x i x i + e i
(2.68)

Example: So, assuming that all the kinematic elements of the five-bar mechanism are homogenous and symmetric, the mass center positions of the kinematic elements shown in Fig. 2.6 can be simply expressed as follows:

S pi = P i + ℓ pi 2 x pi , S ai = P i + ℓ pi x pi + ℓ ai 2 x ai , i = 1, 2 (2.69)
where P i is a constant point, {x pi , x ai } are the unit direction vectors defining the state of the kinematic leg, and {ℓ pi , ℓ ai } are the constant lengths of the kinematic elements.

Velocities

Translational Velocity

The mass center velocity of the i th kinematic element of a kinematic leg (with respect to a constant attachment point P of the kinematic leg onto the base) can be formulated by simply time differentiating (2.68), which yields:

Ṡi = i-1 j=1 ḋj x j + d j ẋ j + ẋi x i + x i ẋ i + ėi (2.

70)

Example: So, the velocities of the mass centers S pi and S ai of the five-bar mechanism shown in Fig. 2.6 are written as follows:

Ṡpi = ℓ pi 2 ẋ pi , Ṡai = ℓ pi ẋ pi + ℓ ai 2 ẋ ai , i = 1, 2 (2.71)

Rotational Velocity

According to Lemma 1, the rotational velocity of any kinematic element in a kinematic leg, expressed in a fixed reference frame with respect to the same fixed reference frame (e.g., camera frame or robot base frame), will be equal to (2.37):

ω i = x i × ẋ i + θi x i (2.

72)

Example: So, the rotational velocity vectors of the kinematic elements {PA} i and {AE} i of the i th kinematic leg of the five-bar mechanism given in Fig. 2.6 can be calculated as below:

ω pi x pi × ẋ pi , ω ai x ai × ẋ ai , i = 1, 2 (2.73)

Accelerations

Translational Acceleration

The mass center acceleration of the i th (with respect to base) kinematic element of a kinematic leg is derived from the time derivative of the mass center velocity:

Si = i-1 j=1 dj x j + 2 ḋj ẋ j + d j ẍ j + ẍi x i + 2 ẋi ẋ i + x i ẍ i + ëi (2.

74)

Example: Then the accelerations of the mass centers S pi and S ai of the five-bar mechanism shown in Fig. 2.6 are computed as below:

Spi = ℓ pi 2 ẍ pi , Sai = ℓ pi ẍ pi + ℓ ai 2 ẍ ai , i = 1, 2 (2.75)

Rotational Acceleration

The rotational acceleration vector of the i th (with respect to base) kinematic element of a kinematic leg will be equal to (2.48):

ωi = x i × ẍ i + θi x i + θi ẋ i (2.

76)

Example: Then the rotational accelerations of the kinematic elements {PA} i and {AE} i of the i th kinematic leg of the five-bar mechanism given in Fig. 2.6 can be expressed as below:

ω pi x pi × ẍ pi , ω ai x ai × ẍ ai , i = 1, 2 (2.77)

Kinematic Constraints of a Parallel Robot

Configuration Constraints

If the positions, orientations, and lengths of the kinematic elements of a robot are restricted by the presence of each other's contacts, then the robot is said to be subject to configuration constraints. Such restrictions are expressed through the implicit kinematic model (ImplKM) of the robot or so-called the holonomic constraint equation [START_REF] Kane | Dynamics: Theory and applications[END_REF]:

f O, P, E, x ji , d ji , (θ ji ), ξ geo = 0 i = 1, . . . , n leg j = 1, . . . , n ke(i) (2.78)
where ξ geo is the vector of constant geometric parameters, n leg is the number of kinematic legs, and n ke(i) is the number of kinematic elements in the i th kinematic leg of a parallel robot.

Assuming that: the connection points of the kinematic elements are lying on the axes of the direction vectors; the self-rotations θ ji of the kinematic elements do not change the positions of these connection points; and the end-effector frame is located at the mass center of the moving platform; then, equation (2.78) can be precisely rewritten as follows:

--→ OE -

n ke(i) j=1 d ji x ji - --→ OP i = 0 , i = 1, . . . , n leg (2.79)
where the sum n ke(1) + . . . + n ke(n leg ) = n ke is equal to the total number of kinematic elements in a parallel robot.

Example: For the five-bar mechanism shown in Fig. 2.6, the closed-loop holonomic constraint equations can be written as follows:

--→ OE -ℓ ai x ai -ℓ pi x pi - --→ OP i = 0 , i = 1, 2 (2.80)

Motion Constraints

If the components of motion basis { ẋ i , ḋi , θi } of the mechanism are not mutually independent, then the mechanism is said to be subject to motion constraints, and the mechanism is named as a nonholonomic system. The motion constraints equation can be written by differentiating the configuration constraints equation (2.79), which gives:

M C(X) Ẋ + m i=1 M C(x i ) ẋ i + M C(d i ) ḋi = 0 (2.81)
where M C(X) ∈ ℜ 3×r is the Cartesian pose kinematic matrix, M C(x i ) ∈ ℜ 3×3 and M C(d i ) ∈ ℜ 3×1 are the kinematic element's direction kinematic matrices and length kinematic vectors, respectively.

Example: For the five-bar mechanism shown in Fig. 2.6, the motion constraint equations are written by differentiating (2.80) as follows:

Ẋ -ℓ pi ẋ pi -ℓ ai ẋ ai = 0 , i = 1, 2 (2.82)
where Ẋ = Ė. From (2.82), we can derive the inverse differential kinematic models of the kinematic elements' variables. To do so, we exploit two properties of the vectors:

-The projection of a vector onto its velocity vector is equal to zero: x T ẋ = 0, -If vectors a and c are parallel (a // c), then a ( b T c ) = ( b T a ) c. By projecting (2.82) with x ai , we eliminate its motion variable ẋ ai from the equation:

x T ai Ẋ -ℓ pi x T ai ẋ pi = 0 (2.83)
Afterwards, multiplying the last equation with y pi which is parallel to ẋ pi , we obtain:

y pi x T ai Ẋ -ℓ pi y pi x T ai ẋ pi = 0 (2.84)
This allows us to use the second property of the vectors mentioned above. Then, we rewrite (2.84) as follows:

y pi x T ai Ẋ -ℓ pi (x T ai y pi ) ẋ pi = 0 (2.85)
This avoids a matrix inversion while computing the inverse differential kinematic model of ẋ pi :

ẋ pi = M pi Ẋ , M pi = y pi x T ai ℓ pi ( x T ai y pi ) ∈ ℜ 3×3 (2.86)
Then, to derive the other inverse differential kinematic model related to ẋ ai , we proceed as follows:

Ẋ -ℓ pi M pi Ẋ -ℓ ai ẋ ai = 0 (2.87)
and from (2.87) we write easily:

ẋ ai = M ai Ẋ , M ai = 1 ℓ ai ( I 3 -ℓ pi M pi ) ∈ ℜ 3×3 (2.88)
where I 3 is the 3 by 3 identity matrix. Finally, we derive the inverse differential kinematic model of the active joint coordinates qi . Knowing that:

ω pi x pi × ẋ pi = qi z pi (2.89)
we can take out qi as below:

qi = ( x pi × ẋ pi ) T z pi (2.90)
which can be reformulated in terms of Ẋ as follows:

qi = M qi Ẋ , M qi = z T pi [ x pi ] × M pi ∈ ℜ 1×3 (2.91)
where [•] × represents the skew-symmetric matrix of an associated cross-product vector.

Kinematic Coordinates of a Parallel Robot

Kane [START_REF] Kane | Dynamics: Theory and applications[END_REF] expresses the linear and rotational velocities of the kinematic elements uniquely through the minimal set of generalized scalar coordinates, the generalized speeds in (2.65) and the partial velocities. Then, Kane writes the linear velocity for the mass center and the rotational velocity of a kinematic element as follows:

Ṡ = nq r=1 v r u r + v t (2.92) ω = nq r=1 w r u r + w t (2.93)
where v r , w r , v t and w t are functions of { q 1 , . . . , q nq } and the time t.

The vectors v r ∈ ℜ 3×1 and w r ∈ ℜ 3×1 are the r th partial linear and rotational velocities of the kinematic element. So, for a kinematic element, Kane defines n q partial linear velocities and n q partial rotational velocities with the use of n q scalar generalized speeds:

v r = ∂ Ṡ ∂ u r , w r = ∂ ω ∂ u r , r = 1, . . . , n q (2.94)
Before proceeding on the rest of the text, we would like to first clarify the naming of some technical terms in Kane's method and in our method:

-What Kane calls "generalized coordinates", here we replace it with "state variables"; -What Kane calls "generalized speeds", here we replace it with "motion basis"; -What Kane calls "partial velocities", here we replace it with "kinematic coordinates"; Regarding the definition of our motion basis (direction vectors, lengths and rotation angles) in (2.67), the kinematic coordinates take the form of either matrices or vectors:

V xi = ∂ Ṡ ∂ u xi , W xi = ∂ ω ∂ u xi , i = 1, . . . , n ke (2.95) v di = ∂ Ṡ ∂ u di , w di = ∂ ω ∂ u di , i = 1, . . . , n ke (2.96) v θi = ∂ Ṡ ∂ u θi , w θi = ∂ ω ∂ u θi , i = 1, . . . , n ke (2.97)
where V xi ∈ ℜ 3×3 and W xi ∈ ℜ 3×3 are the linear and rotational kinematic coordinates (matrices) of the kinematic element with respect to the i th kinematic element's direction vector variable x i , and where v di ∈ ℜ 3×1 and w di ∈ ℜ 3×1 are the linear and rotational kinematic coordinates (vectors) of the kinematic element with respect to the i th kinematic element's length variable d i , and where v θi ∈ ℜ 3×1 and w θi ∈ ℜ 3×1 are the linear and rotational kinematic coordinates (vectors) of the kinematic element with respect to the i th kinematic element's self-rotation variable θ i .

Example: Then, for the five-bar mechanism shown in Fig. 2.6, the motion basis will be as follows:

u x1 ẋ p1 , u x2 ẋ p2 u x3 ẋ a1 u x4 ẋ a2 (2.98)
Table 2.1 tabulates the linear and rotational kinematic coordinates of this five-bar mechanism. These kinematic coordinates are algebraic expressions written from the geometric states of the kinematic elements. Note that while calculating the kinematic coordinates of a kinematic leg, the kinematic leg will have contributions only from itself since it can solely be represented by its own motion variables. The contributions from the rest of kinematic legs will be zero.

Table 2.1 -The (transposed) kinematic coordinates of the five-bar mechanism (2BB), i=1,2.

∂ Ṡpi ∂ ω pi ∂ Ṡai ∂ ω ai ∂ ẋ pi ℓ pi 2 I 3 [x pi ] T × ℓ pi I 3 0 ∂ ẋ ai 0 0 ℓ ai 2 I 3 [x ai ] T ×

Dynamic Coordinates of a Parallel Robot

The forces consist of contributing and non-contributing parts for the dynamics of a robot. The computation of the dynamic coordinates (i.e., generalized forces) is concerned only with the extraction of the contributing parts.

The forces acting on a robot can be listed in two groups: active and reactive forces. Firstly, we will list these active and reactive forces. Then, we will explain how to compute the dynamic coordinates of a robot from its revealed active and reactive forces.

Listing the Active and Reactive Forces

As it is explained in Section 2.7 for a kinematic element, the active forces of a robot are similarly the actuator forces and torques (i.e., generated by the linear and rotary motor motions) and the distance forces (e.g., gravitational, magnetic). And, subsequently, the reactive forces are the inertial forces and torques (i.e., generated by the accelerated masses and inertias) and the contact forces (e.g., friction).

Example:

In this example, we list all the active and reactive forces of five-bar mechanism shown in Figure 2.6.

-Forces of Actuators and Gravity: Parallel robots have usually a single actuator per kinematic leg. Thus, probably only one of the efforts of (2.49) will appear as an actuator force/torque in a kinematic leg. For the kinematic elements of the five-bar mechanism shown in Fig. 2.6, the active forces and torques can be written as follows:

τ x pi = τ x pi z pi , f g(pi) = m pi g , f g(ai) = m ai g , i = 1, 2 (2.99)
where τ x pi is the actuator torque, f g(pi) and f g(ai) are the forces of gravity.

-Inertial Forces of the Actuators: For the five-bar mechanism shown in Fig. 2.6, the inertial torques of actuators can be written as follows:

τ * x pi = -I pi (x pi × ẍpi ) , i = 1, 2 (2.100)
-Body Inertial Forces of the Kinematic Elements: For the five-bar mechanism shown in Fig. 2.6, the inertial forces and torques of the kinematic elements can be written as follows:

f * pi = -m pi Spi , τ * pi = -I T pi ω pi -ω pi × (I T pi ω pi ) , i = 1, 2 (2.101) f * ai = -m ai Sai , τ * ai = -I T ai ω ai -ω ai × (I T ai ω ai ) , i = 1, 2 (2.
102) -Frictional Forces: For the five-bar mechanism shown in Fig. 2.6, the frictional torques can be written as follows:

τ x pi = -τv(x pi ) ω pi -τc(x pi ) sign( ω T pi z pi ) z pi , i = 1, 2 (2.103)
where τ x pi is the extrinsic actuator frictional torque. Since the actuators are placed in the fixed base platform, the relative rotational velocity vector is directly equal to the velocity of the actuator. Then, the frictional torques on the passive joints are as follows:

τ x ai = -τv(x ai ) ( ω ai -ω pi ) -τc(x ai ) sign ( ω ai -ω pi ) T z ai z ai , i = 1, 2 (2
0 f g(pi) 0 0 0 f * pi T orques (pi) τ x pi z pi 0 τ x pi 0 τ * x pi τ * pi F orces (ai) 0 f g(ai) 0 0 0 f * ai T orques (ai) 0 0 0 τ x ai 0 τ * ai

Computing Dynamic Coordinates

Here, for the computation of dynamic Coordinates, Kane's method is used. This method simply eliminates the non-contributing forces by projecting the resultant forces and torques, which act on the mass centers of the kinematic elements, onto the motion directions (i.e., kinematic coordinates) of the kinematic elements:

        A Dynamic Coordinate of a Kinematic Element         r = n ke i=1         Linear Kinematic Coordinate   T ir   Rotational Kinematic Coordinate   T ir      F orce i T orque i      (2.105)
where n ke is the total number of kinematic elements in a parallel robot, and r ∈ { ẋj , ḋj , θj } with j = 1, . . . , n ke shows that a kinematic coordinate corresponds to which component of the motion basis. One dynamic coordinate per motion basis component is computed. Each kinematic element has 3 dynamic coordinates corresponding to its own motion basis components { ẋ, ḋ, θ }. Totally, 3 n ke dynamic coordinates are computed for n ke kinematic elements.

Example:

The dynamic coordinates of the five-bar mechanism (2BB) shown in Fig. 2.6 can be simply computed through the matrix-wise multiplication of the Tables 2.1 (transposed kinematic coordinates) and 2.2 (sum of the local forces and torques).

F x pi F x ai = Kinematic Coordinates T able 2.1 (2×4)    Sum of F orces T orques T able 2.2    (4×1)
which can be explicitly written as follows:

F x pi F x ai =   ℓpi 2 I 3 [x pi ] T × ℓ pi I 3 0 0 0 ℓai 2 I 3 [x ai ] T ×             f g(pi) + f * pi τ x pi z pi + τ x pi + τ * x pi + τ * pi f g(ai) + f * ai τ x ai + τ * ai           (2.106)
where the dynamic coordinates, F x pi and F x ai , are exiting forces effecting the rotations of the bars of the mechanism. In other words, these rotations of the bars are the result of the total work done by these exiting forces along the displacement directions ẋpi and ẋai .

Dynamic Constraints of a Parallel Robot

The dynamic constraints of a parallel robot can be written from d'Alembert's principle of virtual work as follows:

n ke i=1 F T x i ẋ i + F d i ḋi + F θ i θi = 0 (2.107)
where

F x i ∈ ℜ 3×1 , F d j ∈ ℜ 1×1 and F θ k ∈ ℜ 1×1 are the corresponding dynamic coordinates.
The dynamic constraints (2.107) can be reformulated through the known motion constraint models which relate the kinematic elements' motions to the velocity of the end-effector pose (i.e., to a motion basis of the constraint space):

ẋ i = M x i Ẋ , ḋi = M d i Ẋ , θi = M θ i Ẋ (2.108)
The substitution of (2.108) into (2.107) yields:

n ke i=1 F T x i ( M x i Ẋ ) + F d i ( M d i Ẋ ) + F θ i ( M θ i Ẋ ) = 0 (2.109)
Eliminating Ẋ from (2.109), dynamic constraints take the final form as below:

n ke i=1 M T x i F x i + M T d i F d i + M T θ i F θ i = 0 r×1 (2.110)
Remark: Equation (2.110) can be proved probably by a better solution which passes through the differential implicit kinematic model (DImplKM) of a robot rather than passing through the expressions in (2.108).

Example: Exploiting (2.110), the dynamic constraints of the five-bar mechanism (2BB) are written as follows:

2 i=1 M T pi F x pi + M T ai F x ai = 0 3×1 (2.111) M T p F x p + M T a F x a = 0 3×1 (2.112)
where F x p ∈ ℜ 6×1 and F x a ∈ ℜ 6×1 are the stacked vectors of the dynamic coordinates of F x pi ∈ ℜ 3×1 and F x ai ∈ ℜ 3×1 , respectively. M p ∈ ℜ 6×3 and M a ∈ ℜ 6×3 are also stacked matrices of the motion constraint models M pi ∈ ℜ 3×3 and M ai ∈ ℜ 3×3 , respectively.

Linear Solution for the Inverse Dynamics

Every equation from the beginning up to the last equation (2.110) is expressed in a linear form. Therefore, progressing from (2.110) to the linear implicit dynamic model (LImplDM) expressed in Theorem 1 of a parallel robot is just a matter of some simple linear algebraic manipulations, once the motorized joints are specified. In order to write this LImplDM, the following parameters and variables are required:

ξ geo : constant geometric parameters of the robot (e.g., lengths, points).

ξ dyn : constant dynamic parameters of the robot (e.g., masses, inertias, frictions).

-{x, d, θ}: 0 th order variables of the kinematic elements. They allow us to write the static configuration of the robot, the motion constraint models and the kinematic coordinates. -{ ẋ, ḋ, θ}, {ẍ, d, θ}: 1 st and 2 nd order variables of the kinematic elements. They allow us to write the local forces and torques. -Γ: force vector of the robot's actuators (e.g., forces of active prismatic joints and torques of active revolute joints).

Corollary 1 The inverse dynamics (IDM) of a parallel robot can then be obtained by solving a unique linear system of the LImplDM:

A Γ + b = 0 r×1 (2.113)
where A ∈ ℜ r×k is the configuration-dependant matrix relating the unknown force vector Γ ∈ ℜ k×1 of the actuators to the contributing efforts b ∈ ℜ r×1 of the kinematic elements. The r is the dimension of a surjective motion basis (r ≥ k). As long as the matrix A is full rank, one can solve for Γ:

Γ = -A † b (2.114)
where A † is the pseudo-inverse of the matrix A to be computed with a QR or SVD decomposition for a fast and robust solution rather than literally with the Moore-Penrose formula.

Example: We solve for the inverse dynamic of the five-bar mechanism shown in Fig. 2.6. To do so, we first write explicitly the equation of the dynamic coordinate (the first one in (2.106)) which includes the motor torques:

F x pi = [ x pi ] T × z pi τ x pi + F x pi (2.115)
which can be rewritten as follows:

F x pi = τ x pi y pi + F x pi (2.116)
where

F x pi = ℓ pi 2 ( f g(pi) + f * pi ) + [ x pi ] T × τ x pi + τ * x pi + τ * pi + ℓ pi ( f g(ai) + f * ai ) (2.117)
Afterwards, we can rewrite the equations of motion (2.112) of the five-bar mechanism as below:

M T p y p1 0 3×1 0 3×1 y p2 τ x p1 τ x p2 + F x p1 F x p2 + M T a F x a = 0 3×1 (2.118)
which can be reformulated in the form of (2.113):

A τ x p1 τ x p2 + b = 0 3×1 (2.119)
where A ∈ ℜ 3×2 is as follows:

A = M T p y p1 0 3×1 0 3×1 y p2 (2.120)
and where b ∈ ℜ 3×1 is as below:

b = M T p F x p1 F x p2 + M T a F x a (2.121)
Finally, the solution Γ = [ τ x p1 , τ x p2 ] T (torque vector of the motors) of inverse dynamics of the five-bar mechanism is computed as follows:

τ x p1 τ x p2 = -A † b (2.122)

A Global View to the Proposed Methodology

In short, using the proposed methodology, one can write efficiently the inverse dynamic model of a parallel robot by simply following these 6 steps:

1. Decompose the parallel robot to its kinematic elements (by inspection); The state variables {x, d, θ} can be directly measured with proprioceptive/exteroceptive sensors (e.g., motor encoders, camera, etc.), and/or be obtained through some mechanical kinematic models, if this does not lower the efficiency. Therefore, we generalize the representation of the inverse dynamic model, without concern for sensors and the models used, as follows:

Γ = IDM ( s, ṡ, s, ξ geo , ξ dyn ) = -A † (s) b(s, ṡ, s) (2.123)
where s is the set of state variables of the kinematic elements:

s : {x i , d i , θ i } , i = 1, . . . , n ke (2.124)

Compared to Khalil's, Kane's and Tsai's Methods

-We were inspired by the idea of using passive joint coordinates with the active ones (redundancy) in modeling from Khalil, and we recommended a new redundant set of state variables which keeps the equations compact and linear. Furthermore, in this way we do not need to compute the global balancing force at the end-effector. -We were inspired by the idea of to be free in our choice of a motion basis (minimal or redundant) from Kane, and we proposed a unique redundant motion basis which makes Kane's method easily applicable to broad range of robots (serial and parallel). -We were inspired by the idea of writing final equations of motion easily using the local efforts done on each of the kinematic elements from Tsai, and we improved Tsai's formulation by Khalil and Kane's inspirational ideas such that it became geometrically more intuitive, simpler, completely linear and more practical.

Originality

Body-based modeling and control methodology rather than joint-based:

-We use lines to model the moving bodies (concrete) rather than the joint axes (abstract). This enhances the visual perception of a robot, such that a human brain can almost vividly imagine a robot's motion by just reading the equations (augmented reality). -Equations of motion use simple linear vector algebra and are in compact form. This eases the codability and the fast solvability of equations on the computer. Even for the most complex robots, the inverse dynamic model can be worked out with pen and paper.

Practical applicability:

-Vision allows us to sense the moving bodies (directed 3D lines) in Cartesian space, which uniquely define the state of the robot. Thus, vision allows for a direct use of our method on the real robots. -Vision and motor encoders together increase the quality (accuracy and richness) of the information for simple modeling and precise control.

Applied to the Quattro Parallel Robot

The proposed modeling methodology was applied to the Quattro, the Gough-Stewart, the Delta, the 3-RRR and the Orthoglide parallel robots. At the end of this chapter, the proposed modeling methodology is shown in detail only for the Quattro parallel robot. For the rest of the parallel robots, the reader is referred to the Appendix A.

Figure 2.7 -The Quattro parallel robot with a base-mounted camera (left) and its joint-oriented graphical layout (right).

State Variables

The Quattro is composed of four identical kinematic legs which carry the articulated nacelle (see Fig. 2.7). Each of the 4 kinematic legs is actuated from the base by a revolute motor located at P i . A kinematic leg has two consecutive kinematic elements: an upper-leg [P i A i ] and a lower-leg [A i B i ]. Lower-leg and upper-leg are attached to each other at A i . At the top, the upper-legs are connected to the motors, while at the bottom, the lower-legs are connected to the articulated nacelle. Also, the form of the lower-legs with attached nacelle is called the umbrella of the Quattro robot, which can be thought of as being an articulated object attached to the independent upper-legs. The articulated nacelle is designed with four kinematic elements [NRC + 05]: the two lateral kinematic elements (either Kinematic Element Types: Hence, we have the following kinematic elements in the Quattro robot to inspect and to decide their types: upper-legs, lower-legs and the four parts of the nacelle. The configurations of those kinematic elements will be defined by the unit direction vectors of the bodies rather than the non-linear joint coordinates: Upper-legs [P i A i ] An upper-leg rotates around a fixed axis. It has 1 dof rotational extrinsic mobility due to a motorized (R)evolute joint. It is a bar type kinematic element: x pi .

[B 1 B 2 ], [B 3 B 4 ] or [C 1 C 2 ], [C 3 C 4 ])

Lower-legs

[A i B i ]
Each lower-leg consists of two slim and cylindrical shaped rods fitted with ball-joints ((A i1 , A i2 ) and (B i1 , B i2 )), forming a parallelogram. The joint-oriented notation of a kinematic leg, which contains this type of a lower-leg, is symbolically denoted as R -(S -S) 2 . This R -(S -S) 2 also equals R -U -U where R and S stand for an actuated revolute joint and a passive spherical joint, respectively. The (S -S) 2 architecture of a lower-leg fastened to an upper-leg ensures that the vectors ----→ A i1 A i2 and ----→ B i1 B i2 are always kept parallel to a fixed direction (z pi ). This motion constraint completely restricts the rotation of a lower-leg around its lengthwise direction (x ai ). Thus, this parallelogram lower-leg rotates only around a moving axis which means that it has 2 dof rotational extrinsic mobility due to the existing (S)pherical joints. Therefore, it is a bar type kinematic element:

x ai . Nacelle [C i C i+1 ]
The articulated nacelle has two lateral and two central kinematic elements which are structurally restricted to be coplanar with respect to each other. The articulated nacelle itself has only a translational motion, but each of its lateral kinematic elements can be independently translated in one fixed direction (x b ) which lets the central ones have an additional relative rotational motion around an axis that is parallel to a fixed direction. Thus, the end-effector E, which is located on the [C 2 C 3 ] central kinematic element (i.e., the moving platform), reaches 4 degrees of freedom, namely 3 for the translational movements and 1 for the rotational movement. The moving-platform also has an amplification system to transform the relative rotation θ into a proportional rotation (β = κθ) in the end-effector E (see Fig. 2.8). As a result of this structure of the nacelle, the lateral kinematic elements have only translational extrinsic mobility due to the parallelogram lower-legs, and the central kinematic elements have the same translational extrinsic mobility with a relative rotation allowed by the (R)evolute joints. Thus, each kinematic element is a bar type:

x bi = δ i x e where δ 1 = δ 3 = 0, δ 2 = -1, δ 4 = 1. If i = 4 then i + 1 1.
The static state of the mechanism is therefore totally and redundantly defined by the unit vectors { x pi , x ai , x bi }. Figure 2.9 shows the new body-oriented graphical layout of the Quattro parallel robot. In modeling, the following notation is used: -i = 1, 2, 3, 4 denotes the kinematic legs.

j = {p, a, b} is the literal representation of the kinematic elements in the mechanism.

ξ geo = {P i , ℓ ji , ℓ h , d, d x , h, h y , a} are the geometric parameters (e.g., constant lengths and points).

Figure 2.8 -Side and front views of a kinematic leg with its variables and parameters (left).

The plan of the nacelle with its variables and parameters (right).

Figure 2.9 -Body-oriented graphical layout of the Quattro parallel robot.

ξ dyn = {m ji , I ji , f v i , f c i } are the dynamic parameters (e.g., weights, inertias, frictions).

-

F o = (O, x o , y o , z o )
, F e = (E, x e , y e , z e ), F pi = (P i , x pi , y pi , z pi ) and F ai = (A i , x ai , y ai , z ai ) denote respectively the base, the end-effector, the i th upper-leg and the i th lower-leg frames. -q i is the articulated position of the i th upper-leg motor.

-The end-effector pose (X) is composed of the origin (E) of the end-effector frame and the orientation of the [C 2 C 3 ] moving platform (x e ). The end-effector pose velocity is then Ė and ẋe :

X E x e , Ẋ Ė ẋ e ∈ ℜ 6×1

Kinematics

Mass Centers: Figure 2.10 shows the mass centers S ji of the kinematic elements in the mechanism. The expressions are fully in vector form as none of the kinematic elements have intrinsic mobility. Then, the mass centers of the basic parts of the Quattro robot are written as follows: (i) for the upper-legs,

S pi = P i + ℓ pi 2 x pi (2.125)
(ii) for the lower-legs,

S ai = P i + ℓ pi x pi + ℓ ai 2 x ai (2.126)
(iii) for the nacelle's kinematic elements,

S bi = P i + ℓ pi x pi + ℓ ai x ai + ---→ B i S bi (2.127)
where ----→ B 1 S b1 and ----→ B 3 S b3 are constant, since they are located on the translational lateral kinematic elements of the nacelle. The ----→ B 2 S b2 and ----→ B 4 S b4 are the sum of a constant vector and a component along the rotating central kinematic elements of the nacelle:

---→ B i S bi = const i + h 2 x bi (2.128)
Figure 2.10 -The mass centers S ji (white squares) of the kinematic elements. All of the kinematic elements are assumed to be homogenous and symmetric.

Velocities:

The translational velocities are derived by simply differentiating (2.125), (2.126) and (2.127). The rotational velocities are compactly represented through the unit orientation vectors. Then, the velocities are written as follows: (i) for the upper-legs,

Ṡ pi = ℓ pi 2 ẋ pi , ω pi x pi × ẋ pi (2.129)
(ii) for the lower-legs,

Ṡ ai = ℓ pi ẋ pi + ℓ ai 2 ẋ ai , ω ai x ai × ẋ ai (2.130)
(iii) for the nacelle's kinematic elements,

Ṡ bi = ℓ pi ẋ pi + ℓ ai ẋ ai + h 2 ẋ bi , ω bi x bi × ẋ bi (2.131)
Accelerations: The accelerations are obtained by differentiating (2.129), (2.130) and (2.131) with respect to time. Then, the accelerations are written as follows: (i) for the upper-legs,

S pi = ℓ pi 2 ẍ pi , ωpi x pi × ẍ pi (2.132)
(ii) for the lower-legs,

S ai = ℓ pi ẍ pi + ℓ ai 2 ẍ ai , ωai x ai × ẍ ai (2.133)
(iii) for the nacelle's kinematic elements,

S bi = ℓ pi ẍ pi + ℓ ai ẍ ai + h 2 ẍ bi , ωbi x bi × ẍ bi (2.134)

Kinematic Constraints

The closed-loop constraint equation for each of the kinematic legs can be written as follows: ---→ C i B i are constants, and where ε i , β i and γ i are as follows:

--→ OE + (a y e + ε i h 2 x e + β i ---→ C 2 C 1 + γ i ---→ C 3 C 4 + ---→ C i B i ) -ℓ ai x ai -ℓ pi x pi - --→ OP i = 0 (2.135) where O, P i , ---→ C 2 C 1 , ---→ C 3 C 4 and
ε 1 = ε 2 = 1 , ε 3 = ε 4 = -1 , β 1 = 1 , β 2 = β 3 = β 4 = 0 , γ 1 = γ 2 = γ 3 = 0 , γ 4 = 1
(2.136) Afterwards, one can differentiate (2.135) with respect to time in order to obtain the motion constraint equation, which yields:

Ė + (a ẏ e + ε i h 2 ẋ e ) -ℓ ai ẋ ai -ℓ pi ẋ pi = 0 (2.137)
The motion constraints for the attachment points B i of the nacelle can be written from (2.137) as below: Then, (2.138) becomes:

Ė + (a ẏ e + ε i h 2 ẋ e ) = Ḃi (
Ė + (a [ z e ] × + ε i h 2 I 3 ) ẋ e = Ḃi (2.140)
which can be rewritten as follows:

Ḃi = L B i Ẋ , L B i = I 3 (a [ z e ] × + ε i h 2 I 3 ) (2.141)
where L B i ∈ ℜ 3×6 is the relation between the Cartesian velocity of the terminal point of the i th kinematic leg and the end-effector pose velocity Ẋ ∈ ℜ 6×1 . Finally, we reformulate (2.137) to ease the derivation of kinematic relations as below:

L B i Ẋ e -ℓ ai ẋ ai -ℓ pi ẋ pi = 0 (2.142)
Constraints on the Active Upper-Legs: The kinematic constraint on each unit orientation vector of the active upper-legs is defined from (2.142) by exploiting the following relations:

x T ai ẋ ai = 0 , y pi // ẋ pi (2.143)
By multiplying (2.142) with x T ai and then with y pi , one finds that:

ℓ pi y pi (x T ai ẋ pi ) = y pi x T ai L B i Ẋ (2.144)
where the left side of (2.144) can be rewritten from the parallelism of the vectors as follows:

ℓ pi ( x T ai y pi ) ẋ pi = y pi x T ai L B i Ẋ (2.145)
then, one can obtain the inverse differential kinematic model for an upper-leg orientation unit vector as below:

ẋ pi = M pi Ẋ = y pi x T ai ℓ pi x T ai y pi L B i Ẋ (2.146)
where M pi ∈ ℜ 3×6 . The complete M p ∈ ℜ 12×6 will be noted as below:

M p =    M p1 . . . M p4    (2.147)
Constraints on the Passive Lower-Legs: The kinematic constraint on the unit orientation vector of each passive lower-legs can be furnished by substituting (2.146) into (2.142) as below:

ẋ ai = M ai Ẋ = 1 ℓ ai L B i -ℓ pi M pi Ẋ (2.148)
where M ai ∈ ℜ 3×6 is the inverse differential kinematic model associated between a lower-leg unit orientation vector and the pose. The full M a ∈ ℜ 12×6 can be written in the following stacked form:

M a =    M a1 . . . M a4    (2.149)

Constraints on the Passive Nacelle:

The kinematic constraint on a orientation unit vector of the passive nacelle is defined with the following relation:

ẋ bi = M bi Ẋ = δ i 0 3 I 3 Ẋ (2.150)
where M bi ∈ ℜ 3×6 . Due to parallelograms, the nacelle stays parallel to its initial plane and thus, the end-effector has a rotation axis z e parallel to a fixed direction. Then, the complete M b ∈ ℜ 12×6 will be defined as follows:

M b =    M b1 . . . M b4    (2.151)
Since x e = x b4 , then M e = M b4 and one can write:

ẋ e = M e Ẋ = M b4 Ẋ = 0 3 I 3 Ẋ (2.152)

Kinematic Coordinates

The instantaneous configuration of the Quattro is expressed with the following redundant set of 12 generalized vectors (orientation unit vectors of the kinematic elements):

{ x pi , x ai , x bi } , i = 1, . . . , 4 (2.153)
and the motion of the Quattro is expressed through the motion basis which is directly defined as the time derivatives of the 12 generalized vectors:

u x ji ∈ { ẋ ji | j ∈ {p, a, b} , i ∈ {1, 2, 3, 4} } (2.154)
Note that the nacelle is shared by each of the kinematic legs by extending them with a corresponding kinematic element of the nacelle. Then, from now on, a kinematic leg is composed of an upper-leg, a lower-leg and a corresponding kinematic element of the nacelle (

[C i C i+1 ], if i = 4, then (i + 1) 1 ).
For each kinematic element in the mechanism, the translational and rotational kinematic coordinates are tabulated in the Table 2.3 by computing the partial derivatives of (2.129)-(2.131) with respect to the motion basis.

Table 2.3 -The (transposed) kinematic coordinates of the Quattro parallel robot, i=1,2,3,4.

∂ Ṡ pi ∂ ω pi ∂ Ṡ ai ∂ ω ai ∂ Ṡ bi ∂ ω bi ∂ ẋ pi 1 2 ℓ pi I 3 [x pi ] T × ℓ pi I 3 0 ℓ pi I 3 0 ∂ ẋ ai 0 0 1 2 ℓ ai I 3 [x ai ] T × ℓ ai I 3 0 ∂ ẋ bi 0 0 0 0 δ 2 i 1 2 h I 3 [x bi ] T ×

Dynamic Coordinates

Listing Active and Reactive Forces

There is a set of active forces/torques acting on the kinematic elements of the Quattro parallel robot due to actuator torques and forces of gravity.

-Actuator Torques: We write the actuator torque vectors (τ x ) of the active kinematic elements as follows:

τ x pi = τ x pi z pi (2.155)
where τ x pi is the active torque of a rotary actuator whose rotation axis is z pi and whose rotating kinematic element is oriented along x pi . -Forces of Gravity: Afterwards, the active forces of gravity (f g ), which is assumed to act at the center of masses of the kinematic elements, are given as below:

f g(pi) = m pi g , f g(ai) = m ai g , f g(bi) = m bi g (2.156)
where m ji is the mass of the ji th kinematic element and g is the gravity acceleration vector oriented towards the center of the Earth.

As a consequence of the accelerated matters in the Quattro parallel robot, reactive inertial and frictional forces/torques will appear at the actuators and at the kinematic elements.

-Actuator Inertial Torques: The rotary actuator inertial torques τ * x can be written as follows:

τ * x pi = -I pi ω pi = -I pi (x pi × ẍpi ) (2.157)
where I pi is the rotary motion inertia of the actuator around the z pi axis and ω pi is the rotational acceleration vector of the kinematic element (x pi ) which is firmly fastened to the actuator. -Kinematic Element Body Inertial Forces and Torques: The accelerated masses and inertias of the kinematic elements produce the set of inertial forces and torques {f * ji , τ * ji }. These inertial forces and torques can be calculated using the Newton-Euler equations:

f * pi = -m pi Spi , τ * pi = -I T pi ω pi -ω pi × (I T pi ω pi ) (2.158) f * ai = -m ai Sai , τ * ai = -I T ai ω ai -ω ai × (I T ai ω ai ) (2.159) f * bi = -m bi Sbi , τ * bi = -I T bi ω bi -ω bi × (I T bi ω bi ) (2.160)
where m ji , Sji , I ji and ω ji are the mass, the translational acceleration vector of the mass center, the central inertia dyadic and the rotational velocity vector of the ji th kinematic element, respectively. -Frictional Torques: Frictional torques (τ x ji ) will appear at the joint locations of the kinematic elements due to their relative motions among themselves. The frictional torques of the actuators can be computed as follows:

τ x pi = -τv(x pi ) ω pi -τc(x pi ) sign( ω T pi z pi ) z pi (2.161)
The frictional torques of the passive joints can be computed as below:

τ x ai = -τv(x ai ) ( ω ai -ω pi ) -τc(x ai ) sign( ( ω ai -ω pi ) T z ai ) z ai (2.162) τ x bi = -τv(x bi ) ( ω bi -ω ai ) -τc(x bi ) sign( ( ω bi -ω ai ) T z bi ) z bi (2.163)
where τv(x ji ) and τc(x ji ) are the viscous and Coulomb friction coefficients of the joint of ji th kinematic element, and where ω ji and z ji are the rotational velocity vector and the axis of rotation of the kinematic element (x ji ), respectively.

Hence, one can list all these local forces and torques as in Table 2.4. Figure 2.11 shows the local forces and torques which act on one of the identical kinematic leg of the Quattro parallel robot.

0 f g(pi) 0 0 0 f * pi T orques (pi) τ x pi z pi 0 τ x pi 0 τ * x pi τ * pi F orces (ai) 0 f g(ai) 0 0 0 f * ai T orques (ai) 0 0 0 τ x ai 0 τ * ai F orces (bi) 0 f g(bi) 0 0 0 f * bi T orques (bi) 0 0 0 τ x bi 0 τ * bi   F x pi F x ai F x bi   =   Kinematic Coordinates T able 2.3   (3×6)     Sum of F orces T orques T able 2.4     (6×1) (2.164)
which can be explicitly written as follows:

      F x pi F x ai F x bi       =       1 2 ℓ pi I 3 [x pi ] T × ℓ pi I 3 0 ℓ pi I 3 0 0 0 1 2 ℓ ai I 3 [x ai ] T × ℓ ai I 3 0 0 0 0 0 δ 2 i 1 2 h I 3 [x bi ] T ×                          f g(pi) + f * pi τ x pi z pi + τ pi f g(ai) + f * ai τ x ai + τ * ai f g(bi) + f * bi τ x bi + τ * bi                    (2.165) where τ pi = τ x pi + τ * x pi + τ * pi (2.166)

Dynamic Constraints

Exploiting (2.110), the dynamic constraints of the Quattro robot are written as follows:

M T p F p + M T a F a + M T b F b = 0 6×1 (2.167)
where F p ∈ ℜ 12×1 , F a ∈ ℜ 12×1 and F b ∈ ℜ 12×1 are the stacked vectors of the dynamic coordinates:

F p =    F x p1 . . . F x p4    , F a =    F x a1 . . . F x a4    , F b =    F x b1 . . . F x b4    (2.168)
and where M j ∈ ℜ 12×6 is as in (2.147), (2.149) and (2.151) for j ∈ { p, a, b }.

Inverse Dynamics

In order to extract the motor torques, we explicitly write the dynamic coordinate F x pi from (2.165) which contains these torques τ x pi :

F x pi = τ x pi y pi + F x pi (2.169)
where

F x pi = ℓ pi 2 (f g(pi) + f * pi ) + [x pi ] T × τ pi + ℓ pi (f g(ai) + f * ai ) + ℓ pi (f g(bi) + f * bi ) (2.170)
Consequently the stacked F p can be noted as follows:

F p = Y p Γ + F p (2.171)
where Y p ∈ ℜ 12×4 , Γ ∈ ℜ 4×1 and F p ∈ ℜ 12×1 are as below:

Y p =      y p1 0 0 0 0 y p2 0 0 0 0 y p3 0 0 0 0 y p4      , Γ =      τ x p1 τ x p2 τ x p3 τ x p4      , F p =      F x p1 F x p2 F x p3 F x p4      (2.172)
Afterwards, replacing (2.171) in (2.167), we can write (2.167) as follows:

A Γ + b = 0 (2.173)
where A ∈ ℜ 6×4 and b ∈ ℜ 6×1 are defined as below:

A = M T p Y p , b = M T p F p + M T a F a + M T b F b (2.174)
One can then write the solution of (2.173) as follows:

Γ = -A † ( x ) b ( ẍ, ẋ, x ) (2.175)
Consequently, the inverse dynamic model of such a complex Quattro robot has been compactly expressed by means of the orientation unit vectors.

Γ = IDM ( ẍ, ẋ, x ) (2.176)
Note that the longest part of the calculus is the kinematics (made very easy by using the vector form), then the listing of the forces and torques. If all these are given, the dynamics are obtained through one single formula (2.167) and its linear solution.

Conclusions

This chapter outlined a framework for control-oriented dynamic modeling of parallel robots which uses the leg orientations. This modeling approach is easily applied to wide range of parallel robots. Written equations use only addition (+) and multiplication (*) operators. Neither trigonometric nor exponential functions are used. There is only the piecewise-linear signum function in the Coulomb friction which needs a simple sign check for its implementation. The equations are simple and compact even for complex robots. This is achieved with the 3D unit direction vectors of the leg orientations. Thus, we accomplished the first objective of the integrated dynamic MICMAC which is stated at the end of the Chapter 1.

This modeling approach is linear on the condition that these unit direction vectors, x, of the leg orientations and their velocities, ẋ, are given. As stated in the integrated MICMAC part of the Chapter 1, one can measure these 3D unit direction vectors of the legs from their 2D image projections, and subsequently one can numerically differentiate them to obtain the velocities of the leg orientations. But, what about the speed of measurement? Certainly, this will not be greater than a video rate ∼ 40Hz when a conventional camera with a conventional line tracking algorithm is used. This speed of measurement can be enough for a vision-based kinematic control, but however a dynamic control requires high-speed feedback.

Consequently, the next chapter is devoted to answer the following questions: (i) How can one measure x and ẋ at high speed in order to exploit linearity of this modeling approach? (ii) Which control law should be built upon the presented inverse dynamic model? and (iii) In which space should the control error be regulated for better dynamic control of parallel robots? 81 Chapter 3 Control

Introduction

Dynamic control of a robot requires high-frequency sensor feedback. In the case of a serial robot, this requirement is satisfied with dynamic control strategies based on classical highfrequency joint sensing at about 1 kHz. However, the performance of robots can be further improved by importing the vision-based control schemes [START_REF] Chaumette | Visual servo control, part II: Advanced approaches[END_REF], even though satisfying a reasonable accuracy and frequency for visual feedback hurts. In serial robots the solution for vision-based dynamic control is found in a cascade of two control loops, where:

-the first loop, the fast one, compensates for the dynamics. This internal loop uses an inverse dynamic model based on joint values which are easily provided by the motor encoders at high-frequency. -the second loop, slower one, uses the feedback of a vision sensor. This outer loop is actually a kinematic control made possible by the internal loop which compensates for the dynamics of the serial robot. This approach does not work for parallel robots, because the joint values do not determine uniquely the state of a parallel robot. The dynamic state of a parallel robot for a dynamic control, in most cases, can be simply represented by its end-effector pose and velocity, but this is not necessarily the only way. Therefore, one should now investigate how to adapt vision sensor for high-speed pose and velocity computation. Some of the attempts to adapt vision for control schemes are as follows: Since the state of a parallel robot is expressed by its end-effector pose and velocity, these variables are tried to be found by the classical pose estimation algorithms. Unfortunately, these algorithms can not directly give the velocity information. The pose velocity is usually computed by numerical differentiation of the estimated pose, thus introducing additional noise. Besides, the predictive control techniques are exploited to adapt the visual sampling rate to the control sampling rate, but this increases the complexity as well [START_REF] Gangloff | High-speed visual servoing of a 6 dof manipulator using multivariate predictive control[END_REF]. Instead, from a control point of view, increasing the visual feedback frequency up to the control frequency is more appropriate [START_REF] Vincze | Dynamics and system performance of visual servoing[END_REF], [START_REF] Corke | Dynamic issues in robot visual-servo systems[END_REF]. Then to do so, one compresses the image data [START_REF] Richardson | H.264 and mpeg-4 video compression: Video coding for nextgeneration multimedia[END_REF], builds fast communication interfaces, or embeds the image processing unit closer to the camera [WHB96], [NITM00], [START_REF] Chalimbaud | Embedded active vision system based on FGPA achitecture[END_REF], etc. We believe that these attempts encumber the system. So, the aim of this chapter is to look for a simpler solution for vision-based dynamic control of a parallel robot.

The rest of this chapter proceeds as follows: Section 3.2 exploits kinematic control to compute the posture and the velocity of a parallel robot at an instant of time through sequentially partial observation of the kinematic legs. This is a kind of fast vision-based dynamic state observer of a parallel robot where a virtual robot (a copy of the real robot) imitates its motion. This virtual robot will deliver the leg orientations x and their velocities ẋ to the inverse dynamic model presented in Chapter 2, and as well as it will provide requested feedback signal for dynamic control. In the light of MICMAC concept, from now on, we will call this observer "High-speed integrated dynamic MICMAC observer". Section 3.3 derives a versatile computed-torque control law based on different feedbacks coming from the vision-based dynamic state observer. Hence, this versatile computed-torque control allows one to control the parallel robot in different variable spaces (where a variable space should represent the state of the robot) to discover the best performance for the proposed modeling methodology in the previous chapter.

High-Speed Integrated Dynamic MICMAC Observer

Here, we propose a simpler solution inspired by the following two ideas: -(i) Is there a visual information which can give the statics and velocity of a parallel robot for dynamic control purposes? In integrated kinematic MICMAC, it was shown that the image projection of a parallel robot's legs is a relevant alternative to express the state, since they similarly encode the static configuration of the whole mechanism [START_REF] Dallej | Contribution à un modèle générique pour l'asservissement visuel des robots parallèles par observation des éléments cinématiques[END_REF]. It was good, because control and sensing were in harmony with the kinematics since image lines correspond to the legs of the robot. On the other hand, it is not fast (∼ 40 Hz) enough when a dynamic control is concerned and yet it cannot give directly the velocity of the mechanism. This is because a slow conventional camera was used and the detection of the leg edges in the full image costed too much time. -(ii) In vision-based applications, a full image is grabbed and processed. The processing step is simply the extraction of the meaningful features from a region around an approximately predicted location. It appears that the rest of the image is untouched, and the time spent for grabbing and transmitting this part is wasted. Then, to increase the visual feedback frequency up to the control frequency, why not just grab a region of an image [URLP04], [START_REF] Dahmouche | 3D pose and velocity visual tracking based on sequential region of interest acquisition[END_REF] where only the meaningful features exist? Hence, the reader may now wonder: (i) How shall the previous two ideas be integrated for fast estimation? and (ii) Which compatible method shall be chosen to figure out the dynamic state of the robot?

Since a small sub-image acquisition allows only for a local observation in the field of view of the camera and the legs exist plentifully in a parallel robot, this implies a sequential grabbing strategy (one by one) for collecting the required amount of information from the whole mechanism. In these sub-images, we observe the contours of the legs, since in an image contours are one of the simplest visual features to detect. Then, the required information is the set of contours detected from the sub-images of the legs, which are sequentially grabbed at discrete time instants of the motion of the robot. On the other hand, although simultaneous multiple sub-images (located anywhere in the image) grabbing strategy (non-sequential) can provide all the required information at once, it is not preferable because of the addressing problem and because it is slower for estimation.

In order to figure out the full state at each control sample time, the following methods are proposed: In [START_REF] Wilson | Relative end-effector control using Cartesian position based visual servoing[END_REF], an extended Kalman filter predicts the relative state of the robot by fusing the set of image feature points belonging to an object with some redundant measurements. In [START_REF] Ait-Aider | Simultaneous object pose and velocity computation using a single view from a rolling shutter camera[END_REF], a CMOS Rolling Shutter camera captures a single image row by row, which causes image artifacts for the moving objects. Then, exploiting these visual artifacts, the pose and velocity of a moving object are simultaneously estimated with a non-linear least squares method. In [START_REF] Dahmouche | 3D pose and velocity visual tracking based on sequential region of interest acquisition[END_REF] and [START_REF] Dahmouche | Contribution à l'estimation de mouvement 3D et à la commande par vision rapide: Application aux robots parallèles[END_REF], a virtual visual servoing scheme [START_REF] Marchand | Virtual visual servoing: A framework for realtime augmented reality[END_REF] is used and validated for estimating the state variables by sequentially grabbing the blobs of an artificial rigid pattern at high speed.

Our work also exploits the virtual visual servoing scheme associated with sequential grabbing as in [START_REF] Dahmouche | Contribution à l'estimation de mouvement 3D et à la commande par vision rapide: Application aux robots parallèles[END_REF] and improves it in the sense of tracking an articulated set of legs of a parallel robot at high speed rather than tracking a rigid pattern fastened to the end-effector at high speed. Yet, since we do not need a pattern, in a roundabout way, this gets rid of the tedious calibration among the pattern, the camera and the end-effector. The objectives of this part of the chapter are as follows:

-to allow the posture and velocity of a parallel robot to be estimated through a virtual robot imitating its motion. -to progress towards putting into effect the dynamic control of a parallel robot based on leg kinematics [START_REF] Ozgur | Dynamic control of the Quattro robot by the leg edges[END_REF].

Differential Edge Kinematics of a Cylindrical Kinematic Element

Image edges of slim legs of a parallel robot are the keystones of the integrated kinematic MICMAC, and this time their differential kinematics play once more an important role for the dynamic state estimation of a parallel robot. Slim cylindrical shaped legs are the most common kinematic elements in robots. They are also easy to handle in theory and practice. Therefore, first we explain how to compute the differential kinematics of the edges of a cylindrical kinematic element. Figure 3.1 depicts a simple projective geometry of a cylindrical kinematic element in a camera frame.

Notation

-B ∈ ℜ 3×1 is one of the tip points lying on the revolution axis of the cylindrical kinematic element. -x ∈ ℜ 3×1 is the orientation unit vector and also corresponds to the revolution axis direction of the cylindrical kinematic element. -s ∈ { L , R } is the literal representation for the (L) eft or the (R) ight side of the cylindrical kinematic element seen from the camera. -p s ∈ ℜ 3×1 is a projection contour point lying on the image plane and located inside a visual edge of the cylindrical kinematic element. p s = [x, y, 1] T .

Figure 3.1 -View of the geometry of a cylindrical kinematic element from its 3D orientation direction (perpendicular to the paper plane).

n s ∈ ℜ 3×1 is a unit vector orthogonal to the plane defined by the projection center O of the camera and by a side visual contour of the cylindrical kinematic element (see Fig. 3.1). Hence, it stands for a mathematical representation of such a visual contour. -X ∈ ℜ n×1 is a representation of the end-effector pose of a parallel robot.

-Unless specified in a left supper-script, all the variables are expressed in the camera frame.

Differential Edge Kinematics

Let M x ∈ ℜ 3×n and L B ∈ ℜ 3×n be respectively the differential kinematic models (e.g., for the Quattro robot see Chapter 2 equations (2.148) and (2.141)) that relate the velocity of the end-effector pose to the velocity of the orientation unit vector x and to the velocity of the tip point B of the cylindrical kinematic element in a kinematic leg:

ẋ = M x Ẋ , Ḃ = L B Ẋ (3.1)
The geometry of a cylindrical kinematic element (see Fig. 3.1) imposes the following profitable constraints:

B T n s = -r , x T n s = 0 , p T s n s = 0 (3.2)
where r is the radius of the cylindrical kinematic element. Since we would like to exploit the contours of a cylindrical kinematic element, the third constraint will be used in the virtual visual servoing scheme. This requires the completion of a differential model defined between an edge n s and the end-effector pose X. Exploiting the second constraint and knowing that ṅT s n s = 0, the image velocity of the contour ṅ s is expressed as follows:

ṅ s = α x + β ( x × n s ) (3.3)
where α and β are two scalars to be figured out. The α comes out by differentiating the second constraint in (3.2) and replacing (3.3) into the differentiated constraint, which yields:

ẋT n s + x T (α x + β ( x × n s )) = 0 (3.4)
that gives α as below:

α = M α Ḃ ẋ with M α = 0 1×3 -n T s (3.5)
Afterwards, the β is computed by differentiating the first constraint in (3.2) and replacing (3.3) and (3.5) into the differentiated constraint, respectively. This yields:

ḂT n s + B T (α x + β ( x × n s )) = 0 (3.6)
which allows to calculate β as follows:

β = M β Ḃ ẋ with M β = -n T s B T ( x × n s ) B T x n T s B T ( x × n s ) (3.7)
Then, the differential model between an edge velocity and the end-effector pose velocity shows up by plugging (3.5), (3.7) and (3.1) into (3.3), which gives:

ṅ s = M s Ẋ (3.8)
where M s ∈ ℜ 3×n is as below:

M s = ( x M α + ( x × n s ) M β ) L B M x (3.9)
Finally, the complete differential model for both of the left and right edges of a cylindrical kinematic element is defined as follows:

ṅ = M n Ẋ (3.10)
where n ∈ ℜ 6×1 and M n ∈ ℜ 6×n are as below:

n = n L n R , M n = M L M R (3.11)

High-Speed Dynamic State Observer via Sequential Visual Sensing

Motivation for Sequential Visual Sensing

The non-sequential (simultaneous) acquisition approach instantly gives a robot's complete static posture information. On the other hand, the sequential acquisition approach requires one to take several (k) successive sub-images to collect the same amount of information. Since the sequential acquisition approach requires k successive sub-images to give the same information, one needs the previous k -1 sub-images to be stored. Then, the static posture can be computed at each sub-image grabbing instant with previously stored k -1 sub-images. The beauty of this scenario is that it allows us to simultaneously estimate both the static posture and its velocity at the time of the latest sub-image by using the last k grabbed sub-images, when the sampling time T camera between the consecutive static posture instants {t k , t k-1 , . . . , t 1 } is known. Furthermore, the estimation is a lot faster than the non-sequential approach. Table 3.1 compares the requirements of the tasks (e.g., acquisition, feature extraction, etc.) of the sequential and non-sequential sensing approaches for the computation of the static posture and the velocity of a parallel robot. To keep the comparison simple, a task time is assessed in terms of either a sub-image processing time T sub or a full image processing time T f ull , where T sub ≪ T f ull . In Table 3.1 the algorithm for the posture computation is assumed to cost same amount of time in both of the sequential and non-sequential approaches once all the information is available. While computing posture and velocity together, the non-sequential approach needs to calculate at least 2 sequential postures in order to obtain velocity by derivation, whereas the sequential approach gives it directly.

For example: If a 40 × 40 pixels sub-image is grabbed rather than a full 1024 × 1024 pixels image, then in sequential approach:

-image acquisition time is reduced to about 655 times.

-feature extraction time is possibly reduced to about 655 times.

-posture computation time stays the same.

-posture and velocity computation time is reduced to about 2 times. The estimation of the dynamic state of the robot is faster when the information grabbed is smaller. On the other hand, when smaller pieces of information are grabbed, less information is kept for the present time and less accuracy is expected. Consequently, an optimum should be determined regarding this tradeoff within theoretical and physical limits.

Remark:

In the robotic literature, the terms pose and posture are sometimes confused. We would like to give a clear notion of these two terms. A pose is a representation of a state of a robot. A posture is how the physical components of a robot occupy the 3D Euclidean space. A posture is always a pose, but a pose is not necessarily always a posture. A pose in a 3D task can be the position and the orientation of the end-effector of the robot, while in a 2D visual servoing task it can be the image primitives, for instance: corners, lines, circles, lightening, etc, such that they satisfy the task accomplishment. Here, the message is a pose may not provide the full geometrical configuration of the robot, nonetheless it can be defined such a way that one can conclude the full geometry of the robot. On the other hand, a posture directly gives the full geometry of the robot and this is what we shall estimate.

Algorithm: « Single-Iteration Virtual Visual Servoing »

The classical virtual visual servoing (VVS) repeats the minimization steps of a tracking error until this error becomes smaller than a certain threshold value. Therefore, when this classical VVS is used in a vision-based control (VBC) task for tracking purposes of the robot state, the VBC loop becomes sluggish. However, unlike the classical VVS, we do not repeat the minimization steps of a tracking error more than once between 2 acquisition instants of the camera in our single-iteration VVS. This is because our objective is to use this fast single-iteration VVS in dynamic control of parallel robots. Table 3 In the next subsections, we explain this fast single-iteration virtual visual servoing scheme.

Notation

t ∈ { t c , tc } denotes the time, where t c is an acquisition instant of the camera and tc is an estimation instant for the state variables of the virtual robot. -T ∈ { T c , T c } are the periods of sub-image acquisition of the camera and of the update of the virtual robot state variables, respectively. The virtual time period T c should be equal to or greater than the acquisition time period T c of the camera (T c T c ) so that the virtual robot can catch the motion of the real robot.

j (t) ∈ { 1, 2, . . . } is a function of time instants that denotes which cylindrical kinematic element is observed at time t.

Spatiotemporal Reference Signal

The reference signal, which defines the posture and the velocity of a parallel robot, is constructed from the portions of the legs' contours. These contours are extracted from the subimages of the legs which are grabbed at successive discrete time instants of the motion of the robot.

Sequential Postures Error

A posture error is formed with a pair of reference projection contour points (in metric units),

{ p * jL i , p * jR i
} extracted from the sub-image of a cylindrical kinematic element of the real robot, and their associated edges (feedback signal) computed from the virtual robot's cylindrical kinematic element:

e ji =    p * T jL i n jL p * T jR i n jR   
(3.12)

where i = 1, . . . , m is the index of a detected contour point in a sub-image. Figure 3.4 explains the formation of a posture error. Then, the error vector e j ∈ ℜ 2m×1 of the j th cylindrical kinematic element of the virtual Figure 3.4 -A posture error is defined using a single sub-image which is captured from a cylindrical leg of the real robot. The detected edge pixels of this sub-image allow us to form the reference green and red side rays which pass tangent to the surface of the cylindrical leg of the real robot. And the current feedback signals are the green and red edge vectors computed from the copy of the same cylindrical leg which belongs to the virtual robot. On the condition that the reference rays (i.e., contour points) are measured and the feedback edge vectors are constructed in the same camera frame, these reference rays and these edge vectors become perpendicular to each other only when the virtual leg is superimposed onto the real leg. That is to say, minimization of error (3.12) draws the posture of the virtual robot to the posture of the real robot.

robot is noted for all the contour points as follows:

e j = C * j n j (3.13)
where n is as in (3.11) and C * j ∈ ℜ 2m×6 is a constant reference contour matrix:

C * j = P * T jL 0 0 P * T jR (3.14)
with { P * jL , P * jR } the detected left and right side contours of the j th cylindrical kinematic element of the real robot at an instant of time:

P * jL = p * jL 1 • • • p * jL m ∈ ℜ 3×m (3.15) P * jR = p * jR 1 • • • p * jR m ∈ ℜ 3×m (3.16)
Finally, having the sets of contour matrices from the real robot and their corresponding feedback edge pairs from the virtual robot which are saved up at k sequential discrete instants of time:

C * = C * j ( tc) • • • C * j ( tc -(k-1) Tc ) N = n j ( tc) • • • n j ( tc -(k-1) T c)
the complete error vector e ∈ ℜ 2 k m×1 is formed by stacking the last k posture errors of the legs:

e =    C * j ( tc) n j ( tc) . . . C * j ( tc -(k-1) Tc ) n j ( tc -(k-1) T c)    (3.17)
where j (•) enumerates circular-wise the cylindrical kinematic elements at consecutive instants of time. Figure 3.6 shows an example for the enumeration of the lower-legs of the Quattro robot in a static pose.

In order to assemble the feedback edges n, the virtual robot's posture is evolved back in time with a constant velocity motion model, since the latest estimated dynamic state {X, Ẋ} of the robot is up to first order (i.e., velocity). Assuming that the latest estimated dynamic state and the differential kinematic models of the time instant tc -T c are the approximate predictions of the time instant tc , the feedback edge set is calculated as follows:

n tc-∆t ≈ n tc -∆t M nt c Ẋ tc (3.18)
where ∆t = i T c is the virtual time displacement with i = 0, 1, . . . , (k -1). Figure 3.5 illustrates the formation of the complete error of the postures.

Approximated Edge Evolution Model

In order to regulate this time-space error to zero, a time-space differential model between an edge n at time instant t + ∆t and the effector pose X at reference time instant t needs to be defined. To find this model, we first write small displacement of an edge n:

n t+∆ t = n t + δn t (3.19)
where ∆ t tells how far in time the displaced edge is, and where δn t is the displacement in the edge values with respect to reference time instant t. One can approximate the displacement δn t through (3.10):

δn t ≈ M nt δX t (3.20)
The displacement in the end-effector pose δX t can be approximated with a constant acceleration model as follows:

δX t ≈ ∆t Ẋ t + 1 2 ∆t 2 Ẍ t (3.21)
If the representation of the end-effector pose X t is not an element of a linear vector space, (3.21) is valid only if the rotational axis of the motion during ∆ t time remains constant. Otherwise, it will be still acceptable for a small ∆t. We grab a sub-image per posture from a leg of the real robot and extract the edge contours. The green squares show in which posture, which leg, and which part of this leg is observed. The green arrow shows the motion path of the real robot, and below this green arrow we see the sub-images grabbed during this motion. When the last sub-image is grabbed, the virtual robot's motion is evolved with the latest estimated dynamic state {X, Ẋ} in order to approximate the k postures of the real robot. The motion of the virtual robot evolves on a straight line whereas the motion of the real robot can be along a curve as in the green arrow. The red straight arrow shows the motion path of the virtual robot. Then, for each virtual robot posture, we find the leg which corresponds to the leg observed on the real robot. The red lines on the virtual robot postures show the corresponding observed legs of the real robot. Below the red arrow, we see the 3D cylinders of these legs recovered from the postures of the virtual robot. Finally, the stacked complete error is formed with the extracted edge contours of these k sub-images and the visual edge vectors of these k 3D cylinders.

Finally, the approximated differential model can be expressed using (3.19), (3.20) and (3.21) as below:

ṅ t + ∆t ≈ n t+∆ t -n t ∆t = δn t ∆t (3.22) ṅ t + ∆t ≈ H ( t, ∆t) Ẋ t Ẍ t (3.23)
where H ( t, ∆t) ∈ ℜ 6×2n is the constant acceleration evolution model of the edge pair of a leg:

H ( t, ∆t) = M n t 1 2 ∆t M n t (3.24)
This approximation allows us to solve the inverse kinematic problem of a parallel robot only once instead of k times, where k is equal to or greater than the number of observed legs.

Visual Servoing Control Law

The control law that will bring the error to zero is computed by first differentiating the error in (3.13) with respect to time, which gives:

ėj = C * j ṅj + Ċ * j n j (3.25)
Thus replacing ṅj by (3.23) and imposing ėj = -λ e j for an exponential convergence, (3.25) becomes:

-

λ e j = L e j Ẋ t Ẍ t + Ċ * j n j (3.26)
where L e j ∈ ℜ 2m×2n is the so-called interaction matrix which relates the end-effector pose velocity and its derivative to the implicit error function of a leg:

L e j = C * j H j( t, ∆t) (3.27)
Then, so as to converge to the state of the real robot, we propose the control law u = ẊT u , ẌT u T for update of the pose and the velocity of the virtual robot which satisfies the following system:

L e Ẋ u Ẍ u = -λ ( e -ẽ ) , λ > 0 (3.28)
where L e ∈ ℜ 2km ×2n and ẽ ∈ ℜ 2km ×1 are obtained by stacking associated interaction matrices and the individual errors at each sub-image, respectively:

L e =    L e j ( tc) . . . L e j ( tc -(k-1) T c)    , ẽ =    Ċ * j ( tc) n j ( tc) . . . Ċ * j ( tc -(k-1) Tc) n j ( tc -(k-1) T c)    (3.29)
The term ẽ in (3.28) is difficult to approximate, because we do not use any correspondence between the successively detected reference contour points. Therefore, it will be considered as a disturbance and it will be neglected. The classical solution to (3.28) is then as follows:

Ẋ u Ẍ u = -λ L † e e , λ > 0 (3.30)
However, (3.30) should not be directly calculated with such an ordinary pseudo-inverse least squares regression, since it can be unstable and slow. Here, (3.30) is just a representation of the numerical solution of (3.28). Actually, a better way to solve (3.28) uses damped total least squares and QR decomposition yielding robust and fast solutions. Thus, one can write (3.28) as follows:

A u = b (3.31)
where A ∈ ℜ (2km+2n) ×2n and b (2km+2n) ×1 are the augmented coefficient matrix and the augmented error vector, respectively:

A = L e µ I , b = -λ e 0 (3.32)
with µ damping parameter, I (2n × 2n) identity matrix, and 0 (2n × 1) zero vector. Finally, (3.31) can be solved for u with QR decomposition. Indeed, high-speed control of parallel kinematic mechanisms is hardly conceived in a kinematic way, but rather in a dynamic way (computed-torque control). However, this kinematic control is relevant for tracking where { Ẋ u , Ẍ u } can be numerically integrated.

Virtual Parallel Robot Dynamic State Update

Pose Representations: In our case, the end-effector pose X of the virtual parallel robot has to be in a vector form. In the literature, some well known pseudo-vector form representations of the end-effector pose are as follows:

X 1 =     t α β γ     , X 2 = t u θ , . . . (3.33)
where t = [x, y, z] T is the Cartesian translation vector, (α, β, γ) are the Euler orientation angles, u θ is the axis-angle orientation vector. There is also a matrix-form representation of end-effector pose which is simple to integrate through exponential formulas:

X 3 = R t 0 1 ∈ SE(3) (3.34)
where R ∈ SO(3) is the orientation matrix. However, this matrix form of end-effector pose does not coherent with the estimation equations, because, for instance, the edge velocity relation in (3.8) does not fit.

Redundant Pose Representation: Nonetheless, we can still directly profit from the exponential formulas, thanks to our redundant representation of the end-effector pose which fits better to our objectives: linearity, simplicity, algebraicity, readability, codability. For example, let the redundant end-effector pose X, its velocity Ẋ and its acceleration Ẍ for a 6 degrees of freedom parallel robot be given as follows:

X =   E x y   , Ẋ =   Ė ẋ ẏ   , Ẍ =   Ë ẍ ÿ   ∈ ℜ 9×1 (3.35)
where E, x and y are the origin, the unit x-axis vector, and the unit y-axis vector of the endeffector frame, respectively. The doublet of dynamic state, {X, Ẋ}, allows us easily to pass to the linear differential twist space se(3):

ζ = υ ω = Ė x × ẋ + θ x , ζ = [ω] × υ 0 0 ∈ se(3) (3.36)
where ζ ∈ ℜ 6×1 is the velocity twist of the end-effector frame and ζ ∈ ℜ 4×4 is the homogenous coordinates of the velocity twist ζ. We wrote the rotational velocity ω using Chapter 2 Lemma 1. Then, we replace the angular velocity θ using the known motion of the y-axis as below:

θ = ( y × ẏ ) T x (3.37)
At this point, we can reformulate (3.36) in a matrix-vector product from se(3) space to our redundant pose space:

Ẋ = L X ζ , L X =   I 3×3 0 3×3 0 3×3 [ x ] T × 0 3×3 [ y ] T ×   ∈ ℜ 9×6 (3.38)
and as well as from our redundant pose space to se(3) space:

ζ = L † X Ẋ , L † X =   I 3×3 0 3×3 0 3×3 0 3×3 [ x ] × x ( x × y ) T -( x × y ) T x I 3×3   ∈ ℜ 6×9
(3.39) where I 3×3 is 3 × 3 identity matrix.

Consequently, the triplet {X, Ẋ, Ẍ} yields the acceleration twist:

ζ = υ ω = Ë x × ẍ + θ x + θ ẋ ∈ ℜ 6×1 (3.40)
where angular acceleration θ can be replaced by the differentiation of (3.37) with respect to time:

θ = ( y × ÿ ) T x + ( y × ẏ ) T ẋ (3.41)

Static State Update:

The latest estimated pose X in (3.35) at time instant tc -T c can be updated with the control law { Ẋu , Ẍu } as follows:

X 1 tc = δT X 1 ( tc-T c) (3.42)
where δT ∈ ℜ 10×10 is a homogenous transformation for a small displacement in a redundant Euclidean space:

δT =     δR 0 0 δt 0 δR 0 0 0 0 δR 0 0 0 0 1     (3.43)
The δR and δt are the orientation and position displacements generated by the exponential map of the control twists {ζ u , ζu }. These control twists are generated by the {X, Ẋu , Ẍu } triplet as it is explained through (3.35)-(3.41). For a constant velocity evolution model, these displacements are computed as follows:

δR δt 0 1 = e T c ζ u (3.44)
For a constant acceleration evolution model, these displacements are computed as follows:

δR δt 0 1 = e T c ( ζ u + 1 2 T c ζu ) (3.45)
where ζ u ∈ ℜ 4×4 and ζu ∈ ℜ 4×4 are the homogenous coordinates of the control twists.

Velocity State Update:

The latest estimated pose velocity Ẋ at time instant tc -T c can be updated with the acceleration control twist ζu . This acceleration control twist is computed using the triplet {X, Ẋ, Ẍu } as it is explained through (3.35)-(3.41). Hence, assuming that the acceleration is constant during T c seconds, the end-effector pose velocity is updated as follows:

Ẋ tc = Ẋ( tc-T c) + T c ζu X 1 ( tc-T c) (3.46)
where ζu ∈ ℜ 9×10 is a homogenous transformation which relates the homogenous form of the current end-effector pose X to the end-effector pose velocity Ẋ:

ζu =   [ ωu ] × 0 0 υu 0 [ ωu ] × 0 0 0 0 [ ωu ] × 0   (3.47)

Predicting Future Sub-Image Location

The next dynamic state estimation needs a future sub-image to be grabbed at the next future sampling time t c + T c . The position of this sub-image on the image plane must be correctly predicted from the current dynamic state { X, Ẋ } computed for the time instant t c . Otherwise there will not be any useful signal in the grabbed sub-image and tracking will fail. Achieving a correct prediction is, itself, a proof of the correct performance of the proposed method. In order to predict any of the corresponding sub-image positions of the legs, we first find the likely future pose of the real robot:

X 1 (tc+ Tc) = δT X 1 tc (3.48)
where δT is a homogenous transformation, as it is shown in (3.43), written from the exponential map of the current end-effector velocity twist ζ using a constant velocity motion model.

Once the likely future end-effector pose X ( tc + Tc) is found, it is dissolved for the tip point B j and for the orientation unit vector x j of a leg through the inverse kinematic model (IKM). Subsequently, the next location of the corresponding sub-image center is calculated as follows:

z j im w j 1 = K ( B j -d j x j ) (3.49)
where im w j ∈ ℜ 2×1 is the next predicted location of a sub-image center in pixel units, d j is a distance that indicates how far along the cylindrical leg to the leg's tip point the observed region is, z j is the projective scale factor, and K is the camera intrinsic matrix.

Applied to the Quattro Parallel Robot

In the case of the Quattro robot, the static posture is encoded in the contours of the 4 lower-legs. Thus, the dynamic state of the Quattro robot can be estimated by using at least 4 sub-images, which are grabbed from each of the lower-legs at consecutive discrete time instants of the motion. Figure 3.6 shows these 4 sub-images on the lower-legs of the Quattro.

Figure 3.6 -A full image of lower-legs with their sub-images from the base-mounted camera of the Quattro robot. These sub-images are consecutively grabbed at discrete time instants and given to the virtual visual servoing as a reference. In this image, the Quattro robot is static.

On the Observability of the Legs

Furthermore, while even the lower-leg rod being observed is partially out of the field of view of the camera, we can still obtain meaningful information by keeping the sub-image in the visible region via the parameter d j , which slides the sub-image along the observed leg, and/or by observing the other rod if the leg is a parallelogram type.

In the case of a detected occlusion in the sub-image, one should relocate another sub-image on an unobstructed region of the same leg without forgetting about the change in the acquisition period T c for the next state estimation. Even better, not to waste time for the next estimation, one can foresee the occlusion and can locate the sub-image directly on the unobstructed region of the leg. Consequently, this discussion poses the following questions: (i) How can one detect the occlusion in the sub-image? (ii) How can one foresee the occlusion before grabbing the sub-image?

End-Effector Pose Representation

The end-effector of the Quattro parallel robot has 4 degrees of mobility: 3 translational mobility along the x, y, z axes, and 1 rotational mobility (θ z ) around the z axis. These motion axes are decoupled and they form a linear vector space. Since this representation is linear, it eases algebra and increases accuracy of the edge evolution models. Since this representation is minimal, it accelerates computations through smaller size of matrix multiplications. Thus, in high-speed dynamic state estimation of the Quattro parallel robot, we use minimal pose representation of the end-effector:

X = E T θ z T ∈ ℜ 4×1 (3.50)
rather than the redundant pose representation which is used in Chapter 2 for linear modeling purposes:

X = E T x T e T ∈ ℜ 6×1 (3.51)
where E is the origin and x e is the x axis of the end-effector frame. The velocity of the minimal pose representation X ∈ ℜ 4×1 is directly in the 4 dof se(3) space:

Ẋ = L X υ ω z , L X = I 4×4 (3.52)
where ω z is rotational speed around the z axis (i.e., the third component of ω). Then, the dynamic state of the Quattro parallel robot can be simply updated as follows:

X tc = X ( tc-Tc) + Tc Ẋu (3.53) Ẋ tc = Ẋ ( tc-Tc) + Tc Ẍu (3.54)

Validation By Simulations

The proposed high speed state estimation approach is verified by simulation results on Matlab software. Figures 3.7 and 3.8 show the simple block representations of the estimation algorithm and of the validation process. Each estimation is done with a single-iteration virtual visual servoing. We remark that the computation of the velocity control law Ẍu is very ill-conditioned. Therefore, the pose velocity estimation is directly assigned equal to the pose update control law Ẋu . Acquisition Scenario: The camera sub-image acquisition frequency is set to 500 Hz. Then, the reference contour set will be composed of the last successively grabbed 4 sub-images of the corresponding lower-legs while the Quattro robot is being moved on a defined test trajectory. For example, the first estimation will use the set of sub-images of the lower-legs {1, 2, 3, 4}, the second will use the set of {2, 3, 4, 1} and so on. Each sub-image is a 40 × 40 pixel 2 region and contains approximately 25 pixels for each side (left and right) of the observed lower-leg rod. Figure 3.9 explains the acquisition scenario of the dynamic state estimation.

Performance Metrics:

The end-effector pose of the Quattro robot is composed of 3D positional part (xyz) and 1D orientational part (θ). Thus, we will evaluate the performances in these two parts. In order to evaluate the performance of the estimated states, we will use two different accuracy metrics: root-mean-square of residuals (RMSE) and Hausdorff distance. RMSE is the Figure 3.9 -The scenario of the sub-image acquisition instants of the legs of the Quattro robot for its dynamic state estimation. Black squares represent instants of already grabbed sub-images. White squares are future instants of sub-image grabbing. t c is the last acquisition instant of the camera. tc is the last estimation instant. Black triangles represent instants of already made estimations for the dynamic state of the robot. White triangles are future estimation instants. T c is a time period of successive acquisitions of the camera. most well-known metric to assess the tracking errors:

RM SE = n i=1 (x -x e ) 2 i n (3.55)
where x is a known state, x e is an estimated state which corresponds to the known state, and n is the number of estimations. However, if there is a latency in tracking, RMSE might not tell enough about the similarity of two trajectories in space. More explicitly, even if the performed trajectory by the real robot and the estimated trajectory by the single-iteration virtual visual servoing are perfectly aligned in 3D Euclidean space, RMSE might yield errors due to existing tracking latency. Therefore, we will also use Hausdorff distance metric, which can compare how close the two space curves are, without concern of the tracking latency. Let A = {a 1 , . . . , a m } and B = {b 1 , . . . , b n } be the two curves of points, then Hausdorff distance is defined as follows:

H(A, B) = max{ h(A, B), h(B, A) } (3.56)
where h(A, B) is the maximum distance of a curve to the nearest point in the other curve:

h(A, B) = max a∈A { min b∈B a -b } (3.57)
namely (3.57) says that for every point a of A, find its smallest distance to any point b of B; finally keep the maximum distance found among all points a.

Test Trajectory:

The test trajectory is a 0.2 m diameter half-circle motion with 2 m/s maximum velocity and 4G maximum acceleration. It is planned to span XY, XZ and YZ planes. Figure 3.10 shows traces of the test trajectory in time space. Table 3.3 tabulates accuracies of the position and orientation estimations without any noise in the system. In Table 3.3, even though there is no noise at all, the source of estimation errors are due to the following three reasons: -the constant velocity model being used for evolution of the feedback edges of the virtual robot while the movement of the real robot is accelerating. -use of an approximated spatiotemporal edge evolution model for fast estimation.

-using the pose update control law for the pose velocity estimation, since the computation of the velocity update control law is very ill-conditioned.

Robustness To Noise:

We imitate the following sensor noises to test the robustness of the estimation method:

-Calibration noise: Camera extrinsic parameters, orientation matrix R and position vector t with respect to robot base frame, are subjected to noise. Orientation matrix R is deflected with 1 • degree around an arbitrary axis. The position vector t is displaced 0.005 m away along an arbitrary direction. -Image noise: The reference contour pixels are orthogonally and uniformly perturbed (with respect to their corresponding edges) by [-1, +1] pixel. Table 3.4 tabulates accuracies of the position and orientation estimations under the aforementioned noises. Figure 3.11 depicts the reference and estimated Cartesian space curves. Figure 3.12 plots estimated Cartesian velocities of the end-effector versus time. Figure 3.13 plots positional and orientational estimation errors versus time. 3.4).

When Hausdorff distance results of Tables 3.3 and 3.4 are compared, we see that the calibration noise of the camera is directly pronounced on the estimated 3D trajectory, while the uniform distribution of the image noise almost has no effect. RMSE results show that we have a certain latency in tracking which remains about at the same distance without noise and with noise. 3.4).

103

Conclusions

We validated by simulations correctness of the high-speed integrated dynamic MICMAC observer on the Quattro parallel robot. At the same time, this dynamic state observer meets the second objective of the thesis which is stated as « Fast estimation of the dynamic state (position and velocity) of the parallel robot from its leg observations. » at the end of the Chapter 1. The obtained results are promising, and we shall see what this high-speed dynamic state observer will give in experiments in Chapter 4. The next section discusses on some possible control scenarios built upon the inverse dynamic model presented in Chapter 2 and on the fast dynamic state observer explained here. 3.4).

Sensor-Based Computed-Torque Control based on Sequential Leg Observations

In this part, we integrate the linear inverse dynamic model and the high-speed dynamic state observer in order to define various computed-torque control laws. The objective of this part is to explore the regulation of different error functions and to discover the formative points of better control of parallel robots.

Control Variable

The actual sensor signal is the set of the contours, {C * }, of the cylindrical kinematic elements extracted from sequentially grabbed sub-images. These contours are then exploited to compute the dynamic state of the real robot through a virtual robot imitating its motion. This virtual robot is controlled by a single-iteration virtual visual servoing scheme at each sub-image acquisition instant as it is explained in Section 3.2.2. This virtual robot can deliver every variable and its velocity needed for efficient modeling and control of the real robot. Thus, we can test our linear inverse dynamic model with different control spaces. Figure 3.14 illustrates the selection of a variable set for a control space. The chosen control space s c must represent the state of the parallel robot. So, one can have different candidates for s c depending on the architecture of the parallel robot. For example, one can use the following variables as a control space of the Quattro robot:

-the edges of the kinematic elements: { n Lef t , n Right } -the orientation unit vectors of the kinematic elements: x -the pose of the end-effector: X -the articular positions: q More precisely, the control space s c can be noted as follows:

s c ∈ { { n Lef t , n Right } , x , X , q , . . . } (3.58)
The s c can also be chosen as a combination set of those variables for optimal control purposes.

Note that only q itself should not be s c , because q alone cannot define always the state of a parallel robot but it can be taken in any combination set of the s c .

Versatile Control Law

In order to define a versatile control law, which can regulate any control space, we will consider that the chosen control space s c is different than the state space s of the linearized dynamics of the robot:

IDM ( s , ṡ , s ) A(s) u + h(s , ṡ) (3.59)
where s is replaced by the linear control law u . Hence, we should first relate this actual control law u to a pseudo-control law ω. This pseudo-control law ω linearizes the dynamics of the chosen control space sc = ω and it is built upon an error function f e which is written in terms of the control space variables rather than the linearized state space variables:

e = f e ( s * c (t), s c (t) ) (3.60)
where s * c is a reference state in the control space at time instant t.

In order to find the relation between the actual control law u and the pseudo-control law ω, we assume that there is a second-order diffeomorphism 1 between the state space s and the control space s c . If so, one can write the zeroth-order bijective mapping as follows:

s = f sc ( s c ) (3.61)
where f sc is a bijective function which maps control space to state space. Then, let the firstorder diffeomorphism be noted as below:

ṡ = L sc ṡc (3.62)
where L sc is a differential model which maps the differential control space to the differential state space. Finally, the second-order diffeomorphism is written by differentiating the firstorder diffeomorphism (3.62) with respect to time:

s = Lsc ṡc + L sc sc (3.63)
Using the second-order diffeomorphism given in (3.63), one can find the relation between pseudo and actual control laws by replacing their dynamics with themselves of the control laws s = u and sc = ω, respectively:

u = f u ( L sc , Lsc , ṡc , ω ) = Lsc ṡc + L sc ω (3.64)
where f u is a function of the differential model L sc and its derivative, of the derivative of the control-variable s c and the pseudo-control law ω. Consequently, one has to know the set { s c , ṡc , L sc , Lsc } to calculate the actual control law u by the pseudo-control law ω.

In order to show that the error f e can be regulated too, one should prove that the linearized dynamics in the state space (s = u) is equivalent to the linearized dynamics in the control space (s c = ω). In order to prove this equivalence, one can rewrite the linearized dynamics of the state space using the right sides of the last two expressions in (3.63) and (3.64):

Lsc ṡc + L sc sc = Lsc ṡc + L sc ω (3.65)
and this boils down to the linearized dynamics of the control space (s c = ω), on the condition that good approximations of the models exist and (s c -ω) does not lie in the null-space of L sc . Finally, the pseudo-control law ω can be extracted from the following second-order error dynamics:

0 = K P e + K D ė + ë (3.66)
where K P and K D are the proportional and derivative positive controller gains, respectively. The derivative of the error vector e with respect to time is written as follows:

ė = d dt ( f e ( s * c (t), s c (t) ) ) = ∂ f e ∂ s * c ṡ * c + ∂ f e ∂ s c ṡc (3.67) 1.

invertible and differentiable smooth functions

The pseudo-control law ω which we look for is hidden in the ë. In order to make it appear, we differentiate the velocity of the error vector e with respect to time, too. This yields:

ë = d 2 dt 2 ( f e ( s * c (t), s c (t) ) ) = d dt ( ∂ f e ∂ s * c ) ṡ * c + ∂ f e ∂ s * c s * c + d dt ( ∂ f e ∂ s c ) ṡc + ∂ f e ∂ s c ω (3.68)
The term in front of the pseudo-control law ω in (3.68) can be expressed as below:

∂ f e ∂ s c = C(s * c (t)) (3.69)
where C( s * c (t) ) is a matrix written from the reference state s * c of the control space at time t. As long as this matrix C( s * c (t) ) is non-singular, one can calculate the pseudo-control law ω:

ω = -C † K P e + K D ė + d dt ( ∂ f e ∂ s * c ) ṡ * c + ∂ f e ∂ s * c s * c + d dt ( ∂ f e ∂ s c ) ṡc (3.70)
This yields a second-order convergence in s c . Figure 3.15 shows the block diagrams of the linearized dynamics in the control space and in the state space. Figure 3.16 describes the versatile computed-torque control scheme.

Figure 3.15 -Linearized dynamics in the control space (left) and linearized dynamics in the state space (right).

Figure 3.16 -Versatile computed-torque control scheme (V-CTC).

Variations Upon the Control Space

In the following parts, we propose three novel control laws for comparative purposes of the dynamic control of a parallel robot. Proposed novel control laws are derived from the aforementioned versatile computed-torque control scheme. These control laws differ from each other by the choice of the control space (i.e., control variable s c ) and consequently by the use of various transformations in the control scheme (f e , f u ). Proposed control laws are applicable to any parallel robot. Here, we demonstrate the application of these novel control laws on the Quattro parallel robot in order to be consistent with the given examples throughout the thesis and to ease the following of the expressions. Before going into details of these control laws, we remind the inverse dynamic model of the Quattro parallel robot once more:

Γ = IDM ( ẍ, ẋ, x ) (3.71)
where the inverse dynamics is expressed by means of the leg orientations x.

Proposition I: Body Orientation Space Computed-Torque Control (BS-CTC)

Since the 3D direction vectors of the kinematic elements stand almost at the heart of the inverse dynamic model of the Quattro robot (ẍ = u), the control variable set is chosen as

s c = { x pi , x ai , x e | 4
i=1 }, and the error is directly regulated over them in order to have an efficient performance:

f e ( x * , x ) = e =             x * p1 . . . x * p4 x * a1 . . . x * a4 x * e             -             x p1
. . .

x p4 x a1 . . .

x a4 x e             (3.72)
where { x * pi , x * ai , x * e | 4 i=1 } are the desired orientation vectors of the kinematic elements and e ∈ ℜ 27×1 is the orientations error vector. Afterwards, the pseudo-control law, ω ∈ ℜ 27×1 , can be calculated through (3.72) and (3.70):

ω = K P e + K D ė + ẍ * (3.73)
One can directly use this pseudo-control law as the final control law u = ω, since the state space of linearized dynamics and the control space are the same space (f u = 1). Figure 3.17 shows the block diagram of the body orientation space computed-torque control scheme.

Figure 3.17 -Body orientation space computed-torque control (BS-CTC).

Note that we exploited all the direction vectors of the kinematic elements of the Quattro robot as a control signal to control its full posture. In another parallel robot, the full posture might be controlled by some of the direction vectors of the kinematic elements, such as using only the directions of the observed kinematic elements. In the case of the Quattro robot, only the directions of the observed lower-legs cannot provide a unique posture. For example, for every configuration of the lower-legs of the Quattro robot, which stays around a line that passes through the origin O and is parallel to the z-axis of its base frame, there is a second posture of the Quattro robot with the same configuration of the lower-legs. This second posture is where the upper-legs are symmetric to the first posture with respect to the plane passing through the motor positions at the base platform. Figure 3.18 shows examples of these postures.

Proposition II: Leg-Based Cartesian-Space Computed-Torque Control (LCS-CTC)

In this control scheme, the minimal end-effector pose representation of the Quattro parallel robot is used as a Cartesian space control variable:

X = E T θ z T ∈ ℜ 4×1 (3.74)
Figure 3.19 shows the block diagram of the leg-based Cartesian-space computed-torque control scheme.

Figure 3.19 -Leg-based Cartesian-space computed-torque control scheme (LCS-CTC).

Here, we will note this minimal end-effector pose representation with X 4 rather than X in order not to confuse it with the 6 × 1 redundant end-effector pose representation of the Quattro parallel robot. Subsequently, we will note the redundant end-effector pose representation with X 6 for consistency of the notation. Since this minimal pose representation has decoupled components, the error can be defined as a direct difference in the Cartesian space:

f e ( X * 4 , X 4 ) = e = X * 4 -X 4 (3.75)
where X * 4 and X 4 are the desired and the current minimal pose vectors. Afterwards, the pseudocontrol law ω can be calculated through (3.75) and (3.70) as follows:

ω = K P e + K D ė + Ẍ * 4 (3.76)
As a consequence of (3.76), the control law u can now be calculated from (3.64) as below:

u = LX Ẋ 4 + L X ω = f u ( L X , LX , Ẋ 4 , ω ) (3.77)
where L X ∈ ℜ 27×4 is the inverse differential kinematic model between the end-effector pose X 4 and the 3D direction vectors of the kinematic elements. Using the differential kinematic models defined in (2.147), (2.149) and (2.152) of Chapter 2, we can write L X as follows:

L X =   M p 6 T 4 M a 6 T 4 M e 6 T 4   (3.78)
where M p , M a and M e are the differential kinematic models of the direction vectors of the upper-legs, the lower-legs, and the rotational-bar of the nacelle, respectively. 6 T 4 ∈ ℜ 6×4 is the transition matrix which maps velocity of the minimal end-effector pose representation to the redundant pose representation:

Ẋ 6 = 6 T 4 Ẋ 4 , 6 T 4 = I 3×3 0 3×1 0 3×1 y e (3.79)
where

X 6 = E T x T e
T ∈ ℜ 6×1 is the redundant pose representation which is used in Chapter 2 for linear modeling purposes, and all the differential kinematic models brought from Chapter 2 were written with respect to this redundant pose X 6 .

Proposition III: Edge-Space Computed-Torque Control (ES-CTC)

The left and the right edge equations in pixel-units {( im n Lef t , im n Right ) i }| 4 i=1 ∈ ℜ 3×1 of the image projections of the lower-leg rods (see Fig. 3.6) of the Quattro parallel robot are exploited directly as a control variable set. These visual edge vectors of the lower-legs are enough to define the state of the Quattro robot. Therefore, we do not need to use in addition the visual edge vectors of the other kinematic elements (e.g., upper-legs). Figure 3.20 shows the block diagram of this edge-space computed-torque control scheme. In this scheme, the error Figure 3.20 -Edge-space computed-torque control scheme (ES-CTC).

vector for each lower-leg, e i ∈ ℜ 6×1 , is defined as follows:

e i = e Li e Ri = ( im n * Lef t -im n Lef t ) i ( im n * Right -im n Right ) i (3.80)
where { im n * Lef t , im n * Right } are the left and right desired projection-edges of a lower-leg rod. The complete error vector e of all the lower-legs is noted in a stacked form using (3.80) as follows:

f e ( im n * , im n ) = e = [ e T 1 , e T 2 , e T 3 , e T 4 ] T (3.81)
Hence, one can derive the differential relation between the orientation vector of a lowerleg rod and its projection-edges in pixel coordinates by differentiating the expressions below brought from (1.96) and (1.92):

c x ai = c n Lef t × c n Right c n Lef t × c n Right , c n = K T im n K T im n (3.82)
After some algebraic calculus, the following expression appears:

c ẋai = M nx ai ( im ṅ Lef t ) i ( im ṅ Right ) i (3.83)
where M nx ai ∈ ℜ 3×6 is the interaction matrix between the velocities of a lower-leg rod 3D direction and its projection-edges:

M nx ai = π( c x ai ) c x ai [ ( c n Right ) i ] T × π(( c n Lef t ) i ) ( c n Lef t ) i K T [ ( c n Lef t ) i ] × π(( c n Right ) i ) ( c n Right ) i K T (3.84
) and where c x ai and ( c n Lef t/Right ) i are respectively the non-unit vectors of the direction of a cylindric leg and the visual edges of the same leg:

c x ai = ( c n Lef t ) i × ( c n Right ) i , ( c n Lef t/Right ) i = K T ( im n Lef t/Right ) i (3.85)
The π(•) ∈ ℜ 3×3 denotes an orthogonal projection matrix with respect to an associated vector. This orthogonal projection matrix π(•) appears in the time derivation of a unit vector. For instance, let x be an orientation vector of a leg of a robot, then time derivative of the normalized orientation vector can be expressed by the orthogonal projection matrix π(x) as follows:

d dt x x = 1 x π(x) ẋ = 1 x I 3 -x x T ẋ (3.86)
Then, we proceed by writing down all relations between the 3D directions of lower-legs and their projection-edges in a matrix-vector from:

    c ẋa1 c ẋa2 c ẋa3 c ẋa4     Ẋa =     M nx a1 0 0 0 0 M nx a2 0 0 0 0 M nx a3 0 0 0 0 M nx a4     M na              ( im ṅ Lef t ) 1 ( im ṅ Right ) 1 ( im ṅ Lef t ) 2 ( im ṅ Right ) 2 ( im ṅ Lef t ) 3 ( im ṅ Right ) 3 ( im ṅ Lef t ) 4 ( im ṅ Right ) 4              im Ṅ (3.87)
where Ẋa ∈ ℜ 12×1 , M na ∈ ℜ 12×24 and im Ṅ ∈ ℜ 24×1 are the stacked vector of c ẋai , the concatenated block diagonal matrix of M nx ai , and the stacked vector of ( im ṅ Lef t/Right ) i , respectively. After that, we continue by writing the differential model which relates the velocities of lower-leg direction vectors to the rest of the velocities of the direction vectors of the kinematic elements:

     c ẋp1 . . . c ẋp4 c ẋe      Ẋpe = M p M e M a † Mape    c ẋa1 . . . c ẋa4    Ẋa (3.88)
where M ape ∈ ℜ 15×12 requires only a 4 × 4 linear system solving in its computation due to the pseudo-inverse of the M a ∈ ℜ 12×4 . The M p , M a and M e are again the differential kinematic models of the directions vectors of the upper-legs, the lower-legs, and the rotating rod of the nacelle, respectively. These differential kinematic models can be found in Chapter 2. The Ẋpe ∈ ℜ 15×1 is the stacked vector of c ẋpi and c ẋe . Now at this point, we can write the first-order diffeomorphism between the differential control space and the differential state space:

Ẋa Ẋpe = M na M ape M na L n im Ṅ (3.89)
where L n ∈ ℜ 27×24 is the differential model of the first-order diffeomorphism. Then, we write the control law u ∈ ℜ 27×1 from (3.64) as follows:

u = f u ( L n , L n , im Ṅ, ω ) = L n im Ṅ + L n ω (3.90)
where the pseudo-control law ω is computed by using (3.82) and (3.70):

ω = K P e + K D ė + im N * (3.91)

Validation By Simulations

The proposed vision-based computed-torque control laws are validated by simulations on the Quattro parallel robot. These simulations are conducted on the ADAMS & Simulink platform. The simulation frequency is set to 500 Hz. A 0.2 m diameter reference circle motion with 2 m/s maximum velocity and 4G maximum acceleration is planned such that it spans XY, XZ and YZ planes. Figure 3.21 shows this reference circle motion versus time. The simulations are executed for previously explained three computed-torque control laws: BS-CTC, LCS-CTC, and ES-CTC. Afterwards, the results are compared.

Feedback Sensing

The high-speed dynamic state observer is not integrated here for computation of the feedback signals. We did so to analyse the respective properties of the proposed control laws independently from the technological constraints. Indeed, the development of smart fast cameras in the coming years might enable fast tracking of all the legs in a simultaneous way. Moreover, our high-speed dynamic state observer can be easily adapted to the developing new sensing technologies so as to perform simultaneous posture and velocity estimations of all the legs. As a consequence, we deliberately take the following assumption: Assumption 1 Image projection lines n of the lower-legs and their velocities ṅ can be precisely measured at high speed and simultaneously.

Here, we take the opportunity to propose another tracking algorithm [START_REF] Ozgur | Vector-based dynamic control of the Quattro parallel robot by means of leg orinetations[END_REF] based on the Assumption 1, although it is not feasible in practice until the smart fast cameras become a reality. On the other hand, this algorithm is perfectly in step with our methodology in the sense of linearity and codability. The additional advantage of this new tracking algorithm is that it forms a constructive proof of:

Lemma 2 The edge set ( ∀j , ∀i , { n ji , ṅ ji } | j ∈ {(L)ef t, (R)ight}, i ∈ {1, 2, 3, 4}
) of the first cylindric rods of the lower-legs implies the dynamic state of the Quattro parallel robot, and the required variable set for kinematics and dynamics can be calculated from this set.

Cylindrical Kinematic Element Constraints

We remind once more the two profitable geometric constraints of a cylindrical rod in a lower-leg:

B i1
T n ji = -r (3.92)

x ai = n Li × n Ri n Li × n Ri (3.93)
where x ai , n ji and r are the direction, a projection-line and the radius of the cylindrical rod in a lower-leg, respectively. Fore further details on the robotic leg projection and 3D construction, the reader is referred to the integrated MICMAC part of the Chapter 1.

Computation of the Attachment Points

Recalling the assumption that the attachment point B i1 (i.e., the point located on the nacelle) is lying on the revolution axis of the lower-leg rod with radius r, the geometric constraint in (3.92) is applied on the both of projection-lines (i.e., left and right sides) of the first rods of the lower-legs 1 and 2. This yields:

n L1 T B 11 = -r n R1 T B 11 = -r n L2 T B 21 = -r n R2 T B 21 = -r (3.94)
Taking into account the nacelle parameters, one can have the following relation:

B 11 = B 21 + -----→ B 21 B 11 (3.95)
where -----→ B 21 B 11 is a constant vector, which can be retrieved by calibration or from the CAD model:

-

----→ B 21 B 11 = H 2 z p2 -(d + 2d x )x b - H 2 z p1 (3.96)
By replacing B 11 in (3.94) with (3.95), the following linear system can be obtained from the image information:

    n L1 T n R1 T n L2 T n R2 T     N j 21 B 21 =      -r -n L1 T ( -----→ B 21 B 11 ) -r -n R1 T ( -----→ B 21 B 11 ) -r -r      β 21 (3.97)
The least-square solution, B 21 , of this 4 × 3 linear system is unique provided that 3 of the interpretation planes are linearly independent:

B 21 = N † j 21 β 21 (3.98)
where N † j 21 is the pseudo-inverse of N j 21 ∈ ℜ 4×3 and needs only 3 × 3 matrix inversion which can be algebraically computed. Using (3.95), one can also arrive at B 11 .

After that, a second linear system can be built to compute B 31 and B 41 by repeating the same procedure on lower-legs 3 and 4. We would like to point out that this estimation is performed in a single image. Note that this result was already verified in [START_REF] Dallej | Image-based visual servoing of the I4R parallel robot without proprioceptive sensors[END_REF] on a real I4R robot, and was adapted here for the end-effector of the Quattro robot.

Computation of the Attachment Point Velocities

The velocities of the attachment points B i1 can be computed by differentiating the constraints in (3.97) and solving the linear systems for Ḃ21 and Ḃ31 . In order to calculate Ḃ21 the new linear system is written as follows:

    n L1 T n R1 T n L2 T n R2 T     Ḃ21 =     -ṅ L1 T B 11 -ṅ R1 T B 11 -ṅ L2 T B 21 -ṅ R2 T B 21     (3.99)
while Ḃ31 can be computed similarly. Then, velocities of the (attachment) points that are located on the same rigid part of the nacelle will be equal:

Ċ1 = Ċ2 = Ḃ21 = Ḃ11 (3.100) Ċ3 = Ċ4 = Ḃ31 = Ḃ41 (3.101)
Required Variable Set Looking at carefully to the modeling of the Quattro robot at the end of the Chapter 2, one can list the required variable set for kinematics and dynamics as follows:

-{ x pi , ẋpi , ẍpi , y pi } the variables related to the active upper-legs.

-{ x ai , ẋai , ẍai } the variables related to the passive lower-legs.

-{ x e , ẋe , ẍe , y e } the variables related to the passive nacelle. So, one can start computing the zero-order variables of the robot. The variables of the upperlegs are given as follows:

x pi = 1 ℓ pi B i1 -P i - ----→ A i A i1 -ℓ ai x ai (3.102) y pi = z pi × x pi (3.103)
where ℓ pi , ℓ ai , P i , ----→ A i A i1 and z pi are the constant parameters and vectors. The nacelle variables are expressed as below:

x e = (C 2 -C 3 )/h (3.104)

y e = z e × x e (3.105)
where z e and h are constants, and the C 2 and C 3 can be represented as follows: The first-order variables of the passive nacelle can be calculated as follows:

C 2 = B 21 + ----→ B 21 C 2 (3.106) C 3 = B 31 + ----→ B 31 C 3 (3.107) with { ----→ B 21 C 2 , ----→ B 31 C 3 } constant
ẋe = ( Ċ2 -Ċ3 )/h (3.108) ẏe = z e × ẋe (3.109)
After that, the end-effector pose X and its velocity Ẋ can be expressed as below:

X = (B 21 + ----→ B 21 C 2 -h 2 x e -a y e ) x e
(3.110)

Ẋ = ( Ḃ21 -h 2 ẋe -a ẏe ) ẋe (3.111)
Then, the rest of the first-order variables (upper-legs, lower-legs, parts of nacelle) is obtained as below:

Ẋ =   M p M a M e   Ẋ = M X Ẋ (3.112)
where X ∈ ℜ 27×1 is the variable vector of the system:

X = x T p1 , . . . , x T p4 , x T a1 , . . . , x T a4 , x T e T (3.113)
and where M X ∈ ℜ 27×6 is the interaction matrix between the end-effector pose and the system variables. The second-order variables can be computed by differentiating (3.112) as follows:

Ẍ = ṀX Ẋ + M X Ẋ (3.114)
The actuated joint speeds q and their accelerations q which are required for computation of the actuator inertial and frictional torques can be also obtained as below:

q = M q Ẋ (3.115) q = Ṁq Ẋ + M q Ẍ (3.116)
where ṀX , M q and Ṁq are written from the zero-order and the first-order variables which already exist since (3.112). The second-order time derivative of the end-effector pose will be coming directly from the control-law (if the control-variable is chosen as the end-effector pose) or it will be computed through the second-order diffeomorphism between the chosen controlvariable and the end-effector pose. Thereby, at this point we substantiate that exploiting only the image edges n and their velocities ṅ of the lower-legs of the Quattro parallel robot, it is possible to figure out the whole variable set for dynamic control. Note that this confluence is made easy, thanks to the vectorbased formulation of both the dynamics and the differential geometry in the image. 2

Noises for Robustness Test

The following two noise types are contaminated to the system to test the robustness of the control laws:

-Mechanical noise: Firstly, 100µm of uncertainty is injected on the 3D coordinates of the extremity points {A i1 , B i1 } of the lower-legs of the Quattro robot so as to imitate the effects of clearances in passive joints, assembly errors, etc. This noise has a great impact on the orientations of the lower-legs. A good calibration is a must in the case of ignorance of that kind of mechanical errors. -Sensory noise: Afterwards, for sensory noise, the locations of the visual contours of a lower-leg are orthogonally perturbed (with respect to its noiseless projection-line) in between [-2, +2] pixels. This noise makes the new fitted line take a slight deflection off the previous noiseless one.

Performance Metric

The accuracy of the proposed control laws is assessed in terms of mean and standard deviation values of the position (xyz) and orientation (θ) tracking errors of the end-effector pose. Table 3.5 lists these accuracy results for each control law obtained under previously explained noise types. The mean values are shown in bold font and the standard deviation values are shown in italic font.

End-Effector Computed-Torque Control (EE-CTC)

We also performed another computed-torque control with a feedback pose estimated by the direct observation of the end-effector pose (EE-CTC) instead of computing this pose from the lower-leg edges. This feedback pose X 4 is corrupted with a {100 µm, 0.01 • } noise which corresponds to state-of-the-art accuracy of high-speed vision. The results of this EE-CTC are shown in the last row of the Table 3.5 below of LCS-CTC column. Figure 3.23 shows the block diagram of the end-effector computed-torque control scheme.

Results

Figures 3.24, 3.25, and 3.26 depict traces of the performed trajectories and applied torques obtained under the noises given in the fourth row of the Table 3.5. Observing results in Table 3.5, one can immediately conclude that LCS-CTC performs better and ES-CTC performs worse than the others. It is surprising to have that result while our expectations are put on the ES-CTC since the control variable im n is directly defined in the very sensor-space. However, differences on the orders of magnitudes of the errors are not so decisive to promote one over the others.

Going into details of results given in Table 3.5, one can end up that: ES-CTC and BS-CTC seem robust only to the noises in the sensor space (line fitting easily smooths out the 2D sensory noise), while being sensitive to the mechanical errors. They are slightly better in rotation but slightly worse in translation than LCS-CTC. It seems that, the closer the control space to the operational space of the robot is, the better the results are. Moreover, the superior robustness of LCS-CTC to both types of noise (i.e., mechanical and sensory) can be explained by the fact that the pose is calculated from the projection-lines of the lower-legs. This imposes explicitly the closed-loop kinematic constraint that is helping to smooth out the 3D mechanical noise.

In the applied torques LCS-CTC performs better too, while the others are more oscillatory and peaky. One can observe these oscillations and peaks in Figures 3.24 and 3.25.

Let us finally remark that EE-CTC is worse than any other proposed controls, which confirms that observing the lower-legs is probably one good way to the enhanced accuracy.

Note that those results were achieved with a PD+FF controller under the assumption of a perfect decoupling and linearizing of the dynamics. In practice, due to noise, this assumption might not be valid and the actual performance of the system should be improved by advanced control techniques.

-0.22 -0.2 -0.18 -0.16 -0.14 -0.12 -0.1 -0.08 -0.06 -0.04 -0.02

Conclusions

In this part, for a competent control performance of a parallel robot, the control spaces have been explored regarding a specific inverse dynamic model expressed in leg orientations. The prevailing results are brought by the LCS-CTC. This outcome suggests the following 3 important formative points in order to improve the performance of parallel robots:

-(i) the control space should be in the operational space of the robot; -(ii) the control space should be also as close as possible to the sensor space; -(iii) the models should be linearly and compactly expressed by the measurements of the sensor space; The above conclusions once more clearly distinguish « vision » as one of the best options in the sense of allowing us to satisfy all of the 3 formative points at the same time.

Finally, we would like to remark that the presented versatile computed-torque control scheme meets the third objective of the integrated dynamic MICMAC part which is stated as at the end of the Chapter 1 as follows: « Proposing a vision-based framework for the dynamic control of parallel robots from their leg observations. » 123

Conclusions

We can give a brief summary of this chapter as follows:

-Firstly, we presented a vision based high-speed dynamic state observer. This observer can provide all the necessary variables which keep the modeling and as well as the control in linear form. It computes the position and the velocity of a parallel robot simultaneously, because it uses sequential observation information of the legs of a parallel robot which encodes the state of motion. It is fast, because it observes small portions of the legs with relatively small sub-images, and because it uses a single-iteration virtual visual servoing to compute the position and the velocity. -Secondly, we proposed a versatile computed-torque control scheme based on the leg observations of a parallel robot. This control scheme allowed us easily to define control laws for different control spaces. Then, we explored the effects of error regulations in different control spaces and as a consequence we discovered some formative points of better control of parallel robots. Correctness of these new theories are validated by simulations. Now, in the next Chapter, it is time to prove the feasibility of these theories on the real experimental setups.

Chapter 4

Experiments

This chapter experimentally validates the feasibility of the presented theories for dynamic modeling, for high-speed dynamic state estimation and for dynamic control of parallel robots.

High-Speed Integrated Dynamic MICMAC Observer

The high-speed dynamic state tracking algorithm which is described in Chapter 3 Section 3.2 will be tested on the Quattro parallel robot. First, we will give the details of the test-bed, then we will explain an experimental scenario. Choosing a camera In order to do high-speed estimation, camera frame rate should be fast enough. A Photon Focus CMOS CamLink TrackCam is a relevant sensor for our state estimation algorithm. It allows for fast sequential sub-image acquisition. One should also choose a short focal lens for better perspective effect on the cylindrical legs of the Quattro robot. The more perspective effect there is, the better the estimation is. Unfortunately, short focal lens brings distortions on the image which should be carefully taken care of.

Test-Bed Setup

Positioning of the camera For a good observation of the legs, the camera should be located somewhere far away from occlusions. In the Quattro robot, the camera is placed onto the robot base, looking downwards to the legs and to the end-effector. In this location, the field of view of the camera is less cluttered than the space outside the legs. Figure 4.1 shows the base-mounted camera of the Quattro robot and an image taken by this camera.

Lighting If fast acquisition is desired, CMOS sensor of the camera should be exposed for a short time. This short exposure time causes dark images. Subsequently, to have clear images, the scene must be very strongly and properly illuminated. That is to say, a good visibility of the legs must be guaranteed while keeping the image noise at a moderate level. For instance, strong lighting can produce reflections causing false edges on the legs. A solution might be a white back light which allows one to observe the shadows (i.e., silhouettes) of the legs on the image. This lighting provides almost a binary image where many of the unwanted false edges are removed. On the other hand, the white back light limits the visibility of the scene to its lighting surface. This also implies that the back light can limit the workspace to a smaller region than the field of view of the camera. Camera-robot calibration Intrinsic calibration of the camera should be accurate. This must be performed with a method which can give a direct model for lens distortion correction (e.g., Visp) rather than an indirect (iterative) model. A direct model accelerates the state estimation. Afterwards, the pose of the camera frame with respect to robot base frame (i.e., extrinsic calibration) [R, t] should be calculated accurately. The accuracy and the speed of the estimation depend on all these parameters. Synchronization In order to have a ground truth to compare the results, the motor encoders of the robot and the camera are synchronized to capture an information at the same time. So, motor encoders read the joint positions at the moment when the camera grabs a subimage of a leg.

Experimental Scenario

To validate the feasibility of the dynamic state tracking algorithm, we proceed as follows:

1. Calibration: We shall first calibrate the extrinsic pose parameters of the camera with respect to the robot base frame. This extrinsic pose of the camera will be calculated by using the visual edges of the lower-legs of the robot. 2. Reference Trajectory: We will design a Cartesian space trajectory which expands all axes of motion of the robot, and we will calculate a region of interest (ROI) image trajectory of the lower-legs which corresponds to this designed reference Cartesian space trajectory.

Data Collection:

The Quattro robot will be moved along the reference Cartesian space trajectory with simple Cartesian space kinematic control. During this motion, we will synchronously save the joint values measured by the motor encoders and as well as the sub-images of the lower-legs grabbed by the camera.

4.

Off-Line Dynamic State Computation: We will then compute the dynamic state of the Quattro parallel robot and the ROI predictions through the registered sub-images of the lower-legs.

5.

Comparison: Finally, we will compare calculated results with the performed reference motion of the Quattro parallel robot.

Calibration

Here, we shall calculate the pose ( c R o , c t o ) of the camera frame with respect to the robot's base frame. It is assumed that the camera intrinsic matrix (K), the lens distortion correction coefficients, and the geometric parameters (ξ geo ) of the robot are known.

Camera-Quattro Parallel Robot Calibration from Leg Edges

In order to find the pose of the camera frame with respect to the base frame of the Quattro robot, we exploited a geometric constraint of the cylindrical legs as an objective function for minimization. The geometric constraint is as follows:

c n ij T c B i = -r (4.1)
where n is a visual side edge of a cylindrical leg, B is the connection point of this cylindrical leg to the nacelle, r is the radius of the cylindrical leg, i ∈ {1, 2, . . . , 8} is the cylindrical leg index, and j ∈ {L, R} is the left or right side visual edge index. Figure 4.2 depicts an image of the Quattro robot with its 16 edges of the 8 cylindrical legs. Therefore, from an image of a known robot posture, we can write 16 constraint equations. Constraint (4.1) can be rewritten with the pose parameters of the camera frame as below:

c n ij T ( c R o o B i + c t o ) = -r (4.2)
where this time the connection point B is expressed in the robot's base frame, and it is known from the 3D CAD model of the robot. We rewrite (4.2) for the unknown pose parameters as follows:

A ij x = -r (4.3)
where the coefficient row vector A ij ∈ ℜ 1×12 and the unknown parameters column vector x ∈ ℜ 12×1 are as below: where A ∈ ℜ 16k×12 and b ∈ ℜ 16k are as follows:

A ij = c n ij T   o B T i 0 1×3 0 1×3 1 0 0 0 1×3 o B T i 0 1×3 0 1 0 0 1×3 0 1×3 o B T i 0 0 1   , x =     r T 1 r T 2 r T 3 c t o     (4.4)
A =      1 A 1L 1 A 1R . . . k A 8R      , b =    -r . . . -r    (4.6)
Linear solution of (4.5) yields the extrinsic pose parameters of the camera frame with respect to base frame of the robot. However, the computed orientation matrix c R o may not be orthogonal. One can make it orthogonal using its SVD decomposition:

c R o = U D V T (4.7)
assuming that the diagonal D matrix is identity. Then, the new orthogonal orientation matrix is calculated as below:

c R o = U V T (4.8)
While calibrating the camera frame with respect to the robot frame, we have taken images of 25 different known poses of the robot expressed in its base frame with respect to its base Table 4.1 -Calibration residual errors of the geometric constraint given in (4.1).

Linear solution Non-linear solution RMSE 0.0022 m 0.0008 m frame. We solved the extrinsic parameters through the linear system explained above. In order to compare the correctness of the results, we also solved the constraint equations written in (4.2) through the non-linear "trust-region-reflective" minimization method [START_REF] Coleman | An interioir, trust region approach for nonlinear minimization subject to bounds[END_REF]. Table 4.1 depicts the root mean squares (RMSE) of the constraint residuals of the linear and non-linear solutions. When two solutions (i.e., linear and non-linear) of orientation matrices are compared with the geodesic distance metric, the difference is found 0.0016 rad. When two solutions of position vectors are compared with the Euclidean distance metric, the difference is found 0.0017 m.

Coarse to Fine Calibration

One may start with a coarse set of the extrinsic parameters [ R, t ] in order to perform the dynamic state estimation of the robot:

R = ∆R R , t = t + ∆t (4.9)
where [ R, t ] are the correct extrinsic parameters, and [ ∆R, ∆t ] are the errors of these parameters. As a consequence, the dynamic state estimations will give erroneous results. However, since the errors [ ∆R, ∆t ] of the extrinsic parameters of the camera stay constant during the dynamic state estimation of the robot, these errors will show themselves as an offset between the performed trajectory by the real robot and the estimated trajectory by the virtual robot. A solution for this offset can be approximated by a 3D pose estimation between these two space trajectories. Let {P 1 , . . . , P m } ∈ ℜ 3×1 and {P * 1 , . . . , P * m } ∈ ℜ 3×1 be two sub-sets of point correspondences in the estimated and performed trajectories, respectively. Hence, in order to calculate this offset, the objective function for minimization is written as follows:

min (∆R, ∆t) m i=1 P * i -∆R P i -∆t 2 , m 3 (4.10)
where m is the minimum number of non-collinear corresponding points. Once this offset is computed, one can update the extrinsic parameters as follows:

R = (∆R) T R , t = t -∆t (4.11)
where R and t are the new approximated parameters which will yield better results. So, this dynamic state estimation algorithm can also serve for a coarse to fine camera-robot calibration.

Reference Trajectory

The reference Cartesian space motion (X * ) is a 0.08 m by 0.08 m square trajectory on the xy-plane. There is no rotation in this trajectory. The maximum velocity and acceleration of the motion are 0.25 m/s and 1 m/s 2 , respectively. This square trajectory is rotated by 60 • degrees around the x-axis so as to cross the 3 axes of the motion space. Afterwards, a region of interest (ROI) image trajectory is created for the observation of the lower-legs of the Quattro robot using this reference Cartesian space motion (X * ). The image trajectory contains the upper-left corner pixel coordinates of the sub-images that shall be acquired during the reference square motion of the robot. The size of sub-images are 48 × 48 pixel 2 .

Data Collection

The Quattro parallel robot is moved along the reference square trajectory through a simple Cartesian space kinematic control. During this motion, we recorded at 500 Hz the joint positions (q m ) of the motors given by the encoders and as well as the sub-images grabbed synchronously by the camera. Figure 4.5 shows the block diagram of this kinematic control and synchronous data acquisition. These measured joint positions (q m ) are then used to calculate the Cartesian space end-effector poses (X) via the iterative forward kinematic model (FKM) of the Quattro parallel robot:

X = F KM ( q m , X o ) (4.12)
where X o is an initial guess for the end-effector pose. Table 4.1.5 gives the pseudo-code of this iterative FKM.

X = X o // start with an initial pose do{ q = IKM (X) ∆q = q mq X = X + M -1 q ∆q }while ( ∆q > ǫ ) Table 4.2 -Pseudo-code for the forward kinematic model (FKM) of the Quattro robot. M q is the inverse differential kinematic model (IDKM) between the joint velocities and the endeffector pose velocity ( q = M q Ẋ). IKM is the inverse kinematic model which relates Cartesian end-effector pose to the joint positions. ǫ is a threshold for the desired precision of the computed Cartesian end-effector pose. q m and q are the measured and the computed joint positions, respectively.

Assuming that the known geometric parameters of the Quattro parallel robot are perfect, these computed poses (X) will be used as ground truth (i.e., reference motion) for comparison. Figure 4.7 shows traces of the calculated Cartesian end-effector poses (X) of the Quattro parallel robot which are expressed in its base frame. Figure 4.8 depicts velocities and accelerations of this performed square motion (X). Velocities and accelerations are obtained by numerical differentiation of the Cartesian end-effector poses.

Off-Line Dynamic State Computation

The estimation algorithm is coded in C++ with nT 2 matrix library [START_REF] Falcou | Nt2: A high-performance library for computer vision[END_REF]. In order to validate the dynamic state estimation algorithm, we first detected and extracted the edge pixels (i.e., contours) of partially observed cylindrical legs from the registered sub-images. This edge extraction is performed with Canny edge-detection method [START_REF] Canny | A computational approach to edge detection[END_REF]. Figure 4.9 shows a sequence of sub-images of the lower-legs of the Quattro parallel robot with their detected edge pixels. Finally, we conducted the dynamic state estimation algorithm with these detected edge pixels which are transformed to metric units. Figure 4.10 simply illustrates this dynamic state estimation process. Table 4.3 tabulates the accuracies of the position and orientation estimations. These accuracies are calculated with the root mean squares of the tracking errors (RMSE) and Hausdorff distance metric regarding to ground truth trajectories. Table 4.4 tabulates the approximate average times taken for each of the processes used in a single dynamic state estimation of the Quattro parallel robot. These processes are, in turn, the exposure of ROI region on the CMOS sensor, the transfer of the ROI pixel information, the detection of the edge pixels of a cylindrical leg in this ROI, and the computation of the current dynamic state of the robot. Consequently, an estimation takes about 1400 µs (microseconds) which comfortably allows to discover the current posture and velocity of the robot more than 500 Hz. To our best know- In Figure 4.11, the estimated 3D trajectory ( X) fits rather well to the reference (X) trajectory. Note that in reality, the reference (X) trajectory might differ from the real performed one by the robot, because the numerical FKM may not perfectly fit to the mechanics of the robot. The error between the reference (X) and the estimated ( X) Cartesian poses is calculated as below: e X = X -X (4.13) Figure 4.12 plots these positional and orientational estimation errors versus time. In Figure 4.12, we observe that the estimated trajectory is not very smooth in the depth (z-axis) and as well as in the orientation (θ). Cartesian velocities of the end-effector versus time. Estimated velocities look quite good for the x and y axes while they are very noisy for z-axis and θ. These noisy estimations of velocity in the depth and orientation can be directly deduced from the results of Figure 4.12. Figure 4.14 shows the superimposed reference (ROI * ) and predicted ( ROI) sub-image upper-left corner position trajectories of the lower-legs of the Quattro parallel robot. Figure 4.15 plots the prediction errors of these sub-image positions on each of the lower-legs. A ROI prediction error is calculated as Euclidean distance between the reference and the predicted sub-image upperleft corner positions. The maximum prediction error for a sub-image position is calculated as 4.2 pixels through the whole tracking process. This maximum prediction error of 4.2 pixels for a 48 × 48 pixel 2 sub-image corresponds to a 6% error on the diagonal length of the subimage. These predictions are quite enough to guarantee the observability of the edges during the motion of the Quattro parallel robot. A prediction error for a ROI is computed as the Euclidean distance between the reference ROI position and the predicted ROI position. The maximum prediction error is calculated as 4.2 pixels through the whole tracking process.

Discussion: This estimation method does not need a special artificial pattern as the legs are observed, and it is applicable to any parallel robot with slim prism-shaped legs. It is feasible by an edge detection in a quite small and well structured sub-image. The sub-image contains only a partial region of a slim leg. When the dynamic state estimation results are inspected, one can say that the depth (z-axis) and the orientation (θ) estimations are quite noisy (see Figs. 4.12 and 4.13). The errors, in the depth and the orientation estimations, might appear because of a cylindrical leg whose radius (r) is relatively smaller than its observational distance (d o ) from the camera. This makes estimations, especially the depth, more sensitive to small noises:

z = ǫ d o r (4.14)
where z is the ambiguity in the depth and ǫ is a small observation error on the radius of a cylindrical leg (ǫ ≪ r). On the image: -(i) if one observes a leg thinner (r -ǫ) than it is, the depth of this leg is calculated farther from the camera; -(ii) If one observes a leg thicker (r + ǫ) than it is, the depth of this leg is calculated closer to the camera; Subsequently, different depth errors on each of the legs also create orientation errors. For example, the radius of a cylindrical leg of the Quattro robot is r = 0.0078 m and the approximate observation distance of the legs during this reference square motion was d o = 0.4 m. Hence, considering an image noise corresponding to ǫ = 0.0001 m ambiguity on the radius of the observed legs causes approximately 0.005 m depth errors in the estimations.

In our experimental test-bed, the source of this image noise can appear because of back lighting from a surface source. In the case of a point-source front light, the visible part of the cylindrical leg is the lighted region. On the other hand, in the case of a surface-source back light, the visible part of the cylindrical leg is the unlighted region and this unlighted region can be thinner than it is in front lighting. This means that it is possible to calculate the depth of the cylindrical legs farther than they are. We can observe this conclusion in Figure 4.12 from 0 to 1 seconds and from 4 to 5 seconds. In these time intervals, the robot is in a waiting pose (i.e., static) before the motion and after the motion, therefore the back light effect is homogenous on every leg which yields farther estimated positions. When the robot moves, the back light effect is irregular since the sub-images are taken sequentially at different time instants. Thus, this irregular back light effect causes different depth errors on each of the leg and as a consequence worse orientation estimations appear from 1 to 4 seconds. Figure 4.17 illustrates the effect of a surface-source back lighting on the observable thickness of a cylindrical leg.

Generally speaking, the source of the errors comes: (i) from the use of the approximated theoretical models; (ii) from the calibration of the camera extrinsic parameters; and (iii) from the image noise which creates false edges.

Future perspectives:

In order to increase the accuracy and the speed of the estimations, the following perspectives are considered: (i) an investigation of the grabbing strategy with different number, size, location, and order of the sub-images; (ii) an exploration of the number of rods (4 or 8) and the number of sub-images on each cylindrical leg; (iii) an implementation of the edge detection algorithm on a smart camera which has an embedded FPGA / DSP / ARM hardware; and (iv) an investigation of the proper lighting of the legs;

Once all these problems are solved, one can also imagine: (i) robust tracking of the leg contours (e.g., treatment of occlusions); (ii) efficient implementation of the algorithm (e.g., reducing computation time); (iii) generalization to other parallel robots; and (iv) industrial applications.

Figure 4.17 -Lighting effects and visibility of a cylindrical leg. O is the optical center of the camera. Left: Front lighting from a point source which is assumed at the proximity of the O. In the case of a point-source front light, the visible part of the cylinder is the lighted region (bold arc). Right: Back lighting from a surface source. In the case of a surface-source back light, the visible part of the cylinder is the unlighted region (bold arc) and this region is now thinner than it is in front lighting.

Inverse Dynamic Model

Validation of the Inverse Dynamic Model

The proposed inverse dynamic model (IDM) of the Quattro parallel robot, which is written in terms of the unit orientation vectors of the legs as explained in Chapter 2:

Γ = -A † (x) b(ẍ, ẋ, x) (4.15)
is validated comparing to a reference inverse dynamic model presented in [NKC + 08].

A Reference Inverse Dynamic Model for the Quattro Parallel Robot

In [NKC + 08], a simplified inverse dynamic model is proposed for the LIRMM Par4 parallel robot, and it is shown that this simplified inverse dynamic model is almost correct as the complete dynamic model of the Par4 parallel robot. The correctness of this simplified inverse dynamic model is validated by simulations in Adams software and by experimentations on the LIRMM Par4 parallel robot. The Par4 parallel robot is the "father" prototype of the Quattro parallel robot. That is to say, the Quattro and the Par4 are architecturally the same parallel robots. The only difference in two robots is the slight variations in lengths and in weights of the kinematic elements. Thus, we took this simplified inverse dynamic model as a reference inverse dynamic model for the Quattro parallel robot in order to compare it with our proposed inverse dynamic model. In this reference model, the simplifications are as follows: (i) the weight of a parallelogram lower-leg is considered as two point masses at each extremity; (ii) the inertia of two rotating rods of nacelle are neglected; and (iii) the weight of these two rotating rods are considered as two point masses at each extremity.

This reference IDM of the Quattro robot is written based on the motorized joint positions (q) and poses (X 1 and X 2 ) of the mass centers of the two translational bars of the nacelle. The formulation of the reference IDM is as follows:

Γ ref = I act q + J T 1 M 1 ( Ẍ1 + g) + J T 2 M 2 ( Ẍ2 + g) -cos(q) g (M 3 ℓ 2 + M 4 ℓ) + Γ f (4.16)
where I act is the inertia matrix which contains the inertias of the actuators, upper-legs and point mass lower-legs; J 1 and J 2 are the robot Jacobians written for each of the two poses of the translational bars of the nacelle; M 1 and M 1 are the mass matrices of these translational bars of the nacelle; g = [0 0 g] T is the constant gravity vector; M 3 and M 4 are the mass matrices of the upper-legs and point mass lower-legs, respectively; ℓ is the length of an upperleg; and Γ f = f v q + f c sign( q) is the friction term offering resistance on the the actuated joints, with f v viscous and f c Coulomb friction coefficient matrices.

Comparison

In comparison of the reference IDM and our proposed IDM of the Quattro parallel robot, we used the same geometric (ξ geo ) and dynamic (ξ dyn ) parameters in both of the models. The lengths of kinematic elements are obtained from the CAD model. The weights of the lowerlegs and the moving platform are measured on a balance. The weights of the upper-legs and the inertias of the motors are obtained from Adept Company. Table 4 variables for comparison of the reference IDM and the proposed IDM are calculated from the measured joint positions (q m ). The conversion between the variables is performed with the kinematic models of the Quattro robot and numerical differentiation with respect to time:

X = F KM ( q m ) , x = IKM ( X ) , Ẋ = d dt ( F KM ( q m ) ) , ẋ = IDKM ( Ẋ ) , q = d dt ( q m ) Ẍ = d 2 dt 2 ( F KM ( q m ) ) , ẍ = IDKM 2 ( Ẍ ) , q = d 2 dt 2 ( q m ) (4.17)
where F KM is the forward kinematic model which relates joint positions to the end-effector pose; IKM is the inverse kinematic model which relates end-effector pose to the unit orientation vectors of the kinematic elements; IDKM is the inverse differential kinematic model which relates velocity of the end-effector pose to the velocities of the unit orientation vectors of the kinematic elements; and IDKM 2 is the second-order inverse differential kinematic model which relates acceleration of the end-effector pose to the accelerations of the unit orientation vectors of the kinematic elements. Figure 4.18 depicts how comparison is made between the reference and proposed inverse dynamic models using the measured joint positions during a motion of the Quattro robot. The comparison is evaluated using the normalized root mean squares (NRMSE) metric:

N RM SE = RM SE max (τ ) -min (τ ) where RM SE = n i=1 (τ ref -τ ) 2 i n (4.18)
where τ ref is a reference model output torque; τ is a proposed model output torque; and n is the number of outputs; max (τ ) and min (τ ) are the maximum and minimum torque values of the proposed model outputs. In comparison of models, the maximum difference rate of motor torques is calculated less than 2%. This difference confirms that our proposed dynamic modeling is accurate enough to be used in control. This difference also does not mean that our proposed IDM is worse than the reference IDM, since the reference IDM is a simplified model.

Inverse Dynamic Model with High-Speed Dynamic State Observer

The proposed inverse dynamic model of the Quattro robot is integrated with the high-speed dynamic state estimation algorithm, and then compared with the reference inverse dynamic model [NKC + 08] once more. This time, the unit orientation vectors (x) of the legs and their velocities ( ẋ) for the proposed IDM are delivered by the high-speed dynamic state observer which uses the sequentially grabbed leg contours. The input accelerations can be either directly received from the desired reference trajectory or computed from the measured joint positions (q m ). Figure 4.21 shows how comparison is made between the reference and proposed inverse dynamic models using the measurements during a motion of the Quattro parallel robot. In comparison of models, the difference rate of motor torques is calculated as 5% using the normalized root mean squares (NRMSE) metric. This difference implies that the proposed IDM with the integrated high-speed dynamic state observer is precise enough to be used in a dynamic control. The difference between these two models is calculated as 5% using the normalized root mean squares of the output torques.

Conclusions

In this Chapter, we first performed the extrinsic calibration of the camera with respect to the base frame of the Quattro parallel robot by means of the leg edges. This extrinsic calibration was one of the initial steps of the high-speed dynamic state tracking algorithm. Secondly, we showed the feasibility of the high-speed dynamic state tracking algorithm in an off-line manner on the Quattro parallel robot. Then we discussed the source of the errors of the tracking results and proposed some ways to improve the speed and the accuracy of the algorithm.

Afterwards, we validated the correctness of the proposed linear inverse dynamic model which is based on the leg orientations of the Quattro parallel robot comparing to a reference inverse dynamic model. As we stated earlier, this proposed inverse dynamic model is linear on the condition that the leg orientations of the parallel robot and their velocities are provided. Therefore, we integrated the previously validated high-speed dynamic state observer to the inverse dynamic model so that this observer can feed the inverse dynamic model and can keep it linear. The integrated system of the current high-speed dynamic state observer and the proposed inverse dynamic model produced quite accurate results which allow to use this integrated system in the construction of a high-speed vision-based dynamic control framework.

In order to perform a vision-based dynamic control, we should first identify the dynamic parameters of the Quattro robot which is another quite challenging problem of parallel robots.

Chapter 5

Conclusions and Perspectives

Conclusions

This thesis accomplished 3 of the 4 remaining objectives of the Integrated dynamic MIC-MAC. This means that we have almost finished drawing the big picture of the vision-based control of parallel robots based on their leg observations. Speaking more precisely in the light of the MICMAC project, in this thesis we achieved the following goals:

-Firstly, we pushed control-oriented modeling of parallel robots further from the kinematic level to the dynamic level based on the observations of their legs. Furthermore, we improved modeling from joint-based representation to body-based representation. That is to say, we exploit the motion of concrete lines (i.e., orientations of the kinematic elements) rather than the motion of abstract axes (i.e., joint axes). This brings more physical and geometrical insight to the modeling of mechanisms. This proposed modeling scheme is applicable to wide range of parallel robots. In addition, the presented modeling scheme is linear since it uses the geometry of lines. -Secondly, we presented a novel method which estimates the dynamic state (i.e., position and velocity) of a parallel robot using high-speed vision (@ 500Hz). In order to perform fast estimations, we sequentially observed small portions of the slim legs of the parallel robot by a technologically available sequential acquisition concept. This dynamic state estimator is a non-linear observer based on a virtual visual servoing scheme. Moreover, we proposed another dynamic state observer which is linear, although not yet feasible with off-the-shelf cameras. -Thirdly, we proposed a versatile computed-torque control scheme based on the observations of the legs of parallel robots. This versatile control scheme allows one to perform a task in different control spaces so that one can examine the performances and then choose the best control space for the given task.

These new theoretic approaches are validated with the first promising simulation and experimental results which encourage us to explore further the proposed research path of parallel robots based on their leg observations in the future. The last unaccomplished goal of the integrated dynamic MICMAC project is as follows:

-Identification of the dynamic parameters of a parallel robot from its leg observations. Who is next to solve it?

The aforementioned novel schemes are contributions to the integrated dynamic MICMAC, and now we demonstrate once more the new updated state of the MICMAC art in Figure 5.1. Finally, we would like to point out that the message of this thesis is to say that: « observing the legs of parallel robots is an interesting option, and it has the potential of making modeling and control of parallel robots simpler and more accurate by means of lines ». Of course, these presented novel methods need to be investigated further to be competitive with the other methods.

Perspectives

There are a lot of things to improve in the drawn big picture of the vision-based control of parallel robots based on their leg observations. In this part, we remark the important points of this picture and we propose some future perspectives so as to make this picture more colorful.

Control-Oriented Linear Dynamic Modeling

The linearity, simplicity and accuracy properties of the proposed modeling scheme requires that the orientation vectors of the legs of a parallel robot can be measured precisely at each sampling instance. Therefore, the modeling scheme needs relevant sensing techniques so as to be feasible.

Moreover, this control-oriented linear dynamic modeling has the following main points to be improved:

-(i) the proposed modeling scheme is built upon the rigid body assumption and dynamic control of parallel robots interests with high speed motions. That is to say, in high speed motions it is possible that the vibrations can appear on the flexible kinematic elements due to the accelerated masses of the parallel robot, and unfortunately the current proposed modeling scheme does not compensate for the flexibility. The source of the flexibility in a parallel robot can come from the construction materials of the kinematic elements and from the backlashes and clearances of the passive joints. Therefore, the proposed modeling scheme should be improved to take into account the dynamics of the robot flexibility so that the possible vibrations can be suppressed in the control. -(ii) in order to increase the accuracy in the proposed modeling scheme and consequently in the control scheme, the dynamic parameters should be identified based on this modeling concept. This is an essential step before the control level. That is to say, the dynamic constraint equations of this proposed modeling scheme should be first rewritten in a linear form in terms of the dynamic parameters, and then should be solved with exciting trajectories.

Vision-Based High-Speed Dynamic State Observer

The proposed vision-based observer has the following main points to be improved: -(i) the calibration errors of the extrinsic parameters of the camera are directly pronounced on the estimated states, because it is the main reference frame with respect to which everything is defined; -(ii) if the observational distance of a cylindrical leg in the scene is quite long compared to its radius, then the depth estimation of the leg along the optical axis of the camera becomes very ill conditioned; -(iii) good observability of the cylindrical legs by a camera at high speed is quite difficult because of the challenging lighting problem of the scene; -(iv) existence of occlusion puts off the state estimation one sub-image acquisition time later, and it seems difficult to foresee an occlusion in the sub-image before the sub-image is grabbed; -(v) it is not possible to perform a dynamic control, for the time being, more than 500 Hz with the proposed vision-based system. This is because of the physical limits of the sensing environment rather than the theoretical limits, such as the relatively long exposure time of the CCD/CMOS sensor;

One solution to increase the accuracy and the robustness of our high-speed dynamic state observer can be the use of a camera which can grab multiple sub-images at a time, which is technologically possible today [START_REF] Ulrich | A new high speed CMOS camera for real-time tracking application[END_REF]. The scenario is as follows:

-we can first simultaneously observe small portions of all the legs (e.g., for the Quattro robot the 4 lower-legs at the same time) rather than one by one, and consequently we can form the spatiotemporal reference input signal for the single iteration virtual visual servoing by stacking at least the last two sequential simultaneous measurements of the legs. This should increase the accuracy since there is more information for the present time and since fewer steps (i.e., 1 or 2 steps) are sufficient to evolve back in time with the approximated motion models than before. This will certainly increase the robustness against the occlusions, since it is possible to calculate the dynamic state as long as one sub-image per leg exists and at least one of the sub-images is grabbed at a different time instant than the others. In the case of detected occlusions on the certain legs, we can foresee them for the next step and we can securely locate the sub-images on the unobstructed region of the legs. Moreover, the speed of this tracking algorithm will not be much worse than our current setup.

Although all these points are improved, this does not mean that this vision-based observer can ensure the best control performance. Maybe the optimum in practical sense is to fuse sensors in order to have a faster, more accurate and more robust observer. Thus, one can imagine simply fusing vision and motor encoders to define a new state observer, and then one can propose, for example, a joint-space (q) plus a body-orientation space (x) computed-torque control scheme (JBS-CTC), which might yield better results.

We do need VISION and DYNAMIC CONTROL

Vision is a contactless optical sensor and dynamic control deals with forces. These properties make vision-based dynamic control the only solution for certain applications where the other sensing techniques (e.g., motor encoders) and control methods (e.g., kinematic control) are not adequate or not possible at all. For instance:

Micro space In micro space, the dimensions of robots and objects decrease to micro scales, and micro space tasks require adequate sensors which should have better resolution (i.e., nanoscale) than this micro space. Furthermore, these micro space tasks usually need global scene information. The construction of such sensors which can meet these demands is quite challenging and yet to be achieved. At this point, vision seems to be the only available proper sensing technique. Afterwards, it is interesting to note that the dominant (e.g., gravity) and the subordinate (e.g., surface) forces of macro space contrarily constitute the subordinate and dominant forces of micro space. Furthermore, in micro space, the surface forces (e.g., Van der Waals) are a lot stronger than the gravity forces, such that the manipulated micro-scale object can fly from one surface to another easily and stick to it because of adhesion forces. In such a space where the dynamic effects are extreme, dynamic control is inevitable. For example, one of the most well known problems in micro space is that it is difficult to release an object which is being held by the gripper to a desired position due to adhesive surface forces. The simple solution might be to arrive this desired position with a certain acceleration and suddenly stop the gripper such that the final inertia force of the object can defeat the surface adhesive forces and release itself.

Macro space

In macro space, one of interesting application is the control of cable driven giant parallel robots. The main objective of such giant parallel robots is both to carry heavy objects and to do long-distance moves. Therefore, they have long cables, and unfortunately the forces of gravity along such long cables can deform the straightness of cables and can lengthen them due to their elasticity. Consequently, the rigidity assumption is not valid anymore. In addition, these effects will probably be exaggerated by the presence of a heavy payload. Therefore, the use of motor encoders as a sensor in such a giant robot can give only the local information, and furthermore it is not very feasible to place any sensor somewhere on the cable in order to have more information about the geometry since the cables are rolled back and forward on spools. Thus, the current situation seems poor to provide a precise control of the moving platform because of all these deformations caused by the dynamic effects and insufficient feedback about the robot. Once again, vision seems one of the best solutions to observe the geometry of such giant robots since it is a contactless distance sensor and of course the dynamic control is essential too in order to compensate undesired dynamic effects.

From MICMAC to RODAP

Why must parallel robots be blind? Why not save the skillful ugly parallel robots by dressing them up? So, why should the outcome of MICMAC art not be the initiation of a new art: MICMAC oriented RObot Design and AdaPtation (MICMAC-RODAP). The objectives of this new art can be envisioned as follows:

-Robots with MICMAC eyes: to change vision from being an exteroceptive sensor to a proprioceptive sensor on parallel robots, and to make this proprioceptive vision sensor exploit the MICMAC algorithms on an embedded system of the robot; -Robots with MICMAC legs: to design parallel robots with slim, cylindrical and observable legs so that they are consistent with the line geometry and vision; -Robots with MICMAC costumes: to dress up existing geometrically and visually non compatible parallel robots with costumes in order to adapt them to the MICMAC art. For instance, imagine axial cylindrical shells that just envelope the physical boundaries of non-uniform links of a parallel robot.

Thus, one can imagine a RODAP development framework in order either to produce a MICMAC robot or to adapt a current parallel robot to the MICMAC concept. This framework can be built upon the following 6 modules which interact between each other: 1. CAD module: Synthesis of the geometry of the kinematic elements of the robot. j = {a, b} is the literal representation of the kinematic elements.

ξ geo = {O, A i , ℓ bi , α i , β i } are the geometric parameters (constant lengths and points).

ξ dyn = {m ji , I ji , f v i , f c i } are the dynamic parameters (weights, inertias and frictions).

-

F o = (O, x o , y o , z o )
, F e = (E, x e , y e , z e ), F ai = (A i , x ai , y ai , z ai ) and F bi = (B i , x bi , y bi , z bi ) denote respectively the base, the end-effector, the i th kinematic leg and the moving-platform's i th virtual kinematic element frames. -d ai is the dynamic length of the i th kinematic leg.

-The end-effector pose is composed of the origin E, of the x-axis unit vector x e and of the rotational angle θ e around the x-axis x e of the end-effector frame. The end-effector pose velocity is then Ė, ẋe and θe :

X   E x e θ e   , Ẋ   Ė ẋ e θe   ∈ ℜ 7×1 (A.1)

A.1.2 State Variables Kinematic Element Types

The Gough-Stewart parallel robot has 2 different kinds of kinematic elements:

Kinematic legs [A i B i ] Each of these kinematic elements has 3 dof rotational extrinsic mobility due to (S)pherical joint and as well as 1 dof translational intrinsic mobility (along its direction) due to the (P)rismatic joint. Spherical joints located at the tips of the kinematic element allow for a self-rotation which does not have any effect on the moving-platform

The reactive forces are as follows:

-Actuator Inertial Forces: The inertial forces of the linear actuators are as below:

f * d ai = -m d ai dai x ai (A.30)
where m d ai is the mass moved inside the i th kinematic leg by the linear actuator. -Kinematic Element Body Inertial Forces and Torques: The inertial forces and torques of the kinematic elements are follows:

f * ai = -m ai Sai , τ * ai = -I T ai ω ai -ω ai × (I T ai ω ai ) (A.31) f * bi = -m bi Sbi , τ * bi = -I T bi ω bi -ω bi × (I T bi ω bi ) (A.32)
-Active Joint Frictional Forces: The frictional forces of the intrinsic active joints are as follows:

fd ai = -( fv(d ai ) ḋai + fc(d ai ) sign( ḋai ) ) x ai (A.33)
where fv(d ai ) and fc(d ai ) are the viscous and Coulomb friction coefficients of the linear actuators. -Passive Joint Frictional Torques: The frictional torques of the extrinsic passive joints are as follows:

τ x ai = -τv(x ai ) ω ai -τc(x ai ) sign( ω T ai z ai ) z ai (A.34) τ x bi = -τv(x bi ) ( ω bi -ω ai ) -τc(x bi ) sign( ( ω bi -ω ai ) T z bi ) z bi (A.35)
where τv(x ji ) and τc(x ji ) are the viscous and Coulomb friction coefficients of the passive rotary joints.

f d ai x ai f g(ai) fd ai 0 f * d ai f * ai T orques (ai) 0 0 0 τ x ai 0 τ * ai F orces (bi) 0 f g(bi) 0 0 0 f * bi T orques (bi) 0 0 0 τ x bi 0 τ * bi

Computing Dynamic Coordinates

So as to eliminate the non-contributing forces, the dynamic coordinates are computed through the matrix-wise multiplication of the Tables A.1 (kinematic coordinates) and A.2 (sum of the local forces and torques).

    F d ai F x ai F x bi F θ bi     =   Kinematic Coordinates T able A.1   (4×4)     Sum of F orces T orques T able A.2     (4×1) (A.36)
which can be explicitly written as follows:

          F d ai F x ai F x bi F θ bi           =           1 2 x T ai 0 3×1 x T ai 0 3×1 1 2 d ai I 3 [ x ai ] T × d ai I 3 0 3×3 0 3×3 0 3×3 ℓ bi I 3 [ x bi ] T × 0 3×1 0 3×1 0 3×1 x T bi                     f d ai x ai + f ai τ x ai + τ * ai f g(bi) + f * bi τ x bi + τ * bi           (A.37)
where

f ai = f g(ai) + fd ai + f * d ai + f * ai (A.38)

A.1.7 Dynamic Constraints

Exploiting (2.110), the dynamic constraints of the Gough-Stewart robot are written as follows:

0 6×1 = M T da F da + M T a F a + M T b F b + M T θ b F θ b (A.39)
where

F da ∈ ℜ 6×1 , F a ∈ ℜ 18×1 , F b ∈ ℜ 18×1 and F θ b ∈ ℜ 6×1
are the stacked vectors of the dynamic coordinates:

F da =    F d a1 . . . F d a6    , F a =    F x a1 . . . F x a4    , F b =    F x b1 . . . F x b4    , F θ =    F θ b1 . . . F θ b6    (A.40)
and where M da ∈ ℜ 6×7 , M a ∈ ℜ 18×7 , M b ∈ ℜ 18×7 and M θ b ∈ ℜ 6×7 are the stacked matrices of the inverse differential kinematic models M d ai ∈ ℜ 1×7 , M ai ∈ ℜ 3×7 , M bi ∈ ℜ 3×7 and M θ bi ∈ ℜ 1×7 , respectively.

A.2 The Delta Robot

A.2.1 Geometry and Notation

The Delta robot consists of 4 kinematic legs interconnecting the fixed base with the movingplatform. The moving-platform is a single rigid triangular body {B 1 , B 2 , B 3 }. i = 1, 2, 3 denotes the identical kinematic legs.

j = {p, a, b} represents literally the kinematic elements in identical kinematic legs.

ξ geo = {O, P i , ℓ pi , ℓ ai , ℓ bi } are the geometric parameters (constant lengths and points).

ξ dyn = {m ji , I ji , f v i , f c i } are the dynamic parameters (weights, inertias and frictions). which can be explicitly written as follows:

F x pi F x ai =   1 2 ℓ pi I 3 [ x pi ] T × ℓ pi I 3 0 3×3 ℓ pi I 3 0 3×3 0 3×3 0 3×3 1 2 ℓ ai I 3 [ x ai ] T × ℓ ai I 3 0 3×3                      f g(pi) + f * pi τ x pi z pi + τ pi f g(ai) + f * ai τ x ai + τ * ai f g(bi) + f * bi τ x bi                    (A.78)

A.2.7 Dynamic Constraints

Exploiting (2.110), the dynamic constraints of the Delta robot are written as follows:

0 4×1 = M T p M T θ 4 F p F θ 4 + M T a F a + M T 4 F x 4 + M T d 4 F d 4 (A.82)
where F p ∈ ℜ 9×1 and F a ∈ ℜ 9×1 are the stacked vectors of the dynamic coordinates:

F p =    F x p1 . . . F x p3    , F a =    F x a1 . . .

A.3 The 3RRR Robot

A.3.1 Geometry and Notation

The 3-RRR consists of 3 kinematic legs interconnecting a moving-platform to a fixed base. The moving-platform is a single triangular rigid body {B 1 , B 2 , B 3 }. The 3-RRR is designed symmetrically, that is to say, the base and the moving platform are equilateral triangles as well as the kinematic legs are identical. Each kinematic leg has 2 consecutive kinematic elements (an upper-leg [P i A i ] and a lower-leg [A i B i ]) linked with each other at A i . A kinematic leg of 3-RRR symbolically is noted as R-R-R where R and R stand for an actuated revolute joint and a passive revolute joint, respectively. The moving-platform has 3 degrees of freedom: 2 translational movements in x and y axes and 1 rotational movement around the z axis. All the kinematic legs are actuated from the base by revolute motors located at {P 1 , P 2 , P 3 }. Figure A.6 depicts the geometrical notation of the mechanism. In modeling, the following notation is used:

i = 1, 2, 3 denotes the kinematic legs.

j = {p, a, b} is the literal representation of the kinematic elements.

ξ geo = {O, P i , ℓ pi , ℓ ai , ℓ bi , α i , β i } are geometric parameters (constant lengths, points).

ξ dyn = {m ji , I ji , f v i , f c i } are the dynamic parameters (weights, inertias and frictions).

-F o = (O, x o , y o , z o ), F e = (E, x e , y e , z e ), F pi = (P i , x pi , y pi , z pi ), F ai = (A i , x ai , y ai , z ai ) and F bi = (B i , x bi , y bi , z bi ) denote respectively the base, the endeffector, the i th upper-leg, the i th lower-leg, the moving-platform's i th virtual kinematic element frames. -q i is the articulated position of the i th upper-leg leg.

-The end-effector pose is composed of the origin E and x axis x e of the end-effector Table A.7 -The (transposed) kinematic coordinates of the 3-RRR parallel robot, i=1,2,3. which can be explicitly written as follows:

∂ Ṡ pi ∂ ω pi ∂ Ṡ ai ∂ ω ai ∂ Ṡ bi ∂ ω bi ∂ ẋ pi 1 2 ℓ pi I 3 [ x pi ] T × ℓ pi I 3 0 3×3 ℓ pi I 3 0 3×3 ∂ ẋ ai 0 3×3 0
  F x pi F x ai F x bi   =       1 2 ℓ pi I 3 [ x pi ] T × ℓ pi I 3 0 3×3 ℓ pi I 3 0 3×3 0 3×3 0 3×3 1 2 ℓ ai I 3 [ x ai ] T × ℓ ai I 3 0 3×3 0 3×3 0 3×3 0 3×3 0 3×3 ℓ bi I 3 [ x bi ] T ×                         f g(pi) + f * pi τ x pi z pi + τ pi f g(ai) + f * ai τ x ai + τ * ai f g(bi) + f * bi τ x bi + τ * bi                   (A.115)
where τ pi = τ x pi + τ * x pi + τ * pi (A.116)

A.3.7 Dynamic Constraints

Exploiting (2.110), the dynamic constraints of the 3-RRR robot are written as follows:

0 6×1 = M T p F p + M T a F a + M T b F b (A.117)
where F p ∈ ℜ 9×1 , F a ∈ ℜ 9×1 and F b ∈ ℜ 9×1 are the stacked vectors of the dynamic coordinates:

F p =    F x p1 . . . F x p3    , F a =    F x a1 . . . F x a3    , F b =    F x b1 . . .

A.4.2 State Variables Kinematic Element Types

The identical kinematic legs and the moving-platform of the Orthoglide robot have the following kinematic elements: Kinematic Elements [P i A i ] Each of these kinematic elements has only 1 dof translational (along its direction) intrinsic mobility. It is thus a telescopic type kinematic element: {x pi , d pi }. The x pi is a moving vector with a fixed direction.

Kinematic Elements [A i B i ] Each of these kinematic elements only translates in space due to prismatic joint of the previous kinematic element. It is a bar type kinematic element: x ai (moving vector with a fixed direction).

Kinematic Elements [B i C i ] Each of these kinematic elements (a parallelogram) has only 2 dof rotational extrinsic mobility due to existing (R)evolute joints. It is a bar type kinematic element: x bi .

Moving-Platform [C i E]

Each of these virtual kinematic elements of the moving-platform has only 3 dof translational extrinsic mobility due to (Pa)rallelogram pseudo-joint. It is thus a bar type kinematic element: x ci (moving vector with a fixed direction).

Constraints on the Active [P i A i ] Telescopic Type Kinematic Elements

Constraints on the variations of the lengths of the active telescopic type kinematic elements are computed as follows:

x T bi Ẋḋpi x T bi x pi = 0 Ẋ -ℓ bi ẋ bix pi M di Ẋ = 0 (A.133)

ẋ bi = M bi Ẋ , M bi = 1 ℓ bi I 3 -x pi M di ∈ ℜ 3×3 (A.134)

A.4.5 Kinematic Coordinates

Equation (A.135) and Table A.9 show the motion basis and the kinematic coordinates of the mechanism, respectively. u d pi = ḋpi , u x bi = ẋ bi , i = 1, 2, 3 (A.135)

Table A.9 -The (transposed) kinematic coordinates of the Orthoglide parallel robot, i=1,2,3.

∂ Ṡ ai ∂ ω ai ∂ Ṡ bi ∂ ω bi ∂ Ṡ ci ∂ ω ci ∂ ḋpi x T pi 0 3×1 x T pi 0 3×1 x T pi 0 3×1 ∂ ẋ bi 0 3×3 0 3×3 1 2 ℓ bi I 3 [ x bi ] T × ℓ bi I 3 0 3×3

A.4.6 Dynamic Coordinates Listing Active and Reactive Forces

The active forces are as follows:

-Actuator and Gravity Forces:

f d pi = f d pi x pi , f g(ai) = m ai g , f g(bi) = m bi g , f g(ci) = m ci g (A.136)
where f d pi and f g(ji) are the actuator and gravity forces, respectively.

The reactive forces are as follows:

-Actuator Inertial Forces: The inertial forces of the linear actuators are as below:

f * d pi = -m ai dpi x pi (A.137)
where m ai is the mass moved by the linear actuator. These inertial forces of the actuators correspond to the inertias of the ai kinematic elements, since these kinematic elements are rigidly attached to the linear actuators. -Kinematic Element Body Inertial Forces and Torques: The inertial force f * ai of the ai th kinematic element is compensated by the actuator inertia, and inertial torque τ * ai = 0 since the ai th kinematic element does not have a rotational mobility. Then, the inertial forces and torques of the rest of the kinematic elements are written as follows: which can be explicitly written as follows:

F d pi F x bi =   x T pi 0 3×1 x T pi 0 3×1 x T pi 0 3×1 0 3×3 0 3×3 1 2 ℓ bi I 3 [ x bi ] T × ℓ bi I 3 0 3×3                      f d pi x pi + f pi 0 f g(bi) + f * bi τ x bi + τ * bi f g(ci) + f * ci τ x ci                    (A.

A.4.7 Dynamic Constraints

Exploiting (2.110), the dynamic constraints of the Orthoglide robot are written as follows:

0 3×1 = M T dp F dp + M T b F b (A.146)
where F dp ∈ ℜ 3×1 and F b ∈ ℜ 9×1 are the stacked vectors of the dynamic coordinates: The lighter the color of the robot is, the more the motion is in the past. . 3.4 A posture error is defined using a single sub-image which is captured from a cylindrical leg of the real robot. The detected edge pixels of this sub-image allow us to form the reference green and red side rays which pass tangent to the surface of the cylindrical leg of the real robot. And the current feedback signals are the green and red edge vectors computed from the copy of the same cylindrical leg which belongs to the virtual robot. On the condition that the reference rays (i.e., contour points) are measured and the feedback edge vectors are constructed in the same camera frame, these reference rays and these edge vectors become perpendicular to each other only when the virtual leg is superimposed onto the real leg. That is to say, minimization of error (3.12) draws the posture of the virtual robot to the posture of the real robot. . . . . . . . . . . . 3.5 Sequential k postures of the real robot (bottom left) and the virtual robot (top right) which imitates the real robot. We grab a sub-image per posture from a leg of the real robot and extract the edge contours. The green squares show in which posture, which leg, and which part of this leg is observed. The green arrow shows the motion path of the real robot, and below this green arrow we see the sub-images grabbed during this motion. When the last sub-image is grabbed, the virtual robot's motion is evolved with the latest estimated dynamic state {X, Ẋ} in order to approximate the k postures of the real robot. The motion of the virtual robot evolves on a straight line whereas the motion of the real robot can be along a curve as in the green arrow. The red straight arrow shows the motion path of the virtual robot. Then, for each virtual robot posture, we find the leg which corresponds to the leg observed on the real robot. The red lines on the virtual robot postures show the corresponding observed legs of the real robot. Below the red arrow, we see the 3D cylinders of these legs recovered from the postures of the virtual robot. Finally, the stacked complete error is formed with the extracted edge contours of these k sub-images and the visual edge vectors of these k 3D cylinders. . . . . . . . . . . . . . . . . . . . 3.4). . . . . . . . . . . . 3.12 Superimposed reference (red dotted line) and estimated (black solid line) Cartesian velocities in the camera frame (for the results of Table 3.4). . . . . . . . 3.13 Pose and pose velocity tracking errors versus time (for the results of Table 3.4).

F dp =    F d p1 . . . F d p3    , F b =    F x b1 . . .

List of Figures

Résumé

Cette thèse présente des nouvelles approches de modélisation, de suivi visuel et de commande des robots parallèles en utilisant des droites. Un robot parallèle est composé de plusieurs chaînes cinématiques fermées. Par conséquent, un fort couplage de comportement apparait durant le mouvement du robot.

La géométrie (squelette) d'un robot parallèle peut être définie en considérant les jambes de ce robot comme des droites 3D. Nous avons montré qu'en observant ces droites 3D, la modélisation, le suivi visuel et la commande d'un robot parallèle deviennent plus simples et que sa représentation géométrique et physique est plus intuitive. Le point commun des méthodes proposées est l'observation des orientations 3D des jambes avec précision et à grandes vitesses. Cela permet de commander les robots parallèles de manière rapide avec une bonne précision.

Pour la modélisation cinématique et dynamique des robots parallèles, nous avons développé une représentation basée sur les éléments cinématiques qui constituent le robot. Cette représentation rend la modélisation simple et immédiate. Les modèles obtenus sont basés sur les mesures des orientations et des vitesses des éléments cinématiques.

Pour cela, nous avons proposé un observateur d'état dynamique à haute vitesse qui peut fournir les orientations et les vitesses des éléments cinématiques. La méthode proposée est basée sur l'observation séquentielle et par portion des contours de chaque jambe. Nous avons utilisé ces contours pour construire une consigne spatio-temporelle et des fonctions d'erreurs basées sur des contraintes géométriques. Ensuite, ces fonctions d'erreurs sont minimisées en une seule itération d'une tâche d'asservissement visuel virtuel.

Nous avons également proposé une commande dynamique pour contrôler un robot parallèle dans différents espaces de commande. Ceci nous a permis de mener des analyses pour identifier l'espace le plus adéquat pour réaliser une tâche spécifique.

Ces nouvelles approches sont validées en simulation et, partiellement, en expérimentation. Les résultats obtenus sont satisfaisants et ouvrent des perspectives dans le domaine de la modélisation, du suivi visuel et de la commande des robots parallèles basé sur l'observation des jambes.

  2. "Vector-Based Dynamic Modeling and Control of the Quattro Parallel Robot by means of Leg Orientations", ICRA 2010; 3. "On the Adequation of Dynamic Modeling and Control of Parallel Kinematic Manipulators", IMSD 2010. and submitted the paper below: 1. "Linear Dynamic Modeling of Parallel Kinematic Manipulators from Observable Kinematic Elements", submitted to Int. Journal of Mechanism and Machine Theory.

Figure 1

 1 Figure 1.2 -The Stewart platform (left) and the Delta parallel robot (right).

Figure 1

 1 Figure 1.3 -The Gough-Stewart platform (left) and the Delta parallel robot (right) jointoriented graphical layouts.

  Parallel robots are, in theory, better than serial robots:

  1.72) Geometric identification methods can be classified in three groups: self-calibration methods, constrained-motion methods, and external-calibration methods. In self-calibration methods [YCYL02, HBP + 05, HL95], either extra sensors are added to the passive joints or an extra passive chain is added to the mechanism. On the other hand, constrained-motion methods do not need extra sensors [RR01b, BK01, RR01a, CP04, RFS08]. Constrained-motion methods either decrease number of degrees of freedom of the moving platform or the mobility of any joint (e.g., fixing the length of a leg of the Gough-Stewart platform). And, externalcalibration methods use external measurement devices, such as theodolite [WLR86], inclinometres [BK99a, RPR + 06], vision [RALD06, RVA + 06], laser-tracker [KAS + 98, NBHW00, MTW03], and the coordinate measuring machine [Dan03, CYH06, YH05]. The minimization algorithms can vary from a classical least square method [KD02] to an interval analysis method [Dan99, DACP06].

Figure 1 .

 1 Figure 1.11 -Dynamic parameter identification. { s m , s m , ṡ m , s m } and s e are the measured and the estimated signals, respectively. ξ dyn is the dynamic parameters vector.

Figure 1 .

 1 Figure 1.12 -State of the MICMAC art with the unreached objectives (upper-right box).

  Figure 2.2 illustrates the mass distribution of the Gough-Stewart parallel robot's moving platform.

Figure 2

 2 Figure 2.2 -(Left): The moving platform of the Gough-Stewart parallel robot. The black circle is the mass center of the platform. (Right): The moving platform with 6 point masses. These point masses are concentric and located at the same position with the moving platform's real mass center.

  Figure 2.3 illustrates the inertia distribution of the Gough-Stewart parallel robot's moving platform.

Figure 2

 2 Figure 2.3 -(Left): The moving platform of the Gough-Stewart parallel robot and its inertia calculated about a given frame. The white circles are the connection points of the kinematic legs. (Right): The 6 virtual pieces of the moving platform and their inertias calculated around the same frame.

Figure 2. 4 -

 4 Figure 2.4 -(Left): The moving platform of the Gough-Stewart parallel robot. The white circles are the connection points of the kinematic legs, and the black circle is the mass center of the platform. (Right): The distributed moving platform with 6 virtual platform elements. The mass m of the platform is shared by six of the virtual platform elements equally (i.e., m/6). Their mass centers are concentric and located at the same position with the moving platform's real mass center. The inertia I of the platform is shared by these virtual platform elements (i.e., I = I1 + . . . + I6).

Figure 2

 2 Figure 2.5 -(Left): The nacelle of the H4 parallel robot. It is composed of 3 articulated nacelle elements and it has 4 kinematic legs. The white circles are the connection points of the kinematic legs, and the black circles are the mass centers of the nacelle elements. (Right): The reconstruction of the nacelle with 8 virtual nacelle elements.The mass of each nacelle element is shared equally by virtual nacelle elements. The mass centers of these virtual kinematic elements are concentric and located at the same positions with the nacelle elements' real mass centers. The inertia I of the moving platform is shared by 4 virtual platform elements (i.e., I = I1 + I2 + I3 + I4).

Figure 2

 2 Figure 2.6 -A 2-dof planar five-bar mechanism. The revolute joints rotate around the z pi and z ai axes which are orthogonal to the paper plane. Actuators are located at Pi points. All the kinematic elements are homogenous and symmetric. ℓpi and ℓai are the constant lengths of the kinematic elements. On the right side of the figure, we see the joint-oriented kinematic graph and the new body-oriented kinematic graph of the five-bar mechanism. A pseudo moving platform can be imagined as one of the identical kinematic elements (e.g., [A2E]). The end-effector is located at point E.

2.

  Define the type of each of the « kinematic elements » (by inspection); 3. Compute the kinematic coordinates and the kinematic constraints (automatic); 4. List the local forces and torques on the kinematic elements (automatic); 5. Compute the dynamic coordinates and the dynamic constraints (automatic); 6. Solve linearly for the inverse dynamic model (automatic).

  and the two central kinematic elements ([C 3 C 2 ], [C 4 C 1 ]) linking lateral ones with revolute joints (see Fig. 2.8).

  2.138) where ẏ e = ω e × y e = (x e × ẋ e ) × y e = [ z e ] × ẋ e (2.139)

Figure 2 .

 2 Figure 2.11 -Local forces and torques which act on one of the identical kinematic legs. Left figure shows the active forces and torques of a kinematic leg. Right figure shows the reactive inertial and frictional forces/torques which balance the active forces/torques.

  Figure 3.2 gives an example set of the grabbed sub-images during the motion of the Quattro parallel robot, and Figure 3.3 simulates this motion.

Figure 3

 3 Figure 3.2 -Spatiotemporal set of the reference sub-images of the legs.

Figure 3 . 3 -

 33 Figure 3.3 -Sequentially grabbed sub-images of the legs during the motion of the Quattro robot. The lighter the color of the robot is, the more the motion is in the past.

Figure 3 . 5 -

 35 Figure3.5 -Sequential k postures of the real robot (bottom left) and the virtual robot (top right) which imitates the real robot. We grab a sub-image per posture from a leg of the real robot and extract the edge contours. The green squares show in which posture, which leg, and which part of this leg is observed. The green arrow shows the motion path of the real robot, and below this green arrow we see the sub-images grabbed during this motion. When the last sub-image is grabbed, the virtual robot's motion is evolved with the latest estimated dynamic state {X, Ẋ} in order to approximate the k postures of the real robot. The motion of the virtual robot evolves on a straight line whereas the motion of the real robot can be along a curve as in the green arrow. The red straight arrow shows the motion path of the virtual robot. Then, for each virtual robot posture, we find the leg which corresponds to the leg observed on the real robot. The red lines on the virtual robot postures show the corresponding observed legs of the real robot. Below the red arrow, we see the 3D cylinders of these legs recovered from the postures of the virtual robot. Finally, the stacked complete error is formed with the extracted edge contours of these k sub-images and the visual edge vectors of these k 3D cylinders.

Figure 3

 3 Figure 3.7 -Single-iteration virtual visual servoing for fast dynamic state estimation of the Quattro robot.

Figure 3

 3 Figure 3.8 -Validation of the estimated state variables.

  Figure 3.10 -The evolution of the reference trajectory in time in the robot base frame.

Figure 3 .

 3 Figure 3.11 -Reference (blue dotted line) and estimated (red solid line) Cartesian space curves in the robot base frame (for the results of Table3.4).

Figure 3

 3 Figure3.12 -Superimposed reference (red dotted line) and estimated (black solid line) Cartesian velocities in the camera frame (for the results of Table3.4).

Figure 3

 3 Figure 3.13 -Pose and pose velocity tracking errors versus time (for the results of Table3.4).

Figure 3 .

 3 Figure 3.14 -Control space selection.

Figure 3 .

 3 Figure 3.18 -The Quattro robot postures on the z-axis where lower-legs have the same 3D orientation vectors.

Figure 3

 3 Figure 3.21 -Cartesian space reference trajectory expressed in the camera frame.

  vectors and the { B 21 , B 31 } attachment points of the lowerlegs to the nacelle.

Figure 3 .

 3 Figure 3.22 shows the block diagram of the versatile computed-torque control scheme integrated with this edge-based linear dynamic state observer.

Figure 3 .

 3 Figure 3.22 -Versatile computed-torque control scheme integrated with the edge-based linear dynamic state observer.

Figure 3 .

 3 Figure 3.23 -End-effector computed-torque control scheme (EE-CTC). IDKM is the inverse differential kinematic model. IKM is the inverse kinematic model.

Figure 3 Figure 3 Figure 3

 333 Figure 3.24 -Reference (red) and performed (black) superimposed trajectories in ZY and ZX planes (top), motor torques (bottom) for the ES-CTC.

Figure 4 .

 4 Figure 4.1 shows test-bed of the Quattro parallel robot. In this test-bed the following points are important to note:

Figure 4 . 1 -

 41 Figure 4.1 -Left picture: The Quattro robot and its cell. The camera is mounted onto the base looking downwards to the legs. The back light platform is below the legs. Right picture: An image of the legs from the base-mounted camera.

Figure 4 .

 4 Figure 4.2 -The 16 edges (red lines) from 8 cylindrical legs of the Quattro robot for a given pose in calibration.

Figure 4 .

 4 3 shows the 3 robot posture images with the back-projection of the connection points B. Back-projection is performed with the extrinsic camera pose parameters which are computed linearly.

Figure 4 .

 4 Figure 4.3 -Back-projection (white circles) of connection points B with linearly computed extrinsic pose parameters.

Figure 4 .

 4 4 shows this reference sub-image (ROI * ) trajectory of the lower-legs of the Quattro robot.

Figure 4 . 4 -

 44 Figure 4.4 -Reference ROI * upper-left corner positions on the image plane. Red, green, blue and black traces belong to the first, second, third and forth lower-legs, respectively.

Figure 4 .

 4 Figure 4.5 -Cartesian space kinematic control with synchronous data acquisition. FKM and IDKM are the iterative forward kinematic model and the inverse differential kinematic model of the Quattro robot, respectively.

Figure 4 .

 4 6 shows simple block diagram for the computation of the ground truth states {X, Ẋ, Ẍ}.

Figure 4 .Figure 4 . 7 -

 447 Figure 4.6 -The ground truth end-effector pose (X), end-effector pose velocity ( Ẋ) and endeffector pose acceleration ( Ẍ) generation.

Figure 4 . 8 -

 48 Figure 4.8 -Left figure: Cartesian end-effector pose velocity ( Ẋ) prints of the square motion. Right figure: Cartesian end-effector pose acceleration ( Ẍ) prints of the square motion.

Figure 4 .

 4 Figure 4.9 -From left to right, sequentially grabbed (48 × 48 pixel 2 ) sub-images of the lowerlegs 1, 2, 3 and 4, of the Quattro parallel robot. White dots are the detected edge pixels for the dynamic state estimation algorithm. In this figure, the sub-images are zoomed.

Figure 4 .

 4 Figure 4.10 -High-speed dynamic state estimation scheme.

Figure 4 .

 4 Figure 4.11 depicts the reference (X) and the estimated ( X) Cartesian space curves.

Figure 4 .

 4 Figure 4.11 -Superimposed estimated ( X) and reference (X) 3D trajectories expressed in the camera frame. Red solid line is the estimated trajectory and blue dashed line is the reference trajectory.

Figure 4 .Figure 4 .

 44 Figure 4.12 -Cartesian pose estimation errors (e X ) versus time for the Figure 4.11.

Figure 4 .

 4 Figure 4.13 -Superimposed estimated ( Ẋ) and reference ( Ẋ) Cartesian pose velocities versus time for the Figure 4.11.

Figure 4 .

 4 Figure 4.14 -Superimposed reference (ROI * ) and predicted ( ROI) sub-image upper-left corner position trajectories on the image plane. Red dashed line is the reference and black solid line is the predicted.

Figure 4 .

 4 Figure 4.15 -ROI prediction errors on each of the observed legs of the Quattro parallel robot.A prediction error for a ROI is computed as the Euclidean distance between the reference ROI position and the predicted ROI position. The maximum prediction error is calculated as 4.2 pixels through the whole tracking process.

Figure 4 .

 4 16 illustrates this depth ambiguity.

Figure 4 .

 4 Figure 4.16 -A cylinder whose radius (r) is relatively smaller than its observational distance (d o ) from the camera. A small (ǫ) noise on the measured thickness of the cylinder on the image creates ambiguity on the depth of the revolution axis of the cylinder with respect to the optical center O of the camera. The red line shows this ambiguity (z) on the depth.

  .5 lists the length and weight of each of the identical kinematic elements of the Quattro parallel robot. All the required input A Kinematic Leg length weight an upper-leg 0.375 m 1.5 kg a lower-leg 0.825 m 0.48 kg Nacelle length weight a translational-bar 0.131 m 0.555 kg a rotational-bar 0.06172 m 0.555 kg Table4.5 -Geometric and dynamic parameters of the identical kinematic elements of the Quattro parallel robot. A motor inertia is obtained as I m = 0.000043 kg.m 2 from Adept.

Figure 4 .

 4 Figure 4.18 -Flow chart for the comparison of the outputs of the reference IDM and the proposed IDM with the measurements obtained during a motion of the Quattro robot. F KM is the forward differential kinematic model. IDKM is the inverse differential kinematic model which relates the end-effector pose velocity to the velocity of leg orientation vectors. IDKM 2 is the second order inverse differential kinematic model which relates the end-effector pose acceleration to the acceleration of leg orientation vectors.

Figure 4 .

 4 Figure 4.19 depicts the superimposed output torques of the reference (red dashed line) and the proposed (black solid line) inverse dynamic models of the Quattro parallel robot during the motion of the test square trajectory shown in Figure 4.7. In Figure 4.19, one can observe that the output curves fit each other quite well.Figure 4.20 shows the errors between the reference IDM output torques (Γ ref ) and proposed IDM output torques (Γ) versus time for the given test square trajectory.

Figure 4 .Figure 4 .Figure 4 .

 444 Figure 4.19 depicts the superimposed output torques of the reference (red dashed line) and the proposed (black solid line) inverse dynamic models of the Quattro parallel robot during the motion of the test square trajectory shown in Figure 4.7. In Figure 4.19, one can observe that the output curves fit each other quite well.Figure 4.20 shows the errors between the reference IDM output torques (Γ ref ) and proposed IDM output torques (Γ) versus time for the given test square trajectory.

Figure 4 .

 4 Figure 4.21 -Flow chart for the comparison of the outputs of the reference IDM and proposed IDM integrated with the high-speed state estimation algorithm. The accelerations are obtained from the measured articular positions of the Quattro robot. F KM is the forward differential kinematic model. IDKM 2 is the second order inverse differential kinematic model which relates the end-effector pose acceleration to the acceleration of leg orientation vectors.

Figure 4 .

 4 22 depicts the superimposed output torques of the reference (red dashed line) and the proposed (black solid line) inverse dynamic models of the Quattro parallel robot during the motion of the test square trajectory shown in Figure 4.7.

Figure 4 .

 4 23 shows the errors between the output torques (Γ ref ) of the reference IDM and the output torques (Γ) of the proposed IDM versus time for the given test square trajectory.

Figure 4 .

 4 Figure 4.22 -Superimposed motor torques for the square test trajectory. Red dashed line is the output of the reference inverse dynamic model, and black solid line is the output of our proposed inverse dynamic model integrated with the high-speed dynamic state estimation algorithm.The difference between these two models is calculated as 5% using the normalized root mean squares of the output torques.

Figure 4 .

 4 Figure 4.23 -The errors between the output torques (Γ ref ) of the reference IDM and the output torques (Γ) of the proposed IDM integrated with the high-speed dynamic state observer. The errors of Figure 4.22.

Figure 5

 5 Figure 5.1 -New state of the MICMAC art.

2. 4 .

 4 Blender module: Treatment of the lighting conditions of the robot legs. 3. Adams & Simulink module: Analysis of the dynamics and control of the robot. Coding module: Development of a MICMAC library in advanced programming languages where the MICMAC theories are efficiently implemented (i.e., real time and security considerations). 5. Sensing module: Development of fast smart cameras and adaptation of other intelligent sensing technologies for the MICMAC concept.6. Optimization module: Governs the interactions between the modules in order to satisfy the desired criteria for a MICMAC robot.

Figure A. 2 -

 2 Figure A.2 -The notation of the Gough-Stewart parallel robot.

Figure A. 3 -

 3 Figure A.3 -The Delta parallel robot (left) and its graphical layout (right).

  Figure A.3 shows the Delta robot and its graphical layout. All the kinematic legs are actuated from the base by revolute motors located at {P 1 , . . . , P 4 }. The Delta robot has 4 degrees of freedom: 3 translational and 1 rotational. The 3 of the kinematic legs are identical and each of these identical kinematic legs has two consecutive kinematic elements (an upper-leg [P i A i ] and a lower-leg [A i B i ]) linked with each other at A i . Each lower-leg consists of two slim and cylindrical shaped rods fitted with ball-joints ((A i1 , A i2 ) and (B i1 , B i2 )), forming a parallelogram. A kinematic leg of the Delta is symbolically noted as R -(S -S) 2 (this also equals to R -U -U ) where R and S stand for an actuated revolute joint and a passive spherical joint, respectively. The parallelograms of the identical kinematic legs restrict the movement of the moving-platform to pure translations in x, y and z axes. From the base, a fourth non-identical kinematic leg [P 4 E] extends to the middle of the moving-platform to give the end-effector a fourth, rotational degree of freedom around the z-axis z e of the end-effector frame.

  Figure A.4 depicts the geometric notation of the kinematic legs and the moving-platform. In modeling, the following notation is used:

Table A. 4 - 4 Table A. 5 -

 445 The (transposed) kinematic coordinates of the 4 th leg of the Delta parallel robot. The local forces and torques of the Delta parallel robot, i=1,2,3. (pi) τ x pi z pi 0 So as to eliminate the non-contributing forces, the dynamic coordinates are computed through the matrix-wise multiplication of the Tables A.3 (transposed kinematic coordinates) and A.5 (sum of the local forces and torques).

+ fd 4 + f * 4 τ θ 4 x 4 +

 44 τ θ 4 + τ x 4 + τ * θ 4 + τ *

  where F x 4 ∈ ℜ 3×1 , F d 4 ∈ ℜ 1×1 and F θ 4 ∈ ℜ 1×1 are brought from (A.81). The M a ∈ ℜ 9×4 and M p ∈ ℜ 9×4 are the stacked matrices of the inverse differential kinematic models M ai ∈ ℜ 3×4 and M pi ∈ ℜ 3×4 , respectively. The M 4 ∈ ℜ 3×4 , M d 4 ∈ ℜ 1×4 and M θ 4 ∈ ℜ 1×4 are brought from (A.70), (A.67) and (A.71), respectively.

  Figure A.5 shows the 3-RRR planar parallel robot and its graphical layout.

Figure A. 5 -

 5 Figure A.5 -The 3-RRR planar parallel robot (left) and its graphical layout (right).

3×3 1 2

 1 ℓ ai I 3 [ x ai ] bi I 3 [ x bi ] T × A.3.6 Dynamic Coordinates Local Active/Reactive Forces and Torques Table A.8 tabulates the local forces and torques of the 3-RRR parallel robot. Table A.8 -The local forces and torques of the 3-RRR parallel robot, i=1,2,3.So as to eliminate the non-contributing forces, the dynamic coordinates are computed through the matrix-wise multiplication of the Tables A.7 (transposed kinematic coordinates) and A.8 (sum of the local forces and torques).

  where M p ∈ ℜ 9×6 , M a ∈ ℜ 9×6 and M b ∈ ℜ 9×6 are the stacked matrices of the inverse differential kinematic models M pi ∈ ℜ 3×6 , M ai ∈ ℜ 3×6 and M bi ∈ ℜ 3×6 , respectively.

Figure A. 8 -

 8 Figure A.8 -The notation of the Orthoglide parallel robot.

  Constraints on the Passive [B i C i ] Bar Type Kinematic ElementsConstraints on the orientations of the passive bar type kinematic elements are computed as follows:

  f * bi = -m bi Sbi , τ * bi = -I T bi ω biω bi × (I T bi ω bi ) (A.138) f * ci = -m bi Sbi , τ * ci = 0 (A.139)-Active Joint Frictional Forces: The frictional forces of the linear actuators are as follows:fd pi = -( fv(d pi ) ḋpi + fc(d pi ) sign( ḋpi ) ) x pi (A.140)where fv(d pi ) and fc(d pi ) are the viscous and Coulomb friction coefficients of the linear actuators. -Passive Joint Frictional Torques: The frictional torques of the passive joints are as follows:τ x bi = -τv(x bi ) ω bi -τc(x bi ) sign( ω T bi z bi ) z bi (A.141) τ x ci = -τv(x ci ) ( ω ciω bi ) -τc(x ci ) sign( ( ω ciω bi ) T z ci ) z ci (A.142)where τv(x ji ) and τc(x ji ) are the viscous and Coulomb friction coefficients of the passive rotary joints.TableA.10 tabulates all of the local forces and torques of the Orthoglide parallel robot. Table A.10 -The local forces and torques of the Orthoglide parallel robot, i=1,2,3. Active F riction Inertia * Actuator Gravity Actuator P assive Joint Actuator Element F orces(pi, ai) f d pi x pi f g(ai)

  144)wheref pi = f g(ai) + fd pi + f * d pi (A.145)

  where M dp ∈ ℜ 3×3 and M b ∈ ℜ 9×3 are the stacked matrices of the inverse differential kinematic models M d pi ∈ ℜ 1×3 and M bi ∈ ℜ 3×3 , respectively.

1 A camera is

  observing the leg directions of a parallel robot. Leg orientation vectors unify modeling and control into a single linear control-oriented framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 A metaphor for a parallel robot concept: a hand holding a red apple with its fingertips. The palm of the hand forms the base platform. Fingers represent the kinematic chains. The red apple is either the moving platform or the moving platform with a large heavy load. . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 The Stewart platform (left) and the Delta parallel robot (right). . . . . . . . . . 1.3 The Gough-Stewart platform (left) and the Delta parallel robot (right) jointoriented graphical layouts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4 Robot model is assumed to be an integrator in a kinematic control. . . . . . . . 1.5 Sensor space kinematic control. . . . . . . . . . . . . . . . . . . . . . . . . . 1.6 Model-space kinematic control. . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7 Robot model is assumed to be a double integrator in a dynamic control. . . . . 1.8 Joint Space CTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.9 Cartesian Space CTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.10 Identification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.11 Identification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.12 State of the MICMAC art with the unreached objectives (upper-right box). . . . 1.13 An Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.14 3D Line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.15 Prisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.16 Prism projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.17 Cylindrical leg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Kinematic Element . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Gough Moving Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Gough Moving Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Gough Moving Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 H4 Moving Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 fivebar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7 The Quattro parallel robot with a base-mounted camera (left) and its jointoriented graphical layout (right). . . . . . . . . . . . . . . . . . . . . . . . . . 2.8 Side and front views of a kinematic leg with its variables and parameters (left). The plan of the nacelle with its variables and parameters (right). . . . . . . . . 2.9 Body-oriented graphical layout of the Quattro parallel robot. . . . . . . . . . . 2.10 The mass centers S ji (white squares) of the kinematic elements. All of the kinematic elements are assumed to be homogenous and symmetric. . . . . . . . 2.11 Local forces and torques which act on one of the identical kinematic legs. Left figure shows the active forces and torques of a kinematic leg. Right figure shows the reactive inertial and frictional forces/torques which balance the active forces/torques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 View of the geometry of a cylindrical kinematic element from its 3D orientation direction (perpendicular to the paper plane). . . . . . . . . . . . . . . . . . . . 3.2 Spatiotemporal set of the reference sub-images of the legs. . . . . . . . . . . . 3.3 Sequentially grabbed sub-images of the legs during the motion of the Quattro robot.

3. 6 A

 6 full image of lower-legs with their sub-images from the base-mounted camera of the Quattro robot. These sub-images are consecutively grabbed at discrete time instants and given to the virtual visual servoing as a reference. In this image, the Quattro robot is static. . . . . . . . . . . . . . . . . . . . . . . 3.7 Single-iteration virtual visual servoing for fast dynamic state estimation of the Quattro robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Validation of the estimated state variables. . . . . . . . . . . . . . . . . . . . . 3.9 The scenario of the sub-image acquisition instants of the legs of the Quattro robot for its dynamic state estimation. Black squares represent instants of already grabbed sub-images. White squares are future instants of sub-image grabbing. t c is the last acquisition instant of the camera. tc is the last estimation instant. Black triangles represent instants of already made estimations for the dynamic state of the robot. White triangles are future estimation instants. T c is a time period of successive acquisitions of the camera. . . . . . . . . . . . . . . . . . 3.10 The evolution of the reference trajectory in time in the robot base frame. . . . . 3.11 Reference (blue dotted line) and estimated (red solid line) Cartesian space curves in the robot base frame (for the results of Table

  3.14 Control space selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.15 Linearized dynamics in the control space (left) and linearized dynamics in the state space (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.16 Versatile computed-torque control scheme (V-CTC). . . . . . . . . . . . . . . 3.17 Body orientation space computed-torque control (BS-CTC). . . . . . . . . . . 3.18 The Quattro robot postures on the z-axis where lower-legs have the same 3D orientation vectors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.19 Leg-based Cartesian-space computed-torque control scheme (LCS-CTC). . . . 3.20 Edge-space computed-torque control scheme (ES-CTC). . . . . . . . . . . . . 3.21 Cartesian space reference trajectory expressed in the camera frame. . . . . . . . 3.22 Versatile computed-torque control scheme integrated with the edge-based linear dynamic state observer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.23 End-effector computed-torque control scheme (EE-CTC). IDKM is the inverse differential kinematic model. IKM is the inverse kinematic model. . . . . . . . 3.24 Reference (red) and performed (black) superimposed trajectories in ZY and ZX planes (top), motor torques (bottom) for the ES-CTC. . . . . . . . . . . . . 3.25 Reference (red) and performed (black) superimposed trajectories in ZY and ZX planes (top), motor torques (bottom) for the BS-CTC. . . . . . . . . . . . . 3.26 Reference (red) and performed (black) superimposed trajectories in ZY and ZX planes (top), and motor torques (bottom) for the LCS-CTC. . . . . . . . . . 4.1 Left picture: The Quattro robot and its cell. The camera is mounted onto the base looking downwards to the legs. The back light platform is below the legs. Right picture: An image of the legs from the base-mounted camera. . . . . . .

93) 1.5.4.2.2 Sensing of Prism-Shaped Legs: Most

	Figure 1.15 -Prisms.
	of the parallel robots are equipped with
	prism-shaped legs. Prisms are geometric solids whose bases are identical polygons lying in
	parallel planes and whose sides are parallelograms (see Fig. 1.15). A cylinder may be conside-
	red as a round prism, or one that has an infinite number of sides. A prism-shaped leg can be
	considered as a 3D line and be modeled with Plücker coordinates:
	(leg) : ( x, n x , d x , shape )	(1.94)

Table 2 .

 2 .104) We can now list all the local forces and torques for the five-bar mechanism as in Table2.2. 2 -The local forces and torques of the five-bar mechanism, i=1,2.

	Active	F riction	Inertia *
	Actuator Gravity Actuator P assiveJoint Actuator Element
	F orces (pi)

Table 2 .

 2 4 -The local forces and torques of the Quattro parallel robot, i=1,2,3,4.

	Active	F riction	Inertia *
	Actuator Gravity Actuator P assive Joint Actuator Element
	F orces (pi)

Table 3 .

 3 1 -Comparison of sequential and non-sequential approaches.

	Task	Sequential Non -Sequential
	Image acquisition	1 T sub	1 T f ull
	Feature extraction	1 T sub	1 T f ull
	Posture computation	k T sub	k T sub
	Posture and velocity computation k T sub	2k T sub

Table 3 .

 3 .2 gives the two pseudo-codes of the classical virtual visual servoing and the single-iteration virtual visual servoing which are used in a vision-based control task. 2 -Pseudo-codes for a vision-based control loop with the slow classical VVS state tracking (left) and the fast single-iteration VVS state tracking (right).

	// Slow VBC Loop • while ( control error > ǫ 1 ) • image grabbing • detection // Classical VVS Loop • while ( tracking error > ǫ 2 ) • error computation • correction • state update • control computation • move robot	// Fast VBC Loop • while ( control error > ǫ ) • sub-image grabbing • detection // Single-iteration VVS • error computation • correction • state update • control computation • move robot

Table 3 .

 3 3 -Dynamic state estimation errors (without noise).

		Pose Errors	Velocity Errors
		xyz (m) θ (rad)	ẋ yz (m/s) θ (rad/s)
	RMSE	0.0090	0.047	0.216	1.049
	Hausdorff	0.0024	0.007	0.095	0.887

Table 3 .

 3 4 -Dynamic state estimation errors (with noise).

		Pose Errors	Velocity Errors
		xyz (m) θ (rad)	ẋ yz (m/s) θ (rad/s)
	RMSE	0.0108	0.083	0.221	1.143
	Hausdorff	0.0052	0.023	0.163	0.792

Table 3 .

 3 5 -Tracking errors versus noises in different control spaces.

		ES-CTC		BS-CTC		LCS-CTC
		xyz (µm) θ (deg) xyz (µm) θ (deg) xyz (µm) θ (deg)
	no noise	408	0.23 •	356	0.23 •	359	0.23 •
		239	0.19 •	190	0.16 •	182	0.16 •
	100 µm	674	0.32 •	652	0.37 •	553	0.36 •
		447	0.26 •	385	0.26 •	269	0.25 •
	±2 pixels 553	0.22 •	522	0.22 •	529	0.34 •
		428	0.18 •	371	0.16 •	236	0.23 •
	100 µm	881	0.28 •	899	0.29 •	560	0.36 •
	±2 pixels 647	0.23 •	703	0.24 •	264	0.25 •
	100 µm	_		_		862	0.56 •
	0.01 •					400	0.38 •

Table 4 .

 4 3 -Dynamic state estimation errors.

		Pose Errors	Velocity Errors
		xyz (m) θ (rad)	ẋ yz (m/s) θ (rad/s)
	RMSE	0.004	0.027	0.098	0.31
	Hausdorff	0.007	0.048	0.267	0.88
	ledge, this method also implies the first proposed vision-based dynamic motion estimation of
	an articulated object at high speed by sequential sub-image acquisition.
	Table 4.4 -Times taken for an estimation with 48 × 48 sub-images.
	ROI exposure ROI transfer Edge detection Estimation
	Time (µs)	500	100	200	600
	4.1.7 Comparison

Table ( A

 ( .2) tabulates all these local forces and torques of the Gough parallel robot.TableA.2 -The local forces and torques of the Gough parallel robot, i=1, . . . ,6.

	Active	F riction	Inertia *
	Actuator Gravity Actuator P assive Joint Actuator Element
	F orces (ai)

Table A .

 A 6 -The local forces and torques of the 4 th leg of the Delta parallel robot.The dynamic coordinates for the 4 th kinematic leg of the Delta are computed with the matrixwise multiplication of the Tables A.4 and A.6:

		Active				F riction			Inertia *
		Actuator Gravity Actuator P assive Joint Actuator Element
	F orces (4) T orques (4) τ θ 4 x 4 0		f g(4) 0	0 τ θ 4		fd 4 τ x 4		0 τ * θ 4	f * 4 τ * 4
	where
						τ pi = τ x pi + τ * x pi + τ * pi		(A.79)
		 	F x 4 F d 4 F θ 4	  =	 	Kinematic Coordinates T able A.4	 	(3×2)	   	T able A.6 Sum of F orces T orques	   	(2×1)	(A.80)
	which can be explicitly written as follows:
	 	F x 4 F d 4 F θ 4

If the robot is mobile, then the direction of the gravity vector with respect to robot's base frame may change. If the robot is on another planet (e.g., moon), then the magnitude of the gravity vector changes too.

Sometimes the mass center can move with respect to its body frame, then the inertia is not constant anymore.

Internal mechanism mobility: a redundant motion which does not change the geometric configuration of the mechanism.

Remerciements

projet ANR VIRAGO qui a financé cette thèse.

Contributions

In this thesis, the key contributions are built upon the orientations of the legs of a parallel robot. Figure 1

A.1.1 Geometry and Notation

The Gough-Stewart parallel robot incorporates 6 identical kinematic legs. Figure A.1 shows the Gough-Stewart parallel robot and its graphical layout. The mechanism's fixed base, {A 1 , . . . , A 6 }, holds the moving-platform with these kinematic legs. The moving-platform is a single rigid body, {B 1 , . . . , B 6 }. Each kinematic leg is a telescopic system consisting of a single kinematic element [A i B i ] with an embedded prismatic actuator. A kinematic leg of the Gough-Stewart is symbolically noted as S -P -S where S and P stand for a passive spherical joint and an actuated prismatic joint, respectively. These actuators give 6 degrees of freedom to the moving-platform by pushings and pullings: 3 translational movements in x, y, z axes (lateral, longitudinal and vertical), and 3 rotational movements (pitch, roll and yaw). i = 1, 2, 3, 4, 5, 6 denotes the kinematic legs.

configuration or on the end-effector frame. It is thus a telescopic type kinematic element: {x ai , d ai }.

Moving-platform [B i E]

Each of these virtual kinematic elements of the moving-platform has 3 dof rotational extrinsic mobility due to (S)pherical joint and as well as 1 dof selfrotational intrinsic mobility (around its direction) due to the pushings and pullings of the other kinematic legs attached to the moving-platform. It is thus an spindle type kinematic element: {x bi , θ bi }.

The { x ai , d ai , x ai , θ bi } are the new variables that redefine the state of the mechanism.

A.1.3 Kinematics Mass Centers

Assuming that all the kinematic elements are homogenous and symmetric, the mass center positions are written as follows:

Velocities

The translational and rotational velocities of the kinematic elements are computed as below: (i) translational velocities,

The rotation θ ai does not change the posture of the moving-platform.

Accelerations

The translational and rotational accelerations of the kinematic elements are computed as below: (i) translational accelerations,

A.1.4 Kinematic Constraints

Assuming that the end-effector frame is located at the mass center position of the moving platform, the closed-loop constraint equation for each of the kinematic legs can be written as follow:

-

where O and A i are constants. Afterwards, one can differentiate the last closed-loop constraint equation with respect to time in order to obtain the motion constraint equation, which yields:

The motion constraints for the attachment points B i of the moving-platform can be derived from (A.11) using the constant parameters α i and β i as below:

x bi = α i x e + β i y e (A.12)

where L Bi is the relation between the Cartesian velocity of the terminal point of the i th kinematic leg and the end-effector pose velocity Ẋ.

Constraints on the Active Telescopic Kinematic Legs

Constraints on the variations of the lengths of the telescopic kinematic elements are computed as follows:

ḋai

Constraints on the orientations of the telescopic kinematic elements are computed as below:

Constraints on the Passive Moving-Platform Virtual Kinematic Elements

Constraints on the orientations of the virtual axis type kinematic elements of the movingplatform are computed as follows:

Constraints on the self-rotations of the virtual axis type kinematic elements of the movingplatform are computed as below:

)

A.1.5 Kinematic Coordinates

Equation (A.28) and Table A.1 show the motion basis and the kinematic coordinates of the mechanism, respectively.

Table A.1 -The (transposed) kinematic coordinates of the Gough-Stewart robot, i=1, . . . ,6.

A.1.6 Dynamic Coordinates

Listing the Active and Reactive Forces

The active forces are as follows:

-Actuator and Gravity Forces:

where f d ji and f g(ji) are the actuator and gravity forces, respectively.

-

, F e = (E, x e , y e , z e ), F pi = (P i , x pi , y pi , z pi ), F ai = (A i , x ai , y ai , z ai ), F bi = (B i , x bi , y bi , z bi ) and F 4 = (P 4 , x 4 , y 4 , z 4 ) denote respectively the base, the end-effector, the i th upper-leg, the i th lower-leg, the movingplatform's i th virtual kinematic element and the 4 th kinematic leg frames. -q i is the articulated position of the i th upper-leg leg.

d 4 and θ 4 are the length and the rotational angle around itself of the 4 th non-identical kinematic leg. -The end-effector pose is composed of the origin E of the end-effector frame and rotational angle θ 4 of the 4 th non-identical kinematic leg. The end-effector pose velocity is then Ė and θ4 :

-Side and front views of a kinematic leg with its variables and parameters (left).

The plan of the moving-platform with its variables and parameters (right).

A.2.2 State Variables Kinematic Element Types

We have got the following basic parts in the Delta: upper-legs, lower-legs, the fourth nonidentical kinematic leg and the moving platform. The configurations of those parts are defined by the new variable set of a kinematic element rather than the non-linear joint coordinates: Upper-legs [P i A i ] An upper-leg rotates around a fixed axis. It has 1 dof rotational extrinsic mobility due to a (R)evolute joint. It is a bar type kinematic element: x pi .

Lower-legs [A i B i ]

A lower-leg (a parallelogram) rotates around a moving axis. It has 2 dof rotational extrinsic mobility due to the existing (S)pherical joints. It is thus a bar type kinematic element: x ai .

Fourth-leg [P 4 E]

The fourth non-identical kinematic leg has 3 dof rotational extrinsic mobility and as well as 2 dof intrinsic mobility (1 for translation along its direction and 1 for self-rotation around its direction). It is a screw type kinematic element: {x 4 , d 4 , θ 4 }.

Moving-platform [B i E]

A virtual kinematic element of the rigid moving-platform only translates in space. It is a bar type kinematic element: x bi (moving vector with a fixed direction). The { x pi , x ai , x 4 , d 4 , θ 4 } are now the new variables that redefine the state of the mechanism.

A.2.3 Kinematics Mass Centers

Assuming that all the kinematic elements are homogenous and symmetric, the mass center positions are written as follows:

The direction vectors (x bi ) of the virtual kinematic elements of the moving-platform have fixed orientations. The mass center position of the non-identical kinematic leg is written as below:

Velocities

The translational and rotational velocities of kinematic elements are computed as follows:

Accelerations

The translational and rotational accelerations of kinematic elements are computed as below:

A.2.4 Kinematic Constraints

Assuming that the end-effector frame is located at the mass center position of the moving platform, the closed-loop constraint equation for each of the identical kinematic legs can be written as follow:

-

where O, P i and (ℓ bi x bi ) are constants. Afterwards, one can differentiate the last closed-loop constraint equation with respect to time in order to obtain the motion constraint equation, which yields:

Constraints on the Active Upper-Legs

Constraints on the orientations of the active upper-legs are computed as follows:

x T ai Ė -ℓ pi x T ai ẋ pi = 0 (A.55)

Constraints on the Passive Lower-Legs

Constraints on the orientations of the passive lower-legs are computed as follows:

Constraints on the Active Fourth Kinematic-Leg

Constraint on the variation of the length of the 4 th kinematic leg is computed as follows:

Constraint on the orientation of the 4 th kinematic leg is computed as follows:

Since the rotation of the end-effector directly comes from the 4 th kinematic leg, then the self-rotation of the 4 th kinematic leg is computed as follows:

Constraints on the Active Joints

Constraints on the active joints coordinates are computed as follows:

A.2.5 Kinematic Coordinates

Equations (A.75), (A.76) and Tables (A.

3), (A.4) show the motion basis and the kinematic coordinates of the mechanism, respectively.

Table A.3 -The (transposed) kinematic coordinates of the Delta parallel robot, i=1,2,3.

A.3.2 State Variables Kinematic Element Types

We have got the following basic parts in the 3-RRR: upper-legs, lower-legs and the moving platform. The configurations of those parts are defined by the proposed new variable set of a kinematic element rather than the non-linear joint coordinates: Upper-legs [P i A i ] An upper-leg rotates around a fixed axis. It has 1 dof rotational extrinsic mobility due to a (R)evolute joint. It is a bar type kinematic element: x pi .

Lower-legs [A i B i ]

A lower-leg rotates around a fixed axis. It has 1 dof rotational extrinsic mobility due to a (R)evolute joint. It is a bar type kinematic element: x ai .

Moving-platform [B i E]

A virtual kinematic element of the rigid moving-platform rotates around a fixed axis. It has 1 dof rotational extrinsic mobility due to a (R)evolute joint. It is a bar type kinematic element: x bi .

The { x pi , x ai , x bi } are now the new variables that redefine the state of the mechanism.

A.3.3 Kinematics Mass Centers

Assuming that all the kinematic elements are homogenous and symmetric, the mass center positions are written as follows:

Velocities

The translational and rotational velocities of the kinematic elements are computed as below:

Accelerations

The translational and rotational accelerations of the kinematic elements are computed as follows:

A.3.4 Kinematic Constraints

Assuming that the end-effector frame is located at the mass center position of the moving platform, the closed-loop constraint equation for each of the kinematic legs can be written as follow:

-

where O and P i are constants. Afterwards, one can differentiate the last closed-loop constraint equation with respect to time in order to obtain the motion constraint equation, which yields:

The motion constraints for the attachment points B i of the moving-platform can be derived from (A.95) as below:

x bi = α i x e + β i y e (A.96)

where L Bi is the relation between the Cartesian velocity of the terminal point of the i th kinematic leg and the end-effector pose velocity Ẋ.

Constraints on the Active Upper-Legs

Constraints on the orientations of the active upper-legs are computed as follows:

Constraints on the Passive Lower-Legs

Constraints on the orientations of the passive lower-legs are computed as follows:

Constraints on the Passive Moving-Platform Virtual Kinematic Elements

Constraints on the orientations of the virtual axis type kinematic elements of the movingplatform are computed as follows:

Constraints on the Active Joints

Constraints on the active joint coordinates are computed as follows:

A.3.5 Kinematic Coordinates

Equation (A.113) and Table (A.7) show the motion basis and the kinematic coordinates of the mechanism, respectively.

A.4 The Orthoglide Robot

A.4.1 Geometry and Notation

The Orthoglide robot consists of 3 identical kinematic legs. Each kinematic leg has 3 consecutive kinematic elements

A kinematic leg of the Orthoglide is symbolically noted as P -R -P a -R where P , R and P a denote an actuated prismatic joint, a revolute joint and a parallelogram joint, respectively. The kinematic legs interconnect the fixed base to the moving-platform. The moving-platform is a single rigid body {C 1 , C 2 , C 3 }. It is attached to the parallelograms which restrict its motion only to translational movements in x, y and z axes. As a result, the moving-platform of the Orthoglide robot has 3 degrees of freedom. In modeling, the following notation is used:

i = 1, 2, 3 denotes the kinematic legs.

j = {p, a, b, c} is the literal representation of the kinematic elements.

ξ geo = {O, P i , ℓ ai , ℓ bi , ℓ ci } are the geometric parameters (constant lengths and points).

ξ dyn = {m ji , I ji , f v i , f c i } are the dynamic parameters (weights, inertias and frictions).

-

, F e = (E, x e , y e , z e ), F pi = (P i , x pi , y pi , z pi ), F ai = (A i , x ai , y ai , z ai ), F bi = (B i , x bi , y bi , z bi ) and F ci = (C i , x ci , y ci , z ci ) denote respectively the base frame, the end-effector frame, the 1 st kinematic element frame of the i th kinematic leg, the 2 nd kinematic element frame of the i th kinematic leg, the 3 nd

The { d pi , x bi } is the new variable set that redefine the state of the mechanism.

A.4.3 Kinematics Mass Centers

Assuming that all the kinematic elements are homogenous and symmetric, the mass center positions are written as follows:

where (x pi ), (ℓ ai x ai ) and (ℓ ci x ci ) are constants.

Velocities

The translational and rotational velocities of the kinematic elements are computed as below:

Accelerations

The translational and rotational accelerations of the kinematic elements are computed as follows:

Sai = dpi x pi , ω ai = 0 (A.126)

A.4.4 Kinematic Constraints

Assuming that the end-effector frame is located at the mass center position of the moving platform, the closed-loop constraint equation for each of the kinematic legs can be written as follow:

-

where O, P i , (x pi ), (ℓ ai x ai ) and (ℓ ci x ci ) are constants. Afterwards, one can differentiate the last closed-loop constraint equation with respect to time in order to obtain the motion constraint equation, which yields: Ė -ℓ bi ẋ bi -ḋpi x pi = 0 (A.130) The plan of the moving-platform with its variables and parameters (right). . . . A.5 The 3-RRR planar parallel robot (left) and its graphical layout (right). . . . . .

Abstract

This thesis presents novel methods for modeling, tracking and control of parallel robots by means of lines. A parallel robot is composed of several closed-loop kinematic chains which cause a highly coupled-motion behavior. By treating the legs of a parallel robot as 3D lines and representing the geometry with a skeleton constructed from these 3D lines of the legs, the modeling, tracking and control of a parallel robot become geometrically and physically simpler and more intuitive.

The common key point for the simplicity and accuracy of all these methods is the precise observation of the 3D orientation vectors of the legs at high speed. This is because of parallel robots are designed for high speed applications. Thus, we first developed a body-based linear scheme both for kinematic and dynamic modeling of parallel robots. This body-based linear modeling scheme is so simple such that one can work out all the equations even for the most complex parallel robot by pen and paper. The simplicity and feasibility of this modeling scheme are conditioned on that the 3D leg direction vectors and their velocities are known. Therefore, secondly we proposed a high-speed vision based dynamic state observer which can provide these 3D leg direction vectors of a parallel robot and their velocities at each sampling time. We achieved this by sequentially observing small portions of the legs in order to form a spatiotemporal reference signal and then by minimizing the constraints written from the geometric shapes of the legs in a single-iteration virtual visual servoing scheme.

Afterwards, we constructed a versatile computed-torque control scheme which allows us to control the parallel robot for a given task in different control spaces. We defined this versatile control scheme so that we can analyse and then choose the best control space for better control of parallel robots for a given specific task.

These proposed novel methods are validated by the first promising simulation and experimental results. Obtained results encourage us to explore more the modeling, tracking and control of parallel robots by means of lines.