modeling and control of manipulators - part i: geometric

211
HAL Id: cel-02129939 https://hal.inria.fr/cel-02129939 Submitted on 15 May 2019 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Distributed under a Creative Commons Attribution - NonCommercial| 4.0 International License Modeling and Control of Manipulators - Part I: Geometric and Kinematic Models Wisama Khalil To cite this version: Wisama Khalil. Modeling and Control of Manipulators - Part I: Geometric and Kinematic Mod- els. Doctoral. GdR Robotics Winter School: Robotica Principia, Centre de recherche Inria Sophia Antipolis – Méditérranée, France. 2019. cel-02129939

Upload: others

Post on 01-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modeling and Control of Manipulators - Part I: Geometric

HAL Id: cel-02129939https://hal.inria.fr/cel-02129939

Submitted on 15 May 2019

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

Distributed under a Creative Commons Attribution - NonCommercial| 4.0 InternationalLicense

Modeling and Control of Manipulators - Part I:Geometric and Kinematic Models

Wisama Khalil

To cite this version:Wisama Khalil. Modeling and Control of Manipulators - Part I: Geometric and Kinematic Mod-els. Doctoral. GdR Robotics Winter School: Robotica Principia, Centre de recherche Inria SophiaAntipolis – Méditérranée, France. 2019. cel-02129939

Page 2: Modeling and Control of Manipulators - Part I: Geometric

Modeling and Control of Manipulators

Part I: Geometric and Kinematic Models

Master I EMAROEuropean Master on Advanced Robotics

Wisama KHALIL

Ecole Centrale de Nantes

Master Automatique, Robotique et Informatique Appliquée

Master in Control Engineering, Robotics and Applied

Informatics

2013-2014

Master I ARIA

Page 3: Modeling and Control of Manipulators - Part I: Geometric
Page 4: Modeling and Control of Manipulators - Part I: Geometric

Table of Contents

Chapter 1: Terminology and general definitions 1.1. Introduction .............................................................................................................................1 1.2. Mechanical components of a robot .........................................................................................2 1.3. Definitions ................................................................................................... ………………..4 1.3.1. Joints ...................................................................................................................... 4 1.3.2 Degrees of Mobility or Number of degrees of freedom of a body ............................5 1.3.3. Joint space .............................................................................................................. 5 1.3.4. Task space .............................................................................................................. 5 1.3.5. Redundancy ..............................................................................................................6 1.3.6. Singular configurations .............................................................................................6 1.4. Choosing the number of degrees of freedom of a robot .............................. ………………..7 1.5. Architectures of robot manipulators ...................................................................................... 7 1.6. Characteristics of a robot ......................................................................................................12 1.7. Conclusion ................................................................................................. …......................13 Chapter 2: Transformation matrix between vectors, frames and screws Transformation matrix between vectors, frames and screws 2.1. Introduction .......................................................................................................................... 15 2.2. Homogeneous coordinates ................................................................................................... 16 2.2.1. Representation of a point .................................................................. .....................16 2.2.2. Representation of a direction............................................................. .....................16 2.2.3. Representation of a plane .................................................................. .................... 17 2.3. Homogeneous transformations [Paul 81].................................................. ........................... 17 2.3.1. Transformation of frames .................................................................. ................... 17 2.3.2. Transformation of vectors ................................................................. ................... 18 2.3.3. Transformation of planes .................................................................. ................... 19 2.3.4. Transformation matrix of a pure translation ..................................... .................... 19 2.3.5. Transformation matrices of a rotation about the principle axes ........ ....................20 2.3.6. Properties of homogeneous transformation matrices ........................ .....................22 2.3.7. Transformation matrix of a rotation about a general vector located at the origin . 25 2.3.8. Equivalent angle and axis of a general rotation ................................ 27 2.4. Representation of velocities ....................................................................... ………………..29 2.4.1. Definition of a screw ......................................................................... ……………30 2.4.2. Kinematic screw ................................................................................ …………... 30 2.4.3. Transformation matrices between screws ......................................... …………….31 2.5. Differential translation and rotation of frames ........................................... ……………… 32 2.6. Representation of forces (wrench) ............................................................. ………………..35 2.7. Conclusion ................................................................................................. ………………..36

Page 5: Modeling and Control of Manipulators - Part I: Geometric

Modeling, identification and control of robots

Chapter 3: Direct geometric model of serial robots 3.1. Introduction .......................................................................................................................... 37 3.2. Description of the geometry of serial robots .............................................. ………………..38 3.3. Direct geometric model ............................................................................. ………………...44 3.4. Optimization of the computation of the direct geometric model ............... ………………..47 3.5. Transformation matrix of the end-effector in the world frame .................. ………………. 50 3.6. Specification of the orientation .................................................................. ………………. 51 3.6.1. Euler angles ....................................................................................... …………... 52 3.6.2. Roll-Pitch-Yaw angles ...................................................................... …………….54 3.6.3. Quaternions ....................................................................................... …………….56 3.7. Conclusion ................................................................................................. …………..….....58 Chapter 4: Inverse geometric model of serial robots 4.1. Introduction ............................................................................................... ………………...59 4.2. Mathematical statement of the problem ..................................................... ………………. 60 4.3. Inverse geometric model of robots with simple geometry ......................... ………………..61 4.3.1. Principle ............................................................................................ …………… 61 4.3.2. Special case: robots with a spherical wrist ........................................ ……………63 4.3.3. Inverse geometric model of robots with more than six degrees of freedom ……..71 4.3.4. Inverse geometric model of robots with less than six degrees of freedom ……….71 4.4. Inverse geometric model of decoupled six degree-of-freedom robots ................................. 74 4.4.1. Introduction ............................................................................................................ 74 4.4.2. Inverse geometric model of six degree-of-freedom robots with a spherical joint ..75 4.4.3. Inverse geometric model of robots with three prismatic joints ......... ……………82 4.5. Inverse geometric model of general 6 dof robots ...................................... ………………...83 4.6. Conclusion ................................................................................................. ………………...87 Chapter 5: Direct kinematic model of serial robots 5.1. Introduction ............................................................................................... ……………… 89 5.2. Computation of the Jacobian matrix from the direct geometric model ...... ……………….90 5.3. Kinematic Jacobian matrix ........................................................................ ………………..91 5.3.1. Computation of the kinematic Jacobian matrix ................................. ……………92 5.3.2. Computation of the matrix iJn ........................................................... ……………94 5.4. Decomposition of the Jacobian matrix into three matrices ........................ ………………..97 5.5. Efficient computation of the end-effector velocity .................................... ………………. 98 5.6. Dimension of the task space of a robot ...................................................... ………………. 99 5.7. Analysis of the robot workspace .............................................................. ………………..100 5.7.1. Workspace ....................................................................................... …………... 100 5.7.2. Singularity branches ........................................................................ ……………101 5.7.3. Jacobian surfaces ............................................................................. ……………104 5.7.4. Concept of aspect ............................................................................ ……………105 5.7.5. t-connected subspaces ..................................................................... ……………107 5.8. Velocity transmission between joint space and task space ...................... ………………..110 5.8.1. Singular value decomposition ......................................................... …………… 110 5.8.2. Velocity ellipsoid: velocity transmission performance ................... ……………112

Page 6: Modeling and Control of Manipulators - Part I: Geometric

Table of contents

5.9. Static model ............................................................................................. ………………...114 5.9.1. Representation of a wrench .......................................................... ……………... 114 5.9.2. Mapping of an external wrench into joint torques ........................... ……………114 5.9.3. Velocity-force duality ..................................................................... …………… 115 5.10. Second order kinematic model .............................................................. ………………. 117 5.11. Kinematic model associated with the task coordinates representation .. ………………..118 5.11.1. Direction cosines ........................................................................... ………….. 119 5.11.2. Euler angles ................................................................................... …………... 120 5.11.3. Roll-Pitch-Yaw angles .................................................................. ……………121 5.11.4. Quaternions ................................................................................... ……………122 5.12. Conclusion ............................................................................................. ………………. 122 Chapter 6: Inverse kinematic model of serial robots 6.1. Introduction ............................................................................................. ………………...124 6.2. General form of the kinematic model ...................................................... ……………….124 6.3. Inverse kinematic model for a regular case ............................................. ……………….125 6.3.1. First method .................................................................................... ……………126 6.3.2. Second method ................................................................................ ……………126 6.4. Solution in the neighborhood of singularities .......................................... ………………. 128 6.4.1. Use of the pseudoinverse ................................................................ …………… 129 6.4.2. Use of the damped pseudoinverse .................................................... …………...130 6.4.3. Other approaches for controlling motion near singularities ............ ………….. 132 6.5. Inverse kinematic model of redundant robots .......................................... ………………. 133 6.5.1. Extended Jacobian ........................................................................... ……………133 6.5.2. Use of the pseudoinverse of the Jacobian matrix ........................... …………… 135 6.5.3. Weighted pseudoinverse ................................................................. …………… 135 6.5.4. Pseudoinverse solution with an optimization term .......................... ………….. 136 6.5.5. Task-priority concept ...................................................................... …………… 138 6.6. Numerical calculation of the inverse geometric problem ........................ ………………. 141 6.7. Minimum description of tasks [Fournier 80], [Dombre 81] .................... ………………. 142 6.7.1. Principle of the description ............................................................. …………… 143 6.7.2. Differential models associated with the minimum description of Tasks .............146 6.8. Conclusion ................................................................................................ ……………… 153 References............................................................................................................................. …………..467 Appendix 1: Solution of the inverse geometric model equations (Table 4.1)…..…………..497 Appendix 2: The inverse robot............................................................................... …………503 Appendix 3: Dyalitic elimination .......................................................................... …………505 Appendix 4: Solution of systems of linear equations............................................ …………507

Page 7: Modeling and Control of Manipulators - Part I: Geometric

Modélisation, identification et commande des robots

Page 8: Modeling and Control of Manipulators - Part I: Geometric

Chapter 1

Terminology and general definitions

1.1. Introduction A robot is a mechanical device, containing electrically, electronically and IT

parts. It possesses capacities of perception, action, decision, learning, communication and interaction with its environment, to realize certain tasks on the place of the man or in interaction with the man. Robotics is the field concerned with designing, constructing, integrating and programming robots.

Robots have been widely used with success in various industrial applications.

Since the last two decades, other areas of application have emerged: medical, service (spatial, civil security, …), transport, underwater, entertainment, and even providing companionship in the form of artificial “pets” or humanoid robots. We can distinguish three main classes of robots: robot manipulators, which imitate the human arm, walking robots, which imitate the locomotion of humans, animals or insects, mobile robots, which look like cars, and flying robots “drones”.

The terms adaptability and versatility are often used to highlight the intrinsic flexibility of a robot. Adaptability means that the robot is capable of adjusting its motion to comply with environmental changes during the execution of tasks. Versatility means that the robot may carry out a variety of tasks – or the same task in different ways – without changing the mechanical structure or the control system.

A robot is composed of the following subsystems:

– mechanism: consists of an articulated mechanical structure actuated by electric, pneumatic or hydraulic actuators, which transmit their motion to the joints using suitable transmission systems;

– perception capabilities: They consist of the internal sensors that provide information about the state of the robot (joint positions and velocities), and the external sensors to obtain the information about the environment (contact

Page 9: Modeling and Control of Manipulators - Part I: Geometric

2 Modeling, identification and control of robots

detection, distance measurement, artificial vision). They help the robot to adapt to disturbances and unpredictable changes in its environment;

– controller: realizes the desired task objectives. It generates the input signals for the actuators as a function of the user's instructions and the sensor outputs;

– communication interface: through this the user programs the tasks that the robot must carry out;

– workcell and peripheral devices: constitute the environment in which the robot works.

Robotics is thus a multidisciplinary science, which requires a background in

mechanics, automatic control, electronics, signal processing, communications, computer engineering, etc.

The objective of this book is to present the techniques of the modeling, identification and control of robots. We restrict our study to rigid robot manipulators with a fixed base.

In this chapter, we will present certain definitions that are necessary to classify the mechanical structures and the characteristics of robot manipulators.

1.2. Mechanical components of a robot The mechanism of a robot manipulator consists of two distinct subsystems, one

(or more) end-effectors and an articulated mechanical structure:

– by the term end-effector, we mean any device intended to manipulate objects (magnetic, electric or pneumatic grippers) or to transform them (tools, welding torches, paint guns, etc.). It constitutes the interface with which the robot interacts with its environment. An end-effector may be multipurpose, i.e. equipped with several devices each having different functions;

– the role of the articulated mechanical structure is to place the end-effector at a given location (position and orientation) with a desired velocity and acceleration. The mechanical structure is composed of a kinematic chain of articulated rigid links. One end of the chain is fixed and is called the base. The end-effector is fixed to the free extremity of the chain. This chain may be serial (simple open chain) (Figure 1.1), tree structured (Figure 1.2) or closed (Figures 1.3 and 1.4). The last two structures are termed complex chains since they contain at least one link with more than two joints.

Page 10: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 3

Figure 1.1. Simple open (or serial) chain

Serial robots with a simple open chain are the most commonly used. There are also industrial robots with closed kinematic chains, which have the advantage of being more rigid and accurate.

Figure 1.2. Tree structured chain

Figure 1.3. Closed chain Figure 1.4 shows a specific architecture with closed chains, which is known as a

parallel robot. In this case, the end-effector is connected to the base by several parallel chains [Inoue 85], [Fichter 86], [Reboulet 88], [Gosselin 88], [Clavel 89],

Page 11: Modeling and Control of Manipulators - Part I: Geometric

4 Modeling, identification and control of robots

[Charentus 90], [Pierrot 91a], [Merlet 00]. The mass ratio of the payload to the robot is much higher compared to serial robots. This structure seems promising in manipulating heavy loads with high accelerations and realizing difficult assembly tasks.

Figure 1.4. Parallel robot

1.3. Definitions

1.3.1. Joints

A joint connects two successive links, thus limiting the number of degrees of freedom between them. The resulting number of degrees of freedom, m, is also called joint mobility, such that 0 m 6.

When m = 1, which is frequently the case in robotics, the joint is either revolute or prismatic. A complex joint with several degrees of freedom can be constructed by an equivalent combination of revolute and prismatic joints. For example, a spherical joint can be obtained by using three revolute joints whose axes intersect at a point.

1.3.1.1. Revolute joint

This limits the motion between two links to a rotation about a common axis. The relative location between the two links is given by the angle about this axis. The revolute joint, denoted by R, is represented by the symbols shown in Figure 1.5.

Figure 1.5. Symbols of a revolute joint

Page 12: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 5

1.3.1.2. Prismatic joint

This limits the motion between two links to a translation along a common axis. The relative location between the two links is determined by the distance along this axis. The prismatic joint, denoted by P, is represented by the symbols shown in Figure 1.6.

Figure 1.6. Symbols of a prismatic joint

1.3.2 Mobility or Number of degrees of freedom of a body

The mobility of a body is defined as the number of independent components of its instantaneous velocity (rotational and linear), thus it is equal to 6 for a free body in space and 3 for a body in plane. In general it is 6.

1.3.3. Joint space E(q)

The space in which the location of all the links of a robot are represented is called joint space, or configuration space. We use the joint variables, q N, as the coordinates of this space. Its dimension N is equal to the number of independent joints and corresponds to the number of degrees of freedom of the mechanical structure also known as the mobility of the structure. In an open chain robot (simple or tree structured), the joint variables are generally independent, whereas a closed chain structure implies constraint relations between the joint variables.

Unless otherwise stated, we will consider that a robot with N degrees of freedom has N actuated joints.

1.3.4. Task space E(X)

The location, position and orientation, of the end-effector is represented in the task space, or operational space. We may consider as many task spaces as there are end-effectors. Generally, Cartesian coordinates are used to specify the position in 3 and the rotation group SO(3) for the orientation. Thus the task space is equal to

Page 13: Modeling and Control of Manipulators - Part I: Geometric

6 Modeling, identification and control of robots

3 x SO(3). An element of the task space is represented by the vector X M, where M is equal to the maximum number of independent parameters that are necessary to specify the location of the end-effector in space. Consequently, M 6 and M N. In robot-manipulator (where holonomic joints are used) M is equal to the maximum mobility of the end-effector.

1.3.5. Redundancy

A robot is classified as redundant when the number of degrees of freedom of its joint space is greater than the number of degrees of freedom of its task space (N>M). Such robot can have an infinite number of configurations to locate the end effector at a desired location. This property increases the volume of the reachable workspace of the robot and enhances its performance. We will see in Chapter 6 that redundant robots can achieve a secondary optimum objective besides the primary objective of locating the end-effector.

Notice that a simple open chain is redundant if it contains any of the following combinations of joints (non-exhaustive):

– more than six joints;

– more than three revolute joints whose axes intersect at a point;

– more than three revolute joints with parallel axes;

– more than three prismatic joints;

– prismatic joints with parallel axes;

– revolute joints with collinear axes.

NOTES.–

– for an articulated mechanism with several end-effectors, redundancy is evaluated by comparing the number of degrees of freedom of the joint space acting on each end-effector and the number of degrees of freedom of the corresponding task space;

– a robot which is not redundant (N=M) may be redundant with respect to a particular task whose number of degrees of freedom, m, is less than the number of degrees of freedom of the robot.

– A robot is said to have redundant actuators if the number of motorized joints is greater than the number of degrees of freedom of the robot. This case may take place only in closed loop structures.

1.3.6. Singular configurations

Page 14: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 7

For all robots, redundant or not, it is possible that at some configurations, called singular configurations, the number of degrees of freedom of the end-effector becomes less than the dimension of the task space. For example, this may occur when:

– the axes of two prismatic joints become parallel;

– the axes of two revolute joints become collinear;

In Chapter 5, we will present a mathematical condition to determine the number

of degrees of freedom of the task space of a mechanism as well as its singular configurations.

1.4. Choosing the number of degrees of freedom of a robot A non-redundant robot must have six degrees of freedom in order to place an

arbitrary object in space. However, if the manipulated object exhibits revolution symmetry, five degrees of freedom are sufficient, since it is not necessary to specify the rotation about the revolution axis. In the same way, to locate a body in a plane, one needs only three degrees of freedom: two for positioning a point in the plane and the third to determine the orientation of the body.

From these observations, we deduce that:

– the number of degrees of freedom of a mechanism is chosen as a function of the shape of the object to be manipulated by the robot and of the class of tasks to be realized;

– a necessary but insufficient condition to have compatibility between the robot and the task is that the number of degrees of freedom of the end-effector of the robot is equal to or more than that of the task.

1.5. Architectures of robot manipulators Without anticipating the results of the next chapters, we can say that the study of

both tree structured and closed chains can be reduced to some equivalent simple open chains. Thus, the classification presented below is relevant for simple open chain architectures, but may also be generalized to the complex chains.

In order to count the possible architectures, we only consider revolute or prismatic joints whose consecutive axes are either parallel or perpendicular. Generally, with some exceptions (in particular, the last three joints of the GMF P150 and Kuka IR600 robots), the consecutive axes of currently used robots are either parallel or perpendicular. The different combinations of these four parameters yield the number of possible architectures with respect to the number of joints as shown in Table 1.1 [Delignières 87], [Chedmail 90a].

Page 15: Modeling and Control of Manipulators - Part I: Geometric

8 Modeling, identification and control of robots

The first three joints of a robot are commonly designed in order to perform gross motion of the end-effector, and the remaining joints are used to accomplish orientation. Thus, the first three joints and the associated links constitute the shoulder or regional positioning structure. The other joints and links form the wrist.

Taking into account these considerations and the data of Table 1.1, one can count 36 possible combinations of the shoulder. Among these architectures, only 12 are mathematically distinct and non-redundant (we eliminate, a priori, the structures limiting the motion of the terminal point of the shoulder to linear or planar displacement, such as those having three prismatic joints with parallel axes, or three revolute joints with parallel axes). These structures are shown in Figure 1.7.

Table 1.1. Number of possible architectures as a function of the number of degrees of

freedom of the robot

Number of degrees of freedom of the robot

Number of architectures

2 8

3 36

4 168

5 776

6 3508

A survey of industrial robots has shown that only the following five structures

[Liégeois 79] are manufactured:

– anthropomorphic shoulder represented by the first RRR structure shown in Figure 1.7, like PUMA from Unimation, Acma SR400, ABB IRBx400, Comau Smart-3, Fanuc (S-xxx, Arc Mate), Kuka (KR 6 to KR 200), Reis (RV family), Staübli (RX series), etc.;

– spherical shoulder RRP: "Stanford manipulator" and Unimation robots (Series 1000, 2000, 4000);

– RPR shoulder corresponding to the first RPR structure shown in Figure 1.7: Acma-H80, Reis (RH family), etc. The association of a wrist with one revolute degree of freedom of rotation to such a shoulder can be found frequently in the industry. The resulting structure of such a robot is called SCARA (Selective Compliance Assembly Robot Arm) (Figure 1.8). It has several applications, particularly in planar assembly. SCARA, designed by Sankyo, has been manufactured by many other companies: IBM, Bosch, Adept, etc.;

Page 16: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 9

– cylindrical shoulder RPP: Acma-TH8, AFMA (ROV, ROH), etc.;

– Cartesian shoulder PPP: Acma-P80, IBM-7565, Sormel-Cadratic, Olivetti-SIGMA. More recent examples: AFMA (RP, ROP series), Comau P-Mast, Reis (RL family), SEPRO, etc.

The second RRR structure of Figure 1.7, which is equivalent to a spherical joint,

is generally used as a wrist. Other types of wrists are shown in Figure 1.9 [Delignières 87].

A robot, composed of a shoulder with three degrees of freedom and a spherical wrist, constitutes a classical six degree-of-freedom structure (Figure 1.10). Note that the position of the center of the spherical joint depends only on the configuration of joints 1, 2 and 3. We will see in Chapter 4 that, due to this property, the inverse geometric model, providing the joint variables for a given location of the end-effector, can be obtained analytically for such robots.

According to the survey carried out by the French Association of Industrial Robotics (AFRI) and RobAut Journal [Fages 98], the classification of robots in France (17794 robots), with respect to the number of degrees of freedom, is as follows: 4.5% of the robots have three degrees of freedom, 27% have four, 9% have five and 59.5% have six or more. As far as the architecture of the shoulder is concerned, there is a clear dominance of the RRR anthropomorphic shoulder (65.5%), followed by the Cartesian shoulder (20.5%), then the cylindrical shoulder (7%) and finally the SCARA shoulder (7%).

Page 17: Modeling and Control of Manipulators - Part I: Geometric

10 Modeling, identification and control of robots

RRR RRP

RPR

RPP PRR PPR PPP

Figure 1.7. Architectures of the shoulder (from [Milenkovic 83])

Figure 1.8. SCARA robot

Page 18: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 11

One-axis wrist

Two intersecting-axis wrist

Two non intersecting-axis wrist

Three intersecting-axis wrist (spherical wrist)

Three non intersecting-axis wrist

Figure 1.9. Architectures of the wrist (from [Delignières 87])

P

shoulder wrist

Figure 1.10. Classical six degree-of-freedom robot

Page 19: Modeling and Control of Manipulators - Part I: Geometric

12 Modeling, identification and control of robots

1.6. Characteristics of a robot The standard ISO 9946 specifies the characteristics that manufacturers of robots

must provide. Here, we describe some of these characteristics that may help the user in choosing an appropriate robot with respect to a given application:

– workspace: defines the space that can be reached by the end-effector. Its range depends on the number of degrees of freedom, the joint limits and the length of the links;

– payload: maximum load carried by the robot;

– maximum velocity and acceleration: determine the cycle time;

– position accuracy (Figure 1.11): indicates the difference between a commanded position and the mean of the attained positions when visiting the commanded position several times from different initial positions;

– position repeatability (Figure 1.11): specifies the precision with which the robot returns to a commanded position. It is given as the distance between the mean of the attained positions and the furthermost attained position;

– resolution: the smallest increment of movement that can be achieved by the joint or the end-effector.

However, other characteristics must also be taken into account: technical

(energy, control, programming, etc.) and commercial (price, maintenance, etc.). Thus, the selection criteria are sometimes difficult to formulate and are often contradictory. To a certain extent, the simulation and modeling tools available in Computer Aided Design (CAD) packages may help in making the best choice [Dombre 88b], [Zeghloul 91], [Chedmail 92], [Chedmail 98].

Commandedposition

Positionrepeatability

Positionaccuracy

Figure 1.11. Position accuracy and repeatability (from [Priel 90])

Page 20: Modeling and Control of Manipulators - Part I: Geometric

Terminology and general definitions 13

1.7. Conclusion In this chapter, we have presented the definitions of some technical terms related

to the field of modeling, identification and control of robots. We will frequently come across these terms in this book and some of them will be reformulated in a more analytical or mathematical way. The figures mentioned here justify the choice of the robots that are taken as examples in the following chapters. In the next chapter, we present the transformation matrix concept, which constitutes an important mathematical tool for the modeling of robots.

Page 21: Modeling and Control of Manipulators - Part I: Geometric

14 Modeling, identification and control of robots

Page 22: Modeling and Control of Manipulators - Part I: Geometric

Chapter 2

Transformation matrix between vectors, frames and screws

2.1. Introduction In robotics, we assign one or more frames to each link of the robot and each

object of the workcell. Thus, transformation of frames is a fundamental concept in the modeling and programming of a robot. It enables us to:

– compute the location, position and orientation of robot links relative to each other;

– describe the position and orientation of objects;

– specify the trajectory and velocity of the end-effector of a robot for a desired task;

– describe and control the forces when the robot interacts with its environment;

– implement sensory-based control using information provided by various sensors, each having its own reference frame.

In this chapter, we present a notation that allows us to describe the relationship

between different frames and objects of a robotic cell. This notation, called homogeneous transformation, has been widely used in computer graphics [Roberts 65], [Newman 79] to compute the projections and perspective transformations of an object on a screen. Currently, this is also being used extensively in robotics [Pieper 68], [Paul 81]. We will show how the points, vectors and transformations between frames can be represented using this approach. Then, we will define the differential transformations between frames as well as the representation of velocities and forces using screws.

Page 23: Modeling and Control of Manipulators - Part I: Geometric

16 Modeling, identification and control of robots

16

2.2. Homogeneous coordinates

2.2.1. Representation of a point

Let (iPx, iPy, iPz) be the Cartesian coordinates of an arbitrary point P with respect to the frame Ri, which is described by the origin Oi and the axes xi, yi, zi (Figure 2.1). The homogeneous coordinates of P with respect to frame Ri are defined by (wiPx, wiPy, wiPz, w), where w is a scaling factor. In robotics, w is taken to be equal to 1. Thus, we represent the homogeneous coordinates of P by the (4x1) column vector:

iP = i(Oi P) =

x

y

z

P

P

P

i

i

i

1

[2.1]

zi

xi

yi

P

Px

Pz

Py

Ri

Figure 2.1. Representation of a point vector

2.2.2. Representation of a direction

A direction (free vector) is also represented by four components, but the fourth component is zero, indicating a vector at infinity. If the Cartesian coordinates of a unit vector u with respect to frame Ri are (iux, iuy, iuz), its homogeneous coordinates will be:

iu =

x

y

z

u

u

u

i

i

i

0

[2.2]

Page 24: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 17

17

2.2.3. Representation of a plane

The homogeneous coordinates of a plane Q, whose equation with respect to a frame Ri is ix + iy + iz + i = 0, are given by:

iQ = [ ]i i i i [2.3]

If a point P lies in the plane Q, then the matrix product iQ iP is zero:

iQ iP =

x

y

z

P

P

P

i

ii i i i

i

1

= 0 [2.4]

2.3. Homogeneous transformations [Paul 81]

2.3.1. Transformation of frames

The transformation, translation and/or rotation, of a frame Ri into frame Rj (Figure 2.2) is represented by the (4x4) homogeneous transformation matrix iTj such that:

iTj = j j j j

i i i i s n a P = j j

i i

0 0 0 1

R P [2.5a]

where isj, inj and iaj contain the components of the unit vectors along the xj, yj and zj

axes respectively expressed in frame Ri, and where iPj is the vector representing the coordinates of the origin of frame Rj expressed in frame Ri.

We can also say that the matrix iTj defines frame Rj relative to frame Ri.

Thereafter, the transformation matrix [2.5a] will occasionally be written in the form of a partitioned matrix:

iTj = j ji i

0 0 0 1

R P = j j j j

i i i i

0 0 0 1

s n a P [2.5b]

Page 25: Modeling and Control of Manipulators - Part I: Geometric

18 Modeling, identification and control of robots

18

Apparently, this is in violation of the homogeneous notation since the vectors have only three components. In any case, the distinction in the representation with either three or four components will always be clear in the text.

In summary:

– the matrix iTj represents the transformation from frame Ri to frame Rj;

– the matrix iTj can be interpreted as representing the frame Rj (three orthogonal axes and an origin) with respect to frame Ri.

iTjxi

xj

yj

zj

Ri

Rj

zi

yi

Figure 2.2. Transformation of frames

2.3.2. Transformation of vectors

Let the vector jP define the homogeneous coordinates of the point P with respect to frame Rj (Figure 2.3). Thus, the homogeneous coordinates of P with respect to frame Ri can be obtained as:

iP = i(OiP) = isj

jPx + inj jPy + iaj

jPz + iPj = iTj jP [2.6]

xi

yj

zj

RiRj

zi

yi

iTj

P

xj

Oi

Figure 2.3. Transformation of a vector

Page 26: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 19

19

Thus the matrix iTj allows us to calculate the coordinates of a vector with respect

to frame Ri in terms of its coordinates in frame Rj.

• Example 2.1. Deduce the matrices iTj and jTi from Figure 2.4. Using equation [2.5a], we directly obtain:

iTj =

0 0 1 3

0 1 0 12

1 0 0 6

0 0 0 1

, jTi =

0 0 1 6

0 1 0 12

1 0 0 3

0 0 0 1

6

3

12

zi

xj

xi

zj

yi

yj

Figure 2.4. Example 2.1

2.3.3. Transformation of planes

The relative position of a point with respect to a plane is invariant with respect to the transformation applied to the set of point, plane. Thus:

jQ jP = iQ iP = iQ iTj jP

leading to: jQ = iQ iTj [2.7]

2.3.4. Transformation matrix of a pure translation

Let Trans(a, b, c) be this transformation, where a, b and c denote the translation along the x, y and z axes respectively. Since the orientation is invariant, the transformation Trans(a, b, c) is expressed as (Figure 2.5):

Page 27: Modeling and Control of Manipulators - Part I: Geometric

20 Modeling, identification and control of robots

20

iTj =Trans(a, b, c) =

1 0 0 a

0 1 0 b

0 0 1 c

0 0 0 1

[2.8]

From now on, we will also use the notation Trans(u, d) to denote a translation

along an axis u by a value d. Thus, the matrix Trans(a, b, c) can be decomposed into the product of three matrices Trans(x, a) Trans(y, b) Trans(z, c), taking any order of the multiplication.

c

a

yj

zi

yi

xj

xi

b

zj

Figure 2.5. Transformation of pure translation

2.3.5. Transformation matrices of a rotation about the principle axes

2.3.5.1. Transformation matrix of a rotation about the x axis by an angle

Let Rot(x, ) be this transformation. From Figure 2.6, we deduce that the components of the unit vectors isj, inj, iaj along the axes xj, yj and zj respectively of frame Rj expressed in frame Ri are as follows:

isj = [1 0 0 0]T

inj = [0 C S 0]T

iaj = [0 –S C 0]T [2.9]

where S and C represent sin(and cos(respectively, and the superscript T indicates the transpose of the vector.

Page 28: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 21

21

iTj = Rot(x,) =

1 0 0 0

0 C S 0

0 S C 0

0 0 0 1

=

0

( , ) 0

0

0 0 0 1

rot x [2.10]

where rot(x, ) denotes the (3x3) orientation matrix.

xi

yi

xj

sj

nj

yj

zjzi

aj

Figure 2.6. Transformation of a pure rotation about the x-axis

2.3.5.2. Transformation matrix of a rotation about the y axis by an angle

In the same way, we obtain:

iTj = Rot(y, ) =

C 0 S 0

0 1 0 0

S 0 C 0

0 0 0 1

=

0

( , ) 0

0

0 0 0 1

rot y [2.11]

2.3.5.3. Transformation matrix of a rotation about the z axis by an angle

We can also verify that:

Page 29: Modeling and Control of Manipulators - Part I: Geometric

22 Modeling, identification and control of robots

22

iTj = Rot(z, ) =

C S 0 0

S C 0 0

0 0 1 0

0 0 0 1

=

0

( , ) 0

0

0 0 0 1

rot z [2.12]

2.3.6. Properties of homogeneous transformation matrices

a) From equations [2.5], a transformation matrix can be written as:

T =

x x x x

y y y y

z z z z

s n a P

s n a P

s n a P

0 0 0 1

= 0 0 0 1

R P [2.13]

The matrix R represents the rotation whereas the column matrix P represents the

translation. For a transformation of pure translation, R = I3 (I3 represents the identity matrix of order 3), whereas P = 0 for a transformation of pure rotation. The matrix R represents the direction cosine matrix. It contains three independent parameters (one of the vectors s, n or a can be deduced from the vector product of the other two, for example s = n×a; moreover, the dot product n.a is zero and the magnitudes of n and a are equal to 1).

b) The matrix R is orthogonal, i.e. its inverse is equal to its transpose: R-1 = RT [2.14] c) The inverse of a matrix iTj defines the matrix jTi.

To express the components of a vector iP1 into frame Rj, we write: jP1 = jTi iP1 [2.15] If we postmultiply equation [2.6] by iTj

-1 (inverse of iTj), we obtain: iTj

-1 iP1 = jP1 [2.16] From equations [2.15] and [2.16], we deduce that: iTj

-1 = jTi [2.17]

Page 30: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 23

23

d) We can easily verify that: Rot-1(u, ) = Rot(u, ) = Rot(–u, ) [2.18] Trans-1(u, d) = Trans(–u, d) = Trans(u, –d) [2.19] e) The inverse of a transformation matrix represented by equation [2.13] can be

obtained as:

T

T T-1

T

0 0 0 1

s P

R n PT

a P =

T T

0 0 0 1

R R P [2.20]

f) Composition of two matrices. The multiplication of two transformation

matrices gives a transformation matrix:

T1 T2 = 1 1 2 2

0 0 0 1 0 0 0 1

R P R P= 1 2 1 2 1

0 0 0 1

R R R P P

[2.21]

Note that the matrix multiplication is non-commutative (T1T2 T2T1). g) If a frame R0 is subjected to k consecutive transformations (Figure 2.7) and if

each transformation i, (i = 1, …, k), is defined with respect to the current frame Ri-1, then the transformation 0Tk can be deduced by multiplying all the transformation on the right as:

0Tk = 0T1 1T2 2T3 … k-1Tk [2.22]

h) If a frame Rj, defined by iTj, undergoes a transformation T that is defined

relative to frame Ri, then Rj will be transformed into Rj' with iTj' = T iTj (Figure 2.8).

From the properties g and h, we deduce that:

– multiplication on the right (postmultiplication) of the transformation iTj indicates that the transformation is defined with respect to the current frame Rj;

– multiplication on the left (premultiplication) indicates that the transformation is defined with respect to the reference frame Ri.

Page 31: Modeling and Control of Manipulators - Part I: Geometric

24 Modeling, identification and control of robots

24

1T2

z1

z0k-1Tk

x0

x1

y1

x2 y2

z2

xk-1

zk-1

yk

zk

0T1

0Tk

R0

R1

R2

Rky0

yk-1

xk

Figure 2.7. Composition of transformations: multiplication on the right

xi

yi

zi xj yj

zj

T iTj = iTj'

Ri

Rj

zj'

yj'

xj'

Ri'

zi'

yi'xi'

Rj'

T

i'Tj' = iTj

iTj

Figure 2.8. Composition of transformations: multiplication on the left

• Example 2.2. Consider the composite transformation illustrated in Figure 2.9 and defined by:

0T2 = Rot(x, 6) Trans(y, d)

– reading 0T2 from left to right (Figure 2.9a): first, we apply the rotation; the new location of frame R0 is denoted by frame R1; then, the translation is defined with respect to frame R1;

Page 32: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 25

25

– reading 0T2 from right to left (Figure 2.9b): first we apply the translation, then the rotation is defined with respect to frame R0.

Trans(y, d)

y0

z0

x2

y2z2

y1

x0

x1

y1

z1

z0

a) b)

x2

y2z2

y0

x0, x1

z1

Rot(x, 6)

Rot(x, 6)

Trans(y, d)

Figure 2.9. Example 2.2

i) Consecutive transformations about the same axis. We note the following

properties: Rot(u, 1) Rot(u, 2) = Rot(u, (1 + 2)) [2.23] Rot(u, ) Trans(u, d) = Trans(u, d) Rot(u, ) [2.24] j) Decomposition of a transformation matrix. A transformation matrix can be

decomposed into two transformation matrices, one represents a pure translation and the second a pure rotation:

T = 3 = 0 0 0 1 0 0 0 1 0 0 0 1

R P I P R 0 [2.25]

2.3.7. Transformation matrix of a rotation about a general vector located at the origin

Let Rot(u, be the transformation representing a rotation of an angle about an axis, with unit vector u = [ux uy uz]T, located at the origin of frame Ri (Figure 2.10). We define the frame Rk such that zk is along the vector u and xk is along the common normal between zk and zi. The matrix iTk can be obtained as:

iTk = Rot(z, ) Rot(x, ) [2.26]

where is the angle between xi and xk about zi, and is the angle between zi and u about xk.

Page 33: Modeling and Control of Manipulators - Part I: Geometric

26 Modeling, identification and control of robots

26

From equation [2.26], we obtain:

u =x

ik y

z

u S S

a = u = C S

Cu

[2.27]

xk

xi

yi

yi'

yk

zi

u = zk

Figure 2.10. Transformation of pure rotation about any axis

The rotation about u is equivalent to the rotation about zk. From properties g and h of § 2.3.6, we deduce that:

Rot(u, ) iTk = iTk Rot(z, ) [2.28]

thus:

Rot(u, ) = iTk Rot(z, ) iTk

-1 = Rot(z, ) Rot(x, ) Rot(z, ) Rot(x, –) Rot(z, –) [2.29] From this relation and using equation [2.27], we obtain:

Rot (u, ) =

0

( , ) 0

0

0 0 0 1

rot u

Page 34: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 27

27

=

2x x y z x z y

2x y z y y z x

2x z y y z x z

u (1-C )+C u u (1-C ) u S u u (1-C ) u S 0

u u (1-C ) u S u (1-C )+C u u (1-C ) u S 0

u u (1-C ) u S u u (1-C ) u S u (1-C )+C 0

0 0 0 1

[2.30]

We can easily remember this relation by writing it as:

rot(u, = u uT (1 – C) + I3 C + u S [2.31]

where u indicates the skew-symmetric matrix defined by the components of the vector u such that:

u =

z y

z x

y x

0 u u

u 0 u

u u 0

[2.32]

Note that the vector product uxV is obtained by u V. NOTES:- - Rot(u, ) = iTk Rot(z, ) iTk

-1, can be explained by the fact that iTk Rot(z, ) gives frame Rk with respect to frame Ri in its initial configuration. To find frame

Ri after Rot(u, ), we have to multiply iTk Rot(z, ) by kTi.

2.3.8. Equivalent angle and axis of a general rotation 1

Let T be any arbitrary rotational transformation matrix such that:

1The Matlab function “U = vrrotmat2vec(R)” returns a 4x1 vector representing

an axis-angle representation of rotation defined by the 3x3 matrix R. The first three components of U give the coordinates of the rotation axis and the fourth component gives the angle.

Page 35: Modeling and Control of Manipulators - Part I: Geometric

28 Modeling, identification and control of robots

28

x x x

y y y

z z z

s n a 0

s n a 0

s n a 0

0 0 0 1

T [2.33]

We solve the following expression for u and: Rot (u,) = T with 0 Adding the diagonal terms of equations [2.30] and [2.33], we obtain:

C = 12 (sx + ny + az – 1) [2.34]

From the off-diagonal terms, we obtain:

x z y

y x z

z y x

2u S n a

2u S a s

2u S s n

[2.35]

yielding:

2 2 2z y x z y x

1S (n a ) (a s ) (s n )

2 [2.36]

From equations [2.34] and [2.36], we deduce that:

= atan2 (S,C) with 0 [2.37] ux, uy and uz are calculated using equation [2.35] if S When S is small,

the elements ux, uy and uz cannot be determined with good accuracy by this equation. However, in the case where C < 0, we obtain ux, uy and uz more accurately using the diagonal terms of Rot(u,) as follows:

yx zx y z

n Cs C a Cu ,u ,u

1 C 1 C 1 C

[2.38]

From equation [2.35], we deduce that:

Page 36: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 29

29

xx z y

yy x z

zz y x

s Cu sign(n a )

1 C

n Cu sign(a s )

1 C

a Cu sign(s n )

1 C

[2.39]

where sign(.) indicates the sign function of the expression between brackets, thus sign(e) = +1 if e 0, and sign(e) = 1 if e < 0.

• Example 2.3. Suppose that the location of a frame RE, which is fixed to the end-effector of a robot, relative to the reference frame R0 is given by the matrix Rot(x, – /4). Determine the vector Eu and the angle of rotation that transforms frame RE to the location Rot(y, /4) Rot(z, /2). We can write:

Rot(x, – /4) Rot(u, ) = Rot(y, /4) Rot(z, /2) Thus:

Rot(u, ) = Rot(x, /4) Rot(y, /4) Rot(z, /2)

=

0 1/ 2 1/ 2 0

1/ 2 1/ 2 1/ 2 0

1/ 2 1/ 2 1/ 2 0

0 0 0 1

Using equations [2.34] and [2.36], we get: C = 1

2 , S =

3

2, giving =

2/3. Equation [2.35] yields: ux = 1

3, uy = 0, uz =

2

3.

2.4. Representation of velocities In this section, we will use the concept of screw to describe the velocity of a

body in space.

Page 37: Modeling and Control of Manipulators - Part I: Geometric

30 Modeling, identification and control of robots

30

2.4.1. Definition of a screw

A vector field, H, on 3 is a screw if there exist a point Oi and a vector such that for all points Oj in 3:

Hj = Hi + x OiOj

where Hj is the vector of H at Oj and the symbol x indicates the vector product; is called the vector of the screw of H. The vector Hj is also called the moment at Oj,

whereas is also called the resultant of the screw. Then, it is easy to prove that for every couple of points Ok and Om: Hm = Hk + x OkOm Thus, the screw at a point Oi is well defined by the vectors Hi and , which can

be concatenated in a single (6x1) vector.

2.4.2. Kinematic screw

Since the set of velocity vectors at all the points of a body defines a screw field,

the screw at a point Oi can be defined by:

• vi representing the linear velocity at Oi with respect to the fixed frame R0,

such that vi = ddt(O0Oi);

• i representing the angular velocity of the body with respect to frame R0. It constitutes the vector of the screw of the velocity vector field.

Thus, the velocity of a point Oj is calculated in terms of the velocity of the point

Oi by the following equation:

j i i i j = + v v ω O O [2.40]

The components of vi and i can be concatenated to form the kinematic screw

vector Vi, i.e.:

TT T

i i i = V v [2.41]

Page 38: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 31

31

The kinematic screw is also called twist.

2.4.3. Transformation matrices between screws

Let ivi and ii be the vectors representing the kinematic screw in Oi, origin of

frame Ri, expressed in frame Ri. To calculate jvj and jj representing the kinematic screw in Oj expressed in frame Rj, we first note that:

j =

i [2.42] vj = vi + i x Li,j [2.43]

Li,j being the position vector connecting Oi to Oj. Equations [2.42] and [2.43] can be rewritten as:

j , i

j

ˆ

3 i j

i3 3

v I L v

0 I [2.44]

where I3 and 03 represent the (3x3) identity matrix and zero matrix respectively. Projecting this relation in frame Ri, we obtain:

j

j

iii

i

i ˆ

i

V 3 j

3 3 i

VI P

0 I [2.45]

Since jvj = jRi ivj and jj = jRi ij, equation [2.45] gives: jVj = jSi

iVi [2.46] where jTi is the (6x6) transformation matrix between screws:

j ij

i i jji

j3 i

ˆ=

R R PS

0 R [2.47]

The transformation matrices between screws have the following properties: i) product:

Page 39: Modeling and Control of Manipulators - Part I: Geometric

32 Modeling, identification and control of robots

32

0Sj = 0S1

1 S2 . . . j-1S j [2.48] ii) inverse:

ii ij j ji j

i3 j

ˆ

R P RS S

0 R

-1j i [2.49]

Note that equation [2.49] gives another possibility, other than equation [2.45], to

define the transformation matrix between screws. From [2.49] and [2.49], we can write:

i i ji i ij j j j j ii

j i i3 j 3 j

ˆ ˆ

R P R R R PS

0 R 0 R

2.5. Differential translation and rotation of frames The differential transformation of the position and orientation – or location – of a

frame Ri attached to any body may be expressed by a differential translation vector dPi expressing the translation of the origin of frame Ri, and of a differential rotation vector i, equal to ui d, representing the rotation of an angle d about an axis, with unit vector ui, passing through the origin Oi.

Given a transformation iTj, the transformation iTj + diTj can be calculated, taking into account the property h of § 2.3.6, by the premultiplication rule as:

iTj + diTj = Trans(idxi, idyi, idzi) Rot(iui, d) iTj [2.50] Thus, the differential of iTj is equal to: diTj = [Trans(idxi, idyi, idzi) Rot(iui, d) – I4] iTj [2.51] In the same way, the transformation iTj + diTj can be calculated, using the

postmultiplication rule as: iTj + diTj = iTj Trans(jdxj, jdyj, jdzj) Rot(juj, d) [2.52]

and the differential of iTj becomes:

Page 40: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 33

33

diTj = iTj [Trans(jdxj, jdyj, jdzj) Rot(juj, d) – I4] [2.53] From equations [2.51] and [2.53], the differential transformation matrix is

defined as [Paul 81]: = [Trans(dx, dy, dz) Rot(u, d) – I4] [2.54]

such that: diTj = i iTj [2.55]

or:

diTj = iTj j [2.56] Assuming that d is sufficiently small so that S(d) ≈ d and C(d) ≈ 1, the

transformation matrix of a pure rotation d about an axis of unit vector u can be calculated from equations [2.30] and [2.54] as:

j = jjˆj j

0 0 0 0

dP =

juj d jdPj

0 0 0 0 [2.57]

where u and represent the skew-symmetric matrices defined by the vectors u and respectively.

Note that the transformation matrix between screws can also be used to

transform the differential translation and rotation vectors between frames:

jdPj

jj = j

iS

idPi

ii [2.58]

In a similar way as for the kinematic screw, we call the concatenation of dPi and

i the differential screw.

• Example 2.4. Consider using the differential model of a robot to control its displacement. The differential model calculates the joint increments corresponding to the desired elementary displacement of frame Rn fixed to the terminal link (Figure 2.11). However, the task of the robot is often described in the tool frame RE,

Page 41: Modeling and Control of Manipulators - Part I: Geometric

34 Modeling, identification and control of robots

34

which is also fixed to the terminal link. The problem is to calculate ndPn and nn in terms of EdPE and EE.

Let the transformation describing the tool frame in frame Rn be:

nTE =

0 1 0 0

1 0 0 0.1

0 0 1 0.3

0 0 0 1

and that the value of the desired elementary displacement is:

EdPE = T0 0 0.01 T, EE = T0 0.05 0

ETn

xE yE

zE

yn

zn

xn

Figure 2.11. Example 2.4

Using equation [2.58], we obtain: nn = nRE EE , ndPn = nRE (EExEPn + EdPE) The numerical application gives: ndPn = T0 0.015 0.005 , nn = [ ]–0.05 0 0 T

In a similar way, we can evaluate the error in the location of the tool frame due

to errors in the position and orientation of the terminal frame. Suppose that the position error is equal to 10 mm in all directions and that the rotation error is estimated as 0.01 radian about the x axis:

Page 42: Modeling and Control of Manipulators - Part I: Geometric

Transformation matrices 35

35

ndPn = [ ]0.01 0.01 0.01 T, nn = T0.01 0 0

The error on the tool frame is calculated by: EE = ERn nn, EdPE = ERn (nnxnPE + ndPn)

which results in: EdPE = T0.013 0.01 0.011 , EE = T0 0.01 0

2.6. Representation of forces (wrench) A collection of forces and moments acting on a body can be reduced to a wrench

Fi at point Oi, which is composed of a force fi at Oi and a moment mi about Oi:

Fi = i

i

f

m [2.59]

Note that the vector field of the moments constitutes a screw where the vector of

the screw is fi. Thus, the wrench forms a screw. Consider a given wrench iFi, expressed in frame Ri. For calculating the

equivalent wrench jFj, we use the transformation matrix between screws such that:

jj

jj

m

f = jS i

ii

ii

m

f [2.60]

which gives:

jfj = jRi ifi [2.61]

jmj = jRi (ifixiPj + imi) [2.62] It is often more practical to permute the order of fi and mi. In this case, equation

[2.60] becomes:

jfj

jmj = iSj

T

ifi

imi [2.63]

Page 43: Modeling and Control of Manipulators - Part I: Geometric

36 Modeling, identification and control of robots

36

• Example 2.5. Let the transformation matrix nTE describing the location of the tool frame with respect to the terminal frame be:

nTE =

0 1 0 0

1 0 0 0.1

0 0 1 0.5

0 0 0 1

Supposing that we want to exert a wrench EFE with this tool such that EfE =

[0 0 5]T and EmE = [0 0 3]T, determine the corresponding wrench nFn at the origin On and referred to frame Rn. Using equations [2.61] and [2.62], it follows that:

nfn = nRE

EfE nmn = nRE (EfExEPn+ EmE) The numerical application leads to: nfn = T0 0 5

nmn = T0.5 0 3

2.7. Conclusion In the first part of this chapter, we have developed the homogeneous

transformation matrix. This notation constitutes the basic tool for the modeling of robots and their environment. Other techniques have been used in robotics: quaternion [Yang 66], [Castelain 86], (3x3) rotation matrices [Coiffet 81] and the Rodrigues formulation [Wang 83]. Readers interested in these techniques can consult the given references.

We have also recalled some definitions about screws, and transformation matrices between screws, as well as differential transformations. These concepts will be used extensively in this book. In the following chapter, we deal with the problem of robot modeling.

Page 44: Modeling and Control of Manipulators - Part I: Geometric

Chapter 3

Direct geometric model of serial robots

3.1. Introduction The design and control of a robot requires the computation of some

mathematical models such as:

– transformation models between the joint space (in which the configuration of the robot is defined) and the task space (in which the location of the end-effector is specified). These transformation models are very important since robots are controlled in the joint space, whereas tasks are defined in the task space. Two classes of models are considered:

– direct and inverse geometric models, which give the location of the end-effector as a function of the joint variables of the mechanism and vice versa;

– direct and inverse kinematic models, which give the velocity of the end-effector as a function of the joint velocities and vice versa;

– dynamic models giving the relations between the input torques or forces of the actuators and the positions, velocities and accelerations of the joints.

The automatic symbolic computation of these models has largely been addressed in the literature [Dillon 73], [Khalil 76], [Zabala 78], [Kreuzer 79], [Aldon 82], [Cesareo 84], [Megahed 84], [Murray 84], [Kircánski 85], [Burdick 86], [Izaguirre 86], [Khalil 89a]. The algorithms presented in this book have been used in the development of the software package SYMORO+ [Khalil 97], which deals with all the above-mentioned models.

The modeling of robots in a systematic and automatic way requires an adequate method for the description of their structure. Several methods and notations have been proposed [Denavit 55], [Sheth 71], [Renaud 75], [Khalil 76], [Borrel 79], [Craig 86a]. The most popular among these is the Denavit-Hartenberg method

Page 45: Modeling and Control of Manipulators - Part I: Geometric

38 Modeling, identification and control of robots

[Denavit 55]. This method is developed for serial structures and presents ambiguities when applied to robots with closed or tree chains. For this reason, we will use the notation of Khalil and Kleinfinger [Khalil 86a], which gives a unified description for all mechanical articulated systems, including mobile robots [Venture 2006], with a minimum number of parameters. In this chapter, we will present the geometric description and the direct geometric model of serial robots. Tree and closed loop structures will be covered in Chapter 7.

3.2. Description of the geometry of serial robots A serial robot is composed of a sequence of n + 1 links and n joints. The links are

assumed to be perfectly rigid. The links are numbered such that link 0 constitutes the base of the robot and link n is the terminal link (Figure 3.1). Joint j connects link j to link j – 1 and its variable is denoted qj. The joints are either revolute or prismatic and are assumed to be ideal (no backlash, no elasticity). A complex joint can be represented by an equivalent combination of revolute and prismatic joints with zero-length massless links. In order to define the relationship between the location of links, we assign a frame Rj attached to each link j, such that:

– the zj axis is along the axis of joint j;

– the xj axis is aligned with the common normal between zj and zj+1:

. if zj and zj+1 are collinear xj is not unique, it can be taken in any plane perpendicular to them,

. if zj and zj+1 are parallel, xj is not unique, it is in the plane defined by them,

. in the case of intersecting joint axes, xj is normal to the plane defined by them and passing through their intersection point;

– the intersection of xj and zj defines the origin Oj, the yj axis is formed by the right-hand rule to complete the coordinate system (xj, yj, zj).

Link1

Link 0

Link2

Link3

Linkn

Page 46: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 39

Figure 3.1. Robot with simple open structure

The transformation matrix from frame Rj-1 to frame Rj is expressed as a function of the following four geometric parameters (Figure 3.2):

• j: the angle between zj-1 and zj about xj-1;

• dj: the distance between zj-1 and zj along xj-1;

• j: the angle between xj-1 and xj about zj;

• rj: the distance between xj-1 and xj along zj.

zj-1

xj-1

zj

xj

dj

rj

j

j

Oj

Oj-1

Figure 3.2. The geometric parameters in the case of a simple open structure

The variable of joint j, defining the relative orientation or position between links j – 1 and j, is either j or rj, depending on whether the joint is revolute or prismatic respectively. This is defined by the relation:

j j j j jq = + r [3.1a]

with:

• j = 0 if joint j is revolute;

• j = 1 if joint j is prismatic;

• j = 1 – j.

By analogy, we define the parameter q j by:

Page 47: Modeling and Control of Manipulators - Part I: Geometric

40 Modeling, identification and control of robots

q–j = j j +

j rj [3.1b]

The transformation matrix defining frame Rj relative to frame Rj-1 is given as

(Figure 3.2): j-1Tj = Rot(x, j) Trans(x, dj) Rot(z, j) Trans(z, rj)

=

j j j

j j j j j j j

j j j j j j j

C S 0 d

C S C C S r S

S S S C C r C

0 0 0 1

[3.2]

We note that the (3x3) rotation matrix j-1Rj can be obtained as: j-1Rj = rot(x, j) rot(z, j) [3.3] The transformation matrix defining frame Rj-1 relative to frame Rj is given as: jTj-1 = Trans(z, –rj) Rot(z,–j) Trans(x,–dj) Rot(x ,–j)

= Tj

j j

j j

j

d C

j 1 d S

r

0 0 0 1

R [3.4]

NOTES.–

– the frame R0 is chosen to be aligned with frame R1 when q1 = 0. This means that z0 is aligned with z1, whereas the origin O0 is coincident with the origin O1 if joint 1 is revolute, and x0 is parallel to x1 if joint 1 is prismatic. This choice makes 1 = 0, d1 = 0 and –q1 = 0;

– in a similar way, the choice of the xn axis to be aligned with xn-1 when qn = 0 makes –qn = 0;

– if joint j is prismatic, the zj axis must be taken to be parallel to the joint axis but can have any position in space. So, we place it in such a way that dj = 0 or dj+1 = 0;

– if zj is parallel to zj+1, we place xj in such a way that rj = 0 or rj+1 = 0;

Page 48: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 41

– assuming that each joint is driven by an independent actuator, the vector of joint variables q can be obtained from the vector of encoder readings qc using the relation:

q = K qc + q0

where K is an (nn) constant matrix and q0 is an offset vector representing the robot configuration when qc = 0;

– if a chain contains two or more consecutive parallel joints, the transformation matrices between them can be reduced to one equivalent transformation matrix using the sum of the joint variables. For example, if j+1 = 0, i.e. if zj and zj+1 are parallel, the transformation j-1Tj+1 is written as:

j-1Tj+1 = j-1Tj jTj+1 = Rot(x, j) Trans(x, dj) Rot(z, j) Trans(z, rj) Trans(x, dj+1) Rot(z, j+1) Trans(z, rj+1) [3.5] =

j j 1 j j 1 j j 1 j

j j j 1 j j j 1 j 1 j j j j 1 j

j j j 1 j j j 1 j j 1 j j j j 1 j

C( ) S( ) 0 d d C

C S( ) C C( ) S d C S (r r )S

S S( ) S C( ) C d S S (r r )C

0 0 0 1

and the inverse transformation has the expression:

j+1Tj-1 =

j j j 1 j 1 j 1

j-1 Tj+1 j j j 1 j 1 j 1

j j 1

d C( ) d C

d S( ) d S

(r r )

0 0 0 1

R [3.6]

The above expressions contain terms in (j + j+1) and (rj + rj+1). This result can

be generalized for the case of multiple consecutive parallel axes [Kleinfinger 86a].

• Example 3.1. Geometric description of the Stäubli RX-90 robot (Figure 3.3a). The shoulder is of RRR type and the wrist has three revolute joints whose axes intersect at a point (Figure 3.3b). From a methodological point of view, we first place the zj axes on the joint axes, then the xj axes according to the previously mentioned conventions. Then, we determine the geometric parameters defining each frame Rj

Page 49: Modeling and Control of Manipulators - Part I: Geometric

42 Modeling, identification and control of robots

with respect to frame Rj-1. The link coordinate frames are indicated in Figure 3.3b and the geometric parameters are given in Table 3.1.

Table 3.1. Geometric parameters of the Stäubli RX-90 robot

j j j dj j rj

1 0 0 0 1 0

2 0 0 2 0

3 0 0 D3 3 0

4 0 – 0 4 RL4

5 0 0 5 0

6 0 – 0 6 0

Figure 3.3a. General view of the Stäubli RX-90 robot

(Courtesy of Stäubli company)

Page 50: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 43

Figure 3.3b. Link coordinate frames for the Stäubli RX-90 robot

• Example 3.2. Geometric description of a SCARA robot (Figure 3.4). The geometric parameters of a four degree-of-freedom SCARA robot are given in Table 3.2.

x3

x4, x5, x6

z6

z3z2

z5

x0, x1, x2

D3

RL4

z4

z0, z1

Page 51: Modeling and Control of Manipulators - Part I: Geometric

44 Modeling, identification and control of robots

X4

z0, z1

x0, x1

z2 z3, z4

x2 x3

D2

D3

Figure 3.4. SCARA Robot

Table 3.2. Geometric parameters of a SCARA robot

j j j dj j rj

1 0 0 0 1 0

2 0 0 D2 2 0

3 0 0 D3 3 0

4 1 0 0 r4

3.3. Direct geometric model The Direct Geometric Model (DGM) is the set of relations that defines the

location of the end-effector of the robot as a function of its joint coordinates. For a serial structure, it may be represented by the transformation matrix 0Tn as:

0Tn = 0T1(q1) 1T2(q2) … n-1Tn(qn) [3.7] This relation can be numerically computed using the general transformation

matrix j-1Tj given by equation [3.2], or symbolically derived after substituting the values of the constant geometric parameters in the transformation matrices (Example 3.3). The symbolic method needs less computational operations.

The direct geometric model of a robot may also be represented by the relation: X = f(q) [3.8]

Page 52: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 45

where q is the vector of joint variables such that:

q = [q1 q2 … qn]T [3.9] The position and orientation of the terminal link are defined as:

X = [x1 x2 … xm]T [3.10] There are several possibilities of defining the vector X as we will see in § 3.6.

For example, with the elements of the matrix 0Tn: X = [Px Py Pz sx sy sz nx ny nz ax ay az]T [3.11]

Taking into account that s = n x a, we can also take: X = [Px Py Pz nx ny nz ax ay az]T [3.12]

• Example 3.3. Symbolic direct geometric model of the Stäubli RX-90 robot (Figure 3.3). From Table 3.1 and using equation [3.2], we write the elementary transformation matrices j-1Tj as:

01

C1 S1 0 0

S1 C1 0 0

0 0 1 0

0 0 0 1

T ,12

C2 S2 0 0

0 0 1 0

S2 C2 0 0

0 0 0 1

T , 3

C3 S3 0 D3

S3 C3 0 0

0 0 1 0

0 0 0 1

2 T

Since the joint axes 2 and 3 are parallel, we can write the transformation matrix

1T3 using equation [3.5] as:

13

C23 S23 0 C2D3

0 0 1 0T =

S23 C23 0 S2D3

0 0 0 1

with C23 = cos(2 + 3) and S23 = sin(2 + 3).

Page 53: Modeling and Control of Manipulators - Part I: Geometric

46 Modeling, identification and control of robots

3T4=

C4 S4 0 0

0 0 1 RL4

S4 C4 0 0

0 0 0 1

, 4T5 =

C5 S5 0 0

0 0 1 0

S5 C5 0 0

0 0 0 1

, 5T6 =

C6 S6 0 0

0 0 1 0

S6 C6 0 0

0 0 0 1

In order to compute 0T6, it is better to multiply the matrices j-1Tj starting from

the last transformation matrix and working back to the base, mainly for two reasons:

– the intermediate matrices jT6, denoted as Uj, will be used to obtain the inverse geometric model (Chapter 4);

– this reduces the number of operations (additions and multiplications) of the model.

We thus compute successively Uj for j = 5, ..., 0: U5 = 5T6

4 44 6 5 5

C5C6 C5S6 S5 0

S6 C6 0 0= = =

S5C6 S5S6 C5 0

0 0 0 1

U T T U

3 36 4 4

C4C5C6 S4S6 C4C5S6 S4C6 C4S5 0

S5C6 S5S6 C5 RL4= = =

S4C5C6 C4S6 S4C5S6 C4C6 S4S5 0

0 0 0 1

3U T T U

2 26 3 3= = 2U T T U

The s, n, a, P vectors of U2 are: sx = C3(C4C5C6 – S4S6) – S3S5C6 sy = S3(C4C5C6 – S4S6) + C3S5C6 sz = – S4C5C6 – C4S6 nx = – C3(C4C5S6 + S4C6) + S3S5S6 ny = – S3(C4C5S6 + S4C6) – C3S5S6 nz = S4C5S6 – C4C6 ax = – C3C4S5 – S3C5 ay = – S3C4S5 + C3C5 az = S4S5 Px = – S3RL4 + D3

Page 54: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 47

Py = C3RL4 Pz = 0

1 1 1

1 6 2 2 3 3= = U T T U T U The corresponding s, n, a, P vectors are: sx = C23(C4C5C6 – S4S6) – S23S5C6 sy = S4C5C6 + C4S6 sz = S23(C4C5C6 – S4S6) + C23S5C6 nx = – C23(C4C5S6 + S4C6) + S23S5S6 ny = – S4C5S6 + C4C6 nz = – S23(C4C5S6 + S4C6) – C23S5S6 ax = – C23C4S5 – S23C5 ay = – S4S5 az = – S23C4S5 + C23C5 Px = – S23 RL4 + C2D3 Py = 0 Pz = C23 RL4 + S2D3

Finally:

0 00 6 1 1 = = U T T U

The corresponding s, n, a, P vectors are: sx = C1(C23(C4C5C6 – S4S6) – S23S5C6) – S1(S4C5C6 + C4S6) sy = S1(C23(C4C5C6 – S4S6) – S23S5C6) + C1(S4C5C6 + C4S6) sz = S23(C4C5C6 – S4S6) + C23S5C6 nx = C1(– C23 (C4C5S6 + S4C6) + S23S5S6) + S1(S4C5S6 – C4C6) ny = S1(– C23 (C4C5S6 + S4C6) + S23S5S6) – C1(S4C5S6 – C4C6) nz = – S23(C4C5S6 + S4C6) – C23S5S6 ax = – C1(C23C4S5 + S23C5) + S1S4S5 ay = – S1(C23C4S5 + S23C5) – C1S4S5 az = – S23C4S5 + C23C5 Px = – C1(S23 RL4 – C2D3) Py = – S1(S23 RL4 – C2D3) Pz = C23 RL4 + S2D3

3.4. Optimization of the computation of the direct geometric model

Page 55: Modeling and Control of Manipulators - Part I: Geometric

48 Modeling, identification and control of robots

The control of a robot manipulator requires fast computation of its different models. An efficient method to reduce the computation time is to generate a symbolic customized model for each specific robot. To obtain this model, we expand the matrix multiplications to transform them into scalar equations. Each element of a matrix containing at least one mathematical operation is replaced by an intermediate variable. This variable is written in the output file that contains the customized model. The elements that do not contain any operation are kept without modification. We propagate the matrix obtained in the subsequent equations. Consequently, customizing eliminates multiplications by one and zero, and additions with zero. Moreover, if the robot has two or more successive revolute joints with parallel axes, it is more interesting to replace the corresponding product of matrices by a single matrix, which is calculated using equation [3.5]. We can also compute 0sn using the vector product (0nn x 0an). In this case, the multiplication of the transformation matrices from the end-effector to the base saves the computation of the vectors jsn of the intermediate matrices jTn, (j = n, …, 1).

• Example 3.4. Direct geometric model of the Stäubli RX-90 robot using the customized symbolic method.

a) computation of all the elements (s, n, a, P) We denote Tijrs as the element (r,s) of the matrix iTj. As in Example 3.3, the

product of the matrices is carried out starting from the last transformation matrix. We obtain the following intermediate variables for the matrix 4T6:

T4611 = C5 C6 T4612 = – C5 S6 T4631 = S5 C6 T4632 = – S5 S6 Proceeding in the same way, the other intermediate variables are written as:

T3611 = C4 T4611 – S4 S6 T3612 = C4 T4612 – S4 C6 T3613 = – C4 S5 T3631 = – S4 T4611 – C4 S6 T3632 = – S4 T4612 – C4 C6 T3633 = S4 S5 T1314 = D3 C2 T1334 = D3 S2 T1611 = C23 T3611 – S23 T4631 T1612 = C23 T3612 – S23 T4632 T1613 = C23 T3613 – S23 C5 T1614 = – S23 RL4 + T1314 T1631 = S23 T3611 + C23 T4631 T1632 = S23 T3612 + C23 T4632

Page 56: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 49

T1633 = S23 T3613 + C23 C5 T1634 = C23 RL4 + T1334 T0611 = C1 T1611 + S1 T3631 T0612 = C1 T1612 + S1 T3632 T0613 = C1 T1613 + S1 T3633 T0614 = C1 T1614 T0621 = S1 T1611 – C1 T3631 T0622 = S1 T1612 – C1 T3632 T0623 = S1 T1613 – C1 T3633 T0624 = S1 T1614 T0631 = T1631 T0632 = T1632 T0633 = T1633 T0634 = T1634

Total number of operations: 44 multiplications and 18 additions

Page 57: Modeling and Control of Manipulators - Part I: Geometric

50 Modeling, identification and control of robots

b) computing only the columns (n, a, P) T4612 = – C5 S6 T4632 = – S5 S6 T3612 = C4 T4612 – S4 C6 T3613 = – C4 S5 T3632 = – S4 T4612 – C4 C6 T3633 = S4 S5 T1314 = D3 C2 T1334 = D3 S2 T1612 = C23 T3612 – S23 T4632 T1613 = C23 T3613 – S23 C5 T1614 = – S23 RL4 + T1314 T1632 = S23 T3612 + C23 T4632 T1633 = S23 T3613 + C23 C5 T1634 = C23 RL4 + T1334 T0612 = C1 T1612 + S1 T3632 T0613 = C1 T1613 + S1 T3633 T0614 = C1 T1614 T0622 = S1 T1612 – C1 T3632 T0623 = S1 T1613 – C1 T3633 T0624 = S1 T1614 T0632 = T1632 T0633 = T1633 T0634 = T1634

Total number of operations: 30 multiplications and 12 additions

These equations constitute a complete direct geometric model. However, the

computation of 0s6 requires six multiplications and three additions corresponding to the vector product (0n6 x 0a6).

3.5. Transformation matrix of the end-effector in the world frame The robot is a component among others in a robotic workcell. It is generally

associated with fastening devices, sensors..., and eventually with other robots. Consequently, we have to define a reference world frame Rf, which may be different than the base reference frame R0 of the robot (Figure 3.5). The transformation matrix defining R0 with reference to Rf will be denoted as Z = fT0.

Moreover, very often, a robot is not intended to perform a single operation at the workcell: it has interchangeable different tools. In order to facilitate the programming of the task, it is more practical to define one or more functional frames, called tool frames for each tool. We denote E = nTE as the transformation matrix defining the tool frame with respect to the terminal link frame.

Page 58: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 51

Rn

RE

R0

Rf

0Tn

0TE

EZ

Figure 3.5. Transformations between the end-effector and the world frame

Thus, the transformation matrix fTE can be written as: fTE = Z 0Tn(q) E [3.13] In most programming languages, the user can specify Z and E.

3.6. Specification of the orientation Previously, we have used the elements of the matrix 0Tn to represent the position

and orientation of the end-effector in frame R0. This means the use of the Cartesian coordinates to describe the position:

0Pn = [ ]Px Py Pz T [3.14]

and the use of the direction cosine matrix for the orientation:

n n n0

n = 0 0 0 s n aR [3.15]

Practically, all the robot manufacturers make use of the Cartesian coordinates for

the position even though the cylindrical or spherical representations could appear to be more judicious for some structures of robots.

Other representations may be used for the orientation, for example: Euler angles for CINCINNATI-T3 robots and PUMA robots, Roll-Pitch-Yaw (RPY) angles for

Page 59: Modeling and Control of Manipulators - Part I: Geometric

52 Modeling, identification and control of robots

ACMA robots, Euler parameters for ABB robots. In this section, we will show how to obtain the direction cosines s, n, a from the other representations and vice versa. Note that the orientation requires three independent parameters, thus the representation is redundant when it uses more than that.

3.6.1. Euler angles

The orientation of frame Rn expressed in frame R0 is determined by specifying three angles, , and , corresponding to a sequence of three rotations (Figure 3.6). The plane (xn, yn) intersects the plane (x0, y0) following the straight line ON, which is perpendicular to z0 and zn. The positive direction is given by the vector product a0 x an. The Euler angles are defined as:

• : angle between x0 and ON about z0, with 0 < 2;

• : angle between z0 and zn about ON, with 0 ;

• : angle between ON and xn about z0, with 0 < 2.

O

yn

N

x0xn

y0

z0

zn

Figure 3.6. Euler angles (z, x, z representation)

The orientation matrix is given by: 0Rn = rot(z, ) rot(x, ) rot(z, )

C C S C S C S S C C S S

S C C C S S S C C C C S

S S S C C

[3.16]

Page 60: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 53

Inverse problem: expression of the Euler angles as functions of the direction cosines. Premultiplying equation [3.16] by rot(z, –), we obtain [Paul 81]:

rot(z, –) 0Rn = rot(x, ) rot(z,) [3.17] Using relations [3.15] and [3.17] yields:

x y x y x y

x y x y x y

z z z

C s S s C n S n C a S a C S 0

S s C s S n C n S a C a C S C C S

S S S C Cs n a

[3.18] Equating the (1, 3) elements of both sides, we obtain: C ax + S ay = 0

which gives:

1 x y

2 x y 1

atan2( a ,a )

atan2(a , a )

[3.19]

NOTE.– atan2 is a mathematical function (Matlab, Fortran, ...), which provides the arc tangent function from its two arguments. This function has the following characteristics:

– examining the sign of both ax and ay allows us to uniquely determine the angle such that – <;

– the accuracy of this function is uniform over its full range of definition;

– when ax = 0, ay = 0, az = ± 1 the angle is undefined (singularity). Using the (2, 3) and (3, 3) elements of equation [3.18], we obtain: = atan2(S ax – Cay, az) [3.20] We proceed in a similar way to calculate using the (1, 1) and (1, 2) elements: = atan2(– C nx – Sny, Csx + S sy) [3.21] When ax and ay are zero, the axes zn and z0 are aligned, thus is zero or . This

situation corresponds to the singular case: the rotations and are about the same

Page 61: Modeling and Control of Manipulators - Part I: Geometric

54 Modeling, identification and control of robots

axis and we can only determine their sum or difference. For example, when az = 1, we obtain:

0Rn = rot(z, + )

and from this, we deduce: + = atan2(– nx, ny) [3.22]

NOTE.– The Euler angles adopted here correspond to a (z, x, z) representation where the first rotation is about z0, followed by a rotation about the new x axis, followed by a last rotation about the new z axis. Some authors prefer the (z, y, z) representation [Paul 81]. A specific but interesting case can be encountered in the PUMA robot controller [Lee 83], [Dombre 88a] where an initial shift is introduced so that the orientation matrix is written as:

0Rn = rot(z, ) rot(x, + ) rot(z, –

) [3.23]

3.6.2. Roll-Pitch-Yaw angles

Following the convention shown in Figure 3.7, the angles , and indicate roll, pitch and yaw respectively. If we suppose that the direction of motion (by analogy to the direction along which a ship is sailing) is along the z axis, the orientation matrix can be written as:

0Rn = rot(z, ) rot(y, ) rot(x, )

C C C S S S C C S C S S

S C S S S C C S S C C S

S C S C C

[3.24]

Inverse problem: expression of the Roll-Pitch-Yaw angles as functions of the direction cosines. We use the same method discussed in the previous section. Premultiplying equation [3.24] by rot(z, – ), we obtain:

rot(z, – ) 0Rn = rot(y, ) rot(x, ) [3.25]

which results in:

Page 62: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 55

x y x y x y

x y x y x y

z z z

C s S s C n S n C a S a C S S S C

S s C s S n C n S a C a 0 C S

S C S C Cs n a

[3.26]

x0

x0' x0'', xn

y0

y0', y0''

ynz0, z0'

z0''

zn

Figure 3.7. Roll-Pitch-Yaw angles

From the (2, 1) elements of equation [3.26], we obtain: – Ssx + Csy = 0

thus:

1 y x

2 y x 1

atan2(s ,s )

atan2( s , s )

[3.27]

There is a singularity if sx and sy are zero ( = ± 2 ).

In the same way, from the (1, 1) and (1, 3) elements, then from the (2, 2) and (2, 3) elements, we deduce that:

= atan2(– sz, Csx + Ssy) [3.28] = atan2(Sax – Cay, – Snx + Cny) [3.29]

Page 63: Modeling and Control of Manipulators - Part I: Geometric

56 Modeling, identification and control of robots

3.6.3. Quaternions

The quaternions are also called Euler parameters or Olinde-Rodrigues parameters. In this representation, the orientation is expressed by four parameters that describe the orientation by a rotation of an angle (0 ) about an axis of unit vectoru (Figure 3.8). We define the quaternions as:

1

2 x

3 y

4 z

Q C( / 2)

Q u S( / 2)

Q u S( / 2)

Q u S( / 2)

[3.30]

xnx0

y0

yn

u

z0

zn

Figure 3.8. The quaternions From these relations, we obtain:

2 2 2 21 2 3 4Q + Q + Q + Q = 1 [3.31]

The orientation matrix 0Rn is deduced from equation [2.30], defining rot(u, ),

after rewriting its elements as a function of Qi. We note that:

C= C2(/2) – S2(/2) = 2Q21 - 1 [3.32]

and that:

Page 64: Modeling and Control of Manipulators - Part I: Geometric

Direct geometric model (simple chain) 57

2 2 2 22 x x

2 23 y

2 24 z

2 3 x y

2 4 x z

3 4 y z

x x 1 2

y 1 3

z 1 4

1Q u S ( / 2) u (1 C );

21

Q u (1 C );21

Q u (1 C );2

1Q Q u u (1 C );

21

Q Q u u (1 C );21

Q Q u u (1 C );2

u S 2u S( / 2)C( / 2) 2Q Q ;

u S 2Q Q ;

u S 2Q Q

[3.33]

Thus, the orientation matrix is given as:

2 21 2 2 3 1 4 2 4 1 3

0 2 2n 2 3 1 4 1 3 3 4 1 2

2 22 4 1 3 3 4 1 2 1 4

2(Q Q ) 1 2(Q Q Q Q ) 2(Q Q Q Q )

= 2(Q Q Q Q ) 2(Q Q ) 1 2(Q Q Q Q )

2(Q Q Q Q ) 2(Q Q Q Q ) 2(Q Q ) 1

R [3.34]

For more information on the algebra of quaternions, the reader can refer to

[de Casteljau 87].

Inverse problem: expression of the quaternions as functions of the direction cosines. Equating the elements of the diagonals of the right sides of equations [3.34] and [3.15] leads to:

1 x y z1

Q s n a 12

[3.35]

which is always positive. If we then subtract the (2, 2) and (3, 3) elements from the (1, 1) element, we can write after simplifying:

Page 65: Modeling and Control of Manipulators - Part I: Geometric

58 Modeling, identification and control of robots

4 Q22 = sx – ny – az + 1 [3.36]

This expression gives the magnitude of Q2. For determining the sign, we

consider the difference of the (3, 2) and (2, 3) elements, which leads to: 4 Q1Q2 = nz – ay [3.37] The parameterQ1 being always positive, the sign of Q2 is that of (nz – ay), which

allows us to write:

2 z y x y z1

Q = sign (n a ) s n a 12

[3.38]

Similar reasoning for Q3 and Q4 gives:

3 x z x y z1

Q = sign (a s ) s n a 12

[3.39]

4 y x x y z1

Q = sign (s n ) s n a 12

[3.40]

These expressions exhibit no singularity.

3.7. Conclusion In this chapter, we have shown how to calculate the direct geometric model of a

serial robot. This model is unique and is given in the form of explicit equations. The description of the geometry is based on rules that have an intrinsic logic facilitating its application. This method can be generalized to tree and closed loop structures (Chapter 7). It can also be extended to systems with lumped elasticity [Khalil 00a].

We have also presented the methods that are frequently used in robotics to specify the orientation of a body in space. We have shown how to calculate the orientation matrix from these representations and inversely, how to find the parameters of these descriptions from the orientation matrix.

Having calculated the direct geometric model, in the next chapter we study the inverse geometric problem, which consists of computing the joint variables as functions of a given location of the end-effector.

Page 66: Modeling and Control of Manipulators - Part I: Geometric

Chapter 4

Inverse geometric model of serial robots

4.1. Introduction The direct geometric model of a robot provides the location of the end-effector

in terms of the joint coordinates. The problem of computing the joint variables corresponding to a specified location of the end-effector is called the inverse geometric problem. This problem is at the center of computer control algorithms for robots. It has in general a multiple solution and its complexity is highly dependent on the geometry of the robot. The model that gives all the possible solutions for this problem is called the Inverse Geometric Model (IGM). In this chapter, we will present three methods to obtain the IGM of serial robots. First, we present the Paul method [Paul 81], which can be used to obtain an explicit solution for robots with relatively simple geometry that have many zero distances and parallel or perpendicular joint axes. Then, we develop a variation on the Pieper method [Pieper 68], which provides the analytical solution for the IGM of six degree-of-freedom robots with three prismatic joints or three revolute joints whose axes intersect at a point. Finally, we expose the Raghavan-Roth method [Raghavan 90], which gives the IGM for six degree-of-freedom robots with general (arbitrary) geometry using, at most, a sixteen degree polynomial.

When the inverse geometric model cannot be obtained or if it is difficult to implement in real time applications, iterative numerical techniques can be used. For this purpose, several algorithms can be found in the literature [Grudić 93]. Most of these algorithms use either the Newton-Raphson-based method [Pieper 68], [Goldenberg 85] or inverse Jacobian-based methods [Pieper 68], [Whitney 69], [Fournier 80], [Featherstone 83a]. In Chapter 6, we will present the second technique.

Page 67: Modeling and Control of Manipulators - Part I: Geometric

60 Modeling, identification and control of robots

4.2. Mathematical statement of the problem Let f d

ET be the homogeneous transformation matrix representing the desired location of the tool frame RE relative to the world frame. In general, we can express f d

ET in the following form (§ 3.5): f d 0

E n ( ) T Z T q E [4.1]

where (Figure 3.5):

• Z is the transformation matrix defining the location of the robot (frame R0) relative to the world frame;

• 0nT is the transformation matrix of the terminal frame Rn relative to frame

R0. It is a function of the joint variable vector q;

• E is the transformation matrix defining the tool frame RE relative to Rn.

Putting all the known matrices of relation [4.1] on the left side leads to:

00 n ( )U T q [4.2]

with d -1 f d -10 E U Z T E

The problem is composed of a set of twelve nonlinear equations of n unknowns.

The regular case has a finite number of solutions, whereas for redundant robots or in some singular configurations we obtain an infinite number of solutions. When the desired location is outside the reachable workspace there is no solution.

We say that a robot manipulator is solvable [Pieper 68], [Roth 76] when it is possible to compute all the joint configurations corresponding to a given location of the end-effector. Now, all non-redundant manipulators can be considered to be solvable [Lee 88], [Raghavan 90]. The number of solutions depends on the architecture of the robot manipulator and the amplitude of the joint limits. For six degree-of-freedom robots with only revolute joints (6R), or having five revolute joints and one prismatic joint (5R1P), the maximum number of solutions is sixteen. When the robot has three revolute joints whose axes intersect at a point, the maximum number of solutions is eight. For the 3P3R robots, this number reduces to two. In all cases, it decreases when the geometric parameters take certain particular values.

Robots with less than six degrees of freedom are not able to place the end-effector frame in an arbitrary location. Thus, we only specify the task in terms of placing some elements of the tool frame (points, axes) in the world frame. Under

Page 68: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 61

these conditions, the matrix E is not completely defined, and the equation to solve is given by:

1 f d 0E n ( ) -Z T T q E [4.3]

4.3. Inverse geometric model of robots with simple geometry For robots with simple geometry, where most of the distances (rj and dj) are zero

and most of the angles (j and j) are zero or /2, the inverse geometric model can be analytically obtained using the Paul method [Paul 81]. Most commercially available robots can be solved using this method.

4.3.1. Principle

Let us consider a robot manipulator whose transformation matrix has the expression:

0 0 1 n 1

n 1 1 2 2 n n(q ) (q ) ... (q )T T T T [4.4] Let Ud

0 be the desired location such that:

x x x x

y y y yd0

z z z z

s n a P

s n a P

s n a P

0 0 0 1

U [4.5]

The IGM is obtained by solving the following equation:

0 1 n 11 1 2 2 n n(q ) (q ) ... (q )d

0U T T T [4.6] To find the solutions of this equation, Paul [Paul 81] proposed to move each

joint variable to the left side one after the other by successively premultiplying equation [4.6] by jTj-1, for j varying from 1 to n – 1. Then, the joint variables are determined by equating the elements of the two sides of each equation. For example, for a six degree-of-freedom robot, we proceed as follows:

– premultiply equation [4.6] by 1T0:

Page 69: Modeling and Control of Manipulators - Part I: Geometric

62 Modeling, identification and control of robots

1 1 2 3 4 50 0 2 3 4 5 6= T U T T T T Td [4.7]

The elements of the left side are constants or functions of q1. The elements of the right side are constants or functions of q2, …, q6;

– try to solve q1 by equating the elements of the two sides of equation [4.7];

– premultiply equation [4.7] by 2T1 and try to determine q2;

– continue the process until all the variables are solved. In summary, the equations used to obtain all the joint variables are written as:

1 1 2 3 4 50 0 2 3 4 5 6

2 1 2 3 4 51 0 0 3 4 5 6

3 2 3 4 52 0 0 4 5 6

4 3 4 53 0 0 5 6

5 4 54 0 0 6

j j6 j-1 j-1

=

=

=

=

=

with j = =

T U T T T T T

T T U T T T T

T T U T T T

T T U T T

T T U T

U T T U

d

d

d

d

d

[4.8]

The resolution of equations [4.8] needs intuition, but the use of this method on a

large number of industrial robots has shown that only few fundamental types of equations are encountered [Khalil 86b] (Table 4.1). The solutions of these equations are given in Appendix 1.

NOTES.–

– the matrices of the right side of equations [4.8] are already available when computing the direct geometric model (DGM) if the multiplication of the transformation matrices is started from the end of the robot;

– in certain cases, it may be more convenient to solve the robot by first determining qn and ending with q1. In this case, we postmultiply equation [4.6] by jTj-1 for j varying from n to 2.

Page 70: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 63

Table 4.1. Types of equations encountered in the Paul method

Type 1 X ri = Y

Type 2 X Si + Y Ci = Z

Type 3 X1 Si + Y1 Ci = Z1

X2 Si + Y2 Ci = Z2

Type 4 X1 rj Si = Y1

X2 rj Ci = Y2

Type 5 X1 Si = Y1 + Z1 rj

X2 Ci = Y2 + Z2 rj

Type 6 W Sj = X Ci + Y Si + Z1

W Cj = X Si – Y Ci + Z2

Type 7 W1 Cj + W2 Sj = X Ci +Y Si + Z1

W1 Sj – W2 Cj = X Si –Y Ci + Z2

Type 8 X Ci + Y C(i + j) = Z1

X Si + Y S(i + j) = Z2

ri: prismatic joint variable, Si, Ci: sine and cosine of a revolute joint variable i.

4.3.2. Special case: robots with a spherical wrist

Most six degree-of-freedom industrial robots have a spherical wrist composed of three revolute joints whose axes intersect at a point (Figure 4.1). This structure is characterized by the following set of geometric parameters:

5 5 6

4 5 6

5 6

d r d 0

0

S 0,S 0 (non redundant robot)

The position of the center of the spherical joint is obtained as a function of the

joint variables q1, q2 and q3. This type of structure allows the decomposition of the six degree-of-freedom problem into two equations each with three unknowns. They represent a position equation and an orientation equation. The position problem, which is a function of q1, q2 and q3, is first solved, then the orientation problem allows us to determine 4, 5, 6.

Page 71: Modeling and Control of Manipulators - Part I: Geometric

64 Modeling, identification and control of robots

C1

C2

C3

C4

C5C6

O4, O5, O6

C0

Figure 4.1. Six degree-of-freedom robot with a spherical wrist

4.3.2.1. Position equation

Since 0 06 4P P , the fourth column of the transformation matrix 0T4 is equal to

the fourth column of Ud0:

2 30 11 2 3 4

Px 0

Py 0 =

Pz 0

1 1

T T T T [4.9]

We obtain the variables q1, q2, q3 by successively premultiplying this equation

by jT0, j = 1, 2, to isolate and determine sequentially the joint variables. The elements of the right side have already been calculated for the DGM.

4.3.2.2. Orientation equation

The orientation part of equation [4.2] is written as:

06 ( )s n a R q

yielding:

3 30 1 2 3 6 4 5 6(q ,q ,q ) ( , , ) R s n a R

which can be written as:

36 4 5 6( , , ) F G H R [4.10]

Page 72: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 65

Since q1, q2, q3 have been determined, the left side elements are considered to be

known. To obtain 4, 5, 6, we successively premultiply equation [4.10] by 4R3 then by 5R4 and proceed by equating the elements of the two sides. Again, the elements of the right side have already been calculated for the DGM.

• Example 4.1. IGM of the Stäubli RX-90 robot. The geometric parameters are given in Table 3.1. The robot has a spherical wrist. The DGM is developed in Chapter 3.

a) Computation of 1, 2, 3

i) by developing equation [4.9], we obtain:

x

y

z

P C1( S23RL4 C2D3)

P S1( S23RL4 C2D3)

C23RL4 S2D3P

11

Note that the elements of the right side constitute the fourth column of 0T6,

which have already been calculated for the DGM. No variable can be determined from this equation;

ii) premultiplying the previous equation by 1T0, we obtain the left side elements as:

x y

x y

z

U(1) = C1 P + S1 P

U(2) = S1 P + C1 P

U(3) = P

The elements of the right side are obtained from the fourth column of 1T6:

T(1) = S23 RL4 + C2 D3

T(2) = 0

T(3) = C23 RL4 + S2 D3

By equating U(2) and T(2), we obtain the following two solutions for 1:

Page 73: Modeling and Control of Manipulators - Part I: Geometric

66 Modeling, identification and control of robots

1,1 y x

1,2 1,1

2(P , P )atan

iii) premultiplying by 2T1, we obtain the elements of the left side as:

x y z

x y z

x y

U(1) = C2 (C1 P + S1 P ) + S2 P

U(2) = S2 (C1 P + S1 P ) + C2 P

U(3) = S1 P C1 P

The elements of the right side represent the fourth column of 2T6:

T(1) = S3 RL4 + D3

T(2) = C3 RL4

T(3) = 0

We determine 2 and 3 by considering the first two elements, which constitute a type-6 system of equations (Table 4.1). First, an equation in 2 is obtained:

X S2 + Y C2 = Z

with:

z

1

2 2 2 24 3 z 1

1 x y

X = 2P D3

Y = 2 B D3

Z = RL D P B

B = P C1 + P S1

from which we deduce that:

2 2 2

2 2

2 2 2

2 2

YZ X X Y ZC2

X Y

XZ Y X Y ZS2

X Y

with = ± 1 This gives two solutions of the following form:

Page 74: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 67

2 = atan2(S2, C2) 2 being known, we obtain: 3 = atan2(S3, C3)

with:

1

1

PzS2 B C2 D3S3

RL4B S2 PzC2

C3RL4

b) Computation of 4, 5, 6 Once the variables 1, 2, 3 are determined, we define the (33) orientation

matrix 3R6 as follows: 3

0F G H R s n a The elements of F are written as:

x y z

x y z

x y

U(1,1) = C23 (C1 s + S1 s ) + S23 s

U(2,1) = 23 (C1 s + S1 s ) + C23 s

U(3,1) = S1 s C1 s

S

The elements of G and H are obtained from F by replacing (sx, sy, sz) by (nx, ny,

nz) and (ax, ay, az) respectively.

i) equating the elements of [ ]F G H = 3R6 The elements of 3R6 are obtained from 3T6, which is calculated for the DGM:

36

C6C5C4 S6S4 S6C5C4 C6S4 S5C4

C6S5 S6S5 C5

C6C5S4 S6C4 S6C5S4 C6C4 S5S4

R

Page 75: Modeling and Control of Manipulators - Part I: Geometric

68 Modeling, identification and control of robots

We can determine 5 from the (2, 3) elements using an arccosine function. But this solution is not retained, considering that another one using an atan2 function may appear in the next equation s;

ii) equating the elements of 4 43 6R F G H R

The elements of the first column of the left side are written as:

x z

z x

y

U(1, 1) = C4 F S4 F

U(2, 1) = C4 F S4 F

U(3, 1) = F

The elements of the second and third columns are obtained by replacing (Fx, Fy,

Fz) with (Gx, Gy, Gz) and (Hx, Hy, Hz) respectively. The elements of 4R6 are obtained from 4T6, which has already been calculated for the DGM:

46

C6C5 S6C5 S5

= S6 C6 0

C6S5 S6S5 C5

R

From the (2, 3) elements, we obtain a type-2 equation in 4: – C4 Hz – S4 Hx = 0

which gives two solutions:

4,1 z x

4,2 4,1

atan2(H , H )

From the (1, 3) and (3, 3) elements, we obtain a type-3 system of equations in

5:

x z

y

S5 = C4 H S4 H

C5 = H

whose solution is: 5 = atan2(S5, C5)

Page 76: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 69

Finally, by considering the (2, 1) and (2, 2) elements, we obtain a type-3 system of equations in 6:

z x

z x

S6 = C4 F S4 F

C6 = C4 G S4 G

whose solution is:

6 = atan2(S6, C6)

NOTES.– By examining the IGM solution of the Stäubli RX-90 robot, it can be observed that:

a) Number of solutions: in the regular case, the Stäubli RX-90 robot has eight solutions for the IGM (product of the number of possible solutions for each joint). Some of these configurations may not be accessible because of the joint limits.

a) The robot has the following singular positions:

i) shoulder singularity: takes place when the point O6 lies on the z0 axis (Figure 4.2a). Thus Px = Py = 0, which corresponds to S23RL4 – C2D3 = 0. In this case, both the two arguments of the atan2 function used to determine 1 are zero, thus leaving 1 undetermined. We are free to choose any value for 1, but frequently the current value is assigned. This means that one can always find a solution, but when leaving this configuration, a small change in the desired location may require a significant variation in 1, impossible to realize due to the speed and acceleration limits of the actuator;

ii) wrist singularity: takes place when C23(C1ax + S1ay) + S23az = Hx = 0 and (S1ax – C1ay) = Hz = 0. The two arguments of the atan2 function used to determine 4 are zero. From the (2, 3) element of 3R6, we notice that in this case C5 = ±1. Thus, the axes of joints 4 and 6 are collinear and it is the sum 4 ± 6 that can be determined (Figure 4.2b). For example, when5 = 0, the orientation equation becomes:

36

C46 S46 0

0 0 1

S46 C46 0

F G H R

Thus, 4 + 6 = atan2(–Gx, –Gz). We can arbitrarily assign 4 to its current value and calculate the corresponding 6. We can also calculate the values of 4 and 6 for which the joints 4 and 6 move away from their limits;

Page 77: Modeling and Control of Manipulators - Part I: Geometric

70 Modeling, identification and control of robots

iii) elbow singularity: occurs when C3 = 0. This singularity will be discussed in Chapter 6. It does not affect the inverse geometric model computation (Figure 4.2c).

b) The above-mentioned singularities are classified as first order

singularities. Singularities of higher order may occur when several singularities of first order take place simultaneously.

c) Number of solutions: in the regular case, the Stäubli RX-90 robot has eight solutions for the IGM (product of the number of possible solutions for each joint). Some of these configurations may not be accessible because of the joint limits.

z2

z0, z1

O4 O6

z3O2

O3 z3

z2

z0, z1

z4, z6

O2

O6

z5

a) Shoulder singularity b) Wrist singularity (S5 = 0) (Px = Py = 0 or S23RL4 – C2D3 = 0)

z2 z3

z5

O2

O6

z0, z1

c) Elbow singularity (C3 = 0)

Page 78: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 71

Figure 4.2. Singular positions of the Stäubli RX-90 robot

4.3.3. Inverse geometric model of robots with more than six degrees of freedom

A robot with more than six degrees of freedom is redundant and its inverse geometric problem has an infinite number of solutions. To obtain a closed form solution, (n – 6) additional relations are needed. Two strategies are possible:

– arbitrarily fixing (n – 6) joint values to reduce the problem to six unknowns. The selection of the fixed joints is determined by the task specifications and the robot structure;

– introducing (n – 6) additional relations describing the redundancy, as is done in certain seven degree-of-freedom robots [Hollerbach 84b].

4.3.4. Inverse geometric model of robots with less than six degrees of freedom

When the robot has less than six degrees of freedom, the end-effector frame RE cannot be placed at an arbitrary location except if certain elements of 0TE

d have specific values to compensate for the missing degrees of freedom. Otherwise, instead of realizing frame-to-frame task, we consider tasks with less degrees of freedom such as point-to-point contact, or (point-axis) to (point-axis) contact [Manaoui 85].

In the next example, we will study this problem for the four degree-of-freedom SCARA robot whose geometric parameters are given in Table 3.2. • Example 4.2. IGM of the SCARA robot (Figure 3.4).

i) frame-to-frame contact

In this case, the system of equations to be solved is given by equation [4.2] and

U0 is defined by equation [4.5]:

d 00 4

4

C123 S123 0 C12D3 C1D2

S123 C123 0 S12D3 S1D2 = =

0 0 1 r

0 0 0 1

U T

Examining the elements of this matrix reveals that frame-to-frame task is

possible if the third column of the desired U0 is equal to [0 0 1 0]T. This implies two independent conditions, which compensate for the missing degrees of freedom. By equating the (3, 4) elements, we obtain:

Page 79: Modeling and Control of Manipulators - Part I: Geometric

72 Modeling, identification and control of robots

4 zr = P

The (1, 4) and (2, 4) elements give a type-8 system of equations in 1 and 2

with the following solution:

22 a tan 2( 1 C2 ,C2)

1 = atan2(S1, C1)

with: 2 2 2

2 3

2 3

D D DC2

2D D

2 2 2x yD = P + P

y x

2

B1P B2PS1

D

x y2

B1P B2PC1

D

B1 = D2 + D3 C2, B2 = D3 S2 After determining 1 and 2, we obtain 3 as: 3 = atan2(sy, sx) – 2 – 1

ii) (point-axis) to (point-axis) contact

Let us suppose that the tool is defined by an axis of unit vector aE, passing by

OE such that:

4 TE x y z = [Q Q Q ]P

4 T

E x y z = [W W W ]a

The task consists of placing the point OE at a point of the environment while

aligning the axis aE with an axis of the environment, which are defined by:

0 d TE x y z = [P P P ]P

0 d TE x y z = [a a a ]a

Page 80: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 73

The system to be solved is written as:

x x x x

y y y y04

z z z z

a P W Q

a P W Q

a P W Q

0 1 0 1

T

After simplifying, we obtain:

x yx

y x y

z z 4

Q C123 Q S123 C12D3 C1D2P

P Q S123 Q C123 S12D3 S1D2

P Q r

x yx

y x y

z z

W C123 W S123a

a W S123 W C123

a W

Thus, we deduce that the condition az = Wz must be satisfied to realize the task.

The IGM solutions are obtained in the following way:

– from the ax and ay equations, we obtain (1 + 2 + 3) by solving a type-3 system (Appendix 1):

1 + 2 + 3 = atan2(S123, C123)

with y x x y

2 2x y

a W a WS123

W W

and

x x y y2 2x y

a W a WC123

W W

with ( 2 2x yW W 0 ) ;

– when Wx = Wy = 0, the axis of the end-effector is vertical and its orientation cannot be changed. Any value for 3 may be taken;

– from Px and Py equations, we obtain 1 and 2 by solving a type-8 system of equations;

– finally, from the third element of the position equation, we obtain r4 = Pz – Qz.

In summary, the task of a SCARA robot can be described in one of the following

ways:

Page 81: Modeling and Control of Manipulators - Part I: Geometric

74 Modeling, identification and control of robots

– placing the tool frame onto a specified frame provided that the third column of the matrix 0T

d4

= 0TdE

E-1 = [0 0 1 0]T, in order to satisfy that z4 is vertical;

– placing an axis and a point of the tool frame respectively onto an axis and a point of the environment provided that az = Wz. The obvious particular case is to locate a horizontal axis of the end-effector frame in a horizontal plane (az = Wz = 0).

4.4. Inverse geometric model of decoupled six degree-of-freedom robots

4.4.1. Introduction

The IGM of a six degree-of-freedom decoupled robot can be computed by solving two sub-problems, each having three unknowns [Pieper 68]. Two classes of structures are considered:

a) robots having a spherical joint given by one of the following four combinations: XXX(RRR), (RRR)XXX, XX(RRR)X, X(RRR)XX, where (RRR) denotes a spherical joint and X denotes either a revolute (R) or a prismatic (P) joint. Consequently, each combination results in eight structures;

b) robots having three revolute and three prismatic joints as given by one of the following 20 combinations: PPPRRR, PPRPRR, PPRRPR, ...

In this section, we present the inverse geometric model of these structures using

two general equations [Khalil 90c], [Bennis 91a]. These equations make use of the six types of equations shown in Table 4.2. The first three types have already been used in the Paul method (Table 4.1). The explicit solution of a type-10 equation can be obtained symbolically using software packages like Maple or Mathematica. In general, however, the numerical solution is more accurate. We note that a type-11 equation can be transformed into type-10 using the half-angle transformation by writing Ci and Si as:

2

i 2

1 tC

1 t

and i 2

2tS

1 t

with it tan

2

Table 4.2. Types of equations encountered in the Pieper method

Page 82: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 75

Type 1 X ri = Y

Type 2 X Ci + Y Si = Z

Type 3 X1 Si + Y1 Ci = Z1

X2 Si + Y2 Ci = Z2

Type 9 a2 ri2 + a1 ri + a0 = 0

Type 10 a4 ri4 + a3 ri3 + a2 ri2 + a1 ri + a0 = 0

Type 11 a4 Si2 + a3 Ci Si + a2 Ci + a1 Si + a0 = 0

4.4.2. Inverse geometric model of six degree-of-freedom robots having a spherical joint

In this case, equation [4.6] is decoupled into two equations, each containing three variables:

– a position equation, which is a function of the joint variables that do not belong to the spherical joint;

– an orientation equation, which is a function of the joint variables of the spherical joint.

4.4.2.1. General solution of the position equation

The revolute joint axes m – 1, m and m + 1 (2 m 5) form a spherical joint if:

m m m 1

m

m 1

d r d 0

S 0

S 0

The position of the center of the spherical joint is represented as: Om-1, Om-1 and O’m+1, where O’m+1 is the translation of Om+1 by . It is independent of the joint variables m-1, m and m+1. Thus, we can show (Figure 4.3) that the position of Om relative to frame Rm-2 is given by:

m 2m 1

m 1

m 1 m 1m-2m+1 m+1 0

m 1 m 1

d

r S(z, r ) =

r C11

PT Trans p [4.11]

where T0 0 0 0 1p and m-2Pm-1 is obtained using equation [3.2].

Page 83: Modeling and Control of Manipulators - Part I: Geometric

76 Modeling, identification and control of robots

zm+1

zm-1

zm Om+1

Om-1Om

xm+1

Figure 4.3. Axes of a spherical joint

To obtain the position equation, we write equation [4.6] in the following form: 0 m 2 m 1

m 2 m 1 6 0

T T T U [4.12] Postmultiplying this relation by 6Tm+1 Trans(z, –rm+1) p0 and using equation

[4.11], we obtain:

m 2

m 10 d6m-2 0 m+1 m+1 0Trans(z, -r )

1

PT U T p [4.13]

Equation [4.13] can be written in the general form: Rot(z, i) Trans(z, ri) Rot(x, j) Trans(x, dj)

Rot(z, j) Trans (z, rj)

f(qk)

1 =

g

1 [4.14]

where:

– the subscripts i, j and k represent the joints that do not belong to the spherical joint; i and j represent two successive joints;

– the vector f is a function of the joint variable qk;

– the vector g is a constant. By combining the parameters –qi and –qj with g and f respectively, equation [4.14] becomes:

ki j j j

(q )(z,q ) (x, ) (x,d ) (z,q ) =

1 1

F GRot/Trans Rot Trans Rot/Trans

[4.15]

Page 84: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 77

with:

• Rot/Trans(z, qi) = Rot(z, i) if qi = i

= Trans(z, ri) if qi = ri

F(qk)

1 =

Fx

Fy

Fz

1

= Rot/Trans(z, –qj)

f(qk)

1

• G

1 =

Gx

Gy

Gz

1

= Rot/Trans(z, ––qi) g

1

• Rot/Trans(z, –qi) = Trans(z, ri) if joint i is revolute

= Rot(z, i) if joint i is prismatic

The components of G are constants and those of F are functions of the joint variable qk. We note that if joint k is revolute, then:

||F||2 = a Ck + b Sk + c [4.16]

where a, b and c are constants. Table 4.3 shows the equations that are used to obtain the joint variable qk

according to the types of joints i and j (columns 1 and 2). The variables qi and qj are then computed using equation [4.15]. Table 4.4 indicates the type of the obtained equations and the maximum number of solutions for each structure; the last column of the table indicates the order in which we calculate them. In Example 4.3, we will develop the solution for the case where joints i and j are revolute. We note that the maximum number of solutions for qi, qj and qk is four.

NOTE.– The assignment of i, j and k for the joints that do not belong to the spherical joint is not unique. In order to get a simple solution for qk, this assignment can be changed using the concept of the inverse robot (presented in Appendix 2). For instance, if the spherical joint is composed of the joints 4, 5 and 6, we can take i = 1, j = 2, k = 3. But we can also take i = 3, j = 2, k = 1 by using the concept of the inverse robot. We can easily verify that the second choice is more interesting if these joints are revolute and S2 0, d2 0 but d3 = 0 or S3 = 0.

Page 85: Modeling and Control of Manipulators - Part I: Geometric

78 Modeling, identification and control of robots

Table 4.3. Solutions of qk and types of equations

Type

i j Conditions Equations for qk k rk

R R Sj = 0 Cj Fz(qk) = Gz 2 1

dj = 0 ||F||2 = ||G||2 2 9

dj 0

and Sj 0

||F||2–||G||2dj

2

2dj

2 +

Fz–CjGz

Sj

2 = Gx

2 + Gy2

11 10

R P Cj = 0 Fy(qk) = Sj Gz 2 1

Cj 0 (Fx+dj)2 +

Fy – Sj Gz

Cj

2 = Gx

2 + Gy2

11 9

P R Cj = 0 Gy = – Sj Fz(qk) 2 1

Cj 0 (Gx–dj)2 +

Gy + Sj Fz

Cj

2 = Fx

2 + Fy2

11 9

P P Fx + dj = Gx 2 1

Table 4.4. Type of equations and maximum number of solutions for qi, qj and qk

Type / Number of solutions

i j Conditions k rk qi qj Order

R R Sj = 0

dj = 0

dj 0 and Sj 0

2 / 2

2 / 2

11 / 4

1 / 1

9 / 2

10 / 4

3 / 1

3 / 1

3 / 1

2 / 2

3 / 2

3 / 1

j then i

j then i

i then j

R P Cj = 0

Cj 0

2 / 2

11 / 4

1 / 1

9 / 2

2 / 2

3 / 1

1 / 1

1 / 1

i then rj

i then rj

P R Cj = 0

Cj 0

2 / 2

11 / 4

1 / 1

9 / 2

1 / 1

1 / 1

2 / 2

3 / 1

j then ri

j then ri

P P 2 / 2 1 / 1 1 / 1 1 / 1 rj then ri

Page 86: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 79

• Example 4.3. Solving qk when joints i and j are revolute. In this case, equation [4.15] is written as:

Rot(z, i) Rot(x, j) Trans(x, dj) Rot(z, j)

F(qk)

1 =

G

1 [4.17]

Postmultiplying equation [4.17] by Rot(z, –i), we obtain:

j j j x

j j j j j y

j j j j j z

C S 0 d F

C S C C S 0 F

S S S C C 0 F

10 0 0 1

=

xi i

yi i

z

GC S 0 0

GS C 0 0

0 0 1 0 G

0 0 0 1 1

[4.18]

Expanding equation [4.18] gives: Cj Fx – Sj Fy + dj = Ci Gx + Si Gy [4.18a]

Cj Sj Fx + Cj Cj Fy – Sj Fz = – Si Gx + Ci Gy [4.18b]

Sj Sj Fx + Sj Cj Fy + Cj Fz = Gz [4.18c] Three cases are considered depending on the values of the geometric parameters

j and dj: a) Sj = 0 (thus Cj = ± 1), dj 0. Equation [4.18c] can be written as: Cj Fz(qk) = Gz [4.19] We thus deduce that:

– if qk = k, equation [4.19] is of type 2 in k;

– if qk = rk, equation [4.19] is of type 1 in rk.

Having determined qk, the components of F are considered to be known. Adding the squares of equations [4.18a] and [4.18b] eliminates i and gives a type-2 equation in j:

Fx

2 + Fy2 + dj

2 + 2 dj (Cj Fx – Sj Fy) = Gx2 + Gy

2 [4.20] After obtaining j, equations [4.18a] and [4.18b] give a system of type-3

equations in i. b) dj = 0 and Sj 0. Adding the squares of equations [4.18] gives:

Page 87: Modeling and Control of Manipulators - Part I: Geometric

80 Modeling, identification and control of robots

||F||2 = ||G||2 [4.21]

Note that ||F||2 is a function of qk whereas ||G||2 is a constant:

– if qk = k, equation [4.21] is of type 2 in k;

– if qk = rk, equation [4.21] is of type 9 in rk.

Having obtained qk and Fequation [4.18c] gives j using the type-2 equation. Finally, equations [4.18a] and [4.18b] give a system of type-3 equations in i.

c) dj 0 and Sj 0. Writing equation [4.17] in the form:

F(qk)

1 = Rot(z, –j) Trans(x, –dj) Rot(x, –j) Rot(z, –i)

G

1 [4.22]

after expanding, we obtain the third component as:

Fz = Sj Si Gx – Sj Ci Gy + Cj Gz [4.23a] Adding the squares of the components of equation [4.22] eliminates j:

||G||2 + dj

2 – 2 dj (Ci Gx – Si Gy) = ||F||2 [4.23b]

By eliminating i from equations [4.23], we obtain:

2j

22 2

j

|| || || || d

2d

F G +

2z j z 2 2

x yj

F C GG + G

S

[4.24]

Here, we distinguish two cases:

– if qk = k, equation [4.24] is of type 11 in k; – if qk = rk, equation [4.24] is of type 10 in rk. Knowing k, equations [4.23a] and [4.23b] give a system of type-3 equations in

i. Finally, equations [4.18a] and [4.18b] are of type 3 in j. • Example 4.4. The variables 1, 2, 3 for the Stäubli RX-90 robot can be determined with the following equations using the Pieper method:

– equation for 3: – 2D3 RL4 S3 = (Px)2 + (Py)2 + (Pz)2 – (D3)2 – (RL4)2

– equation for 2: (– RL4 S3 + D3) S2 + (RL4 C3) C2 = Pz

– equations for 1: [(– RL4 S3 + D3) C2 – RL4 C3 S2] C1 = Px

Page 88: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 81

[(– RL4 S3 + D3) C2 – RL4 C3 S2] S1 = Py

4.4.2.2. General solution of the orientation equation

The spherical joint variables m-1, m and m+1 are determined from the orientation equation, which is deduced from equation [4.2] as:

0 m-2 m+1m-2 m+1 m 1 m m 1 6( , , ) = R R R s n a [4.25]

The matrices 0Rm-2 and m+1R6 are functions of the variables that have already

been obtained. Using equation [3.3] and after rearranging, equation [4.25] becomes: m-1 m m m+1 m+1(z, ) (x, ) (z, ) (x, ) (z, )= rot rot rot rot rot S N A

[4.26] with [ ]S N A = rot(x, –m-1) m-2R0 [ ]s n a 6Rm+1

The left side of equation [4.26] is a function of the joint variables m-1, m and

m+1 whereas the right side is known. Since rot(z, ) defines a rotation about the axis z0 = [ ]0 0 1 T, then z0 is invariant with this rotation, which results in:

rot(z, ) z0 = z0 and z0T rot(z, ) = z0

T [4.27]

i) determination of m To eliminate m-1, we premultiply equation [4.26] by z0

T and postmultiply it by z0:

z0

T rot(x, m) rot(z, m) rot(x, m+1) z0 = z0T [ ]S N A z0 [4.28]

thus, we obtain:

Sm Sm+1 Cm + Cm Cm+1 = Az Equation [4.28] is of type 2 in m and gives two solutions (Appendix 1);

ii) determination of m-1 Having obtained m, let us write: [ ]S1 N1 A1 = rot(x, m) rot(z, m) rot(x, m+1) [4.29]

Page 89: Modeling and Control of Manipulators - Part I: Geometric

82 Modeling, identification and control of robots

Postmultiplying equation [4.26] by z0 and using equation [4.29] gives: rot(z, m-1) A1 = A [4.30] The first two elements of [4.30] give a type-3 system of equations in m-1;

iii) determination of m+1 By premultiplying equation [4.26] by z0

T and using equation [4.29], we obtain: [ ]S1z N1z A1z rot(z, m+1) = [ ]Sz Nz Az [4.31] This gives a type-3 system of equations in m+1. These equations yield two solutions for the spherical joint variables. Thus, the

maximum number of solutions of the IGM for a six degree-of-freedom robot with a spherical joint is eight.

4.4.3. Inverse geometric model of robots with three prismatic joints

The IGM of this class of robots is obtained by solving firstly the three revolute joint variables using the orientation equation. After this, the prismatic joint variables are obtained using the position equation. The number of solutions for the IGM of such robots is two.

4.4.3.1. Solution of the orientation equation

Let the revolute joints be denoted by i, j and k. The orientation equation can be deduced from equations [4.2] and [3.3] as:

i j k (z, ) (z, ) (z, ) rot S1 N1 A1 rot S2 N2 A2 rot S3 N3 A3

[4.32]

where the orientation matrices [ ]Si Ni Ai , for i = 1, 2, 3, are known. The solution of equation [4.32] is similar to that of § 4.4.2.2 and gives two solutions. 4.4.3.2. Solution of the position equation

Page 90: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 83

Let the prismatic joints be denoted by i', j' and k'. The revolute joint variables being determined, the position equation is written as:

i' j' k'(z, r ) 1 (z, r ) 2 (z,r )=Trans T Trans T Trans T3 [4.33]

with i=0 0 0 1

Si Ni Ai PiT

The matrices Ti, for i = 1, 2, 3, are known. The fourth column elements of the

previous equation gives a system of three linear equations in ri', rj' and rk'.

4.5. Inverse geometric model of general 6 dof robots The Raghavan-Roth method [Raghavan 90] gives the solution to the inverse

geometric problem for six degree-of-freedom robots with general geometry (the geometric parameters may have arbitrary real values). In this method, we first compute all possible solutions of one variable qi using a polynomial equation, which is called the characteristic polynomial. Then, the other variables are uniquely derived for each qi. This method is based on the dyalitic elimination technique presented in Appendix 3.

In order to illustrate this method, we consider the 6R robot and rewrite equation [4.2] as follows:

0T1 1T2

2T3 3T4 = U0 6T5 5T4 [4.34]

The left and right sides of equation [4.34] represent the transformation of frame

R4 relative to frame R0 using two distinct paths. The joint variables appearing in the elements of the previous equation are:

1 2 3 4 1 2 3 4 1 2 3 1 2 3

1 2 3 4 1 2 3 4 1 2 3 1 2 3

1 2 3 4 1 2 3 4 1 2 3 1 2 3

, , , , , , , , , ,

, , , , , , , , , ,

, , , , , , , , , ,

0 0 0 1

=

5 6 5 6 5 6 5 6

5 6 5 6 5 6 5 6

5 6 5 6 5 6 5 6

, , , ,

, , , ,

, , , ,

0 0 0 1

Page 91: Modeling and Control of Manipulators - Part I: Geometric

84 Modeling, identification and control of robots

From this equation, we observe that the third and fourth columns of the left side are independent of 4. This is due to the fact that the elements of the third and fourth columns of the transformation matrix i-1Ti are independent of i (see equation [3.2]). From equation [4.34], we can thus establish the following equations devoid of 4:

al = ar [4.35a] Pl = Pr [4.35b]

where the vectors a and P contain the first three elements of the third and fourth columns of equation [4.34] respectively, and the subscripts "l" and "r" indicate the left and right sides respectively. Equations [4.35] give six scalar equations.

It is now necessary to eliminate four of the five remaining variables to obtain a

polynomial equation in one variable. This requires the use of the following additional equations:

(aT P)l = (aT P)r [4.36a] (PT P)l = (PT P)r [4.36b] (axP)l = (axP)r [4.36c] [a(PT P) – 2P(aT P)]l = [a(PT P) – 2P(aT P)]r [4.36d] Equations [4.36a] and [4.36b] are scalar, whereas equations [4.36c] and [4.36d]

are vectors. They do not contain sin2(.), cos2(.) or sin(.)cos(.). We thus have fourteen scalar equations that may be written in the following matrix form:

A X1 = B Y [4.37]

where:

• X1 = [ ]S2S3 S2C3 C2S3 C2C3 S2 C2 S3 C3 1 T [4.38]

• Y = [ ]S5S6 S5C6 C5S6 C5C6 S5 C5 S6 C6 T [4.39]

• A: (14x9) matrix whose elements are linear combinations of S1 and C1;

• B: (14x8) matrix whose elements are constants. To eliminate 5 and 6, we select eight scalar equations out of equation [4.37].

The system [4.37] will be partitioned as:

A1

A2 X1 =

B1

B2 Y [4.40]

where A1 X1 = B1 Y gives six equations, and A2 X1 = B2 Y represents the remaining eight equations. By eliminating Y, we obtain the following system of equations:

Page 92: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 85

D X1 = 06x1 [4.41]

where D = [A1 – B1 B2-1 A2] is a (6x9) matrix whose elements are functions of S1 and C1.

Using the half-angle transformation for the sine and cosine functions in equation

[4.41] (Ci = 1 – xi

2

1 + xi2 and Si =

2xi

1 + xi2 with xi = tan

i

2 for i = 1, 2, 3) yields the new

homogeneous system of equations: E X2 = 06x1 [4.42]

where E is a (6x9) matrix whose elements are quadratic functions of x1, and:

X2 = [ ]x22x3

2 x22x3 x2

2 x2x32 x2x3 x2 x3

2 x3 1 T [4.43]

Thus, we have a system of six equations with nine unknowns. We now eliminate x2 and x3 dyalitically (see Appendix 3). Multiplying equation [4.42] by x2, we obtain six additional equations with only three new unknowns:

E X3 = 06x1 [4.44]

with X3 = [ ]x23x3

2 x23x3 x2

3 x22x3

2 x22x3 x2

2 x2x32 x2x3 x2 T.

Combining equations [4.42] and [4.44], we obtain a system of twelve homogeneous equations:

S X = 012x1 [4.45]

where:

X = [ ]x23x3

2 x23x3 x2

3 x22x3

2 x22x3 x2

2 x2x32 x2x3 x2 x3

2 x3 1 T

[4.46]

and S is a (12x12) matrix whose elements are quadratic functions of x1 and has the following form:

S =

E 06x3

06x3 E [4.47]

Page 93: Modeling and Control of Manipulators - Part I: Geometric

86 Modeling, identification and control of robots

In order that equation [4.45] has a non-trivial solution, the determinant of the matrix S must be zero. The characteristic polynomial of equation [4.47], which gives the solution for x1, can be obtained from:

det (S) = 0 [4.48] It can be shown that this determinant, which is a polynomial of degree 24, has

(1+x12)4 as a common factor [Raghavan 90]. Thus, equation [4.48] is written as:

det (S) = f(x1) (1+x1

2)4 = 0 [4.49] The polynomial f(x1) is of degree sixteen and represents the characteristic

polynomial of the robot. The real roots of this polynomial give all the solutions for 1. For each value of 1, we can calculate the matrix S. The variables 2 and 3 are uniquely determined by solving the linear system of equation [4.45]. By substituting 1, 2 and 3 in equation [4.37] and using eight equations, we can calculate 5 and 6. Finally, we consider the following equation to calculate 4:

4T3 = 4T6 U0 0T3 [4.50]

By using the (1, 1) and (2, 1) elements, we obtain 4 using an atan2 function. The same method can also be applied to six degree-of-freedom robots having

prismatic joints. It this case, Si and Ci have to be replaced by ri2 and ri in X1 and Y

respectively, i being the prismatic joint. NOTE.– Equation [4.34] is a particular form of equation [4.2] that can be written in several other forms [Mavroidis 93], for example:

4T5

5T6 6T7

0T1 = 4T3 3T2 2T1 [4.51a]

5T6 6T7

0T1 1T2 = 5T4

4T3 3T2 [4.51b] 6T7

0T1 1T2

2T3 = 6T5 5T4

4T3 [4.51c] 0T1

1T2 2T3 3T4 = 7T6

6T5 5T4 [4.51d]

1T2 2T3 3T4

4T5 = 1T0

7T6 6T5 [4.51e]

2T3 3T4 4T5

5T6 = 2T1 1T0

7T6 [4.51f] with

7T6 = U0 and 6T7 = U0-1

The selection of the starting equation not only defines the variable of the

characteristic equation but also the degree of the corresponding polynomial. For specific values of the geometric parameters, certain columns of the matrix S become dependent and it is necessary to either change the selected variables and columns [Khalil 94b], [Murareci 97] or choose another starting equation [Mavroidis 93].

Page 94: Modeling and Control of Manipulators - Part I: Geometric

Inverse geometric model of serial robots 87

When the robot is in a singular configuration, the rows of the matrix S are linearly dependent. In this case, it is not possible to find a solution. In fact this method has proved the maximum number of solutions that can be obtained for the inverse geometric problem of serial robots, but it is difficult to use it to develop a general numerical model to treat any robot.

4.6. Conclusion In this chapter, we have presented three methods for calculating the inverse

geometric model. The Paul method is applicable to a large number of structures with particular geometrical parameters where most of the distances are zero and most of the angles are zero or /2. The Pieper method gives the solution for the six degree-of-freedom robots having three prismatic joints or three revolute joints whose axes intersect at a point. Finally, the general method provides the solution for the IGM of six degree-of-freedom robots with general geometry.

The analytical solution, as compared to the differential methods discussed in the next chapter, is useful for obtaining all the solutions of the inverse geometric model. Some of them may be eliminated because they do not satisfy the joint limits. Generally, the selected solution is left to the robot's user and depends on the task specifications: to avoid collisions between the robot and its environment; to ensure the continuity of the trajectory as required in certain tasks prohibiting configuration changes (machining, welding,...); to avoid as much as possible the singular configurations that may induce control problems (namely discontinuity of velocity), etc.

Page 95: Modeling and Control of Manipulators - Part I: Geometric

Chapter 5

Direct kinematic model of serial robots

5.1. Introduction The direct kinematic model of a robot manipulator gives the velocity of the end-

effector X in terms of the joint velocities q . It is written as:

( ) X J q q [5.1]

where J(q) denotes the (mxn) Jacobian matrix.

The same Jacobian matrix also appears in the direct differential model, which provides the differential displacement of the end-effector dX in terms of the differential variation of the joint variables dq:

= ( ) dX J q dq [5.2]

The Jacobian matrix has multiple applications in robotics [Whitney 69], [Paul

81]. The most obvious is the use of its inverse to numerically compute a solution for the inverse geometric model, i.e. to compute the joint variables q corresponding to a given location of the end-effector X (Chapter 6). The transpose of the Jacobian matrix is used in the static model to compute the necessary joint forces and torques to exert specified forces and moments on the environment. The Jacobian matrix is also used to determine the degrees of freedom of the tool, the singularities and to analyze the reachable workspace of robots [Borrel 86], [Wenger 89].

In this chapter, we will present the computation of the Jacobian matrix and expose its different applications for serial robots. The kinematic model of complex chain robots will be studied in Chapter 7.

Page 96: Modeling and Control of Manipulators - Part I: Geometric

90 Modeling, identification and control of robots

90

5.2. Computation of the Jacobian matrix from the direct geometric model

The Jacobian matrix can be obtained by differentiating the DGM, X = f(q), using

the partial derivative

f

q such that:

ij

f ( )J = ;

q

qi

j

for i = 1, …, m and j = 1, …, n [5.3]

where Jij is the (i, j) element of the Jacobian matrix J.

This method is convenient for simple robots having a reduced number of degrees

of freedom as shown in the following example. The computation of the kinematic Jacobian matrix, is more practical for a general n degree-of-freedom robot. It is presented in § 5.3.

• Example 5.1. Let us consider the three degree-of-freedom planar robot presented in Figure 5.1. Let us denote the link lengths by L1, L2 and L3.

1

y0

x2 2

L1

L2

L3

Py

Px

x1x0

x3

3

E

Figure 5.1. Example of a three degree-of-freedom planar robot

The task coordinates, defined as the position coordinates (Px, Py) of the terminal point E and the angle giving the orientation of the third link relative to frame R0, are such that:

Px = C1 L1 + C12 L2 + C123 L3 Py = S1 L1 + S12 L2 + S123 L3

Page 97: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 91

91

= 1 + 2 + 3

where C1 = cos(1), S1 = sin(1), C12 = cos(1 2), S12 = sin(1 2), C123 = cos(1 2 3) and S123 = sin(1 2 3).

The Jacobian matrix is obtained by differentiating these expressions with respect

to 1, 2 and 3:

1L1 12L2 123L3 12L2 123L3 123L3

= 1L1 12L2 123L3 12L2 123L3 123L3

1 1 1

J

S S S S S S

C C C C C C

By taking as operational coordinates the position coordinates of point O3 and the angle , the Jacobian matrix will be simplified as:

1L1 12L2 12L2 0

1L1 12L2 12L2 0

1 1 1

J

S S S

C C C

5.3. Kinematic Jacobian matrix In this section, we present a direct method to compute the Jacobian matrix of a

serial mechanism without differentiating the DGM. The Jacobian matrix obtained is called the the kinematic Jacobian matrix. It gives the kinematic screw of frame Rn in terms of the joint velocities q :

Vn = Jn q [5.4a]

Vn = n

n

v

ω

where vn and n are the linear and angular velocities of frame Rn respectively. We note that vn is the derivative of the position vector Pn with respect to time, while n is not the derivative of any orientation vector.

The kinematic Jacobian matrix also gives the relationship between the

differential translation and rotation vectors (dPn, n) of frame Rn in terms of the differential joint variables dq:

Page 98: Modeling and Control of Manipulators - Part I: Geometric

92 Modeling, identification and control of robots

92

n=

dPJ dqn

n [5.4b]

We will show in § 5.11 that the Jacobian giving the end-effector velocity X , for

any task coordinate representation, can be deduced from the kinematic Jacobian Jn.

5.3.1. Computation of the kinematic Jacobian matrix

The velocity kq of joint k produces the linear and angular velocities (vk,n and k,n respectively) at the terminal frame Rn. Two cases are considered:

– if joint k is prismatic (k = 1, Figure 5.2):

, k k k

k,

qqk n

k n

v a a

ω 0 0

[5.5]

where ak is the unit vector along the zk axis;

– if joint k is revolute (k = 0, Figure 5.3):

, k k , k ,

k,

qq

qk n k n k n

k n k k k

v a L a L

ω a a

[5.6]

where Lk,n denotes the position vector connecting Ok to On.

Thus, vk,n and k,n can be written in the following general form:

, k k k k ,k

,

( )qk n k n

k n k k

v a a L

ω a [5.7]

The linear and angular velocities of the terminal frame can be written as:

k k k k ,k

1

( )q

nn k n

kn k k

v a a L

ω a [5.8]

Writing equation [5.8] in matrix form and using equation [5.4], we deduce that:

Page 99: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 93

93

) )1 1 1 1 1,n n n n n n,n

n1 1 n n

( ... ( =

...

a a L a a LJ

a a [5.9]

Expressing the vectors of Jn with respect to frame Ri, we obtain the (6xn)

Jacobian matrix iJn such that:

Ok

On

Vk,n

zk

.qk

Rn

Figure 5.2. Case of a prismatic joint

Vk,n

zk k,n

On

Ok

Lk,n

Rn

.qk

Figure 5.3. Case of a revolute joint

iVn = i

nJ q [5.10]

Page 100: Modeling and Control of Manipulators - Part I: Geometric

94 Modeling, identification and control of robots

94

In general, we calculate vn and n in frame Rn or frame R0. The corresponding Jacobian matrix is denoted by nJn or 0Jn respectively. These matrices can also be computed using any matrix iJn, for i = 0, ..., n, thanks to the following expression:

s 3n n

3

=s

ii

si

R 0J J

0 R [5.11]

where sRi is the (3x3) orientation matrix of frame Ri relative to frame Rs.

In general, we obtain the simplest matrix iJn when i = integer (n/2). We note that the matrices iJn , for i = 0, ..., n, have the same singular positions.

5.3.2. Computation of the matrix iJn

Since the vector product ,a Lk k n can be computed by ,a Lk k n , the kth column of iJn, denoted as iJn(:,k), becomes:

i ,n

ˆ(:,k) =

a R a LJ

a

i k k

i

ik k k k k k n

k k

Since kak = [0 0 1]T and kLk,n = kPn, we obtain:

in

( P P )(:,k) =

a s nJ

a

i i i

y x

i

k kk k k n k n k

k k

[5.12]

where kPnx and kPny denote the x and y components of the vector kPn respectively.

From this expression, we obtain the kth column of nJn as:

nn

( P P )(:,k)=

a s nJ

a

n n n

y x

n

k kk k k n k n k

k k

[5.13]

The column n Jn(:,k) is computed from the elements of the matrix kTn resulting

from the DGM. In a similar way since , , , , , L L L L Lk n k i i n i n i k , thus the kth column of iJn

can be written as:

Page 101: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 95

95

( )i

n

ˆ(:,k)=

a a P PJ

a

i

i

i i ik k k k n k

k k

[5.14]

which gives for i = 0:

0

0

0 0 0( )0

n

ˆ(:,k)=

a a P PJ

ak k k k n k

k k

[5.15]

In this case, we need to compute the matrices 0Tk for k = 1, …, n.

NOTE. – To find the Jacobian EJE defining the velocity of the tool frame RE, we can either make use of equation [5.9] after replacing Lk,n by Lk,E, or compute EVE as a function of nVn, and deduce EJE. From § 2.4.3, we can see that:

EVE = ESn

nVn = ESnn

nJ q

where ESn is the (6x6) screw transformation matrix defined in equation [2.47]. Consequently, we deduce that:

nE E

E n n=J S J [5.16]

with

E n n n nn

3 n 3 n

ˆ ˆ =

E EnE E E

E E

E n

R R P R P RS

0 R 0 R

• Example 5.2. Compute the Jacobian matrix 6J6 of the Stäubli RX-90 robot. Using equation [5.13] and the matrices kT6 resulting from the DGM, we obtain:

J (1,1) = (– C6C5S4 – S6C4)(S23RL4 – C2D3) J (2,1) = (S6C5S4 – C6C4)(S23RL4 – C2D3) J (3,1) = S5S4(S23RL4 – C2D3) J (4,1) = (C6C5C4 – S6S4)S23 + C6S5C23 J (5,1) = (– S6C5C4 – C6S4)S23 – S6S5C23 J (6,1) = – S5C4S23 + C5C23 J (1,2) = (– C6C5C4 + S6S4)(RL4 – S3D3) + C6S5C3D3 J (2,2) = (S6C5C4 + C6S4)(RL4 – S3D3) – S6S5C3D3 J (3,2) = S5C4(RL4 – S3D3) + C5C3D3 J (4,2) = – C6C5S4 – S6C4 J (5,2) = S6C5S4 – C6C4 J (6,2) = S5S4 J (1,3) = (– C6C5C4 + S6S4)RL4 J (2,3) = (S6C5C4 + C6S4)RL4 J (3,3) = S5C4RL4 J (4,3) = – C6C5S4 – S6C4

Page 102: Modeling and Control of Manipulators - Part I: Geometric

96 Modeling, identification and control of robots

96

J (5,3) = S6C5S4 – C6C4 J (6,3) = S5S4 J (1,4) = 0 J (2,4) = 0 J (3,4) = 0 J (4,4) = C6S5 J (5,4) = – S6S5 J (6,4) = C5 J (1,5) = 0 J (2,5) = 0 J (3,5) = 0 J (4,5) = – S6 J (5,5) = – C6 J (6,5) = 0 J (1,6) = 0 J (2,6) = 0 J (3,6) = 0 J (4,6) = 0 J (5,6) = 0 J (6,6) = 1

• Example 5.3. Determine the Jacobian matrix 3J6 of the Stäubli RX-90 robot. The column k of the matrix 3J6 for a revolute joint is obtained from equation [5.12] as:

3 3

3

3 6 66

P P(:,k)=

s nJ

a

k ky k x k

k

The elements kP6y and kP6x are obtained from the DGM. The vectors 3sk, 3nk

and 3ak, for k = 2, 3, 4 and 6, are deduced from the matrices 3R2, 3R3, 3R4 and 3R6, which are also computed for the DGM. The additional matrices to be computed are 3R1 and 3R5. Finally, we obtain:

36

0 RL4 3D3 RL4 0 0 0

0 3D3 0 0 0 0

23RL4 2D3 0 0 0 0 0 =

23 0 0 0 4 5 4

23 0 0 1 0 5

0 1 1 0 4 5 4

J

S

C

S C

S S S C

C C

C S S

Page 103: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 97

97

5.4. Decomposition of the Jacobian matrix into three matrices We have shown in equation [5.11] that the matrix sJn could be decomposed into

two matrices; the first is always of full-rank and the second contains simple elements. Renaud [Renaud 80b] has shown that the Jacobian matrix could also be decomposed into three matrices: the first two are always of full-rank and their inverse is straightforward; the third is of the same rank as sJn, but contains simpler elements.

Figure 5.4 illustrates the principle of the proposed method: the influence of the joint velocities is not calculated at the level of the terminal frame Rn but at the level of an intermediate frame Rj. Therefore, we define the Jacobian matrix Jn,j as:

) ( )1 1 1 1 1, ,

n,j

1 1

( ...=

...

a a L a a LJ

a a

j n n n n n j

n n

[5.17]

The matrix Jn,j is equivalent to the Jacobian matrix defining the velocity of a

frame fixed to link n and aligned instantaneously with frame Rj. We can compute Jn from Jn,j

using the expression:

3 ,n n,j

3 3

ˆ=

I LJ J

0 Ij n [5.18]

By projecting the elements of this equation into frame Ri, we obtain:

i i3 ,n n,j

3 3

ˆ=

I LJ J

0 I

ij n

[5.19]

with:

i i jj,n j n = L R P [5.20]

The kth column of iJn,j, deduced from equation [5.17], is expressed in frame Ri

as:

in,j

( P P )(:,k) =

a s nJ

a

i i i

y x

i

k kk k k j k j k

k k

[5.21]

Page 104: Modeling and Control of Manipulators - Part I: Geometric

98 Modeling, identification and control of robots

98

We note that iJn = iJn,n. Thus, the matrix sJn can be expressed by the

multiplication of the following three matrices where the first two are of full-rank:

i 3s i3 j,nn n,j

3 i 3 3

ˆ=

R 0 I LJ J

0 R 0 I

s i

s [5.22]

In general, the shift frame Rj and the projection frame Ri leading to a simple

matrix iJn,j are chosen such that i = integer (n/2) and j = i + 1. Thus, for a six degree-of-freedom robot, the simplest Jacobian matrix is 3J6,4. If

the robot has a spherical wrist, the vector L4,6 is zero and consequently 3J6,4 = 3J6.

Oj

k

Vk,j

k

k,j

L1,n

L3,n

On

L1,j Ln,j

k

k,n

k

Vk,n

a) general method

b) Renaud method

Figure 5.4. Principle of Renaud method

5.5. Efficient computation of the end-effector velocity Having calculated Jn, the linear and angular velocities vn and n of frame Rn can

be obtained from equation [5.4a]. However, in order to reduce the computational

Page 105: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 99

99

cost, it is more efficient, as we will see in Chapter 9, to use the following recursive equations for j = 1, ..., n:

j 1 j 1 j 1

j 1 j 1 j 1

j j 1 j 1 j 1 j

j j j 1

j j j 1

jj j j 1 j 1 j 1 )( x j j jq

ω R ω

ω R ω

v R v ω P a

[5.23]

where jaj is the unit vector [0 0 1]T. We initialize the algorithm by the linear and angular velocities of the robot base (v0 and 0 respectively), which are zero if the base is fixed. 5.6. Dimension of the task space of a robot

At a given joint configuration q, the rank r of the Jacobian matrix iJn – hereafter

written as J to simplify the notation – corresponds to the number of degrees of freedom of the end-effector. It defines the dimension of the accessible task space at this configuration. The number of degrees of freedom of the task space of a robot, M, is equal to the maximum rank, rmax, which the Jacobian matrix can have at all possible configurations. Noting the number of degrees of freedom of the robot as N (equal to n for serial robots), the following cases are considered [Gorla 84]:

– if N = M, the robot is non-redundant and has just the number of joints required to provide M degrees of freedom to the end-effector;

– if N > M, the robot is redundant of order (N – M). It has more joints than required to provide M degrees of freedom to the end-effector;

– if r < M, the Jacobian matrix is rank deficient. The robot is at a singular configuration of order (M – r). At this configuration, the robot cannot generate end-effector velocity along some directions of the task space, which are known as degenerate directions. When the matrix J is square, the singularities are obtained by the zeros of det(J) = 0, where det(J) indicates the determinant of the Jacobian matrix of the robot. They correspond to the zeros of det(J JT) = 0 for redundant robots.

• Example 5.4. Computation of the singularities of the Stäubli RX-90 robot. Noting that the Jacobian matrix 3J6 (obtained in Example 5.3) has the following particular form:

336 =

A 0J

B C

Page 106: Modeling and Control of Manipulators - Part I: Geometric

100 Modeling, identification and control of robots

100

we obtain det (3J6) = det (A) det (C) = – C3 D3 RL4 S5 (S23 RL4 – C2 D3). The maximum rank is rmax = 6. The robot is not redundant because it has six

degrees of freedom. However, this rank drops to five in the following three singular configurations:

C3 0

S23RL4-C2D3 0

S5 0

– when C3 = 0, the robot is fully extended (Figure 4.2c) or fully folded. In this case, the origin O6 is located on the boundary of its workspace: this elbow singularity has not been deduced from the inverse geometric model (§ 4.3.2, Example 4.1). In this configuration, where the second row of 3J6 is zero, the robot cannot generate linear velocity for O6 along the direction O6O2;

– the singularity S23 RL4 – C2 D3 = 0 (Figure 4.2a), already deduced from the inverse geometric model, corresponds to a configuration in which O6 is located on the z0 axis (shoulder singularity). In this configuration, where Px = Py = 0, the third row of 3J6 is zero. The robot cannot generate velocity for O6 along the normal to the plane containing the points O2, O3 and O6;

– for S5 = 0 (Figure 4.2b), the axes of the joints 4 and 6 are aligned, resulting in the loss of one degree of freedom of the robot. We notice that the columns 4 and 6 of 3J6 are identical. In this singular configuration (wrist singularity) the degenerate direction depends on the values of the other joints, it can be determined using the singular values decomposition (section 5.8.1). This wrist singularity has already been deduced from the inverse geometric model.

5.7. Analysis of the robot workspace The analysis of the workspace is very important for the design, selection and

programming of robots.

5.7.1. Workspace

Let q = [q1, …, qn] be an element of the joint space and let X = [x1, …, xm] be the corresponding element in the task space, such that:

X = f(q) [5.24]

Page 107: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 101

101

The joint domain Q is defined as the set of all reachable configurations taking into account the joint limits:

Q = q | qimin qi qimax, i = 1, …, n [5.25] The image of Q by the direct geometric model defines the workspace W of the

robot: W = f(Q) [5.26] Thus, the workspace W is the set of positions and orientations reachable by the

robot end-effector. Its geometry depends on the robot architecture. Its boundaries are defined by the singularities and the joint limits. However, when there is an obstacle in the robot workspace, additional boundaries limiting the reachable zones will appear [Wenger 89].

For robots with two joints, the workspace is easy to obtain and can be visualized in a plane. For a three degree-of-freedom positioning shoulder, the workspace can be represented by a generic planar cross section of W. This cross section contains the axis of the first joint if it is revolute, whereas it is perpendicular to the axis of the first joint if it is prismatic. The whole workspace is obtained from the generic cross section by rotating it about (or translating it along) the first joint axis. However, if there are obstacles or joint limits, the generic planar section is not sufficient for a complete analysis of the workspace.

In general, the workspace is a 6-dimensional space, which is difficult to handle. However, we can study its projection in the 3-dimensional position space.

5.7.2. Singularity branches

The singularity branches are the connected components of the set of singular configurations of Q. Since the singularities are always independent of the first joint, we can represent them in the joint space excluding the first joint. They are represented by surfaces of Q. However, for some particular cases, they can be reduced to subspaces of fewer dimensions (curves or points for example), which do not have a boundary in Q.

For the two degree-of-freedom planar robot with revolute joints shown in Figure 5.5, the determinant of the Jacobian matrix is equal to L1 L2 S2. The singularity branches, assuming unlimited joint ranges, are defined by the lines 2 = 0 and 2 = ± (Figure 5.6). The corresponding workspace is presented in Figure 5.7.

Page 108: Modeling and Control of Manipulators - Part I: Geometric

102 Modeling, identification and control of robots

102

P

1

y0

x2 2

L1

L2Py

Px

x1x0

Figure 5.5. Two degree-of-freedom planar robot

For the Stäubli RX-90 robot, the joint space is partitioned by three singularity surfaces C3 = 0, S23 RL4 – C2 D3 = 0 and S5 = 0. Figure 5.8 shows these surfaces in the (2, 3, 5) space and in the (2, 3) plane.

1

2 S2 = 0

––

2 > 0

2 < 0

Figure 5.6. Singularity branches of the planar robot with unlimited joints

L1+L2

L1–L2

x0

y0S2 = 0

Figure 5.7. Workspace of the planar robot with unlimited joints (L1>L2)

Page 109: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 103

103

Page 110: Modeling and Control of Manipulators - Part I: Geometric

104 Modeling, identification and control of robots

104

5.7.3. Jacobian surfaces

Mapping the singularities into the workspace generally leads to surfaces (or subspaces with fewer dimensions) called Jacobian surfaces. These surfaces divide W into regions where the number of solutions of the IGM is constant and even [Roth 76], [Kholi 85], [Burdick 88]. In the presence of joint limits, additional boundaries appear in W, which define new regions in which the number of solutions of the IGM is always constant but not necessarily even [Spanos 85]. The Jacobian surfaces can be defined as the set of points in W where the IGM has at least two identical solutions [Kholi 87], [Spanos 85]. When the robot has three identical solutions for a point of the Jacobian surface, the robot is said to be cuspidal [El Omri 96].

Page 111: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 105

105

3

2

S23 RL4 – C2 D3 = 0

5

C3=0

S5=0

3

2

C3=0

C3=0

Figure 5.8. Singularity branches of the Stäubli RX-90 robot

In the case of a three degree-of-freedom robot, if the Jacobian surfaces are

subspaces of fewer dimensions (for example a curve or a set of isolated points), the IGM for these points has an infinite number of solutions.

For the two degree-of-freedom planar robot shown in Figure 5.5, the Jacobian surfaces correspond to the singular configurations "extended arm" and "folded arm". They are represented by the circles with radii L1 + L2 and L1 – L2 respectively (Figure 5.7).

For the anthropomorphic shoulder of the Stäubli RX-90 robot, the Jacobian surfaces in the position workspace are of two types (Figure 5.9). The first is associated with the singular configurations where the point O6 lies on the axis of the first joint. Their reciprocal mapping in Q give the singularity surfaces defined by S23RL4 – C2D3 = 0. For any point of these configurations, the IGM has an infinite number of solutions since 1 can be chosen arbitrarily. The other type of Jacobian surface corresponds to the singular configuration C3 = 0, and is represented by the surfaces of the spheres whose center is O0, with radii D3 + RL4 ("extended arm" configuration) and D3 – RL4 ("folded arm" configuration) defining the external and internal boundaries of the workspace respectively. For the Stäubli RX-90 robot, the internal sphere is reduced to a point because D3 = RL4.

5.7.4. Concept of aspect

The concept of aspect has been introduced by Borrel [Borrel 86]. The aspects are the connected regions of the joint space inside which no minor of order M extracted from the Jacobian matrix J is zero, except if this minor is zero everywhere in the joint domain. For a non-redundant robot manipulator, the only minor of order M is

Page 112: Modeling and Control of Manipulators - Part I: Geometric

106 Modeling, identification and control of robots

106

the Jacobian matrix itself. Therefore, the aspects are limited by the singularity branches and the joint limits (Figures 5.6 and 5.8). Consequently, they represent the maximum singularity-free regions.

D3+RL4

x0

z0

D3 RL4

D3+RL4

D3–RL4

D3–RL4

O6

Figure 5.9. Generic section of the workspace of an anthropomorphic shoulder with unlimited joints

For a long time, it has been thought that the aspects also represent the

uniqueness domains of the IGM solutions. Although this is indeed the case for most industrial robots with simple architectures, which are classified as non-cuspidal robots [El Omri 96], the IGM of cuspidal robots can have several solutions in the same aspect. Thus, a cuspidal robot can move from one IGM solution to another without encountering a singularity. Figure 5.10 shows a cuspidal robot with three revolute joints whose successive axes are perpendicular. The inverse geometric solution of the point X (Figure 5.11a) whose coordinates are Px = 2.5, Py = 0, Pz = 0.6 is given by the following four configurations (in degrees):

q1 = 101.52 158.19 104.88 T,

q2= 50.92 46.17 141.16T

q3 = 164.56 170.02 12.89 T,

q4= 10.13 22.33 106.28 T

The joint space of this robot is divided into two aspects (Figure 5.11a). We notice that the configurations q2 and q3 are located in the same aspect whereas q1

and q4 fall in the other aspect. For cuspidal robots, the uniqueness domains of the IGM in the joint space are

separated by the characteristic surfaces [Wenger 92], which are defined as the

Page 113: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 107

107

mapping of the Jacobian surfaces in the joint space using the IGM. Figure 5.11b shows the singularities and the characteristic surfaces of the shoulder structure of Figure 5.10.

There is no general simple rule to identify the architectures of non-cuspidal robots. However, Table 5.1 gives a list of non-cuspidal shoulders as presented in [Wenger 93], [Wenger 98].

x3

z3

r2=1

d2=1 d3=2 d4=1.5

z0, z1x2

x0, x1

z2

Figure 5.10. Example of a cuspidal shoulder [Wenger 92]

Table 5.1. Non-cuspidal shoulders

PPP RPP PRP PPR RRR PRR RPR RRP

all

all

all

all

s2=0 s3=0 d2=0 d3=0

(c2=0, r2=0 and r3=0)

c2=0 s3=0 d3=0

(s2=0 and r3=0)

(s2=0

and c3=0)

c2=0

c3=0

s=0 d3+d2c=0

s2=0

c3=0 d2=0

(c2=0, s3=0 and r2=0)

d3+d4c3=0

5.7.5. t-connected subspaces

The t-connected subspaces are the regions in the workspace where any continuous trajectory can be followed by the robot end-effector. These subspaces are the mapping of the uniqueness domains into W using the DGM. For the non-cuspidal robots, the largest t-connected subspaces are the mapping of the aspects (and more generally of the free connected regions of the aspects when the environment is cluttered with obstacles [Wenger 89]). We do not present here the

Page 114: Modeling and Control of Manipulators - Part I: Geometric

108 Modeling, identification and control of robots

108

definition of the t-connected subspaces for the cuspidal robots. The interested reader can refer to [El Omri 96].

For the two degree-of-freedom planar robot shown in Figure 5.5, the straight line S2 = 0 separates the joint space domain into two aspects (Figure 5.12a) corresponding to the two solutions of the IGM, 2 > 0 and 2 < 0.

The mapping of these aspects in the workspace is identical if the joint ranges are equal to 2. Figure 5.12b shows, for certain joint limits imax and imin, the t-connected regions: the hatched and non-hatched zones represent the mapping of the aspects 2 > 0 and 2 < 0 respectively. The trajectory PP' is located in the region mapped by the aspect 2 < 0: thus it can only be realized if the initial configuration of the robot is 2 < 0. Otherwise, one of the joints reaches its limit before arriving at the final position.

X

3

2

z

Joint space Operational space (z, = x2 + y2)

Aspect 2

Aspect 1

q3

q1 q2

q4

Figure 5.11a. Aspects and workspace of the cuspidal shoulder of Figure 5.10

Page 115: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 109

109

2

3

singularities

characteristicsurfaces

Figure 5.11b. Singularity branches and characteristic surfaces of the cuspidal shoulder

1

2max

2 S2 = 0

2min1max1min

2 > 0

2 < 0

Figure 5.12a. Aspects in the presence of joint limits

Page 116: Modeling and Control of Manipulators - Part I: Geometric

110 Modeling, identification and control of robots

110

x0

P'

Px0

y0

P'

P

y0

2 > 0 2 > 0

2 < 0 2 < 0

– 23 < 2 <

2

– 3 < 1 <

3

Figure 5.12b. t-connected regions in the workspace

5.8. Velocity transmission between joint space and task space

5.8.1. Singular value decomposition

At a given configuration, the (mxn) matrix J represents a linear mapping of the joint space velocities into the task space velocities. For simplicity, we write the kinematic Jacobian matrix Jn as J. When the end-effector coordinates are independent, we have n = N and m = M.

The singular value decomposition (SVD) theory states that for any (mxn) matrix J of rank r [Lawson 74], [Dongarra 79], [Klema 80], there exist orthogonal matrices U and V of dimensions (mxm) and (nxn) respectively such that:

Page 117: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 111

111

J = U VT [5.27] The (mxn) matrix has the following form:

= ( )

( ) ( ) ( )

rxr rx n r

m r xr m r x n r

S 0

0 0 [5.28]

S is an (rxr) diagonal matrix, formed by the non-zero singular values of J, which

are arranged in decreasing order such that s1 s 2 … s r. The singular values of J are the square roots of the eigenvalues of the matrix JT J if n m (or J JT if n m). The columns of V are the eigenvectors of JT J and are called right singular vectors or input vectors of J. The columns of U are the eigenvectors of J JT and are called left singular vectors or output vectors.

Using equation [5.27], the kinematic model becomes:

X U V q T [5.29]

Since si = 0 for i > r, we can write:

Ti i i

1

s

X U V q r

i

[5.30]

From equation [5.30], we deduce that (Figure 5.13):

– the vectors V1, …, Vr form an orthonormal basis for the subspace of q generating an end-effector velocity;

– the vectors Vr+1, …, Vn form an orthonormal basis for the subspace of q giving X = 0. In other words, they define the null space of J, denoted by N(J);

– the vectors U1, …, Ur form an orthonormal basis for the set of the achievable end-effector velocities X . Hence, they define the range space of J, denoted by R(J);

– the vectors Ur+1, …, Um form an orthonormal basis for the subspace composed of the set of X that cannot be generated by the robot. In other words, they define the complement of the range space, denoted by R(J);

– the singular values represent the velocity transmission ratio from the joint space to the task space. In fact, multiplying equation [5.30] by Ui

T yields:

UiT X = s i Vi

T q for i = 1, ..., r [5.31]

Page 118: Modeling and Control of Manipulators - Part I: Geometric

112 Modeling, identification and control of robots

112

.q n

R(J)

.X = 0

Non-accessibledomain

.X m

J

N(J)

Figure 5.13. Null space and range space of J (from [Asada 86])

– since JT = V UT, we deduce that:

m = R(J) + R(J) = R(J) + N(JT)

n = R(JT) + N(J)

5.8.2. Velocity ellipsoid: velocity transmission performance

The velocity transmission performance of a mechanism can be evaluated through the kinematic model [5.1]. Let us suppose that the joint velocities are limited such that:

– q max q q max [5.32]

At a given configuration q, the task space velocity satisfying these conditions

belongs to:

X min X X max [5.33]

with:

X max = max(J(q) q ) [5.34]

X min = min(J(q) q ) [5.35]

Thus, the set of possible joint velocities (equation [5.32]) can be represented

geometrically by a hyper-parallelepiped in the joint space. Equation [5.33] can also be represented by a hyper-parallelepiped in the task space. In this section, we develop another common approach to studying the velocity transmission between the joint space and the task space using an analytical ellipsoidal representation.

Let us consider the joint velocities contained in the unit sphere of the joint velocity space, such that [Yoshikawa 84b]:

Page 119: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 113

113

q T q 1 [5.36]

We can show that the corresponding velocities in the task space are defined by

the ellipsoid:

X T (J JT)-1 X 1 [5.37] The velocity ellipsoid is a useful tool for analyzing the velocity transmission

performance of a robot at a given configuration. It is called the manipulability ellipsoid. The principal axes of the ellipsoid are given by the vectors U1, ..., Um, which are the eigenvectors of J JT. The lengths of the principal axes are determined by the singular values s 1, …, s m of J. The optimum direction to generate velocity is along the major axis where the transmission ratio is maximum. Conversely, the velocity is most accurately controlled along the minor axis. Figure 5.14 shows the velocity ellipsoid for a 2R planar mechanism.

The volume of the velocity ellipsoid of a robot gives a measurement of its capacity to generate velocity. Consequently, we define the velocity manipulability of a robot as:

w( ) = det( ( ) ( ))q J q J qT [5.38]

For a non-redundant robot, this expression becomes: w(q) = | det[J(q)] | [5.39]

.q2

.q1

A B

C D A

B

C

D

Joint space Task space

.x

U2

U1

s2

s1

.y

Figure 5.14. Velocity ellipsoid for a two degree-of-freedom planar robot

Page 120: Modeling and Control of Manipulators - Part I: Geometric

114 Modeling, identification and control of robots

114

5.9. Static model In this section, we establish the static model, which provides the joint torques

(for revolute joints) or forces (for prismatic joints) corresponding to the wrench (forces and moments) exerted by the end-effector on the environment. We also discuss the duality between the kinematic model and the static model.

5.9.1. Representation of a wrench

Let us recall (§ 2.6) that a wrench Fi is represented by the screw, which is composed of a force fi and a moment mi:

Fi =

f

mi

i

[5.40]

We assume, unless otherwise stated, that the moment is defined about the point

Oi, origin of frame Ri. Let the static wrench Fen to be exerted on the environment be defined as:

Fen =

f

men

en

= x y z x y zf f f m m m T [5.41]

The subscript n indicates that the wrench is expressed at the origin On of frame

Rn.

5.9.2. Mapping of an external wrench into joint torques

To compute the joint torques and forces e of a serial robot such that its end-effector can exert a static wrench Fen, we make use of the principle of virtual work, which states that:

Ten dq*

= F*

*

dP T n

en

n

[5.42]

where the superscript (*) indicates virtual displacements.

Substituting dP *n and *

n from equation [5.4b] gives:

Page 121: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 115

115

e = J Tn Fen [5.43]

We can use either the Jacobian matrix nJn or 0Jn depending on whether the

wrench Fen is referred to frame Rn or frame R0 respectively.

5.9.3. Velocity-force duality

The Jacobian matrix appearing in the static model (equation [5.43]) is the same as that used in the differential or kinematic model. By analogy with the velocity transmission analysis (§ 5.8.1), we deduce the following results (Figure 5.15) [Asada 86]:

– the torques of the actuators are uniquely determined for an arbitrary wrench f; the range space of JT, denoted as R(JT), is the set of balancing the static wrench f according to equation [5.43];

– for a zero , the corresponding static wrench can be non-zero; we thus define the null space of JT, N(JT), as the set of static wrenches that do not require actuator torques in order to be balanced. In this case, the endpoint wrench is borne by the structure of the robot. Note that the null space of JT, N(JT), which is the orthogonal complement of R(J), also represents the set of directions along which the robot cannot generate velocity;

– some joint torques cannot be compensated by f. These torques correspond to the vectors of the null space N(J), orthogonal complement of the space

R(JT). The basis of these spaces can be defined using the columns of the matrices U

and V of the singular value decomposition of J as indicated for the velocity case (§ 5.8.1).

Analogously, we can study the force transmission performance using a force manipulability ellipsoid, which corresponds to the set of achievable wrench in the task space m corresponding to the constraint T 1. Thus, the force ellipsoid is defined by FT J JT F 1. Consequently, we can deduce that the velocity ellipsoid (equation [5.37]) and the force ellipsoid have the same principal axes but the axis lengths are reciprocal (Figure 5.16). This means that the optimum direction for generating velocity is the optimum direction for controlling force. Similarly, the optimal direction for exerting force is also the optimum direction for controlling velocity.

From the control point of view, this behavior makes sense: the velocity is controlled most accurately in the direction where the robot can resist large force

Page 122: Modeling and Control of Manipulators - Part I: Geometric

116 Modeling, identification and control of robots

116

disturbances, and force is most accurately controlled in the direction where the robot can rapidly adapt its motion.

ffen m

e = 0

e n

Non-accessibledomain

JT

.q n

.X = 0

Non-accessibledomain

.X m

J R(J)

N(J)

R(JT)

N(JT)

Figure 5.15. Velocity-force duality (from [Asada 86])

U2

s1

1

s2

1

U1

.y

.x fx

fy

U2

U1

s2

s1

Figure 5.16. Velocity and force ellipsoids

Page 123: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 117

117

5.10. Second order kinematic model The second order kinematic model allows us to compute the acceleration of the

end-effector in terms of positions, velocities and accelerations of the joints. By differentiating equation [5.1] with respect to time, we obtain the following expression:

..X = J

..q +

.J

.q [5.44]

where:

.J (q,

.q) =

ddt J(q) [5.45]

Using the kinematic Jacobian matrix, the second order kinematic model can be

written as:

nn

n

vV

ω

= Jn ..q +

.Jn

.q [5.46]

However, it is most efficient from the computational cost point of view to obtain

nv and n n from the following recursive equations, for j = 1, ..., n, which will be developed in Chapter 9:

j. j = jRj-1 j-1. j-1 + –j (

..qj

jaj + jj-1x.qj

jaj)

jUj = j.

j + jj jj

jv.j = jRj-1 (j-1v

.j-1 + j-1Uj-1

j-1Pj) + j (..qj

jaj + 2jj-1x.qj

jaj)

[5.47]

The angular velocities jj-1 and jj are calculated using equation [5.23]. In certain applications, such as the control in the task space (§ 14.4.3), we need

to compute the vector J q . Instead of taking the derivative of J with respect to time and multiplying by q , it is more efficient to make use of the recursive equations [5.47] with q equal to zero in order to leave out the terms involving q [Khalil 87a].

Page 124: Modeling and Control of Manipulators - Part I: Geometric

118 Modeling, identification and control of robots

118

5.11. Kinematic model associated with the task coordinates representation

Let =

XX

Xp

r

be any representation of the location of frame Rn relative to

frame R0, where Xp and Xr denote the position and orientation vectors respectively.

The relationships between the velocities .X p and

.X r and the velocities 0vn and

0nof frame Rn are given as:

.Xp = p

0vn

.Xr = r

0n

[5.48]

Similar relations can be derived to express the differential vectors dXp and dXr

as functions of the vectors 0dPn and 0n:

dX dP

dXp p n

r r n [5.49]

In matrix form, equation [5.48] becomes:

.

Xp

.Xr

= n

n

3

3 r

0p

0

V0

0

= n

n

0

0

V

[5.50]

Using equation [5.4a], we deduce that:

.

Xp

.Xr

= 0Jn q = Jx q [5.51]

with:

Jx = 0Jn [5.52] The matrix p is equal to I3 when the position of frame Rn is described by the

Cartesian coordinates.

Page 125: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 119

119

In this section, we show how to calculate r and r-1 for different orientation

representations. These expressions are necessary for establishing the kinematic model corresponding to the representation at hand. When the orientation description is not redundant, the inverse of can be written as:

-1 =

3 31

3

I 0

0 r

[5.53]

If the description of the orientation is redundant, which is the case with the

direction cosines and the quaternions (Euler parameters), the matrices r, and consequently , are rectangular. We then use the so-called left inverse, which is a particular case of the pseudoinverse (Appendix 4). The left inverse is defined by:

=

3 3

3

I 0

0 r

[5.54]

with:

1

6

( )T T

I

[5.55]

Such a matrix exists if is of rank 6, which means that r is of rank 3.

5.11.1. Direction cosines

The velocity of the vectors s, n, a are given by:

0.sn = 0n x 0sn

0 .nn = 0n x 0nn

0 .an = 0n x 0an

[5.56]

Using the vector product operator defined in [2.32], equations [5.56] can be written in the following matrix form [Khatib 80]:

Page 126: Modeling and Control of Manipulators - Part I: Geometric

120 Modeling, identification and control of robots

120

.X r =

0.sn

0 .nn

0 .an

=

– 0 sn

– 0nn

– 0an

0n = CD 0n [5.57]

where CD is a (9x3) matrix. To calculate CD , we use the fact that:

T

CD CD = 2 I3

[5.58]

Using equation [5.55] and taking into account that the matrices 0 sn , 0 nn ,

0 an are skew-symmetric, we obtain:

CD =

1

2 T

CD = 0 0 01ˆ ˆ ˆ

2 s n an n n [5.59]

Note: The following relations can be deduced from [5.56]: 0 0 0

n n nˆ = R R 0 0 n 0

n n nˆ 0 T0 nR R R R

n n 0 0n n nˆ 0 T

0 nR R R R

5.11.2. Euler angles

We deduce from § 3.6.1 that is the rotation angle about z0 = 0 0 1T

, is the rotation angle about the current x axis (after applying rot(z, )) whose unit vector with respect to R0 is 0

TC S , and is the rotation angle about the

current z axis (after applying rot(z, ) rot(x, )) whose unit vector components with respect to R0 are S S C S C T. Thus, the angular velocity of frame Rn relative to frame R0 is given by:

0n =

0

01

. +

C

S0

.+

SS–CS

C .

thus:

Page 127: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 121

121

0n =

0 C SS

0 S –CS

1 0 C

...

[5.61]

which we identify with:

0n = -1Eul

.Xr = -1

Eul

...

[5.62]

By taking the inverse of 1

Eul , we obtain:

Eul =

–S cotg C cotg 1

C S 0

S/S –C/S 0

[5.63]

Eul is singular when S= 0, as already obtained in § 3.6.1.

5.11.3. Roll-Pitch-Yaw angles

Similarly, we can write:

0n =

0 –S CC

0 C SC

1 0 –S

...

= -1RPY

...

[5.64]

from which we obtain:

RPY =

C tg S tg 1

– S C 0

C/C S/C 0

[5.65]

This matrix is singular when C = 0, as already obtained in § 3.6.2.

Page 128: Modeling and Control of Manipulators - Part I: Geometric

122 Modeling, identification and control of robots

122

5.11.4. Quaternions

Differentiating equation [3.34] with respect to time and equating the diagonal elements with those of equation [5.56] leads to the following equation:

2(Q1

.Q1 + Q2

.Q2) = (Q2Q4 – Q1Q3)y – (Q2Q3 + Q1Q4)z

2(Q1.Q1 + Q3

.Q3) = (Q2Q3 – Q1Q4)z – (Q3Q4 + Q1Q2)x

2(Q1.Q1 + Q4

.Q4) = (Q3Q4 – Q1Q2)x – (Q2Q4 + Q1Q3)y

[5.66]

By differentiating equation [3.31] with respect to time, we obtain:

Q1 .Q1 + Q2

.Q2 + Q3

.Q3 + Q4

.Q4 = 0 [5.67]

From equations [5.66] and [5.67], we deduce that: .X r =

.Q = [

.Q1

.Q2

.Q3

.Q4]T = Q

0n [5.68]

with:

Q = 12

–Q2 –Q3 –Q4

Q1 Q4 –Q3

–Q4 Q1 Q2

Q3 –Q2 Q1

[5.69]

To obtain the inverse relationship, we use the left inverse. While taking into

account that TQ Q =

1

4, we obtain:

Q = 4

TQ [5.70]

We note that, since the integration of the angular velocity 0n does not yield an orientation representation, equation [5.69] can be used to obtain

.Q whose

integration gives the orientation by the Quaternion representation.

5.12. Conclusion In this chapter, we have shown how to obtain the kinematic model of a robot

manipulator using the kinematic Jacobian matrix. This model allows us to compute the linear and angular velocities of the end-effector in terms of the joint velocities.

Page 129: Modeling and Control of Manipulators - Part I: Geometric

Direct kinematic model of serial robots 123

123

The Jacobian matrix can be decomposed into two or three matrices containing simpler terms.

Then, we have shown how to use the Jacobian matrix to analyze the workspace and the velocity space of a robot. We have also demonstrated how to use the Jacobian matrix to obtain the static model and we have highlighted the duality of this model with the kinematic model. Finally, the kinematic models associated with the various representations of the task coordinates have been established.

The kinematic model can also be used to find a numerical solution to the inverse geometric problem for a general robot. The necessary tool to obtain this solution is the inverse kinematic model, which is the topic of the next chapter.

Page 130: Modeling and Control of Manipulators - Part I: Geometric

Chapter 6

Inverse kinematic model of serial robots

6.1. Introduction The inverse kinematic model gives the joint velocities q for a desired end-

effector velocity X . This model is equivalent to the inverse differential model, which determines the differential variation of the joint variables dq corresponding to a given differential displacement of the end-effector coordinates dX. We obtain the inverse kinematic model by solving a system of linear equations analytically or numerically. The analytical solutions, whenever they exist, offer much lower computational complexity than the numerical solutions, but all the singular cases must be considered separately on a case by case basis [Chevallereau 87]. Thus, the computational complexity of numerical methods is compensated by its generality in handling the regular, singular and redundant cases in a unified way.

In this chapter, we present the techniques used to develop an inverse kinematic model for the regular, singular and redundant cases. The analytical solution is developed for the regular case. The numerical methods presented for the other cases are based essentially on the pseudoinverse of the Jacobian matrix. Finally, we show how to take advantage of redundancy in the inverse kinematic problem using a minimum description of tasks. We assume that the reader is familiar with the techniques of solving linear equations, which are exposed in Appendix 4.

6.2. General form of the kinematic model From equations [5.22] and [5.50], whatever the method used to describe the end-

effector coordinates, the direct kinematic model can be expressed as:

Page 131: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 125

0 ip 3 i 3 i

n,j03 r 3 i

ˆ =

3 j,n

3 3

Ω 0 R 0 I LX J q

0 Ω 0 I0 R [6.1]

or in compact form as:

0

x= X J q [6.2]

Equation [6.1] can be written as: i X n,j = iJn,j q [6.3]

with:

i X n,j = 10i

p 3i 30

3 i 3 r

ˆ

3 j,n

3 3

0R 0I LX

0 I 0 R 0

[6.4]

We find in § 5.11 the expression of the pseudoinverse r

+ for different representations of the orientation, while p

-1 = I3 if the Cartesian coordinates are used to describe the position.

Since the elements of iJn,j are simpler than those of 0Jx, equation [6.3] is more appropriate for developing an analytical solution to the inverse kinematic problem. To simplify the notation, we will use the following form for both equations [6.2] and [6.3]:

X = J q [6.5]

NOTE.– If n < 6, we cannot use the Jacobian matrix iJn,j systematically. The singularities of this matrix do not take into account the corresponding particular choice of the task coordinates [Borrel 86].

6.3. Inverse kinematic model for a regular case In this case, the Jacobian matrix J is square and of full rank. Thus, it is possible

to move the end-effector with finite velocity in any desired direction of the task space. The joint velocities can be evaluated using one of the following methods.

Page 132: Modeling and Control of Manipulators - Part I: Geometric

126 Modeling, identification and control of robots

6.3.1. First method

We compute J-1, the inverse of J, either numerically or analytically. Then, the joint velocity vector q is obtained as:

q = J-1 X [6.6]

If the matrix J has the following form:

J =

A 0

B C [6.7]

the matrices A and C being square and invertible, it is easy to show that:

J-1 = 1

1 1 1

A 0

C BA C [6.8]

Consequently, the inverse of J reduces to the inverse of two matrices of smaller

dimension. For a six degree-of-freedom robot with a spherical wrist, the general form of J is given by equation [6.7] where A and C are (3x3) matrices [Gorla 84].

6.3.2. Second method

In this method, instead of solving a linear system of n equations in n unknowns, the problem is reduced to solving two linear systems of equations of lower dimensions. In general, this technique requires less computational complexity. Let us take for example a six degree-of-freedom robot with a spherical wrist whose Jacobian matrix (see Example 5.3) can be written as:

.

Xa

.Xb

=

A 03

B C

.qa

.qb

[6.9]

A and C being (3x3) regular square matrices.

The solution .q is given by:

.

qa = A-1 .Xa

.qb = C-1 [

.Xb – B

.qa]

[6.10]

Page 133: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 127

which, a priori, is simpler than that obtained by the first method.

• Example 6.1. Calculate the inverse kinematic model of the Stäubli RX-90 robot. The Jacobian 3J6 has been computed in Example 5.3. We develop the solutions according to equations [6.8] and [6.10].

i) first method. The inverses of A and C are respectively:

A-1 =

0 0 V1

0 V3 0

–1/RL4 V2V3/RL4 0

C-1 =

V4 1 –V5

S4 0 C4

–C4/S5 0 S4/S5

with:

V1 = 1

S23RL4 – C2D3

V2 = –RL4 + S3D3

V3 = 1

C3D3

V4 = C4 cotg5 V5 = S4 cotg5 Using equation [6.8], we obtain:

3J6-1 =

0 0 V1 0 0 0

0 V3 0 0 0 0

–1/RL4 V2V3/RL4 0 0 0 0

–S4C5V7 V5V6 V8 V4 1 –V5

C4/RL4 –C4V6 –S23S4V1 S4 0 C4

S4V7 –S4V6/S5 S23C4V1/S5 –C4/S5 0 S4/S5

with:

V6 = S3

C3RL4

V7 = 1

S5RL4

V8 = (–S23V4 – C23)V1

Page 134: Modeling and Control of Manipulators - Part I: Geometric

128 Modeling, identification and control of robots

The computation of q by equation [6.8] needs 18 additions, 47 multiplications/divisions and 8 sine/cosine functions; ii) second method. We calculate successively q a and q b:

.qa =

.

q1

.q2

.q3

=

V1

.X3

V3.X2

(–.X1 + V2V3

.X2) / RL4

.Xb – B

.qa =

.

X4'

.X5'

.X6'

=

.

X4 – S23 .q1

.X5 – C23

.q1

.X6 –

.q2 –

.q3

.qb =

.

q4

.q5

.q6

= C-1

.

X4'

.X5'

.X6'

=

C4 cotg5

.X4' +

.X5' – S4 cotg5

.X6'

S4 .X4' + C4

.X6'

(–C4 .X4' + S4

.X6') / S5

This solution requires 12 additions, 22 multiplications/divisions and 8

sine/cosine functions.

6.4. Solution in the neighborhood of singularities When the robot is non-redundant, the singular configurations are the roots of

det(J) = 0. In the redundant case, they are given by the roots of det(JJT) = 0. Thus, singularities are identified by the rank deficiency of the matrix J, which physically represents the inability of the robot to generate an arbitrary velocity in the task space. The neighborhood of a singular position is more precisely detected by using the singular values. In fact, the decrease of one or several singular values is generally more significant to indicate the vicinity of a singular configuration than that of examining the value of the determinant. In the neighborhood of these configurations, the use of the classical inverse of the Jacobian matrix will give excessive joint velocities. Since such high velocities are physically unrealizable, we cannot obtain an accurate motion.

Page 135: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 129

The redundancy can be exploited to design robots that avoid singularities [Hollerbach 84b], [Luh 85a]. However, robots with revolute joints will have unavoidable singularities [Baillieul 84]. In § 6.5, we will see that redundancy may be exploited to go away from avoidable singularities [Baillieul 84]. An avoidable singularity is a singular configuration where the corresponding tool location can be reached with a different non-singular configuration.

6.4.1. Use of the pseudoinverse

The most widely proposed methods for solving the inverse kinematic problem near singularities involve the use of the pseudoinverse J+ of the matrix J (Appendix 4):

q J X [6.11]

This solution, proposed by Whitney [Whitney 69], minimizes || q ||2 and || X –J q ||2. Depending on X , the following cases are distinguished:

• .X belongs to R(J), representing the range space of J: equation [6.11] gives an exact solution with zero error even though the inverse Jacobian J-1 is not defined;

• X belongs to the subspace of the degenerated directions R(J): there are no joint velocities that can generate this velocity. In this case, the solution [6.11] gives q = 0.

• .X belongs to both R(J) and R(J): the solution [6.11] gives q , which only realizes the components belonging to R(J).

A major shortcoming of this method is that it produces discontinuous joint

velocities near singularities [Wampler 86]. This can be seen by expressing the joint velocity solution in terms of singular value decomposition (§ 5.8.1). In fact, far from singularities, the joint velocities are given by:

Ti i

1 i

1

s

q V U Xr

i

[6.12]

While approaching a singularity, smin becomes small, leading to high joint velocities. At singularity, the smallest singular value smin becomes zero, consequently, it is not taken into account any more. The summation in equation [6.12] is carried out up to m – 1, and the joint velocity q decreases significantly.

NOTE.– Both || q || and || X –J q || may contain elements with different units. However, using radians for the angles and meters for the distances gives good results for industrial robots of common size (1 to 2 meters reach).

Page 136: Modeling and Control of Manipulators - Part I: Geometric

130 Modeling, identification and control of robots

6.4.2. Use of the damped pseudoinverse

A general approach to solving the problem of discontinuity of the pseudoinverse solution at a singular configuration is to use the damped least-squares method, which is known as the Levenberg-Marquardt stabilization method [Wampler 86], [Nakamura 87]. This solution minimizes the following expression:

22 2|| - || +X Jq q [6.13]

where is a constant.

This new criterion means that the end-effector tracking error is weighted against the norm of joint velocity by using the factor , also known as the damping factor. This solution is typically obtained as the least-squares solution of the following system:

n 1

n

J Xq

I 0

[6.14]

The left hand side matrix is of dimension (mxn) and rank r, using the pseudo inverse formula leads to as:

T 2 -1 T

d n =[ + ]q J J I J X [6.15]

Using svd of J

T T T 2 T 2 2 Td n n ( ) q VSU US V I J X S I VSU X [6.16]

After developing, the solution is written as:

nTi

d i i2 2i 1 i

s

s

q V U X [6.17]

If si >> , then si

si2+2

1 si

. If si << , then si

si2+2

si

2.

The error due to the damping factor in the joint coordinates is expressed as:

Page 137: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 131

nTi

q d i i2 2i 1 i i

2nT

i i2 2)i 1 i i

s1 = ( )

s s

s (s

e q q V U X

V U X

[6.18]

The error in

.X is obtained as:

.ex = J .

eq = i=1

m

2

si2+2 UiUi

T .X [6.19]

The damping factor limits the norm of the solution. However, at positions far

away from singularities, no damping is needed. Thus, a trade-off must be found between the precision of the solution and the possibility of its realization.

Wampler [Wampler 86] proposes to use a fixed damping factor = 0.003, while Nakamura [Nakamura 86] suggests the computation of the damping factor as a function of the manipulability w (equation [5.38]) as follows:

0 (1 –

ww0

) 2 if w < w0

0 if w ¥ w0

[6.20]

where 0 is a positive constant and w0 is a threshold, which defines the boundary of the neighborhood of singular points.

A more appropriate solution can be obtained by adjusting the value of as a

function of the smallest singular value smin, which is the exact measure of the neighborhood of a singular position. Maciejewski and Klein [Maciejewski 88] propose to compute the damping factor as follows:

2 – smin

2 if smin § 0 if smin

[6.21]

where is a constant.

In [Maciejewski 88], we find an efficient method to estimate smin. In the

damping least-squares method, the robot can stay blocked in a singular configuration if the desired velocity is along the degenerated directions, i.e. when (equations [5.30] and [5.31]):

Page 138: Modeling and Control of Manipulators - Part I: Geometric

132 Modeling, identification and control of robots

.X =

i=r+1

m Ui(Ui

T .X) [6.22]

where r < m gives the rank of J.

6.4.3. Other approaches for controlling motion near singularities

The kinematic model, which is a first order linearization, does not give an exact solution respecting the actuator constraints in the neighborhood of singularities. Some authors [Nielsen 91], [Chevallereau 98] have used the IGM or a kinematic model of higher order to determine the joint variables corresponding to a Cartesian motion passing through a singularity. Recently, it has been shown [Lloyd 96] that the end-effector could move along any specified path using a suitable time law.

To show the efficiency of such techniques, let us consider the case of a two degree-of-freedom planar robot in the singular configuration "extended arm". Let us suppose that we want to move the terminal point towards the origin along the x-axis (Figure 6.1a) (which is a degenerated direction for the kinematic model). It is easy to deduce from the kinematic model that a constant velocity motion along this direction is not feasible. However, a motion with a constant end-effector acceleration and a zero initial velocity can be proved realizable (Figure 6.1b) by developing the IGM up to the second order [Nielsen 91] or by using the second-order kinematic model [Chevallereau 98].

boundary of theworkspace

path to travel:x(t) = 2 – ty(t) = 0

y y

a) non feasible trajectory b) feasible trajectoryl

degenerateddirection

x x

path to travel:x(t) = 2 – t2

y(t) = 0

degenerateddirection

Figure 6.1. Displacement along a degenerated direction In addition, Egeland and Spangelo [Egeland 91] showed that, in certain cases, a

non-feasible path could become realizable after carrying out a specific motion in the null space of J. This motion does not modify the end-effector coordinates but it modifies the degenerated direction. Let us illustrate this method for the two degree-of-freedom planar robot with identical link lengths. From the initial configuration "folded arm" of Figure 6.2a, it is not possible to track a trajectory along the x

Page 139: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 133

direction. However, after a /2 rotation of the first joint, which does not modify the terminal point coordinates but modifies the degenerated direction (Figure 6.2b), we can produce a velocity along the x-axis by using the kinematic model.

Before rotation

x

y After /2 rotation

x

y

a) non feasible trajectory b) feasible trajectory

degenerateddirection

degenerateddirection

Figure 6.2. Motion in the null space of J

6.5. Inverse kinematic model of redundant robots A robot manipulator is redundant when its number of degrees of freedom N is

greater than the dimension of the workspace M. The difference (N – M) represents the degree of redundancy. In this case, the inverse kinematic model gives an infinite number of solutions. Consequently, secondary performance criteria can be optimized, such as:

– minimizing the norm of the joint velocities [Whitney 69];

– avoiding obstacles [Maciejewski 85], [Baillieul 86];

– avoiding singular configurations [Yoshikawa 84a];

– avoiding joint limits [Fournier 80], [Klein 84];

– minimizing driving joint torques [Baillieul 84], [Hollerbach 85]. When the end-effector coordinates are independent, we have n = N and m = M.

For a redundant mechanism, the Jacobian J is represented by an (mxn) matrix, with n > m. In the following sections, we present several approaches to solving the inverse kinematic problem of redundant robots.

6.5.1. Extended Jacobian

In this approach, we add n – m secondary linearly independent equations to the end-effector coordinates X [Baillieul 85], [Chang 86], [Nenchev 92]. These equations can represent either physical constraints on the robot or constraints related to the environment. They are written in the following general form:

Page 140: Modeling and Control of Manipulators - Part I: Geometric

134 Modeling, identification and control of robots

Xc = h(q) [6.23] In this expression, Xc is an ((n – m) x1) vector whose elements are functions of q.

Differentiating equation [6.23] with respect to time gives: .Xc = Jh q [6.24]

where Jh = h(q)/q is the ((n – m)xn) Jacobian matrix of h(q). Combining this equation with the kinematic model, we obtain an (nxn) extended Jacobian matrix Ja and a new velocity vector

.Xa such that:

.Xa = Ja q [6.25]

with .Xa =

.

X.Xc

and Ja =

J

Jh.

If the extended Jacobian Ja is not singular, a unique solution for the joint

velocity q is obtained by inverting Ja. We can use this technique to optimize the desired objective function q) by taking h(q) such that:

hi(q) = 0 = (i)T fori = 1, ..., n – m [6.26]

where the (nx1) vectors i, for i = 1, ..., n – m, form a basis for the null space of J, and is the gradient of .

Since the calculation of the basis of the null space of the Jacobian matrix must

be carried out analytically, this method can be used only for systems with a small degree of redundancy. A solution to this problem can be found in [Klein 95].

The extended Jacobian method presents the following disadvantages:

– the choice of the (n – m) additional relationships is not a trivial matter;

– the extended Jacobian Ja may be singular even though the end-effector Jacobian is of full rank. These configurations are called artificial singularities or algorithmic singularities.

A desirable property of this method is that it yields cyclic behavior, meaning that

a closed path in the task space is always tracked by a closed path in the joint space. This is important because it allows one to judge the suitability of a trajectory after executing one cycle.

Page 141: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 135

6.5.2. Use of the pseudoinverse of the Jacobian matrix

The vast majority of research in the control of redundant robots has involved the resolution through the use of the pseudoinverse J+ of the Jacobian matrix:

q = J+ .X [6.27]

This solution minimizes ||

.q||2. Because of this minimization property, the early

hope of researchers [Whitney 69] was that singularities would automatically be avoided. It has been proved that, without modification, this approach does not avoid singularity [Baillieul 85]. Moreover, Klein and Huang [Klein 83] have pointed out that it does not produce cyclic behavior, which is a serious practical problem.

For these reasons, we generally add to the pseudoinverse solution another component belonging to the null space of the Jacobian, in order to realize the secondary objective function.

6.5.3. Weighted pseudoinverse

Since each joint has different limits and even different units, it may be interesting to weight the contribution of each joint in the objective function differently. This can be achieved by the use of the weighted pseudoinverse, which minimizes a criteria C such that:

C = q T E q [6.28]

When J is of full rank, the solution is given by:

q = JE+

.X [6.29]

with:

JE+ = E-1 JT (J E-1 JT)-1 [6.30]

Benoit et al. [Benoit 75] propose to take for E the inertia matrix of the robot

(Chapter 9) in order to minimize the kinetic energy. Konstantinov et al. [Konstantinov 81] have used the weighted pseudoinverse to avoid the joint limits.

Page 142: Modeling and Control of Manipulators - Part I: Geometric

136 Modeling, identification and control of robots

6.5.4. Pseudoinverse solution with an optimization term

One of the advantages of the pseudoinverse solution is the possibility to utilize the null space to optimize another objective function (beside that of ||

.q||2). In fact,

the general solution of the linear system [6.5] is written as (Appendix 4):

+ +n + ( - ) q J X I J J Z [6.31]

where Z is an arbitrary (nx1) vector in the

.q space.

The second term on the right belongs to the null space of J. It corresponds to a

self-motion of the joints that does not move the end-effector. This term, which is called homogeneous solution or optimization term, can be used to optimize a desired function (q). In fact, taking Z = where is the gradient of this function with respect to q, minimizes the function (q) when < 0 and maximizes it when > 0. Equation [6.31] is rewritten as:

+ +

n + ( - ) q J X I J J [6.32]

with:

= [

q1 …

qn

]T

[6.33]

The value of allows us to realize a trade-off between the minimization of ||

.q||2

and the optimization of (q). In the following sections, we present two examples of desired objective functions.

6.5.4.1. Avoiding joint limits

A practical solution to control a redundant robot is to keep the joint variables away from their limits qmax and qmin. Let:

moy max min1

= ( )2

q q q [6.34]

where qmoy is the mean value of the joint positions, and:

max min = q q q [6.35]

Page 143: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 137

A possible scalar function, whose minimization generates a motion away from the joint limits, can be expressed in the following quadratic form [Fournier 80]:

moy

2n i i

ii 1

q q( ) =

q

q [6.36]

The division by qi allows us to weight the contribution of each joint in (q)

such that it varies between 0 and 1. The ith element of the vector Z is written as (with < 0):

moyi ii 2

i i

2 (q q )( )Z =

q q

q [6.37]

NOTE.– If the mean position of a joint corresponds to a singular configuration, it is recommended to replace the corresponding value of qimoy by another value.

About the criterion [6.36], Klein [Klein 84] pointed out that the quadratic form, used generally to solve optimization problems, does not always give the best solution to the desired objectives. To avoid joint limits in particular, the following form is more suitable:

= max |qi – qimoy|

|qi| for i = 1, …, n [6.38]

Introducing this criterion in equation [6.32] is however not as easy as the quadratic criterion. A solution consists of approximating the criterion [6.38] by a p-norm function defined as [Klein 83]:

||q – qmoy ||p = [ i=1

n |qi – qimoy|p]1/p [6.39]

When p tends towards infinity, the corresponding p-norm meets the criterion

[6.38]. However, sufficient approximation can be achieved by taking p = 6. 6.5.4.2. Increasing the manipulability

In § 5.8.2, we showed that the manipulability w(q) of a robot manipulator (equation [5.38]) could be used as a measure of the ability of the mechanism to move its end-effector. At a singular point, w is minimum and is zero. In order to

Page 144: Modeling and Control of Manipulators - Part I: Geometric

138 Modeling, identification and control of robots

improve the manipulability of a structure, we can choose to maximize a scalar function such that:

(q) = det [J(q) JT(q)] [6.40] We calculate Z as indicated previously with > 0. Maximizing moves the

robot away from the singular configurations.

NOTE.- Certain singular configurations are unavoidable [Baillieul 84]. This is the case if there is no other configuration that can yield the same end-effector location. For the three degree-of-freedom planar robot of Example 6.1, the unavoidable singularities correspond to the configurations where it is fully stretched out or folded up (Figure 6.3). The other singularities are avoidable and the robot can find other configurations to achieve them (Figure 6.4).

Figure 6.3. Unavoidable singularities of a three degree-of-freedom planar robot

x x

Figure 6.4. Avoidable singularities of a three degree-of-freedom planar robot

6.5.5. Task-priority concept

To solve the inverse kinematic model of redundant robots, Nakamura [Nakamura 87] introduced the concept of task priority, where a required task is

Page 145: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 139

divided into a primary task X1 of higher priority and a secondary task X2 of lower priority. These tasks are described by the following relationships:

X1 = f1(q) [6.41] X2 = f2(q) [6.42] Let m1 and m2 be the dimensions of X1 and X2 respectively. Differentiating

equations [6.41] and [6.42] with respect to time gives:

X.

1 = J1 q. [6.43]

X.

2 = J2 q. [6.44]

where Ji = fi(q)/q is the (mixn) Jacobian matrix of the task Xi. Using the pseudoinverse, the general solution of the two tasks can be obtained by : q

.= J1

+ X.

1+ (In – J1+ J1) J2

+ X.

2 In this equation the first term realizes the first task, whereas the second term is the projection of the second task on the null space of the first task. This method is not applicable to more than two tasks. In the following we present a recursive solution for a task which is composed of any number of subtasks Nakamura [], Mansard[]. Iteration number 1 is the solution of the first task using the pseudo of equation [6.43], it is given by: q. 1 = J1

+ X.

1 where the exponent of q

. denotes the iteration number.

The second task will be obtained through a joint velocity Z1 projected on the null space of the first task, such that:

q. 2 = J1

+ X.

1 + (In – J1+ J1) Z1 [6.45]

Substituting equation [6.45] into equation [6.44], we obtain Z1 in terms of X

.2:

J2 (In – J1+ J1) Z1 + J2 J1

+ X.

1 = X.

2 [6.46] From this equation, the vector Z1 can be determined in terms of X

.2 by using the

pseudoinverse:

Page 146: Modeling and Control of Manipulators - Part I: Geometric

140 Modeling, identification and control of robots

Z1 = (J2P1)+ [X.

2 – J2 J1+ X

.1] [6.47]

where P1 = (In – J1

+ J1), and (J2P1) is an (m2xn) matrix. The joint velocity q

. of the robot is obtained from equations [6.45] and [6.47]:

q. 2 = J1

+ X.

1 + P1(J2P1)+[X.

2– J2 J1+ X

.1]) [6.48]

Since P P=P and PT = P, thus P+ = P, P P+ = P+ the previous relation can be

simplified as:

q. 2 = J1

+ X.

1 + (J2P1)+ [X.

2– J2 J1+ X

.1]

q. 2 = J1

+ X.

1 + (J2P1)+ [X.

2– J2 J1+ X

.1] [6.48]

In case of a third task, the corresponding Z2, will be obtained in terms of X

.3 by

solving the equation of the third task: q. 3 = J1

+ X.

1 + (J2P1)+ [X.

2– J2 J1+ X

.1]+ P2 Z2 = q

. 2 + P2 Z2 Giving J3 q

. 3 = J3 (q. 2 + P2 Z2)= X

.3

Thus Z2 = (J3P2)+ [X

.3 – J3 q

. 2 ] q. 3 = q

. 2 + P2(J3P2)+ [X.

3 – J3 q. 2 ] = q

. 2 + (J3P2)+ [X.

3 – J3 q. 2]

This recursive relation can be generalized for arbitrary number of tasks.

The interpretation of this method is illustrated in Figure 6.5. At each iteration i the next task is realized thanks to Zi-1 which is projected on the null space of the augmented matrix of all the previous tasks.

Page 147: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 141

J2

J1.q n

R(J1)

.X1 = 0

N(J1)

.X2 m2

.X1 m1

.X2 = 0

R(J2)

N(J2)

Figure 6.5. Null space and range space of tasks X1 and X2 (from [Nakamura 87])

6.6. Numerical calculation of the inverse geometric problem When it is not possible to find a closed-form solution to the inverse geometric

problem, we can use the differential model to compute an iterative numerical solution. Two numerical methods can be used to obtain the joint positions qd corresponding to a desired location 0T

dn of the terminal link, we proceed as follows:

First method: This problem can be solved using a nonlinear optimization algorithm to find q minimizing criterion: C= || 0T

dn - 0T

n(q)||, a solution is obtained

if the corresponding C= 0. Second method: The optimization problem is solved using iterative method

using the inverse differential method as follows:

– initialize qc by the current joint configuration or by any random value within the joint domain of the robot;

– calculate the location of the terminal frame 0Tcn corresponding to qc using the

direct geometric model;

– calculate the vectors of position error dXp and rotation error dXr, representing

the difference between the desired location 0Tdn and the current location 0T

cn.

Note that dXp = dPn = Pdn – P

cn and dXr = u , where the angle and the unit

Page 148: Modeling and Control of Manipulators - Part I: Geometric

142 Modeling, identification and control of robots

vector u are obtained by solving the equation (§ 2.3.8): 0Rdn = rot(u, ) 0R

cn,

which can be written as 0 d 0 c Tn n( ) (u, ) R R rot ;

– if the absolute values of the elements of (0Tdn– 0T

cn) are sufficiently small,

then qd = qc and stop the calculation;

– to remain in the validity domain of the differential model, which is a first order expansion, we must introduce thresholds Sp and Sr on dXp and dXr respectively such that:

- if ||dXp|| > Sp, then dXp = dXp

||dXp|| Sp

- if ||dXr|| > Sr, then dXr = dXr

||dXr|| Sr

The values 0.2 meter and 0.2 radian for these thresholds are acceptable for most of the industrial robots in view of their dimensions;

– calculate the Jacobian matrix 0Jn(qc) denoted as J;

– calculate the joint variation dq = J+ dX. An optimization term in the null

space of J can also be taken into account;

– update the current joint configuration: qc = qc + dq;

– return to the second step.

This algorithm converges rapidly and can be executed in real time. If it does not converge within a relatively large number of iterations, or to obtain another solution, we have to restart the calculation using a new random value qc; if no convergence occurs for many different values of qc, it can be stated that there is no solution.

6.7. Minimum description of tasks [Fournier 80], [Dombre 81] In current robot controllers, the desired trajectory of the end-effector is described

by a sequence of frames. However, in many industrial applications, it is not necessary to completely specify the location of the end-effector frame and the task could be described by a reduced number of coordinates. For example:

– when the manipulated object is symmetric: for a spherical object, it is not necessary to specify the orientation; likewise, the rotation of a cylindrical object about its axis can be left free;

– releasing an object into a container: if the end-effector is already above the container, only an approach distance has to be specified; the task is thus described by a translational component;

Page 149: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 143

– transferring objects from one point to another with arbitrary orientation; the task can be described by three translational components;

– placing a cylindrical object on a conveyor: the only orientation constraint is that the principal axis of the cylinder is horizontal; if the end-effector is already above the conveyor, the task could be described by two components (one vertical translation and one rotation).

When the number of components of a task is less than the number of degrees of

freedom of the robot, the robot is redundant with respect to the task. Consequently, an infinite number of solutions can be obtained to realize such tasks. This redundancy can be exploited to satisfy secondary optimization criteria (§ 6.5).

6.7.1. Principle of the description

The proposed description of task is minimal in the sense that it only constrains the degrees of freedom of the task that have a functional role. The formulation is based on the use of the contact conditions between usual surfaces (plane, cylinder, sphere) that describe usual mechanical joints (or pairing) (Table 6.1 and Figure 6.6). To these six joints, we add the composite revolute and prismatic joints, which have one degree of mobility (Figure 6.7), and the fixed rigid pairing, which has no degree of freedom.

The description of a task is realized by a sequence of virtual mechanical joints. The choice of a type of joint is dictated by the local constraints associated with the task.

Table 6.1. Simple mechanical joints

Plane Cylinder Sphere

Plane Plane contact Line contact Point contact

Cylinder Cylindrical joint Cylindrical groove joint

Sphere Spherical joint

A practical description of the mechanical joint formulation consists of specifying the task in terms of contact between two simple geometric entities (point, line, plane), one belonging to the robot, the other to the environment [Dombre 85]. A spherical joint, for example, is specified by matching two points. In the same way, the revolute and prismatic joints will be specified with two simultaneous combinations of geometric elements. The choice is not unique: a revolute joint for

Page 150: Modeling and Control of Manipulators - Part I: Geometric

144 Modeling, identification and control of robots

example can be achieved either by a line-to-line contact and a point-to-plane contact simultaneously or by a line-to-line contact and a point-to-point contact.

This geometric description is particularly convenient for graphic programming of tasks. Figure 6.8 shows the example of a peg-in-hole assembly, realized with the CAD/CAM software package CATIA [Catia] in which this formulation was implemented for robotic application. The different steps are as follows:

Page 151: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 145

Point contact Line contact

Plane contact Cylindrical groove joint

Cylindrical joint Spherical joint

Figure 6.6. Simple mechanical joints

Page 152: Modeling and Control of Manipulators - Part I: Geometric

146 Modeling, identification and control of robots

Revolute joint Prismatic joint

Figure 6.7. Revolute and prismatic joints

1) definition of a point-to-point contact (spherical joint) by selecting a point of the robot and a point of the environment (Figure 6.8a); after execution, the cylinder is positioned with an arbitrary orientation above the assembly site (Figure 6.8b);

2) definition of a line-to-line contact (cylindrical contact) by selecting a line of the robot and a line of the environment (Figure 6.8b); after execution, the axes of the hole and the peg are aligned (Figure 6.8c);

3) definition of a revolute joint by selecting a point and a line of the robot, and a point and a line of the environment (Figure 6.8c); after execution, the assembly task is completed (Figure 6.8d).

6.7.2. Differential models associated with the minimum description of tasks

To implement these types of tasks, we write the differential model of the location of frame RE in the following form:

0dPE

0E =

0Rn 03

030Rn

ndPE

nE =

0Rn 03

030Rn

I3 –nPE

03 I3

ndPn

nn

=

0Rn –0Rn

nPE

030Rn

nJn dq [6.49]

where nPE defines the origin of frame RE referred to frame Rn.

Page 153: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 147

The differential model of a virtual joint can be written as: dX = H nJn dq [6.50]

where nJn and H are (6xn) and (cx6) matrices respectively, and c indicates the number of constraint equations of the task.

We will show in the following section how to determine H for the virtual joints

[Dombre 81].

Figure 6.8. Graphic programming of an assembly task with a minimum description

6.7.2.1. Point contact (point on plane)

This joint drives a point OE of the tool on any position on a plane Q (Figure 6.9). Let N be the unit vector normal to the plane Q and let OD be an arbitrary point of Q. The necessary global displacement to realize the point contact is expressed in frame R0 by:

Page 154: Modeling and Control of Manipulators - Part I: Geometric

148 Modeling, identification and control of robots

r = 0NT [0PD – 0PE] [6.51]

where 0PD and 0PE define the coordinates of the points OD and OE in frame R0.

On

Q

R0

Rn

NOE

OD

Figure 6.9. Realization of point contact

The displacement r is realized by a sequence of elementary displacements along a single direction such that (equation [6.49]):

dX = dr = 0NT 0dPE = [ ]0NT 0Rn –0NT 0RnnPE nJn

dq

= 0NT 0Rn [ ]I3 –nPE nJn

dq [6.52]

Expression [6.52] constitutes the differential model of the point contact. The

matrix H is given by the row vector 0NT 0Rn [ ]I3 –nPE .

6.7.2.2. Line contact (line on plane)

The equations of a line contact are derived from Figure 6.10. The line UE is driven on plane Q without constraining its orientation in the plane. We can realize this joint by simultaneously carrying out a rotation and a translation [Dombre 88a]. However, it is more judicious to avoid the calculation of an angle by defining the task as driving two points OE1 and OE2 of UE on plane Q. The joint is thus equivalent to two point contact. The corresponding differential model is written as:

dX =

dr1

dr2 =

0NT 0Rn –0NT 0Rn

nPE1

0NT 0Rn –0NT 0RnnPE2

nJn dq [6.53]

Page 155: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 149

where H is a (2xn) matrix.

We can generalize this approach for the other joints where the jth row of H takes the following general form:

Hj = 0NjT 0Rn [ ]I3 –nPEj [6.54]

where 0Nj denotes the unit vector of the normal to the plane of the jth point contact, and nPEj is the vector of the coordinates of the tool point OEj with respect to frame Rn.

Q

R0

N

UE

OE1

OE2Rn

Figure 6.10. Realization of line contact

6.7.2.3. Planar contact (plane on plane)

This joint drives a plane QE attached to the tool on a plane QD of the environment, without orientation or position constraints (Figure 6.11). We select three non-aligned points OE1, OE2 and OE3 in QE, then we carry out three simultaneous point contacts.

6.7.2.4. Cylindrical groove joint (point on line)

The cylindrical groove joint drives a point OE of the tool on a line UD of the environment. This is done by simultaneously realizing two point contacts of OE on two arbitrary orthogonal planes QD1 and QD2 whose intersection is the line UD (Figure 6.12).

Page 156: Modeling and Control of Manipulators - Part I: Geometric

150 Modeling, identification and control of robots

NE

R0

Rn

ND

QE

QD

OE1OE3

OE2

Figure 6.11. Realization of a plane contact

6.7.2.5. Cylindrical joint (line on line)

The task consists of aligning two lines UE and UD without position or orientation constraints along and about these lines (Figure 6.12). We define two arbitrary orthogonal planes QD1 and QD2 whose intersection is the line UD and whose normals are ND1 and ND2 respectively. To realize a cylindrical joint, any two distinct points OE1 and OE2 of the line UE are driven simultaneously on the planes QD1 and QD2. In other words, the cylindrical joint corresponds to four point contacts.

Rn

UD

R0

QD1QD2

ND1

UEND2

OE1

OE2

OE

Figure 6.12. Realization of cylindrical groove joint, cylindrical joint and revolute joint

Page 157: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 151

6.7.2.6. Spherical joint (point on point)

A spherical joint drives a point OE of the tool on a point OD of the environment without constraining the orientation of the tool. The task can be realized by three point contacts that drive OE simultaneously on the planes QD1, QD2 and QD3, which are parallel to the planes (y0, z0), (x0, z0), (x0, y0) and pass through the point OD. The required displacements r1, r2 and r3 are the components of the vector OEOD along the axes of frame R0. The task is defined as:

dX =

dr1

dr2

dr3

= [ ]0Rn –0RnnPE nJn

dq [6.55]

6.7.2.7. Revolute joint (line-point on line-point)

A revolute joint (Figure 6.12) consists of aligning a line UE of the tool with a line UD of the environment while simultaneously driving a point OE of UE on a plane QD normal to UD (not represented in the figure). Let OE1 and OE2 be any two distinct points on UE. Similar to the cylindrical groove joint, let us consider that QD1 and QD2 are two arbitrary orthogonal planes whose intersection is the line UD. The joint is thus equivalent to the simultaneous realization of five point contacts:

– driving the point OE1 on the planes QD1 and QD2; – driving the point OE2 on the planes QD1 and QD2;

– driving the point OE on the plane QD. In practice, it is more convenient to describe the revolute joint by a line-to-line

contact and a point-to-point contact. This choice leads to seven equations, and the rank of the matrix H J is five.

6.7.2.8. Prismatic joint (plane-plane on plane-plane)

A prismatic joint consists of aligning two lines of the tool with two geometrically compatible lines of the environment, and making a translation along an arbitrary axis. To simplify, we consider that the two lines are perpendicular and the displacement is carried out along one of these lines.

Let UE1 and UE2 be the two lines of the tool and let UD1 and UD2 be two compatible lines of the environment (Figure 6.13). Let us suppose that the free translation is along the line UD1. Let QD1a and QD1b be two arbitrary orthogonal

Page 158: Modeling and Control of Manipulators - Part I: Geometric

152 Modeling, identification and control of robots

planes whose intersection is UD1, and OE1a and OE1b be any two distinct points on the line UE1. We realize the prismatic joint by five point contacts:

– driving the point OE1a on the planes QD1a and QD2b;

– driving the point OE1b on the planes QD1a and QD2b;

– driving any point of UE2, that is not the intersection of UE1 and UE2, on the plane formed by the lines UD1 and UD2.

Similar to the revolute joint case, it may be more convenient for the user to

specify a prismatic joint using two plane-to-plane contacts. In this case, the number of equations is six.

R0

Rn

UE1

UE2OE1a

OE1b

UD1

UD2

QD1b

ND1ND2

QD1a

Figure 6.13. Realization of a prismatic joint

NOTES.–

– for the fixed rigid pairing, we use the complete description of dX = J dq;

– Table 6.2 summarizes the specification of each virtual mechanical joint as well as the number of necessary equations.

Page 159: Modeling and Control of Manipulators - Part I: Geometric

Inverse kinematic model of serial robots 153

Table 6.2. Equivalence between virtual mechanical joints and geometric specification

Type of joint Elements of the tool

Elements of the

environment

Number of independent

equations

Total number of equations

Point contact Line contact Plane contact Cylindrical groove Spherical Cylindrical Revolute Prismatic

Point Line Plane Point Point Line

Line-Point Plane-Plane

Plane Plane Plane Line Point Line

Line-Point Plane-Plane

1 2 3 2 3 4 5 5

1 2 3 2 3 4 7 6

6.8. Conclusion In this chapter, we have studied the inverse kinematic model by considering the

regular, singular and redundant cases. The solution may be obtained either analytically or numerically. The analytical solution can be used for simple robots in regular configurations, whereas the numerical methods are more general.

We have also shown how to reduce the functional degrees of freedom of the task using a description method based on the virtual mechanical joints formulation.

The redundancy, whether it is a built-in feature of the robot or the consequence of a minimum description of the task, can be used to optimize the trajectory generation of the mechanism. In this respect, the solution based on the pseudoinverse method proves to be very powerful. It allows us to realize secondary optimization functions such as keeping the joints away from their limits or improving the manipulability.

Page 160: Modeling and Control of Manipulators - Part I: Geometric

References

[Ait Ahmed 93]Ait-Ahmed, M., Contribution à la modélisation géométrique et dynamique des robots parallèles. Ph.D. thesis, 1993, LAAS, Toulouse. [Ait Mohamed 95] Ait Mohamed A., "Commande dynamique de robots redondants dans l'espace opérationnel", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, February 1995. [Aldon 82] Aldon M.J., "Elaboration automatique de modèles dynamiques de robots en vue de leur conception et de leur commande", Thèse d'Etat, USTL, Montpellier, France, October 1982. [Aldon 86] Aldon M.J., "Identification des paramètres structuraux des robots manipulateurs", Proc. Outils Mathématiques pour la Modélisation et la Commande des Robots, Paris, September 1986, p. 243-296. [An 85] An C.H., Atkeson C.G., Hollerbach J.M., "Estimation of inertial parameters of rigid body links of manipulators", Proc. 24th IEEE Conf. on Decision and Control, Fort Lauderdale, December 1985, p. 990-995. [An 87] An C.H., Hollerbach J.M., "Kinematic stability issues in force control of manipulators, Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 897-903. [Angeles 88] Angeles J., Gosselin C., "Détermination du degré de liberté des chaînes cinématiques", Trans. of the CSME, Vol. 12, 1977, p. 219-226. [Angeles 2002]Angeles J., Fundamentals of Robotic Mechanical Systems, Springer-Verlag, New York, 2002. [Arimoto 84] Arimoto S., Miyazaki F., "Stability and robustness of PID feedback control for robots manipulators of sensory capability", The 1st Int. Symp. of Robotics Research, MIT Press, Cambridge, 1984. [Arimoto 93] Arimoto S., Liu Y.H., Naniwa T., "Model-based adaptive hybrid control for geometrically constrained robots", Proc. IEEE Int. Conf. on Robotics and Automation, Atlanta, May 1993, p. 618-623. [Armstrong 79] Armstrong W.W., "Recursive solution to the equation of motion of an N-links manipulator", Proc. 5th World Congress on Theory of Machines and Mechanisms, Montréal, 1979, p. 1343-1346.

Page 161: Modeling and Control of Manipulators - Part I: Geometric

468 Modeling, identification and control of robots

[Armstrong 86] Armstrong B., Khatib O., Burdick J., "The explicit dynamic model and inertial parameters of the PUMA 560 Arm", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 510-518. [Armstrong 88] Armstrong B., "Dynamics for robot control: friction modeling and ensuring excitation during parameter identification", Ph. D Thesis, Dept. of Electrical Engineering, Stanford University, May 1988. [Armstrong 89] Armstong B., "On finding exciting trajectories for identification experiments involving systems with non linear dynamics", The Int. J. of Robotics Research, Vol. 8(6), 1989, p. 28-48. [Armstrong 91] Armstrong B., Control of Machines with frictions, Kluwer Academic Publishers, 1991. [Armstrong 94] Armstrong-Hélouvry B., Dupont P., Canudas de Wit C., "A survey of analysis tools and compensation methods for the control of machines with friction", Automatica, Vol. 30(10), 1994, p. 1083-1138. [Asada 86] Asada H., Slotine J.-J.E., Robot analysis and control, John Wiley & Sons, New York, 1986. [Atkeson 86] Atkeson C.G., An C.H., Hollerbach J.M., "Estimation of inertial parameters of manipulator loads and links", The Int. J. of Robotics Research, Vol. 5(3), 1986, p. 101-119. [Aubin 91] Aubin A., "Modélisation, identification et commande du bras manipulateur TAM", Thèse de Doctorat, INPG, Grenoble, France, 1991. [Baillieul 84] Baillieul J., Hollerbach J.M., Brockett R., "Programming and control of kinematically redundant manipulators", Proc. 23rd IEEE Conf. on Decision and Control, Las Vegas, December1984, p. 768-774. [Baillieul 85] Baillieul J., "Kinematic programming alternatives for redundant manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, St Louis, March 1985, p. 722-728. [Baillieul 86] Baillieul J., "Avoiding obstacles and resolving kinematic redundancy", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 1698-1704. [Baron 94] Baron L., Angeles J., "The decoupling of the direct kinematics of parallel manipulators using redundant sensors", Proc. IEEE Int. Conf. on Robotics and Automation, San Diego, May 1994, p. 974-979. [Bartels 88] Bartels R.H., Beaty J.C., Barsky B.A., Mathématiques et CAO 6, B-splines, Hermès, Paris, 1988. [Baumgarte 72] Baumgarte J., "Stabilization of constraints and integral of motion", Computer Methods in Applied Mech. Eng., Vol. 1(1), 1972, p. 1-16. [Bayard 88] Bayard D., Wen J.T., "New class of control laws for robotic manipulators; Part 2: Adaptive case", Int. J. Control, Vol. 47(5), 1988, p. 1387-1406. [Bejczy 74] Bejczy A.K., "Robot arm dynamics and control", NASA Technical Memorandum 33-669, Jet Propulsion Laboratory, Pasadena, 1974. [Bejczy 79] Bejczy A.K., "Dynamic models and control equations for manipulators", Tutorial Workshop, 18th IEEE Conf. on Decision and Control, Fort Lauderdale, December 1979. [Bejczy 85] Bejczy A.K., Tarn T.J., Yun X., Hans S., "Non linear feedback control of Puma 560 robot arm by computer", Proc. 24th IEEE Conf. on Decision and Control, Fort Lauderdale, December 1985, p. 1680-1688.

Page 162: Modeling and Control of Manipulators - Part I: Geometric

References 469

[Beji 97] Beji L., "Modélisation, identification et commande d'un robot parallèle", Thèse de Doctorat, Université d'Evry-Val d'Essone, France, June 1997. [Benallegue 91] Bennallegue A., "Contribution à la commande dynamique adaptative des robots manipulateurs rapides", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, November 1991. [Benhlima 93] Benhlima, S., "Identification des paramètres dynamiques des systèmes mécaniques articulés complexes", Thèse de Doctorat, ENSAM, Paris, France, 1993. [Bennett 03] Bennett G.T., "A new mechanism", Engineering, Vol. 76, 1903., p. 777-778. [Bennis 91a] Bennis F., "Contribution à la modélisation géométrique et dynamique des robots à chaîne simple et complexe", Thèse de doctorat, E.N.S.M, Nantes, France, 1991. [Bennis 91b] Bennis F., Khalil W., "Minimum inertial parameters of robots with parallelogram closed-loops", IEEE Trans. on Systems, Man, and Cybernetics, Vol. SMC-21(2), 1991, p. 318-326. [Bennis 93] Bennis F., Khalil W., "Modèle géométrique inverse des robots à chaîne découplable : application aux équations de contraintes des boucles fermées", Trans. of the Canadian Society for Mechanical Engineering, Vol. 17(4A), 1993, p. 473-491. [Benoit 75] Benoit M., Briot M., Donnarel H., Liégeois A., Meyer M.A., Renaud M., "Synthèse de la commande dynamique d'un téléopérateur redondant", Revue RAIRO, Série J-2, May 1975, p. 89-103. [Berghuis 93] Berghuis H., "Model-based robot control: from theory to practice", Ph. D. Thesis, University of Twente, Enschede, Holland, 1993. [Bhattacharya 97] Bhattacharya S., Hatwal H., and Ghosh A.: An on-line estimation scheme for generalized Stewart platform type parallel manipulators, J. Mechanism and Machine Theory 32(1), 1997, p. 79-89. [Bhattacharya 98] Bhattacharya S., Nenchev D.N., and Uchiyama M.: A recursive formula for the inverse of the inertia matrix of a parallel manipulator, J. Mechanism and Machine Theory 33(7) , 1998, p. 957-964. [Bernhardt 93] Bernhardt R., Albright S.L., Robot calibration, Chapman & Hall, London, 1993. [Besnard 99] Besnard S., Khalil W., "Calibration of parallel robots using two inclinometers", Proc. IEEE Int. Conf. on Robotics and Automation, Detroit, May 1999, p. 1758-1763. [Besnard 00] Besnard S., "Etalonnage géométrique des robots série et parallèles", Thèse de Doctorat, Université de Nantes, France, 1996. [Besnard 01] Besnard S., Khalil W., "Identifiable parameters for parallel robots kinematic calibration", Proc. IEEE Int. Conf. on Robotics and Automation, Seoul, May 2001, p. ??? [Bicchi 98] Bicchi A., "Manipulability of cooperating robots with passive joints", Proc. IEEE Int. Conf. on Robotics and Automation, Louvain, Belgium, May 1998, p. 1038-1044. [Binford 77] Binford T.O. et al., "Discussion of trajectory calculation methods", in 'Exploratory study of computer integrated assembly system', Stanford Artificial Intelligence Lab., Progress Report, Memo AIM-285.4, Stanford, June 1977. [Blanchon 87] Blanchon J.-L., "Génération et identification des lois de mouvement en robotique : application à l'identification et à la correction de trajectoires du manipulateur PUMA 560, Thèse de Doctorat, USTL, Montpellier, France, March 1987.

Page 163: Modeling and Control of Manipulators - Part I: Geometric

470 Modeling, identification and control of robots

[Borm 91] Borm J.H., Menq C.H., "Determination of optimal measurement configurations for robot calibration based on observability measure", The Int. J. of Robotics Research, Vol. 10(1), p. 51-63, 1991. [Borrel 79] Borrel P., "Modèle de comportement de manipulateurs ; application à l'analyse de leurs performances et à leur commande automatique", Thèse de Troisième Cycle, USTL, Montpellier, France, December 1979. [Borrel 86] Borrel P., "Contribution à la modélisation géométrique des robots-manipulateurs ; application à la conception assistée par ordinateur", Thèse d'Etat, USTL, Montpellier, France, July 1986. [Boullion 71] Boullion T.L., Odell P.L., Generalized inverse matrices, John Wiley & Sons, New York, 1971. [Bouzouia 89] Bouzouia B., "Commande des robots manipulateurs : identification des paramètres et étude des stratégies adaptatives", Thèse de Doctorat, UPS, Toulouse, France, May 1989. [Boyer 94] Boyer F., "Contribution à la modélisation et à la commande dynamique des robots flexible", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, 1994. [Boyer 98] Boyer F., Khalil W., "An efficient calculation of flexible manipulator inverse dynamics", The Int. J. of Robotics Research, Vol. 17(3), 1998, p. 282-293. [Boyer 2006] Boyer F., Porez M., Khalil W., “Macro-continuous Computed Torque Algorithm for a three-dimensional Eel-Like Robot”, IEEE Transaction, Robotics, Vol: 22 (4), August 2006, p. 763- 775. [Brandl 86] Brandl H., Johanni R., Otter M., "A very efficient algorithm for the simulation of robots and multibody systems without inversion of the mass matrix", Proc. IFAC Symp. on Theory of Robots, Vienna, Austria, December1986, p. 365-370. [Brogliato 91] Brogliato B., "Systèmes passifs et commande adaptative des manipulateurs", Thèse de Doctorat, INPG, Grenoble, France, 1991. [Bruyninckx 98] Bruyninckx H., "Closed-form forward position kinematics for a (3-1-1-1)2

fully parallel manipulator", IEEE Trans. on Robotics and Automation, Vol. RA-14(2), 1998, p. 326-328. [Burdick 86] Burdick J.W., "An algorithm for generation of efficient manipulator dynamic equations", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 212-218. [Burdick 88] Burdick J.W., "Kinematic analysis and design of redundant manipulators", Ph. D Thesis, Stanford University, 1988. [Caenen 93] Caenen J.-L., "Contribution à l'identification de paramètres géométriques et non géométriques d'un modèle de robot. Application à l'amélioration de la précision de positionnement statique", Thèse de Doctorat, Université de Valenciennes et de Hainault-Cambrésis, France, January 1993. [Cannon 84] Cannon H., Schmitz E., "Initial experiments on the end-point control of a flexible one-link robot", The Int. J. of Robotics Research, Vol. 3(3), 1984, p. 62-75. [Canudas de Wit 89] Canudas de Wit C., Noël P., Aubin A., Brogliato B., Drevet P., "Adaptive Friction compensation in robot manipulators: low-velocities", Proc. IEEE Int. Conf. on Robotics and Automation, Scottsdale, May 1989, p. 1352-1357.

Page 164: Modeling and Control of Manipulators - Part I: Geometric

References 471

[Canudas de Wit 90] Canudas de Wit C., Seront V., "Robust adaptive friction compensation", Proc. IEEE Int. Conf. on Robotics and Automation, Cincinnati, May 1990, p. 1383-1389. [Canudas de Wit 92] Canudas de Wit C., Fixot N., Aström K.J., "Trajectory tracking in robot manipulators via nonlinear estimated feedback", IEEE Trans. on Robotics and Automation, Vol. RA-8(1), 1992, p. 138-144. [Castain 84] Castain R.H., Paul R.P., "An on-line dynamic trajectory generator", The Int. J. of Robotics Research, Vol. 3(1), 1984, p. 68-72. [Carricato 2009] Carricato M., Gosselin C., ”On the modeling of leg constraints in the dynamic analysis of Gough/Stewart-type platforms”, ASME Journal of Computational and Nonlinear Dynamics, Vol.4, No.1, 2009 [Castelain 86] Castelain J.M., "Application de la méthode hypercomplexe aux modélisations géométriques et différentielles des robots constitués d'une chaîne cinématique simple", Thèse d'Etat, Université de Valenciennes et du Hainaut-Cambresis, France, December 1986. [Catia] Dassault Systèmes, 308 Bureaux de la Colline, 92210 Saint Cloud, France. [Cesareo 84] Cesareo G., Nicolo F., Nicosia S., "DYMIR: a code for generating dynamic model of robots", Proc. IEEE Int. Conf. on Robotics, Atlanta, March 1984, p. 115-120. [Chace 67] Chace M.A., "Analysis of the time dependance of multi-freedoom mechanical system in relative coordinate", Trans. of ASME, J. of Engineering for Industry, Vol. 89, February 1967, p. 119-125. [Chace 71] Chace M.A., Bayazitoglu Y.O., "Development and application of a generalized d'Alembert force for multi-freedom mechanical system", Trans. ASME, J. of Engineering for Industry, Vol. 93, February 1971, p. 317-327. [Chand 85] Chand S., Doty K.L., "On-line polynomial trajectories for robot manipulators", The Int. J. of Robotics Research, Vol. 4(2), 1985, p. 38-48. [Chang 86] Chang P.H., "A closed form solution for the control of manipulators with kinematic redundancy", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 9-14. [Charentus 90] Charentus S., "Modélisation et commande d'un robot manipulateur redondant composé de plusieurs plates-formes de Stewart", Thèse de Doctorat, UPS, Toulouse, France, April 1990. [Chebychev 1854] Chebychev, P. A. "Théorie des mécanismesconus sus le nom de parallélogrammes, 1ère partie." Mémoires presentées à l’Académie imperial des sciences de Saint-Pétersbourg par divers savants, 1854. [Chedmail 86] Chedmail P., Gautier M., Khalil W., "Automatic modelling of robots including parameters of links and actuators", Proc. IFAC Symp. on Theory of Robots, Vienna, Austria, December1986, p. 295-299. [Chedmail 90a] Chedmail P.,"Contribution à la conception des robots et à la modélisation et commande de robots souples", Thèse d'Etat, ENSM, Nantes, France, January 1990. [Chedmail 90b] Chedmail P., Gautier M., "Optimum choice of robot actuators", Trans. of ASME, J. of Engineering for Industry, Vol. 112(4), 1990, p. 361-367.

Page 165: Modeling and Control of Manipulators - Part I: Geometric

472 Modeling, identification and control of robots

[Chedmail 92] Chedmail P., Dombre E., "CAO et robotique : conception et programmation des cellules robotisées", Revue d'Automatique et de Productique Appliquées, Vol. 5(2), 1992, p. 27-38. [Chedmail 98] Chedmail P., Dombre E., Wenger P., La CAO en robotique : outils et méthodologies, Collection 'Etudes en Mécanique des Matériaux et des Structures', Hermès, Paris, 1998. [Cheok 93] Cheok K.C., Overholt J.L., Beck R.R., "Exact methods for determining the kinematics of a Stewart platform using additional displacement sensors", J. of Robotic Systems, Vol. 10(5), 1993, p. 974-979. [Cherki 96] Cherki B, "Commande des robots manipulateurs par retour d'état estimé", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, 1996. [Chevallereau 87] Chevallereau C., Khalil W., "Efficient method for the calculation of the pseudo inverse kinematic problem", Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 1842-1848. [Chevallereau 88] Chevallereau C., "Contribution à la commande des robots-manipulateurs dans l'espace opérationnel", Thèse de Doctorat, ENSM, Nantes, France, May 1988. [Chevallereau 98] Chevallereau C., "Feasible trajectories in task space from a singularity for a non redundant or redundant robot manipulator", The Int. J. of Robotic Research, Vol. 17(1), 1998, p. 56-69. [Chiaverini 93] Chiaverini S., Sciavicco L., "The parallel approach to force/position control of robotic manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-9(4), 1993, p. 361-373. [Clavel 89] Clavel R., "Une nouvelle structure de manipulateur parallèle pour la robotique légère", Revue APII-AFCET, Vol. 23, 1989, p. 501-519. [Cloutier 95] Cloutier B.P., Pai D.K., Ascher U.M., "The formulation stiffness of forward dynamics algorithms and implications for robot simulation", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995, p. 2816-2822. [Codourey 97] Codourey A., and Burdet E.: A body oriented method for finding a linear form of the dynamic equatiojns of fully parallel robot, IEEE Conf. on Robotics and Automation, 1997, Albuquerque, New Mexico, U.S, p.1612-1619. [Coiffet 81] Coiffet P., Les Robots ; Tome 1 : Modélisation et commande, Hermès, Paris, 1981. [Colbaugh 93] Colbaugh R., Seraji H., Glass K., "Direct adaptive impedance control of robot manipulators", J. of Robotic Systems, Vol. 10, 1993, p. 217-248. [Corke 96]P. Corke, “In situ measurement of robot motor electrical constants,” Robotica, vol. 23, no. 14, pp.433–436, 1996 [Craig 86a] Craig J.J., Introduction to robotics: mechanics and control, Addison Wesley Publishing Company, Reading, 1986. [Craig 86b] Craig J.J., Hsu P., Sastry S., "Adaptive control of mechanical manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 190-195. [Craig 93] Craig J.J., "Calibration of industrial robots", Proc. 24th Int. Symp. on Industrial Robots, Tokyo, November 1993, p. 889-893.

Page 166: Modeling and Control of Manipulators - Part I: Geometric

References 473

[Dafaoui 94] Dafaoui E., "Modélisation et commande d'un robot parallèle : application au suivi de contour", Thèse de Doctorat, Paris XII-Val de Marne, France, September 1994. [Dafaoui 98]Dafaoui El-M., Amirat Y., Pontnau J., and François C.: Analysis and Design of a Six-DOF Parallel Manipulator, Modeling, Singular Configurations, and Workspace, IEEE Trans. on Robotics and Automation 14(1) ,1998, p.78-92. [Dahl 77] Dahl P.R.,"Measurements of solid friction parameters of ball bearings", Proc. of the 6th Annual Symp. on Incremental Motion Control Systems and Devices, University of Illinois, 1977. [Damak 96] Damak M., "Théorie et instrumentation pour l'étalonnage statique des robots : vers une programmation hors-ligne industriellement plus efficace", Thèse de Doctorat, ENSAM, Lille, France, July 1996. [Dasgupta 98] Dasgupta B., and Mruthyunjaya T.S., “Closed-form dynamic equations of the general Stewart platform through the Newton-Euler approach”, J. Mechanism and Machine Theory 33(7), p. 993-1012, October 1998. [Dasgupta 98] Dasgupta B., and Mruthyunjaya T.S., “A Newton-Euler formulation for the inverse dynamics of the Stewart platform manipulator”, J. Mechanism and Machine Theory 33(8), P. 1135-1152, 1998. [Dasgupta 99] Dasgupta B., and Choudhury P.,”A general strategy based on the Newton-Euler approach for the dynamic formulation of parallel manipulators”, J. Mechanism and Machine Theory 34(6), p. 801-824,1999. [Daney 00] Daney D., "Etalonnage géométrique des robots parallèles", Thèse de Doctorat, Université de Nice-Sophia Antipolis, France, February 2000. [de Boor 78] de Boor C., A practical guide to splines, Springer-Verlag, New York, 1978. [de Casteljau 87] de Casteljau P., Les quaternions, Hermès, Paris, 1987. [Dégoulange 93] Dégoulange E., "Commande en effort d'un robot manipulateur à deux bras : application au contrôle de la déformation d'une chaîne cinématique fermée", Thèse de Doctorat, Université Montpellier II, France, December 1993. [de Larminat 77] de Larminat P., Thomas Y., Automatique des systèmes linéaires ; Tome 2 : Identification, Editions Flammarion, 1977. [Delignières 87] Delignières S., "Choix de morphologies de robot", Thèse de Docteur-Ingénieur, ENSM, Nantes, France, November 1987. [de Luca 91a] de Luca A., Oriolo G., "Issues in acceleration resolution of robot redundancy", Proc. IFAC Symp. on Robot Control, SYROCO'91, Vienna, Austria, 1991, p. 665-670. [de Luca 91b] de Luca A., Manes C., "Hybrid force-position control for robots in contact with dynamic environments", Proc. IFAC Symp. on Robot Control, SYROCO'91, Vienna, Austria, 1991, p. 177-182. [Denavit 55] Denavit J., Hartenberg R.S., "A kinematic notation for lower pair mechanism based on matrices", Trans. of ASME, J. of Applied Mechanics, Vol. 22, June 1955, p. 215-221. [Desbats 90] Desbats P., "Modélisation et commande dynamique des robots rapides", Thèse de Doctorat, Université de Paris Sud, Orsay, France, June 1990.

Page 167: Modeling and Control of Manipulators - Part I: Geometric

474 Modeling, identification and control of robots

[de Schutter 88] de Schutter J., van Brussel H., "Compliant robot motion - II - a control approach based on external control loop", The Int. J. of Robotics Research, Vol. 7(4), 1988, p. 18-33. [Desoer 75] Desoer C.A., Vidyaasagar M., Feedback systems: input-output properties, Academic Press, 1975. [Dietmaier 98] Deitmaier P., "The Stewart-Gough platform of general geometry can have 40 real postures", in Advances in Robot Kinematics: Analysis and Control, J. Lenarcic, M.L. Husty Eds, Klumer Academic Publishers, 1998, p. 7-16. [Dillon 73] Dillon S.R., "Computer assisted equation generation in linkage dynamics", Ph. D. Thesis, Ohio State University, August 1973. [Dombre 81] Dombre E., "Analyse des performances des robots-manipulateurs flexibles et redondants ; contribution à leur modélisation et à leur commande", Thèse d'Etat, USTL, Montpellier, France, June 1981. [Dombre 85] Dombre E., Borrel P., Liégeois A., "A CAD system for programming and simulating robot's actions", in Computing Techniques for Robots, I. Aleksander Ed., Kogan Page, London, 1985, p. 222-247. [Dombre 88a] Dombre E., Khalil W., Modélisation et commande des robots, Hermès, Paris, 1988. [Dombre 88b] Dombre E., "Outils d'aide à la conception de cellules robotisées", in Techniques de la robotique : perception et planification, Hermès, Paris, 1988, p. 255-291. [Dombre 94] Dombre E., Fournier A., "Yet another calibration technique to reduce the gap between CAD world and real world", Proc. 1st WAC'94 on Intelligent Automation and Soft Computing, Hawaï, USA, August 1994, p. 47-52. [Dombre 2007] Dombre E., Khalil W., Robot manipulators: Modeling, Performace Analysis and Control, ISTE,UK, London, Jan. 2007. [Dongarra 79] Dongarra J.J., Moler C.B., Bunch J.R., Stewart G.W., "LINPACK User's Guide", Philadelphia, SIAM, 1979. [Douss 96] Douss M., "Programmation hors ligne par CAO-Robotique : caractérisation de lois de contrôleurs de robots et étalonnage de cellules robotisées en vue d'améliorer la précision", Thèse de Doctorat, Université de Franche-Comté, Besançon, France, November 1996. [Drake 77] Drake S.H., "Using compliance in lieu of sensory feedback for automatic assembly", Ph. D. Thesis, Dept. of Mechanical Engineering, MIT, September 1977. [Driels 90] Driels M. R., Pathre U.S., "Significance of observation strategy on the design of robot calibration experiment", J. of Robotic Systems, Vol. 7, 1990, p. 197-223. [Dubowsky 79] Dubowsky S., Des Forges D.T., "The application of model-referenced adaptive control to robotic manipulators", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 101, 1979, p. 193-200. [Duffy 90] Duffy J., "The fallacy of modern hybrid control theory that is based on 'orthogonal complements' of twist and wrench spaces", J. of Robotic Systems, Vol. 7, 1990, p. 139-144. [Edwall 82] Edwall C.W., Pottinger H.J., Ho C.Y., "Trajectory generation and control of a robot arm using spline functions", Proc. Robot-6, Detroit, 1982, p. 421-444.

Page 168: Modeling and Control of Manipulators - Part I: Geometric

References 475

[Egeland 91] Egeland O., Spangelo I., "Manipulator control in singular configurations- Motion in degenerate directions", in Advanced Robot Control, Lecture Notes in Control and Information Sciences, Springer-Verlag, New York, 1991, p. 296-306. [El Omri 96] El Omri J., "Analyse géométrique et cinématique des mécanismes de type manipulateur", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, February 1996. [El Serafi 91a] El Serafi K., Khalil W., "Energy based indirect adaptive control of robots", Proc. IEEE Int. Conf. on Robotics and Automation, Sacramento, April 1991, p. 2142-2147. [El Serafi 91b] El Serafi K., "Contribution à la commande adaptative des robots manipulateurs", Thèse de Doctorat, ENSM, Nantes, France, May 1991. [Everett 88] Everett L.J, Suryohadiprojo A.H., "A study of kinematic models for forward calibration of manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, Philadelphia, April 1988, p. 798-800. [Everett 89] Everett L.J., "Forward calibration of closed loop jointed manipulators", The Int. J. of Robotics Research, Vol. 8(4), August 1989, p. 85-91. [Eykhoff 74] Eykhoff P., System identification: parameter and state estimation, John Wiley & Sons, London, 1974. [Fages 98] Fages G., "Statistiques 97", RobAut, n° 21, March-April 1998, p. 28-32. [Featherstone 83a] Featherstone R., "Position and velocity transformations between robot end-effector coordinates and joint angles", The Int. J. of Robotics Research, Vol. 2(2), 1983, p. 35-45. [Featherstone 83b] Featherstone R., "The calculation of robot dynamics using articulated-body inertias", The Int. J. of Robotics Research, Vol. 2(3), 1983, p. 87-101. [Ferreira 84] Ferreira E.P., "Contribution à l'identification de paramètres et à la commande des robots manipulateurs", Thèse de Docteur-Ingénieur, UPS, Toulouse, France, July 1984. [Fichter 86] Fichter E.F., "A Stewart platform-based manipulator: general theory and practical construction", The Int. J. of Robotic Research, Vol. 5(2), 1986, p. 157-181. [Fisher 92] Fisher W., Mujtaba M.S., "Hybrid position / force control: a correct formulation", The Int. J. of Robotics Research, Vol. 11(4), 1992, p. 299-311. [Fliess 95] Fliess M., Lévine J., Martin P., Rouchon P., "Flatness and defect of nonlinear systems: introductory theory and examples", Int. J. Control, Vol. 61, 1995, p. 1327-1361. [Forsythe 77] Forsythe G.E., Malcom M.A., Moler C.B., Computer methods for mathematical computations, Prentice-Hall, Englewood Cliffs, 1977. [Fournier 80] Fournier A., "Génération de mouvements en robotique ; application des inverses généralisées et des pseudo-inverses", Thèse d'Etat, USTL, Montpellier, France, April 1980. [Fourquet 90] Fourquet J.-Y., "Mouvement en temps minimal pour les robots manipulateurs en tenant compte de leur dynamique", Thèse de Doctorat, UPS, Toulouse, France, 1990. [Freidovich 97] Freidovich L.B., Pervozvanski A.A., "Some estimates of performance for PID-like control of robotic manipulators", Proc. IFAC Symp. on Robot Control, SYROCO'97, Nantes, September 1997, p. 85-90. [Freund 82] Freund E., "Fast nonlinear control with arbitrary pole placement for industrial robots and manipulators", The Int. J. of Robotics Research, Vol. 1(1), 1982, p. 65-78.

Page 169: Modeling and Control of Manipulators - Part I: Geometric

476 Modeling, identification and control of robots

[Froissart 91] Froissart C., "Génération adaptative de mouvement pour processus continus ; application au suivi de joint", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, December 1991. [FU 2007] FU S., Yao Y., Wu Y., “Comments on ‘‘A Newton–Euler formulation for the inverse dynamics of the Stewart platform manipulator’’ by B. Dasgupta and T.S. Mruthyunjaya [Mech. Mach. Theory 33 (1998) 1135–1152] ,” Letter to the Editor / Mechanism and Machine Theory 42 (2007) 1668–1671.

[Gaudin 92] Gaudin H., "Contribution à l'identification in situ des constantes d'inertie et des lois de frottement articulaire d'un robot manipulateur en vue d'une application expérimentale au suivi de trajectoires optimales", Thèse de Doctorat, Université de Poitiers, France, November 1992. [Gautier 86] Gautier M., "Identification of robots dynamics", Proc. IFAC Symp. on Theory of Robots, Vienna, Austria, December 1986, p. 351-356. [Gautier 88] Gautier M., Khalil W., "On the identification of the inertial parameters of robots", Proc. 27th IEEE Conf. on Decision and Control, Austin, December 1988, p. 2264-2269. [Gautier 90a] Gautier M., "Contribution à la modélisation et à l'identification des robots", Thèse de Doctorat d'Etat, ENSM, Nantes, France, May 1990. [Gautier 90b] Gautier M., Khalil W., "Direct calculation of minimum set of inertial parameters of serial robots", IEEE Trans. on Robotics and Automation, Vol. RA-6(3), 1990, p. 368-373. [Gautier 91] Gautier M., "Numerical calculation of the base inertial parameters", J. of Robotic Systems, Vol. 8(4), August 1991, p. 485-506. [Gautier 92a] Gautier M., Khalil W., "Exciting trajectories for inertial parameters identification", The Int. J. of Robotics Research, Vol. 11(4), 1992, p. 362-375. [Gautier 92b] Gautier M., "Optimal motion planning for robot's inertial parameters identification", Proc. 31st IEEE Conf. on Decision and Control, Tucson, December 1992, Vol. 1, p. 70-73. [Gautier 93] Gautier M., Janin C., Pressé C., "On the validation of robot dynamic model", Proc. 2nd European Control Conf., ECC'93, Groningen, Holland, June-July 1993, p. 2291-2295. [Gautier 94] Gautier M., Vandanjon P.-O., Pressé C., "Identification of inertial and drive gain parameters of robots", Proc. IEEE 33th Conf. on Decision and Control, Orlando, December 1994, p.3764-3769. [Gautier 95] Gautier M., Khalil W., Restrepo P. P.,"Identification of the dynamic parameters of a closed loop robot", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995, p. 3045-3050. [Gautier 96] Gautier M., "A comparison of filtered models for dynamic identification of robots", Proc. IEEE 35th Conf. on Decision and Control, Kobe, Japon, December 1996, p. 875-880. [Gautier 97] Gautier M, "Dynamic identification of robots with power model", Proc. Int. Conf. on Robotics and Automation, Albuquerque, USA, avril 1997, p.1922-1927.

Page 170: Modeling and Control of Manipulators - Part I: Geometric

References 477

[Gautier 2001] Gautier M., Khalil W., "Identification des paramètres des robots", Chapiter 4 of the book Analyse et modélisation des robots manipulateurs, ed. Dombre E., série IC2, Hermès Paris, 2001, [Gautier 2012] M. Gautier and S. Briot, “Global Identification of Drive Gains Parameters of Robots Using a Known Payload”, Proc. IEEE ICRA, pp. 2812-2817, Saint Paul, MI, USA, 2012. [Geng 92] Geng, Z., Haynes, S., Lee, J. D. and Carrol, R. L., “On the dynamic model and kinematic analysis of a class of Stewart platforms”, Robotics and Autonomous Systems 9, p. 237-254, 1992. [Geffard 00] Geffard F., "Etude et conception de la commande en effort d'un télémanipulateur équipé d'un capteur d'effort à sa base et son extrémité", Thèse de Doctorat, Université de Nantes, France, December 2000. [Giordano 86] Giordano M., "Dynamic model of robots with a complex kinematic chain", Proc.16th Int. Symp. on Industrial Robots, Bruxelles, September-October 1986, p. 377-388. [Gogu 2008] Gogu, G. Structural Synthesis of Parallel Mechanisms, Part 1: Methodology. Dordrecht: Springer Verlag, 2008. [Goldenberg 85] Goldenberg A.A., Benhabib B., Fenton R.G., "A complete generalized solution to inverse kinematics of robots", IEEE J. of Robotics and Automation, Vol. RA-1(1), 1985, p. 14-20. [Golub 83] Golub G.H., Van Loan C.F., Matrix computations, Johns Hopkins University Press, Baltimore, 1983. [Gorla 84] Gorla B., Renaud M., Modèles des robots-manipulateurs ; application à leur commande, Cepadues Editions, Toulouse, 1984. [Gosselin 88] Gosselin C., "Kinematic analysis, optimization and programming of parallel robotic manipulators", Ph. D. Thesis, McGill University, Montréal, Canada, June 1988. [Gosselin 90] Gosselin C., Angeles J., "Singularity analysis of closed-loop kinematic chains", IEEE Trans. on Robotics and Automation, Vol. RA-6(3), 1990, p. 281-290. [Gosselin 93] Gosselin C. M., “Parallel computationnal algorithms for the kinematics and dynamics of parallel manipulators”, IEEE Int. Conf. on Robotics and Automation, Vol. 1, p.883-889, New York 1993. [Goswami 93] Goswami A., Quaid A., Peshkin M., "Identifying robot parameters using partial pose information", Proc. IEEE Int. Conf. on Systems, Man, and Cybernetics, Chicago, October 1993, p. 6-14. [Goudali 96] Goudali A., Lallemand J.-P, Zeghloul S., "Modeling of the 2-delta decoupled parallel robot", Proc. 6th Int. Symp. on Robotics and Manufacturing, WAC'96, Vol. 6, Montpellier, May 1996, p. 243-248. [Gough 56] Gough V.E., "Contribution to discussion of papers on research in automobile stability, control and tyre performance", Proc. Auto. Div. Inst. Mech. Eng., 1956-1957. [Greville 60] Greville T.N., "Some applications of the pseudo-inverse of a matrix", SIAM Review, Vol. 2(1), 1960, p. 15-22. [Grudić 93] Grudić G.Z., Lawrence P.D., "Iteratitive inverse kinematics with manipulator configuration control", IEEE Trans. on Robotics and Automation, Vol. RA-9(4), August 1993, p. 476-483.

Page 171: Modeling and Control of Manipulators - Part I: Geometric

478 Modeling, identification and control of robots

[Guglielmi 87] Guglielmi M., Jonker E., Piasco J.-M., "Modelisation and identification of a two degrees of freedom SCARA robot using extended Kalman filtering", Proc. Int. Conf. on Advanced Robotics, ICAR'87, Versailles, October 1987, p. 137-148. [Guyot 95] Guyot G., "Contribution à l'étalonnage géométrique des robots manipulateurs", Thèse de Doctorat, Université de Nice-Sophia Antipolis, France, January 1995. [Ha 89] Ha I.J., Ko M.S., Kwon S.K., "An efficient estimation algorithm for the model parameters of robotic manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-5(6), 1989, p. 386-394. [Hahn 67] Hahn W., Stability of Motion, Springer-Verlag, New York, 1967. [Han 95] Han K., Chung W.K., Youm Y., "Local structurization for the forward kinematics of parallel manipulators using extra sensor data", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995 p. 514-520. [Hayati 83] Hayati S.A.,"Robot arm geometric link parameter estimation", Proc. 22nd IEEE Conf. Decision and Control, San Antonio, December 1983, p. 1477-1483. [Held 88] Held V., Maron C., "Estimation of friction characteristics, inertial and coupling coefficients in robotic joints based on current and speed measurements", Proc. IFAC Symp. on Robot Control, SYROCO'88, 1988, p. 86.1-86.6. [Hervé 78] Hervé J.-M., "Analyse structurelle des mécanismes par groupe de déplacement", J. of Mechanism and Machine Theory, Vol. 13(4), 1978, p. 437-450. [Hervé 91] Hervé J.-M., Sparacino F., "Structural synthesis of parallel robot generating spatial translation", Proc. Int. Conf. on Advanced Robotics, ICAR'91, Pise, 1991, p. 808-813. [Hoffman 79] Hoffman R. and Hoffman, M., “Vibrational modes of an aircraft simulator motion system”. In Proc. 5th World Congress on Theory of Machines and Mechanisms, p. 603-606, Montreal, July 1979. [Hogan 85] Hogan N., "Impedance control: an approach to manipulation", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 107, March 1985, p. 1-24. [Hogan 87] Hogan N., "Stable execution of contact tasks using impedance control", Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 1047-1054. [Hollerbach 80] Hollerbach J.M., "An iterative lagrangian formulation of manipulators dynamics and a comparative study of dynamics formulation complexity", IEEE Trans. on Systems, Man, and Cybernetics, Vol. SMC-10(11), 1980, p. 730-736. [Hollerbach 84a] Hollerbach J.M., "Dynamic scaling of manipulator trajectories", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 106(1), March 1984, p. 102-106. [Hollerbach 84b] Hollerbach J.M., "Optimum kinematic design for a seven degree of freedom manipulator", Proc. 2nd Int. Symp. of Robotics Research, Kyoto, August 1984, p. 349-356. [Hollerbach 85] Hollerbach J.M., Suh K.C., "Redundancy resolution of manipulators through torque optimization", Proc. IEEE Int. Conf. on Robotics and Automation, St Louis, March 1985, p. 1016-1021. [Hollerbach 89] Hollerbach J.M., "A survey of kinematic calibration", in The Robotics Review n°1, MIT Press Cambridge, 1989, p. 207-242.

Page 172: Modeling and Control of Manipulators - Part I: Geometric

References 479

[Hollerbach 95] Hollerbach J.M., Lokhorst D., "Closed-loop kinematic calibration of the RSI 6-dof hand controller", IEEE Trans. on Robotics and Automation, Vol. RA-11, 1995, p. 352-359. [Hollerbach 96] Hollerbach J.M., Wampler C.W., "The calibration index and taxonomy of kinematic calibration methods", The Int. J. of Robotics Research, Vol. 14, 1996, p. 573-591. [Hollerbach 2008] Hollerbach J., Khalil W., Gautier M.,"Model Identification", Chapter 14, Springer hand book of Robotics, Springer Verlag, ed Siciliano B, and Khatib O, 2008, pp. 321-344, [Hooker 65] Hooker W.W., Margulies G., "The dynamical attitude equations for a n-body satellite", The Journal of the Astronautical Sciences, Vol. 12(4), 1965, p. 123-128. [Horowitz 80] Horowitz R., Tomizuka M., "An adaptive control scheme for mechanical manipulators; compensation of non linearity and decoupling control", Presentation at the Winter Meeting of ASME, Dynamic Systems and Control Division, Chicago, 1980. [Hsia 86] Hsia T.C., "Adaptive control of robot manipulators; a review", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 183-189. [Hsu 88] Hsu P., Hauser J., Sastry S., "Dynamic control of redundant manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, Philadelphia, April 1988, p. 183-187. [Hunt 83] Hunt K. H., "Structural kinematics of in-parallel-actuated robot-arms", Trans of ASME, J. of Mechanisms, Transmissions, and Automation in Design, Vol. 105, March 1983, p. 705-712. [Husty 96] Husty M., "An algorithm for solving the direct kinematics of Stewart-Gough-type platforms", J. of Mechanisms and Machine Theory, Vol. 31(4), 1996, p. 365-379. [Ikits 97] Ikits M, Hollerbach J.M., "Kinematic calibration using a plane constraint", Proc. IEEE Int. Conf. on Robotics and Automation, Albuquerque, April 1997, p. 3191-3196. [Innocenti 93] Innocenti C., Parenti-Castelli V., "Direct kinematics in analytical form of a general geometry 5-4 fully parallel manipulator", in Computational kinematics, J. Angeles et al. Eds., Klumer Academic Publishers, 1993, p. 141-152. [Innocenti 95] Innocenti C., "Analytical-form direct kinematics for the second scheme of a 5-5 general-geometry fully parallel manipulator", J. of Robotic Systems, Vol. 12(10), 1995, p. 661-676. [Inoue 85] Inoue H., Tsusaka Y., Fukuizumi T., "Parallel manipulator", Proc. 3rd Int. Symp. of Robotics Research, Gouvieux, October 1985, p. 69-75. [Izaguirre 86] Izaguirre A., Paul R.C.P., "Automatic generation of the dynamic equations of the robot manipulators using a LISP program", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 220-226. [Ji 93] Ji Z.,”Study of the effect of leg inertia in Stewart platform”, In IEEE Int. Conf. on Robotics and Automation, p. 121-126, Atlanta, May 1993. [Judd 90] Judd R., Knasinski A., "A technique to calibrate industrial robots with experimental verification", IEEE Trans. on Robotics and Automation, Vol. RA-6(1), 1990, p. 20-30. [Kahn 69] Kahn M.E., "The near minimum time control of open loop articulated kinematic chains", Ph. D. Thesis, Stanford University, Stanford, December 1969.

Page 173: Modeling and Control of Manipulators - Part I: Geometric

480 Modeling, identification and control of robots

[Kanade 84] Kanade T., Khosla P.,Tanaka N., "Real-time control of the CMU direct-drive arm II using customized inverse dynamics", Proc. 23rd IEEE Conf. on Decision and Control, Las Vegas, December 1984, p. 1345-1352. [Kane 83] Kane T.R., Levinson D., "The use of Kane's dynamical equations in robotics", The Int. J. of Robotics Research, Vol. 2(3), 1983, p. 3-21. [Kawasaki 88] Kawasaki H., Nishimura K., "Terminal-link parameter estimation and trajectory control of robotic manipulators", IEEE J. of Robotics and Automation, Vol. RA-4(5), p. 485-490, 1988. [Kawasaki 96] Kawasaki H., Takahiro B., Kazuo K., "An efficient algorithm for the model-based adaptive control of robotic manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-12(3), 1996, p. 496-501. [Kazerooni 86] Kazerooni H., Sheridan T., Houpt P., "Robust compliant motion for manipulators", Parts I and II, IEEE J. of Robotics and Automation, Vol. RA-2(2), 1986, p.83-105. [Kazerounian 86] Kazerounian K., Gupta K.C., "Manipulator dynamics using the extended zero reference position description", IEEE J. of Robotics and Automation, Vol. RA-2(4), 1986, p. 221-224. [Kelly 88] Kelly R., Ortega R., "Adaptive control of robot manipulators: an input-output approach", Proc. IEEE Int. Conf. on Robotics and Automation, Philadelphia, April 1988, p. 699-703. [Kelly 95] Kelly R., "A tuning procedure for stable PID control of robot manipulators", Robotica, Vol. 13, 1995, p. 141-148. [Khalil 76] Khalil W., "Modélisation et commande par calculateur du manipulateur MA-23 ; extension à la conception par ordinateur des manipulateurs", Thèse de Docteur-Ingénieur, USTL, Montpellier, France, September 1976. [Khalil 78] Khalil W., "Contribution à la commande automatique des manipulateurs avec l'aide d'un modèle mathématique des mécanismes", Thèse d'Etat, USTL, Montpellier, France, October 1978. [Khalil 79] Khalil W., Liegeois A., Fournier A., "Commande dynamique des robots", Revue RAIRO Automatique / Systems Analysis and Control, Vol. 13(2), 1979, p. 189-201. [Khalil 85a] Khalil W., Kleinfinger J.-F., "Une modélisation performante pour la commande dynamique de robots", Revue RAIRO, APII, Vol. 6, 1985, p. 561-574. [Khalil 85b] Khalil W., Gautier M., "Identification of geometric parameters of robots", Proc. IFAC Symp. on Robot Control, SYROCO'85, Barcelone, November 1985, p. 191-194. [Khalil 86a] Khalil W., Kleinfinger J.-F., "A new geometric notation for open and closed-loop robots", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 1174-1180. [Khalil 86b] Khalil W., "On the explicit derivation of the inverse geometric models of robots", Proc. IMACS-IFAC Symp., Villeneuve d'Ascq, June 1986, p. 541-546. [Khalil 86c] Khalil W., Kleinfinger J.-F., Gautier M., "Reducing the computational burden of the dynamic model of robots", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 525-531.

Page 174: Modeling and Control of Manipulators - Part I: Geometric

References 481

[Khalil 87a] Khalil W., Chevallereau C., "An efficient algorithm for the dynamic control of robots in the cartesian space", Proc. 26th IEEE Conf. on Decision and Control, Los Angeles, December 1987, p. 582-588. [Khalil 87b] Khalil W., Kleinfinger J.-F., "Minimum operations and minimum parameters of the dynamic model of tree structure robots", IEEE J. of Robotics and Automation, Vol. RA-3(6), December 1987, p. 517-526. [Khalil 89a] Khalil W., Bennis F., Chevallereau C., Kleinfinger J.-F., "SYMORO: a software package for the symbolic modelling of robots", Proc. 20th Int. Symp. on Industrial Robots, Tokyo, October 1989, p. 1023-1030. [Khalil 89b] Khalil W., Bennis F., Gautier M., "Calculation of the minimum inertial parameters of tree structure robots", Proc. Int. Conf. on Advanced Robotics, ICAR'89, Columbus, USA, Springer-Verlag, New York, 1989, p. 189-201. [Khalil 89c] Khalil. W., Caenen. J.-L., Enguehard. C., "Identification and calibration of the geometric parameters of robots", Proc. 1st Experimental Robot Conference, Montreal, 1989, Springer-Verlag, New York, Vol. 139, p. 528-538. [Khalil 90a] Khalil W., Bennis F., Gautier M., "The use of the generalized links to determine the minimum inertial parameters of robots", J. of Robotic Systems, Vol. 7(2), 1990, p. 225-242. [Khalil 90b] Khalil W., Bennis F., "Calcul de la matrice d'inertie des robots à chaîne ouverte simple ou arborescente", Rapport interne n° 90-09, LAN-ENSM, April 1990. [Khalil 90c] Khalil W., Bennis F., "Automatic generation of the inverse geometric model of robots", J. of Robotics and Autonomous Systems, Vol. 7, 1991, p. 1-10. [Khalil 91a] Khalil W., Gautier M., "Calculation of the identifiable parameters for robot calibration", Proc. IFAC Symp. on Identification and System Parameter Estimation, Budapest, 1991, p. 888-892. [Khalil 91b] Khalil W., Gautier, M., Enguehard C.,"Identifiable parameters and optimum configurations for robot calibration", Robotica, Vol. 9, 1991, p. 63-70. [Khalil 93] Khalil W., Gautier M., "Computed current control of robots", Proc. IFAC 12th

World Congress, Sydney, Australie, July 1993, Vol. IV, p. 129-132. [Khalil 94a] Khalil W., Bennis F., "Comments on Direct Calculation of Minimum Set of Inertial Parameters of Serial Robots", IEEE Trans. on Robotics and Automation, Vol. RA-10(1), 1994, p. 78-79. [Khalil 94b] Khalil W., Murareci D., "On the general solution of the inverse kinematics of six-degrees-of-freedom manipulators", Proc. Int. Workshop on Advances in Robot Kinematics, ARK 94, Slovénie, July 1994. [Khalil 95a] Khalil W., Bennis F., "Symbolic calculation of the base inertial parameters of closed-loop robots", The Int. J. of Robotics Research, Vol. 14(2), April 1995, p. 112-128. [Khalil 95b] Khalil W., Garcia G., Delagarde J.-F. "Calibration of the geometric parameters of robots without external sensors", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995, p. 3039-3044. [Khalil 96a] Khalil W., Restrepo P.P., "An efficient algorithm for the calculation of the filtred dynamic model of robots", Proc. IEEE Int. Conf. on Robotics and Automation, Minneapolis, April 1996, p. 323-329.

Page 175: Modeling and Control of Manipulators - Part I: Geometric

482 Modeling, identification and control of robots

[Khalil 96b] Khalil W., Lemoine P., Gautier M., "Autonomous calibration of robots using planar points", Proc. 6th Int. Symp. on Robotics and Manufacturing, WAC'96, Vol. 3, Montpellier, May 1996, p. 383-388. [Khalil 96c] Khalil W., Murareci D., "Kinematic analysis and singular configuration of a class of parallel robots", J. of Mathematic and Computer in Smulation, n°1245, 1996, p. 1-14. [Khalil 97a] Khalil W., Creusot D., "SYMORO+: a system for the symbolic modelling of robots", Robotica, Vol. 15, 1997, p. 153-161. [Khalil 97b] Khalil W., Murareci D., "Autonomous calibration of parallel robots", Proc. IFAC Symp. on Robot Control, SYROCO'97, Nantes, September 1997, p. 425-430. [Khalil 99] Khalil W., Lemoine Ph., "Gecaro: A system for the geometric calibration of robots", APII-Jesa, Vol.33, n°5-6 July,1999, p.717-739. [Khalil 99a] Khalil W., Lemoine P., "Gecaro: a system for the geometric calibration of robots", Revue APII-JESA, Vol. 33(5-6), 1999, p. 717-739. [Khalil 99b] Khalil W., Besnard S., "Self calibration of Stewart-Gough parallel robots without extra sensors", IEEE Trans. on Robotics and Automation, Vol. RA-15(6), p. 1116-1121, December 1999. [Khalil 00a] Khalil W., Gautier M., "Modeling of mechanical systems with lumped elasticity", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 2000, p. 3965-3970. [Khalil 00b] Khalil W., Besnard S., Lemoine P., "Comparison study of the geometric parameters calibration methods ", Int. J. of Robotics and Automation, Vol. 15(2), 2000, p. 56- 67. [Khalil 03] Khalil W., ed. "Commande des robots", Série IC2, Hermès, 2002. [Khalil 2002] Khalil W. Dombre E., Modeling, identification and control of robots, Hermes Penton, London, 2002. [Khalil 2004] Khalil W. and Guegan S., “Inverse and Direct Dynamic Modeling of Gough-Stewart Robots”, IEEE Transactions on Robotics and Automation, 20(4), p. 754-762, 2004. [Khalil 2007] Khalil W., Ibrahim O., “General solution for the Dynamic modeling of parallel robots”, Journal of Intelligent and Robotic Systems, Vol.49, 2007, p.19-37. [Khalil 2007a] W.Khalil W., Gautier M., Lemoine Ph., “ Identification of the payload inertial parameters of industrial manipulators”, ICRA 07, Rome, April 2007 [Khalil 2007] Khalil W., G. Gallot G., Boyer F., “Dynamic Modeling and Simulation of a 3-D Serial Eel-Like Robot”, IEEE Transactions on Systems, Man and Cybernetics, Part C: Application and reviews, Vol. 37, N° 6, November 2007. [Khalil 2010] W.Khalil, « Dynamic modeling of Robots using Newton-Euler Formulation”, Lecture Notes in Electrical Engineering 89, Informatics in Control, Automation and Robotics, J.A.Cetto, J-L Ferrier, J. Filipe (editors), 2010, p. 3-20, Springer. [Khatib 80] Khatib O., "Commande dynamique dans l'espace opérationnel des robots-manipulateurs en présence d'obstacles", Thèse de Docteur-Ingénieur, Ecole Nationale Supérieure de l'Aéronautique et de l'Espace, Toulouse, France, December 1980.

Page 176: Modeling and Control of Manipulators - Part I: Geometric

References 483

[Khatib 87] Khatib O., "A unified approach for motion and force control of robot manipulators: the operational space formulation", IEEE J. of Robotics and Automation, Vol. RA-3(1), February 1987, p. 43-53. [Khelfi 95] Khelfi M.-F, "Observateurs non linéaires : application à la commande des robots manipulateurs", Thèse de Doctorat, Université Poincaré Nancy I, France, 1995. [Kholi 85] Kholi D., Spanos J., "Workspace analysis of mechanical manipulators using polynomial discriminants", J. of Mechanisms, Transmissions, and Automation in Design, Vol. 107, June 1985, p. 209-215. [Kholi 87] Kholi D., Hsu M.S., "The jacobian analysis of workspaces of mechanical manipulators", J. of Mechanisms and Machine Theory, Vol. 22(3), 1987, p. 265-275. [Khosla 85] Khosla P.K., Kanade T., "Parameter identification of robot dynamics", Proc. 24th IEEE Conf. on Decision and Control, Fort-Lauderdale, December 1985, p. 1754-1760. [Khosla 86] Khosla P.K., "Real-time control and identification of direct drive manipulators", Ph. D. Thesis, Carnegie Mellon University, Pittsburgh, 1986. [Kircánski 85] Kircánski M., Vukobratovic M., "Computer-aided generation of manipulator kinematic models in symbolic form", Proc. 15th Int. Symp. on Industrial Robots, Tokyo, September 1985, p. 1043-1049. [Klein 83] Klein C.A., Huang C., "Review of pseudo inverse control for use with kinematically redundant manipulators", IEEE Trans. on Systems, Man, and Cybernetics, Vol. SMC-13(2), 1983, p. 245-250. [Klein 84] Klein C.A., "Use of redundancy in the design of robotic systems", Proc. 2nd Int. Symp. of Robotic Research, Kyoto, August 1984, p. 58-65. [Klein 95] Klein C.A., Chu-Jenq, Ahmed S., "A new formulation of the extended Jacobian method and its use in mapping algorithmic singularities for kinematically redundant manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-11(1), 1995, p. 50-55. [Kleinfinger 86a] Kleinfinger J.-F, "Modélisation dynamique de robots à chaîne cinématique simple, arborescente ou fermée, en vue de leur commande", Thèse de Doctorat, ENSM, Nantes, France, May 1986. [Kleinfinger 86b] Kleinfinger J.-F, Khalil W., "Dynamic modelling of closed-chain robots", Proc. 16th Int. Symp. on Industrial Robots, Bruxelles, September-October 1986, p. 401-412. [Klema 80] Klema V.C., Lanio A.J., "The singular value decomposition: its computation and some applications", IEEE Trans. on Automatic Control, Vol. AC-25(2), 1980, p. 164-176. [Koditschek 84] Koditschek D.E., "Natural motion for robot arms", Proc. 23rd IEEE Conf. on Decision and Control, Las Vegas, December 1984, p. 737-735. [Konstantinov 81] Konstantinov M.S., Markov M.D., Nenchev D.N., "Kinematic control of redundant manipulators", Proc. 11th Int. Symp. on Industrial Robots, Tokyo, October 1981, p. 561-568. [Korrami 88] Korrami F., Özgnüner U., "Decentralized control of robot manipulators via state and proportional-integral feedback", Proc. IEEE Int. Conf. on Robotics and Automation, Philadelphia, April 1988, p. 1198-1203. [Kreuzer 79] Kreuzer E.J., "Dynamical analysis of mechanisms using symbolical equation manipulation", Proc. 5th World Congress on Theory of Machines and Mechanisms, Montréal, 1979, p. 599-602.

Page 177: Modeling and Control of Manipulators - Part I: Geometric

484 Modeling, identification and control of robots

[Landau 79] Landau I. D, Adaptive control; The model reference approach, Marcel Dekker Inc. New York, 1979. [Landau 88] Landau I. D., Horowitz R., "Synthesis of adaptive controllers for robot manipulators using a passive feedback system approach", Proc. IEEE Int. Conf. on Robotics and Automation, Philadelphia, April 1988, p. 1028-1033. [Lavallée 92] Lavallée S., "Procédé d'étalonnage d'un robot", Brevet n° FR 2 696 969 du 21/10/92. [Lawson 74] Lawson C.L., Hanson R.J., Solving Least Squares Problems, Prentice-Hall, Englewood Cliffs, 1974. [Lazard 92] Lazard D., "Stewart platforms and Grübner basis", Proc. 3rd Int. Workshop on Advances in Robot Kinematics, ARK 92, 1992, p. 136-142. [Le Borzec 75] Le Borzec R., Lotterie J., Principes de la théorie des mécanismes, Dunod, 1975. [Lebret 93] Lebret G., Liu G. K, Lewis, F. L., “Dynamic analysis and control of a Stewart platform manipulator”, J. of Robotic Systems 10(5), p. 629-655, July 1993. [Lee 83] Lee C.S.G., Ziegler M., "A geometric approach in solving the inverse kinematics of PUMA robots", Proc. 13th Int. Symp. on Industrial Robots, Chicago, April 1983, p. (16-1)-(16-18). [Lee 88] Lee H.Y, Liang C.G.,"Displacement analysis of the general 7-link 7R mechanism", J. of Mechanism and Machine Theory, Vol. 23(3), 1988, p. 219-226. [Lee 88b]Lee K. M, Shah D. K, ”Dynamic analysis of a three-degrees-of-freedom in-parallel actuated manipulator”, IEEE J. of Robotics and Automation 4(3), p.361-368, June 1988. [Lee 93] Lee H.Y., Roth B., "A closed-form solution of the forward displacement analysis of a class of in-parallel robots", Proc. IEEE Int. Conf. on Robotics and Automation, Atlanta, May 1993, p. 720-724. [Léon 91] Léon J.-C., Modélisation et construction de surfaces pour la CFAO, Hermès, Paris, 1991. [Lewis 93] Lewis F.L., Abdallah C.T., Dawson D.M., Control of robot manipulators, Macmillan, New York, 1993. [Li 89] Li W., Slotine J.-J.E., "An indirect adaptive robot controller", Systems & Control Letters, Vol. 12, 1989, p. 259-266. [Liégeois 79] Liégeois A., Dombre E., "Analyse des robots industriels ; relations entre structures, performances et fonctions", Rapport IRIA n° 79102, Projet SURF, LAM, Montpellier, 1979. [Liu 2000]Liu M-J., Li C-X., Li C-N., “Dynamics analysis of the Gough-Stewart platform manipulator”, IEEE Transaction on Robotics and Automation, 16(1), p. 94-98 (February 2000). [Lilly 90] Lilly K.W., Orin D.E., "Efficient O(N) computation of the operational space inertia matrix", Proc. IEEE Int. Conf. on Robotics and Automation, Cincinnati, May 1990, p. 1014-1019.

Page 178: Modeling and Control of Manipulators - Part I: Geometric

References 485

[Lin 83] Lin C.S., Chang P.R., Luh J.Y.S., "Formulation and optimization of cubic polynomial joint trajectories for industrial robots", IEEE Trans. on Automatic Control, Vol. AC-28(12), December 1983, p. 1066-1073. [Lin 92] Lin W., Griffis M., Duffy J., "Forward displacement analysis of the 4-4 Stewart platforms", Trans. of the ASME, J. of Mechanical Design, Vol. 114, September 1992, p. 444-450. [Llibre 83] Llibre M., Mampey R., Chrétien J.P., "Simulation de la dynamique des robots manipulateurs motorisés", Congrès AFCET : Productique et Robotique Intelligente, Besançon, November 1983, p. 197-207. [Lloyd 96] Llyod J.E., "Using Puiseux series to control non-redundant robots at singularities", Proc. IEEE Int. Conf. on Robotics and Automation, Minneapolis, April 1996, p. 1877-1882. [Lu 93] Lu Z., Shimoga K.B., Goldberg A., "Experimental determination of dynamic parameters of robotic arms", J. of Robotic Systems, Vol. 10(8), 1993, p. 1009-1029. [Luh 80a] Luh J.Y.S., Walker M.W., Paul R.C.P., "Resolved-acceleration control of mechanical manipulators", IEEE Trans. on Automatic Control, Vol. AC-25(3), June 1980, p. 468-474. [Luh 80b] Luh J.Y.S., Walker M.W., Paul R.C.P., "On-line computational scheme for mechanical manipulators", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 102(2), 1980, p. 69-76. [Luh 85a] Luh J.Y.S., Gu Y.L., "Industrial robots with seven joints", Proc. IEEE Int. Conf. on Robotics and Automation, St Louis, March 1985, p. 1010-1015. [Luh 85b] Luh J.Y.S., Zheng Y.F., "Computation of input generalized forces for robots with closed kinematic chain mechanisms", IEEE J. of Robotics and Automation, Vol. RA-1(2), 1985, p. 95-103. [Ma 91] Ma O., Angeles J., "Architecture singularities of platform manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, Sacramento, April 1991, p. 1542-1547. [Maciejewski 85] Maciejewski A.A., Klein C.A., "Obstacle avoidance for kinematically redundant manipulators in dynamically varying environments", The Int. J. of Robotics Research, Vol. 4(3), Fall 1985, p. 109-117. [Maciejewski 88] Maciejewski A.A., Klein C.A., "Numerical filtering operation of robotic manipulators throuh kinematically singular configurations", J. of Robotic Systems, Vol. 5(6), 1988, p. 527-552. [Maciejewski 89] Maciejewski A.A., Klein C.A., "The singular value decomposition: computation and applications to robotics", The Int. J. of Robotics Research, Vol. 8(6), 1989, p. 63-79. [Manaoui 85] Manaoui O., "Calcul automatique de transformateurs de coordonnées analytiques de robots à partir de classes de solutions préétablies", Rapport de DEA, USTL, Montpellier, July 1985. [Mansard 2006] Mansard N. Enchaînement de tâches robotiques. PhD thesis, Université de Rennes 1, Mention informatique, December 2006. [Mansard 2007] Mansard N., Chaumette, “Task sequencing for sensor-based control,” IEEE Trans. Robotics, vol. 23, no. 1, pp. 60–72, Feb. 2007.

Page 179: Modeling and Control of Manipulators - Part I: Geometric

486 Modeling, identification and control of robots

[Mason 82] Mason M.T., "Compliant motion", in Robot motion: planning and control, M. Brady et al. Eds., MIT Press, Cambridge, 1982. [Maurine 96] Maurine P., "Développement et mise en œuvre de méthodologies d'étalonnage de robots manipulateurs industriels", Thèse de Doctorat, Université Montpellier II, France, December 1996. [Mavroidis 93] Mavroidis C., "Résolution du problème géométrique inverse pour les manipulateurs série à six degrés de liberté", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, May 1993. [Mayeda 84] Mayeda H., Osuka K., Kangawa A., "A new identification method for serial manipulator arms", Proc. IFAC 9th World Congress, Budapest, July 1984, p. 74-79. [Mayeda 90] Mayeda H., Yoshida K., Osuka K., "Base parameters of manipulator dynamic models", IEEE Trans. on Robotics and Automation, Vol. RA-6(3), 1990, p. 312-321. [Megahed 82] Megahed S., Renaud M., "Minimization of the computation time necessary for the dynamic control", Proc. 12th Int. Symp. on Industrial Robots, Paris, June 1982, p. 469-478. [Megahed 84] Megahed S., "Contribution à la modélisation géométrique et dynamique des robots manipulateurs ayant une structure de chaîne cinématique simple ou complexe ; application à leur commande", Thèse d'Etat, UPS, Toulouse, France, July 1984. [Mendel 73] Mendel J.M., Discrete techniques of parameter estimation: the equation error formulation, Marcel Dekker Inc. New York, 1973. [Merlet 86] Merlet J.-P., "Contribution à la formalisation de la commande par retour d'effort en robotique ; application à la commande de robots parallèles", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, June 1986. [Merlet 89] Merlet J.-P., "Singular configurations of parallel manipulators and Grassmann geometry", The Int. J. of Robotics Research, Vol. 8(5), October 1989, p. 45-56. [Merlet 93] Merlet J.-P, "Closed-form resolution of the direct kinematics of parallel manipulators using extra sensor data", Proc. IEEE Int. Conf. on Robotics and Automation, Atlanta, May 1993, p. 200-204. [Merlet 2000] Merlet J.-P., Parallel robots, Kluwer Academic Publ., Dordrecht, The Netherland, 2000. [Middleton 88] Middleton R.H., Goodwin G.C., "Adaptive computed torque control for rigid link manipulators", Systems & Control Letters, Vol. 10, 1988, p. 9-16. [Milenkovic 83] Milenkovic V., Huang B., "Kinematics of major robot linkage", Proc. 13th Int. Symp. on Industrial Robots, Chicago, April 1983, p. 16.31-16.47. [Miller 2004] Miller K., “Optimal Design and Modeling of Spatial Parallel Manipulators”, The Int. J. of Robotics Research, Vol. 23(2), p.127-140 (February 2004). [Mooring 91] Mooring B.W., Roth Z.S., Driels M.R., Fundamentals of manipulator calibration, John Wiley & Sons, New York, 1991. [Morel 94] Morel G., "Programmation et adaptation d'impédance de manipulateurs au contact", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, June 1994.

Page 180: Modeling and Control of Manipulators - Part I: Geometric

References 487

[Moroskine 1954] Moroskine, Y. F. "General analysis of the theory of mechanisms." Akad Nauk SSSR, Trudy Sem, Teorii Masin i Mekhanizmov, 1954, vol. 14, p. 25-50. [Moroskine 1958] Moroskine, Y. F. "On the geometry of complex kinematic chains." Sov Phys-Dokl., 1958, vol. 3, n˚ 2, p. 269-272. [Murareci 97] Murareci D., "Contribution à la modélisation géométrique et à l'étalonnage des robots séries et parallèles", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, March 1997. [Murphy 93] Murphy S.H., Wen J.T.U, "Analysis of active manipulator elements in space manipulation", IEEE Trans. on Robotics and Automation, Vol. RA-9(5), October 1993, p. 544-552. [Murray 84] Murray J.J., Newman C.P., "ARM: an algebraic robot dynamic modeling program", Proc. IEEE Int. Conf. on Robotics and Automation, Atlanta, March 1984, p. 103-104. [Nahvi 94] Nahvi A., Hollerbach J.M., Hayward V., "Calibration of parallel robot using multiple kinematic closed loops", Proc. IEEE Int. Conf. on Robotics and Automation, San Diego, May 1994, p. 407-412. [Nakamura 86] Nakamura Y., Hanafusa Y., "Inverse kinematic solutions with singularity robustness for robot manipulator control", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 108, 1986, p. 163-171. [Nakamura 87] Nakamura Y., Hanafusa Y., Yoshikawa T., "Task-priority based redundancy control of a robot manipulator", The Int. J. of Robotics Research, Vol. 6(2), 1987, p. 3-15. [Nanua 90] Nanua P., Waldron K.J., Murthy V., "Direct kinematic solution of a Stewart platform", IEEE Trans. on Robotics and Automation, Vol. RA-6(4), 1990, p. 438-444. [Nenchev 92] Nenchev D.N., "Restricted jacobian matrices of redundant manipulators in constrained motion tasks", The Int. J. of Robotics Research, Vol. 11(6), 1992, p. 584-597. [Nevins 73] Nevins J.L., Whitney D.E., "The force vector assembler concept", Proc. 1st CISM-IFToMM Symp. on Theory and Practice of Robots and Manipulators, Udine, September 1973, p. 273-288. [Nevins 77] Nevins J.L. et al., "Exploratory research in industrial modular assembly", Charles Stark Draper Lab., Report R-1111, 1977. [Newman 79] Newman W.H., Sproull R.F., Principles of interactive computer graphics, McGraw Hill, New York, 1979. [Nicosia 84] Nicosia S., Tomei P., "Model reference adaptive control algorithms for industrial robots", Automatica, Vol. 20(5), 1984, p. 635-644. [Nicosia 90] Nicosia S, Tomei P., "Robot control by using only joint position measurements", IEEE Trans. on Automatic Control, Vol. AC-35(5), 1990, p. 1058-1061. [Nielsen 91] Nielsen L., Canudas de Wit C., Hagander P., "Controllability issues of robots near singular configurations", in Advanced Robot Control, Lecture Notes in Control and Information Sciences, Springer-Verlag, New York, 1991, p. 307-314. [Olsen 86] Olsen H.B., Bekey G.A., "Identification of robot dynamics", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, April 1986, p. 1004-1010.

Page 181: Modeling and Control of Manipulators - Part I: Geometric

488 Modeling, identification and control of robots

[Orin 79] Orin D.E., McGhee R.B., Vukobratovic M., Hartoch G., "Kinematic and kinetic analysis of open-chain linkages utilizing Newton-Euler methods", Mathematical Biosciences, Vol. 43, 1979, p. 107-130. [Ortega 89] Ortega R., Spong M.W., "Adaptive motion control of rigid robots: a tutorial", Automatica, Vol. 25(6), 1989, p. 877-888. [Paden 88] Paden B, Panja R., "Globally asymptotically stable 'PD+' controller for robot manipulator", Int. J. Control, Vol. 47, 1988, p. 877-888. [Paul 72] Paul R.C.P., "Modelling, trajectory calculation, and servoing of a computer controlled arm", Ph. D. Thesis, Stanford Artificial Intelligence Lab., Stanford, 1972. [Paul 81] Paul R.C.P., Robot manipulators: mathematics, programming and control, MIT Press, Cambridge, 1981. [Payannet 85] Payannet D., "Modélisation et correction des erreurs statiques des robots manipulateurs", Thèse de Doctorat, USTL, Montpellier, France, 1985. [Penrose 55] Penrose R., "A generalized inverse for matrices", Proc. Cambridge Philos. Soc., Vol. 51, 1955, p. 406-413. [Perdereau 91] Perdereau V., "Contribution à la commande hybride force-position", Thèse de Doctorat, Université Pierre et Marie Curie, Paris, France, February 1991. [Pham 91a] Pham C., Chedmail P., Gautier M., "Determination of base parameters of flexible links manipulators", Proc. IMACS MCTS Symposium, Modelling and Control of Technological Systems, Lille, May 1991, Vol. 1, p. 524-529. [Pham 91b] Pham C., Gautier M., "Essential parameters of robots", Proc. 30th IEEE Conf. on Decision and Control, Brighton, December 1991, p. 2769-2774. [Pham 2001] Pham M.T., Gautier M., Poignet P., "Identification of joint stiffness with bandpass filtering", Int. Conf. on Robotics and Automation, Seoul, Korea, mai 2001. [Pieper 68] Pieper D.L., "The kinematics of manipulators under computer control", Ph. D. Thesis, Stanford University, 1968. [Pierrot 91a] Pierrot F., "Robots pleinement parallèles légers : conception, modélisation et commande", Thèse de Doctorat, Université Montpellier II, France, April 1991. [Pierrot 91b] Pierrot F., Fournier A., Dauchez P.,"Towards a fully-parallel six dof robot for hight-speed applications", Proc. IEEE Int. Conf. on Robotics and Automation, Sacramento, April 1991, p. 1288-1293. [Pledel 96] Pledel P., "Génération de mouvements optimaux pour un robot manipulateur", Thèse de doctorat, Université de Nantes et Ecole Centrale de Nantes, France, September 1996. [Poignet 2000] Poignet P., Gautier M., "Comparison of weighted least squares and extended kalman filtering methods for dynamic identification of robots", Proc. IEEE Int. Conf. on Robotics and Automation, San Francisco, 2000, p. 3622-3627. [Popov 73] Popov V.M., Hyperstability of control systems, Springer-Verlag, New York, 1973. [Potkonjak 86] Potkonjak V., "Thermal criterion for the selection of DC drives for industrial robots", Proc. 16th Int. Symp. on Industrial Robots, Bruxelles, September-October 1986, p. 129-140.

Page 182: Modeling and Control of Manipulators - Part I: Geometric

References 489

[Powell 64] Powell, M.J.D., "An efficient method for finding the minimum of a function of several variables without calculating derivatives", The Computer Journal, Vol. 7, 1964, p. 155-162. [Pressé 93] Pressé C., Gautier M., "New criteria of exciting trajectories for robot identification", Proc. IEEE Int. Conf. on Robotics and Automation, Atlanta, May 1993, p. 907-912. [Pressé 94] Pressé C., Identification des paramètres dynamiques des robots", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, October 1994. [Priel 90] Priel M., Les robots industriels : caractéristiques, performance et choix, Collection AFNOR Technique, 1990. [Prüfer 94] Prüfer M.,Schmidt C., Wahl F., "Identification of robots dynamics with differential and integral models: a comparison", Proc. IEEE Int. Conf. on Robotics and Automation, San Diego, May 1994, p. 340-345. [Pujas 95] Pujas A., "Etude de la robustesse de schémas de commande position / force pour robots à deux bras", Thèse de Doctorat, Université Montpellier II, France, June 1995. [Qu 91] Qu Z., Dorsey J., "Robust PID control of robots", Int. J. Robotics and Automation, Vol. 6(4), 1991, p. 228-235. [Raghavan 90] Raghavan M., Roth B., "Inverse kinematics of thegeneral 6R manipulator and related linkages", Trans. of the ASME, J. of Mechanical Design, Vol. 115, 1990, p. 502-508. [Raghavan 91] Raghavan M., "The Stewart platform of general geometry has 40 configurations", in Advances in Design Automation, ASME Press, New-York, 1991, p. 397-402. [Raibert 77] Raibert M.H., "Analytic equations vs. table look-up for manipulation: a unifying concept", Proc. 16th IIEEE Conf. on Decision and Control, New Orleans, 1977, p. 576-579. [Raibert 78] Raibert M.H., Horn B.K.P., "Manipulator control using the configuration space method", The Industrial Robot, Vol. 5( 2), 1978, p. 69-73. [Raibert 81] Raibert M.H., Craig J.J., "Hybrid position/force control of manipulators", Trans. of the ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 103, June 1981, p. 126-133. [Raucent 90] Raucent B., "Identification des paramètres dynamiques des robots manipulateurs", Thèse de Doctorat, Université de Louvain, Belgium, 1990. [Raucent 92] Raucent B., Bastin G., Campion G., Samin J.-C., Willems P.Y., "Identification of barycentric parameters of robotic manipulators from external measurements", Automatica, Vol. 28(5), 1992, p. 1011-1016. [Reboulet 85] Reboulet C., Robert A., "Hybrid control of a manipulator equipped with an active compliant wrist", Proc. 3rd Int. Symp. of Robotics Research, Gouvieux, October 1985, p. 76-80. [Reboulet 88] Reboulet C., "Modélisation des robots parallèles", in Techniques de la robotique : architectures et commandes, Hermès, Paris, 1988. [Reboulet 91]Reboulet C., Berthomieu T., “Dynamic models of a six degree of freedom parallel manipulators”, In proceeding ICAR, p.1153-1157, Pise, June 1991. [Renaud 75] Renaud M., "Contribution à l'étude de la modélisation et de la commande des

Page 183: Modeling and Control of Manipulators - Part I: Geometric

490 Modeling, identification and control of robots

systèmes mécaniques articulés", Thèse de Docteur-Ingénieur, UPS, Toulouse, France, December 1975. [Renaud 80a] Renaud M., "Contribution à la modélisation et à la commande dynamique des robots manipulateurs", Thèse d'Etat, UPS, Toulouse, France, September 1980. [Renaud 80b] Renaud M., "Calcul de la matrice jacobienne nécessaire à la commande coordonnée d'un manipulateur", J. of Mechanism and Machine Theory, Vol. 15(1), 1980, p. 81-91. [Renaud 85] Renaud M., "A near minimum iterative analytical procedure for obtaining a robot-manipulator dynamic model", IUTAM/IFToMM Symp. on Dynamics of Multi-body Systems, Udine, 1985. [Renaud 87] Renaud M., "Quasi-minimal computation of the dynamic model of a robot manipulator utilizing the Newton-Euler formalism and the notion of augmented body", Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 1677-1682. [Restrepo 95] Restrepo P.P., Gautier M., "Calibration of drive chain of robot joints", Proc. 4th IEEE Conf. on Control Applications, CCA'95, Albany, 1995, p. 526-531. [Restrepo 96] Restrepo P.P., Contribution à la modélisation, identification et commande des robots à structures fermées : application au robot Acma SR400", Thèse de Doctorat, Université de Nantes et Ecole Centrale de Nantes, France, October 1996. [Richalet 98] Richalet J., Pratique de l'identification, 2ième édition, Hermès, Paris, 1998. [Robert 86] Robert A., "Commande hybride position-force ; mise en œuvre et expérimentation sur un micro-ordinateur parallèle", Thèse de Docteur-Ingénieur, Ecole Nationale Supérieure de l'Aéronautique et de l'Espace, Toulouse, France, December 1986. [Roberts 65] Roberts L.G., "Homogeneous matrix representation and manipulation of N-dimensional constructs", MIT Lincoln Lab., MS 1405, May 1965. [Rocco 96] Rocco P., "Stability of PID control for industrial robot arms", IEEE Trans. on Robotics and Automation, Vol. RA-12(4), 1996, p. 607-614. [Roth 76] Roth B., "Performance evaluation of manipulators from a kinematic viewpoint", Cours de Robotique, IRIA, Toulouse, 1976, p. 233-263. [Roth 87] Roth Z.S., Mooring B.W., Ravani B., "An overview of robot calibration", IEEE J. of Robotics and Automation, Vol. RA-3(5), October 1987, p. 377-385. [Sadegh 87] Sadegh N., Horowitz R., "Stability analysis of an adaptive controller for robotic manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 1223-1229. [Sadegh 90] Sadegh N., Horowitz R., "Stability and robustness analysis of a class of adaptive controllers for robotic manipulators", The Int. J. of Robotics Research, Vol. 9(3), 1990, p. 74-92. [Salisbury 80] Salisbury J.K., "Active stiffness control of a manipulator in cartesian coordinates", Proc. 19th IEEE Conf. on Decision and Control, Albuquerque, December 1980, p. 95-100. [Salmon 1885] Salmon G., Lessons introductory to the modern higher algebra, Chelsea Publishing CO., New York, 1885. [Samson 83] Samson C., "Problèmes en identification et commande de systèmes dynamiques", Thèse d'Etat, Rennes, France, 1983.

Page 184: Modeling and Control of Manipulators - Part I: Geometric

References 491

[Samson 87] Samson C., "Robust control of a class of non-linear systems and applications to robotics", Int. J. of Adaptive Control and Signal Processing, Vol. 1, 1987, p. 49-68. [Samson 91] Samson C., Le Borgne M., Espiau B., Robot Control, Oxford University Press, Oxford, 1991. [Schefer 82] Schefer B., "Geometric control and calibration method of an industrial robot", Proc. 12th Int. Symposium on Industrial Robotics, Paris, 1982, p. 331-339. [Sciavicco 94] Sciavicco L., Siciliano B., Villani L., "On dynamic modelling of gear-driven rigid robot manipulators", Proc. 4th IFAC Symp. on Robot Control, SYROCO'94, Capri, September 1994, p. 543-549. [Sgarbi 92] Sgarbi F., Cammoun R., "Real time trajectory generation using filtering techniques", Proc. 2nd Int. Conf. on Automation, Robotics, and Computer Vision, ICARCV'92, Singapour, September 1992, p. RO-8.5.1-RO-8.5.6. [Sheth 71] Sheth P.N., Uicker J.J., "A generalized symbolic notation for mechanism", Trans. of ASME, J. of Engineering for Industry, Vol. 93, 1971, p. 102-112. [Shiller 94] Shiller Z., "On singular time-optimal control along specified paths", IEEE Trans. on Robotics and Automation, Vol. RA-10(4), 1994, p. 561-566. [Shin 85] Shin K.G., McKay N.D., "Minimum time control of robotic manipulators with geometric path constraints", IEEE Trans. on Automatic Control, Vol. AC-30(6), 1985, p. 531-541. [Siciliano 93] Siciliano B., Villani L., "An adaptive force/position regulator for robot manipulators", Int. J. of Adaptive Control and Signal Processing, Vol. 7, 1993, p. 389-403. [Siciliano 96a] Siciliano B., Villani L., "A passivity-based approach to force regulation and motion control of robot manipulators", Automatica, Vol. 32, 1996, p. 443-447. [Siciliano 96b] Siciliano B., Villani L., "Adaptive compliant control of robot manipulators", Control Engineering Practice, Vol. 4, 1996, p. 705-712. [Siciliano 00] Siciliano B., Villani L., Robot force control, Kluwer Academic Publishers, Boston, 2000. [Siciliano 2008] Siciliano B. Khatib O, eds., Springer hand book of Robotics, Springer Verlag, 2008. [Slotine 87] Slotine J.-J.E., Li W., "Adaptive manipulator control: a case study", Proc. IEEE Int. Conf. on Robotics and Automation, Raleigh, March-April 1987, p. 1312-1400. [Slotine 91] Slotine J.-J.E., Li W., Applied Nonlinear Control, Prentice-Hall, Englewood Cliffs, 1991. [Smith 73] Smith D.A., Chace M.A., Rubens A.C., "The automatic generation of a mathematical model for machinery systems", Trans. of ASME, J. of Engineering for Industry, 1973, Vol. 95, p. 629-635. [Spanos 85] Spanos J., Kholi D., "Workspace analysis of regional structures of manipulators", J. of Mechanisms, Transmissions, and Automation in Design, Vol. 107, June 1985, p. 219-225. [Spetch 88] Spetch R., Isermann R., "On-line identification of inertia, friction and gravitational forces applied to an industrial robot", Proc. IFAC Symp. on Robot Control, SYROCO'88, 1988, p. 88.1-88.6.

Page 185: Modeling and Control of Manipulators - Part I: Geometric

492 Modeling, identification and control of robots

[Spong 87] Spong M.W., "Modeling and control of elastic joint robots", Trans. of the ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 109, 1987, p. 310-319. [Spong 89] Spong M.W., Vidyasagar M., Robot dynamics and control, John Wiley & Sons, New York, 1989. [Spong 90] Spong M.W., ??? [Stepanenko 93] Stepanenko Y., Yuan J., "A reduced order regressor and its application to adaptive robotic control", The Int. J. of Robotics Research, Vol. 12(2), April 1993, p. 180-187. [Stewart 65] Stewart D., "A platform with six degrees of freedom", Proc. of Institution of Mechanical Engineers, Vol. 180, Part 1, n° 15, 1965-1966, p. 371-385. [Sugimoto 85] Sugimoto K., Okada T., "Compensation of positionning errors caused by geometric deviations in robot systems", The 3rd Int. Symp. of Robotics Research, MIT Press, Cambridge, 1985, p. 231-236.

[Sugimoto 89]Sugimoto K., “Computational scheme for dynamic analysis of parallel manipulators”, Transaction of the ASME, J. of mechanics, Transmission and Automation in Design, Vol. 111, p.29-33 (1989). [Swevers 97] Swevers J., Ganseman C., Tükel D.B., DE Schutter, J.D., Van Brussel H., "Optimal robot excitation and identification", IEEE Transactions on Robotics and Automation, Vol.13(5), 1997, p. 730-740. [Takegaki 81a] Takegaki M., Arimoto S., "An adaptive trajectory control of manipulators", Int. J. Control, Vol. 34(2), 1981, p. 219-230. [Takegaki 81b] Takegaki M., Arimoto S., "A new feedback method for dynamic control of manipulators", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 102, 1981, p. 119-125. [Tancredi 95] Tancredi L., "De la simplification et la résolution du modèle géométrique direct des robots parallèles", Thèse de Doctorat, Ecole Nationale Supérieure des Mines de Paris, France, December 1995. [Tang 94] Tang G.R., Lieu L.S., "A study of three robot calibration methods based on flat surfaces", J. of Mechanism and Machine Theory, Vol. 29(2), 1994, p. 195-206. [Taylor 79] Taylor R.H., "Planning and execution of straight line manipulator trajectories", IBM J. of Research and Development, Vol. 23(4), July 1979, p. 424-436. [Thérond 96] Thérond X., Dégoulange E., Dombre E., Pierrot F., "Force control of a medical robot for arterial diseases detection", Proc. 6th Int. Symp. on Robotics and Manufacturing, WAC'96, Montpellier, May 1996, Vol. 6, p. 793-798. [Tomei 91] Tomei P., "Adaptive PD controller for robot manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-7(4), 1991, p. 565-570. [Tondu 94] Tondu B., El Zorkany H., "Identification of a trajectory model for the PUMA-560 Robot", J. of Robotic Systems, Vol. 11(2), 1994, p. 77-90. [Touron 84] Touron P., "Modélisation de la dynamique des mécanismes polyarticulés ; application à la CAO et à la simulation de robots", Thèse de Docteur-Ingénieur, USTL, Montpellier, France, July 1984. [Tsai 2000] Tsai L-W., “Solving the inverse dynamics of a Stewart-Gough

Page 186: Modeling and Control of Manipulators - Part I: Geometric

References 493

manipulator by the principle of virtual work”, J. of Mechanical design 122, p. 3-9 (March 2000). [Uicker 69] Uicker J.J., "Dynamic behavior of spatial linkages", Trans. of ASME, J. of Engineering for Industry, Vol. 91, 1969, p. 251-258. [Vandanjon 95] Vandanjon P.-O, Gautier M., Desbats P.,"Identification of inertial parameters of robots by means of spectrum analysis", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995, p. 3033-3038. [Veitschegger 86] Veitschegger W.K., Wu C.H., "Robot accuracy analysis based on kinematics", IEEE J. of Robotics and Automation, Vol. RA-2(3), September 1986, p. 171-179. [Venture 2006] G.Venture, P-J Ripert, W.Khalil, M.Gautier, Ph. Bodson,“Modeling and identification of passenger car dynamics using robotics formalism”, IEEE Transactions on Intelligent Transportation Systems, Vol. 7, issue 3, p. 349 – 359, 2006, [Volpe 93] Volpe R., Khosla P., "A theoretical and experimental investigation of explicit force control for manipulators", IEEE Trans. on Automatic Control, Vol. AC-38(11), 1993, p. 1634-1650. [Volpe 95] Volpe R., Khosla P., "The equivalence of second-order impedance control and proportional gain explicit force control", The Int. J. of Robotics Research, Vol. 14(6), 1995, p. 574-589. [Vukobratovic 82] Vukobratovic M., Potkonjak V., Dynamics of manipulation robots; Vol. 1: Theory and applications, Springer-Verlag, New York, 1982. [Vukobratovic 85] Vukobratovic M., Kircanski N., Real-time dynamics of manipulation robots, Springer-Verlag, New York, 1985. [Walker 82] Walker M.W., Orin D.E., "Efficient dynamic computer simulation of robotics mechanism", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 104, 1982, p. 205-211. [Wampler 86] Wampler C.W.,"Manipulator inverse kinematic solutions based on vector formulation and damped least-sqares methods", IEEE Trans. on Systems, Man, and Cybernetics, Vol. SMC-16, 1986, p. 93-101. [Wang 83] Wang L.T., Ravani B., "Recursive computations of kinematic and dynamic equations for mechanical manipulators", IEEE J. of Robotics and Automation, Vol. RA-1(3), September 1983, p. 124-131. [Wang 91] Wang L.C.T., Chen C.C., "A combined optimisation method for solving the inverse kinematics problem of mechanical manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-7(4), 1991, p. 489-499. [Wang 93] Wang D., McClamroch N.H., "Position and force control for constrained manipulator motion: Lyapunov's direct method", IEEE Trans. on Robotics and Automation, Vol. RA-9(3), 1993, p. 308-313. [Wen 88] Wen J. T., Bayard D., "New class of control laws for robotic manipulators; Part 1: non-adaptive case", Int. J. Control, Vol. 47(5), 1988, p. 1361-1385. [Wen 91] Wen J., Murphy S., "Stability analysis of position and force control for robot arms", IEEE Trans. on Automatic Control, Vol. AC-36, 1991, p. 365-371.

Page 187: Modeling and Control of Manipulators - Part I: Geometric

494 Modeling, identification and control of robots

[Wenger 89] Wenger P., "Aptitude d'un robot manipulateur à parcourir son espace de travail en présence d'obstacles", Thèse de Doctorat, ENSM, Nantes, France, September 1989. [Wenger 92] Wenger P., "A new general formalism for the kinematic analysis of all non redundant manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, Nice, May 1992, p. 442-447. [Wenger 93] Wenger P., "A classification of manipulator geometries based on singularity avoidance ability", Proc. Int. Conf. on Advanced Robotics, ICAR'93, Tokyo, November 1993, p. 649-654. [West 89] West H., Papadopoulos E., Dubowsky S., Cheah H., "A method for estimating the mass properties of a manipulator by measuring the reaction moments at its base", Proc. IEEE Int. Conf. on Robotics and Automation, Scottsdale, May 1989, p. 1510-1516. [Whitney 69] Whitney D.E., "Resolved motion rate control of manipulators and human prostheses", IEEE Trans. on Man Machine Systems, Vol. MMS-10(2), June 1969, p. 47-53. [Whitney 72] Whitney D.E., "The mathematics of coordinated control of prosthetic arms and manipulators", Trans. of ASME, J. of Dynamic Systems, Measurement, and Control, Vol. 94, December 1972, p. 303-309. [Whitney 79] Whitney D.E., Nevins J.L, "What is the remote center compliance (RCC) and what can it do", Proc. 9th Int. Symp. on Industrial Robots, Washington, March 1979, p. 135-147. [Whitney 85] Whitney D.E., "Historical perspective and state of the art in robot force control", Proc. IEEE Int. Conf. on Robotics and Automation, St Louis, March 1985, p. 262-268. [Whitney 86] Whitney D.E., Lozinski C.A., Rourke J.M., "Industrial robot forward calibration method and results", J. Dynamic Systems, Measurements, and Control, Vol. 108, p. 1-8, 1986. [Wittenburg 77] Wittenburg J., Dynamics of system of rigid bodies, B.G. Teubner, Stuttgart, 1977. [Wittenburg 85] Wittenburg J., Holtz U., "The program MESA VERDE for robot dynamics simulations", The 3rd Int. Symp. of Robotics Research, MIT Press, Cambridge, 1985, p. 197-204. [Wu 84] Wu C.H., "A kinematic CAD tool for the design and control of robot manipulators", The Int. J. of Robotics Research, Vol. 3(1), 1984, p. 74-85. [Yabuta 92] Yabuta T., "Nonlinear basic stability concept of the hybrid position/force control scheme for robot manipulators", IEEE Trans. on Robotics and Automation, Vol. RA-8(5), 1992, p. 663-670. [Yang 66] Yang A.T., Freudenstein F., "Application of dual number quaternion algebra in the analysis of spatial mechanisms", Trans. of ASME, J. of Applied Mechanics, Vol. 33, 1966, p. 300-308. [Yoshikawa 84a] Yoshikawa T., "Analysis and control of robot manipulators with redundancy", The 1st Int. Symp. of Robotics Research, MIT Press, Cambridge, 1984, p. 735-748.

Page 188: Modeling and Control of Manipulators - Part I: Geometric

References 495

[Yoshida 00] Yoshoda K., Khalil W.,"Verification of the positive definiteness of the inertial matrix of manipulators using base inertial parameters", Int. Journal of robotics research, 2000, Vol. 19, No. 5, may 2000, pp. 498-510. [Yoshikawa 84b] Yoshikawa T., "Manipulability of robotics mechanisms", Proc. 2nd Int. Symp. of Robotics Research, Kyoto, August 1984, p. 91-98. [Zabala 78] Zabala Iturralde J., "Commande des robots-manipulateurs à partir de la modélisation de leur dynamique", Thèse de Troisième Cycle, UPS, Toulouse, France, July 1978. [Zeghloul 91] Zeghloul S., "Développement d'un système de CAO Robotique intégrant la planification de tâches et la synthèse de sites robotisés", Thèse d'Etat, Université de Poitiers, France, February 1991. [Zgaib 92] Zghaib W., "Génération symbolique automatique des équations de la dynamique des systèmes mécaniques complexes avec contraintes cinématiques", Thèse de Doctorat, ENSAM, Paris, France, 1992. [Zhang 92] Zhang C., Song S.M., "Forward kinematics of a class of parallel (Stewart) platforms with closed-form solutions", J. of Robotic Systems, Vol. 9(1), 1992, p. 93-112. [Zhong 95] Zhong X.L., Lewis J.M., "A new method for autonomous robot calibration", Proc. IEEE Int. Conf. on Robotics and Automation, Nagoya, May 1995, p. 1790-1795. [Zhong 99] Zhong X.L., ??? [Zhuang 95] Zhuang H., Masory O., Yan J., "Kinematic calibration of a Stewart platform using pose measurements obtained by a single theodolite", Proc. 1995 Int. Conf. on Intelligent Robots and Systems, IROS'95, Pittsburg, August 1995, p. 329-334. [Zhuang 97] Zhuang H., "Self-calibration of a class of parallel mechanisms with a case study on Stewart platform", IEEE Trans. on Robotics and Automation, Vol. RA-13(3), 1997, p. 387-397. [Zodiac 96] The Zodiac, Theory of robot control, C. Canudas de Wit, B. Siciliano, G. Bastin Eds., Springer-Verlag, Berlin, 1996.

Page 189: Modeling and Control of Manipulators - Part I: Geometric

Modélisation, identification et commande des robots

Page 190: Modeling and Control of Manipulators - Part I: Geometric

Appendix 1

Solution of the inverse geometric model equations (Table 4.1)

A1.1. Type 2 The equation to be solved is: X Si + Y Ci = Z [A1.1]

Four cases are possible:

i) if X = 0 and Y ≠ 0, we can write that:

Ci = ZY [A1.2]

yielding:

i = atan2(± 1 – (Ci)2, Ci) [A1.3]

ii) if Y = 0 and X ≠ 0, we obtain:

Si = ZX [A1.4]

yielding:

i = atan2(Si, ± 1 – (Si)2) [A1.5]

Page 191: Modeling and Control of Manipulators - Part I: Geometric

498 Modeling, identification and control of robots

498

iii) if X and Y are not zero, and Z = 0:

i = atan2(–Y, X)

i' = i + [A1.6]

(if X = Y = 0, the robot is in a singular configuration);

iv) if X, Y and Z are not zero, we can write that [Gorla 84]:

Y Ci = Z – X Si [A1.7]

Squaring the equation leads to:

Y2 C2i = Y2 (1 – S2i) = Z2 – 2Z X Si + X2 S2i [A1.8]

Therefore, we have to solve a second degree equation in Si. Likewise, we can write an

equation in Ci. Finally, we obtain:

Si =

XZ + Y X2 + Y2 – Z2

X2 + Y2

Ci = YZ – X X2 + Y2 – Z2

X2 + Y2

[A1.9]

with = ± 1 (it is straightforward to verify that two combinations of Si and Ci can only

satisfy the original equation). If X2 + Y2 ≤ Z2, there is no solution. Otherwise, the solution is given by:

i = atan2(Si, Ci) [A1.10]

A1.2. Type 3 The system of equations to be solved is the following:

X1 Si + Y1 Ci = Z1

X2 Si + Y2 Ci = Z2 [A1.11]

Multiplying the first equation by Y2 and the second by Y1, under the condition that

X1Y2 – X2Y1 ≠ 0, yields:

Si = Z1 Y2 – Z2 Y1X1 Y2 – X2 Y1 [A1.12]

Page 192: Modeling and Control of Manipulators - Part I: Geometric

Solution of the IGM equations 499

499

then, multiplying the first equation by X2 and the second by X1, yields:

Ci = Z2 X1 – Z1 X2X1 Y2 – X2 Y1 [A1.13]

Thus: i = atan2(Si, Ci) [A1.14]

The condition X1Y2 – X2Y1 ≠ 0 means that the two equations of [A1.11] are

independent. If it is not the case, we solve one of these equations as a type-2 equation. In the frequent case where Y1 and X2 are zero, the system [A1.11] reduces to:

X1 Si = Z1

Y2 Ci = Z2 [A1.15]

whose solution is straightforward:

i = atan2(Z1X1,

Z2Y2) [A1.16]

A1.3. Type 4 The system of equations to be solved is given by:

X1 rj Si = Y1

X2 rj Ci = Y2 [A1.17]

We first compute rj by squaring both equations and adding them; then, we obtain i by

solving a type-3 system of equations:

rj = ± (Y1/X1)2 + (Y2/X2)2

i = atan2(Y1

X1 rj,

Y2X2 rj

) [A1.18]

A1.4. Type 5 The system of equations to be solved is as follows:

Page 193: Modeling and Control of Manipulators - Part I: Geometric

500 Modeling, identification and control of robots

500

X1 Si = Y1 + Z1 rjX2 Ci = Y2 + Z2 rj

[A1.19]

Let us normalize the equations such that:

Si = V1 + W1 rjCi = V2 + W2 rj

[A1.20]

After squaring both equations and adding them, we obtain a second degree equation in rj,

which can be solved if:

[W12 + W22 – (V1 W2 – V2 W1)2] > 0 [A1.21] Then, we obtain i by solving a type-3 system of equation.

A1.5. Type 6 The system of equations is given by:

W Sj = X Ci + Y Si + Z1

W Cj = X Si – Y Ci + Z2 [A1.22]

with Z1 ≠ 0 and/or Z2 ≠ 0. By squaring both equations and adding them, we obtain a type-2 equation in j:

B1 Si + B2 Ci = B3 [A1.23]

with:

B1 = 2 (Z1 Y + Z2 X) B2 = 2 (Z1 X – Z2Y) B3 = W2 – X2 – Y2 – Z12 – Z22 Knowing i, we obtain j by solving a type-3 system of equation.

A1.6. Type 7 The system of equations is the following:

W1 Cj + W2 Sj = X Ci + Y Si + Z1

W1 Sj – W2 Cj = X Si – Y Ci + Z2 [A1.24]

Page 194: Modeling and Control of Manipulators - Part I: Geometric

Solution of the IGM equations 501

501

It is a generalized form of a type-6 system. Squaring both equations and adding them gives a type-2 equation in i:

B1 Si + B2 Ci = B3 [A1.25]

where B3 = W12 + W22 – X2 – Y2 – Z12 – Z22. The terms B1 and B2 are identical to those of equation [A1.23].

After solving for i, we compute j as a solution of a type-3 system of equation.

A1.7. Type 8 The system of equations is the following:

X Ci + Y C(i + j) = Z1

X Si + Y S(i + j) = Z2 [A1.26]

By squaring both equations and adding them, i vanishes, yielding:

Cj = Z12 + Z22 – X2 – Y2

2XY [A1.27]

hence:

j = atan2(± 1 – (Cj)2, Cj) [A1.28]

Then, [A1.26] reduces to a system of two equations in i such that:

Si =

B1Z2 – B2 Z1B12 + B22

Ci = B1Z1 + B2Z2

B12 + B22

[A1.29]

with B1 = X + Y Cj and B2 = Y Sj. Finally:

i = atan2(Si, Ci) [A1.30]

Page 195: Modeling and Control of Manipulators - Part I: Geometric
Page 196: Modeling and Control of Manipulators - Part I: Geometric

Appendix 2

The inverse robot

The n degree-of-freedom robot whose set of geometric parameters are (j', j', dj', j', rj') is defined as the inverse of the robot (j, j, dj, j, rj) if the transformation matrix 0Tn(j', j', dj', j', rj') is equal to 0Tn

-1(j, j, dj, j, rj). Table A2.1 gives the geometric parameters of a general six degree-of-freedom robot.

Table A2.2 gives those of the corresponding inverse robot. Indeed, let us write the transformation matrix 0T6 under the following form:

0T6 = Rot(z,1) Trans(z,r1) Rot(x,2) Trans(x,d2) Trans(z,r2) Rot(z,2) ... Rot(x,6)

Trans(x,d6) Trans(z,r6) Rot(z,6) [A2.1]

Table A2.1. Geometric parameters of a general six degree-of-freedom robot

j j j dj j rj

1 1 0 0 1 r1

2 2 2 d2 2 r2

3 3 3 d3 3 r3

4 4 4 d4 4 r4

5 5 5 d5 5 r5

6 6 6 d6 6 r6

The inverse transformation matrix 6T0 can be written as: 6T0 = Rot(z,–6) Trans(z,–r6) Trans(x,–d6) Rot(x,–6) Rot(z,–5)

Trans(z,–r5) ... Trans(x,–d2) Rot(x,–2) Rot(z,–1) Trans(z,–r1) [A2.2]

Page 197: Modeling and Control of Manipulators - Part I: Geometric

504 Modeling, identification and control of robots

The parameters of Table A2.2 result from comparing equations [A2.1] and [A2.2]. The corresponding elementary transformation matrices are denoted by j-1Tj' such that:

0T6' = 0T1' 1T2' … 5T6' = 0T6

-1 [A2.3]

Table A2.2. Geometric parameters of the six degree-of-freedom inverse robot

j j' j' dj' j' rj'

1 6 0 0 –6 –r6

2 5 –6 –d6 –5 –r5

3 4 –5 –d5 –4 –r4

4 3 –4 –d4 –3 –r3

5 2 –3 –d3 –2 –r2

6 1 –2 –d2 –1 –r1

Page 198: Modeling and Control of Manipulators - Part I: Geometric

Appendix 3

Dyalitic elimination

Let us consider the following system of equations in the two unknowns x, y:

a x2 y2 + b xy = c y + d

e x2 y2 + f xy + g = 0 [A3.1]

where the coefficients a, b, ..., g are constants with arbitrary values. The so-called dyalitic elimination technique [Salmon 1885] consists of:

i) transforming the system [A3.1] as a linear system such that:

ax2 bx–c –d

ex2 fx g

y2

y1

= 0 [A3.2]

where y2, y and 1 are termed power products; ii) increasing the number of equations: by multiplying both equations by y, we obtain two new equations that form, together with those of [A3.2], a homogeneous system consisting of four equations in four unknowns (power products):

M Y = 0 [A3.3]

where M is a function of x:

Page 199: Modeling and Control of Manipulators - Part I: Geometric

506 Modeling, identification and control of robots

M =

0 ax2 bx–c –d

0 ex2 fx g

ax2 bx–c –d 0

ex2 fx g 0

and Y = [ ]y3 y2 y 1 T

Since one of the elements of Y is 1, the system [A3.3] is compatible if, and only if, it is

singular, which implies that the determinant of M is zero. Applying this condition to the example leads to a fourth degree equation in x. For each of the four roots, we obtain a different matrix M. By choosing three equations out of the system [A3.3], we obtain a system of three linear equations of type A Y' = B where Y' = [ ]y3 y2 y T. Doing that, each value of x provides a single value of y.

To summarize, the method requires four steps:

– construct the power product equation in order to minimize the number of unknowns;

– add equations to obtain a homogeneous system;

– from this system, compute a polynomial in a single unknown using the fact that the system is necessarily singular;

– compute the other variables by solving a system of linear equations.

Page 200: Modeling and Control of Manipulators - Part I: Geometric

Appendix 4

Solution of systems of linear equations

A4.1. Problem statement Let us consider the following system of m linear equations in n unknowns: Y = W [A4.1]

where W is an (mxn) known matrix, Y is an (mx1) known vector and is the unknown (nx1) vector.

Let Wa be the augmented matrix defined by: Wa = [W : Y]

Let r and ra denote the ranks of W and Wa respectively. The relation between r and ra can

be used to analyze the existence of solutions:

a) if r = ra, the system has at least one solution:

– if r = ra = n, there is a unique solution;

– if r = ra < n, the number of solutions is infinite; the system is redundant. For example, this case is encountered with the inverse kinematic model (Chapter 6).

b) if r ≠ ra, the system [A4.1] is not compatible, meaning that it has no exact solution; it will be written as:

Y = W + [A4.2]

where is the residual vector or error vector. This case occurs when identifying the geometric and dynamic parameters (Chapters 11 and 12 respectively) or when solving the inverse kinematic model in the vicinity of singular configurations.

Page 201: Modeling and Control of Manipulators - Part I: Geometric

508 Modeling, identification and control of robots

A4.2. Resolution based on the generalized inverse

A4.2.1. Definitions

The matrix W(-1) is a generalized inverse of W if:

W W(-1) W = W [A4.3] If W is square and regular, then W(-1) = W-1. In addition, W(-1) is said to be a left

inverse or a right inverse respectively if:

W(-1) W = I or W W(-1) = I [A4.4] It can be shown that W has an infinite number of generalized inverses unless it is of

dimension (nxn) and of rank n. A solution of the system [A4.1], when it is compatible, is given by:

= W(-1) Y [A4.5] All the solutions are given by the general equation:

= W(-1) Y + (I – W(-1) W) Z [A4.6]

where Z is an arbitrary (nx1) vector. Note that:

W (I – W(-1) W) Z = 0 [A4.7] Therefore, the term (I – W(-1) W) Z is a projection of Z on the null space of W.

A4.2.2. Computation of a generalized inverse

The matrix W is partitioned in the following manner:

W =

W11 W12

W21 W22 [A4.8]

where W11 is a regular (rxr) matrix, and r is the rank of W. Then, it can be verified that:

Page 202: Modeling and Control of Manipulators - Part I: Geometric

Solution of systems of linear equations 509

W(-1) =

W11

-1 0

0 0 [A4.9]

This method gives the solution as a function of r components of Y. Thus, the accuracy of

the result may depend on the selected minor. We will see in the next section that the pseudoinverse method allows us to avoid this limitation.

NOTE.– If the (r,r) matrix W11 built up with the first r rows and the first r columns is not regular, it is always possible to define a matrix W' such that:

W' = R W C =

W'11 W'12

W'21 W'22 [A4.10]

where W'11 is a regular (rxr) matrix. The orthogonal matrices R and C permute the rows and columns of W respectively. The generalized inverse of W is derived from that of W' as:

W(-1) = C (W')(-1) R [A4.11]

A4.3. Resolution based on the pseudoinverse

A4.3.1. Definition

The pseudoinverse of the matrix W is the generalized inverse W+ that satisfies [Penrose 55]:

W W+ W = W

W+ W W+ = W+

(W+ W)T = W+ W

(W W+)T = W W+

[A4.12]

It can be shown that the pseudoinverse always exists and is unique. All the solutions of

the system [A4.1] are given by:

= W+ Y + (I – W+ W) Z [A4.13] The first term W+ Y is the solution minimizing the Euclidean norm || ||. The second

term (I – W+ W) Z, also called optimization term or homogeneous solution, is the projection of an arbitrary vector Z of n on N(W), the null space of W, and therefore, does not change the value of Y. It can be shown that (I – W+ W) is of rank (n – r). Consequently, when the

Page 203: Modeling and Control of Manipulators - Part I: Geometric

510 Modeling, identification and control of robots

robot is redundant, this term may be used to optimize additional criteria satisfying the primary task. This property is illustrated by examples in Chapter 6.

When the system [A4.1] is not compatible, it can be shown that the solution W+ Y gives the least-squares solution minimizing the error ||W – Y||2 = ||||2.

A4.3.2. Pseudoinverse computation methods

A4.3.2.1. Method requiring explicit computation of the rank [Gorla 84]

Let the matrix W be partitioned as indicated in equation [A4.8] such that W11 is of full rank r. Using the following notations:

W1 =

W11

W21 and W2 = [ ]W11 W12

it can be shown that:

W+ = W2T (W1

T W W2T)-1 W1

T [A4.14]

When W is of full rank, this equation may be simplified as follows:

– if m > n: W = W1 W+ = (WT W)-1 WT, (W+ is then the left inverse of W);

– if m < n: W = W2 W+ = WT (W WT)-1, (W+ is then the right inverse of W);

– if m = n: W = W1 = W2 W+ = W-1.

If W11 is not of rank r, the orthogonal permutation matrices R and C of equation [A4.10]

should be used, yielding: W+ = C (W')+ R [A4.15]

A4.3.2.2. Greville method [Greville 60], [Fournier 80]

This recursive algorithm is based on the pseudoinverse properties of a partitioned matrix. It does not require the explicit computation of the rank of W. Let W be a partitioned matrix such that:

W = [ ]U : V [A4.16] Its pseudoinverse W+ can be written as [Boullion 71]:

Page 204: Modeling and Control of Manipulators - Part I: Geometric

Solution of systems of linear equations 511

W+ =

U+ – U+VC+ – U+V(I – C+C) M VT(U+)TU+(I – VC+)

C+ + (I – C+C) M VT(U+)TU+(I – VCT) [A4.17]

with:

C = (I – UU+) V M = [I + (I – C+C) VT (U+)TU+V (I – C+C)] -1 If the matrix V reduces to a single column, a recursive algorithm that does not require any

matrix inversion may be employed. Let Wk contain the first k columns of W. If Wk is partitioned such that the first (k – 1)

columns are denoted by Wk–1 and the kth column is wk, then:

Wk = [ ]Wk–1 : wk [A4.18]

The pseudoinverse W

+k is derived from W

+k-1 and from the kth column of W:

W+k =

W

+k-1 – dkbk

bk [A4.19]

where:

dk = W+k-1 wk [A4.20]

In order to evaluate bk, we define: ck = wk – Wk–1 dk [A4.21]

then, we compute:

bk = c+k = (ck

T ck)-1 ckT if ck ≠ 0

= (1 + dkT dk)-1 dk

T W+k-1 if ck = 0 [A4.22]

This recursive algorithm is initialized by calculating W+1 using equation [A4.14]:

W+1 = w

+1 = (w1

T w1)-1 w1T (if w1 = 0, then W

+1 = 0T). [A4.23]

The pseudoinverse of W can also be calculated by handling recursively rows instead of

columns: physically, it comes to consider the equations sequentially.

Page 205: Modeling and Control of Manipulators - Part I: Geometric

512 Modeling, identification and control of robots

• Example A4.1. Computation of the pseudoinverse using the Greville method. Let us consider the following matrix:

W =

1 2 3

2 3 4

i) first iteration (initialization):

W+1 = [ ]1/5 2/5

ii) second iteration:

d2 = 8/5, c2 =

2/5

–1/5, b2 = [ ]2 – 1 , W

+2 =

–3 2

2 –1

iii) third iteration:

d3 =

–1

2, c3 =

0

0, b3 = [ ]7/6 –2/3

Finally, the pseudoinverse is:

W+ =

–11/6 4/3

–1/3 1/3

7/6 –2/3

A4.3.2.3. Method based on the singular value decomposition of W

The singular value decomposition theory [Lawson 74], [Dongarra 79], [Klema 80] states that for an (mxn) matrix W of rank r, there exist orthogonal matrices U and V of dimensions (mxm) and (nxn) respectively, such that:

W = U VT [A4.24] The (mxn) matrix is diagonal and contains the singular values si of W. They are

arranged in a decreasing order such that s1 ≥ s2 ≥ … ≥sr. has the following form:

=

Srxr 0rx(n-r)

0(m-r)xr 0(m-r)x(n-r) [A4.25]

Page 206: Modeling and Control of Manipulators - Part I: Geometric

Solution of systems of linear equations 513

where S is a diagonal (rxr) matrix of rank r, formed by the non-zero singular values si of W. The singular values of W are the square roots of the eigenvalues of the matrices WT W or

W WT depending on whether n < m or n > m respectively. The columns of V are the eigenvectors of WT W and are called right singular vectors or

input singular vectors. The columns of U are the eigenvectors of W WT and are called left singular vectors or output singular vectors.

The pseudoinverse is then written as:

W+ = V +UT [A4.26]

with:

+ =

S-1 0

0 0

This method, known as Singular Value Decomposition (SVD) [Maciejewski 89], is often

implemented for rank determination and pseudoinverse computation in scientific software packages.

The SVD decomposition of W makes it possible to evaluate the 2-norm condition number, which can be used to investigate the sensitivity of the linear system to data variations on Y and W. Indeed, if W is a square matrix, and assuming uncertainties + d, the system [A4.1] may be written as:

Y + dY = [W + dW] [ + d] [A4.27] The relative error of the solution may be bounded such that: ||d||p||||p

≤ condp(W) ||dY||p||Y||p

[A4.28a]

||d||p

|| + d||p ≤ condp(W)

||dW||p||W||p

[A4.28b]

condp(W) is the condition number of W with respect to the p-norm such that:

condp(W) = ||W||p ||W+||p [A4.29]

where ||*||p denotes a vector p-norm or a matrix p-norm.

The 2-norm condition number of a matrix W is given by:

Page 207: Modeling and Control of Manipulators - Part I: Geometric

514 Modeling, identification and control of robots

cond2(W) = smax smin

[A4.30]

Notice that the condition number is such that: cond2(W) ≥ 1 [A4.31]

NOTES.–

– the p-norm of a vector is defined by:

||||p = (i=1

n|i|p)1/p for p ≥ 1 [A4.32]

– the p-norm of a matrix W is defined by:

||W||p = max||W ||p

||||p : ≠ 0n,1 = max||W ||p : ||||p = 1 [A4.33]

– the 2-norm of a matrix is the largest singular value of W. It is given by:

||W||2 = smax

– equations similar to [A4.28] can be derived for over determined linear systems.

• Example A4.2. Computation of the pseudoinverse with the SVD method. Consider the same matrix as in Example A4.1:

W =

1 2 3

2 3 4

It can be shown that:

V =

0.338 0.848 –0.408

0.551 0.174 0.816

0.763 –0.501 –0 .408

, =

6.55 0 0

0 0.374 0, U =

0.57 –0 .822

0.822 0.57

The pseudoinverse is obtained by applying equation [A4.26]:

Page 208: Modeling and Control of Manipulators - Part I: Geometric

Solution of systems of linear equations 515

W+ =

–1.83 1.33

–0.333 0.333

1.17 –0.667

A4.4. Resolution based on the QR decomposition Given the system of equations [A4.1], two cases are to be considered depending on

whether W is of full rank or not.

A4.4.1. Full rank system

Let us assume that W is of full rank. The QR decomposition of W consists of writing that [Golub 83]:

QT W =

R

0(m-r),n for m > n, r = n [A4.34]

QT W = [ ]R 0m,n-r for n > m, r = m [A4.35]

where R is a regular and upper-triangular (rxr) matrix and where Q is an orthogonal (mxm) matrix.

For sake of brevity, let us only consider the case m > n, which typically occurs when

identifying the geometric and dynamic parameters (Chapters 11 and 12 respectively). The case n > m can be similarly handled. The matrix Q is partitioned as follows:

Q = [ ]Q1 Q2 [A4.36]

where the dimensions of Q1 and Q2 are (mxr) and mx(m – r) respectively. Let us define:

G = QT Y =

Q1T Y

Q2T Y =

G1

G2 [A4.37]

Since the matrix Q is orthogonal, it follows that [Golub 83]:

||Y – W ||2 = ||QT Y – QT W ||2 = ||G1 – R ||2 + ||G2||2 = ||||2 [A4.38]

Page 209: Modeling and Control of Manipulators - Part I: Geometric

516 Modeling, identification and control of robots

From equation [A4.38], is the unique solution of the system: R = G1 [A4.39] Since R is a regular and upper-triangular (rxr) matrix, the system [A4.39] can be easily

solved with a backward recursion technique (compute sequentially n, n-1, ...). The norm of the residual for the optimal solution is derived as:

||||min = ||G2|| = ||Q2T Y|| [A4.40]

This solution (when m > n and r = n) is identical to that obtained by the pseudoinverse. In

order to speed up the computations for systems of high dimensions (for example, this is the case for the identification of the dynamic parameters), we can partition the system [A4.1] into k sub-systems such that:

Y(i) = W(i) for i = 1, …,k [A4.41] Let Q(i) = [Q1(i) Q2(i)] and R(i) be the matrices obtained after a QR decomposition of

the matrix W(i). The global system reduces to the following system of (nxk) equations in n unknowns:

Q1T(1)Y(1)

Q1T(k)Y(k)

=

Q1T(1)W(1)

Q1T(k)W(k)

Q1T(1)Y(1)

Q1T(k)Y(k)

=

R(1)

R(k)

[A4.42]

A4.4.2. Rank deficient system

Again, let us assume that m > n but in this case r < n. We permute the columns of W in such a way that the first columns are independent (the independent columns correspond to the diagonal non-zero elements of the matrix R obtained after QR decomposition of W). We proceed by a QR decomposition of the permutation matrix and we obtain:

QT W P =

R1 R2

0(m-r),r 0(m-r),(n-r) [A4.43]

Page 210: Modeling and Control of Manipulators - Part I: Geometric

Solution of systems of linear equations 517

where Pis a permutation matrix obtained by permuting the columns of an identity matrix, Q is an orthogonal (mxm) matrix, and R1 is a regular and upper-triangular (rxr) matrix.

Let:

PT =

1

2

From equation [A4.37], we obtain:

||||2 = ||Y – W ||2 = ||QT Y – QT W PPT ||2

= ||

G1

G2 –

R1 1 + R2 2

0(n-r),1||2

= ||G1 – [R1 1 + R2 2]||2 + ||G2||2 [A4.44] 1 is the unique solution of the system: R1 1 = G1 – R2 2 [A4.45] Then, we obtain a family of optimal solutions parameterized by the matrices P and 2:

= P

1

2 [A4.46]

All solutions provide the minimum norm residual given by equation [A4.40]. We obtain a

base solution for 2 = 0(n-r),1. Recall that the pseudoinverse solution provides the minimum norm residual together with the minimum norm || ||2.

Page 211: Modeling and Control of Manipulators - Part I: Geometric

518 Modeling, identification and control of robots