100% found this document useful (1 vote)
5K views459 pages

Introduction To Robotics Mechanics and Control - J J Craig

hjhjhjhjhj

Uploaded by

Hồ Giao
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)
5K views459 pages

Introduction To Robotics Mechanics and Control - J J Craig

hjhjhjhjhj

Uploaded by

Hồ Giao
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/ 459
8) INTRODUCTION TO ROBOTICS MECHANICS AND CONTROL SECOND EDITION JOHN J. CRAIG Silma, Inc. vaCeCentsTeyA] Aiea Payersaattes al Reading, Massachusetts « Menlo Park, California * New York Don Mills, Ontario * Wokingham, England * Amsterdam * Bonn Sydney * Singapore + Tokyo * Madrid »San Juan yy f#* % OEE EE SOSA EAALR AE Bes BNA REN GIR OE \ BIBLIOTECA a N° DE REGISTRO | DATA Library of Congress Cataloging-in-Publication Data Craig, John J., 1955- Introduction to robotics: mechanics and control / John J. Craig.— 2nd ed. Pp. cm. Bibliography: p- Includes index. ISBN 0-201-09528-9 1. Robotics L. Title TJ211.C67 1989 629.8'92-de19 88-37607 cIP Copyright © 1989, 1986 by Addison-Wesley Publishing Company, Inc. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Printed in the United States of America. Published simultaneously in Canada. 23 24 MA 05 04 03 02 This book is in the Addison-Wesley Serie8 in Electrical and Computer Engineering: Control Engineering. Consulting Editor: John J. Craig, Robotic Systems Adaptive Control, 09720 Karl J. Astrém and Bjorn Wittenmark Introduction to Robotics, Second John J. Craig Edition, 09528 Modern Control Systems, Fifth Richard C. Dorf Edition, 14278 Digital Control of Dynamic Gene F. Franklin, Systems, Second Edition, 11938 J. David Powell, and Michael L. Workman Computer Control of Machines John G. Bollinger and and Processes, 10645 Neil A. Duffie Feedback Control of Dynamic Gene F Franklin, Systems, 11540 J. David Powell, and Abbas Emami-Naeini Adaptive Control of Mechanical John J. Craig Manipulators, 10490 Modern Control System Theory Stanley M. Shinners and Application, Second Edition, 07494 PREFACE Scientists often have the feeling that through their work they are learning about some aspect of themselves. Physicists see this connection in their work, as do the psychologists, or chemists, In the study of robotics, the connection between the field of study and ourselves is unusually obvious. And, unlike a science that seeks only to analyze, rohotics as presently pursued takes the engineering bent toward synthesis. Perhaps it is for these reasons that the field fascinates so many of us. The study of rébotics concerns itself with the desire to synthesize some aspects of human function by the use of mechanisms, sensors, actuators, and computers. Obviously, this is a huge undertaking which seems certain to require a multitude of ideas from various “classical” fields. Presently different aspects of robotics research are carried out by experts in various fields. It is usually not the case that any single indi- vidual has the entire area of robotics in his or her grasp. A partitioning of the field is natural to expect. At a relatively high level of abstraction, splitting robotics into four major areas seems reasonable: mechanical manipulation, locomotion, computer vision, and artificial intelligence. This book introduces the science and engineering of mechanical manipulation. This subdiscipline of robotics has its foundations in vi Preface several classical fields. The major relevant fields are mechanics, control theory, and computer science. In this book, Chapters 1 through 8 cover topics from mechanical engineering and mathematics, Chapters 9 through 11 cover control theoretical material, and Chapters 12 and 13 might be classed as computer science material. Additionally, the book emphasizes computational aspects of the problems throughout; for example, each chapter which is predominantly concerned with mechanics has a brief section devoted to computational considerations. This book has evolved from class notes used to teach “Introduction to Robotics” at Stanford University during the autumns of 1983 through 1985, and the first edition used at Stanford and many other schools from 1986 through 1988. The present edition has benefited from this use and incorporates corrections and improvements due to feedback from many sources. At Stanford, the introductory robotics course is the first in a three quarter sequence where the second quarter covers computer vision and the third covers artificial intelligence, locomotion, and advanced topics. This book is appropriate for a senior undergraduate or first year graduate level course. It is helpful if the student has had one basic course in statics and dynamics, a course in linear algebra, and can program in a high level language. Additionally it is helpful, though not absolutely necessary, that the student have completed an introductory course in control theory. One aim of the book is to present material in a simple, intuitive way. Specifically, the audience need not be strictly mechanical engineers, though much of the material is taken from that field. At Stanford, many electrical engineers, computer scientists, and mathematicians found the first edition quite readable. While this book is directly of use to those engineers developing robotic systems, the material should be viewed as important background material for anyone who will be involved with robotics. In much the same way that software developers have usually studied at least some hardware, people not directly involved with the mechanics and contro] of robots should have some background such as that offered by this text. The second edition is organized as 13 chapters. While the material will fit comfortably into an academic semester, teaching the material within an academic quarter will probably require the instructor to choose a couple of chapters to omit. Even at that pace, all of the topics cannot be covered in great depth. In some ways, the book is organized with this in mind; for example, most chapters present only one approach to solving the problem at hand. One of the challenges of writing this book has been in trying to do justice to the topics covered within the time constraints of usual teaching situations. One method employed to this end was to consider only the material which directly impacts on the study of mechanical manipulation. At the end of Chapter 1 several references are listed, including a listing of research oriented journals that publish in the robotics area. At the end of each chapter is a set of exercises. Each exercise has been assigned a difficulty factor, indicated in square brackets following the exercise’s number. Difficulties vary between [00] and [50], where [00] is trivial and [50] is an unsolved research problem.” Of course, what oue person finds difficult, another may find easy, so some readers may find them misleading in some cases. Nevertheless, an effort has been made to appraise the difficulty of the exercises. Additionally, at the end of each chapter there is a programming assignment in which the student applies the subject matter of the corresponding chapter to a simple three-jointed planar manipulator. This simple manipulator is complex enough to demonstrate nearly all the principles of general manipulators, while not bogging down the student with too much complexity. Each programming assignment builds upon the previous ones, until, at the end of the course, the student has an entire library of manipulator software. Chapter 1 is an introduction to the field of robotics. It introduces some background material, the adopted notation of the book, a few fundamental ideas, and previews the material in following chapters. Chapter 2 covers the mathematics used to describe positions and orientations in 3-space. This is extremely important material since, by definition, mechanical manipulation concerns itself with moving objects (parts, tools, the robot itself) around in space. We need ways to describe these actions in a way which js easily understood and as intuitive as possible. Chapters 3 and 4 deal with the geometry of mechanical] manipu- lators. They introduce the branch of mechanical engineering known as kinematics, the study of motion without regard to the forces that cause it. In these chapters we deal with the kinematics of manipulators but restrict ourselves to only static positioning problems. Chapter 5 expands our investigation of kinematics to velocities and static forces. Jn Chapter 6 we deal for the first time with the forces and moments required to cause motion of a manipulator. This is the problem of manipulator dynamics. Chapter 7 is concerned with describing motions of the manipulator in terms of trajectories through space. Chapter 8 many topics related to the mechanical design of a ma- nipulator. For example, how many joints are appropriate, of what type should they be, and how should they be arranged? * T have adopted the same scale as in The Art of Computer Progamming by D. Knuth (Addison-Wesley) vii viii Preface In Chapters 9 and 10 we study methods of controlling a manipulator (usually with a digital computer) so that it will faithfully track a desired position trajectory through space. Chapter 9 restricts attention to linear control methods, and Chapter 10 extends these considerations to the nonlinear realm. Chapter 11 covers the relatively new field of active force control with a manipulator. That is, we discuss how to control the application of forces by the manipulator. This mode of control is important when the manipulator comes into contact with the environment around it, such as when washing a window with a sponge. Chapter 12 overviews methods of programming robots, specifically the elements needed in a robot programming system, and the particular problems associated with programming industrial robots. Chapter 13 introduces off-line simulation and programming systems which are now beginning to appear and represent the latest extension to the man-robot interface. I would like to thank the many people who have contributed their time to helping me with this book. First, my thanks to the students of Stanford's ME219 in the autumn of 1983 through 1985 who suffered through the first drafts and found many errors, and provided many suggestions. Professor Bernard Roth has contributed in many ways, both through constructive criticism of the manuscript and by providing me with an environment in which to complete the first edition. At SILMA Inc. I have enjoyed a stimulating environment as well as the resources that aided in completing the second edition. Dr. Jeff Kerr wrote the first draft of Chapter 8. His expertise as a mechanical designer of robot systems has strengthened this edition. I owe a debt to my previous mentors in robotics: Mare Raibert, Carl Ruoff, and Tom Binford. Many others around Stanford, SILMA, and elsewhere have helped in various ways—my thanks to John Mark Agosta, Mike Ah, Lynn Balling, Al Barr, Stephen Boyd, Chuck Buckley, Joel Burdick, Jim Callan, Monique Craig, Subas Desa, Tri Dai Do, Karl Garcia, Ashitava Ghosal, Chris Goad, Ron Goldman, Bill Hamilton, Steve Holland, Peter Jackson, Eric Jacobs, Johann Jager, Paul James, Jeff Kerr, Oussama Khatib, Jim Kramer, Dave Lowe, Jim Maples, Dave Marimont, Dave Meer, Kent, Ohlund, Madhusudan Raghavan, Richard Roy, Ken Salisbury, Donalda Speight, Bob Tilove, Sandy Wells, and Dave Williams. I only wish I had had time to more fully use all of their suggestions. Finally I wish to thank Tom Robbins and Don Fowley at Addison- Wesley, and several anonymous reviewers. Palo Alto, California ISIC. CONTENTS ee 1 INTRODUCTION 11 Background 12 The mechanics and control of mechanical manipulators 4 13 Notation 16 2 SPATIAL DESCRIPTIONS AND TRANSFORMATIONS 19 2.1 Introduction 19 2.2 Descriptions: positions, orientations, and frames 20 2.3 Mappings: changing descriptions from frame to frame 25 24 Operators: translations, rotations, transformations 32 2.5 Summary of interpretations 37 2.6 Transformation arithmetic 37 2.7 Transform equations 40 2.8 More on representation of orientation 43 2.9 Transformation of free vectors 56 2.10 Computational considerations 59 Contents 3 MANIPULATOR KINEMATICS 3.1 Introduction 3.2 Link description 3.3 Link connection description 3.4 Convention for affixing frames to links 3.5 Manipulator kinematics 3.6 Actuator space, joint space, and Cartesian space 3.7 Examples: kinematics of two industrial robots 3.8 Frames with standard names 3.9 WHERE is the tool? 3.10 Computational considerations 4 INVERSE MANIPULATOR KINEMATICS 41 Introduction 4.2 Solvability 43 The notion of manipulator subspace when n < 6 44 Algebraic vs. geometric 4.5 Algebraic solution by reduction to polynomial 46 Pieper's solution when three axes intersect AT Examples of inverse manipulator kinematics 4.8 The standard frames 4.9 SOLVE-ing a manipulator 4.10 Repeatability and accuracy 4.11 Computational considerations 5 JACOBIANS: VELOCITIES AND STATIC FORCES 5.1 Introduction 5.2 Notation for time-varying position and orientation 5.3 Linear and rotational velocity of rigid bodies 5.4 More on angular velocity 5.5 Motion of the links of a robot 5.6 Velocity “propagation” from link to link 5.7 Jacobians 5.8 Singularities . 5.9 Static forces in manipulators 5.10 Jacobians in the force domain 5.11 Cartesian transformation of velocities and static forces MANIPULATOR DYNAMICS 6-1 Introduction 6.2 Acceleration of a rigid body 113 113 114 120 122 128 129 181 141 143 143 144 152 152 153 156 159 164 165 169 173 175 179 180 187 187 188 6.9 6.10 6.1L 6.12 6.18 7 Mass distribution Newton’s equation, Euler’s equation Iterative Newton-Euler dynamic formulation Iterative vs. closed form An example of closed form dynamic equations The structure of the manipulator dynamic equations Lagrangian formulation of manipulator dynamics Formulating manipulator dynamics in Cartesian space Inclusion of nonrigid body effects Dynamic simulation Computational considerations TRAJECTORY GENERATION 71 7.2 73 74 7.5 7.6 LT 7.8 7.9 8 Introduction Genera] considerations in path description and generation Joint space schemes Cartesian space schemes Geometric problems with Cartesian paths Path Generation at Run Time Description of paths with a robot programming language Planning paths using the dynamic model Collision-free path planning MANIPULATOR MECHANISM DESIGN 8.1 8.2 8.3 8-4 8.5 8.6 8.7 8.8 8.9 9 Introduction Basing the design on task requirements Kinematic configuration Quantitative measures of workspace attributes Redundant and closed chain structures Actuation schemes Stiffness and defiections Position sensing Force sensing LINEAR CONTROL OF MANIPULATORS 9.1 9.2 9.3 9.4 9.5 9.6 Introduction Feedback and closed loop control Second-order linear systems Control of second-order systems Control law partitioning Trajectory-following control 190 195 196 201 201 205 207 211 214 215, 216 227 227 228 230 246 249 252 255 255 256 262 262 263 267 273 277 280 283, 289 290 299 299 300 302 310 312 315 xi Contents 9.7 Disturbance rejection 9.8 Continuous vs. discrete time control 9.9 Modeling and control of a single joint 9.10 Architecture of an industrial robot controller 10 NONLINEAR CONTROL OF MANIPULATORS 10.1 Introduction 10.2 Nonlinear and time-varying systems 10.3 Multi-input, multi-output control systems 10.4 The control problem for manipulators 10.5 Practical considerations 10.6 Present industrial robot control systems 10.7 Lyapunov stability analysis 10.8 Cartesian-based control systems 10.9 Adaptive control 11 FORCE CONTROL OF MANIPULATORS 11.1 Introduction 11.2 Application of industrial robots to assembly tasks 11.3 A framework for control in partially constrained tasks 11.4 The hybrid position/force control problem 11.5 Force control of a mass-spring 116 The hybrid position /force control scheme 11.7 Present industrial robot control schemes 12 ROBOT PROGRAMMING LANGUAGES AND SYSTEMS 12.1 Introduction 12.2 The three levels of robot programming 12.3 A sample application 12.4 Requirements of a robot programming language 12.5 An example application coded m three RPLs 12.6 Problems peculiar to robot programmimg languages 13 OFF-LINE PROGRAMMING SYSTEMS 13.1 Introduction 13.2 Central issues in OLP systems 13.3 CimStation 13.4 Automating subtasks in OLP systems 13.5 Summary 316 318 319 326 332 332 333 338 338 340 346 348 353 359 365 365 366 367 373 374 378 384 390 390 391 394 396 401 407 414 414 417 423 435 437 Appendices Cc INDEX TRIGONOMETRIC IDENTITIES THE TWENTY-FOUR ANGLE SET CONVENTIONS SOME INVERSE KINEMATIC FORMULAS 440 442 445 447 xiii 1.1. Background The history of industrial automation is characterized by periods of rapid change in popular methods. Fither as a cause or, perhaps, an effect, such periods of change in automation techniques seem closely tied to world economics. Use of the industrial robot, which became identifiable as a unique device in the 1960s, along with computer aided design (CAD) systems, and computer aided manufacturing (CAM) systems, characterizes the latest trends in the automation of the manufacturing process [1]. These technologies are leading industrial automation through another transition, the scope of which is still unknown. Although growth of the robotics market has slowed compared to the early 1980s (Fig. 1.1), according to some predictions the use of industrial robots is in its infancy. Whether or not these predictions are fully realized, it is clear that the industrial robot, in one form or another, is here to stay. Present use of industrial robots is concentrated in rather simple, repetitive tasks which tend uot to require high precision. Figure 1,2

You might also like