Theory of Automatic Robot Assembly and Programming
Theory of Automatic Robot Assembly and Programming Bartholomew o. Nnaji Professor and Director Automation and Robotics Laboratory Department of Industrial Engineering University of Massachusetts Amherst USA SPRINGER-SCIENCE+BUSINESS MEDIA, B.V.
First edition 1993 1993 Springer Science+Bnsiness Media Dordrecht Originally published by Chapman & Hall in 1993 Softcover reprint ofthe hardcover 15t edition 1993 ISBN 978-94-010-4692-3 o 442 31663 1 (USA) Apart from any fair dealing for the purposes of research or private study, or criticism or review, as permitted under the UK Copyright Designs and Patents Act, 1988, this publication may not be reproduced, stored, or transmitted, in any form or by any means, without the prior permission in writing of the publishers, or in the case of reprographic reprodudion only in accordance with the terms of the licences issued by the Copyright Licensing Agency in the UK, or in accordance with the terms of licences issued by the appropriate Reproduction Rights Organization outside the UK. Enquiries conceming reproduction outside the terms stated here should be sent to the publishers at the London address printed on this page. The publisher makes no representation, express or implied, with regard to the accuracy of the information contained in this book and cannot accept any legal responsibility for any errors or omissions that may be made. A catalogue record for this book is available from the British Library Library of Congress Cataloging-in-Publieation data available Nnaji, Bartholomew O., 1956- Theory of automatic robot assembly and programming/bartholomew O. Nnaji. - lst ed. p. em. Includes bibliographical referenees and index. ISBN 978-94-010-4692-3 ISBN 978-94-011-1590-2 (ebook) DOI 10.1007/978-94-011-1590-2 1. Robots, Industrial. 2. Robots - Programming. I. Title. TS19I.8.N59 1992 670.42'72 - de20 92-30586 CIP 18. Printed on permanent acid-free text paper, manufactured in aeeordanee with the proposed ANSIINISO Z 39.48-199X and ANSI Z 39.48-1984
To Professor Richard]. Giglio for his courage and vision
Contents List of tables Acknowledgements Preface 1 Machine programming 1.1 Introduction 1.2 Problems of machine reasoning 1.3 Robot programming 1.3.1 Explicit robot programming 1.4 Machine task-level programming 1.5 Organization of this book 2 CAD in automatic machine programming 2.1 Introduction 2.2 Desired CAD data 2.3 Feature, feature classification and representation 2.3.1 Feature concept 2.3.2 The Euler formula for features 2.3.3 Feature classification 2.3.4 Feature representation 2.3.5 Feature representation for mechanical components 2.4 Feature reasoning for mechanical components 2.4.1 Notations and definitions in feature reasoning 2.4.2 Envelope determination 2.4.3 Coordinate frame mapping 2.4.4 Extraction of form features 2.4.5 Feature recognition 2.4.6 Criteria used for feature recognition 2.4.7 Generic feature primitives 2.4.8 Pattern matching 2.4.9 Feature decomposition 3 Spatial relationships 3.1 Introduction 3.2 Background 3.2.1 Importance of a solid modeler in spatial reasoning 3.2.2 Spatial relationships developments xiii xv xvii 1 1 2 2 3 7 9 10 10 II 12 12 14 14 17 21 22 22 25 28 30 31 32 34 36 37 41 41 43 43 44
viii Contents 3.2.2.1 Mathematical representation 45 3.2.2.2 Expressions for positions of bodies in terms of relations between features 46 3.2.3 Features and spatial relationships 48 3.3 Spatial relationships 48 3.3.1 Assembly locations 49 3.3.2 Types of spatial relationship 50 3.3.3 Degrees of freedom 54 3.3.4 Intersection of degrees of freedom 56 3.3.5 Inferring mating frames 60 3.4 Product specification attributes 63 3.5 Applications 65 3.5.1 Bill of materials and precedence constraints 65 3.5.2 Feasible approach directions 65 3.5.3 World modeling 66 4 Structure of an automatic robot programmer 4.1 Introduction 4.2 An overview of RALPH 4.3 World knowledge database 4.4 RALPH commands 4.4.1 Task-level commands 4.4.2 Mid-level internal commands 4.4.3 General robot-level commands 4.5 Mathematical consideration 4.6 Task planner 4.6.1 The task-level planner 4.6.2 The mid-level planner 4.7 An example of assembly task 4.8 Programming issues 4.9 Discussion 67 67 71 72 72 73 76 76 79 82 82 85 87 91 92 5 Sensors and representation 5.1 Background 5.1.1 Tactile sensors 5.1.2 Force sensors 5.1.3 Proximity sensors 5.1.4 Ultrasonic ranging 5.1.5 Infrared 5.1.6 Vision 5.2 Internal and external sensors 5.2.1 Internal sensors 5.2.2 External sensors 5.3 Sensor fusion 5.4 Sensor architecture 93 93 94 95 95 95 95 95 97 97 97 99 100
Contents 5.4.1 General sensor level 5.4.2 Generic sensor level 5.4.2.1 Non-contact sensors 5.4.2.2 Contact sensors 5.4.2.3 Internal sensors 5.4.3 Specific sensor level 5.5 Representation 5.5.1 Planning 5.5.1.1 General sensor planner 5.5.1.2 Generic sensor planner 5.6 Probability of sensor usage 5.6.1 Generic plan 5.6.1.1 Specific sensor planner 5.6.2 Sensor range 5.6.3 Set considerations 5.6.4 Individual sensor properties 5.6.5 Gripper considerations 5.7 Processing 5.7.1 Specific level processor 5.7.2 Generic level processor 5.7.3 General level processor 5.7.4 Summary ix 102 103 104 105 106 106 106 107 107 110 110 111 112 113 116 118 118 119 119 121 125 128 6 W orid modeling and task specification 6.1 World modeling 6.1.1 Geometric description 6.1.2 Parametric world modeler 131 131 131 133 6.1.3 Physical description 134 6.1.4 Kinematics of linkages 134 6.1.5 Description of the robot characteristics 135 6.1.6 Complexity of the world model 135 6.2 Task specification 135 6.3 Assembly stability model 136 6.3.1 Quantitative approach to analyzing stability 139 6.3.2 Description of the two-block system 139 6.3.3 Equations of motion of the two-block system 140 6.3.4 Simulation of the two-block assembly 143 6.3.5 Equivalent parameters for transformation of a multi-body system to a single body 146 6.4 Designing for stability 148 6.4.1 Singularity and stability 148 6.4.2 Inertial effects and non-linearities 149 6.4.3 Generalized centroid 149 6.5 Relative stability 150 6.6 Summary 150
x Contents 7 Gross motion planning and collision avoidance 151 7.1 Introduction 151 7.2 Gross motion in RALPH 151 7.3 Robot motion planning problems 152 7.3.1 Findspace and findpath problems 152 7.3.1.1 The findspace problem 152 7.3.1.2 The find path problem 152 7.3.1.3 Compliant motion with uncertainty 154 7.3.2 Configuration space 154 7.3.2.1 Definition 154 7.3.3 Computation of the configuration space obstacles 155 7.3.3.1 Advantages and disadvantages of C-space 157 7.3.4 Path planning algorithms 157 7.3.4.1 Visibility graph 157 7.3.4.2 Hypothesize and test 157 7.3.4.3 Voronoi diagram 158 7.3.4.4 Cell decomposition 159 7.3.4.5 Potential field 161 7.4 The path planning algorithm 162 7.4.1 Outline of collision repelling algorithm 162 7.4.2 Creating the configuration space 163 7.4.2.1 Finding the position of the axis 164 7.4.3 Intersecting link j with the obstacles 164 7.4.3.1 Updating the bitmap 168 7.4.4 Finding the path for the arm 169 7.4.4.1 Creating the retracted free C-space 169 7.4.4.2 Creating the numerical potential field in ctee 172 7.4.4.3 Effects of varying (2 173 7.4.5 Moving the end-effector 173 7.4.5.1 Fixed arm configuration 173 7.4.5.2 Adjusting the hand configuration 174 7.5 Discussion 175 7.5.1 Evaluation of the proposed algorithm 175 7.5.2 Proposed improvements 175 7.5.3 Trajectory planning 176 7.6 Summary 177 8 Grasp planning 178 8.1 Introduction 178 8.2 Background 179 8.2.1 General model of grasping 179 8.2.1.1 Approaches to parallel jaw grasping 179 8.2.2 Choosing grasps and grasp parameters 180 8.2.3 Building integrated systems 181 8.3 World spatial relationships in grasping 181 8.4 Grasping concepts 181
Contents xi 8.4.1 Task requirement 182 8.4.1.1 Basic task attributes 182 8.4.1.2 Suitable task description 183 8.4.2 Feature reasoning for grasping 184 8.4.3 Geometric constraints in grasping 184 8.4.3.1 Parallelity and exterior grasp condition 184 8.4.3.2 Local accessibility 186 8.4.3.3 Mutual visibility 188 8.4.3.4 Finding the grasp point and approach direction 188 8.4.4 Grasp force and grasp evaluation 190 8.4.4.1 Analysis for a rigid gripper jaw surface 190 8.4.5 Analysis for a soft contact 192 8.5 Design and implementation 195 8.5.1 Task requirement 195 8.5.1.1 Manipulability 196 8.5.1.2 Torquability 198 8.5.1.3 Rotatability 198 8.5.1.4 Stability 199 8.5.1.5 Format for task description 199 8.5.2 Feature reasoning 200 8.5.3 Geometrical constraints 201 8.5.4 An example 205 8.6 Summary 205 9 Trajectory planning and control 9.1 Introduction 9.1.1 Cartesian space control 9.1.1.1 Joint space control 9.1.1.2 Joint interpolated control 9.2 Evaluation of trajectories 9.3 Other trajectory evaluation approaches 9.4 Background material 9.5 Robots with more than 3 degrees of freedom 9.6 Evaluation and analysis 9.6.1 Discussion 9.7 Summary 207 207 208 209 211 214 215 216 223 223 226 231 10 Considerations for generic kinematic structures 10.1 Introduction 10.2 Kinematic structures 10.2.1 Inverse kinematic solution 10.2.2 Jacobian 10.2.3 Degeneracy 10.2.4 Singularity 10.2.5 An example 10.2.6 Quartenion representation of rotations 233 233 234 234 235 237 237 238 244
xii Contents 10.3 Kinematic implementation 244 10.4 Kinematic analysis 253 10.5 Example 255 10.5.1 Link parameters for cylindrical robots 255 10.5.2 Inverse kinematics results 257 10.5.3 Singular points for RPP (cylindrical) robots 258 10.6 Pattern of kinematic behavior 263 10.7 Summary 264 11 Program synthesis and other planners 266 11.1 Introduction 266 11.2 Spanning vector for assembly directions and other applications 266 11.2.1 Determining control faces 269 11.2.2 Finding mating faces 269 11.2.3 Spanning vector 271 11.2.3.1 Mathematical background 271 11.2.3.2 Algorithm for finding spanning vector 273 11.2.4 Representation of spanning vector 275 11.2.5 Some examples of spanning vector 275 11.3 Precedence generation 276 11.3.1 Concept of assembly precedence 278 11.3.2 Assumptions for precedence 279 11.3.3 Spatial relationships and precedence 279 11.3.4 Find all mating faces 283 11.3.5 Determining the disassembly direction 284 11.3.6 Precedence algorithm 285 11.3.7 Interpretation of results 289 11.4 Fine motion planning 289 11.5 Program synthesis 290 References 292 Index 300
List of tables 1.1 Prominent robot languages 4 2.1 Notation of symbols 39 4.1 The structure of RALPH task-level commands 74 5.1 Table of varieties of noncontact sensors 105 5.2 Table of varieties of contact sensors 105 5.3 Table of ranked generic sensor combinations 111 5.4 Table of coordinate frames for generic sensor types 119 6.1 Typical values for the parameters used in the dynamic simulation of the two-block system 140 7.1 The joint categories for four robot body types 165 8.1 Task attributes for various tasks; on a scale of 0 to 2, where 0 means no requirement and 2 means strong requirement 182 8.2 Task attributes for mid level commands 194 8.3 Weightage of factors influencing manipulability 196 8.4 Weightage of factors influencing torquability 196 8.5 Weightage of factors influencing rotatability 198 8.6 Weightage of factors influencing stability 199 10.1 Link parameters for the GE-A4 robot 238
Acknowledgements I wish to thank my students at the Automation and Robotics Laboratory both past and present who worked with me on a number of research projects which resulted in the development of various chapters of this book. In particular, I thank Dr Tzong-Shyan Kang and Dr Jang-Ping Chen for working with me on the Feature Reasoning project; Shuchieh Yeh and Mehran Kamran (CAD Data and Symmetry project); Hsu-Chang Liu (Product Modeling project); Ashok Vishnu (Stability project); Aditi Dubey (Grasp Planner project); Jagtap Prashant (Precedence Generation project); Ellen Lin (Sensor Representation project); Sven Haberer (Gross motion planning project); and Andy Rist (Simulator project). Many of our laboratory staff members helped to proof-read and comment on the book. In particular, I thank Mehran Kamran, Jyh-Haw Kang, Hsu-Chang Liu, and Shuchieh Yeh for providing this kind of needed support. Finally, I wish to give special thanks to my family for their patience for all those hours I had to spend away from them developing the material for this manuscript. I appreciate their support. This material is based partially upon research supported by the National Science Foundation, under grant number DMC-8610417 and the North Atlantic Treaty Organization. Any opinions, findings, and conclusions or recommendations expressed in this publication are those of the author and do not necessarily reflect the views of the National Science Foundation or the North Atlantic Treaty Organization. B.O. Nnaji
Preface Machines will gradually become programmed using computers which have the knowledge of how the objects in the world relate to one another. This book capitalizes on the fact that products which are manufactured can be designed on the computer and that information about the product such as its physical shape provide powerful information to reason about how to develop the process plan for their manufacture. This book explores the whole aspect of using the principles of how parts behave naturally to automatically generate programs that govern how to produce them. The last decade saw tremendous work on how machines can be programmed to perform a variety of tasks automatically. Robotics has witnessed the most work on programming techniques. But it was not until the emergence of the advanced CAD system as a proper source of information representation about objects which are to be manipulated by the robot that it became viable for automated processors to generate robot programs without human interface. It became possible for objects to be described and for principles about how they interact in the world to be developed. The functions which the features designed into the objects serve for the objects can be adequately represented and used in reasoning about the manufacturing of the parts using the robot. This book describes the necessary principles which must be developed for a robot to generate its own programs with the knowledge of the world in the CAD system. The reader will be taken through the basic theory of automatic robot programming; and representation of product information in a CAD system suitable for making inference about the product planning. Issues of how a task is represented to the machine are addressed in detail including spatial relationships and bill of materials. This task specification is based on a more contemporary view of the CAD system. In addition, the planning at all stages of robot motion is also presented. This work represents over a decade of work in robotics and automated manufacturing. All the material presented has been tested and many of the principles are being used in many major industries in the world. This text should be suitable for advanced undergraduate and graduate students in industrial, mechanical, manufacturing, and electrical engineering, as well as computer science. The book should also be appropriate for a course on robot programming, machine programming, and robotic assembly. It can also serve as a major part of a course in robotics, or any other automated manufacturing course. Theory of Automatic Robot Assembly and Programming is also designed for practising engineers, computer scientists or managers of production function who desire to keep abreast of the technology or to use robots in their facility. The principles which govern automatic robot programming are well explained within the application area of assembly throughout the book.