### Page 1

NAVARRA UNIVERSITYUPPER ENGINEERING SCHOOLSan Sebasti ´anRobot Control and Programming:Class notesDr. Emilio Jos´e S ´anchez TapiaAugust, 2010

### Page 2

Servicio de Publicaciones de la Universidad de Navarra 987‐84‐8081‐293‐1

### Page 3

ii

### Page 4

Viaje a ’Agra de Cimientos’Era yo todav´ıa un estudiante de doctorado cuando cay ´o en mis manos una tesis dela cual me llam ´o especialmente la atenci ´on su cap´ıtulo de agradecimientos. Bueno,realmente la tesis no contaba con un cap´ıtulo de ’agradecimientos’ sino m ´as bien ...

### Page 5

iv

### Page 6

ContentsIIntroduction to Robotics11Introduction31.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.2A Little about the History . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31.3The Technological Roots of Robotics . . . . . . . . . . . . . . . . ...

### Page 7

viCONTENTS2.1.1Robotics Industry Association (RIA)’s Industrial Robot deﬁnition . . 232.1.2French Standards Association’s Industrial Robot deﬁnition . . . . . 232.1.3International Federation of Robotics (IFR)’s Industrial Robot deﬁni-tion . . . . . . . . . . . . . . . . . . . . . . . ...

### Page 8

CONTENTSvii3.6.5Step 5: Program Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 503.6.6Step 6: Test the program on the real robot.. . . . . . . . . . . . . . 503.7Some Things to Think About . . . . . . . . . . . . . . . . . . . . . . . . . . . 514Robot Geometry534.1Dimensions and Degr...

### Page 9

viiiCONTENTSIIIRobot Mathematical Modelling and Control1036Coordinate frames and homogeneous transformation1056.1Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1056.2The Representation of Position in 3D Space. . . . . . . . . . . . . . . . . . 1066.3The Rep...

### Page 10

CONTENTSix7.5Forward Kinematics Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 1437.6Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1567.6.1Multiple Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1577.6.2Inverse Kinematics o...

### Page 11

xCONTENTS10.2.5 Speed Sensing and Control of a Joint System . . . . . . . . . . . . . 20710.2.6 Feedforward and Feedback Compensations . . . . . . . . . . . . . . 20810.3 Computed Torque Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 21110.3.1 Linear Dynamic Model of n-DoF Joint ...

### Page 12

CONTENTSxiBMobile Robot Samples309B.1Microbots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309B.2Legged Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309B.2.1AIBO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....

### Page 13

xiiCONTENTS

### Page 14

List of Figures1.1A representation of a Rossum’s Universal Robot. . . . . . . . . . . . . . . .41.2First teleoperated device. It was designed for radioactive material handling.61.3Samples of Science Fiction Robots: HAL, R2D2, C3PO, T1000 (Terminator).71.4Samples of Toy Robots: Bender, R2D2. . ....

### Page 15

xivLIST OF FIGURES1.18 Hybrid mechanism/manipulator. . . . . . . . . . . . . . . . . . . . . . . . . 171.19 A manipulator and the human body analogy (left); squematic diagramof an arm (right). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.20 Accuracy versus precision. . ...

### Page 16

LIST OF FIGURESxv4.5Cylindrical robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.6Spherical robot.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.7Anthropomorphic robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614.8Scara rob...

### Page 17

xviLIST OF FIGURES5.14 Robotic redutor mechanism simulation. . . . . . . . . . . . . . . . . . . . . 845.15 Components of a Harmonic-Drive. . . . . . . . . . . . . . . . . . . . . . . . . 855.16 Harmonic-drive working sequence. . . . . . . . . . . . . . . . . . . . . . . . 855.17 Schematic of a C...

### Page 18

LIST OF FIGURESxvii6.8Rotation around ˆyA axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.9Rotation around ˆzA axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.10 Rotation Axis- Rotation AngleRepresentation of orientation. . . . . . . . . . 1166.11 The r...

### Page 19

xviiiLIST OF FIGURES7.17 Example 1: Kinematic decoupling of a 5 DoF anthropomorphical robot. . . 1607.18 Example 1: one solution for the inverse kinematics of an anthropomorphicpositioner. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1627.19 All inverse kinematic so...

### Page 20

LIST OF FIGURESxix10.3 Position and Force control loops.. . . . . . . . . . . . . . . . . . . . . . . . 19810.4 1-DoF Proportional Error position control. . . . . . . . . . . . . . . . . . . . 20110.5 Step response types of systems: ω2i > 0 → overdamped system, ω2i = 0 →critically damped...

### Page 21

xxLIST OF FIGURESiii.1Peg-in-hole task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245iii.22-DoF manipulator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246iii.33-DoF manipulator with multiple D-H solutions. . . . . . . . . . . . . . . . 247iii.4PUMA ...

### Page 22

LIST OF FIGURESxxiiv.2RPR manipulator.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272iv.3Planar arm with two joints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273iv.4SCARA robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273iv.5D-H...

### Page 23

xxiiLIST OF FIGURESB.2AIBO (SONY): http://www.sony.com.au/aibo . . . . . . . . . . . . . . . . . 309B.3SDR 3x (SONY): http://au.playstation.com/technology/sonyrobot.jhtml . 310B.4SDR 4x (SONY): http://au.playstation.com/technology/sonyrobot.jhtml . 310B.5ASIMO (HONDA): http://world.honda.com/ASIM...

### Page 24

List of Tables1.1Mechanical features of two PHANToM haptic devices.. . . . . . . . . . . . 143.1Computer programming vs. robot programming. . . . . . . . . . . . . . . . 343.2Speciﬁcation of the positions needed in the program. . . . . . . . . . . . . . 464.1Comparison between serial and parell...

### Page 25

xxivLIST OF TABLESiii.1D-H table of an unknown robot. . . . . . . . . . . . . . . . . . . . . . . . . . 247

### Page 26

NotationCoorditane Systems{0}, ﬁxed universal coordinated system, used by default.{e}, coordinate system attached to pe (Robot’s end-point).{i}, coordinate system attached to joint i.{1. . .n}, coordinates system attached to joint from 1to n.[ˆx0, ˆy0, ˆz0], axis of the coordinate system {...

### Page 27

xxviLIST OF TABLESRotation Matrices0pe, the vector pe is referenced to the system {0}. If leading superscript is missing, this isthe reference system by default.epe, the vector pe is referenced to the system {e}.ipe, the vector pe is referenced to the system {i}.0Re, the rotation matrix of the sy...

### Page 28

LIST OF TABLESxxviiEuler Anglesψe, orientation of the end point of the robot using Euler Angles.ψe =ψ1eψ2eψ3eIf roll, pitch and yaw angles are used, then. . .ψe =ψ1eψ2eψ3e =ψxeψyeψze =ψyawψpitchψrollBφ, the matriz that relates angula...

### Page 29

xxviiiLIST OF TABLESQuaternion (Euler Parameters)[e0, e1,e2, e3], Euler Parameters.e0 = cos(ϕ2 )e1 = ux sin(ϕ2 )e2 = uy sin(ϕ2 )e3 = uz sin(ϕ2 )e, the vector composed of e0, e1,e2, e3:e =e1e2e3Bq, the matrix that relates angular velocity with respect to the time-derivative of Eule...

### Page 30

LIST OF TABLESxxix0Te =0Re3x30pe3x10001This rule is always applied when a vector is rotated and translated using homogeneousvectors:0p4De=0Teep4DeBasic transformations:T rans (p0e), Translation around p0e. The homogeneus transformation that involves it is:T rans (p0e) =100010001p0e000...

### Page 31

xxxLIST OF TABLESq = q1 q2 . . .qnTθi, joint space coordinate (rotating DoF).di, joint space coordinate (translating DoF).pe, (lowercase) position of the end point of the robot:pe = pxe pye pzeTPe, (uppercase) position and orientation of the end point of the robot and in the case ofusing Euler A...

### Page 32

LIST OF TABLESxxxiVe =˙pxe˙pye˙pze ωxe ωye ωzeT˙ve, translational acceleration of robot’s end-point.˙ωe, angular acceleration of robot’s end-point.Forward and Inverse Kinematics (Position)f kin, Forward Kinematics.ikin, Inverse Kinematics.Denavit-Hartenberg parametersai−1, the leng...

### Page 33

xxxiiLIST OF TABLESJacobian and SingularitiesJq, jacobian of a serial manipulator or direct jacobian matrix (Jq = Identityin case ofparellel robots).Jx, jacobian of a parallel manipulator or inverse jacobian matrix (Jx = Identityin case ofserial robots).The jacobian relationships are:JxVe = Jq ˙...

### Page 34

LIST OF TABLESxxxiiim, mass.b, damper.k, stiffness.K, potential energy.U , kinetic energy.L = K − U , Lagrange function.Dynamics in joint-spaceMq(q), the actual robot mass matrix (nxn).Vcorq (q, ˙q), the actual robot coriolis force(nx1).Vcenq (q, ˙q), the actual robot centrifugal force (nx1)....

### Page 35

xxxivLIST OF TABLEStIi , tdi , the integral and derivate time constants of a PID controller of the i − thjoint.qrefi , the reference signal for the magnitude qi.qreali , the actual signal for the magnitude qi.qmeasi , the measured signal for the magnitude qi.qerri = qrefi − qmeasi , the error...

### Page 36

LIST OF TABLESxxxvv1 input speed in a two-port network.v2, output speed in a two-port network.AnalogyElectrical systemMechanical systemVoltagee1, e2Forcef1, f2Currenti1, i2Velocityv1, v2InductanceLMassmResistanceRDampingbReciprocalcapacitance1CStiffnesskTwo-port Network MatricesZ, impedance matri...

### Page 37

xxxviLIST OF TABLES

### Page 38

Part IIntroduction to Robotics1

### Page 39

### Page 40

Chapter 1Introduction1.1IntroductionThe word robot represents a very general concept that is hard to deﬁne precisely, sincethis word can be used to name a great amount of machines.The aim of this chapter is to give an approximation to the concept of robot. Thusa brief history of robotics, the t...

### Page 41

4Chapter 1. IntroductionThe word robot was used for the ﬁrst time in 1920 in a play entitled R.U.R. (Rosum’sUniversal Robots). This play was written by Karel Capek, a Czech playwright. In theoriginal Czeck, Robota means forced servitude. The name Rossum is an allusion to theCzech word rozum, ...

### Page 42

Section 1.3. The Technological Roots of Robotics5robots as intelligent machines that have positronic brains. These positronic brains areprogrammed by humans, who stamp into them the three laws of robotics, namely:First Law A robot must not harm a human being or, through inaction, allow one tocome...

### Page 43

6Chapter 1. IntroductionFigure 1.2: First teleoperated device. It was designed for radioactive material handling.Then, in 1956, George C. Devol and Joseph F. Engelberger founded ConsolidatedControls Corporation, which produced the ﬁrst industrial robot to be installed in aGeneral Motors factory...

### Page 44

Section 1.4. First Approach7. . . a computer-controlled mechanical device that can be programmed to doa variety of tasks without human supervision.In this ﬁrst approach, we will divide robots into three different categories: ScienceFiction Robots, Toy Robots, and Real Robots.1.4.1Science Fictio...

### Page 45

8Chapter 1. IntroductionThen, a question is arisen: when can a toy be thought as a robot? Not all toys thatmove around and make noises are robots. For most people, to be a robot, even a toy one,it is necessary to have arms, maybe legs, a head and eyes. In other words it is necessaryto have a more...

### Page 46

Section 1.4. First Approach9industrial robots are typically large powerful machines that can easily seriously injureor kill people if something goes wrong (safety).We now need to go back to our search for the deﬁnition of robot. Once again, it alldepends on what you are happy to call a robot. F...

### Page 47

10Chapter 1. Introductionhelping the patient move the impaired limb (mechatronic orthosis) or as a part of arehabilitation program for the impaired limb.Figure 1.7: Samples of biomedical robots for planning (left) and performing (right)surgery.Finally, we can also include autonomous wheelchairs i...

### Page 48

Section 1.4. First Approach11Figure 1.8: A picture of: Mars PATHFINDER and SOJOUNER on Mars; ROBICEN, aclimbing robot (CEIT), KISMET (MIT).Figure 1.9: Sample of Teleoperation device: SIMANTEL, CEIT.A teleoperated system usually consists of two robots: the Master robot and theSlave robot. The form...

### Page 49

12Chapter 1. IntroductionActuatorsEncodersMASTERActuatorsEncodersSensorsSensorsActuationMotor commandMeasurement: encoders and sensorsAction + force feedbackvideo signalControlleraudio signalRemotetaskMental reconstrucion of remote taskSLAVEMeasurement: encoders and sensorsMotor commandFigure 1.1...

### Page 50

Section 1.4. First Approach13The vast majority of human-machine interfaces have a unidirectional informationﬂow. The user receives information through the senses of sight and hearing, and mayinteract with the environment through the use of a peripheral device (e.g. a mouse).This interaction is ...

### Page 51

14Chapter 1. Introductionforces/torques on user’s limbs causing the modiﬁcation of the body position or simplyvarying the stregh of user’s muscles, tendons and joints 5. Thus, kinesthetic hapticdevices enable the user the perception of virtual objects’ stiffeness and weight mainly,causing...

### Page 52

Section 1.5. Basic Terminology in Robotics15Figure 1.14: PHANToM haptic devices.ure 1.15). These devices—unlike the previous ones, that only interact with user’s hand—act directly on the concerned complete body limb. These devices are designed primarilyfor rehabilitation tasks in medicine o...

### Page 53

16Chapter 1. IntroductionClosed Chain when the last link is connected to the ﬁrst link.Figure 1.16: Open kinematic chain (left) vs. closed kinematic chain (right).1.5.2Mechanism/ManipulatorA mechanism is a kinematic chain in which one of the links is ﬁxed. This link is thereference for the re...

### Page 54

Section 1.5. Basic Terminology in Robotics17Figure 1.18: Hybrid mechanism/manipulator.1.5.3Degree of Freedom (DoF)It is the minimum number of independent coordinates with which we can determinethe arrangement of a mechanism. If serial manipulators are considered, it will corre-spond with the numb...

### Page 55

18Chapter 1. IntroductionPe =peψe=positionorientation(1.3)1.5.5Cartesian Space vs. Joint SpaceThe robot’s end-point can be determined by the values of the joint positions of the arm(q1, q2, q3, etc.) and the geometry of the elements of the robot arm that connect each pairof joints. Then we say...

### Page 56

Section 1.5. Basic Terminology in Robotics19SHOULDERELBOWWRISTUPDOWNUPDOWNEND POINTRIGHTLEFTWAISTXeLINKJOINTEND-POINTEND-EFFECTORMANIPULATOR/ARMq1q2q3q4q5q60ˆx0ˆzFigure 1.19: A manipulator and the human body analogy (left); squematic diagram ofan arm (right).1.5.7Accuracy, Precision, Repeatabil...

### Page 57

20Chapter 1. IntroductionResolution When a continuous signal is digitalizated, it can only reach a set ofpre-established values that depends on the number of bytes of the digital system.The resolution is the minimum value between two valid positions due to thedigitalization process. It depends on...

### Page 58

Section 1.6. Some Things to Think About211.6Some Things to Think About1. Identify one or two good examples of science ﬁction robots, toy robots, and realrobots. Explain for each case why you think it is a good example. And, in the caseof the real robot examples, think about how they are control...

### Page 59

22Chapter 1. Introduction

### Page 60

Chapter 2Introduction to Industrial Robotics2.1Some Deﬁnitions of Industrial Robotshe aim of this chapter is to provide the charateristic concepts and particularities ofrobotics applied to industry.To specify in a bit more detail what kind of robot we will be considering in this course,it is us...

### Page 61

24Chapter 2. Introduction to Industrial RoboticsIt then deﬁnes an Industrial Robot as follows:”A robot is a manipulator which is reprogrammable, servocontrolled, andversatile that can position and orient pieces and tools and other devices,following variable trajectories.”Comparing these two...

### Page 62

Section 2.3. Industrial Applications25Second Generation It acquires limited data from its environment and then makessimple decisions.Third Generation It can be programmed using natural language.But there are more classiﬁcations. Lets see the robot generations considered by theFrench Association...

### Page 63

26Chapter 2. Introduction to Industrial Robotics38%48%4%2% 4%4%Robots in Spain in 2008Distribution by applicationHandling and machine loading/unloadingWeldingMaterial applyingCutting and machiningAssembling and dis-assemblingOtherFigure 2.1: Robot applications.However, the main applications are w...

### Page 64

Section 2.3. Industrial Applications27Agriculture, hunting and forestryMining and quarryFood and drinking proccessingTobacco proccessingTextile products manufacturingSuitcases, wallets, belts and shoesWood and cork proccessingPaper manufacturingPublications, printing and reproductions of recorded...

### Page 65

28Chapter 2. Introduction to Industrial Robotics2.3.1WeldingOne of the most common uses for industrial robots is welding. Welding robots have ﬁveor even six axes, since two or three wrist axes are necessary for proper orientation ofthe welding tool. Welding robots are mostly used in welding car...

### Page 66

Section 2.3. Industrial Applications29Figure 2.5: Painting2.3.3Cutting/MachiningCutting can be done by using several technologies such as plasma cutting, water jetcutting, laser cutting, oxycutting. Among the machining processes, we can mentiondrilling, grinding, deburring,. . .Figure 2.6: Cuttin...

### Page 67

30Chapter 2. Introduction to Industrial RoboticsIt could be said that assembly is an easy task for humans, but quite complex forrobots. One sample is the peg-in-hole operation. In this case, it is very important to havea good sensor system. The SCARA robots are the most commonly used robots for t...

### Page 68

Part IIIndustrial Robotics31

### Page 69

### Page 70

Chapter 3Industrial Robot Programming3.1IntroductionWhen we program, we identify and specify a series of basic actions which, whenexecuted in the speciﬁed order, achieve some speciﬁc task or realise some speciﬁcprocess. So, before we begin to program anything we need to clearly identify the...

### Page 71

34Chapter 3. Industrial Robot Programmingthis course, we will consider two types of basic robot actions: on the one hand, somecalculus as the computers; 1) typical calculations as with any computer program, and2) robot speciﬁc operations, i.e. individual joint movements. The end-point motion of...

### Page 72

Section 3.2. Levels of Robot Programming35the generation of the individual joint movements needed to realize some speciﬁed whole-arm motion or some speciﬁed end-point motion or action, also needs some kind ofcontrol.3.2Levels of Robot ProgrammingWe can distinguish four different types, or lev...

### Page 73

36Chapter 3. Industrial Robot Programmingpickup BLOCK-A by SIDE-A1 and SIDE-A3move BLOCK-A to LOCATION-2pickup BLOCK-B by SIDE-B1 and SIDE-B3putdown BLOCK-B on-top-off BLOCK-Awith SIDE-A5 coplanar-with SIDE-B6 andwith SIDE-A1 coplanar-with SIDE-B1 andwith SIDE-A2 coplanar-with SIDE-B2Here BLOCK-A...

### Page 74

Section 3.3. Robot Programming Methods37least, not until the ﬁnal testing of the program. It involves writing a program using atext-based robot programming language.3.3.1On-line Programming MethodsProgramming by guiding or programming by teaching. This involves physicallyguiding (moving) the ro...

### Page 75

38Chapter 3. Industrial Robot Programming• It cannot be used in hazardous situations;• High accuracy and straight-line movements are difﬁcult to achieve, as are any otherkind of geometrically deﬁned trajectory, such as circular arcs, etc.• It is difﬁcult to incorporate external sensor...

### Page 76

Section 3.3. Robot Programming Methods39Some teach pendants may also have a Joystick that allows the programmers to movethe robot arm, either in terms of individual joint movements, or in terms of the end-point,P e.The Teach-box typically has a set of buttons and allows particular conﬁgurations...

### Page 77

40Chapter 3. Industrial Robot Programmingcommand the necessary movement of the end-point. At other times, it is much easier tomove the end-point, Pe, of the robot arm.Although both these methods are still much in use, they both suffer from twoimportant disadvantages:• On-line programming needs ...

### Page 78

Section 3.4. Examples of Robot Programming Languages41• The sequence of operations and robot movements can be optimised or easilyimproved, once the basic program has been developed,• Previously developed and tested procedures and subroutines can be re-used,• External sensor data can be inco...

### Page 79

42Chapter 3. Industrial Robot Programming– AL, University of Stanford, USA (1974);– AML, IBM (1982);– LM; University of Grenoble (1989);– VAL-II, Univation (1983);– V+, Adept (1989);– RAPID, ABB (1994);– ARLA, ASEA (1979).• Object-Level programming languages:– LAMA, MIT AI Lab (...

### Page 80

Section 3.6. Robot Program Development Process: the six steps43program in order to have a graphical representation of how it works. This can be doneby ﬂowcharts. So a ﬂowchart is a collection of symbols, connected by arrows, whichshow the relationshionship among the different commands in the ...

### Page 81

44Chapter 3. Industrial Robot ProgrammingDCBAFigure 3.6: A simple assembly task.3.6.1Step 1: Analyze and decompose the task into a series of operationson the objects involvedThe goal of this ﬁrst step is to analyse and decompose the task into a series of operationson the objects involved, and s...

### Page 82

Section 3.6. Robot Program Development Process: the six steps45This, of course, depends upon there being no change to this alignment when Block-B isput on top of Block-A. If this is done slowly, this will probably be the case. But we candeﬁne the sequence of operations by a ﬂowchart:program:d...

### Page 83

46Chapter 3. Industrial Robot Programmingproperly considered at this stage of the program development process. Changing the waythe task is to be done later on is always more expensive and more prone to errors.3.6.2Step 2: Identify and specify all the situations needed to program allthe movements ...

### Page 84

Section 3.6. Robot Program Development Process: the six steps47DPC0PA1PB2PB1PA0PB0P3P2P1P4P5P7P6P0Figure 3.8: Deﬁnition of a simple assembly task.It is a good idea to try to identify and specify situations that can be used to programdifferent robot actions. P6 is an example of this: it is used ...

### Page 85

48Chapter 3. Industrial Robot Programming3.6.3Step 3: Identify any types of repeated actions and specify them assubroutines with parameters.Just as in any kind of computer program, if the robot needs to perform the samesequence of movements and actions at different points in a program, it should ...

### Page 86

Section 3.6. Robot Program Development Process: the six steps49subroutine:GET-PUTRobot not in Q_initOPEN gripperYesNoNoYesCurr. Sit.=Q_init?GET?PUT?Gripper CLOSED?YesNoNothing in the gripperUnknown actionNoErrorSpeed lowAccuracy highYesMove to Q_getputGET?NoYesOPEN gripperCLOSE gripperMove to Q_g...

### Page 87

50Chapter 3. Industrial Robot Programmingperformed.The Move to action is also deﬁned to be a low speed high accuracy movement. Otherlarge motions, to bring Pe to Qinit, for example, can be made with faster lower accuracymovements.This subroutine is not completely deﬁned here, since it also ne...

### Page 88

Section 3.7. Some Things to Think About51know a lot about the history and performance of each of the robots you are programming.The less you know about the robots being programmed, the more robots you will needto test the program on.Usually you can divide a group of robots (ten, in this example) ...

### Page 89

52Chapter 3. Industrial Robot Programming

### Page 90

Chapter 4Robot Geometry4.1Dimensions and Degrees of Freedom (DoF)In this part of the course we will consider the different robot geometries that can beobtained by connecting different numbers of rigid elements with different numbers andtypes of joints. The relationship between the geometry of a r...

### Page 91

54Chapter 4. Robot GeometryIn 3D space, we thus need:• 3 coordinates to completely deﬁne position, and• 3 coordinates to completely deﬁne orientation, giving a total of 6 coordinates intotal.In 2D space, we need two coordinates of position and one of orientation, giving atotal of three in...

### Page 92

Section 4.2. Types of Joints55Obstacle. . . to avoid an obstacle in a 2D space. . . to increase workspaceTwo links alingned: a singular configuration. . . to increase workspaceFigure 4.1: Reasons to use extra DoFs or redundant robots.

### Page 93

56Chapter 4. Robot Geometry• Linear or displacement DoF, also known as translational or prismatic DoF (P).• Rotational or orientation DoF (R).Linear DoFRotating DoFFigure 4.2: Basic types of DoFs.There are seven different basic types of joint that could be used, at least in principle,to form ...

### Page 94

Section 4.2. Types of Joints57Spherical jointScrew jointCardanCylindrical jointPlanar jointRotational jointPrismatic jointFigure 4.3: Types of joints

### Page 95

58Chapter 4. Robot Geometry4.3The Geometry of Robot ManipulatorsRobot manipulators are formed from combinations of rigid elements, called links,connected by joints that allow two connected links to move relative to each other inone direction, or possibly more than one direction.By using different...

### Page 96

Section 4.3. The Geometry of Robot Manipulators59L 1L3L3L2L 1Figure 4.4: Cartesian robot• High accuracy in linear movements can be obtained.• It has a simple kinematics model.• There are no singular conﬁgurations.• Its parameters (stiffness, accuracy, repeatability, etc) are constant wi...

### Page 97

60Chapter 4. Robot GeometryL1L1L2aL2bFigure 4.5: Cylindrical robot• It can be programmed and controlled easily if cylindrical coordinates are used.• High accuracy in linear movements can be obtained.• It has a simple kinematics model.• It is suitable when there are no obstacles facing it ...

### Page 98

Section 4.3. The Geometry of Robot Manipulators61180L 2aL 2bFigure 4.6: Spherical robot.Advantages:• It can be programmed and controlled easily if spherical coordinates are used.• The workspace is big compared to the workspace of cylindrical and cartesian robots.• It can pick up parts from ...

### Page 99

62Chapter 4. Robot Geometry• It has high dexterity and great manoeuvrability. It can access zones behindobstacles.• It can follow complex trajectories.• It covers a large workspace compared to the small volume of this type of robots.• The rotational joints are maintained easily.• It can...

### Page 100

Section 4.3. The Geometry of Robot Manipulators63Disadvantages:• It is only suitable for tasks on horizontal surfaces.4.3.2Parallel GeometriesSerial manipulators usually have big workspaces with great dexterity. However, theirload capacity is quite small.To overcome this problem, it is also pos...

### Page 101

64Chapter 4. Robot GeometryFor a 3-DoF parallel robot, we could use the geometry shown below.Figure 4.11: Samples of 3-DoF parallel robots: Star Robot (left); Mianouwski’sThese robots have three motorized joints, which are again built as three prismaticjoints. The remaining joints are passive, ...

### Page 102

Section 4.3. The Geometry of Robot Manipulators65FeatureParallel robotSerial robotWorkspace↓↑Payload and weight ofthe robot↑↓Price of components↓↑State of artResearchVery developed, many industrialapplicationsAccuracy and repeata-bility↑↓ControlcomplexsimpleApplicationsIncreasingM...

### Page 103

66Chapter 4. Robot GeometryThis second one is the most common geometry of hybrid robots. The parallelogramcombination is used to replace the second link in an anthropomorphic robot arm. Thiscombination increases the robustness and the stiffness of the robot without increasingits weight. Thus the ...

### Page 104

Section 4.3. The Geometry of Robot Manipulators670ˆx0ˆyABCFigure 4.14: The drilling task needs the placement of robot’s end-effector and orientationas well.The robot will be at the right location only when it manages to place and orient theend-effector (the drill). In previous sections, we se...

### Page 105

68Chapter 4. Robot Geometry(roll)(yaw)wzˆwxˆ(pitch)wyˆFigure 4.16: Conventional Aeronautics TerminologyThus we have a Roll-Pitch-Yaw-wrist or RPY-wrist. A simpliﬁed representation ofthat wrist is given in ﬁgure 4.17:wxˆwzˆexˆezˆR -P -YFigure 4.17: RPY-wrist.In ﬁgure 4.18 samples of 3...

### Page 106

Section 4.3. The Geometry of Robot Manipulators69not produce a change of position of Pe. That is to say, the rotation and the translationwill not be coupled. In practice, however, this is hard to realize (and expensive). However,other samples of cheaper wrists, of which three axes intersect, can ...

### Page 107

70Chapter 4. Robot Geometry

### Page 108

Chapter 5Basic Components of Robots5.1IntroductionIn this part of the course we will brieﬂy look at the technology and the basic componentsused in robotic arms, but without going into much detail. As we have seen from ourconsideration of the geometry of robot manipulators, they are formed from ...

### Page 109

72Chapter 5. Basic Components of RobotsResolver (Stator/Rotor)Motor statorBrakeHarmonic gearHarmonic gearHarmonic gearHarmonic gearHarmonic gearHarmonic gearHarmonic gearBrakeBrakeBrakeBrakeBrakeResolver (Stator)Resolver (Stator)Resolver Resolver (Stator/Rotor)Resolver (Stator)Resolver (Rotor)Res...

### Page 110

Section 5.3. Actuators and Motors73The links of robots are normally made of steel.5.3Actuators and MotorsThere are basically three different kinds of actuators or motors used in robots:Pneumatic, hydraulic, and electric.5.3.1Pneumatic ActuatorsThe pneumatic actuators use compressed air between 5 ...

### Page 111

74Chapter 5. Basic Components of RobotsFigure 5.3: Types of pneumatic actuators.Due to their characteristics, pneumatic actuators are often used as drivers for robots’end-effectors.5.3.2Hydraulic ActuatorsThe hydraulic actuators are quite similar to their pneumatic counterparts. However, wecan ...

### Page 112

Section 5.3. Actuators and Motors75low. Generally speaking, their output speed is too high compared to the output force (ortorque), which is too low. For that reason, reduction mechanisms are required and, inmany cases, an integral geared speed reducer is incorporated.They can burn up under overl...

### Page 113

76Chapter 5. Basic Components of RobotsBut the motor torque can be controlled as well. In this case, we have to control thecurrent of the armature:T = ktorii(5.2)Where Tis the output torque, ktor is the torque-constant of the motor, and ii is thecurrent of the armature.We can also control torque ...

### Page 114

Section 5.3. Actuators and Motors77ConditionitranetranPtran = itranetranLinear regionitranetranitran = 0Open0etran0.etran = 0Shortitran0itran0 = 0Table 5.1: The transistor only dissipates power in the linear region.to the actuator. This signal has a constant frequency. Thus, the actuator receives...

### Page 115

78Chapter 5. Basic Components of RobotsFigure 5.6: A PFM signal.is a very popular circuit for driving DC motors. Its name is due to the fact that it lookslike the capital letter ’H’ in classic schematics. The great advantage of an H-bridge circuitis that the motor can be driven forward or bac...

### Page 116

Section 5.3. Actuators and Motors79nism with power line frequency. So, the speed can be controlled by varying the frequency.Varying the speed by the frequency is not as easy as varying the speed by voltage.The advantages of this type of motor are:• There are no brushes (no-sparks, no-wearing)....

### Page 117

80Chapter 5. Basic Components of RobotsFigure 5.8: Full-stepper motor.Figure 5.9: Half-stepper motor.with it. Then, the current is switched from phase 1 to phase 2 and the rotor will move tobe aligned with phase 2, turning one step.But, in some cases, both phases can be energized simultaneously. ...

### Page 118

Section 5.3. Actuators and Motors81PM stepper motorVR stepper motorHB stepper motorFigure 5.10: Stepper motor: rotor types.A unipolar stepper motor has one winding, with a centre tap per phase. Sometimesthe unipolar stepper motor is referred to as a ”four-phase motor”, even though itonly has ...

### Page 119

82Chapter 5. Basic Components of RobotsDC motorTop coverBottom coverShaftPotentiometerPosition controllerFigure 5.12: A RC servomotor: internal parts (left), external appearance (right)They are very useful in many kinds of small robotics experiments because they aresmall, compact and inexpensive....

### Page 120

Section 5.4. Reduction mechanisms83The rotating ﬁeld is obtained by placing three stator windings that are connected toa special driver. This driver can sense the rotor position and powers the proper windingin order to get a rotating stator magnetic ﬁeld that must be perpendicular to the roto...

### Page 121

84Chapter 5. Basic Components of Robotsforces). This typically means that some kind of reduction mechanism is placed betweenthe motor or actuator and the joint it drives.For robot arms, reduction mechanisms should have special characteristics, since thespeeds are quite high with many peaks of acc...

### Page 122

Section 5.4. Reduction mechanisms85wave generatorflexisplinecircularsplineFigure 5.15: Components of a Harmonic-Drive.The number of teeth of the ﬂexispline is two or three less than the teeth of thecircular spline.When the harmonic drive is assembled, the wave generator deforms the ﬂexispline...

### Page 123

86Chapter 5. Basic Components of RobotsFigure 5.17: Schematic of a Cyclo-drive.Figure 5.18: Cyclo-drive animation.5.4.3Other reduction and Transmission mechanismsThe next table summarizes the most typical transmission mechanisms we can ﬁnd. Mostof them can also be used as reduction mechanisms.5...

### Page 124

Section 5.5. Sensors87PictureInputOutputNameAdvantagesDisadvantagescircularcirculargears-High torque;-Non-slip;-Low-cost.-Backlash;-Heavy,notsuitable for highspeeds;-Noisy;-Increasedfriction.circularcircularcogged belt-Allowsgreatdistancesbetween axes;-Non-slip;-Low-cost.-Backlash;-Heavy,notsuita...

### Page 125

88Chapter 5. Basic Components of RobotsSensitivity Slope of the characteristic curve. If the sensitivity is constant, it is alsoknown as the gain of the sensor (ﬁgure 5.19).Sensitivity error The variation of the real slope from the ideal (theoretical) slope.Range The maximum and the minimum val...

### Page 126

Section 5.5. Sensors89 y (Measured variable)ideal curveresolutionFigure 5.20: Sensor resolution x (Output voltage) y (Measured variable)ideal curve (zero offset)actual curveoffsetyrealymeasuredlinearizedcurveFigure 5.21: Accuracy, offset and linearity for a given sensor

### Page 127

90Chapter 5. Basic Components of RobotsDead zone A band close to zero in which there is no output change even if there ischange in the output value (ﬁgure 5.23).Saturation If the measured value travels beyond the sensor ranges, the output will notfollow the changes of the measured values. In th...

### Page 128

Section 5.5. Sensors91 y (Measured variable)ideal curve curve with hysteresisFigure 5.22: Sensor hysteresis x (Output voltage) y (Measured variable)saturationsaturationdead zoneFigure 5.23: Dead zone and saturation for a given sensorTime x (Output Voltage)tolerance bandresponse timedecay tim...

### Page 129

92Chapter 5. Basic Components of Robots Frequency Sensitivitybandwidthy/ xxy21ΔΔFigure 5.25: Sensor bandwidthPositionanalog• Potentiometer• Resolver• Synchro• Inductosyn• LVDTdigital• OpticalEncoder(incrementala...

### Page 130

Section 5.5. Sensors93• Robust.The disadvantages are:• Low precision.• The measurement depends on the temperature (i.e., it is unstable from the thermalpoint of view).5.5.1.2Resolver and SynchroDiagrams of a typical resolver and a typical synchro are shown in the ﬁgure below.Both of them ...

### Page 131

94Chapter 5. Basic Components of Robots23NFigure 5.27: Scott-T transformer.∫Figure 5.28: Resolver-to-Digital converter.

### Page 132

Section 5.5. Sensors95low inertia and good dynamic response. Finally, notice they provide us with an absolutemeasurement.5.5.1.3InductosynThe inductosyn resembles a resolver. In fact, the operation is the same: one windingenergized with a sine wave; there are two windings where two 90o-phase volt...

### Page 133

96Chapter 5. Basic Components of Robots• The induced voltage increases in the secondary winding that is nearest to the sliderand decreases in the secondary winding that is furthest.• The result is a differential output voltage which varies linearly with the position ofthe core.The LVDT offers...

### Page 134

Section 5.5. Sensors97Figure 5.31: Encoder’s working principleangle of phase displacement (ﬁgure 5.32). Each set of slots is called ’channel’. So wedistinguish the outer set (channel A) from the inner set (channel B). This type of encoderis called quadrature encoder. The direction of rota...

### Page 135

98Chapter 5. Basic Components of RobotsClockwise sequenceCounterclockwise sequence.........00CHB10110100...CHAClockwise sequenceCHACHBTimeCounterclockwise sequenceCHACHBTimeFigure 5.33: Time diagram of a quadrature encoder.conditioner for the output signal.Absolute EncoderOne of the disadvantages...

### Page 136

Section 5.5. Sensors9900001000100110111010111011111101110001000101011101100010001100010º -22.5º - 45º - 67.5º - 90º - 112.5º -135º - 157.5º - 180º - 202.5º -225º - 247.5º -270º - 292.5º - 315º - 337.5ºFigure 5.34: Gray code used in absolute encoders.5.5.1.7TachometerTh...

### Page 137

100Chapter 5. Basic Components of Robots– Thermocouple...However, in robotics, the most common classiﬁcation is based on the architecture:• Complex or multi-value sensors:– multi-axis force sensors,– touch or pressure sensitive arrays,– cameras and vision systems,– laser range ﬁnd...

### Page 138

Section 5.6. End-Effectors and Terminal Devices101Simple sensors are more usually used to provide values in conditional statementsin a program. These are either movement commands or other action commands, whichmight take the following forms:move to CONFIG-1 while SENSOR-1 = 1;}ormove in direction...

### Page 139

102Chapter 5. Basic Components of RobotsThese extra end-effector DoFs have the effect of increasing the total number of DoFsof the robot manipulator arm, but they are not usually counted in the total. So, a robotmanipulator with 6 DoFs that is ﬁtted with an end-effector which itself has 2 DoFs ...

### Page 140

Part IIIRobot Mathematical Modelling andControl103

### Page 141

### Page 142

Chapter 6Coordinate frames andhomogeneous transformation6.1IntroductionBefore going on to consider robot control, we need to be able to formally describe andmodel the geometry and kinematics (movement) of robot manipulator arms. For this weﬁrst need some kind of coordinate system.In particular,...

### Page 143

106Chapter 6. Coordinate frames and homogeneous transformationxTyTzTxObyObzObxeyezexByBzBx0y0z0xwywzwFigure 6.1: Relationship among different coordinate systems related to robot.6.2The Representation of Position in 3D SpaceTo completely and un...

### Page 144

Section 6.2. The Representation of Position in 3D Space107xAzAyAPeA PeyA PezA PexFigure 6.2: Cartesian coordinates of a point.xAzAyAPeA PerA PezA PeFigure 6.3: Cylindrical coordinates of a point.xAzAyAPeA PeR=∥P e∥A PeA PeFigure 6.4: Spherical coordinates o...

### Page 145

108Chapter 6. Coordinate frames and homogeneous transformation6.3The Representation of Orientation in SpaceTo be able to deﬁne, in a simple way, the orientation of an object, or the end-point ofa robot arm, Pe with respect to some reference system of coordinate axes, we attach anew coordinate r...

### Page 146

Section 6.3. The Representation of Orientation in Space109or the system {B}.B Pe =B PexB PeyB Pez = Pe (ˆxB + ˆyB + ˆzB)(6.2)We can relate the two vectors APe and B Pe by:APe =ARBB Pe(6.3)whereARB =ˆxA ˆxBˆxA ˆyBˆxA ˆzBˆyA ˆxBˆyA ˆyBˆyA ˆzBˆzA ˆxBˆzA ˆyBˆzA ...

### Page 147

110Chapter 6. Coordinate frames and homogeneous transformationA ˆyB =−10Then, according to equation 6.4, the rotation matrix is:ARB = A ˆxBA ˆyB =0−110Applying equation 6.3, we ﬁnally get:AP =ARBB P =0−1102−3=32Having a rotation angle of θ, proves that the general expression for the...

### Page 148

Section 6.3. The Representation of Orientation in Space1116.3.3Basic 3D rotation matricesThe principle use of this rotation matrix is in the deﬁnition how to represent theorientation of an object (or coordinate system) that is rotated around just one of theaxes of the ﬁxed reference frame, {A...

### Page 149

112Chapter 6. Coordinate frames and homogeneous transformationxAzAyAzBxByB22Figure 6.8: Rotation around ˆyA axis.xAzAyAzBxByB33Figure 6.9: Rotation around ˆzA axis.

### Page 150

Section 6.3. The Representation of Orientation in Space1136.3.4The Composition of Basic Rotation MatricesWe can combine the three basic rotation matrices deﬁned above [Rot (ˆx, ψ1), Rot (ˆy, ψ2)and Rot (ˆz, ψ3)], to represent any orientation of the coordinate system {B} with respectto the...

### Page 151

114Chapter 6. Coordinate frames and homogeneous transformationthe following equations are true:A ˆxB = 1A ˆyB = 1A ˆzB = 1→ normal matrixA ˆxBA ˆyB = 0A ˆxBA ˆzB = 0A ˆzBA ˆyB = 0→ orthogonal matrix→ orthonormal matrix(...

### Page 152

Section 6.3. The Representation of Orientation in Space115The inverse problem, that is to say, to obtain the Euler Angles from a given rotationmatrix, requires a little work. Given the rotation matrix of system {B}, in reference to asystem {A}:ARB =r11 r12 r13r21 r22 r23r31 r32 r33(6....

### Page 153

116Chapter 6. Coordinate frames and homogeneous transformation6.3.6Rotation Axis- Rotation Angle RepresentationDue to the formulation singularity of the Euler Angles, other representation models aredeﬁned that are based on 4 parameters. The fourth parameter is normally redundant.But when the Eu...

### Page 154

Section 6.4. Homogeneous Coordinates117Representation:e0 = cos(ϕ/2)e1 = ux sin(ϕ/2)e2 = uy sin(ϕ/2)e3 = uz sin(ϕ/2)(6.20)Quaternions behave as a vector in the 4D space and have the interesting propertythat:e| =e20 + e21 + e22 + e23 = 1(6.21)Quaternions can also be envisioned as an extension o...

### Page 155

118Chapter 6. Coordinate frames and homogeneous transformationxAzAyAzBxByBOBOAA OABA PeB PePeFigure 6.11: The relation between frames {A} and {B} involves both a translation plus arotation.series should be combined, extremely difﬁcult. This problem can be overcome thanksto the...

### Page 156

Section 6.4. Homogeneous Coordinates119where whas any arbitrary nonzero value and, in effect, represents a scaling factor of theembedding of the 3D space in the 4D space.For example, a vectorP3De=abc(6.25)can be represented in homogeneous coordinates as a column vector:P4De=...

### Page 157

120Chapter 6. Coordinate frames and homogeneous transformationP4De=66123(6.30)where w = 3, etc.In homogeneous coordinates, null vectors are represented as P 4De= 0 0 0 wwithw = 0.The vectors of type abc0Twith a, b, c = 0can be used to represent directions,since they repres...

### Page 158

Section 6.4. Homogeneous Coordinates121and this can be used to represent the position and orientation of an object in 3Dspace, with respect to some reference system, or the relationship between two referencesystems, {B} and {A}, for example, in 3D space.If the matrix ATB represents the relationsh...

### Page 159

122Chapter 6. Coordinate frames and homogeneous transformation• Construct the homogeneous transformation matrix → ATB =0105−1 00−400120001• Calculate APe = ATBBPe → APe =7−3−116.4.4Inverse Homogeneous Transformation MatrixIn this cas...

### Page 160

Section 6.4. Homogeneous Coordinates123which we can write as:APe =ATBB Pe(6.38)where ATB represents a relation between the reference system {B} and the referencesystem {A}.Similarly, a vector Pe transformed by a basic translation matrix ATtransf with respectto reference system {A} will have vecto...

### Page 161

124Chapter 6. Coordinate frames and homogeneous transformationxAzAyAzBxByBOBOAA OAB=[ 6−38]PePeB=[−273]PeA=[4411]Figure 6.12: Translation of a frame.xAzAyAOAA OAB=[ 6−38]PePeIA=[10119]PeA=[4411]PeIFigure 6.13: Translation of a position with a ﬁxed frame.

### Page 162

Section 6.4. Homogeneous Coordinates125AP Ie =AP IexAP IeyAP Iez1=ATtransfAPe =1000100016−38000144111=101191(6.42)and thus AP Iex = 10, AP Iey = 1, and AP Iez = 19.6.4.6Basic Rotation Homogeneous Tra...

### Page 163

126Chapter 6. Coordinate frames and homogeneous transformationHere ATB represents the relation between the reference system {B} and the referencesystem {A}.Similarly, a vector APe which is transformed by ATtransf to a new vector APe will bedeﬁned by:APe =PexPeyPez1=ATtra...

### Page 164

Section 6.4. Homogeneous Coordinates127and thus Pex = 8, Pey = −4, and Pez = 12.6.4.6.2Composition of Basic Rotation Homogeneous Transformation MatrixFor example, a transformation matrix that represents a rotation of ψ1 around ˆx, followedby a rotation of ψ2 around ˆy, and ﬁnally a rotati...

### Page 165

128Chapter 6. Coordinate frames and homogeneous transformationIn conclusion, we can see that the basic rotation homogeneous transformationmatrices behave as the basic rotation matrices and no further explanation should beneeded. Despite that, in the following subsections we are going to analyse t...

### Page 166

Section 6.4. Homogeneous Coordinates129xAzAyAOAA OABzB3xB3yB3OB3z =zB4xB4yB4OB4Figure 6.16: Translation plus rotation of a frame: Rotation and translation are notcommutative.6.4.7.1Rotation and then TranslationIn the case where we ﬁrst apply a rotation around on...

### Page 167

130Chapter 6. Coordinate frames and homogeneous transformationATB =Trans (P3x1) Rot (ˆy, ψ2)(6.56)andATB =Trans (P3x1) Rot (ˆz, ψ3)(6.57)6.4.7.2Translation and then RotationIn the case where we ﬁrst apply a translation followed by a rotation around one of theprinciple axes of the ﬁxed ref...

### Page 168

Section 6.4. Homogeneous Coordinates131APe =Trans (P3x1) Rot (ˆx, ψ1)B Pe =1008010−4001120001100000−1 001000001−34−111(6.62)which gives,APe =100800−1 −4010120001−34−111...

### Page 169

132Chapter 6. Coordinate frames and homogeneous transformationWe have also seen that when the complete or ﬁnal transformation is composed ofa series of applied basic transformations, the composition of the total transformationmatrix depends upon the order in which the basic operations are appli...

### Page 170

Section 6.4. Homogeneous Coordinates133ATB =10000cos ψ1 − sin ψ1 00sin ψ1cos ψ100001cos ψ20sin ψ200100− sin ψ2 0cos ψ2 00001cos ψ3 − sin ψ3 00sin ψ3cos ψ30000100001(6.70)and thusATB =c3c2−s3c2s...

### Page 171

134Chapter 6. Coordinate frames and homogeneous transformation• If the transformed reference system {B} is obtained following a series of basicrotation and translation operations, all deﬁned with respect to the movablereference system {B}, then the complete (or total) homogeneous transformati...

### Page 172

Section 6.4. Homogeneous Coordinates135ATB =rot(ˆzA, π/2)Trans({A}, [5 5 10]T )rot(ˆxA, −π/2) ==0−1 0010000010000110050105001100001100000100−1 000001=00−1 −510050−10100001

### Page 173

136Chapter 6. Coordinate frames and homogeneous transformation

### Page 174

Chapter 7Kinematics of Manipulators7.1IntroductionIn this part, we will study the kinematics of robot manipulator arms. In particular it willintroduce the problems of the forward and inverse kinematics of robot arms. It will alsointroduce and illustrate a systematic method for describing robot ar...

### Page 175

138Chapter 7. Kinematics of ManipulatorsFrom these deﬁnitions we can see that the forward kinematics problem, for anyparticular serial robot manipulator arm, has a unique solution, whereas, the inversekinematic problem for that same robot arm may have more than one solution. In thecase of paral...

### Page 176

Section 7.3. Geometric Parametres of Robotic Mechanisms139Thus, joint axis iis deﬁned by a direction vector, around which link irotates relativeto link i − 1, and we can specify the relative location of the two axes involved, axis iandaxis i − 1, in terms of two parameters.In the same way j...

### Page 177

140Chapter 7. Kinematics of Manipulatorsdetermined by the physical form of the link.7.3.2Joint ParametersTwo links are connected by a joint. They therefore have a common joint axis (joint axis i).The link offset parameter is then deﬁned as the distance along the common joint axisfrom the end of...

### Page 178

Section 7.4. Denavit and Hartenberg method141Joint TypeLink Offset (di)Joint Angle (θi)prismaticvariableconstantrotationalconstantvariableTable 7.1: List of variable parameters according to the type of DoF.7.4Deﬁningthe LinkReferenceSystems(DenavitandHartenberg method)To be able to represent t...

### Page 179

142Chapter 7. Kinematics of Manipulators(b) The reference system {0} is then deﬁned to be completely coincident with thereference system {1}, when the variable joint parameter, d1 or θ1, is zero.(c) Following this convention for link 0, we will always have a0 = 0and α0 = 0, and,• in the cas...

### Page 180

Section 7.5. Forward Kinematics Examples143Applying the Denavit and Hartenberg method to two connected links, link i − 1andlink i, connected by joint i, gives us the following deﬁnition of the reference systems{i − 1}and {i} ﬁxed to the link i − 1and link i, respectively.The homogeneous...

### Page 181

144Chapter 7. Kinematics of ManipulatorsL0L 1L2L3PeFigure 7.4: Example 1: 3 DoF planar robot.link 0link 2link 3link 1Joint 2Joint 1Joint 3Figure 7.5: Forward Kinematics. First two steps: numbering the joints and numering thelinks.

### Page 182

Section 7.5. Forward Kinematics Examples145DH par.link iai−1αi−1diθi1L000θ12L100θ23L200θ3Table 7.2: DH parameters for example 1.Having numbered the joint axes and the elements, the third step is to deﬁne thereference systems ﬁxed to each element, following the method of Denavit and H...

### Page 183

146Chapter 7. Kinematics of Manipulators1T2 =Trans (ˆx1, L1) Rot (ˆx1, 0)Trans (ˆz2, 0)Rot (ˆz2, θ2) =Trans (ˆx1, L1) Rot (ˆz2, θ2)(7.6)2T3 =Trans (ˆx2, L2) Rot (ˆx2, 0)Trans (ˆz3, 0)Rot (ˆz3, θ3) =Trans (ˆx2, L2) Rot (ˆz3, θ3)(7.7)The total relationship between the reference syst...

### Page 184

Section 7.5. Forward Kinematics Examples147DH par.link iai−1αi−1diθi1L000θ12L100θ23L200θ3eL3000Table 7.3: DH parameters for example 1, including the end-effector frame.slightly, including a new row (see table 7.3). This row is out of the scope of D-H method,but required to properly obtai...

### Page 185

148Chapter 7. Kinematics of Manipulatorsx0y0z0Xxeyezex3y3z3x1y1z1Xx2y2z2XL1L3Figure 7.7: Example 2: a three DoF robot with one prismatic joint.DH par.link iai−1αi−1diθi100L1θ120π/2d2−π/23π/200θ3eL3000Table 7.4: DH parameters for example 2.

### Page 186

Section 7.5. Forward Kinematics Examples149DH par.link iai−1αi−1diθi1000θ120-π/2L1θ2 − π/23L200θ3Table 7.5: First set DH parameters for example 3.0T1 =Trans (ˆz1, L1) Rot (ˆz1, θ1)(7.16)1T2 =Rot (ˆx1, π/2)Trans (ˆz2, d2) Rot (ˆz2, −π/2)(7.17)2T3 =Rot (ˆx2, π/2)Rot (ˆz3, ...

### Page 187

150Chapter 7. Kinematics of ManipulatorsL1L0L2L3Figure 7.8: Example 3: a 3DoF manipulator: three rotational joints, 2 axes intersectingaxes and 2 parallel axes.x0y0z0x1y1z1x2y2z2x3y3z3x0y0z0x1y1z1Xx2y2z2x3y3z3XFigure 7.9: Fir...

### Page 188

Section 7.5. Forward Kinematics Examples151x0y0z0x1y1z1Xx2y2z2x3y3z3x0y0z0x1y1z1XXx2y2z2x3y3z3XFigure 7.10: Second two solutions for example 3.DH par.link iai−1αi−1diθi1000θ120π/2L1θ2 + π/23L200θ3Table 7.7: Third s...

### Page 189

152Chapter 7. Kinematics of Manipulators7.5.0.4Example 4The next example is a cylindrical robot with 4 DoF (ﬁgure 7.11).L1L2d2d314Figure 7.11: Example 4: a cylindrical robot.Notice that we have put the reference system {1} at the bottom of element 1, so that itis coincident with system {0...

### Page 190

Section 7.5. Forward Kinematics Examples153x0y0z0x3y3z3x1y1z1L1=0d2x2y2z2Xx4y4z4d3L2Figure 7.12: Reference systems for example 4.DH par.link iai−1αi−1diθi1000θ1200d2 + L1030π/2d30400L2θ4e0000Table 7.9: DH parameters for example 4.

### Page 191

154Chapter 7. Kinematics of Manipulators0T4 =cos θ1 − sin θ1 00sin θ1cos θ1000010000110000100001d2 + L10001··100000−1 00100000110000100001d30001cos θ4 − sin θ4 00sin θ4cos θ...

### Page 192

Section 7.5. Forward Kinematics Examples155x0y0z0Xx1y1z1Xx4y4z4Xx2y2z2Xx3y3z3XFigure 7.14: Reference systems for example 5.DH par.link iai−1αi−1diθi100L0θ12L10−L3θ23L20−d30400−L4θ4Table 7.10: DH parameters for example 5.

### Page 193

156Chapter 7. Kinematics of ManipulatorsThe four homogeneous transformation matrices that represent the relations betweenthe four pairs of reference systems are thus given by:0T1 =Trans (ˆz1, L0) Rot (ˆz1, θ1)(7.27)1T2 =TransL1 0−L3TRot (ˆz2, θ2)(7.28)2T3 =TransL2 0−d3T(7.29)3T4 =Trans (...

### Page 194

Section 7.6. Inverse Kinematics157link length aiNumber of solu-tionsa1 = a3 = a5 = 0up to 4a3 = a5 = 0up to 8a3 = 0up to 16all= 0up to 16Table 7.11: Number of solutions for inverse kinematics.7.6.1Multiple SolutionsUnlike systems of linear equations, systems of nonlinear equations can have multip...

### Page 195

158Chapter 7. Kinematics of ManipulatorsSince computing closed form solutions is much cheaper, and also much faster, thancomputing iterative numerical solutions, many robot manipulator geometries satisfythis condition, though this typically make them mechanically and structurally morecomplicated ...

### Page 196

Section 7.6. Inverse Kinematics159x0y0z0Xx1y1z1Xx2y2z2x3y3z3x4y4z4x5y5z5xeyezeFigure 7.16: Example 1: Denavit frames associated with a 5 DoF anthropomorphicalrobot.7.6.2.1Kinematic DecouplingWhen we have to solve the inverse kinematic...

### Page 197

160Chapter 7. Kinematics of Manipulators0Te =0Re0Pe0001(7.32)Thus, we can easily obtain the coordinates of 0P4 from the robot’s end point (0Pe)by translating the end-point coordinates a given distance along a given axis. Inthe example, the translation is L4 (ﬁgure 7.15), along the ˆze (ﬁgu...

### Page 198

Section 7.6. Inverse Kinematics1617.6.2.2Positioner’s Inverse Kinematics, Geometric MethodThis method is suitable for robots with few DoFs (3 or less) and is normally used tosolve the positioner mechanism after decoupling the robot’s wrist. It consists of ﬁndinggeometric relationships in wh...

### Page 199

162Chapter 7. Kinematics of ManipulatorsL0+L1L 2Pe'xx0y0z0Xx1y1z1Xx2y2z2x3y3z3ze '≡ x4ye'≡− z4xe '≡− y4Xx0y0z0 ≡ z1x1y1123PeRPerPe'zPe'yL3PerFigure 7.18: Example 1: one solution for the inverse k...

### Page 200

Section 7.6. Inverse Kinematics163Notice that the angles θ2 and θ3 can be expressed as below:θ2 = β − α(7.36)θ3 = γ − π(7.37)Where α, βand γare auxiliary angles. Now let’s see how to calculate them. But ﬁrstwe need to deﬁne a couple of auxiliary distances:Pe r =P 2e x + P 2e ...

### Page 201

164Chapter 7. Kinematics of ManipulatorsNotice that there is not an ambiguity of the quadrant to which α, β, and γanglesbelong. Since they are geometrical angles so they always belong to the ﬁrst quadrant.The next step is to combine these two latter expressions with the equations 7.40,7.36 a...

### Page 202

Section 7.6. Inverse Kinematics165x1y1z1Xx2y2z2Xx3y3z3Xx0y0z0 ≡ z1x1y1x0y0z0XARM-RIGHTELBOW-UPx1y1z1Xx2y2z2x3y3z3ARM-RIGHTELBOW-DOWNx0y0z0Xx0y0z0 ≡ z1x1y1x1y1z1x2y2z2...

### Page 203

166Chapter 7. Kinematics of Manipulatorswe have an uncertainty about the quadrant angle, then we have to ﬁrst calculate thecosinus and then the sinus for each DoF in the wrist.The cosinus angle is calculated thanks to the dot product between ˆxi−1 and ˆxi:ˆxi · ˆxi−1 = ˆxiˆxi−1cos ...

### Page 204

Section 7.6. Inverse Kinematics1670T3 =0R30P3[0 0 0]1=[0 ˆx30 ˆy30 ˆz3]0P3[0 0 0]1(7.50)Then, from D-H method, we know that θ4 is the angle between ˆx3 and ˆx4 about ˆz4 (seeﬁgure 7.21) with ˆx3 known (the ﬁrst column of 0R3):cos θ4 = ˆx3 · ˆx4(7.51)x3y3z3≡ z4x4...

### Page 205

168Chapter 7. Kinematics of ManipulatorsFinally, we obtain the angle by means of arctan210:θ4 = arctan (sin θ4, cos θ4) =(7.56)(ˆyx3 (ˆzy3 ˆzze − ˆzye ˆzz3) + ˆyy3 (ˆzxe ˆzz3 − ˆzx3 ˆzze) + ˆyz3 (ˆzx3 ˆzye − ˆzxe ˆzy3) ,ˆxx3 (ˆzy3 ˆzze − ˆzye ˆzz3) + ˆxy3 (ˆzxe ˆ...

### Page 206

Chapter 8The Jacobian MatrixSo far we have considered only the location (position and orientation) of the end-point,Pe, of the robot with respect to the ﬁxed base reference system and the joint positionneeded to achieve it.Sometimes we also need to consider and to control the rate of change of ...

### Page 207

170Chapter 8. The Jacobian Matrix˙q = ˙q1˙q2˙q3 · · ·˙qnT(8.3)and˙Pe =˙Pxe˙Pye˙Pze˙ψ1e˙ψ2e˙ψ3eT(8.4)As Jdepends upon the instantaneous values of ( ˙q1 ˙q2 · · · ˙qn), so Jwill be different foreach different set of values of (q1 q2 · · · qn) in other words, for each diff...

### Page 208

Section 8.1. Calculating the Jacobian Matrix171PxePyePzeψ1eψ2eψ3e=fkinx (q1, q2, q3 · · · qn)fkiny (q1, q2, q3 · · · qn)fkinz (q1, q2, q3 · · · qn)fkinψ1 (q1, q2, q3 · · · qn)fkinψ2 (q1, q2, q3 · · · qn)fk...

### Page 209

172Chapter 8. The Jacobian Matrixpoint position. However, the temporal derivatives of end-point position do not alwaysrepresent the end-point speed:˙Pxe˙Pye˙Pze˙ψ1e˙ψ2e˙ψ3e=vxevyevze˙ψ1e˙ψ2e˙ψ3e...

### Page 210

Section 8.2. Speed Propagation Method to Compute the Jacobian Matrix173where αe = 1 − cos ϕe and βe = sin ϕe.Therefore, the Jacobian Matrix that relates Cartesian velocity with articular speed is:veωe= J ˙q = B−1J∗ ˙q(8.15)8.2Speed Propagation Method to Compute the JacobianMatrixThis...

### Page 211

174Chapter 8. The Jacobian MatrixStartendv00=[0 0 0]T00=[0 0 0 ]TNoYesi=0⋯ni=0⋯nPrismaticjoint?i 1i1=Rii1⋅ii ˙i1⋅zi1i1vi1i1=Rii1 vii ii∧Pi1i[ veeee]= Je[ ˙q]i1i1=Rii 1⋅iivi1i1=Rii1 vii ii...

### Page 212

Section 8.4. Force/Torque Propagation Method to Compute the Jacobian Matrix175where τis the vector of force/torque applied by every actuator, and fe and ne are theforce and torque exerted on the end-point.Notice that the Jacobian Matrix given in equation 8.16 is the same as the JacobianMatrix in...

### Page 213

176Chapter 8. The Jacobian MatrixIn other words, the above equations imply the extraction of the fz value (if the DoF isprismatic) or nz (if the DoF is rotational).After obtaining τ1 · · · τn, the Jacobian matrix is obtained as the matrix form of theequations for τ1 · · · τn. The summar...

### Page 214

Section 8.5. Singularities and Singular Conﬁgurations177Startendfee=[fxfyfz ]Tnee=[nxnynz ]TNoYesi=0⋯ni=0⋯nPrismaticjoint?i =nii ⋅ zii[]= JTe[ feenee]fii=Ri1i⋅fi1i1=fi1inii=Ri1i⋅ni1i 1Pi 1i∧fi1ii =fii⋅ zii[]= JT0[ fe0ne0][]=[ JfTe...

### Page 215

178Chapter 8. The Jacobian Matrix• Workspace Boundary Singularities, which occur when the robot manipulator isfully extended or folded onto itself so that Pe is at or near the boundary of the robotworkspace. In such conﬁgurations, one or more joints will be at their limits of rangeof movement...

### Page 216

Chapter 9Path planning9.1IntroductionFrom the inverse kinematics of a robot manipulator arm we can know what jointvalues we need for any particular location of Pe. Thus, to make Pe follow some speciﬁedtrajectory in Cartesian space (a straight line or circular arc, for example), we must ﬁrstca...

### Page 217

180Chapter 9. Path planningRobot programmeTask specificationTrajectory generationReference valuegenerationLow level controlInitial and end locations of PeType of trajectoryTime for completion or speed requirementsJoint trajectories and speed joint profilesSequences of reference values of each joi...

### Page 218

Section 9.1. Introduction1816. Sample each continuous joint trajectory qj(t) (and ˙qj(t), j = 1. . .n), to generate asequence of discrete reference values for each joint, qj(kT )(and ˙qj(kT ), j = 1. . .n),where Tis the sampling period used, and kis the sampling number.To illustrate these six s...

### Page 219

182Chapter 9. Path planningq1q2qs =q0qf =q62D Joint spaceq1q5q4q3q2Sampled trajectory points in joint spaceFigure 9.4: Sampled trajectory (joint space).Step 4 involves ﬁtting a smooth continuous curve to these joint space sample point...

### Page 220

Section 9.1. Introduction183q1q2qs =q0qf 2D Joint spaceSampled joint space trajectoryFigure 9.6: Sampling, in time, the trajectory (joint space).q1q2q1 joint reference values in time ttq1 joint reference values in timeFigure 9.7: Joint reference values for the ev...

### Page 221

184Chapter 9. Path planning9.2Types of Trajectories in Kinematic ControlThe trajectory of Pe, the motion of the Robot End-point location in Cartesian space, fromP(s)eto P(f )e, can be generated by three different types of joint space trajectories. Only thelast of which can be used to produce full...

### Page 222

Section 9.2. Types of Trajectories in Kinematic Control185y0x0Pes Pef 2D Cartesian spaceqtq1sq1f 2D Joint spaceActual generated trajectory of Pe q2sq2f Figure 9.10: Point to point trajectories and simultaneous joint motion.y0x0Pes Pe...

### Page 223

186Chapter 9. Path planningTo achieve this type of coordinated synchronous trajectory, the kinematic controllerhas to ﬁrst analyse the motion of all the joints needed to produce the motion of Pe toﬁnd which joint which needs the most time. All other joints are then programmedto take the same ...

### Page 224

Section 9.3. Trajectory interpolation in joint-space187tqjqj1 =qjs qji−1qjiqjf qj2Figure 9.13: Time sampling in the Joint Space.many parameters as samples. This option would lead to a very complicated (and complex)interpolator that would demand a lot of resou...

### Page 225

188Chapter 9. Path planningtqjt˙qjt¨qjFigure 9.14: Linear interpolator.where t(i−1) < t < t(i)and T = t(i) − t(i−1).The choice of t(i), that is, the travelling time for each q(i), can be made according toone of the following criteria:• The concerned joint must arrive at its goal a...

### Page 226

Section 9.3. Trajectory interpolation in joint-space189three, so it is a cubic polynomial (interpolator) with 4 parameters (ﬁgure 9.15).As happend with linear interpolators, a cubic interpolator is deﬁned for each intervalthat is deﬁned by two adjacent sampled points. The resulting curve is...

### Page 227

190Chapter 9. Path planninga = q(i−1)jb = ˙q(i−1)jc =3T 2q(i)j− q(i−1)j− 2T ˙q(i−1)j− 3T ˙q(i)j(9.8)d = − 2T 3q(i)j− q(i−1)j+1T 2˙q(i)j+ ˙q(i−1)jT = t(i) − t(i−1)An additional criterion for via-point velocities is given by Craig in “Introduction toRobotics”:˙q(...

### Page 228

Section 9.3. Trajectory interpolation in joint-space191tqjt˙qj¨qjtaj−ajvjqji−1qjiFigure 9.16: Trapezoidal interpolator.It is called “trapezoidal” due to the shape of its speed proﬁle (time derivative of theinterpolator presented in the previous para...

### Page 229

192Chapter 9. Path planningτ =vjajT = s(i)jq(i)j− q(i−1)jVj+ τvj =maximum speed(9.11)aj =maximum accelerations =sgn q(i)j− q(i−1)jNotice that the velocity at via points are zero (null) for the proposed interpolator. Thisfeature is only useful when the complete trajectory is deﬁned by ...

### Page 230

Chapter 10Control of robot manipulators10.1IntroductionControl when the consequence or result of an action is always be the same, despite anyperturbations or disturbances that affect the action. Therefore, one of the concepts ofcontrol we will use in this course can be characterised as follows: C...

### Page 231

194Chapter 10. Control of robot manipulatorsIn robotics, there are two types of traditional controllers: one for position control andthe second one to control the force that is applied by the end-effector. This will yield tocontrollers that have two feedback loops (ﬁgure 10.1).ControllerRobotFo...

### Page 232

Section 10.1. Introduction195differential equation is:f = m ˙v + bv + kvdt(10.1)While for the resistor, inductance and capacitor circuit, the differential equation is:V = L ˙I + RI +1CIdt(10.2)When comparing these last equations, we have a formal correspondence betweenvoltage and force, current...

### Page 233

196Chapter 10. Control of robot manipulators10.1.2.2Force ControlForce control is a new paradigm that is being introduced into industrial robot controlloops when robots have to perform tasks that require physical interaction with theirenvironment. Notice that this is the case of the majority of a...

### Page 234

Section 10.1. Introduction197Impedance consists of two components, that which is physically intrinsic to themanipulator and that which is given to the manipulator by active control. It is thegoal of Impedance Control to mask the intrinsic properties of the arm and replacethem with the target impe...

### Page 235

198Chapter 10. Control of robot manipulators• noise in sensors,• ﬂexible joints and links,• sensor dynamics,• environment dynamics,• etc.10.2Linear Position Control of a Single JointThe robot control algorithms usually have cope with multiple inputs-outputs of non-linear systems. This...

### Page 236

Section 10.2. Linear Position Control of a Single Joint199• ωL is the angular speed at the reductor output.• rm is the radio of the input gear.• rL is the radio of the output gear.10.2.1.1Resisting torquesAccording to ﬁgure 10.3, it is cleared depicted that there are only two resisting t...

### Page 237

200Chapter 10. Control of robot manipulators(τL)L = η(τL)m(10.8)ωm = ηωL(10.9)Subtituting (τL)L and ωL in equation 10.3, using the equations 10.8 and 10.9 yields:(τL)m =1ηJL˙ωmη+ BLωmη(10.10)Now we have to notice that the total commanded motor torque (τcom) required isdivided betw...

### Page 238

Section 10.2. Linear Position Control of a Single Joint201Sensorref imimeas i+1Jmi s2 Bmi siIikikp ierr iFigure 10.4: 1-DoF Proportional Error position control.If we use Proportional Error (PE) control to control the position of each joint, we willhave a negative feedback c...

### Page 239

202Chapter 10. Control of robot manipulatorskφi Kpi (θrefi − θmeasi ) = Jmi¨θmi + Bmi˙θmi(10.20)where: kpi is the constant of proportionality between Ii and θerri .We can combine the constants kφiand kpi to obtain kpei, and without loss ofgenerality, we can substitute the expression (...

### Page 240

Section 10.2. Linear Position Control of a Single Joint20300 . 511 . 522 . 533 . 5400 . 20 . 40 . 60 . 811 . 21 . 41 . 61 . 82Time Responsei2 0Bmi= 0, i20i2=0i2 0Figure 10.5: Step response types of systems: ω2i > 0 → overdamped system, ω2i = 0 →critically damped sys...

### Page 241

204Chapter 10. Control of robot manipulators• IfB2mi4kpi= Jmi(10.26)Ωi is equal to zero, equation 10.23 becomes more sympliﬁed in,∆θi = Ci12 e−Bmi2Jmit(10.27)In this case, the joint system is said to be critically damped, and it means that itsresponse time, tr, has reached its minimum ...

### Page 242

Section 10.2. Linear Position Control of a Single Joint205the total torque, τmi − gi does not depend only on time,t, but the angular position of joint.(How do we convert this model into a linear model, which is what we need?)We can also see from equation 10.30 that when the control torque τmi...

### Page 243

206Chapter 10. Control of robot manipulatorsIn a SCARA-type geometry, the third (vertical prismatic) joint would need a PIcontroller to deal with the effects of the mass of the third element, wrist, and any object.But in this case the direction of movement is always vertical, which means the same...

### Page 244

Section 10.2. Linear Position Control of a Single Joint207The block diagram of a PID-controlled joint system thus takes the form shown inﬁgure 10.6.Sensorref imimeas i+1Jmi s2 Bmi sm iIm ikikp i⋅err ierr ikI i∫ err i dtkd id err idtFigure 10.6: 1-DoF PID posi...

### Page 245

208Chapter 10. Control of robot manipulatorsSpeed sensorref i˙m imeas i+1Jmi sBmim iPIDerr i˙meas i∫ dtkv i⋅˙meas ikp i⋅meas i˙ref iFigure 10.7: 1-DoF PID position control.to be deﬁned by the actual position error value.In other words, when position er...

### Page 246

Section 10.2. Linear Position Control of a Single Joint209Sensorref imimeas i+1Jmi s2 Bmi sm ikp i kI iskd i⋅serr id i+Figure 10.8: Basic PID control algortimh.Thus, the proposed approach in this section is to keep the robot’s behaviour stabledespite having low ...

### Page 247

210Chapter 10. Control of robot manipulatorsa compensation block to the basic PID control scheme (ﬁgure 10.9). This kind ofcompensation is know as feedforward compensation6.Sensorref imimeas i+1Jmi s2 Bmi sm ikp i kI iskd i⋅serr i+d i++Jmi s2 Bmi sfeed...

### Page 248

Section 10.3. Computed Torque Algorithm211Sensorref imimeas i+1Jmi s2 Bmi sm ikp i kI iskd i⋅serr i+d i++G m i feedbackFigure 10.10: Feedback compensation.10.3Nonlinear Position Controller: Computed Torque Algo-rithm10.3.1Linear Dynamic Model of n-DoF ...

### Page 249

212Chapter 10. Control of robot manipulatorseach other. In other words, the basic control of a 6 DoF robot arm is not treated as a 6-input/6-output control problem, and we do not use multi-input/multi-output controllerdesign principles to design and implement this basic level of control.In this t...

### Page 250

Section 10.3. Computed Torque Algorithm213¨qrefiq˙q+m=Mq⋅qVcorq,˙qi⋅˙qjVcenq,˙qi2FfricVq,˙qFfricCq,sgn˙qGqm Mqd+KdKp˙qcomp= Vcorq,˙qi⋅˙qj Vcenq,˙qi2 FfricVq,˙q FfricC...

### Page 251

214Chapter 10. Control of robot manipulatorsDeriving both sides of the equation we have:...qerr + Kd ¨qerr + Kp ˙qerr + KI qerr = 0(10.41)This equation is again a set of nlinear differenctial equations decoupled.10.4Adaptive Position Control of Joint SystemsIn this section, we will brieﬂy loo...

### Page 252

Section 10.4. Adaptive Position Control of Joint Systems215If it is important to have different PID gains for different kinds of movements (one setfor slow, accurate movements, and a different set for fast, less accurate movements), wecan extend the table to include this extra dimension.Using suc...

### Page 253

216Chapter 10. Control of robot manipulators10.4.2Model Reference Adaptive Control (MRAC)In Model Reference Adaptive Control (MRAC), we use a mathematical model of thejoint system to deﬁne the ideal behaviour of the joint. The output of this model is thencompared, in real time, with the actual ...

### Page 254

Section 10.5. Some Things to Think About217tation of the algorithm that decides how each of the three PID gains should be modiﬁed.This clearly has to calculate appropriate changes to make, but it has to do this in realtime.Until a few years ago, this typically required more computational power ...

### Page 255

218Chapter 10. Control of robot manipulators¨qrefiq˙q+m=Mq⋅qVcorq,˙qi⋅˙qjVcenq,˙qi2FfricVq,˙qFfricCq,sgn˙qGqm Mqd+KdKp˙qcomp= Vcorq,˙qi⋅˙qj Vcenq,˙qi2 FfricVq,˙q Ffri...

### Page 256

Part IVExercises219

### Page 257

### Page 258

Exercises iKinematic structures andprogrammingExercise i.1Figure i.1 shows a table with fur pieces on top, and nearby there are boxes to classifyand store them.How many degrees of freedom are required to do this work? Which robot geometrywould be appropriate to do this? (There maybe be more than ...

### Page 259

222Exercises i. Kinematic structures and programmingExercise i.2Scorbot ER VII robot (Figure i.2) is a versatile system for educational use. Due to its speedand repeatability, it is highly suited for both stand-alone operations and integrated use inautomated work cell applications such as robotic...

### Page 260

223Exercise i.3RT3300 (Seiko, inc) cylindrical robots have been geometrically designed to reach into andout of constrained workspaces. Notice that this robot is a common example of the SCARAgeometry. The fast rotary motion of cylindrical robots is combined with the precisionlinear motion of carte...

### Page 261

224Exercises i. Kinematic structures and programmingExercise i.4Which geometry do these robots have?Figure i.5: Which geometries?.Exercise i.5Develop and specify a program for the last 3 programming levels (robot level, object level,and task level) of a robot manipulator with 6 DoF. This robot ha...

### Page 262

225SolutionsSolution to exercise i.1To analyze how many degrees of freedom the robot should have to develop this task, agood strategy is to imagine that the initial position of the robot’s end-effector is set onemeter above the table and then try to perform a generic task:1. Go down to the tabl...

### Page 263

226Exercises i. Kinematic structures and programmingFigure i.7: Scorbot’s DoFs.Figure i.8: Scobot’s kinematic chain.

### Page 264

227Solution to exercise i.3We will have to proceed the same way we did in the previous exercise. First we need toidentify which movements the robot has by looking at the picture of the robot and thedimension diagram. Upon a simple inspection of the photo of the robot, we may ﬁnd thesearch for t...

### Page 265

228Exercises i. Kinematic structures and programmingFigure i.10: RT3300’s kinematic chain.Figure i.11: Anthropomorphic Robot, sample 1.

### Page 266

229structure. We also have another degree of freedom on the wrist: a roll movement.Therefore, this is a SCARA robot with 4 DoFs.Figure i.12: SCARA Robot.c) This image, once again, represents an anthropomorphic robot, with 6 rotationalmovements. The ﬁrst 3 are the positioner and the last 3 const...

### Page 267

230Exercises i. Kinematic structures and programmingSolution to exercise i.5First of all, we have to deﬁne the points we want the robot to reach. These points aredepicted in the following ﬁgure.Figure i.14: Programming example points.Then, we have to remember that there are four robot program...

### Page 268

231ROBOT LEVEL:Go to point X0 with high velocityGo to point X1 with high velocityOpen the gripperGo to point XB0 with low velocityClose the gripperIf the block has not been picked up by the gripper, error and endIf the block has been picked up by the gripper, continueGo to point X1 with low veloc...

### Page 269

232Exercises i. Kinematic structures and programmingOBJECT LEVEL:Pick up block-BPut block-B at XB1Pick up block-APut block-A at XA1Pick up block-BPut block-B at XB2Align block-A with block-CAlign block-B with block-AEndTASK LEVEL:Stack a tower in order block-C, block-A, block-B without moving blo...

### Page 270

Exercises iiTransformations in space(homogeneous transformation)Exercise ii.1Obtain the rotation matrix after doing the following operations to go from the referencesystem {0} (ﬁxed) to the system {e} (mobile):1. Rotate an angle of 90oaround ˆz02. Rotate an angle of 45oaround ˆxe3. Rotate an ...

### Page 271

234Exercises ii. Transformations in space (homogeneous transformation)Exercise ii.4Obtain the rotation matrix after doing the following operations to go from the referencesystem {0} (ﬁxed) to the system {e} (mobile):1. Rotate an angle of 90oaround ˆx02. Move 5 units along ˆx03. Rotate an angl...

### Page 272

2352. It rotates an angle of 45oaround ˆx03. It movers 1 unit along ˆyexeyezey0z02 unitsvideo cameraFigure ii.1: Robot with camera: initial conﬁguration.If we know that the range of vision of the camera is 60 degrees, is the end effectorwithin or without this range after doin...

### Page 273

236Exercises ii. Transformations in space (homogeneous transformation)Exercise ii.8Obtain the matrix that represents the rotation of an angle of 45oaround an axis set bythe vector u = [1 1 2]T. Obtain equivalent roll, pitch and yaw angles around the main axisof the reference system (ﬁxed) that ...

### Page 274

237SolutionsSolution to exercise ii.1The ﬁrst thing we have to do to solve this exercise is to calculate the transformationmatrices following the instructions according to the theory:1. Rotate an angle of 90oaround ˆz0T1 = Rot (ˆz0, 90o) =cos 90o− sin 90o00sin 90ocos 90o00001000...

### Page 275

238Exercises ii. Transformations in space (homogeneous transformation)(a) Rotate an angle of 90oaround ˆz0T1 = Rot (ˆz0, 90o) =cos 90o− sin 90o00sin 90ocos 90o0000100001(b) Rotate an angle of 30oaround ˆz0T2 = Rot (ˆz0, 30o) =cos 30o− sin 30o00sin 30oco...

### Page 276

239T2 = Rot (ˆy0, 45o) =cos 45o0sin 45o00100− sin 45o0cos 45o00001(c) Rotate an angle of 30oaround ˆzeT3 = Rot (ˆze, 30o) =cos 30o− sin 30o00sin 30ocos 30o0000100001After doing this, we will have to multiply the three matrices to obtain thetr...

### Page 277

240Exercises ii. Transformations in space (homogeneous transformation)After doing this, we will have to multiply the three matrices to obtain thetransformation matrix. We put the matrix of the ﬁrst movement in the middle ofthe equation, and then let’s see what we have. The next instruction is...

### Page 278

241T4 = Rot (ˆx0, 90o) =10000cos 90o− sin 90o00sin 90ocos 90o000017. Move 2 units along ˆzeT5 = T rasl (ˆze, 2) =1000010000120001The transformation matrix is:0Te = T4 · T2 · T1 · T3 · T5 =0−1 03100000120001Solution...

### Page 279

242Exercises ii. Transformations in space (homogeneous transformation)3. Move 1 unit along ˆyeT4 = T rasl (ˆye, 1) =1000010100100001The transformation matrix is:0Te = T3 · T2 · T1 · T4 =100000.7071−0.7071 1.414200.70710.70712.82840001To calcu...

### Page 280

243Solution to exercise ii.7To obtain B TC we will proceed applying the properties of homogeneous transformationmatrices:B TC = B TA · ATU · U TCNotice that homogeneous transformation matrices are not orthonormal, they cannotbe inverted by transposing it. Then we invert this matrix by using the...

### Page 281

244Exercises ii. Transformations in space (homogeneous transformation)ˆu =1√61√62√6TNow, we can apply the equations:A = 1 − cos ψ = 1 − cos 45o = 0.2929and B = sin ψ = sin 45o = 0.7071aRb =0.7559−0.52850.386300.62620.7559−0.191 0−0.191 −0.38630.902400001...

### Page 282

Exercises iiiForward KinematicsExercise iii.1In the robotized environment shown in ﬁgure iii.1, the location of the gripper W TT is notknown precisely. By usiing pressure sensors and using force control, the robot tries toinsert the piece 1 into the hole 2. Finally the robot introduces the tool...

### Page 283

246Exercises iii. Forward KinematicsExercise iii.2For the 2-element manipulator shown in ﬁgure iii.2 the transformation matrices 0T1 and1T2 have been calculated.Figure iii.2: 2-DoF manipulator.Assuming the reference systems shown in ﬁgure iii.2 3, the product of thesetransformations is:...

### Page 284

247Figure iii.3: 3-DoF manipulator with multiple D-H solutions.DH par.link i − 1 →link iai−1αi−1diθi0 → 100L1θ11 → 20π2d202 → 300L2θ3Table iii.1: D-H table of an unknown robot.Exercise iii.5Figure iii.4 represents a PUMA robot. If this robot has all its joint angles equal to ze...

### Page 285

248Exercises iii. Forward KinematicsFigure iii.4: PUMA manipulator.Figure iii.5: 3R non-planar robot.Figure iii.6: Planar robot RPR.

### Page 286

249matrices 0T1, 1T2, and 2T3 that deﬁne the forward kinematics of the manipulator.Figure iii.7: RRP manipulator.Exercise iii.9Draw the reference systems for the 3 joints of the RRR manipulator shown in ﬁgureiii.8. Obtain the geometric characteristic parameters for this robot and the threetra...

### Page 287

250Exercises iii. Forward KinematicsExercise iii.10Solve the forward kinematic problem of the SCARA manipulator shown in ﬁgure iii.9:Figure iii.9: SCARA manipulator.Exercise iii.11Solve the forward kinematic problem of a cilindrical robot with 4DoF in ﬁgure iii.10.Figure iii.10: Cylindrical r...

### Page 288

251Figure iii.11: MALIBA manipulator.Exercise iii.13Solve the forward kinematics of the SCORBOT robot with 5 DoF shown in ﬁgure iii.12using the Denavit and Hartenberg method. Obtain its characteristic parameters and thetransformation matrices i−1Ti, including the one related to the end effect...

### Page 289

252Exercises iii. Forward KinematicsFigure iii.12: SCORBOT robot.

### Page 290

253Figure iii.13: RT3300 robot.

### Page 291

254Exercises iii. Forward KinematicsSolutionsSolution to exercise iii.1There are two ways to go from {B} to {G}:• 1stway: B TW · W TT• 2ndway: B TS · S TG · GTTequating between both expressions, it yields:B TW · W TT = B TS · S TG · GTTWhen {G} and {T } are coincident, we can say that G...

### Page 292

255DH par.link i − 1 →link iai−1αi−1diθi2 → e00L20You can get the complete solution with Matlabusing the following coding:syms c1 s1 c2 s2 l1 l2T02=[c1*c2 -c1*s2 s1 l1*c1;...s1*c2 -s1*s2 -c1 l1*s1;...s2 c2 0 0;...0 0 0 1]T2e= [l2; 0; 0; 1]T=T02*T2eSolution to exercise iii.3After setti...

### Page 293

256Exercises iii. Forward KinematicsDH par.link i − 1 →link iai−1αi−1diθi1 → 2090o−L190o2 → 3L2000Figure iii.16: 3-DoF manipulator 3rdand 4thsolutions.Third conﬁguration:DH par.link i − 1 →link iai−1αi−1diθi1 → 2090oL190o2 → 3L2000Fourth conﬁguration:DH par.link ...

### Page 294

257L1L23ˆz3ˆxd2Pe0ˆz0ˆx1ˆx1ˆz2ˆz2ˆxθ1θ3Figure iii.17: Solution to an unknown robot.Solution to exercise iii.5If we develop the PUMA robot of the ﬁgure and do the Denavit and Hartenberg table weobtain ﬁgure iii.18.Figure iii.18: PUMA DoFs and D-H coordinate systems.Denavit-Hartenberg...

### Page 295

258Exercises iii. Forward KinematicsDH par.link i − 1 →link iai−1αi−1diθi0 → 10−90o090o1 → 2a20d202 → 3a390o090o3 → 40−90od404 → 5090o005 → e00d60So, the distance between the reference systems {0} and {6} is:px = a2 + a3py = d3pz = a1 − d4Solution to exercise iii.6To s...

### Page 296

259DH par.link i − 1 →link iai−1αi−1diθi0 → 1000θ11 → 2L190o0θ22 → 3L200θ33 → eL3000You can get the complete solution with Matlabusing the following coding:syms theta_1 theta_2 theta_3 L_1 L_2symsthetadot_1thetadot_2thetadot_3T01=[cos(theta_1) -sin(theta_1) 0 0;...sin(theta_1...

### Page 297

260Exercises iii. Forward KinematicsL11ˆx1ˆz0ˆz0ˆx2ˆz2ˆx3ˆz3ˆxθ3Figure iii.20: D-H coordinate systems for a planar robot RPR.DH par.link i − 1 →link iai−1αi−1diθi0 → 1000θ11 → 2L190od202 → 30−90o0θ3You can get the complete solution with Matlabusing the following codin...

### Page 298

261T3e=[1 0 0 L_3;...0 1 0 0;...0 0 1 0;...0 0 0 1]T0e=simple(T01*T12*T23*T3e)Solution to exercise iii.8To solve this exercise we ﬁrst have to draw the robot, after that we will have to set thereference systems (ﬁgure iii.21), do the Denavit and Hartenberg table and then obtainthe transformat...

### Page 299

262Exercises iii. Forward Kinematicssyms theta_1 theta_2 d_3 L_1 L_2symsthetadot_1thetadot_2ddot_3T01=[cos(theta_1) -sin(theta_1) 0 0;...sin(theta_1) cos(theta_1) 0 0;...0 0 1 L_1;...0 0 0 1]T12=[cos(theta_2) -sin(theta_2) 0 0;...0 0 -1 0;...sin(theta_2) cos(theta_2) 0 0;...0 0 0 1]T23=[1 0 0 L_2...

### Page 300

263DH par.link i − 1 →link iai−1αi−1diθi0 → 100L1θ11 → 2090o0θ22 → 3L200θ3You can get the complete solution with Matlabusing the following coding:syms theta_1 theta_2 theta_3 L_1 L_2symsthetadot_1thetadot_2thetadot_3T01=[cos(theta_1) -sin(theta_1) 0 0;...sin(theta_1) cos(theta_...

### Page 301

264Exercises iii. Forward KinematicsL00ˆz0ˆx1ˆz1ˆx2ˆz2ˆx3ˆz3ˆx4ˆz4ˆxezˆexˆL4L1L2d3Figure iii.23: D-H coordinate systems for a SCARA manipulator.You can get the complete solution with Matlabusing the following coding:syms theta_1 theta_2 d_3 theta_4syms L_0 L_1 L_2 L_3 L_4syms thetadot...

### Page 302

2650 0 0 1]T4e=[1 0 0 0;...0 1 0 0;...0 0 1 L_4;...0 0 0 1]T04=simple(T01*T12*T23*T34*T4e)Solution to exercise iii.11To solve this exercise we ﬁrst have to draw the robot, after that we will have to set thereference systems (ﬁgure iii.24), do the Denavit and Hartenberg table and then obtainth...

### Page 303

266Exercises iii. Forward Kinematicssymsthetadot_1 thetadot_4syms ddot_2ddot_3T01=[cos(theta_1) -sin(theta_1) 0 0;...sin(theta_1) cos(theta_1) 0 0;...0 0 1 0;...0 0 0 1]T12=[1 0 0 0;...0 0 -1 0;...0 1 0 d_2;...0 0 0 1]T23=[1 0 0 0;...0 0 -1 -d_3;...0 1 0 0;...0 0 0 1]T34=[cos(theta_4) -sin(theta_...

### Page 304

2671ˆz0ˆz0ˆx1ˆx2ˆz2ˆx3ˆx3ˆz4ˆz5ˆz6ˆz7ˆz4ˆx5ˆx6ˆx7ˆx0L1L2L3L4L5L6LFigure iii.25: D-H coordinate systems for MALIBA manipulator.syms theta_1 theta_2 theta_3 theta_4 theta_5 theta_6syms L_0 L_1 L_2 L_3 L_4 L_5syms thetadot_1 thetadot_2thetadot_3syms thetadot_4 thetadot_5thetadot_6T01...

### Page 305

268Exercises iii. Forward Kinematics0 0 0 1]T56=[cos(theta_6) -sin(theta_6) 0 0;...0 0 -1 -L_5;...sin(theta_6) cos(theta_6) 0 0;...0 0 0 1]Solution to exercise iii.13To solve this exercise we ﬁrst have to draw the robot, after that we will have to setthe reference systems (ﬁgure iii.26), do t...

### Page 306

269Where:L0 + L1 = 388mm.L2 = 280mm.L3 = 43mm.L4 = 230mm.L5 = 111mm.Solution to exercise iii.14To solve this exercise we ﬁrst have to draw the robot, after that we will have to setthe reference systems (ﬁgure iii.27), do the Denavit and Hartenberg table (taking intoaccount the dimension lines...

### Page 307

270Exercises iii. Forward KinematicsDenavit-Hartenberg table:DH par.link i − 1 →link iai−1αi−1diθi0 → 100L0θ11 → 200d202 → 3090od303 → 4090oL0θ44 → e00L50

### Page 308

Exercises ivInverse KinematicsExercise iv.1In a 3R planar robot, given the desired position and orientation for the hand, we knowthat there are two possible groups of values that the joint angles can take. Deduce howmany solutions there will be if we add another joint to the manipulator, in such ...

### Page 309

272Exercises iv. Inverse KinematicsExercise iv.3Given the description of the reference system {i} of the ithjoint of a manipulator inrelation to the {i − 1}system (matrix i−1Ti), obtain the expressions for the four Denavitand Hartenberg parameters: ai−1, αi−1, di and θi as a function of...

### Page 310

273Figure iv.3: Planar arm with two joints.Figure iv.4: SCARA robot.

### Page 311

274Exercises iv. Inverse Kinematics0Re =ˆxexˆyexˆzexˆxeyˆyeyˆzeyˆxezˆyezˆzezExercise iv.8Solve the inverse kinematics for a spherical robot of three degrees of freedom.

### Page 312

275SolutionsSolution to exercise iv.1If we add another joint, we will get a planar robot with redundant degrees of freedom.That is way there will be inﬁnite solutions to this exercise.Solution to exercise iv.2In this exercise we are asked to do the inverse kinematics. The ﬁrst step is to solv...

### Page 313

276Exercises iv. Inverse Kinematics0 0 0 1]T12=[1 0 0 0;...0 1 0 0;...0 0 1 L_1;...0 0 0 1]T2e=[1 0 0 0;...0 0 1 d_2;...0 -1 0 0;...0 0 0 1]T04=simple(T01*T12*T2e)And now we can obtain the inverse kinematics parameters:L0 + L1 = Pezd2 =P 2ex + P 2eyθ1 = arctan−PexPey→ cos θ1 =PeyP 2ex +P 2e...

### Page 314

277=cos θi− sin θi0ai−1cos αi−1 · sin θi cos αi−1 · cos θi − sin αi−1sin αi−1 · disin αi−1 · sin θisin αi−1 · cos θicos αi−1cos αi−1 · di0001==r11 r12 r13 r14r21 r22 r23 r24r31 r32 r33 r340001θi = arctansin...

### Page 315

278Exercises iv. Inverse KinematicsDH par.link i − 1 →link iai−1αi−1diθi0 → 1000θ11 → 2L190od202 → 30−90o0θ3And now we can obtain the inverse kinematics parameters (ﬁgure iv.7):θ1 = α + βθ1 = arctanPeyPex± arccosL1P 2ex + P 2eyd2 =P 2ex + P 2ey2− L21θ3 = ...

### Page 316

279Solution to exercise iv.5The workspace reachable by the robot will look like this:Figure iv.8: Workspace of a planar arm with two joints.Solution to exercise iv.6To calculate the inverse kinematics of this robot, we must ﬁrst calculate the forwardkinematics problem to obtain the 0Te matrix a...

### Page 317

280Exercises iv. Inverse KinematicsDH par.link i − 1 →link iai−1αi−1diθi0 → 100L0θ11 → 2L100θ22 → 3L20−d30You can get the complete forward kinematics solution with Matlabusing thefollowing coding:syms theta_1 theta_2 d_3 L_0 L_1 L_2symsthetadot_1thetadot_2ddot_3T01=[cos(theta_...

### Page 318

281L22 = L21 + R2 − 2L1R cos β → cos β =L21 + R2 − L222L1R→ β = arccosL21 + R2 − L222L1RR2 = L21 + L22 − 2L1L2 cos γ → cos γ =L21 + L22 − R22L1L2θ2 = 2π − γγ = π − γθ2 = 2π − π + γ = π ± arccosL21 + L22 − R22L1L2And now we can obtain the values of the unkn...

### Page 319

282Exercises iv. Inverse KinematicsSolution to exercise iv.7To calculate the inverse kinematics of this robot, we must ﬁrst calculate the forwardkinematics problem to obtain the 0Te matrix and, after that, obtain the parametersneeded to do the inverse kinematics.1ˆz0ˆz0ˆx1ˆx2ˆz2ˆx3ˆx3ˆz...

### Page 320

2830 0 0 1]T12=[cos(theta_2) -sin(theta_2) 0 0;...0 0 -1 0;...sin(theta_2) cos(theta_2) 0 0;...0 0 0 1]T23=[cos(theta_3) -sin(theta_3) 0 L_2;...sin(theta_3) cos(theta_3) 0 0;...0 0 1 0;...0 0 0 1]T3e=[1 0 0 L_3;...0 1 0 0;...0 0 0 1]T0e=simple(T01*T12*T23*T3e)And now we can obtain the inverse kin...

### Page 321

284Exercises iv. Inverse Kinematics3ˆz2ˆz2ˆx2ˆy1ˆz1ˆx3ˆxL13L3dFigure iv.13: D-H coordenate systems of a spherical robot.1LPz −22yxPPr+=2L2ˆx2ˆz1ˆx2ˆy1ˆy3d2133212212221sinsinarctan22arctanLLPddLLPPPLPPPLPzzyxzyxz−−=→+−=+−+=+=+−=ααπαπθα2ˆx2ˆz1ˆx2ˆy2L3d22yxPPr+=1...

### Page 322

2850ˆy2133212212221sinsinarctan2323arctanLLPddLLPPPLPPPLPzzyxzyxz−−=→+−=+−+=+=+−=ααπαπθα2132312212221sinsinarctan22arctanLLPdLdLPPPLPPPLPzzyxzyxz+−=→−−=+−−=−=+−=ααπαπθα1ˆy1ˆx1ˆz0ˆx3ˆz′eyPexP2L2ˆx2ˆz1ˆx2ˆy1ˆy1LPz −22yxPPr+=2L2ˆx2ˆz1ˆx2ˆy...

### Page 323

286Exercises iv. Inverse Kinematics

### Page 324

Exercises vJacobianExercise v.1Knowing the following expressions that solve the forward kinematics of a robot, calculatethe corresponding jacobian matrix.px = −l3 cos θ1 sin θ3 + (l2 + d2) sin θ1py = −l3 sin θ1 sin θ3 − (l2 + d2) cos θ1pz = l3 cos θ3 + l1NOTE: Only positions will be ...

### Page 325

288Exercises v. JacobianFigure v.1: RR planar manipulator.Exercise v.4Let’s consider again the 2R planar robot used in the previous exercise (ﬁgure v.2). Wewant to move the end of the second arm over the ˆxaxis at a constant velocity v, as isshown in the ﬁgure. Obtain the velocities of joi...

### Page 326

289Figure v.2: RR planar manipulator with an end-point frame.τ2 = 0.5N − mand τ3 = 0.1N − m, what are the maximum forces and torques that the endeffector can exert?Exercise v.8Calculate the jacobian matrix of a cylindrical robot of 3 DoF using the force propagationmethod. Calculate the velo...

### Page 327

290Exercises v. JacobianFigure v.3: RRR planar manipulator.

### Page 328

291SolutionsSolution to exercise v.1The Jacobian matrix is composed of velocity expressions. To obtain a velocity expressionwe have to derive the position equation,˙px = [L3 sin θ1 sin θ3 + (L2 + d2) cos θ1] · ˙θ1 + sin θ1 · ˙d2 + [−L3 · cos θ1 cos θ3] · ˙θ3˙py = [−l3 sin θ3...

### Page 329

292Exercises v. JacobianT12=[cos(theta_2) -sin(theta_2) 0 L_1;...sin(theta_2) cos(theta_2) 0 0;...0 0 1 0;...0 0 0 1]T23=[1 0 0 L_2; 0 1 0 0; 0 0 1 0;0 0 0 1]T0e=simple(T01*T12*T23)v_0=[0; 0; 0]omega_0=[0; 0; 0]R10=transpose(T01(1:3,1:3))P_1=T01(1:3,4)omega11=R10*omega_0+[0; 0; thetadot_1]v11=R10...

### Page 330

293˙θ1˙θ2=vx cos θ12sin θ1L1+sin θ12L2+cos θ12L2sin θ1L1 sin θ12+cos θ12 cos θ2L1+cos θ12L2sin θ1L1+sin θ12L2+cos θ12L2· vxSolution to exercise v.5τ1τ2=− sin θ1L1 − sin θ12L2 cos θ1L1 + cos θ12L2 0− sin θ12L2cos θ12L20·fx00τ1 = fx · (− sin θ1L1 −...

### Page 331

294Exercises v. JacobianP_1=T01(1:3,4)omega11=R10*omega_0+[0; 0; thetadot_1]v11=R10*(v_0+cross(omega_0,P_1))R21=transpose(T12(1:3,1:3))P_2=T12(1:3,4)omega22=R21*omega11+[0; 0; thetadot_2]v22=R21*(v11+cross(omega11,P_2))R32=transpose(T23(1:3,1:3))P_3=T23(1:3,4)omega33=simple(R32*omega22+[0; 0; the...

### Page 332

295v_0=[0; 0; 0]omega_0=[0; 0; 0]R10=transpose(T01(1:3,1:3))P_1=T01(1:3,4)omega11=R10*omega_0+[0; 0; thetadot_1]v11=R10*(v_0+cross(omega_0,P_1))R21=transpose(T12(1:3,1:3))P_2=T12(1:3,4)omega22=R21*omega11+[0; 0; thetadot_2]v22=R21*(v11+cross(omega11,P_2))R32=transpose(T23(1:3,1:3))P_3=T23(1:3,4)o...

### Page 333

296Exercises v. JacobianR23=(T23(1:3,1:3))P_3=T23(1:3,4)f_2=R23*f_3n_2=simple(R23*(n_3)+cross(P_3,f_2))R12=(T12(1:3,1:3))P_2=T12(1:3,4)f_1=R12*f_2n_1=simple(R12*(n_2)+cross(P_2,f_1))tau1=n_1(3)tau2=n_2(3)tau3=n_3(3)Once we have the Jacobian Matrix, we can ﬁnish the exercise:vx = d3 cos θ1 · ...

### Page 334

Part VAppendix297

### Page 335

### Page 336

Appendix ARobot HistoryA.1IntroductionThe Robot concept is very ancient. It may surprise us. But mankind has always beenfascinated by machines and devices capable of moving themselves, constructed toimitate the motions of human beings and animals. The ancient Greek culture namedthem as automatos....

### Page 337

300Appendix A. Robot HistoryFigure A.1: The return of Hephaestus to Olympus.Book XVIII, Fabrication of weaponsAnother reference, in Greek mythology, is the Giant of Talus (ﬁgure A.2 2). This giantautomaton was given to Europa, Queen of Crete, by Zeus. In this case, we can read itsdescription in...

### Page 338

Appendix Section A.3. Middle ages301Figure A.2: Death of Talus.Figure A.3: Fryer Bacon’s speaking head.A.3Middle agesThere are few documented references in the XIII century, such as the iron man of St.Albert the Great (1204-1282) or the fryer Roger Bacon’s (1214-1294) brozen head thatwas able...

### Page 339

302Appendix A. Robot HistoryFigure A.4: Cock of the Strasbourg Cathedral.Figure A.5: Vauncanson’s duck: a diagram of its interior and a replica of it at Le Muse ´ede Automates de Grenoble.one and presented it to Francois I of France during a banquet: it crossed the hall, haltedbefore the king,...

### Page 340

Appendix Section A.4. XVIII-XIX centuries303Figure A.6: Von Kempelen’s chess player.Figure A.7: Droz’s dolls at the Art and History Museum in Neuchˆatel, Switzerland.Figure A.8: Maillert’s automaton and two of its drawings

### Page 341

304Appendix A. Robot HistoryA.5XX Century: Robot TimelineThis section reviews the most important events in XXth century related to robotics 5.1921 The term “robot” is ﬁrst used in R.U.R.(Rossum’s Universal Robots), a play byCzech writer Karel Capek.1926 Fritz Lang’s movie Metropolisfeat...

### Page 342

Appendix Section A.5. XX Century: Robot Timeline305and make UnimationInc . the world’s robot pioneer.1956 Robby the robot is featured in Forbidden Planet—and later appears in morethan a dozen movies and TV shows.1959 A prototype Unimate arm from Unimation is installed in a General Motors Corp...

### Page 343

306Appendix A. Robot History1976 NASA provides Mars landers with robot arms for its Viking I and II missions.1977 Asea Brown Boveri Ltd. introduces microcomputer-controlled robots.1977 Unimation purchases Vicarm. Scheinman later starts Automatix Inc.1977 Star Warsstars an android, C3PO, and a mob...

### Page 344

Appendix Section A.5. XX Century: Robot Timeline3072000 At RoboCup 2000, three humanoid robots meet for the ﬁrst time: JohnnyWalker from the University of Western Australia, the Mk-II from Japan’s Aoyama GakuinUniversity, and Pino from Kitano Symbiotic Systems Project.

### Page 345

308Appendix A. Robot History

### Page 346

Appendix BMobile Robot SamplesB.1MicrobotsFigure B.1: Samples of Micro-robots: Sumo Fighter (MAZO),line-tracking (PIONERO),Microrobotics Club of TECNUN.B.2Legged RobotsB.2.1AIBOFigure B.2: AIBO (SONY): http://www.sony.com.au/aiboB.2.2SDRThe AIBO’s speciﬁcations are summarized in the next tabl...

### Page 347

310Appendix B. Mobile Robot SamplesFigure B.3: SDR 3x (SONY): http://au.playstation.com/technology/sonyrobot.jhtmlFigure B.4: SDR 4x (SONY): http://au.playstation.com/technology/sonyrobot.jhtmlCPU64 bit RISC processor (x2)Main Recording Device64MB DRAM (x2)Operating SystemAperios (Sony's...

### Page 348

Appendix Section B.2. Legged Robots311Figure B.5: ASIMO (HONDA): http://world.honda.com/ASIMOFigure B.6: Speciﬁcations of ASIMO.

### Page 349

312Appendix B. Mobile Robot SamplesFigure B.7: Evolution of ASIMO

### Page 350

Appendix CRobotic WristsExtracted from a work of Javier Mart´ın 1.1J. Martin, J. Savall, ”Mechanisms for Haptic Torque Feedback”, World Haptics Conference. March 21,2005, Pisa, Italy.313

### Page 351

314Appendix C. Robotic WristsDoFsWorkspacedexteritySingularconﬁgurationsComplexityandactuatorar-rangementSamplesPicture3Wideandhomogen.WhentherollsDoFsarealignedSmallcomplexity.Theﬁrstac-tuatorhastomovetheothers.It’sthemostcommon.Roll-Pitch-Roll.PHANToM,PumaRollRollPitch3Wideandhomogen.,but...

### Page 352

Appendix DGlossaryBased on information extracted from University of North Texas 1.-A-Accuracy (precisi ´on)-The precision with which a computed point can be attained, ormeasured. The more precise the measurements of joint angles will enable a ﬁner degreeof accuracy with a robot.Active Complian...

### Page 353

316Appendix D. GlossaryArticulated Manipulator (manipulador articulado)- A manipulator with an armthat is broken into sections (links) by one or more joints. Each of the joints represents adegree of freedom in the manipulator system and allows translation and rotary motion.Articulation (articulac...

### Page 354

317Cartesian Manipulator (manipulador cartesiano)- An arm with prismatic jointsthat allows movement along one or more of the three- axes in the x, y, z coordinatesystem.Cartesian-Coordinate Robot (robot cartesiano) - A robot whose manipulator-armdegrees of freedom are deﬁned by Cartesian coordi...

### Page 355

318Appendix D. GlossaryControllability (controlabilidad)- The property of a system by which an input signalcan take the system from an initial state to a desired state along a predictable path withina predetermined period of time.Controller System (controlador)- The robot control mechanism. Usual...

### Page 356

319gripping device, paint gun, drill, arc welding device, etc. See Wrist, and Sensor.Error - The difference between the actual response of a robot to a command issued.Exoskeleton (exoesqueleto)- An articulated mechanism whose joints correspondto those of a human arm. When attached to the arm of a...

### Page 357

320Appendix D. GlossaryFrame (sistema coordenado)- A coordinate system used to determine a position andorientation of an object in space, as well as the robot’s position within its model.-G-Gantry (p ´ortico/puente gr ´ua)- An adjustable hoisting machine that slides along a ﬁxedplatform or ...

### Page 358

321Hydraulically Driven Robot (robot hidr´aulico)- Robots that use hydraulic servovalves that operate on petroleum-based hydraulic ﬂuid. The hydraulic system includesa hydraulic power supply as well. These robots can provide very high repeatability andaccuracy. This type of robot is mechanical...

### Page 359

322Appendix D. GlossaryInverse Kinematics (cinem´atica inversa)- procedures that determine where theend-effector needs to be placed to reach a particular point in space. The proceduresuse mathematical algorithms along with sensors to determine the desired location of thepoint in space, and the n...

### Page 360

323Laser - Acronym for light ampliﬁcation by stimulated emission of radiation. It is adevice that produces a coherent monochromatic beam of light which is extremely narrowand focused but still within the visible light spectrum. This is commonly used as anon-contact sensor for robots. Robotic ap...

### Page 361

324Appendix D. GlossaryMobile Robot (robot m ´ovil)- A robot mounted on a movable platform. The robot isthen able to move about its work environment by several different means such as wheels,legs, ﬂying, etc. The motions of the robot are controlled by the robot’s control system.See Industria...

### Page 362

325-0-Off-Line Programming System (sistema de programaci ´on off-line)- A programmingenvironment without the needed to use the robot.On-Line Programming (programaci ´on on-line)- A means of programming a robotusing the robot in order to record the trajectories that must be performed latter by t...

### Page 363

326Appendix D. Glossarythe sizing of the structural members, power transmission system, and actuators. Theload placed on the actuators depends on the conﬁguration of the robot, amount of timesupporting the load, and inertial and velocity related forces. This is also called the loadcapacity. See...

### Page 364

327Potentiometer (potenci ´ometro)- An encoding position sensing device for ma-nipulators that produces a voltage proportional to the shaft position to measurejoint displacement. Its uses are limited due to poor resolution, linearity, and noisesusceptibility.Power Cylinder (cilindro (hidr´aulic...

### Page 365

328Appendix D. GlossaryReliability (ﬁabilidad)- The percentage of time during which a robot can be expectedto be in normal operation (not out of service for repair or maintenance). Also called therobot’s uptime.Repeatability (repetibilidad)- The speciﬁcation of how accurately a manipulator ...

### Page 366

329Servo-controlled Robot (robot servo-controlado)- The control of a robot throughthe use of a closed-loop Servo-system, in which the position of the robot axis is measuredby feedback devices and is stored in the controller’s memory. See Closed-Loop System,and Servo-system.Servo-system (servo-s...

### Page 367

330Appendix D. Glossary-T-Tachometer (tac ´ometro)- A sensing device capable of sensing the speed at which ashaft is rotating. Generally used to determine revolutions per minute. May be used inconjunction with contouring systems as a supplemental control for governing feed-rates.See Sensor.Tacti...

### Page 368

331Tool (herramienta)- A term used loosely to deﬁne a working apparatus mounted tothe end of the robot arm, such’ as a hand, gripper, welding torch, screw driver, etc. SeeArm, Gripper, and End-Effector.Tool Frame (sistema coordinado solidario a la herramienta)- A coordinate systemattached to ...

### Page 369

332Appendix D. Glossarycommands to the robot’s controller, the human voice is broken down into speechpatterns and interpreted by the robot as commands.-W-Work Envelope (envolvente del espacio de trabajo)– The edge of workspace. SeeWorkspace.Work-piece (pieza de trabajo)- Any part which is bei...

### Page 370

Index(MRAC), 216Jacobian Matrix, 169Absolute encoder, 98absolute error, 19Accuracy, 19, 88active on-line programming, 38actuator, 315–317, 319, 321, 327admittance control, 196AGVs, 8android, 306Approximation-point, 47arc welding, 319Arm, 16automatic guided vehicles, 8Automaton, 299automaton, 30...

### Page 371

334INDEXhomogeneous transformation matrix, 120homogeneous translation matrix, 122Hybrid Manipulators, 16Hybrid Stepper Motor, 80Hysteresis, 88I, Robot, 4, 304Impedance control, 196Incremental Encoder, 96Index channel, 97Industrial mobile robots, 8Industrial Robot, 23, 24Industrial robot, 53indust...

### Page 372

INDEX335R.U.R, 4R.U.R., 304Range, 88Reachable Workspace, 18redundant robots, 54Repeatability, 19Repeatability error, 19Reproducibility, 19Resolution, 19, 88Resolution error, 19Response time, 90Robot, 3, 6robot, 304, 315–332Robot subsystems, 6Robota, 4robotic, 323–325roll, 67Roll-Pitch-Roll mo...

### Page 373

336INDEX

### Page 374

Bibliography[1] B. Appelhof.Design of haptic interface technology.Master’s thesis, Dept ofMechanical Engineering, University of Twente, 2001.[2] A. Barrientos, L. F. Pe ˜n´ın, C. Balaguer, and R. Aracil.FUNDAMENTOS DEROB ´OTICA. Mc Graw Hil, 1997.[3] J.J. Craig. INTRODUCTION TO ROBOTICS, ME...