100% found this document useful (1 vote)
2K views292 pages

Richard P. Paul Robot Manipulators Mathematics, Programming, and Control Artificial Intelligence PDF

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
100% found this document useful (1 vote)
2K views292 pages

Richard P. Paul Robot Manipulators Mathematics, Programming, and Control Artificial Intelligence PDF

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 292
ROBOT MANIPULATORS: MATHEMATICS, PROGRAMMING, AND CONTROL va, England ‘The MIT Press Series in Artificial Intelligence ae Artificial Intelligence: An MIT Perspective, Volume I: Expert Problem Solving, Natural Language Understanding, Intelligent Computer Coaches, Representation and Learning edited by Pattick Henry Winston and Richard Henry Brown, 1979 Artificial Intelligence: An MIT Perspective, Volume Il: Understanding Vision Manipulation, Computer Design, Symbol Manipulation edited by Patrick Henry Winston and Richard Henry Brown, 1979 NETL: A System for Representing and Using Real-World Knowledge by Scott Fahlman, 1979 The Interpretation of Visual Motion by Shimon Ullman, 1979 A Theory of Syntactic Recognition for Natural Language by Mitchell P. Marcus, 1980 Turtle Geometry: The Computer as a Medium for Exploring Mathematics by Harold Abelson and Andrea diSessa, 1981 From Images to Surfaces: A Computational Study of the Human Early Visual ‘System by William Eric Leifur Grimson, 1981 Robot Manipulators: Mathematics, Programming and Control by Richard P, Paul, 1981 ROBOT. MANIPULATORS: MATHEMATICS, PROGRAMMING, AND CONTROL The Computer Control of Robot Manipulators Richard P. Paul By a “THE MIT Press ‘Cambridge, Massachusetts and London, England TSIM. P38 PUBLISHER'S NOTE ‘This format is intended to reduce the cost of publishing certain works in book form and to shorten the gap between editorial preparation and final publication. ‘The time and expense of detailed editing and composition in’ print have been avoided by photographing the text of this book directly from the author's com- puter printout, Sixth printing, 1984 Copyright © 1981 by ‘The Massachusetts Institute of Technology All rights reserved, No part of this book may be reproduced in any form, or by any means, electronic or mechanical, including photocopying, recording, or by any information storage and reirieval system, without permission in writing from the publisher. Printed in the United States of America, Library of Congress Cataloging in Publication Data Paul, Richard P. \ Robot manipulators. (fhe MIT Press series in artificial intelligence) Bibliography: p. Includes index. 1. Robots, Industrial. 2. Manipulators (Mechanism) I. Title. IL. Series. TS1i91.8.P38 629.8'92 81-13689 IsaN 0-262-16082-X AACR 2AST ES 781918 p39 eset Robot; “eT ay { | XK Z x CONTENTS Preface ix Inuodueion 1 Chapter] Homogeneous Transformations. 9 Chapter? Kinematic Equations 41 Chapter3 Solving Kinematic Equations 65 Chapter 4 Differential Relationships 85, Chapter $ Motion Trajectories a9 Chapter 6 Dynamics 157 Chapter 7 H Control 197 { Chapter 8 é Static Forces 217 i Chapter 9 Compliance 231 ‘Chapter 10 | Programming 245 Index 273 SERIES FOREWORD Artificial intelligence is the study of intelligence using the ideas and methods of computation, Unfortunately, a definition of intelligence seéms impossible at the ‘moment because intelligence appears to be an amalgam of so many information- processing and information-representation abilities, Of course psychology, philosophy, linguistics, and related disciplines offer various perspectives and methodologies for studying intelligence, For the most Part, however, the theories proposed in these ficlds are too incomplete and too vaguely stated to be realized in computational terms. Something more is needed, even though valuable ideas, relationships, and constraints can be gleaned from traditional studies of what are, after all, impressive existence proofs that intel- ligence is in fact possible, Antificial intelligence offers a new perspective and a new methodology. Its central goal is to make computers intelligent, both to make them more useful ‘and to understand the principles that make intelligence possible, That intelligent computers will be extremely useful is obvious. The more profound point is that artificial intelligence aims to understand intelligence using the ideas and methods ‘of computation, thus offering 2 radically new and different basis for theory formax tion. Most of the people doing artifical intelligence believe that these theories will apply to any intelligent information processor, whether biological or solid state ‘There are side effects that deserve attention, too. Any program that will sue- cessfully model even a small part of intelligence will be inherently massive and complex, Consequently, artificial intctligence continually confronts the limits of ‘computer science technology. The problems encountered have been hard enough and interesting enough to seduce artificial intelligence people into working on them with enthusiasm, It is natural, then, that there has been a steady flow of ideas from artificial intelligence to computer science, and the flow shows no sign, of abating. ‘The purpose of this MIT Press Series in Artfictal Intelligence is to provide People in many areas, both professionals and students, with timely, detailed infor- ‘mation about what is happening on the frontiers in research centers all over the world, Patrick Henry Winston Mike Brady Pe, Alin PREFACE ‘This book on robot manipulators brings together theories from a number of fields: computer graphics, kinematics, dynamics, control, and programming, The book is written in the style of a text and has been used to teach robotics to ‘graduate and undergraduate students in engineering and computer science, The field of robotics is new and interdisciplinary, with an almost constant flow of theories into robotics from many areas. This book presents only one theory in each area, These theories are selected because they can be brought together to provide a working and consistent approach to the overall problem of robot manipulator control, Most of the material in the book is atthe level of trigonome- ity but is conceptually new and different. ‘The chapter on dynamics assumes that the studeat is prepared to accept the Lagrangian formulation of dynamics. The chapter on control makes use of the Laplace transformation, and the final chapter ‘on programming assumes a knowledge of PASCAL. ‘This work represents ten years experience in robotic presented has been experimentally tested and verified and is in use today running robot manipulators. Some material clarifies past systems or simplifies and extends earlier theories. All the theory is developed with a digital computer implementa- tion in mind. Computing speed, roundoff, and memory requirements have guided the selection of many of the theoretical approaches, With the advent of VLSI, however, more computationally intensive approaches may be appropriate. ‘The book is based on course notes developed at Purdue University over the rast four years and has been completed using the facilities of the Massachusetts Institute of Technology Artificial Intelligence Laboratory. The camera-ready copy .was produced using Knuth's TEX system, Much of the theory presented in the book was developed at Stanford University Artificial Intelligence Laboratory, and the author wishes to thank John McCarthy and Jerome Feldman, who provided him with the possibilty of performing the research. The author also wishes to thank Antal Bejczy, upon whose work the dynamics chapter is based, and Bruce Shimano, who has been part of the development of much of the theory. The support of Mike Brady and Eric Grimson mado the final transition into print a pleasant experience. John Birk, Mike Brady, William Fisher, Tomas Lozano- Perez, Johnson Luh, William Perzley, and Bruce Shimano helped by reading parts of the manuscript and correcting many errors; the author is entirely respon- sible for any that remain, Met Paul assisted with revisions and editorial changes, most of the material ‘This material is based partially upon research supported by the National Science Foundation under Grant Numbers APR77-14533, APRTS-13074, and ‘APR74-01390. Any opinions, findings, and conclusions or recommendations ex- pressed in this publication are those of the author and do not necessarily reflect, the views of the National Science Foundation, ROBOT MANIPULATORS: MATHEMATICS, PROGRAMMING, AND CONTROL INTRODUCTION “This book is about industrial robot manipulators, their programming and their interaction with sensors. We will cover robot manipulator programming and con- trol in detail but will treat external sensors, such as vision, only in so far as they interact with the manipulator. In order to gain an overall understanding of the ‘topics to be addressed in later chapters, let us first look at the origins of industrial robots and the problems that arose as their capabilities were extended. ‘The present day industrial robot had its origins in both the teleoperator and the ‘numerically controlled machine tool, The teleoperator, or telecheric, is a device to allow an operator to perform a task at a distance, ‘The numerically controlled machine tool shapes metal automatically, based on digitally. encoded cutting data. ‘The teleoperator was developed during the second world war to handle radioactive materials [Goertz). An operator was separated from a radioactive task ‘by aconcrete wall with one or more viewing ports through which the task could be observed, The teleoperator was to substitute for the operator's hands; it con- sisted of a pair of tongs on the inside (the slave), and two handles on the outside (the master). Both tongs and handles were connected together by six degree of freedom mechanisms to provide for the arbitrary positioning and orienting of the master and slave, The mechanism was provided to control the slave in order to replicate the motion of the master. ‘In 1947, the first servoed electric-powered teleoperator was developed. The slave was servo-contrclled to follow the position of the master. No force infor- mation was available to the operator, and tasks requiring that parts be brought into contact were difficult to perform, even though the operator could view the task. Teleoperator tasks are well described by Goertz: “The general-purpose ‘manipulator may be used for moving objects, moving levers or knobs, assembling parts, and manipulating wrenches. In all these operations ‘the manipulator must come into physical contact the object before the desired force and moment can be made on it, A collision occurs when the manipulator makes this contact. ‘Generak-purpose manipulation consists essentially of a series of collisions with unwanted forces, the application of wanted forces, and the application of desired motions, The collision forces should be low, and any other unwanted forces should also be small.” (Goertz} In 1948, one year after the position-controlled teleoperator was introduced, a new teleoperator system was developed in which the force exerted by the tongs Introduetion 2 could be relayed to the operator by backdriving the master; the operator could once again feel what was going on. In 1949, faced with the need to procure advanced aircraft whose parts were designed to be machined rather than riveted, the Air Force sponsored research in the development of a numerically controtled milling machine {Rosenberg}. This research was to combine sophisticated servo system expertise with the newly developing digital computer techniques. The pattern to be cut was stored in digi- tal form on a punched tape and then a servo-controlled milling machine cut the metal. The MIT Radiation Laboratory demonstrated such a machine in 1953, In the 1960's, George Devol demonstrated what was to become the first Uni- ‘mate industrial robot (Engelberger], a device combining the articulated linkage of the teleoperator with the servoed axes of the numerically controffed milling machine. The industrial robot could be taught to perform any simple job by driving it by hand through the sequence of task positions, which were recorded in digital memory. Task execution consisted in replaying these positions by servoing the individual joint axes of the the robot. Task interaction was limited to opening and closing of the tongs or end effector, and to signaling external equipment or waiting for a synchronizing signal. ‘The industrial robot was ideal for pick and place jobs such as unloading a diecasting machine. ‘The part would appear in a precise position, defined with respect to the robot; it would be grasped, moved out of the die, and dropped on a conveyor, The success of the industrial robot, like the numerically controlled (NC) milling machine, relied on precise, repeatable digital servo loops. There was no interaction between the robot and its work. If the diecast machine were moved, the robot could in no way adapt to the new position, any more than an NC milling machine could successfully cut a part if the stock were arbitrarily relocated during cutting. If the diecasting machine were moved, the robot could, however, be retaught. The success of the industrial robot lay in its application to jobs in which task positions were absolutely defined, and in its reliability and positioning repeatability in lieu of adaptation. ‘Another development took place in MIT's Lincoln Laboratory in 1961 (Ernst) A teleoperator slave arm, equipped with touch sensors, was connected to a com- puter. In this case, touch feedback from the tongs, not absolute position, guided the robot in the performance of the task. Although the absolute position of the hand in space could be obtained, this approach was not used, since humans do not perform the trigonometric calculations necessary to obtain a hand position, Instead, tasks were defined as a sequence of touchdefined states to be attained. ‘The lack of any global idea of the position of objects limited this robot as much as the complete lack of task information limited the position-controlled industrial robot. In 1963 Roberts [Roberts63] demonstrated the feasibility of processing a digit zed halftone picture of a scene to obtain a mathematical description of the block- like objects which comprised the scene, expressing their location and orientation by homogeneous coordinate transformations [Robers65]. This work was impor- tant for two reasons: it demonstrated that objects could be identified and located in a digitized halftone image, and it introduced homogeneous transformations as a suitable data structure for the description of the relative position and orientation between objects. If the relative position and orientation between objects is repre- sented by homogeneous transformations, the operation of matrix multiplication of the transformations establishes the overall relationship between objects. In Chapter 1 we introduce homogeneous transformations, which we use throughout the book to describe both position and orientation between objects and between. objects and the manipulator. Touch feedback, because of its slow, groping nature, was dropped in favor of vision as an input mechanism, By 1967, a computer equipped with a television camera as an input mechanism could, in real time, identify objects and their location [Wichman]. The manipulator, stripped of its touch sensors, relied on position-servoed joint axes. Homogencous transformations, however, expressed the position-and orientation of the end effector in Cartesian coordinates, not as the angles between a series of unorthogonal manipulator joints. Pieper ap- plied the theories of closed-link chains to obtain a solution to this problem, and the manipulator could then be commanded to move to Cartesian positions in the workspace [Pieper]. In Chapter 2 we develop the methods of obtaining the Cartesian coordinate position and orientation of the end effector for any manipulator, given the joint coordinates as input. The position and orientation are represented by a homogeneous transformation. In Chapter 3 we investigate the inverse problem of obiaining the joint coordinates for a manipulator given ‘the Cartesian coordinate description of the end effector. This problem is difficult, requires intuition, and can be solved analytically for only a limited number of simple manipulators. Fortunately, most commercially available manipulators are of this form and are solvable (see Figures 32, 4.3, 62, and 9.1). By 1970, a camera- and arm-equipped computer could play real-world games and the “instant insanity” puzzle was successfully solved at Stanford University [Fetdman], In this puzzle, four cubes with diferent colored faces must be stacked so that no identical colors appear on any side of the stack. At MIT, a block structure could be observed and copied. In Japan, research led to a hand-eye system which could assemble block structures when presented with an assembly drawing. The drawing was first viewed, the materials surveyed, and then the required structure built [Fir], Potential applications of this research appeared to ‘be in deep space probes and in factory automation. Corresponding to these goals, vision research was directed to the more difficult task of identifying castings and rocks, and manipulation research was directed to the assembly of objects. ‘The manipulator, working in relationship with a vision sensor, is frequently Introduction 4 required to make small motions of accommodation. I Chapter 4 we consider the |1 0 0 40 1 0 0 ooo loo sllbooon In general, given a transform with elements as Pe oy Py (1.56) Gy Ps on then the inverse is Me My Me —P-o Pte eee eee eer (187) Gy O —p-a 000 1 where p,m, 0, and a are the four column vectors and "." represents the vector dot product, This result is easily verified by postmultiplying Equation 1.56 by ‘Equation 1.57, 1.12 General Rotation Transformation We stated the rotation transformations for rotations about the x, y, and z axes (Equations 1.32, 1.33, and 1.34). These transformations have a simple geometric General Rotation Transformation % Figure LIL A Rotation about the z axis intezpretation. For example, in the case of rotation about the 2 axis, the column representing the axis will remain constant, while the column elements repre- senting the « and y axes will vary as shown in Figure LIL. We will now develop the transformation matrix representing a rotation around an arbitrary vector k located at the origin, (See [Hamilton] for a full discussion of this subject) In order to do this we will imagine that kis the z axis unit vector of a ‘coordinate frame C Tz 0 Gs O my % wy O Ne Oo a 0 (138) oo o8 k=ai-fajj+ok (1.59) Rotating around the vector k is then equivalent to rotating around the 2 axis of the frameC. Rot(k, 0) = Rot(“2z,0) (1.60) If we are given a frame ‘T described with respect to the reference coordinate frame, we can find a frame X which describes the same frame with respect to frame C as, T=Cx (1.61) where X describes the position of T with respect to frame C. Solving for X we obtain X=c'T (1.62) Rotating T around k is equivalent to rotating X around the z axis of frame C Rot(k, 8) T = CRot(z, 0) X (1.63) Rot(k, 0) T = C Rot(z, 6) C-! T. (1.64) Thus Rot{k, 0) = CRot{z, 0) C7! (1.65) However, we have only k, the z axis of the frame C. By expanding Equation 1.65 ‘we will discover that C Rot(z,é) C— isa function ofk only. Multiplying Rot(z, 4) on the right by C~! we obtain cos —sind 0 On, my m 0 sind cos? 0 Offa, oy o 0 0 0 1 Ola ay a, 0 o 0 oo o o 4 ‘nzcos0—o,8in@ m,cos0—oysind n,cos?—o,sind 0) a |Pesind +o2c0s0 nysind +0yc0s0 nesind +o,c080 0 1 66) a %y a, 0 0 0 0 1 premultiplying by (67) oF ee? ores ofeeP General Rotation Transformation B ‘we obtain C Rot(z, 6) C—! ‘nathe 6080 — 1:0, sin8 + na0-sind + 0:020080 + dade yr, 6080 — ny0,sin8 + n,0, ind -+ oy, 080 + 005 nang 6086 — n202 8ind ++ 10, ind + 0,0, 0089 + 0.0, 0 fry 6080 — 1,0, 8in8 -+ m0-sind + 00080 + a:0y nym, cos — npysind + nyoysind + o,p,cos0 + ayay (1.68) Natty C080 —~ no, sin 8 ++ nyo, sin8 + 0,0, 0080 + ay 0 nenzcosd — nyo, sind + n,0, sind +0,09cos0-+a,0, 0 ny 6080 — nyp,sin® + reoysind + 00,089 + aya, 0 TaN, cos — n,o, sind + n,0,8in8 + 0,0,cos8-+-a,, 0 ° ‘Simplifying, using the following relationships: the dot product of any row or column of C with any other row or column is zero, asthe vectors are orthogonal; the dot product of any row or column of C with itself 1 as the yeetors are of unit, magnitude; thez unit vectors the vector cross product of the « and y vectors or a=nXxo (1.69) which has components Oe = Myo — Nady ay = 1202 — ate, Ge = Moy — Myre the versine, abbreviated as vers0, is defined as vers@ = (1 — cos 0), kee Ga, ky = Oy, and ky = We obtain Rot(k, 0) = kk, Vers + 6086 kykzvers0—kysind kykevers9 + kysin® 0 gk, vers0-+k, sind kyky vers + cosd kykyvers0—kesind 0 kjk, vers — ky sin® kyk, vers@-+k,sind kk vers0-++cosd 0 0 0 0 1, (170) ‘This is an important result and should be thoroughly understood before proceed- ing further. From this general rotation transformation we can obtain each of the elementary Totation transforms. For example Rot(x,0) is Rot(k,@) where ke = 1, ky = 0, Figure 1.12, The Stanford Manipulator ‘and k, = 0, Substituting these values of k into Equation 1.70 we obtain Leto aed _|0 cos —sind 0 Roee=J9 sind cosd 0 oo 0 ft (un) as before, 1.13 Equivalent Angle and Axis of Rotation Given any arbitrary rotational transformation, we can use Equation 1,70 to obtain an axis about which an equivalent rotation @ is made as follows. Given a rola Equivalent Angle and Axis of Rotation 30 tional transformation R Mz 0 a; O My % ay 0 Re @ 0 am) 000 we may equate R to Rot(k, @) a, 0 a, 0 ° eee eee ° 0 0 0 kekeversO-+cosd kykevers0—k,sin@ kjkeversO-+kysind 0 kgkyversO-4-k, sind kykyvers@+cosd k,kyvers0—kzsind 0 kk, vers0 —k, sin6 kyk,vers6-+-k, sind kk, vers0-+-cosd 0 0 0 1. (173) Summing the diagonal terms of Equation 1.73 we obtain ny-boy-bag bl = K2 vers0-f-cosd-+K? vers é-}-cos0-+-K2 vers0-+ cosd-f-1 (1.74) 1g + oy + (K+ + #2) vers + 3.c080 (175) 1+ 2cosd and the cosine of the angle of rotation is 1 cosd = He boy tas 1) (76) Differencing pairs of off-diagonal terms in Equation 1.73 we obtain 0, =a, =P, sind (77) ay — ny = Py sind (178) tty —0¢ = 2h, sind (1.79) Squaring and adding Equations 1.77 ~ 1.79 we obtain an expression for sind (a +(e —n.)+(ny— en)? = 4sin?@ (1.80) and the sine of the angle of rotation is snd= th flea tla—mP + (yo)! (181) 31 We may define the rotation to be positive about the vector k such that 0 < 0-< 180°, In this case the + sign is appropriate in Equation 1.81 and thus the angle of rotation @ is uniquely defined as tand = ay (1.82) ‘The components of k may be obtained from Equations 1.77 ~ 1.79 as k= SO (1.83) yo Se (1.84) wg? as When the angle of rotation is very small, the axis of rotation is physically not well defined due to the small magnitude of both numerator and denominator in Equations 1.83-1.85, If the resulting angle is small, the vector k should be renormalized to ensure that |k| = 1. When the angle of rotation approaches 180° the vector k is once again poorly defined by Equation 1.83-1,85 as the magnitude of the sine is again decreasing [Klump]. The axis of rotation is, however, physi- cally well defined in this case, When @ > 150P, the denominator of Equations ‘1,83-L.85 is less than 1, As the angle increases to 180° the rapidly decreasing ‘magnitude of both numerator and denominator leads to considerable inaccuracies in the determination of k. At @ 180°, Equations 183-1.85 are of the form 0/0, yielding no information at all about a physically well defined vector k. Ifthe angle of rotation is greater than 907, then we must follow a different approach in determining k. Equating the diagonal elements of Equation 1.73 we obtain Evers + cosd (1.88) Hi vers6 + cosd = (1.87) Revers0 + cosd (1.88) Substituting for cos@ and vers@ from Equation 1.76 and solving for the ele- ments of k we obtain further (1.89) (1.90) (1.91) Equivalent Angle and Axis of Rotation 2 ‘The largest component of k defined by Equations 1.89 - 1.91 corresponds to the ‘most positive component of nz, oy, and ., For this largest element, the sign of the radical can be obtained from Equations 1.77 - 1.79. As the sine of the angle of rotation @ must be positive, then the sign of the component of k defined by Equations 1.77 ~ 1.79 must be the same as the sign of the left hand side of these equations. Thus we may combine Equations 1.89-1.91 with the information contained in Equations 1.77-1.79 as follows 5 = sanlo, ~ a,)y/ 88 (1.92) by me san(ae— np] 4S (1.3) k= sgn(ry — 0) S88 (1.94 where sgn(e) = -+1 ife > 0 and sgn(¢) = —1ife <0, Only the largest element of k is determined from Equations 1.92-1.94, com responding to the most positive element of mz, oy, and a,. The remaining ele- ments are more accurately determined by the following equ: summing pairs of off-diagonal elements of Equation 1.73 ny +0. = Bek versd (1.95) O,-+ ay = Uke verso (1.96) neh as = Uk, verso (1.97) Ife is largest then nyt by = severnp Mom Equation 1.95 (1.98) a atm ; k= Teversd from Equation 1.97 (1.99) If hy is largest then _ tyes kg WE, verso from Equation 1.95 (1.100) _ bay ' k= gang tom Bquation 96 (1.101) If fy is largest then _ atm : ke Fag ftom Equation 197 (1.102) by = EM from Equation 1.96 (1.103) 2k, vers (Sce [Whitney] for an alternate approach to this problem) B Figure 1.13. Rotation about k of 120° Example 1.1 Determine the equivalent axis and angle of rotation for the matrix given in Equation Lat Ce) a{lo00 Rot{y, 90)Rot(z,90)=]4 9) (1.104) 900 1. We first determine cos from Equation 1.76 1 1 cosd = 5(0-+0+0—1)=—5 (1.105) and sin frotn Equation 181 sind = pV oF FOF FOF = a (1.106) Thus 1 (1.107) Stretching and Scaling ot ‘As@ > 80, we determine the largest component of k corresponding to the largest element on the diagonal. As all diagonal elements are equal in this example we may pick any one, We will pick kz given by Equation 1.92 1 1 1 ket 0+ 5/i+} 7 (1.108) AS we have determined k we may now determine ky and k, from Equations 1.98 and 1.99, respectively 1+0 i eee eee 1.108) aA v3 see 1+0_ 1 atte= 1.110 vi V3 eeu In summary, then Rot(y, $0)Rot(z, 90) = Rot(k, 120) ‘(@an) (Goe Figure 1.13) (L112) Any combination of rotations is always equivalent to a single rotation about some axis k by an angle 8, an important result that we will make use of later. 1.14 Stretching and Sealing Although we will not use these deforming transformations in manipulation, we include them here to complete the subject of transformations, A transform T 000 (1.113) soos boo 06 0 001 will stetch objects uniformly along the = axis by a factor a, along the y axis by ‘a factor , and along the z axis by a factor c. Consider any point on an object ai + yj + 2k; its transform is faz] fo 0 0 O}fe by} _ Jo 6 0 ojly e]~|0 0 Ole (Guta) 1 0 0 1th, indicating stretching as stated. Thus a cube could be transformed into a rectan- gular parallelepiped by such a transform. 35 Xz f y eye! x Figure 1.14, Perspective Transformation ‘The transform S where s 00 0 0500 S=) ooo (141s) 0001 will scale any object by the factor 8, 115 Perspective Transformations Consider the image formed of an object by a simple lens as shown in Figure 1.14, ‘The axis of the lens is shown along the y axis for convenience. An object point 2, y, 2 is imaged at 2! yf 2/if the lens has a focal length f (/ is considered. positive). y represents the image distance and varies with object distance y. If we plot points on a plane perpendicular to the y axis located at y’ (the film plane in a camera), then a perspective image is formed. We will fist obtain values of 2, y’, and 2, then introduce a perspective trans- formation and show that the same values are obtained, Based on the fact that a ray passing through the center of the lensis undeviated, we may write 27 -=5 1.116) yu (1.116) zig id = = 117) ad E=5 (17) Perspective Transformations 6 Based on the additional fact that a ray parallel to the lens axis passes through the focal point f, we may write z saar i L118) vt ee eae es ts ‘Notice that 2’, y’, and 2 are negative and that f is positive. Eliminating 1f ‘between Equations 1.116 and 1.118 we obtain and Sie Sis (L119) z z= 1.120) 3 (1120) and solving for 2’ we obtain the result ge 1.120) a-F tien Working with Equations 1.117 and 1.119 we can similarly obtain got 1.122} =H (1a2y In order to obtain the image distance y’ we rewrite Equations 1.116 and 1.118 as zy 5-5 (1.123) and ote (1.124) thus (1.125) and solving for y/ we obtain the result = (1.126) v= GSH (1.128) ‘The homogeneous transformation P which produces the same result is 1000 0 1 0 0 P=\p 9 10 (1.127) o-bol Figure 115. An Object and Manipulator asany point zi + yj -+ zk transforms as, (1.128) Nee ‘The image point 2’, y’, 2/, obtained by dividing through by the weight factor (—v/f)is e v : a-an'* (an * = ee ‘This is the same result that we obtained above. A wansform similar to P but with —1/f at the bottom of the first column produces a perspective transformation along the x axis. If the —1/f term is in the third column then the projection is along the z axis. 1.16 Transform Equations We will frequently be required to deal with transform equations in which a coor- dinate frame is described in two or more ways. Consider the situation described in Figure 1.15. A manipulator is positioned with respect to base coordinates by a transform Z. The end of the manipulator is described by a transform 7g, and the end effector is described by THE, An object is positioned with respect to base coordinates by a transform B, and finally the manipulator end effector is positioned with respect to the object by 9G. We have two descriptions of the posi- tion of the end effector, one with respect to the object and one with respect to the ‘Transform Equations 8 TS enced Figure 1.16, Directed Transform Graph manipulator. As both positions are the same, we may equate the two descriptions 1775 TE = BEG (1.130) This equation may be represented by the directed transform graph (see Figure 116). Each link of the graph represents a transform and is directed from its defining coordinate frame, If we wish to solve Equation 1.130 for the manipulator transform Te we must premultiply Equation 1.130 by Z— and postmultiply by E~! to obtain Ts (1431) We may obtain this result from the transform graph by starting at the base of the To link and listing the transforms as we traverse the graph in order until we reach the head of ink Tg. If, as we list transforms, we move from a head to a tail (in the reverse direction of the directed link), we list the inverse of the transform, From the graph we thus obtain Ts = Z' BGE (1.132) as before, AS a further example, consider that the position of the object B is unknown, but that the manipulator is moved such that the end effector is positioned over the object correctly. We may then solve for B from Equation 1.130 by postmul- tiplying by G—! or obtain the same result directly from the graph by tracing the path from the tail of B back around the graph to the head of link B =ZT.EG™ (1.133) We may also use the graph to solve for connected groups of transforms, for example LT; =BGE! (1.134) Figure 1.17, An Altemative Form of Figure 1.16 ‘The use of a transform graph simplifies the solution of transform equations, al- lowing the results to be written directly. In order to avoid drawing circles, we ‘will represent the transform graph as shown in Figure 1.17, where the dashed line indicates that two nodes are connected together. Intermediate vertical lines represent individual coordinate frames. 147 Summary Homogeneous transformations may be readily used to describe the positions and orientations of coordinate frames in space. If a coordinate frame is embedded in an object then the position and orientation of the object are also readily described. ‘The description of object A in terms of object 1b by means of a homogeneous transformation may be inverted to obtain the description of object B in terms of object.A. This is not a property of a simple vector description of the relative displacement of one object with respect to another. Transformations may be interpreted as a product of rotation and translation transformations. If they are interpreted from left to sight, then the rotations and translations ate in terms of the currently defined coordinate frame. If they are interpreted from right to left, then the rotations and translations are described with respect to the reference coordinate frame, Homogeneous transformations describe coordinate frames in terms of rectan- gular components, which are the sines and cosines of angles, This description may be related to rotations in which casé the description is in terms of a vector and angle of rotation, References, A 1.18 References Denavit, J. & Hartenberg, R. S. "A Kinematic Notation for Lower-Pair Mecha- nisms Based on Matrices,” ASME Journal of Applied Mechanics (June 1955), 215-221. ‘Duda, R. O. & Hart, P. E. Pattern Classification and Scene Analysis , Wiley, New York, 1972, Hamilton, W. R. Elements of Quaternions , Chelsea Publishing Co, New York, 1969, Klumpp, A. R. "Singularity-Free Extraction of a Quaternion from a Direction Cosine Matrix,” Joural of Spacecraft 13, 12 (Dec, 1976), 754-155, Paul, R. P. Modeling, Trajectory Calculation and Servoing of a Computer Controlled Arm, Stanford Artificial Intelligence Laboratory, Stanford Universi- ty, AIM 177, 1972. Paul, R. P. "The Mathematics of Computer Controlled Manipulation,” The 1977 Joint Automatic Control Conference, July 1977, 124-131. Pieper, D. L. The Kinematics of Manipulators Under Computer Control, Stan- ford Artificial Intelligence Laboratory, Stanford University, AIM 72, 1968. Roberts, L. G. Machine Perception of Three-Dimensional Solids, Lincoln Labo- ratory, Massachusetts Institute of Technology, Report No, 315, 1963. Roberts, L. G. Hotnogeneous Matrix Representation and Manipulation of N- Dimensional Constructs, Lincola Laboratory, Massachusetts Institute of Tech- nology, Document No. MS1045, 1965, Whitney, D. E, "The Mathematics of Coordinated Control of Prosthetic Arms and Manipulators," Trans, ASME, Journal of Dynamie Systems, Measurement, and Control (Dec. 1972), 303-309, CHAPTER 2 KINEMATIC EQUATIONS 2.1 Introduction In this chapter we will develop homogeneous transformations to represent var- ious coordinate frames and formulate methods of assigning coordinate frames to mechanical linkages representing manipulators. We will first define various methods of describing the position and orientation of a manipulator and then develop this description in terms of the joint coordinates. Any manipulator can be considered to consist of a series of links connected together by joints. We will embed a coordinate frame in each link of the ‘manipulator. Using homogencous transformations, we can describe the relative position and orientation between these coordinate frames [Pieper]. Historically, the homogeneous transformation describing the relation between one link and the next has been called an A matrix {Denavit]. An A matrix is simply a hhomogencous transformation describing the relative translation and rotation be- tween link coordinate systems. Ai describes the position and orientation of the first link, Ag describes the position and orientation of the second link with respect to the first. Thus the position and orientation of the second link in base coor- dinates are given by the matrix product Th=Ai Aa (2.1) Similarly, As describes the third link in terms of the second and Ty = Av Andy (2.2) ‘These products of A matrices have historically been called T matrices, with the leading superscript omitted if it is 0. Given a six Tink manipulator we have Te = Ai Az As Aa As As (2.3) A six link manipulator can have six degrees of freedom, one for each link, and can be positioned and oriented arbitrarily within its range of motion, Three degrees of, freedom are required to specify position and three more to specify orientation, Ts represents the position and orientation of the manipulator. This can be thought of Specification of Orientation a Figure 21. 0, a, and p Vectors in terms of a hand, as shown in Figure 2.1. We locate the origin of a describing coordinate frame centrally between the finger tips. ‘This origin is described by a vector p. The three unit vectors describing the hand orientation are directed as follows, The # vector lies in the direction from which the hand would approach an object and is known as the approach vector, a. The y vector, known as the orientation, vector 0, is in the direction specifying the orientation of the hand, from fingertip to fingertip. The final vector, known as the normal vector, n, forms a right-handed set of vectors and is thus specified by the vector cross-product oxa ‘The transform Tg thus has elements. Te 02 Os Pe Tom [he & fe i (2.4) ooo 8 as shown in Figure 2.1, 2.2 Specification of Orientation ‘To is fully specified by assigning values to cach of its 16 elements. Of these 16 elements only 12 have any real meaning, The bottom row consists of three zeros 8B and a one. The left hand column vector is the vector cross product of the © and a column vectors. The remaining nine numbers represent three vectors 0, a, and p. While there is no restriction on the value of p, provided the manipulator can reach the desired position, the vectors o and a must both be of unit magnitude and perpendicular, Le. o-o=l 25) wand (2.8) o-a=0 a7 ‘These restrictions on o and a make it dificult to assign components to the vectors except in simple cases when the end effector is aligned with the coordinate axes. If there is any doubt that o and a meet these conditions, the vectors may be modified to satisfy the conditions as follows. Make a of unit magnitude ane (28) construct n perpendicular too and a neoxa (2.9) rotate o in the plane formed by o and a, so that itis perpendicular to both n and a onaxn (2.10) and make o of unit magnitude ° on So 2.11 jel (2.1) We may also specify the orientation of the end of the manipulator as a rotation @ about an axis k using the generalized rotation matrix, Rot(k, 0), developed in Chapter 1. Unfortunately, the axis of rotation to achieve some desired orienta- tions is not intuitively obvious. 23 Kuler Angles Orientation is more frequently specified by a sequence of rotations about the z, y, rz axes, Euler angles describe any possible orientation in terms of a rotation about the 2 axis, then a rotation # about the new y axis, y, and finally, a rotation about the new2 axis, 2”, of p. (See Figure 2.2). Euler Angles “ ow x Figure 22, Euler Angles ae reece Figure 23, Euler Angles Interpreted in Base Coordinates Fuiler(,8, 9] = Rot(z, 4) Rot(y, 0) Rot(z, #) (2.12) 45 As in every case of a sequence of rotations, the order in which the rotations are made is important. Notice that this sequence of rotations can be interpreted in the reverse order as rotations in base coordinates: a rotation ~ about the 2 axis, followed by a rotation 6 about the base y axis, and finally a rotation 4, once again about the base z axis (see Figure 2.3). ‘The Euler transformation, Euler(¢, , ), can be evaluated by multiplying the three rotation matrices together Euler(¢, 6, ) = Rot(z, ¢) Rot(y, 6) Rot(z, ) (2.13) 80 0 sind Olfcoss —sing 0 0] _ 0 1 0 Olfsiny cosp 0 0 Faler(#,0,0) = Rots! ing 9 cos ol] 0 0 1 0 0 o 0 |. 0 0 oO. = (214) Buler(¢,0, ¥) = ‘cos —singd 0 Of cosdcosy) —cosdsiny sind 07 sing coed 0 O sing cosy 0 0 oO oO 1 O||/—sin@cosp sin@siny cos? 0 0 0 oL 0 0 o 1 (2.15) Euler($,6,9) = ‘cospcosPcosy —singsiny —cospcosésiny —singcosp sing cos# cosy + cospsiny —singcosdsiny + cos cosy — sind cosy sindsin 0 0 (2.18) cosdsing 0) singsin@ 0) cos @ 0 0 2.4 Roll, Pitch, and Yaw Another frequently used set of rotations is roll, pitch, and yaw. If we imagine a ship steaming along the 2 axis, then roll corresponds to a rota- tion ¢ about the z axis, pitch corresponds to a rotation @ about the y axis, and yaw corresponds to a rotation about the 2 axis (see Figure 2.4). The rotations applied to a manipulator end effector are shown in Figure 2.5. Roll, Pitch, and Yaw 6 Figure 24, Roll, Pitch, and Yaw Angles yaw x Figure 25, Roll, Pitch, and Yaw Coordinates for a Manipulator ‘We will specify the order of rotation as RPY(4,0, 8) = Rot(z, 4) Rot(y, 4) Rot(z, p) (2.17) that is, a rotation of yp about station x, followed by a rotation @ about station y, and finally, a rotation ¢ about station 2, The transformation is as follows cos@ 60 siné OTf1 oO 0 0 a 0 1 0 Offo cosp —siny 0 RIVE) =Roted! ing o cos O10 sing cosy 0 Oita uotio ita (2:18) a RPY(6,6, 4) = cos —sing 0 Of cos? sindsiny sindcosy 0 sing cose 0 0] 0 cose = sing 0 (2.19) 0 0 1 Ol] —~sind cosdsind cosdcosp 0 o o oall o 0 o 4 RPY(4,0,¥) cosdcosé cospsinOsiny —singrosy singcos@ singsinIsiny + cosdcosp —sing cosésiny 0 0 (2.20) cospsindcosy + singsiny 0 sin gsin# cosy —cosgsiny 0 cos 0 cos) 0 0 L 2.5 Specification of Position Once its orientation is specified, the hand may be positioned in station coor [nn | (2.21) 0001 Aransformation] 2.6 Cylindrical Coordinates ‘We might, however, wish to specify the position of the hand in cylindrical coor dinates, This corresponds to a translation r along the 2 axis, followed by a rota- thon a about the 2 axis, and finally a translation z along the = axis (see Figure 26). Cyl(z, a, 7) = Trans(0, 0, z) Rot(z, a) Trans(r, 0, 0) ‘cosa —sina 0 O]f1 0 0 ¥ r, sina cosa 0 010 1 0 0 Cale, 0,7) = Trans(a, 0,2" EF 9 OH) SD Of (2.22) 0 0 oO io 0 OL Cylindrical Coordinates 48 Ls —y ot Figure 26. Cylindrical Polar Coordinates x Olfeosa —sina 0 reosal sina cosa 0 rsina : ofa (2.23) 0 o o 8 Cyilz, a, 7) = cosa —sina 0 reosal : [sine cosa 0 rsina . Mea ee nD (2.24) o 0 o 8 If we were to postmultiply this transformation by an orientation transform, as in Equation 2.21, then the orientation of the hand would be with respect to the sta tion coordinates rotated a about the 2 axis. IF it were desired to specify orientation with respect to unrotated station coordinates, then we would rotate 2.24 by —a about its z axis or cosa —sina 0 reosalfeos(—a) —sin(—a) 0 0) _|sina cosa 0 rsinal|sin(—a) co(—a) 0 0 Moana “o 1 ez 0 o 10 o o ft ° 0 0 cosa —sina 0 reosalf cosa sina Colgan) =]eine ca renal —sing cova o o o tho o ence neces x Figure 27, Spherical Polar Coordinates 10-0 reosay {0°10 rsina oieay=|p 4 pe (2.27) 000 1 ‘This isthe form in which we will interpret Cyl(z, a, 7). 2.7 Spherical Coordinates Finally, we will consider the method of specifying the position vector by means of spherical coordinates, This method corresponds to a translation r along the 2 axis, followed by a rotation B about station y, and then a rotation a about station z (see Figure 2.7). Sph(a, B,r) = Rot(z, a) Rot(y, 8) Trans(0, 0, r) (2.28) cosh 0 sing Olf1 0 0 6 i o 1 0 ofo 100 Soh(e,B,7) = Rotia}] tos § eons Olle a 1 oi (2.29) 0 0 0 ilo oo 1 cosa —sina 0 Of cos 0 sinf rsing’ —|sine cosa 0 Off O 1 0 0 SMe yy OL Oll—wing 0 exes reosg| 2) 0 0 OL 0 o 0 1 samc Specification of Ts 50 Table 24 [Transiation] Ban. [Rotation] Eqn. PoP Pe 00,0000, Rot(k, 8) 170 Cyr, a,7) 227 Buler( 4,0, 8) 216 Sph(a, 6, r) 33 RPY(4,8, 9} 2.20 cosacos8 —sina cosasing rcosasingy = |sinacosé cosa sinasinB rsinasinf See,.)=l inp 0 cosh cosh seen) 0 oO 0 1 Once again, if we do not wish the orieitation to be expressed with respect to this rotated coordinate frame, we must postmultiply by Rot(y, —A) and Rot(z, ~

You might also like