Home
AdeptVision User`s Guide
Contents
1. ENABLE V HOLES cam hole information is needed ENABLE V BINARY cam processing to be in binary mode ENABLE V BOUNDARIES cam region analysis will be done ENABLE V BACKLIGHT cam dark objects on a light background DISABLE V PERIMETER cam data not needed DISABLE V DISJOINT cam must be disabled to get hole data DISABLE V RECOGNITION cam no prototype recognition DISABLE V TOUCHING cam we have only one part DISABLE V OVERLAPPING cam DISABLE V 2ND MOMENTS cam data not needed DISABLE V STROBE cam strobes are not being used DISABLE V MIN MAX RADII cam data not needed PARAMETER V MIN AREA cam 101 filter small areas PARAMETER V MIN HOLE AREA cam 100 y If necessary initialize the cycle time variables and load camera calibration IF re_init THEN CALL init program cam END Set the display mode to a graphics mode so we can s the processed image VDISPLAY cam 3 Start conveyor belt SIGNAL do belt Wait for part ready signal sig 1032 before beginning processing WAIT SIG di part ready SIGNAL do belt shut off conveyor belt TIMER 1 0 start timing operation Acquire an unprocessed image with camera 1 VPICTURE cam 2 Locate sample object calculate the tail point and object s rotation CALL line line tailx taily obj rot good part Call return program and get next part if point is not found Adept
2. n 45 Processing Windows 45 Modeling ss 46 OBDIOCIFINGS 25529 6 4 eh x ER X E 46 8 xc tn 46 Overview of Guidance Vision 46 Frames 2 2 5 59929 ssh 46 Things to Consider When Designing Your Workcell 47 Consistent Environment 47 Ease of Maintenance 2 25 2 25 47 Safety s s s s 47 lighting s s 47 Adept Vision User s Guide Rev A 35 Chapter 1 Introduction Introduction This section presents an overview of machine vision It gives a brief description of how a vision system sees and what equipment and software tools you have for extracting information about what the vision system sees What AdepiVision VXL Is Physical Equipment A basic AdeptVision VXL system consists of An Adept controller equipped with a vision processor board e A robot or motion device optional e One or more cameras e A graphics based option that includes e A high resolution color monitor e An AT compatible keyboard e A trackball or other pointing device NOTE The AdeptWindows PC software and a user supplied PC can be substituted for the graphics based option In addition your system will probably contain special lighting equipment and camera mounting equipment This vision system is generally integrated with parts delivery systems and other user supplied equipment to fo
3. 115 Location Array ac nominal and Real Array ac config 116 Adept Vision User s Guide Rev A 111 Chapter 7 Introduction Introduction This chapter describes the data generated during the calibration process This data includes a calibration array and perspective transformations and for robot related calibrations a camera to robot transformation This data can be saved on disk and later read from disk See LOAD STORE Calibration Data Menu on page 108 and LOADAREA V2 on page 82 for details Vision Calibration Array 112 The fundamental result of camera calibration is that the appropriate information is specified to the vision system using the VPUTCAL program instruction This information is in two parts the vision calibration array and the perspective transformations The perspective transformations are described in the next section The vision calibration array is used by the vision system to determine which physical camera to use when taking a picture the type of camera used normal or shuttered and the camera acquire mode full frame or single field The other entries in the calibration array are not used directly by the vision system One such entry is the code for the calibration method array index 2 This code indicates which method was used to create the calibration for example camera only fixed mount camera or link 2 mounted camera Also the link number that the camera is mounted on
4. 230 Program Header and Variables Declarations 230 Set the Camera Environment 231 Acquire an Image and Start Processing 232 Locate the Object and Begin Inspections 233 Output the Results 240 Further Programming Considerations 242 The Complete Inspection Vision Program 243 The Main Program inspect part 243 Subroutine lineline 250 Subroutine init program 252 Subroutine Write vwin 253 Adept Vision User s Guide Rev A 225 Chapter 13 Introduction Introduction This chapter details the development of an AdeptVision VXL program The program includes vision instructions that were presented in the last two chapters as well as other V program instructions As you go through this example remember that we are not attempting to present the most efficient vision inspection application We are attempting to present examples of vision instructions in a simple straightforward context This chapter assumes that you are familiar with basic V programming All the commands presented in this example are detailed in the V Language Reference Guide or the AdeptVision Reference Guide This chapter develops a basic inspection application Chapter 14 develops a robot guidance vision application Application Development Strategy 226 We recommend that vision in
5. and orientation of the part in world coordinates Transformation to cam 1 is generated by the Advanced Camera Calibration Utility Program and loaded by the utility LOADAREA V2 on the Adept Utility Disk IF NOT DEFINED grip trans THEN If it is necessary to reteach the grip trans transformation the existing grip trans transformation must be deleted at the system prompt by typing oD EL ETEL GRIP TRANS before executing this program DETACH 0 Detach robot so pendant can be used YPE Using the pendant place the gripper on the part to pick it up YPE Once the robot is in position Hit COMP PWR on the pendant PROMPT and hit return on the keyboard Sret Adept Vision User s Guide Rev A 257 Chapter 14 Using a Fixed Mount Camera HERE obj loc grip trans ATTACH 0 Reattach robot END SET part loc obj loc grip trans Complete transformation to pick up spart part loc should have pitch of 180 Check by typing LISTL part loc APPRO part loc 50 Approach part by 50 mm BREAK Stop robot MOVE part loc Move to part BREAK CLOSEI Close gripper or turn on vacuum DEPART 50 Move part up 50 mm BREAK END The location variables in the preceding code are calculated as follows to cam 1 is the camera calibration transformation for virtual camera 1 vis loc is the vision location returned by the VL
6. Using the ObjectFinder 0 000 Performing Correlation Matches 0 0 Creating a Correlation Template Matching a Correlation Template Training and Using Prototypes 0 0004 Creating Prototypes 2 001 Training Additional Instances Editing Prototypes 0 Preview Window Zoom Buttons 2 ee ls sls Message Window 2 0004 Edit Buttons 4 kk ook o ooo Editing Operation Data Box Edge Region Data Boxes Edge Region Radio Buttons Prototype Training Hints 0 SUDPrototypes 1 Prototype Parameters ss Setting Prototype Parameters Verify percent AdeptVision User s Guide Rev A 181 Chapter 12 Effort level 4 4 4 sir o RA 197 Min max area a a 197 Limit position 0 00 aa 197 Edge weights 0 eee es 197 Assign cameras 0 eee sss 197 Using Prototypes oss 197 Recognizing a Prototype 198 Prototype Relative Inspection 198 Prototype Relative Part Acquisition 199 Prototype Model Switches and Parameters 200 Performing Optical Character Recognition 202 Training an OCR Font sss s 202 Fo
7. XB E Using the pendant YPE Once the robot is in position Hit PROMPT and Hit return on the Keyboard Detach robot HERE obj loc grip trans ATTACH 0 E ND o ET part loc grip trans transformation the deleted at the system prompt EL GRIP TRANS before executing this program so pendant can be used place the gripper on the part to pick it up COMP PWR on the pendant Sret Reattach robot obj loc grip trans Complete transformation to pick up part part loc should have pitch of 180 Check by typing LISTL part loc APPRO part loc 50 Approach part by 50 mm BREAK 262 Stop robot AdeptVision User s Guide Rev A Chapter 14 4 Axis SCARA Robot with Camera on Link 2 MOVE part loc Move to part BREAK CLOSEI Close gripper or turn on vacuum DEPART 50 Move part up 50 mm BREAK END Figure 14 3 Link2 Coordinate Frame Figure 14 4 shows the link transformation link2 that was calculated by the preceding program instructions The program instruction HERE creates a transformation in world coordinates that represents the current tool tip RZ jt 4 removes any rotation of joint4 from the resulting transformation TRANS jt 3 removes any quill extension from the transformation Note the preceding program and Figure 14 4 assume that a NULL TOOL is invoked If a NULL TOOL is not used then the link transformati
8. Image Acquisition Parameters Table 8 2 describes briefly the parameters that primarily influence how AdeptVision VXL sees regions in the field of view Complete information on each parameter is available in the AdeptVision Reference Guide Appendix A gives a brief description of all the parameters available to AdeptVision VXL The parameter DISP CAMERA determines how many virtual cameras will have their arrays of switches and parameters displayed Adept Vision User s Guide Rev A 131 Chapter 8 Using Parameters Table 8 2 Image Acquisition Parameters Parameter Effects VMAX AREA Sets a value for the largest object in pixels the system will process Useful if a large object is in the same field of view as the object you are interested in The setting of VSUBTRACT HOLES affects this parameter Must be greater than or equal to V MIN AREA Applies only to boundary analysis and models ObjectFinder prototype and OCR V MIN AREA Sets a value for the smallest object the system will attempt to process Useful for ignoring small objects you are not interested in and filtering out noise Must be greater than or equal to V MIN HOLE AREA and less than or equal to V MAX AREA The setting of V SUBTRACT HOLES is considered when comparing area values Applies only to boundary analysis and models ObjectFinder prototype and OCR V MIN HOLE AREA Sets a value for the smallest hole in pixels in an obje
9. 1 Verify percent and effort level are prototype parameters that will have meaning only when you begin using prototypes These two prototype parameters along with the other prototype and system parameters are discussed later in this chapter Adept Vision User s Guide Rev A 191 Chapter 12 Training and Using Prototypes 12 Select New example gt New Example and follow steps 5 through 7 to train at least five additional examples of the prototype Orient the part differently during each training session After training each additional example the program will prompt you to Select a corner in the new example b Select the corresponding corner in the existing prototype Click on Done when you have selected the two corners c The system will attempt to fit the new example to the existing prototype If the match is successful a blue outline will be overlaid on the existing prototype If the outline and the prototype match click on Yes If the match is unsuccessful you will have to select different features or additional features to match or abandon the example 13 When you have finished training examples select Done gt Done 14 The prototype model now exists only in vision memory It must be stored to disk so it can be retrieved for future use Activate the monitor window and store the prototype using the VSTORE command See page 206 for details Editing Prototypes 192 If you are not in the prototype train
10. Assign cameras Any cameras you will be using to attempt recognition of a given prototype must be assigned to that prototype Using Prototypes In the previous section we learned how to create prototype objects This section will show you how to use those prototypes Adept Vision User s Guide Rev A 197 Chapter 12 Training and Using Prototypes 198 Recognizing a Prototype In order for the system to recognize a prototype the following steps need to be taken 1 The prototype must be loaded into vision memory using the VLOAD command 2 The camera calibration that was in effect when the prototype was trained must be loaded 3 The system switches V BOUNDARIES and V RECOGNITION must be enabled After an image containing prototype objects has been acquired the individual prototypes can be removed from the vision queue using the VLOCATE instruction The syntax for VLOCATEing a prototype is VLOCATE cam virt 2 proto_name proto_loc cam virt is the virtual camera whose queue holds objects recognized as matching the specified prototype Default 1 2 indicates that a particular object is to be removed from the vision queue proto_name is the prototype you are looking for must have been loaded to vision memory proto loc receives a transformation that defines the object s location in the field of view Once an object has been recognized and removed from the queue you will be able to retrieve all the VFEAT
11. For robot mounted camera wait for motion to stop The appropriate amount of delay should be used for the particular robot and camera mounting bracket being used IF mount THEN DELAY 0 2 BREAK END Determine the vision coordinate frame relative to the robot coordinate system L19 CASE mount OF VALUE 0 Fixed mount camera IF cal type 1 THEN SET vis frame NULL Camera only calibration zH SE SET vis frame to cam camera END VALUE 2 Camera on link 2 HERE pic loc Determine current location DECOMPOSE jt 1 pic loc Extract joint positions SE link2 HERE INVERSE TOOL RZ jt 4 TRANS jt 3 SET vis frame link2 to cam camera VALUE 4 Camera on link 4 SET vis frame HERE INVERSE TOOL to cam camera END L04 Take pictures until part is found or five pictures have been taken npics 0 DO VPICTURE camera IF part 2 THEN VLOCATE camera Spart vis loc ELSE VLOCATE camera 2 part vis loc END npics npics 1 UNTIL VFEATURE 1 OR npics gt 5 If object was found form location of object in world coordinates Otherwise return NULL location and error message IF VFEATURE 1 THEN Adept Vision User s Guide Rev A 335 Appendix G adv cam u
12. 0 283 Using VPICTURE With Different Frame Stores 283 Using VDISPLAY With Different Frame Stores 284 Sample Code for a High Speed Inspection 284 The High Speed Trigger 286 Performing Frame Relative Inspections 287 Blob Relative Inspection 287 Prototype Relative Inspection 4 289 Frame Relative Inspections Using VDEFTRANS 290 Using a Vision Guided Tracking Conveyor 292 AdeptVision User s Guide Rev A 281 Chapter 15 Performing High Speed Inspections Performing High Speed Inspections What is High Speed The definition of high speed will vary considerably from application to application Generally an operation that inspects parts on the order of several per second is considered a high speed operation The physical limit of AdeptVision VXL is one picture every 16 milliseconds The actual rates you will be able to achieve depend on how complicated your inspections are the level of operator feedback required and the accuracy of positioning of the inspected parts You will achieve the highest inspection rates when you follow these guidelines 1 Always acquire an unprocessed image VPICTURE mode 2 2 If you are displaying the image display a frozen image If you are displaying graphics use the special mode described in the section Using VDISPLAY With Different Frame Stores on page 284 3 Ena
13. 96 ADJUST binary THRESHOLD live binary C7 de he a ee es ADJUST vision WINDOW processing boundaries io he tire pe oer ge ER CALIBRATE the CurrentCameraMenu 97 CALIBRATE the Current Camera Menu Options 101 Camera only uh ob sho Mele da da ot OU Stationary camera with robot General method cn sa aa x x TOT Calibration object attached to robot general case 102 Downward looking stationary camera using vacuum gripper 103 Object on moving belt robot downstream of camera 103 Robot mounted camera Robot can touch calibration object 104 Robot mounted camera Known dot location 105 Robot mounted camera Non contact method 105 Link 2 mounted camera Robot can touch calibration oblact 106 Link 2 mounted camera Known dot location oo 107 Link 2 mounted camera Non contact method single config a oe 107 Link 2 mounted camera Non contact method lefty righty 108 LOAD STORE Calibration DataMenu 108 Adept Vision User s Guide Rev A 87 Chapter 6 LOAD STORE Calibration Data From To Disk Menu Options 109 LOAD calibration data from disk 109 STORE calibration data to disk 4 109 88 AdeptVision User s Guide Rev A Chapter 6 Introduction Introduction Operation of the Advanced Camera Calibration program AD
14. AdeptVision User s Guide Rev A Using DEVICE With Vision INTOCUE ON s i s s a eii oe mn eR RF OE Re Oe ERA 346 The DEVICE Instruction With Vision 346 Defective Pixel Compensation 349 Writing a Table Entry s s 349 ReadingaTableEntry 350 Resetting a Table Entry 350 Error Information sls ns 350 Example Changing the Number of Virtual Frame Stores 351 Adept Vision User s Guide Rev A 345 Appendix I Introduction Introduction The V DEVICE instruction can be used to e Reconfigure frame store sizes and memory allocations e Read modify camera interface registers e Read modify camera model parameters e Read modify vision constants Write read table of bad pixels for defective pixel compensation CAUTION When DEVICE is used to change frame store sizes or memory allocations all models prototypes templates fonts AOI definitions and VTRANS transformations are deleted and vision is reenabled The DEVICE Instruction With Vision The format for using DEVICE with the vision system is DEVICE type unit type unit Status command status command arg value input output Must be 4 to select vision Set to 0 Real variable that will be assigned an error code by the vision system 1 success any other value failure use ERROR to display error text 1 read modify fra
15. SIDE EFFECTS None OCAL ang t Xt yt dxt dyt top line data OCAL ang b xb yb dxb dyb bottom line data OCAL obj ang angle between sides of the object jOCAL aoil aoi2 status TRUE assume lines are found Place the two line finders aoil aoi2 VDEF VDEF VEIN VEIN 1001 2001 AOT aoil 1 110 80 40 30 150 AOT aoi2 1 110 50 40 30 30 D LINE 1 top aoil D LINE 1 bottom aoi2 Check to see if both lines were found IF N END Extract ang ang dxt dyt dxb dyb 250 Gl OT top 0 AND bottom 0 THEN status FALSE return failure in status GOTO 100 the line finder data top 4 bottom 4 COS ang t SIN ang t COS ang b SIN ang b o Adept Vision User s Guide Rev A Chapter 13 The Complete Inspection Vision Program xt top 2 yt top 3 xb bottom 2 yb bottom 3 Calculate the rotation of the object obj ang ang b 180 ang t tool ang ang b obj ang 2 Calculate the intersection point numerator yb yt dxb xb xt dyb IF ABS dxt gt ABS dyt THEN fract dyt dxt f numerator fract dxb dyb x xt f y yt fract f ELSE fract dxt dyt f numerator dxb fract dyb y yt f x xttfract f END 100 Exit on failure Line Finder top N tool ang Computed Point ang b obj ang L
16. Schneider Optics Inc 285 Oser Ave Hauppage NY 11788 Phone 516 761 5000 Fax 516 761 5090 800 645 7239 Internet www schneideroptics com e mail info schneideroptics com High quality C mount lenses with very low distortion Toyo Optics 580 W Lambert Rd Suite H Brea CA 92821 Phone 714 529 4688 Fax 714 529 5766 Cosmicar C mount lenses extension tubes and accessories Third Party Suppliers Europe Table L 8 Mounting Hardware Suppliers Manufacturer Product Line Lino Manfrotto amp Co Zona Industriale di Campese 36061 Bassano del Grappa Italy Phone 39 0424 555 855 Fax 39 0424 808 999 Magic Arms flexible fixturing for cameras lighting parts etc Rose Krieger GmbH amp Co KG Potsdamer Str 9 32423 Minden Germany Phone 49 571 93 350Fax 49 571 93 35 119 Modular mounting systems steel and aluminum round and square tube and clamp systems Table L 9 Lighting Suppliers Manufacturer Product Line Polytec GmbH Polytec Platz 1 7 76337 Waldbronn Gernamy Phone 49 72 43 60 41 73 Fax 49 72 43 69 944 Ring lights fiber optics and filters 366 AdeptVision User s Guide Rev A Appendix L Third Party Suppliers Europe Table L 9 Lighting Suppliers Continued Manufacturer Product Line Dolan Jenner Europe B V contact U S office for information Ring lights and fiber opt
17. Verify percent This parameter sets the percentage of total boundary length including holes that must be common to both the prototype model and the current region before recognition will be successful This parameter can be used in conjunction with the system parameter V MAX VER DIST to control Objects incorrectly recognized as matching a prototype e Objects matching a prototype that are not recognized Effort level Effort level affects recognition accuracy and processing speed Recognizing prototypes with few distinguishing features as well as recognizing prototypes among multiple overlapping objects will require higher effort levels and more processing time Min max area Changing the minimum area setting allows you to ignore noncritical features of an object Changing the maximum area setting allows you to isolate an area within a large object or ignore large noncritical areas within the field of view Limit position These parameters allow you to constrain the location and rotation variance an object can have from the prototype model and still be recognized Edge weights In some cases accuracy of prototype recognition can be improved by weighting an object s edges Important features of an object can be given a high weight unimportant features can be given a low weight Edge weights work in conjunction with verify percent to determine how closely an object must match the prototype model for successful recognition
18. on page 152 Training and Using Prototypes Prototype training is the process of creating prototype models of objects that you want the system to be able to recognize During prototype training you will e Create the prototype from a sample object You will provide a name for the prototype specify the camera take a picture specify the verify percent and specify the effort level Present multiple instances of the object to the system for training The system will average the data from these instances to create the vision model that it will use for recognition Creating Prototypes To create a prototype 1 Setthe switches and parameters to the settings that provide the best possible image Data provided by boundary analysis will be used to create the prototype model 2 Make sure the correct calibration data is loaded for the cameras you will be using CAUTION Changing camera settings calibration or lighting after you train a prototype will invalidate the prototype 190 Adept Vision User s Guide Rev A Chapter 12 Training and Using Prototypes 3 Select Models 2 Train prototype If no other prototypes are in vision memory you will be prompted for a proto type name If other prototypes are loaded you will be given the option to train additional instances of loaded prototypes or to create a new prototype 4 If the Select the prototype pop up window is presented click on lt new prototype gt 5 Inthe Ty
19. AdepiVision User s Guide Version 13 0 Part Number 00963 03300 Rev A July 1998 er 150 Rose Orchard Way San J ose CA 95134 USA Phone 408 432 0888 Fax 408 432 8707 mm CO YA Otto Hahn S trasse 23 44227 Dortmund Germany Phone 49 231 75 89 40 Fax 49 231 75 89 450 adept 41 rue du Saule Trapu 91300 Massy France P hone 33 1 69 19 16 16 Fax 33 1 69 32 04 62 technology inc The information contained herein is the property of Adept Technology Inc and shall not be re ds in whole or in part without prior written approval of ed Technology Inc The in ormation herein is subject to change without notice and should not be construed as a commitment by Adept Technology Inc This manual is periodically reviewed and revised Adept Technology Inc assumes no responsibility for any errors or omissions in this document Critical evaluation of this manual by the user is welcomed Your comments assist us in prepara tion of future documentation A form is provided at the back of the book for submitting your comments Copyright O 1992 1998 by Adept Technology Inc All rights reserved The Adept logo is a registered trademark of Adept Technology Inc Adept AdeptOne AdeptOne MV AdeptThree AdeptThree XL AdeptThree MV PackOne PackOne MV HyperDrive Adept 550 Adept 550 CleanRoom Adept 1850 Adept 1850XP A Series S Series Adept MC Adept CC Adept IC Adept OC Adept MV AdeptVision AIM VisionWar
20. Camera Calibration The Vision Transformation i Fixed Mount Camera Ande mallon Robot Mounted Camera Transformation Loading Vision Calibration Data Vision Calibration Overview Compatibility Why Calibrate a Camera Millimeter to Pixel Ratio When Do Need the Millimeter to Pixel Ratio Perspective Distortion Corrections When Do Need the Perspective Distortion Conecitons Camera to Robot Transformation Fixed Mount Cameras Robot Mounted Cameras Before You Start Calibrating Your Cameras What You Need Calibration Object What You Need to Do Things to Remember Important Stuff When to Recalibrate the Camera Virtual Cameras i Resolution Accuracy and Repeatability Using the Calibration Program ADV_CAL V2 ADV_USER V2 LOADAREA V2 AdeptVision User s Guide Rev A Table of Contents 57 58 59 59 60 60 60 60 61 61 61 61 s 61 62 63 65 66 66 66 68 s 59 69 70 70 70 71 71 71 73 73 13 74 74 77 78 81 82 Table of Contents 6 The ADV_CAL Menus Introduction Calibration Status blipiay Main Menu Main Menu Options Exit to system monitor LOAD STORE calibration data facile disk ADJUST camera image settings CALIBRATE the current camera TEST current calibration camera to jobo COPY calibration between virtual cameras CHANGE virtual and or physical cameras
21. The Vision Transformation Guided vision is essentially the process of putting together several pieces of information to create a transformation A transformation defines a location a motion device can move to You must be familiar with the Adept transformation value before you can program motion device applications See the V Language User s Guide and the V Language Reference Guide The next two sections summarize this transformation for fixed mount and for robot arm mounted cameras Chapter 14 presents detailed information Fixed Mount Camera Transformation The transformation value to pick up an object using a fixed mount camera has the following possible elements e The location in world coordinates of the origin of the vision reference frame This location is created by the camera calibration routine and stored in the to caml array e The offset and rotation of the part relative to the vision reference frame These values are calculated using different vision tools described in Chapters 9 12 Adept Vision User s Guide Rev A 61 Chapter 3 62 Motion Devices and Calibration The offset from the center of the quill flange to the center of the actual gripping location TOOL transformation See the description of the TOOL program instruction in the V Language Reference Guide for details Robot Mounted Camera Transformation The transformation value to pick up an object using an arm mount camera has the following elem
22. This chapter describes ways of getting the camera to see the critical features of an object The AdeptVision VXL system provides several options for filtering the information supplied by the camera so that the system analyzes only the features of an object that are important to you Other options help you produce the clearest most usable image possible Chapters 9 12 show you how to gather information from the images that this chapter shows you how to acquire A thorough understanding of this chapter will help you make efficient consistent use of the information the system returns to you and the tools the system makes available to you When the AdeptVision VXL system is started the vision window is displayed in the upper right corner of the screen Most of the options described in this chapter can be performed from the vision window pull down menus This menu system provides you with an excellent development environment that allows you to experiment with the system options before you begin programming vision applications Use this environment to become as familiar as possible with the effects of all the commands and options before you begin programming You will write more efficient and accurate programs when you fully understand the vision processes NOTE The ObjectFinder tool cannot be accessed through the vision window s pull down menus However there is a fully supported menu driven interface available for the ObjectFinder in the
23. 287 289 290 292 293 294 294 294 295 295 298 301 302 302 311 312 312 314 317 318 318 Diffuse Back Directional Structured Strobe Filtering and Special Effects Polarizing Filters Color Filters Calibrating With HPS Data Introduction Using HPS Data Calibration Target Dimensions The Calibration Target Using a Custom Calibration Sheet Camera Calibration Programs adv cam sample ac refine vloc adv cam user and adv tr peint j adv cam user adv tr point Pulnix TM 1001 Configuration Introduction Overview Switch Settings DSP NSP Switch NRM ASY Switch Shutter Control For Asynchronous Reset Mode For Normal Synchronous Mode EVI Board Settings Camera Cables ks Changes to Frame Buffer Size T Blob Analysis Using the Pulnix TM 1001 Adept Vision User s Guide Rev A Table of Contents 318 319 319 319 319 320 320 320 321 322 322 325 326 327 329 330 331 333 333 336 339 340 340 341 341 341 342 342 342 343 343 343 344 15 Table of Contents I muc 16 Using DEVICE With Vision Introduction 4 The DEVICE Instruction With Vision Defective Pixel Compensation Writing a Table Entry Reading a Table Entry Resetting a Table Entry Error Information Example Changing the Number of Virtual Frame Stores Memory Allocation Vision Window Menus T
24. 31 31 31 31 32 32 32 33 33 35 36 Table of Contents What AdepiVision VXL Is Physical Equipment Controller and Vision Processor Robot or Motion Device Graphics Terminal User Equipment What AdepiVision VXL Does Vision Basics Pixel m The Camera magias Suidae Resolution Summary of Software Tools Boundary Analysis Rulers Inspection Widows i Finder Tools Processing Windows Modeling ObjectFinder Overview of Guidance Vision Frames Things to Consider When Designing Your Workcell Consistent Environment Ease of Maintenance Safety Lighting 2 Installation Setting up the Hardware Installing the Controller Attaching Cameras and Strobes Strobe Compatibility Cameras Supported by AdspiVision VXL Panasonic GP MF602 Panasonic GP MF702 Pulnix TM 1001 Sony XC 77 Mounting Cameras Setting up the Software System Memory 6 Adept Vision User s Guide Rev A 36 96 38 38 38 39 40 41 41 43 43 45 45 45 45 45 45 46 46 46 46 47 47 47 47 47 49 90 90 90 6x 91 31 51 51 52 52 53 54 55 Getting Started Vt Syntax Conventions Virtual Cameras What Is a Virtual Camera How Are Camera Numbers Assigned Why Use Virtual Cameras Motion Devices and Calibration Calibration Motion Device Calibration Start up Calibration
25. 85 79 80 78 77 74 38 35 40 35 39 74 SS 64 60 57 40 65 EE 58 56 66 38 60 IE 64 67 66 Figure 8 5 Grayscale Representation of Sample Matrix By comparing these three figures we can make several generalizations about grayscale vs binary operations 1 Binary operations use edge data based on only two states black or white Grayscale operations use edge data based on values in the range 0 127 Grayscale operations examine 3 x 3 sections of pixels when calculating edges This means binary operations will require less processing time Binary operations look for edges based on an absolute intensity value This means that if the overall brightness of the image changes binary operations may see the image differently the edges will move based on the increasing or decreasing brightness of the image Grayscale operations look for the relative difference between intensity values in an image Thus if the overall brightness changes the relative brightness should remain similar and the system will see edges in the same place In general grayscale operations will be less affected by ambient lighting changes than will binary operations Since grayscale operations look for intensity differences you will be able to identify edges that occur in more than one brightness range In the examples above if there had been an intensity change in the range of 80 to 110 binary operations would have considered the entire area to be whit
26. Adept Vision User s Guide Rev A 81 Chapter 5 LOADAREA V2 LOADAREA V2 Description Load area vision calibration data Disk File Name LOADAREA V2 Program Name load area Function Restore area vision calibration by reading data from a disk file created by the Adept area vision calibration program Details The file LOADAREA V2 is a public file located on the Adept Utility Programs disk This file contains the subroutine load area This subroutine can be called from an application program to read and restore the calibration data for the area vision system It reads the calibration information from a disk file that was created by the Adept area vision calibration program a area_cal The subroutine load area enables the vision software restores the taught state of the lighting threshold and backlight switch and restores the camera location and scaling information Procedure Hua Place the Adept Utility Disk in disk drive A 2 To load the file LOADAREA V2 enter the following command load a loadarea 3 Use the system program editor to enter your application program into the system memory or load your program from a disk file Make sure the program calls the subroutine load area see below 4 Place a diskette to receive your application program in disk drive A 1 Omit this step if the program file is already on your hard drive 2 Or use the correct drive and path specification if the file is stored on
27. Chapters 14 and 15 give the details of creating and using these frames Adept Vision User s Guide Rev A Chapter 1 Things to Consider When Designing Your Workcell Things to Consider When Designing Your Workcell While designing your workcell keep in mind the following considerations Consistent Environment For your results to be consistent and predictable the environment in which you operate the vision system must be as consistent and predictable as possible Avoid major changes in temperature and humidity Mount the cameras so that a constant distance is maintained from the camera to the object Isolate the cameras as much as possible from sources of vibration Ease of Maintenance Periodic maintenance and repair of your system will be necessary Design your workcell to allow access to all the vision system components as well as any other equipment you may have installed Safety If there is any moving equipment such as part feeders or conveyor belts design the workcell so that all normal operations can take place without the operator coming into dangerous contact with the moving equipment Lighting Consistent lighting is critical to accurate predictable vision operations Appendix D lists the advantages and disadvantages of various lighting systems Before you select and install a lighting system experiment with different lighting setups and see which one provides you with the most consistent results These results s
28. Feature processing involves detecting object edges and fitting line segments polylines and circular arcs to the edges Line segments are fit to edges up to a corner then a new line segment is started Circular arcs are fit to sequences of line segments that approximate an arc AdeptVision User s Guide Rev A Chapter 11 How Does Object Recognition Work The image features line segments and circular arcs are combined in various ways to form the features that are used for matching These feature combinations are called pairs since they usually result from the combination of two image features The same image processing operations are performed during both training and recognition except that more passes of filtering are done during training to improve the features that are incorporated into the object model s More sophisticated filtering is used only during training since training is not time critical Hypothesis Generation Feature Classes The pairs that are produced by the image processing step are collated into feature classes defined by the planning stage The feature classes are combinations of features that are similar to the combinations of features found in the object model s after planning Proposals A combination of image features with specific characteristics that are likely to correspond to a special location on the object model provides a hypothesis on the position and orientation of that object in the image H
29. The effects of changing V THRESHOLD are shown in Figure 8 11 Switch and Parameter Example 5 We have lowered the threshold value to the point where the system does not see a sufficiently high intensity in the pixels at the tail end of the object to consider them part of the object Therefore they are considered background and an image like the one in Switch and Parameter Example 5 is produced Note that changing V THRESHOLD for a binary image is similar to changing V EDGE STRENGTH for a gray edge image see Switch and Parameter Example 3 The settings for Switch and Parameter Example 5 are Switches v V BINARY v V BOUNDARIES v V BACKLIGHT Parameters 307200 V MAX AREA 16 V MIN AREA 100 V OFFSET 90 V GAIN 8 V MIN HOLE AREA 20 V THRESHOLD 0 V 2ND THRESH 20 V EDGE STRENGTH Vision Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 11 Switch and Parameter Example 5 138 Adept Vision User s Guide Rev A Chapter 8 Examples of Switch and Parameter Settings Figure 8 12 Switch and Parameter Example 6 shows the effect of disabling V BACKLIGHT What we have told the system is that we now have light objects on a dark background This causes the system to consider areas of darkest intensity as background In the image below the processor considers the object to be the background and vice versa Remember in VDISPLAY mode 3 the object is rendered as white and
30. V THRESHOLD 125 132 134 138 300 system parameter 96 V TOUCHING 200 297 Variables global 99 ac configl real array 116 ac dot loc location 105 107 ac nominal location array 99 116 ac offset location array 100 ac offset location array 115 to cam location array 115 VCORRELATE 189 VDEERAOI 153 VDEFFONT 202 VDEETRANS 290 frame relative inspections using 290 VDELETE 210 VDISPLAY 121 133 displaying the image 121 examples 122 syntax 122 with the two frame stores 284 VDISPLAY using with different frame stores 284 Verify percent 197 AdeptVision User s Guide Rev A 383 Index prototype parameter 197 VFEATURE 146 146 149 178 217 223 302 304 example 148 setting values 302 values 147 values and interpretation 147 for ObjectFinder Models following VSHOW 304 for ObjectFinder Recognition In stances following VLOCATE 303 for prototype recognition instances following VLOCATE 306 for prototype recognition instances following VSHOW 308 viewing values 302 VFIND ARC instruction 239 VFIND LINE 166 237 array 167 example 168 VFINDER 178 179 188 216 Viewing parameters 295 switch settings 129 294 Viewing VFEATURE values 302 Virtual cameras 59 74 assigning anumber 60 Virtual frame stores 152 and DEVICE 346 defining 346 Virtual vs physical cameras 118 VISION vision switch 298 Vision basics 41 calibration 71 things to remember 73 calibration array 112 changes other 24 coordin
31. You will now be asked to select a virtual and physical camera All calibration options will be performed on this virtual physical camera pair One of the program menu selections lets you change the selected physical or virtual camera When a physical and a virtual camera have been selected a menu of program options will be displayed Select the desired option and follow the prompts displayed on the monitor Make sure to use the LOAD STORE calibration data from to disk option to store the calibration data that you want to use later After exiting the calibration program you can delete it from system memory with the commands KILL 4 DELETE a adv_cal a 1 The disk drives in your system controller are described in your Adept controller user guide Adept Vision User s Guide Rev A 79 Chapter 5 ADV_CAL V2 NOTE The above command will delete the camera to robot calibration data from memory unless the variables are referenced by some other program in memory that is not being deleted To restore the calibration data from the disk you can do one of the following Use the LOAD STORE calibration data from to disk menu option in the ADV_CAL V2 program see LOAD STORE Calibration Data From To Disk Menu Options on page 109 e Create an application program that calls the subroutine load area This subroutine is contained in the file LOADAREA V2 on Adept Utility Disk 1 See LOADAREA V2 on page 82 for details 80
32. feature classes 175 feature based refinement 23 hypothesis generation 175 improved handling of complex parts 23 model creating 187 deleting 210 displaying 209 file format 178 loading 207 locating the object 216 planning 187 215 processing 183 renaming 210 storing 206 training 213 object recognition 174 pose refinement 179 proposals 175 recognition strategies 23 24 seeds 175 setting the system switches and parameters 186 stage one learning VFINDER mode 4 178 stage two learning VFINDER mode 3 179 training and using 186 using 188 when to use it 183 OCR 202 examples 205 fonts defining 202 naming convention 202 planning 203 training 202 model processing 183 recognizing characters 205 verifying text 205 when to use it 185 Offset video 96 Ops vision window menu 356 Index Optical character recognition OCR 185 202 Organization 25 Origin point of 119 Other vision changes 24 Other Computer Controlled Devices 30 Output the results 240 Overspeed Protection 31 Overview of guided vision 46 Overview of Pulnix TM 1001 configuration 340 P Panasonic GP MF602 51 GP MF 702 51 PARAMETER command 131 Parameter examples 131 Parameters 131 131 132 and virtual cameras 131 list of 298 Prototype model 200 setting 131 294 V 2ND THRESHOLD 132 V EDGE STRENGTH 125 132 V GAIN 132 V MAX AREA 132 V MAX PIXEL VAR 143 V MIN AREA 132 V MIN HOLE AREA 132 V OFFSET 132 V THRESHOLD 125 132 viewing 295 Parameters an
33. if applicable can be found in array index 3 Entries such as these specifically array elements 2 3 9 10 and 11 are guaranteed to be valid only if the calibration is loaded using an official Adept program See LOAD STORE Calibration Data Menu on page 108 and LOADAREA V2 on page 82 for details Table 7 1 lists the elements of the calibration array for area camera AdeptVision systems This information also is listed in the AdeptVision Reference Guide Table 7 1 Elements of Vision Calibration Array Index Name Value or Meaning 0 calibrated Calibration status 0 gt Uninitialized 1 gt Initialized for calibration 2 gt Okay calibrated 1 cam num Physical camera number AdeptVision User s Guide Rev A Chapter 7 Vision Calibration Array Table 7 1 Elements of Vision Calibration Array Continued Index Name Value or Meaning 2 method Calibration method and link mounting used 1 gt Camera only 2 gt Stationary object in hand 3 gt Downward mounted with vacuum gripper 5 gt Robot mounted 6 gt Robot mounted known position 7 gt Robot mounted no touch 16 gt Link 2 mounted touch part 17 gt Link 2 mounted known dot location 18 gt Link 2 mounted no touch 19 gt Link 2 mounted no touch lefty righty 64 gt General stationary 65 gt Fixed camera object on belt 3 link num Link nu
34. prototype planning for example Models Train prototype List prototypes Show prototype Rename prototype Delete prototype List fonts Show font Rename font Delete font List templates Show template Rename template Delete template Initiate training of a new or existing prototype model List all prototypes currently in vision memory Display a prototype model Rename a prototype model not a file of prototypes Delete a prototype of vision memory not from disk List all fonts currently in vision memory Display a loaded font Rename a font not a file of fonts Delete a font from vision memory not from disk List correlation templates in vision memory Display a template currently in vision memory Rename a template not a file of templates Delete a template from vision memory not from disk See the description of VLOAD for details on loading vision models to vision memory AdeptVision User s Guide Rev A 357 Appendix K Vision Window Menus The Switches menu shows all the vision switches A Y next to the switch indicates the switch is enabled for the selected camera selected under the Cam frame menu Switches Y BINARY Y BOUNDARIES Y FIT ARCS Y RECOGNITION Y BACKLIGHT Y DISJOINT TOUCHING OVERLAPPING SUBTRACT HOLE STROBE CENTROID 2ND M
35. 1 For current part numbers please contact Adept s Application Questions hotline or see the Adept on Demand Web Page To order you can contact Intercon 1 at Intercon 1 Vision Products Box 1C Merrifield MN 56465 800 237 9576 Voice 218 765 3900 FAX See the Adept MV Controller User s Guide for cabling details Changes to Frame Buffer Size When using the Pulnix TM 1001 camera you must change the frame buffer size to support the large format camera Do this by using the CONFIG_C utility to change the frame buffer size to 992 x 1024 There is a 1024 x 1024 setting However several lines of the CCD are used for synching purposes Therefore the 1024 x 1024 option will not work correctly AdeptVision User s Guide Rev A 343 Appendix H Blob Analysis Using the Pulnix TM 1001 NOTE The vision window will be compressed by 50 horizontally and vertically to keep the large format image on the monitor Blob Analysis Using the Pulnix TM 1001 344 When you perform blob analysis with the Pulnix TM 1001 the image is displayed somewhat differently than images acquired with other cameras The actual image acquired is 992x1024 but it is stored in a frame that is 1024x1024 this frame store size is specified using the DEVICE command This difference in size leaves a black band on the right and bottom edges of the vision window However any blob processing that is performed is clipped so that this black band is ignored
36. 6 Pulnix TM 1001 7 10 Reserved 11 15 Initially same as 0 18 pixel Index 1 8 of pixel compensation table used for filling in missing compensation pixels table 0 no pixel compensation Previous Adept vision calibration programs set the values of the v pitch and neg angle array elements to 180 and 1 respectively for most situations This practice can be overly restrictive and in some cases it is incorrect for the general calibration methods supported by the Advanced Camera Calibration program Therefore this program always sets these elements to 0 and 1 respectively This means a grip transformation which describes the orientation with which to approach a computed location must always be defined CAUTION A new grip transformation should be defined whenever new calibration data is computed Failure to use a valid grip transformation could cause the robot to run into the part or the work surface when moving to a location determined from a vision image Perspective Transformations These are not transformations in the normal V sense but are 3x3 arrays that can be used to transform a point from pixels to millimeters or vice versa For more information refer to the description of LOADAREA in the Instructions for Adept Utility Programs Also refer to the program ac refine vloc on page 331 and the description of the VPUTCAL instruction in the AdeptVision Reference Guide 114 Adept Vision User s Guide
37. AIM VisionWare module Several of the instructions presented in the following chapters are in abbreviated form to minimize confusion As you become more familiar with the instructions you will want to explore their full capabilities These instructions are detailed in the AdeptVision Reference Guide Physical vs Virtual Cameras 118 AdeptVision VXL allows you to establish several virtual cameras for each of your physical cameras as long as the total number of virtual cameras does not exceed 32 One of the most important things you will learn in the next three chapters is how to control what a camera sees You may find that you want to take several pictures of an object with each picture looking at the object in a different way Virtual cameras allow you to do this For example you might want your first AdeptVision User s Guide Rev A Chapter 8 Introduction picture of an object to look at the perimeter shape and your second picture to look at interior features of the object By establishing two virtual cameras for the physical camera looking at the object you can take both types of pictures of the object See Why Use Virtual Cameras on page 60 For the next two chapters we assume your system has only one camera and that virtual camera 1 has been assigned to it Therefore all references to a camera mean virtual and physical camera 1 The Point of Origin Many of the operations you will be learning specify coordinate poin
38. Guide Rev A Chapter 13 AUTO AUTO AUTO AUTO AUTO rnd_dist wi afdr_ibr last i rnd_act tul abr grul_ibr Smsg 19 Serr n ib lfdr ibr lun Initialize known values obj length 0 obj centx 85 obj centy 60 obj width 82 obj hgt 50 gvalue 10 poly angle 25 poly dist 19 rnd dist 17 do belt 31 di part_ready 1032 good_part TRUE circ_ diam cam 1 10 Set the Camera Environment An important principle to remember when programming AdeptVision VXL is that when any program makes changes to the switches and parameters associated with a given camera those changes are in effect for any further pictures taken by Developing the Program Code define image buffer regions object center X within 12mm object center Y within 12mm object width object height acceptable graylevel variance correct angle of polygon edge correct dist from object center digital signal for conveyor belt digital signal for part ready assume the part is good correct diameter of circular hole virtual camera used for inspections that camera regardless of the program using the camera This means that all critical switches and parameters should be explicitly set at the beginning of each program Otherwise changes made by other programs running during the same session as your program may unexpectedly change critical switch parame
39. Interest AOI Defining an Image Buffer Region A image buffer region has the form AAAVVP where AAA is the number of the area of interest defined byVDEFR AOD VV is the virtual frame buffer and P is the number of the physical frame store The combination of virtual frame store and a physical frame store creates a virtual frame buffer which is the term most often used in Adept documentation If 000 is specified for the virtual frame buffer the most recently acquired picture is used Thus a virtual frame buffer needs to be specified only when you want to place a tool in an image other than the one most recently acquired The next program example defines aoi12 a rectangular AOI that is centered at X 150mm Y 150mm is 90mm wide and 120mm high and is rotated 45 shape 1 cx 150 cy 150 wd 120 ht 90 rot 45 aoi12 12000 VDEF AOI aoil2 shape cx cy wd ht rot Figure 10 3 shows the area of interest defined by the preceding code The program example that follows the figure defines an image buffer region that uses aoil2 Adept Vision User s Guide Rev A 155 Chapter 10 Defining a Tool Area of Interest AOI cx 150 VDEF AOI 12000 1 150 150 120 90 45 Figure 10 3 Sample Area of Interest In order to use this AOI with a virtual frame buffer other than the one an image was most recently acquired into it must identify a virtual frame buffer The fol
40. Rev A Chapter 7 Camera to Robot Transformation Camera to Robot Transformation During camera to robot calibration the relationship of the camera coordinate frame to that of the robot is established The relationship is recorded in the global location variable to cam v where v is the current virtual camera number The calibration transformation is meaningless for camera only calibration Therefore a transformation is not defined by that method The elements to cam x to cam y and to cam rz in the calibration array provide only a partial representation for the calibration transformation see below Adept recommends that you not use these array elements which are supplied only for compatibility with previous programs Instead you should use the calibration transformation defined by the camera calibration program See Chapter 14 for details on using the calibration transformation in an application program Miscellaneous Global Variables There are three global arrays of variables defined during the calibration procedure that may be used by application programs These variables are not saved on disk when the calibration program stores calibration data to disk Location Array ac offset For calibrations where the tool s Z axis is parallel to the camera Z axis and the tool can rotate about its Z axis the program automatically determines any offset of the tool tip including TOOL from the tool s real axis of rotation
41. SELECT different robot ADJUST Camera Image Menu ADJUST Camera Image Menu Options RETURN to the main menu ADJUST physical CAMERA ATTRIBUTES live video ADJUST video GAIN and OFFSET live video ADJUST binary THRESHOLD live binary ADJUST vision WINDOW processing boundaries CALIBRATE the Current Camera Menu i CALIBRATE the Current Camera Menu Options f Camera only Stationary camera with icboi Genenl metodi Calibration object attached to robot general case Downward looking stationary camera using vacuum gripper Object on moving belt robot downstream of camera Robot mounted camera Robot can touch calibration object Robot mounted camera Known dot location Robot mounted camera Non contact method Link 2 mounted camera Robot can touch calibration Seidel Link 2 mounted camera Known dot location Link 2 mounted camera Non contact method single donid Link 2 mounted camera Non contact method lefty righty LOAD STORE Calibration Data Menu LOAD STORE Calibration Data From To Disk Menu Options 2 LOAD calibration data from disk STORE calibration data to disk Adept Vision User s Guide Rev A 87 sa 89 89 90 90 90 91 2 92 92 93 94 94 95 95 95 95 96 96 96 A 7 101 101 101 102 103 103 104 105 105 106 107 107 108 108 109 109 109 Calibration Results Introduction Vision Calibration Ami Perspective Transfor
42. Vision User s Guide Rev A Chapter 13 The Complete Inspection Vision Program IF NOT good_part THEN TYPE CALL return_part END if The object was not found or was incorrectly positioned Use the coordinates of the object tail to set a processing window IF good part THEN win ibr 3000 AOI 3 VDEF AOI win ibr 1 tailx obj width 2 taily VWINDOW cam win ibr Remove the object available to the VFEATURE function VLOCATE cam 2 obj loc Check to see if a part was successfully located IF NOT VFEATURE 1 TH N E TYPE A CALL reject_part good_part FALSE END hole was not located END if good part Check that there are two holes in the part IF good part TH IF VFEATURE EN 17 lt gt 2 THEN obj width45 obj hgt 15 obj rot from the vision queue and make its characteristics TYPE The part has an incorrect number of holes CALL reject part good part FALSE END Remov Remove th largest IF good part THI VLOCATE ca the holes from the queue and check EN m 4 1 rnd loc END if good part hole the circle from the queue Save the circle s centroid X and Y values cent circlex VFEATURE 2 cent circley VFEATURE 3 The next hole removed will be the polygon VLO
43. an object Complete information on each switch is available in the AdeptVision Reference Guide Appendix A summarizes all the switches available to AdeptVision VXL Table 8 1 Image Acquisition Switches Switch Effects V BINARY If disabled it will affect the operation of VPICTURE modes 1 1 and 2 in the following ways For VPICTURE modes 2 and 1 it will start a VEDGE operation immediately following the completed acquisition into the virtual frame buffer For VPICTURE mode 1 a VEDGE operation is performed prior to processing of the image In this case the VPICTURE instruction will not complete until after the first stage of processing the computation of run lengths is complete Therefore the run lengths are computed on the binary edge image which is the result of VEDGE see Appendix B in the AdeptVision Reference Guide for details on how vision run lengths are generated In each case above the choice of edge operation to be performed cross gradient or Sobel is determined by the value of the system parameter V EDGE TYPE And the edge strength threshold is given by the VEDGE STRENGTH system parameter VBACKLIGHT The system has no way of differentiating between background and object unless you tell it which one is dark and which one is light This switch tells the system which intensity is background and which intensity is object If the switch is set incorrectly the system will process the background rather than the obje
44. are covered in the V Language Reference Guide 240 Adept Vision User s Guide Rev A r E Chapter 13 Developing the Program Code Output the data to the vision window Smsg 0 Averag Smsg 1 SENCODE avg time msg 2 msg 3 SENCOD Processing Time Number of units passed E num_parts Get the mm pixel ratio and divide the screen into 20 lines VGI El TCAL cam cal hgt cal 16 480 inc hgt 20 Screen height in millimeters Start at the first line and indent text one lin x inc y inc FOR i 3 TOO STEP 1 Write text results to vision window CALL write vwin cam x y ytinc IF Serr lt gt THEN TYPE Serr EXIT END Ira Z 9g y Smsg i Serr Output error message Before we look at the next object let s set V THRESHOLD if it hasn t been set recently We ll use timer 2 to decide when to change thresholds In this case we will reset the threshold every half hour 1 800 seconds Read timer 2 to see how long it has been since the threshold was set If it exceeds 30 minutes ttime TIMER 2 IF ttime 1800 THEN VWAIT VAUTOTHR tarray IF tarray 0 THEN PARAM set V THRESHOLD and restart timer 2 ET ER V THR END TIMER 2 za ESHOLD make sure the processor is idle tarray l1 Adept Vision Use
45. are to be displayed and not erased during successive VPICTURE operations VDISPLAY Examples Display a live grayscale image with any user generated graphics overlaid 122 Adept Vision User s Guide Rev A Chapter 8 VDISPLAY Displaying the Image VDISPLAY 1 1 Display a graphical representation of the image including user generated graphics VDISPLAY 3 Executing VDISPLAY From the Menu Pull down the Display menu and select the display mode you want to use If you select any of the live or frame modes and want a graphics overlay pull down the menu again and select an overlay A Y indicates the option is selected Cam Frame Pict Ops Status Models Switches Resolution v Live grayscale WDISP 1 1 Live binary DISP 0 1 Grayscale frame VDISP 1 1 Binary frame VDISP 2 1 Graphics only VDISP 3 Static graphics VDISP 4 Graphics overlay VDISP 1 Static overlay YDISP 2 Figure 8 2 Display Mode Options Using the Different Display Modes Live Modes Use the live modes for setting up your vision cell These modes allow you to immediately see the effects of changes to e Camera lens focus Camera lens aperture e Lighting Objects in the field of view e Changes to parameters such as gain offset and threshold AdeptVision User s Guide Rev A 123 Chapter 8 Binary vs Grayscale Operations Frame Frozen Modes An acquired image in a frame store is referred t
46. attempting any access to a VFEATURE value your program should contain an instruction to check the success of the last VLOCATE or VSHOW instruction Here is an example F VFEATURE 1 THEN strategy when object found ELSE strategy when no object found END Tables B 1 and B 2 provide information about ObjectFinder models following VLOCATE and VSHOW Tables B 3 and B 4 provide information about prototype recognition instances following VLOCATE and VSHOW 302 Adept Vision User s Guide Rev A Appendix B Establishing VFEATURE Values Table B 1 VFEATURE Values and Interpretation for ObjectFinder Recognition Instances following VLOCATE Index Information Unit Switch Parameter Effects 1 Whether the last VLOCATE T F As long as a VLOCATE operation instruction was successful or not successfully removes objects from the vision queue this value will be returned as true 1 and information about that object will be available through VFEATURE access 2 Center X mm After a VLOCATE X and Y are the center of the bounding box 3 Center Y of the instance relative to the image and rZ 4 Center Z is the orientation relative to the X axis If the instance has the same orientation as the 5 Rotation about X 9 model then the same orientation as the model is returned The orientation of the 6 Rotation about Y models and instances are both relati
47. camera with a 1 1 000 shutter speed will be required for high speed inspections 16 Image processing and acquisition is faster with field acquires than with full frame acquires 17 Make the object size only as large as necessary in the field of view so that required resolution is achieved 18 Use low resolution virtual frame buffers whenever possible Using the Two Frame Store Areas AdeptVision VXL provides you with two frame store areas into which you can store two different images Each frame store area has two image buffers raw grayscale data is stored in one buffer and binary data is stored in the other Using the two frame stores you can acquire an image in one area while you are processing the image in the other area This operation is referred to as ping ponging see Figure 15 1 Frame Store 1 When an image Frame Store 2 is being acquired here GrayScale an image GrayScale Value is being Value Buiier processed here gt gt Buffer Binaiy When an image Binary Value is being Value Buffer acquired here Buffer an image is being a _ processed here Figure 15 1 Ping Pong Frame Grabbing Using VPICTURE With Different Frame Stores In order to use both frame store areas we will need to examine more of the VPICTURE syntax for a high speed inspection Adept Vision User s Guide Rev A 283 Chapter 15 Performing High Speed Inspections VPICTURE cam virt FALSE acq_ib
48. can then be used by multiple tools Also as we will see in Chapter 15 tools may be placed relative to reference frames generated by other tools An area of interest definition allows you to easily reposition groups of tools based on new image data An AOL is a relative Cartesian reference that must be combined with an absolute origin point before it can be used The AOI also includes shape and orientation components The absolute origin to which an AOI is relative is a virtual frame buffer When you combine an AOI with a virtual frame buffer you get an image buffer region that identifies the exact size shape orientation and location for a vision tool Frame Stores 152 A vision system has two physical frame stores These physical frame stores are numbered 1 and 2 For the standard vision processor the frame store size is 1024 x 512 pixels Systems with the AdeptVision Enhanced VXL Interface option have 1024 x 1024 frame stores This frame size can be further divided into virtual frame buffers as described next Any frame store area not used as a virtual frame buffer is used as a scratch area for tools such as Correlation Templates Virtual Frame Buffers The standard vision system can be divided into 2 4 12 or 16 virtual frame buffers A system configured for 2 virtual frame buffers uses one 640 x 480 virtual frame buffer area in each physical frame store A system configured for 4 frame stores uses two 512 x 480 virtual frame buf
49. closest point on the object perimeter from the centroid 45 The angle of a line drawn to the farthest point on the object perimeter from the centroid 46 The shortest distance from an object s mm centroid to a point on its perimeter 47 The greatest distance from an object s mm V CENTROID and VMIN MAX RADII centroid to a point on its perimeter must be enabled 48 The angle of the object s major axis V CENTROID and V 2ND MOMENTS axis of least inertia must be enabled 49 Major radius of the ellipse along the mm axis reported in VFEATURE 48 50 Minor radius of the ellipse mm perpendicular to the axis reported in V FEATURE 48 Blob Allocation The number of blobs that can be stored in the various vision queues is dependent on vision memory AdeptVision VXL sets the maximum vision memory that can be used by the vision queues as well as other objects that reside in vision memory This default allocation can be changed to suit your particular application with the DEVICE instruction Appendix I lists the default allocations and how to change them VFEATURE Example Here is an example of boundary analysis using the values returned by VFEATURE If we wanted to know the perimeter of our sample object the number of holes in that object and the center of the circular hole the following program code would provide that information Display the results of the next VPICT
50. components of the vision transformation to cam vis loc and grip trans Fixed Mount Camera Object Location Grip Transformation grip trans Vision y Transformation el Z vis loc e A o No Vision Coordinate System Camera Calibration Transformation to cam Figure 14 1 Fixed Mount Camera Vision Location AdeptVision User s Guide Rev A 259 Chapter 14 Using a Fixed Mount Camera Figure 14 2 shows all the components of the vision transformation plus the resulting compound transformation part loc Fixed Mount Camera Part Acquire Transformation Including Grip Trans part loc Grip Transformation rip trans Object grip Location Vision Location Transformation EP QE Y 1 Camera Calibration Transformation to cam Figure 14 2 Fixed Mount Camera Vision Transformation 260 Adept Vision User s Guide Rev A Chapter 14 4 Axis SCARA Robot with Camera on Link 2 4 Axis SCARA Robot with Camera on Link 2 The instructions in this section will work for a camera mounted on SCARA XY XYZ or XYZ Theta type robots The strategies shown in this section can be extended to define a guided vision application with the camera mounted on any axis of a motion device When you use a robot mounted camera the camera calibration transformation defines the location of the vision coordinate frame relative to the
51. devices User supplied equipment such as conveyor belts systems equipped with motion devices NOTE The minimum processor memory requirement for an AdeptVision system with one vision board is one processor with 4 MB of memory Adding memory in a single CPU configuration will not affect vision performance Adding an auxiliary processor and assigning the vision processing to that CPU could significantly increase vision performance Robot or Motion Device Adept controllers may control robots or other motion devices This manual describes vision guidance for the standard Adept robots The principles described for these robots can be generalized to any other motion devices your system may be using Graphics Terminal The graphics monitor displays all vision system input and output The system supports multiple windows the monitor can display output from a camera input from other cell control equipment and operator input and prompts The graphics monitor is used along with the keyboard and trackball to develop vision applications This equipment also can be set up to function as the operator interface during execution of vision applications 38 AdeptVision User s Guide Rev A Chapter 1 What AdeptVision VXL Is User Equipment You can communicate with the controller using serial digital and analog I O The serial channels support RS 232 RS422 and RS485 protocols which are generally used for printer output and communication wit
52. e Linear rulers are faster and more accurate than arc rulers e Linear rulers are faster and more accurate when they are nearly vertical or horizontal to the vision coordinate system e Fine edge rulers are the most accurate Finder Tools The finder tools allow you to locate lines points and arcs within the field of view The finder tools operate on raw grayscale data This allows you to look for edges in an unprocessed image In some cases the finder tools will tell you all you want to know about an image in other cases you will perform further processing based on what you discovered with the finder tool In all the finder tools you will specify an area of interest within which to search for the line point or arc The behavior of all three finder tools is similar so we will describe only the line finder VFIND LINE in detail The syntax for the other finder tools is described in the AdeptVision Reference Guide The simplified syntax for VFIND LINE is VFIND LINE cam virt data ibr cam virt isreplaced with a virtual camera number the V EDGE STRENGTH parameter from this camera will be used by the line finder The default value is 1 data is replaced with a variable name for the data array into which you want the results of the search placed The values placed in the array are described in VFIND LINE Array on page 167 ibr is replaced with an image buffer region specifying a rectangular AOI shape 1 is the most comm
53. e No Shutter One Field acquire e Synchronous Shutter One Field acquire e Asynchronous Shutter One Field acquire Select One Field to use half resolution images only 242 lines high If the camera has been set to operate in shuttered mode select one of the shuttered options shuttered operation requires one field acquires See the description of VPUTCAL in the AdeptVision Reference Guide for details on these features For all but the noncontact camera to robot calibration methods calibration will be performed with perspective compensation The resulting calibration will be accurate even if the work surface is not perpendicular to the camera s line of sight However since use of this kind of calibration slows down some vision tools you will be given the option of using an approximation called basic calibration instead A basic calibration simply uses millimeter per pixel and X Y ratio numbers for the center of the screen as the calibration numbers for the whole image In many cases this may yield sufficient accuracy To help in deciding when a basic calibration will be acceptable the maximum error in position displacement to be expected when using a basic calibration as opposed to the perspective calibration is displayed 98 Adept Vision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu In addition after a perspective calibration is computed a large white arrow resembling two lines converging at the hor
54. each switch is available in the AdeptVision Reference Guide Table A 1 Vision Switches Switch Default Effects V2ND MOMENTS The 2nd moments of inertia and best fit ellipse are calculated when this switch is enabled along with V CENTROID and V BOUNDARIES The data is reported in VFEATURE 48 50 VSUBTRACT HOLES is ignored V BACKLIGHT v The system has no way of differentiating between background and object unless you tell it which one is dark and which one is light This switch tells the system which intensity is background and which intensity is object If the switch is set incorrectly the system will process the background rather than the object Disable the switch for a dark background and enable it for a light background Binary processing only V BINARY v If disabled it will affect the operation of VPICTURE modes 1 1 and 2 in the following ways For VPICTURE modes 2 and 1 it will start a VEDGE operation immediately following the completed acquisition into the virtual frame buffer For VPICTURE mode 1 a VEDGE operation is performed prior to processing of the image In this case the VPICTURE instruction will not complete until after the first stage of processing the computation of run lengths is complete Therefore the run lengths are computed on the binary edge image which is the result of VEDGE see Appendix B in the AdeptVision Reference Guide for details on how vision run lengths are generated
55. effort level 197 limit position 197 min max area 197 verify percent 197 parameters vs system parameters 196 recognition reverifying 201 training 190 training hints 196 when to use it 184 Prototype relative inspection 198 289 part acquisition 199 Prototypes 197 and camera calibration 190 and guided vision 199 creating 190 deleting 210 displaying 209 editing 192 loading 207 recognizing 198 reference frame 199 renaming 210 storing 206 using 197 Pulnix TM 1001 camera 52 connectors and switches 341 Q Quick frame grab 120 121 380 AdeptVision User s Guide Rev A R Raw binary rulers 164 READ 39 Reading a table entry 350 Reading and Training for Users and Operators 28 Recalibrate the camera when to 73 Recognizing prototypes 198 Rectangular area of interest shapes 154 Reference frames 46 from prototypes 199 Related manuals 26 Renaming prototypes 210 vision models 210 Resetting a table entry 350 Resolution 43 calculating 312 defined 43 formula for 314 Resolution factors 44 Resolution accuracy and repeatability 74 Resolution formula for 314 RETURN to the main menu 95 RIGHTY versus LEFTY configuration 322 Robot mounted camera calibration 62 known dot location 105 non contact method 105 robot can touch calibration object 104 transformation 62 Robot number changing current selection 94 Robot or motion device 38 Robotic Industries Association 28 Robotic safety 28 Robot mounted camera 70 Ruler speed and accu
56. enabled 18 Time secs Time spent acquiring processing and recognizing an object Time for first region includes all time from V PICTURE or VWINDOW until placing in queue For remaining regions time is from when one region is placed in the queue until the next object is queued 19 Flags bit Bit field True False Bit 2 Defined when V HOLES is enabled Indicates that the region VLOCATEd helped to verify the recognition of the object All other bits are reserved for future use 20 First clear grip Returns number of first clear grip if grips have been defined with V DEEGRIP 21 When an object is located all the Holes can be located within a bounded holes within the object are given a region or within a hole in a bounded reference number This value is the region These values keep track of where reference number of the current hole you are in the locating sequence Holes are Also holds true for holes within numbered consecutively for each region holes 22 Parent number of holes referenced in VFEATURE 21 23 Number of the virtual camera that located this object 24 26 Not used 27 Number of bounds in the prototype In prototypes holes are included In or region regions they are not 28 39 Not used 40 Total area of all holes pixels Calculation is influenced by V MIN HOLE AREA 41 Outer perimeter of the object mm V PERIMETER must be enabled AdeptVision User s Guide Rev A 307 Appendix
57. for a camera that points vertically downward with its position fixed with respect to the robot base This procedure requires that a vacuum gripper be attached to the robot that the gripper point along the Z axis of the tool and that the gripper can be rotated about this axis After you place the calibration object in the field of view and place the vacuum gripper on the object near its center the robot will automatically move the object around in the image area The robot will move to the nominal location when each picture is taken Since this method uses a vacuum gripper the calibration object may be a disk dot or other simple shape as described earlier Object on moving belt robot downstream of camera This method is for calibrating cameras that are looking at a conveyor belt upstream of the robot s work area The conveyor belt must be calibrated with the Conveyor Belt Calibration and Testing Program on the Adept Utility Disk and the belt calibration must be stored on disk This calibration method can accommodate a camera at any angle as long as it can adequately view the surface of the belt and is always at the same location with respect to the robot base robot mounted cameras must be at their calibration location Also there must be a pointer attached to the end effector of the robot This method uses one of the Adept calibration disks This calibration procedure involves manually moving the calibration disk to differen
58. for details on how the first through third digits are used shape defines the shape of the area of interest The most common shapes are shown in Figures 10 1 and 10 2 See the AdeptVision Reference Guide for a complete description of the shapes diml dim4 define the size and location of the area of interest angl ang2 define the angular measurements of the area of interest Figure 10 1 shows the most common shapes for rectangular tools Shape 1 is the normal shape for rectangular areas such as windows line finders point finders etc Shape 2 is the normal shape for rulers Figure 10 2 shows the most common shapes for arc shaped tools Shape 5 is the normal shape for arc finders and shape 9 is the normal shape for circular inspection windows P dim3 Shape 1 E dim3 P pos lt angl dim1 dim2 dim1 dim2 The illustration shows a shape with a positive value for dim3 Negative values are allowed in which case dim1 and dim2 will be on the opposite side of the rectangle Adept Vision User s Guide Rev A 153 Chapter 10 Defining a Tool Area of Interest AOI dim3 gt lt dim3 dimt dim2 gt angl dim1 dim2 Figure 10 1 Rectangular Area of Interest Shapes dim3 dim4 Shape 5 dimt dim2 Shape 7 dim3 dim4 dim3 dim4 Shape 9 angi ang2 Figure 10 2 Arc Shaped Area of Interest Shapes 154 Adept Vision User s Guide Rev A Chapter 10 Defining a Tool Area of
59. from the center of the gauge to the center of a mark arc rad DISTANCE gauge center mark center Place an arc ruler 162 Adept Vision User s Guide Rev A Chapter 10 Arc Rulers VDEF AOI 4000 7 centx centy arc_rad 0 170 200 VRULERI cam virt 2 testdata 4000 Make sure the correct number of transitions were found IF testdata 0 lt gt 10 GOTO 100 Print the inspection data FOR x 3 TO 9 STEP 2 act dist testdata x 1 testdatalx pass act_dist gt min_dist AND act_dist lt max_dist TYPE S Distance from mark INT x 2 to mark TYPE INT x 2 1 is act_dist TYPE S This inspection IF pass THEN TYPE passed ELSE TYPE failed END END 100 TYPE No object found program stopped Figure 10 7 shows the ruler and transition points resulting from the preceding code Arc Ruler 5 testdata 3 Starting Point testdata 2 Edge transitions stored kg lem in testdata array PRESSURE Figure 10 7 Arc Ruler Example 1 This example could have been simplified by using the VRULERI parameter that specifies transitions in only one direction light to dark or dark to light see the AdeptVision Reference Guide Adept Vision User s Guide Rev A 163 Chapter 10 Ruler Types Ruler Types VRULERI provided us with the first example of a vision operation that can be performed on an unproce
60. how many pixels it takes to cover one millimeter of the image This is the millimeter to pixel ratio If the camera calibration program returns a millimeter to pixel ratio of 1 it means that 10 pixels will cover one millimeter of the image This information allows tools that measure distances between edges to return measurements in real world millimeters Figure 4 1 shows how a ruler tool would measure a small square In this example a binary ruler finds two edges that are 5 pixels apart The camera calibration program has calculated a millimeter to pixel ratio of 0 1 Therefore the calculated width of the square is 0 5 millimeters The ruler detects edges at these 2 points The millimeter to pixel ratio has been calculated as 0 1 Since there are 5 pixels between the 2 edges the distance measured is 5 millimeters 5 0 1 Figure 4 1 Millimeter to Pixel Ratio AdeptVision User s Guide Rev A 67 Chapter 4 Why Calibrate a Camera 68 Notice that in the binary image the accuracy of measurement is determined by the area covered by one pixel The object being measured is actually slightly larger than five pixels However binary tools can make measurements only at pixel boundaries so 0 5 is the most accurate measurement that can be made in this example If greater accuracy is needed a smaller field of view or higher resolution camera will be needed This will place more pixels over a given area NOTE The algorithm use
61. inner r 290 50 75 45 15 xoffset data 10 donut shaped x offset for gt y offset for outer radius inner radius yoffset outer r inner r cam AOI center of arcfinder re center of arcfinder re Adept Vision User s Guide Rev A circ ibt lative to part lative to part Chapter 15 Frame Relative Inspections Using VDEETRANS cam 1 circ_ibr 2000 Set switches and a parameters ENABLE V BOUNDARIES ENABLE V CENTROID ENABLE V MIN MAX RADII Define AOIs VDEF AOI circ_ibr shape xoffset yoffset outer r inner r Locate the object using blob finding VPICTURE cam VWAIT VLOCATE cam name Define a vision transformation with centroid and angle of max radius VDEF TRANS VFEATURE 42 VFEATURE 43 VFEATURE 45 Using the defined AOI which will now be part relative use an arc finder placed over the hole to extract the hole data VFIND ARC cam data circ_ibr Type result for radius TYPE Hole Radius data 4 Zero the vision transformation VDEF TRANS VDISPLAY cam 0 1 Adept Vision User s Guide Rev A 291 Chapter 15 Using a Vision Guided Tracking Conveyor Using a Vision Guided Tracking Conveyor An upstream fixed mount camera can be used to locate parts on a moving conveyor belt The following basic steps must be taken to use vision with a movi
62. is calculated if this switch is enabled V HOLES If this switch is enabled the statistics gathered for objects will also be gathered for the holes in the objects VSHOW EDGES If this switch is enabled the vision system will display the attempts at fitting primitive edges to an object VSHOW BOUNDS If this switch is enabled the vision system will display the results of attempting to fit lines and arcs during boundary analysis This switch is useful during development as it allows you to see how the vision processor performs boundary analysis V FIT ARCS Enabling this switch causes the system to attempt arc fitting during boundary analysis If arcs are unimportant in your images processing time will be improved by disabling this switch Table 9 2 Boundary Analysis Parameter Parameter Default Range Effects V MAX PIXEL VAR 1 5 0 8 Sets the maximum pixel variation allowed when the system fits a line or an arc to a region boundary Adept Vision User s Guide Rev A 143 Chapter 9 Boundary Analysis Instructions Boundary Analysis Instructions In order to make boundary analysis data available you must e Enable the system switch V BOUNDARIES along with any other switches required for the data you are interested in e Acquire a processed image using VPICTURE You can also acquire an unprocessed image and then use a VWINDOW instruction to process a limited area of the image This procedure is described in Pro
63. is correctly placed 7 N AE NV 2 2 s 3 PRESSURE kg cm Figure 10 6 Sample Gauge Face The code that would examine the gauge follows Specify the pass fail limits min_dist 21 max_dist 23 Display the results of the next VPICTURE in live mode with a graphics overlay Adept Vision User s Guide Rev A 161 Chapter 10 Arc Rulers cam virt 1 VDISPLAY cam virt 1 1 Make sure hole information is gathered ENABLE V HOLES cam virt ENABLE V BOUNDARIES cam virt DISABLE V DISJOINT cam virt ENABLE V CENTROID cam virt Set the minimum area parameters to filter noise PARAMETER V MIN AREA cam virt 60 PARAMETER V MIN HOLE AREA cam virt 50 Acquire and process an image VPICTURE cam virt 1 VWAIT Remove the largest object the center hole from the queue I VLOCATE cam virt 2 1 gauge center Gl Check for successful VLOCAT IF NOT VFEATURE 1 THEN GOTO 100 END Get the X Y values of the gauge center centx VFEATURE 2 centy VFEATURE 3 Remove the topmost region from the queue This will be one of the graduation marks VLOCATE cam virt 2 6 mark center Check for successful VLOCAT Gl IF NOT VFEATURE 1 THEN GOTO 100 END Use the function DISTANCE to calculate the distance
64. is not mounted vertically it may not be appropriate to use HPS data See Appendix E for details on using HPS data Robot mounted camera Robot can touch calibration object This method is for the general case of the camera being mounted on the robot The camera may be mounted on any link except link 1 The mounting must be such that the camera can be moved around in both X and Y directions parallel to the work surface The calibration transformation determined is the relationship between the robot link the camera is mounted on and the vision coordinate frame CAUTION The camera should be mounted such that it cannot A make contact with the robot outer link or equipment attached to the robot If you use a vacuum gripper the calibration object may be a disk dot or any other simple shape as described in Calibration Object on page 71 To start the calibration process place the vacuum gripper on the calibration object near its center The gripper must be centered carefully if the vision window is small The program will then automatically determine the precise location of the calibration object 104 AdeptVision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu If you use a pointer you should use an Adept calibration disk with a tapered center hole If the tool has theta capability you will be asked to place the pointer in the center of the disk four times each time with the tool rotated 90 degrees from the previ
65. mode key switch is in the MANUAL position and the HIGH POWER light on the CIP is illuminated When Manual mode is selected motion can only be initiated from the Manual Control Pendant MCP Per EN 775 150 10218 the maximum speed Adept Vision User s Guide Rev A 29 Introduction Safety of the robot or motion device is limited to less than 250 mm per second 10 inches per second in Manual mode Additionally if an MMSP option is installed work that requires close approach to the installation or robot can be performed such as teaching points program verification or troubleshooting operations NOTE The MCP has two operating modes In MANUAL mode the MCP can initiate a robot motion In AUTOMATIC mode the MCP can be used to display information or data entry by the operator Other Computer Controlled Devices In addition Adept systems can be programmed to control equipment or devices other than the robot or main motion device The program controlling these other devices may cause them to operate unexpectedly Make sure that safeguards are in place to prevent personnel from entering the workcell when a program is running Adept Technology highly recommends the use of additional safety features such as light curtains safety gates or safety floor mats to prevent entry to the workcell while HIGH POWER is enabled These devices can be connected using the emergency stop circuitry Trapping Pinch Points b Figure 1 Impac
66. multiple disjoint regions that comprise a single object Some things to remember when using the ObjectFinder are ObjectFinder is easier to train than the prototype finder If you are trying to decide which one to use Adept recommends starting with the ObjectFinder ObjectFinder recognition is processing intensive If you have only a few simple objects you might be able to recognize them more efficiently with other vision tools e All vision tools can be applied to recognized objects e VFEATURE data is available for recognized objects e ObjectFinder recognition enables you to recognize objects that are touching or slightly overlapping or are formed from disjoint regions Adept Vision User s Guide Rev A 183 Chapter 12 Introduction Why Use Correlation In correlation a template is created from a region of pixels in a processed image This template is then compared to a section of the field of view to see if the pixel pattern is repeated in that section Correlation is used when you want to know how well objects in the field of view match a template of an ideal part Correlation is normalized so that additive or multiplicative changes in lighting do not affect the correlation results Unlike ObjectFinding or prototype matching correlation matches must have the same orientation as the template Why Use Prototype Recognition 184 Similar to the ObjectFinder the most common use for prototype recognition is identifying objects
67. numbers When you calibrate a camera virtual and physical camera are paired If a camera views work surfaces that have different camera to surface distances for example a robot mounted camera that is moved to view areas of the workcell with different heights a different camera calibration should be used for each camera to surface distance This is done by calibrating a different virtual camera for each camera to surface distance See Chapter 5 and Chapter 6 for additional details on calibrating virtual cameras See Chapter 8 for information on using virtual cameras Resolution Accuracy and Repeatability Vision system resolution is a function of the size of the field of view vision systems do not have any intrinsic resolution specification The smaller the field of view the higher the system resolution The larger the field of view the lower the resolution When designing your system you must ensure a field of view size that will meet your minimum resolution requirements The various elements of the vision system influence the accuracy and repeatability of results returned at a given resolution If you have selected components and viewing distance that give you 001 millimeter resolution but those components introduced 5 error you will not accurately measure to a resolution of 001 millimeters If the quality of lighting at the work surface changes and objects appear different to the vision system you will not make repeatable meas
68. object is in the same field of view as the object you are interested in The setting VSUBTRACT HOLES affects this parameter Must be greater than or equal to V MIN AREA V MAX PIXEL VAR 1 5 0 Sets the maximum pixel variation allowed when the 8 system fits a line or an arc to a region When set to 0 lines and arcs are not fit to the boundary saving time when only centroids perimeters etc are needed V MAX TIME 5 1 Sets the maximum time the vision system will spend 999 trying to recognize a region Measurements are in pixels Adept Vision User s Guide Rev A 299 Appendix A List of Parameters Table A 2 Vision Parameters Continued Parameter Default Range Effects V MAX VER DIST 3 1 Sets the degree of accuracy of 16 boundary to prototype model fitting required for a successful prototype recognition V MIN AREA 16 1 Sets a value for the smallest object the system will 1 048 576 attempt to process Useful for ignoring small objects you are not interested in and for filtering noise The setting of VSUBTRACT HOLES is considered when comparing area values Must be greater than or equal to VMIN HOLE AREA and less than or equal to VMAX AREA V MIN HOLE AREA 8 1 Sets a value for the smallest hole in an object that the 1 048 576 system will process The setting of V SUBTRACT HOLES is considered when comparing area values Must be smaller than or equal to V MIN AREA V MIN LEN 40 0 Set
69. object will be viewed in 36 different orientations each time rotated 10 degrees from the previous These actions are done to compensate for any offset that exists between the cen ter of the quill and the center of the disk When the test is completed the results are displayed as the difference between the computed position based on the calibration data and the actual position as measured by the robot The deviation is expressed in millimeters inches and camera pixels COPY calibration between virtual cameras This selection is used to copy the following information from one virtual camera to another e The calibration array e The camera to robot transformation that is an element in the array to caml which is described later in this chapter e Status information regarding the camera to robot transformation AdeptVision User s Guide Rev A 93 Chapter 6 Main Menu The nominal robot location that is elements in the arrays ac nominall and ac configl which are described later in this chapter e The offset from the calibration point to the center of the robot quill that is an element in the array ac offset which is described later in this chapter The settings of several system switches for example V BACKLIGHT and V HOLES e The values of several system parameters for example V FIRST COL and V LAST COL CHANGE virtual and or physical cameras This selection is used to change the current virtual
70. of the processing has been done with pairs which are points that have been derived from combinations of curve features Now the actual line segments and circular arcs are considered Max Verify Dist and Verify Percent The distance between points on the model curves and the corresponding points along the image curves must be within max verify dist The portion of the corresponding curves that is within max verify dist is multiplied by the weight associated with the feature during training The weighted sum for the verified portion of all model curves is computed and divided by the theoretical maximum which is the weighted sum of the arc lengths of all the features in the model This ratio is rounded down to the nearest integer and reported as the verify percent for the model instance 176 AdeptVision User s Guide Rev A Chapter 11 Automatic Learning Automatic Learning Automatic learning is implemented in two stages The first stage uses the found instances to generate intelligent weights for the features This is called auto multi instance mode since it is essentially an automated way of performing the manual multi instance training procedure which was available in AdeptVision VXL version 12 1 and VisionWare version 3 2F The second stage of automatic learning is designed to work with the final model and feature weights It dynamically but progressively adjusts the ordering on the feature classes which determines the order of propo
71. part of robot or motion workcell design installation operator training and operating procedures Adept systems incorporate features to aid in constructing proper system safeguards These include flexible interface to emergency stop and manual mode circuitry See the Adept MV Controller User s Guide Safety Features on the Controller Interface Panel CIP The Controller Interface Panel CIP has two important safety features the HIGH POWER push button indicator and the EMERGENCY STOP switch See the Adept MV Controller User s Guide or call Adept Customer Service at the numbers listed in the Read Me First Folder WARNING Entering the workcell when the HIGH POWER light is on can result in severe injury This warning applies to each of the next three sections Computer Controlled Robots and Motion Devices Automatic mode Adept systems are computer controlled and the program that is currently running the robot or motion device may cause it to move at times or along paths you may not anticipate When the HIGH POWER light on the CIP is illuminated do not enter the workcell because the robot or motion device might move unexpectedly WARNING During Automatic Mode operations no person is allowed to enter or stay in the guarded space of the robot because death or serious injury can occur if a person is struck by the robot Manually Controlled Robots and Motion Devices Adept robots can also be controlled manually when the operating
72. practice New calibration data should be generated when changing from one type of AdeptVision system to another type of system Adept Vision User s Guide Rev A 91 Chapter 6 Main Menu 92 See LOAD STORE Calibration Data Menu on page 108 for details on loading and storing calibration data You will be returned to the main menu after the load or store process is completed ADJUST camera image settings This selection brings up a secondary menu with the options of adjusting physical camera settings setting the binary threshold setting the vision window boundaries and setting the video gain and offset See page 95 for full descriptions of these options CALIBRATE the current camera This selection displays a secondary menu that lists the different calibration methods More than one calibration method can be used for some camera mounting configurations Thus there are multiple menu selections for those camera mountings See page 101 for a full description of each menu option For all camera to robot calibrations if you have the High Accuracy Positioning System HPS option you can use HPS data for greater accuracy See Appendix E for details on using HPS data TEST current calibration camera to robot This selection is used to test the current camera to robot calibration Testing is allowed only if there is a valid calibration for the current virtual camera As with the procedure for establishing the camera to robot r
73. program the maps will be numbered consecutively starting with number 1 If you are using HPS maps that were loaded previously this numbering convention must have been followed Otherwise you must reload the maps using the Advanced Camera Calibration program Adept Vision User s Guide Rev A Appendix E Using HPS Data If you are using HPS data with the Link 2 noncontact lefty righty method you must load at least one HPS map for each configuration If multiple HPS maps are to be used for any one camera calibration those maps must be made using the same corner of the same HPS calibration plate preferably during the same HPS mapping session It is very important that the calibration plate not be moved between recording of the different HPS maps However it is Okay if the configuration of the robot changes from one map to the next for example from right handed to left handed When an application uses a stationary camera with an HPS based calibration the rules in the previous paragraph apply The same HPS maps used during calibration must be used for the application The application can use the opposite robot configuration from that used during the camera calibration process as long as the HPS map for the configuration is loaded into memory following the restrictions mentioned above That is for example camera calibration can be performed with the robot in a right handed configuration and the application can use the left hande
74. program will need to move the robot to the calibration location before taking each picture When the camera cannot be pointed squarely at the vision target you must use perspective calibration Stationary camera with robot General method This general calibration method can accommodate a camera at any angle as long as the camera is always at the same location with respect to the robot base when the robot is at its nominal location Also there must be a pointer or vacuum gripper attached to the end effector of the robot If a pointer is used you must be able to place it precisely at the center of the calibration disk for each calibration data point For best results when using a pointer you should use an Adept calibration disk Adept Vision User s Guide Rev A 101 Chapter 6 CALIBRATE the Current Camera Menu 102 It is possible to use a vacuum gripper only when the tool s Z axis is perpendicular to the work surface and the tool can rotate about its Z axis If you use a vacuum gripper the calibration object may be a disk dot or any simple shape see Calibration Object on page 71 The calibration transformation computed by the program represents the relationship between the robot base coordinate frame and the vision coordinate frame for the plane on which the disk is moved around This calibration procedure involves manually moving the calibration disk to different positions in the vision window and then touching the point
75. programs it is recommended that you use the vision program instruction VEDGE in place of V BINARY This will provide a more modular approach for your programs If you are experimenting with the sample object remember that parameter settings are sensitive to ambient lighting Therefore you may use different parameter settings to obtain the same image Figure 8 6 shows the object that is being placed in the field of view This is the sample object that was introduced in Chapter 1 Figure 8 6 Sample Object One of the first things you will notice about VDISPLAY mode 3 is that the object is rendered in white and the background in black regardless of the actual intensities of the object and background In Figure 8 7 Switch and Parameter Example 1 the switches and parameters are set to obtain the best possible image This image was obtained with the following switch and parameter settings Adept Vision User s Guide Rev A 133 Chapter 8 Examples of Switch and Parameter Settings Switches v V BINARY v V BOUNDARIES v V BACKLIGHT Parameters 307200 V MAX AREA 16 V MIN AREA 100 V OFFSET 90 V GAIN 8 V MIN HOLE AREA 55 V THRESHOLD 0 V 2ND THRESH 20 V EDGE STRENGTH Vision Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 7 Switch and Parameter Example 1 NOTE In each of the remaining examples the switches or parameters that have been c
76. robot link on which the camera is mounted In order to use location information from the vision system you must know the relationship between the link holding the camera and the robot world coordinate system For a camera mounted on the robot we conceptually break down the robot into a series of links connected by joints Each link can be considered as having its own coordinate system For example the world coordinate system is the same as the coordinate system of the base of the robot link 0 For Adept SCARA robots the origin of the world coordinate system is on the joint 1 axis at the level of the robot base The outer link of an Adept SCARA robot is link 2 Figure 14 3 shows the link2 coordinate frame We define the coordinate system for link 2 as follows e The origin is fixed relative to the outer link at the center of the quill at the height of the quill flange when joint 3 is at its zero position e The Z axis points down e The X axis points away from joint 2 as if it is an extension of the outer link The following program shows how to locate and acquire a part with a camera mounted on link 2 PROGRAM pickup part lk2 pick up part with link 2 camera Ne Ne Ne Ne Ne Ne Ne Ne e ABSTRACT The following sample program is used to 1 2 3 4 Move to a picture taking location Locate a single part using blob recognition Acquire the part with a single pneumatic gripper vacuum or mechanical Rais
77. surface 43 resolution 312 scale factor 313 scale factors 314 virtual 89 94 Camera only calibration 101 Cameras high resolution 52 medium resolution camera 51 motion device related 60 Panasonic GP MF 702 51 pixel clocked 51 shuttered 51 Sony XC 77 RR 52 supported by Adept 314 supported by AdeptVision VME 51 using fixed mount with a robot 257 Camera to robot transformation 70 115 CHANGE virtual and or physical cameras 94 Changing current virtual camera 94 Character recognition 204 Color filters 320 Command syntax 58 Compatibility 22 66 Complete Inspection Vision Program 243 Components of the vision location 265 Computer Controlled Robots and Motion Devices Automatic mode 29 CONFIG 39 Confirmation 175 Consistent environment 47 Contrast adjusting image 95 Controller description 38 installation 50 Controller and vision processor 38 COPY calibration between virtual cameras 93 Copying calibration data between cameras 93 Index program disk file 78 Correlation creating template 189 matches 189 model processing 183 naming templates 189 template creating 189 matching 189 when to use it 184 Creating correlation template 189 ObjectFinder model 187 prototypes 190 Current virtual camera changing the 94 Custom Calibration Sheet using a 327 Customer service assistance phone numbers 33 D Defective pixel compensation 349 Defining a tool area of interest AOI 152 an image buffer region 155 Deleting prototypes 21
78. that enter the field of view in a random fashion However since the prototype finder uses binary imaging it may be more sensitive to variations in lighting than the ObjectFinder A typical application would be a manufacturing operation where several different objects are produced and then placed in random order and orientation on a conveyor for inspection or acquisition by a robot You would use prototype recognition to identify each object and then take appropriate action based on which object was identified The prototype finder provides a way to separate objects that touch or overlap and thus form a single region It also provides a way to recognize multiple disjoint regions that comprise a single object Some things to remember when using prototypes are The prototype finder is harder to train than the ObjectFinder If you are trying to decide which one to use Adept recommends starting with the ObjectFinder Prototype recognition is processing intensive If you have only a few simple objects you might be able to recognize them more efficiently with other vision tools e All vision tools can be applied to recognized objects e VFEATURE data is available for recognized objects Prototype recognition enables you to recognize objects that are touching or slightly overlapping or are formed from disjoint regions e A trained prototype will have its own frame of reference This can be used either to place other inspection tools or as part o
79. the background as black If your vision operation examines white labels on a black conveyor belt you will disable this switch You may also find that some inspections can be made more easily when the background object intensities are reversed The settings for Switch and Parameter Example 6 are Switches v V BINARY v V BOUNDARIES V BACKLIGHT Parameters 307200 V MAX AREA 16 V MIN AREA 100 V OFFSET 90 V GAIN 8 V MIN HOLE AREA 55 V THRESHOLD 0 V 2ND THRESH 20 V EDGE STRENGTH Vision Se Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 12 Switch and Parameter Example 6 Adept Vision User s Guide Rev A 139 Boundary Analysis INTOCUCION s s eii a maaa g aoi aon aa Sanaa ahaa 142 Switches and Parameters Used During Boundary Analysis 142 Boundary Analysis Instructions aaa a a 144 VLOCATE 4 2o d od a aa 144 VLOCATEExamples 145 The DO Monitor Command 146 VFEATURE 2 3 cook ok oko ox a 146 What is VFEATURE 146 Blob Allocation 148 VFEATURE Example 148 VOUEUE amp amp 233 4 44 BD A ROIG sia ee 149 AdeptVision User s Guide Rev A 141 Chapter 9 Introduction Introduction Now that you know how to acquire and process an image this chapter will show you how to get some useful information from that image This chapter cover
80. the cycle time variables and load camera calibration IF re init THEN CALL init program cam END Set the display mode to a graphics mode so we can s the processed image VDISPLAY cam 3 Acquire an Image and Start Processing We are now ready to start the application and as with so many things in life the first thing we do is wait In this case we are waiting for the object to come into position in the field of view Digital output signal 31 controls conveyor belt movement Digital input signal 1032 has been configured to sense when the object is in position As soon as signal 1032 is detected signal 31 should be turned off the system should begin timing the inspection operations and the program should resume execution See the Adept MV Controller User s Guide for details on installing digital I O Start conveyor belt SIGNAL do belt Wait for part ready signal sig 1032 before beginning processing WAIT SIG di part ready SIGNAL do belt shut off conveyor belt TIMER 1 0 start timing operation After the part in place signal has been received we are ready to take a picture Since we will be reducing the processed area we want to acquire an unprocessed image 232 AdeptVision User s Guide Rev A Chapter 13 AC Developing the Program Code quire an unprocessed image with camera 1 VPICTURE cam 2 Locate the Object and Begin Inspections We now have an unprocessed image and are ready
81. to check the location of the object The program line line makes this inspection This program returns the coordinates of the object tail the object rotation and a boolean indicating the object was found See Subroutine line line on page 250 for details Locate sample object calculate the tail point and object s rotation CALL line line tailx taily obj rot good part The subroutine return part takes the required steps when a part is rejected Since the reject routine could have many options it is left as a dummy call for you to complete Call return program and get next part if point is not found IF NOT good part THEN TYPE The object was not found or was incorrectly positioned CALL return part END if We now know that the part is in place We also know the location of the object tail and the rotation of the object We will use this data plus the dimensions of the object to set an area of interest window The VWINDOW instruction will define the image area to be processed and then process that area see Figure 13 2 the coordinates of the object tail to set a processing window IF good_part THEN win_ibr 3000 AOI 3 VDEF AOI win ibr 1 tailx obj width 2 taily obj_widtht 5 obj hgt 15 obj rot VWINDOW cam win ibr Adept Vision User s Guide Rev A 233 Chapter 13 Developing the Program Code The height of the area of interest window is 15mm larger than the height of the obj
82. to corner diagonal cells should be red Orange and yellow indicate strong similarity and indicate one character may get interpreted as the other Greens indicate a moderate similarity characters such as E and F or O and Q may regularly show this similarity As long as lighting remains consistent and the characters are clearly printed these characters will be correctly identified Gray indicates little similarity these characters are unlikely to be confused with each other Figure 12 2 shows a sample matrix All the characters show very high similarity with themselves The F and E show a strong similarity that may cause confusion The M and N show a moderate similarity which should not be confusing as long as conditions remain consistent If characters show an unacceptable similarity e Train additional instances of the font Adept Vision User s Guide Rev A 203 Chapter 12 Performing Optical Character Recognition Improve the lighting conditions Optimize the image e Train a new sample of the font yellow indicates F M strong similarity E N EN F El dark green indicates M Ye moderate similarity N red indicates near perfect similarity Figure 12 2 Font Similarity Matrix Character Recognition The VOCR instruction performs font recognition or verification The syntax is VOCR cam virt op data font_num Sexpected ibr cam virt virtual camera number default is 1 op 0 text verification default 3
83. to do the job The object position and orientation returned by the ObjectFinder can be used to position other tools for inspection or can be passed to a robot for picking the part The ObjectFinder uses a generate and test paradigm to match object models to sets of features object instances in the image There are three stages in the use of the ObjectFinder model training planning and recognition e Model training acquires a model for a part The model is the set of features derived from the image of the part e Planning takes one or more part models and forms feature classes from the features of all models that have been selected for recognition e Recognition takes the features derived from an image and matches image features to model features A reasonably complete one to one match of image features to model features constitutes the recognition of the part Training and planning are offline activities while recognition is performed online Since it is easier to understand the operations of training and planning by seeing how they affect recognition the explanation of these activities is combined into the description of object recognition in the following section How Does Object Recognition Work Object recognition is divided into four steps hypothesis generation confirmation refinement and verification These steps are preceded by a feature processing step for estimating features from the image Feature Processing 174
84. to light object to background IF good part THEN lfdr ibr 5000 AOI 5 VDEF AOI lfdr ibr 1 VFEATURE 2 VFEATURE 3 10 10 obj rot VFIND LINE cam 0 poly hole lfdr ibr E Compare the actual value with the acceptable valu 246 AdeptVision User s Guide Rev A Chapter 13 The Complete Inspection Vision Program IF ABS poly hole 4 poly angle gt 2 THEN TYPE The poly shaped hole is incorrectly oriented CALL reject part good part FALSE END if ABS END if good part IF good part THEN Calculate the X Y center point for the arc finder x DX 0obj 10oc y DY obj loc Use the locations of the two holes to calculate the midpoint arc centx DX rnd loc DX poly loc 2 arc centy DY rnd loc DY poly loc 2 Place an arc finder centered around the two holes and look from dark to light for an arc afdr_ibr 6000 AOI 6 VDEF AOI afdr ibr 5 x y obj hgt 2 obj_hgt 2 5 90 0bj rot 270 0bj rot VFIND ARC cam arc data afdr ibr Check to see if an arc was found IF NOT arc data 0 THEN TYPE The outer radius was not located CALL reject part good part FALSE END Fit mot END if good part Calculate the center variance IF good part THEN IF ABS arc data 2 arc centx 100 OR ABS arc data 3 arc centy 1 THEN The outer radius is not correctly aligned with the tw
85. will be displayed in the vision window Vision models must be loaded with the VLOAD command before they can be displayed To see an alphabetic listing of all the prototypes currently in vision memory select List prototypes List fonts or List templates from the Models menu A dialog box will appear listing all appropriate models in vision memory From the V Monitor Prompt Vision models in vision memory can also be listed using the command VSHOW AdeptVision User s Guide Rev A 209 Chapter 12 Displaying Deleting and Renaming Vision Models The details of a specific vision model in vision memory and the names of any associated subprototypes can be displayed by using the command VSHOW model_name Deleting Vision Models The operations described in the following sections are used to remove a model from vision memory However they will not remove the model from the disk file in which it is stored To permanently delete a vision model the disk file must be deleted with the FDELETE command CAUTION The FDELETE command will permanently delete the specified file and all vision models contained in that file Using the Vision Window Menus To delete a model from vision memory 1 Select Delete prototype Delete font or Delete template from the Models menu 2 Click on the model to be deleted from vision memory 3 The system will prompt you to verify the deletion Click on Yes to delete the prototype Click on No to a
86. 0 vision models 210 DETACH 39 DEVICE 148 346 351 and virtual frame stores 346 input output format 348 instruction used with vision 346 Diffuse lighting 318 Digital I O 39 Directional lighting 319 DISABLE 129 294 Disabling switches 129 Display mode options 123 modes 123 frozen 124 graphics 124 live 123 vision window menu 355 AdeptVision User s Guide Rev A 375 Index vison window menu 123 Display mode live 123 DISPLAY CAMERA 298 Displaying vision models 209 DO monitor command 146 Downward looking stationary camera using vacuum gripper 103 DSP NSP Switch 341 343 Dynamic binary rulers 164 E Edge weights 197 prototype parameter 197 Edge Region data boxes 195 radio buttons 195 Edit buttons 194 Editing operation data box 195 prototypes 192 Editing the trained ObjectFinder model ObjectFinder model editing 187 Effort level 197 prototype parameter 197 Elements of vision calibration array 112 ENABLE 129 294 Enabling disabling switches 129 Environment consistent 47 Error handling 278 information 350 Establishing VFEATURE values 302 EVI board settings 343 Example changing the number of virtual frame stores 351 switch and parameter settings 133 Executin VDISPLAY from the menu 123 VPICTURE from the menu 121 Exit to system monitor 90 Exiting the calibration program 90 91 External Front Panel safety features 29 External trigger 286 F Feature classes 175 Feature based refinement
87. 0 Indicates the virtual cameras bit Bit field indicating the virtual cameras 31 associated with the prototype field associated with a prototype After VSHOW only 32 Indicates the range of edge numbers After VSHOW only 33 for a prototype 34 x constraint of prototype mm After VSHOW only Prototype parameters defined during 35 y constraint of prototype prototype training 36 angular constraint of prototype 37 50 Not currently used 310 Adept Vision User s Guide Rev A Lens Selection Introduction Formula for Focal Length Formula for Resolution AdeptVision User s Guide Rev A 311 Appendix C Introduction Introduction The following formulas are useful for selecting a camera lens The optimum lens focal length depends on the desired measurement resolution the width or height of the camera field of view and the distance from the work surface to the camera Figure C 1 shows how an image is produced on the imaging element of the camera A relationship exists between the camera to object distance the size of the field of view and the lens focal length The size of the camera imaging element determines a scaling factor to be applied to this relationship The relationship is given in the following formula Formula for Focal Length The formula for focal length is f S C H where f lens focal length in millimeters S camera scale factor see Table C 1 C camera height distance from front of lens to wor
88. 1 Control System as one that employs Category B Basic components designed to withstand environmental influences such as voltage current temperature and EML and that employs well tried safety principles Adept control systems are fully hardened to all EMI influences per the European Union EU Electro Magnetic Compatibility EMC Directive and meet all functional requirements of ISO 10218 EN 775 Manipulating Robots Safely In addition a software based reduced speed and soft servo mode has been incorporated to limit speed and impact forces on the Operator and production tooling when the robot is operated in Manual Mode This manual assumes that the user has attended an Adept training course and has a basic working knowledge of the system The user should provide the necessary additional training for all personnel who will be working with the system There are several warnings in this manual that say only skilled or instructed persons should attempt certain procedures These are defined as e Skilled persons have technical knowledge or sufficient experience to enable them to avoid the dangers that electricity may create engineers and technicians AdeptVision User s Guide Rev A Introduction Safety e Instructed persons are adequately advised or supervised by skilled persons to enable them to avoid the dangers that electricity may create operating and maintenance staff System Safeguards Safeguards must be an integral
89. 18 Physical vs Virtual Cameras 118 The Point of Origin oss s 119 VPICTURE Getting an Image s s 120 VPICTURE Syntax 6 6 iso os o ooo xo 33s 120 VPICTURE Examples 121 Executing VPICTURE From the Menu 121 VDISPLAY Displaying the Image 121 VDISPLAY Syntax 1 o 122 VDISPLAY Examples 122 Executing VDISPLAY From the Menu 123 Using the Different Display Modes 123 Live Modes 0 00 e 123 Frame Frozen Modes 124 GraphicsMode 08 008 124 Binary vs Grayscale Operations 124 Switches and Parameters 128 UsingSwiiches 68 6 6b bE EEE Ree o Xov y oy o 129 Enabling Disabling Switches 129 Viewing Switch Settings 00000 4 129 SWITCH Example 130 Image Acquisition Switches 130 Using Parameters o oon 131 Setting Parameters loss 131 Parameter Examples 131 Image Acquisition Parameters 131 Examples of Switch and Parameter Settings 133 Adept Vision User s Guide Rev A 117 Chapter 8 Introduction Introduction Your vision system should be installed and turned on Chapter 2 and the camera should be calibrated and ready to start taking pictures Chapter 3 Chapter 5
90. 23 Field acquires selecting 98 Field of view calculating 312 Filtering and special effects 320 Finder tool polarity 168 Finder tools 45 166 169 defined 45 search polarity 168 Finder also see ObjectFinder Fine edge rulers 165 Five axis vision transformation 267 Fixed mount camera 70 calibration 61 transformation 61 usinga 257 with a robot 257 Focal length formula for 312 scale factor 312 Font planning 203 Font similarity matrix 204 FONT OCR font name convention 202 Fonts deleting 210 displaying 209 loading 207 naming convention 202 planning 203 renaming 210 storing 206 training OCR fonts 202 Formula focal length 312 resolution 314 Frame frozen Modes 124 acquires selecting 98 buffer size changes to 343 buffers 283 relative inspections 287 store areas 283 stores 152 376 AdeptVision User s Guide Rev A virtual 152 Frame relative inspections using VDEFTRANS 290 Frames 46 reference 46 G Gain video 96 GETC 39 Global variables ac config real array 99 116 ac dot loc location 105 107 ac nominal location array 99 116 ac offset location array 100 115 to cam location array 115 Graphics display mode 123 terminal 38 Gray level rulers 165 Grayscale defined 41 image 42 example 42 representation of sample matrix 126 Grip transformation 100 114 258 grip trans location variable 258 Guided vision arm mounted camera 261 example program setup
91. 252 line line 250 write vwin 253 Summary of software tools 45 Support phone numbers 33 Switch and parameter example 134 135 136 137 138 139 SWITCH Example 130 Switch settings 341 Switches 129 129 130 and parameters 128 128 139 294 298 for boundary analysis 142 image acquisition 130 listof 295 Prototype model 200 setting 294 V 2ND MOMENT 143 V BACKLIGHT 130 V BINARY 130 V BOUNDARIES 130 142 V CENTROID 143 296 V FIT ARCS 143 V MIN MAX RADII 143 V PERIMETER 143 V SHOW BOUNDS 143 V SHOW EDGES 143 V SUBTRACT HOLE 142 viewing 294 vision window menu 129 358 Switches enabling disabling 129 Switches list of 295 Syntax command 58 System memory 55 parameters vs prototype parameters 196 parameters 96 System Safeguards 29 T Table entry reading a 350 writinga 349 teach pallet program 276 Templates correlation 189 deleting 210 displaying 209 loading 207 matching correlation templates 189 naming correlation 189 renaming 210 storing 206 Terminal 38 TEST current calibration camera to robot 92 Testing calibration 92 Theta capability definition of 100 foratool 105 Threshold adjusting binary 96 TMPL_ correlation template naming convention 189 to cam location variable 258 to cam location array 115 Tool theta capability 100 105 Training OCR fonts 202 Training and using the ObjectFinder 186 Transformation 382 AdeptVision User s Guide Rev A calibration 115 258 gri
92. 269 final part acquire location 266 fixed mount camera 257 overview 46 program 268 program example generalizing the program 278 programming considerations 278 guided vis examp 269 H High Accuracy Positioning System 75 322 High speed inspections 282 guidelines 282 trigger 286 HPS option 322 Index Hypothesis generation 175 ID 54 Image adjusting camera settings 95 binary 42 grayscale 42 Image acquisition parameters 131 132 switches 130 Impact and trapping hazards 30 Improved handling of complex parts ObjectFinder s 23 init program 252 inspect part 243 273 Inspection vision example program 227 window 45 171 172 defined 45 Installing the Controller 50 Instructions for Adept Utility Programs 27 IO 39 J Joint camera mounted on robot joint 261 K Keyword changes 24 L LEFTY versus RIGHTY configuration 322 Lens and resolution 312 focal length 312 selecting 312 Lighting 47 back 319 considerations 47 diffuse 318 directional 319 strategies 318 strobe 319 structured 319 suppliers 362 AdeptVision User s Guide Rev A 377 Index types of 318 Limit position 197 prototype parameter 197 Line finder example 169 search area 167 tool polarity 167 line line 250 Linear ruler 158 example 159 160 Link2 coordinate frame 263 Link 2 mounted camera known dot location 107 non contact method lefty righty 108 non contact method single config 107 robot can touch calibration objec
93. 29 Appendix G adv cam sample adv cam sample PROGRAM adv cam sample ABSTRACT This EXAMPLE PROGRAM EXECUTED shows how a Camera may be used after it has been calibrated F which is NOT MEANT TO BE Copyright c 1988 by Adept Technology Inc LOCAL obj loc p Serror Spart Spart anypart Prototype name of interest ENABLE V RECOGNITION Move to all defined picture taking locations and look for part FOR p MOV TO LAST picture loc 1 E picture loc i Call the user routine Global use camera 1 to cam 1 don t have routine display errors variable must be the calibration transformation E ai E CALL adv cam user 1 IF Serror lt gt THEN TYPE ERROR at part location p GOTO 100 Spart obj loc Serror 17 os Serror Skip to next site E Approach par that defines and pick it up grip is a predefined transformation he location on the part where it is to be gripped APPRO obj loc grip 50 MOVE obj loc grip CLOSEI DEPART 50 LS Place part in bi n APPRO part bin 50 MOVE part bin OPENI DEPART 50 100 END RETURN END 330 Adept Vision User s Guide Rev A Appendix G ac refine vloc ac refine vloc The following program is supplied on the Advanced Camera Calibration disk in the
94. 47 WRITE 39 write vwin 253 Writing a table entry 349 Z Zoom buttons 194 AdeptVision User s Guide Rev A Index 385 Adept User s Manual Comment Form We have provided this form to allow you to make comments about this manual to point out any mistakes you may find or to offer suggestions about information you want to see added to the manual We review and revise user s manuals on a regular basis and any comments or feedback you send us will be given serious consideration Thank you for your input NAME DATE COMPANY ADDRESS PHONE MANUAL TITLE AdeptVision User s Guide PART NUMBER 00963 03300 PUBLICATION DATE July 1998 COMMENTS MAIL TO Adept Technology Inc Technical Publications Dept 11133 Kenwood Rd Cincinnati OH 45242 00963 03300 Rev A
95. 5 Optical fiber bundles medium quality good price General Fiber Optics Inc Fiber optic arrays flexible image guides illumination Phone 619 453 7905 Fax 619 453 7907 1 Washington Ave bundles fiber optic cables Fairfield NJ 07004 Moritex Corp DC Fiberlight fiber bundles 6440 Lusk Blvd San Diego CA 92121 Volpi Manufacturing USA 5 Commerce Way Auburn NY 13021 Phone 315 255 1737 Fax 315 255 1202 Fiber optic light sources and cables in various shapes including single and dual head annular and linear 362 Adept Vision User s Guide Rev A Appendix L Third Party Suppliers U S Table L 2 Lighting Suppliers Manufacturer Product Line Aristo Grid Lamp Products Inc 35 Lumber Rd Roslyn NY 11576 2105 Phone 516 484 6141 Fax 516 484 6992 Internet www aristogrid com Mic O Lite ring lights Cool Lux Lighting Industries Inc 5723 Auckland Ave N Hollywood CA 91602 2207 Phone 818 761 8181 Fax 818 761 3202 Mini Cool lights E G amp G Electro Optics 35 Congress Street Salem MA 01970 Phone 978 745 3200 Fax 978 745 0894 Internet www egginc com Strobe lights Magnatek formerly Triad 305 North Briant Huntington IN 46750 Phone 219 356 7100 Fax 219 356 3148 High frequency electronic ballasts for fluorescent lights Stocker amp Yale Inc Hampshire Rd 32 Hampshire Rd Salem NH 03079
96. 52 Virtual Frame Buffers a a aaa aaa 152 Areas of Interest 153 Defining an Image Buffer Region 155 Linear Rulers a 158 VRULERI Array oaa a a 158 Linear Ruler Example 159 AICRUIBIS s 3550349543445 sa o dd 161 Arc Ruler Example 2 161 Ruler Types o 164 Standard Binary Rulers type 0 164 Raw Binary Rulers type 1 164 Dynamic Binary Rulers type 2 164 Graylevel Rulers type 1 165 Fine Edge Fine Pitch Rulers type 2 3 165 Ruler Speed and Accuracy 166 Finder Tool o o o wo X3 3 4 EEK E Co oe Ee ee ow X 3d 166 VFIND LINE Array 167 Line Finder Tool Polarity 167 VFIND LINE Example 168 Processing Windows VWWINDOW 170 VWINDOW Example 170 Vision Tools Inspection Windows VWINDOWI 171 Vision Tool Data Arrays ns 171 Windows Windows Windows 172 Adept Vision User s Guide Rev A 151 Chapter 10 Defining a Tool Area of Interest AOI Defining a Tool Area of Interest AOI Vision tools operate within a specified area of interest Since several different tools may be placed in the same area AdeptVision VXL allows you to predefine areas of interest These areas of interest
97. 6 Sony XC 77 6 6 When choosing the size of the field of view there is always a trade off between image size and image resolution When the image is large more objects or features can be captured in each picture which reduces the number of pictures required for the application However image resolution is reduced as the image size is increased and resolution is the key to accurately locating and measuring image features On the other hand processing time increases as larger areas of the image are processed The following steps will help you decide on a lens and camera to object distance 1 Determine the minimum required resolution smallest feature that must be resolved accurately We recommend that a factor of 5 to 10 be applied to this minimum resolution to guarantee consistent results l 1 This factor is sometimes referred to as the Part Tolerance Measurement Ratio PTMR 314 AdeptVision User s Guide Rev A Appendix C Formula for Resolution 2 Based on the required resolution determine the maximum field of view size If the maximum available field of view is too small to view the entire object you are inspecting you will have to a Use more than one camera to make the inspection b Move different areas of the part into the field of view and make multiple inspections c Accept a lower minimum resolution 3 Using the upper and lower limits of the camera to object distances determine the range of possib
98. ATURE If the object is recognized as a prototype the prototype name will be returned If the region located had at least one hole in it the command VLOCATE 1 4 1 See the Adept Vision Reference Guide for details on default values for mode and order Adept Vision User s Guide Rev A 145 Chapter 9 Boundary Analysis Instructions will locate the first hole in the most recently VLOCATEd region and make its region data available through VFEATURE For a hole to be located V HOLES must have been enabled when the image was processed The DO Monitor Command Most of the V operations covered in the rest of this manual are program instructions and do not have a monitor command format Program instructions can be executed only from within a program and not directly from the system prompt If you want to experiment with various program instructions without writing and executing a program you can preface a program instruction with the monitor command DO and execute it from the system prompt For example to execute VLOCATE from the system prompt enter the command DO VLOCATE 1 2 VFEATURE 146 Once an image has been acquired and processed with a VPICTURE instruction and a region or a hole in a region has been removed from the queue with a VLOCATE instruction data on that object is available through use of the function VFEATURE NOTE VFEATURE supports the ObjectFinder tool Except where noted the usage is t
99. Adept Vision User s Guide Rev A Chapter 5 ADV_USER V2 ADV_USER V2 Description Routines for use with ADV_CAL and for using calibration data Disk File Name ADV_USER V2 Details The file ADV_USER V2 is a public file located on the Adept Utility Programs disk ADV_USER V2 contains utility programs that can be used by application programs that access the AdeptVision VXL system The following subroutines are contained in the ADV_USER V2 file ac refine vloc is a subroutine that if present while the calibration program is running will automatically refine location of the vision objects using a VFIND ARC instruction This routine should be used only when the calibration object is supposed to be a perfect circle The name ac refine vloc must be retained since it is the key for automatic use by the calibration program See page 331 for a printout of this subroutine adv cam user is a subroutine that can be called from an application program to take a picture with a camera and return the location in robot coordinates of an object located in the vision window It will work for Adept supported SCARA XY XYZ and XYZ Theta configurations including the UltraOne See page 333 for a printout of this subroutine adv tr point is a subroutine that is called by adv cam user It is used to transform a point using a 3x3 camera calibration matrix See the program header for details Also see page 336 for a printout of this subroutine
100. After this model has been created it can be stored in a disk file and called into vision memory when needed The second step recognition involves placing the vision models in memory presenting actual objects to the camera and instructing the vision system to see if any objects in the scene match the models stored in vision memory AdeptVision VXL has four types of vision model processing ObjectFinder prototypes optical character recognition OCR and correlation Why Use the ObjectFinder The ObjectFinder is the most sophisticated vision model processing tool available in AdeptVision VXL The ObjectFinder uses grayscale image processing as opposed to the prototype finder s binary image processing For more details on the prototype finder see page 184 This makes it more immune to variations in lighting than the prototype finder or any other binary tool The most common use for ObjectFinder recognition is identifying objects that enter the field of view in a random fashion A typical application would be a manufacturing operation where several different objects are produced and then placed in random order and orientation on a conveyor for inspection or acquisition by a robot You would use the ObjectFinder to identify each object and then take appropriate action based on which object was identified The ObjectFinder allows you to separate objects that touch or overlap and thus form a single region It also provides a way to recognize
101. B Establishing VFEATURE Values Table B 3 VFEATURE Values and Interpretation for Prototype Recognition Instances following VLOCATE Continued Index Information Unit Switch Parameter Effects 42 Object centroid along X axis mm V CENTROID must be enabled 7 VSUBTRACT HOLES is ignored 43 Object centroid along Y axis 44 The angle relative to the object s E V CENTROID and V MIN MAX RADII centroid of a line drawn to the must be enabled closest point on the object perimeter 48 The direction of the object s major j V CENTROID and V 2ND MOMENTS must axis The ellipse is centered at the be enabled region s centroid axis of least inertia This is the major axis of the best fit ellipse 49 Major radius of the ellipse defined in mm VFEATURE 48 50 Minor radius of the ellipse defined in V FEATURE 48 Table B 4 VFEATURE Values and Interpretation for Prototype Recognition Instances following VSHOW Index Information Unit Switch Parameter Effects 1 Whether the last VSHOW instruction T F As long as a VSHOW operation was successful or not successfully displays a prototype this value will be returned as true 1 and information about that object will be available through VFEATURE access 2 Center X mm After a VSHOW The location components are the 3 Center Y prototype s centroid 4 Center Z The reference frame values are the prototype
102. Begin 26 Related Manuals 26 Safety aaa A RA a 28 Reading and Training for Users and Operators 28 System Safeguards 0 29 Safety Features on the Controller Interface Panel CIP 29 Computer Controlled Robots and Motion Devices Automatic mode 29 Manually Controlled Robots and Motion Devices 29 Other Computer Controlled Devices 30 Program Security 30 Overspeed Protection 0 eee ee 31 Voltage Interruptions sss 31 Inappropriate Uses of the AdeptWindows Controller System 31 Notes Cautions and Warnings 048 31 Hypertext Links in Online Manuals 04 32 Links to Cross References 0 00484 32 Links to Related Manuals 32 Links to Related Keywords 0 048 33 How Can I Get Help 2 2 2 33 AdeptVision User s Guide Rev A 21 Introduction Compatibility Compatibility 22 This manual is for use with V systems equipped with the AdeptVision software and hardware options The system version must be 13 0 or later running on an AdeptWindows Controller AWC This manual is intended primarily for vision application programmers If your system includes the optional VisionWare or MotionWare with vision software you do not need to read this manual However many
103. CATE cam 4 poly loc Calculate the distance Adept Vision User s Guide Rev A their centroids 245 Chapter 13 The Complete Inspection Vision Program rnd act DISTANCE obj loc rnd loc poly act DISTANCE obj loc poly loc Compare the distances and reject part if they are not within 5mm of correct IF ABS rnd act rnd dist gt 0 5 THEN TYPE The round hole is out of alignment CALL reject part good part FALSE END if ABS IF ABS poly act poly dist 0 5 THEN TYPE The polygon hole is out of alignment CALL reject part good part FALSE END if ABS END if good part Place a ruler that starts at the center of the circular hole and goes past its edge IF good part THEN rul ibr 4000 AOI 4 VDEF AOI rul ibr 2 cent circlex cent circley 10 0 VRULERI cam 0 1 circ hole rul ibr Check the value of the first transition which will be the radius against the required value IF circ hole 0 O THEN TYPE The radius of the circular hole could not be determined ELSE IF ABS 2 circ hole 2 circ diam 1 THEN TYPE The circular hole is not the correct size CALL reject part good part FALSE END if ABS END if circ hole 0 END if good part Place a VFIND LINE tool at the center of the polygon and have it look in the negative Y direction for an edge Search from dark
104. Continued Manufacturer Product Line Leonix Corp Oriel Scientific Ltd Mutsumi Building 4 5 21 Kohjimachi Chiyoda Ku Tokyo 102 Japan Phone 03 239 3090 Fax 03 239 3191 Lenses filters polarizers mirrors prisms beam splitters fiber optics Melles Griot Japan Pine Bldg 3F 3 11 2 Shibuya Shibuya ku Tokyo 150 Japan Phone 03 3407 3614 Fax 03 3486 0923 Melles Griot Singapore 994 Bendemeer Road 06 05 Kallang Basin Industrial Estate Singapore 339943 Phone 392 5368 Fax 392 5508 Mirrors prisms filters polarizers lasers optical benches component holders positioning devices Moritex Corp Fiber Optics Department Sakuragoaka cho 8 9 Shibuya ku Meisei Bldg Tokyo 150 Japan Phone 03 476 1021 Fax 03 476 1698 Moritex Corp International Division 3114 Jingumae Shibuya ku Tokyo 150 0001 Japan DC Fiber light fiber optic cables Newport Taiwan 2F 188 Nanking E Rd Sec 5 Taipei Taiwan 106 Phone 02 733 3920 Fax 886 227 699 638 Electro optical components for machine vision filters lasers structured lighting optical benches Oma Co 378 23 Galma Dong Seo Ku Daejeon Phone 82 42 534 1091 Fax 82 42 534 1090 Electro optical components for machine vision filters lasers structured lighting optical benches Adept Vision User s Guide Rev A 371 Appendix L Third Party Suppliers Asia Pacific Table L 12 Lighting Filter and Optic
105. ET place loc cur frame TRANS row offset col offset pallet loc APPRO place loc 50 SPEED 20 MOVE place loc OPENI DEPART 50 Check the row and column count increment or reset as necessary IF row lt max rows THEN row rowtl ELSE row 1 IF col lt max cols THEN col col 1 ELSE Bring in a new pallet row 1 col 1 CALL new pallet pal offset pal correction SET cur frame SHIFT pallet frame BY pal correction END if row END if col If the part failed move it to the scrap location ELSE APPROS scrap loc 50 MOVE scrap loc O D lt PENI EPART 50 END if passed E Get ready to take a new picture OV ca pic loc END for i 1 END WHILE SIG di oper 272 AdeptVision User s Guide Rev A Chapter 14 Guidance Vision Program PROGRAM inspect part passed ABSTRACT This program uses an upward looking camera to inspect a 7 round part presented to the camera by a robot An arc finder is used P to check the radius of the part The global variable up cam identifies virtual camera being used INPUT PARMS None OUTPUT PARMS passed indicates whether or not the part passed SIDE EFFECTS None LOCAL x y r tool r search up limit low limit x 100 y 100 r tool 25 r search 75 up limit 24 low limit 26 Move the part inspection location MOVE i
106. Guide Rev A 159 Chapter 10 Vision Cam Frame Display Pict Ops Status Models Switches Resolution testdata 3 Linear Rulers Bile ES testdata 2 VFEATURE 2 amp 3 Figure 10 5 Linear Ruler Example If after executing the above code you want to see all the values in the testdata array issue this command L ISTR testdata and the monitor window will display values similar to these testdata 0 2 testdata 1 1 testdata 2 5 15576 testdata 3 46 256 LISTR is a monitor command that lists real variables resident in system memory 160 Adept Vision User s Guide Rev A Chapter 10 Arc Rulers Arc Rulers In addition to linear rulers AdeptVision VXL allows you to place circular and arc shaped rulers Arc rulers return the angular distance between edges found along an arc These rulers are particularly useful for inspecting part features that are arranged radially around a part center The syntax for an arc ruler is VRULERI cam virt type data ibr The parameters are the same as for a linear ruler except the image buffer region must specify a circular AOL Arc Ruler Example Let s examine the face of a circular gauge to see if the graduation marks are properly spaced The gauge we will examine is shown in Figure 10 6 We will assume that we know the ideal angular distance between the centers of any two graduation marks We will also assume that the hole for the gauge dial
107. Highly reflective surfaces or objects with variable surface brightness will be difficult to inspect with this type of lighting Structured In structured lighting a highly collimated light source is applied to the object The angle of the light is coincident with camera axis Ring lights and lasers are sources of collimated light This type of lighting allows the vision system to perceive three dimensional features such as depth changes in the surface plane or holes in the object Reflective surfaces are not amenable to structured lighting Strobe Strobe lighting is required in high speed applications multiple images per second or when the speed of moving objects exceeds one pixel every 17 milliseconds Strobes cast harsh shadows AdeptVision User s Guide Rev A 319 Appendix D Filtering and Special Effects Filtering and Special Effects In many cases specific lighting problems can be solved by placing an optical filter on the camera lens The two most common filters used for black and white cameras are polarizing filters and color filters Polarizing Filters Reflected light is highly polarized the light waves have a predominate orientation about the wave axis A polarizing filter can be adjusted so that light waves with a predominate orientation are filtered If reflected glare from an object is a problem a polarizing filter may minimize the problem A polarizing filter will reduce the overall scene brightness so more inte
108. II values of the found characters are stored in every fourth array cell starting at 5 index inc 4 Output the characters FOR x 5 TO found index inc 4 STEP index inc type SCHR data x S END TYPE The following code will output the average verification score of characters from the string ver string found in the area defined by cx cy dx and dy VPICTURE cam virt VWAIT VOCR cam virt 0 data 1 S ver string 3000 TYPE The average verification score is data l Adept Vision User s Guide Rev A 205 Chapter 12 Loading and Storing Vision Models The VOCR instruction has several different options and returns extensive data on recognition and verification processes See the description of VOCR in the AdeptVision Reference Guide Loading and Storing Vision Models The vision processor board has its own memory that is separate from system processor memory Trained vision models reside in this memory area VSTORE stores a vision model or group of similar models to a disk file VLOAD loads a vision model or group of models stored with the VSTORE command from a disk file to vision memory NOTE The type of model being supported is determined by the name which has been trained as either a prototype or an ObjectFinder model The name is first checked against the lists of prototypes for backward compatibility Therefore you should not use the same name for a prototype model and an Ob
109. In each case above the choice of edge operation to be performed cross gradient or Sobel is determined by the value of the system parameter V EDGE TYPE The edge strength threshold is given by the VEDGE STRENGTH system parameter Adept Vision User s Guide Rev A 295 Appendix A List of Switches Table A 1 Vision Switches Continued Switch Default Effects V BOUNDARIES v Enables or disables boundary processing If this switch is disabled perimeter edge centroid 2nd moments and hole data will not be gathered Must be enabled for vision model processing V CENTROID The centroid of an object is calculated if this switch is enabled This information is then available in VFEATURE 42 43 This switch increases processing time and should be disabled if the centroid information is not needed V BOUNDARIES must be enabled V DISJOINT A single object may appear to the vision system to be two separate objects E g a dark object with a white line down the middle would look like two objects If you are attempting prototype recognition on this type of part this switch will have to be enabled or the part will not be recognized Disable this switch when you are not doing prototype analysis When doing region analysis this switch must be disabled for hole data to be gathered V DRY RUN Allows you to see the placement of vision tools without having the tools actually perform any proces
110. Inspect the sample object for defects in the round and INP OUT SID Dec 230 polygon shaped holes the arc at the front of the object and the surface gradation UT PARM re init determine whether to call the system initialization routine 1 reinitialize 0 no initialization PUT PARM None E EFFECTS The global variables num parts and avg time will be updated The next section of your program should contain the variable declarations The V language allows you to declare variables dynamically but these variables will be global to all programs To guarantee you do not inadvertently use the same variable name used globally by another program you should declare all variables used exclusively within your program to be automatic variables lare local variables AUTO obj width object width AUTO cent circlex cent circley X y center of circular object AUTO obj centx obj centy X y center of the object AUTO arc centx arc centy 7X y center of object arc AUTO gvalue acceptable graylevel variance AUTO grulerx grulery starting point of g level ruler AUTO good part boolean indicating status of part AUTO di part ready digital sig indicating part is ready AUTO cycle time average inspection cycle time AUTO do belt digital sig for conveyor belt AUTO poly angle circ diam correct part dimensions AUTO poly dist poly act Adept Vision User s
111. L VAR cam virt 3 PARAMETER V EDGE STRENGTH cam virt 10 Train the ObjectFinder model model_name teardropl VTRAIN FINDER cam virt 1 1 1 85 0 model_name ibr_rect After executing the program code the image in the Vision window will look similar to that shown in Figure 12 4 Adept Vision User s Guide Rev A 213 Chapter 12 ObjectFinder Example 214 Figure 12 4 Example ObjectFinder Model After Training Once you are satisfied with the trained model you should store save the model to disk using the VSTORE monitor command The following example uses the VSTORE monitor command to store our trained model teardrop1 to the disk file TEARMOD VS VSTORE tearmod teardropl Alternately you could include the VSTORE program instruction in your application program so that after the model is trained it is automatically stored The following example stores the model teardrop1 which we previously assigned to the variable model name in the file named TEARMOD VS on the hard disk C Logical unit number 6 is associated with the operation and is used to check for a successful completion VSTORE 6 C TEARMOD Smodel nam IF IOSTAT 6 lt O THEN TYPE Cl VSTORE failure SERROR IOSTAT 6 C1 HALT END See the AdeptVision Reference Guide for details on the VSTORE monitor command and program instruction AdeptVision User s Guide Rev A Chapter 12 ObjectFinder Example Step 2
112. MODE a e oed 5 5 pof do o RR dd ERR x 9a 319 Filtering and Special Effects iss 320 Polarizing Filters ln 320 Color Fieis s e cce 44h 4 poeme e gor RARA 320 AdeptVision User s Guide Rev A 317 Appendix D Types of Lighting Types of Lighting Table D 1 Types of Lighting Type Advantages Disadvantages Incandescent Inexpensive can be cycled Short life for AC lamps heat inconsistent lumen output as wattage degrades Fluorescent Efficient cool large areas Can not be cycled flickers not high low cost intensity large in size Tungsten Halogen High output compact Heat Strobes High power freezes motion Expensive lumen output may not be repeatable must be synchronized with camera potential health hazards Lasers Bright points and lines Federally regulated speckles fragile potential eye hazards Laser diodes Bright points and lines small Federally regulated requires collection can be easily pulsed rugged optics potential eye hazards Lighting Strategies Light is reflected from a surface at the opposite angle it struck the surface Making use of this principle lighting strategies employ the various properties of light sources and reflective materials to maximize important image detail minimize unimportant details and eliminate noise Diffuse 318 Diffuse lighting illuminates a surface with light that strikes the surface from as many different angle
113. NDOW instruction to process only sections of the field of view that have critical features More than one processing window can be placed on an image and windows can overlap Using multiple windows allows you to inspect different image areas using different combinations of switches and parameters Once you have placed a window you can use VLOCATE VFEATURE and other vision tools just as you would if you were working with a fully processed field of view The difference is that the results of these instructions will take into account only the portion of the image inside the window To use a processing window you first acquire an unprocessed image by executing a VPICTURE instruction in mode 2 quick frame grab You then issue a VWINDOW instruction to process the area you are interested in After a VWINDOW instruction boundary analysis is performed on the area inside the window VLOCATE and VFEATURE can now be used to obtain data about the regions within the area of interest window Vision tools that operate on processed image data can also be used The simplified syntax for a rectangular processing window is VWINDOW cam virt ibr cam virt is replaced with a virtual camera whose switch and parameter settings will be used during processing by the window tool ibr is replaced with an image buffer region specifying a rectangular AOI Shapes 1 and 4 are the normal shapes for a processing win dow VWINDOW Example For this inspection we
114. Need 2 2 2 2 5 71 Calibration Object 71 What You Need o DO 73 Things to Remember Important Stuff 73 When to Recalibrate the Camera 73 Virtual Cameras 2 25 2 5 74 Resolution Accuracy and Repeatability 74 AdeptVision User s Guide Rev A 65 Chapter 4 Compatibility Compatibility This calibration procedure is for use with V systems equipped with the AdeptVision VXL software and hardware options The system version must be 13 0 or later This procedure should not be used with earlier versions of the program CAUTION Application programs that use the calibration results from the Advanced Camera Calibration program must use a grip transformation when moving to a location determined from a vision image Furthermore any existing grip transformation will need to be redefined after calibration with this program Why Calibrate a Camera Before AdeptVision VXL can return meaningful results the system must know basic information about your particular installation The camera calibration program generates this information and stores it in a form usable by AdeptVision VXL There are three primary pieces of information determined by the calibration program e The millimeter to pixel ratio e Correction factors for perspective distortion e The camera to robot transformation Depending on what you are doing with y
115. OCATE instruction The transformation returned by boundary analysis has a rotation the same as the vision coordinate frame The axis of least inertia returned by VFEATURE 48 is used to calculate the location orien tation grip trans is the grip transformation for the part Since the vision system can calculate location data only in a two dimensional plane an addi tional transformation must be defined to account for the Z compo nent of the final world location and possibly the gripper rotation necessary for grasping a part CAUTION A new grip transformation should be defined whenever new calibration data is computed Failure to use a valid grip transformation could cause the robot to run into the part or the work surface when moving to a location determined from a vision image The vision location vis loc can be created by any vision operation s that returns information that can be used to calculate a transformation representing the location of an object within the vision coordinate system The remainder of this chapter and the next chapter describe vision operations that return location data 258 Adept Vision User s Guide Rev A Chapter 14 Using a Fixed Mount Camera part loc is the compound transformation based on the vision location vis loc the camera calibration transformation to cam and the grip transformation This transformation represents the part loca tion in world coordinates Figure 14 1 shows the
116. OMENTS PERIMETER MIN MAX RADII HOLES EDGE INFO SHOW BOUNDS SHOW EDGES Y SHOW GRIP Y SHOW RECOG Y SHOW VERIFY 358 Select binary or edge processing Enable disable boundary analysis Enable disable arc fitting during boundary analysis Enable disable prototype recognition Select light background or dark background Enable disable prototype recognition of disjoint regions Enable disable prototype recognition of touching objects Enable disable prototype recognition of overlapping objects Subtract hole area s for calculated region areas Enable disable sending of strobe signal at image acquisition Enable disable calculation of centroid data Enable disable calculation of 2nd moment data Enable disable calculation of region perimeters Enable disable calculation of region min and max radii Enable disable calculation of VFEATURE data on holes Enable disable calculation of edge data see VEDGE INFO Show boundaries calculated during boundary analysis Show edges calculated when an image is processed Show the effects of clear grip tests see VDEFGRIP Show prototype silhouettes on top of recognized prototypes Show all attempts at prototype recognition Adept Vision User s Guide Rev A Appendix K Vision Window Menus Resolution Full Resolution Display the image at maximum resolution Half Resolution Display the image at one half of maximum resolut
117. Phone 603 893 8778 Fax 603 893 5604 Internet www stkr com Lite Mite ring lights Vision Engineering Laboratories Inc 1360 72nd St North Largo FL 34647 Phone 813 545 0018 Fax 813 545 0525 Standard and custom strobe lights power supplies and systems for machine vision Lasiris Inc 3549 Ashby Saint Laurent Quebec H3R 2K3 Canada Phone 514 335 1005Fax 514 335 4576 Laser based structured light generators Single line 1 33 lines concentric and special patterns are available Table L 3 Camera Equipment Suppliers Manufacturer Product Line Bogen 565 East Crescent Ave P O Box 506 Ramsey NJ 07446 Phone 201 818 9500 Fax 201 818 9177 Internet www bogenphoto com Magic Arms flexible fixturing for cameras lighting parts etc Copy stands Camera mounting stand with vertical stage Adept Vision User s Guide Rev A 363 Appendix L Third Party Suppliers U S Table L 3 Camera Equipment Suppliers Continued Manufacturer Product Line Desoutter Inc 11845 Brookfield Ave Livonia MI 48150 Phone 313 522 1466 Fax 313 522 7010 Mechanical columns clamps and other machine vision mounting hardware R K Industries 7330 Executive Way Frederick Maryland 21701 Phone 301 696 9400 Fax 301 696 9494 Phoenix Mechano modular mounting systems steel and aluminum round and square tube and clamp s
118. Plan the ObjectFinder Model Before planning if you VDELETEd the example model ZERO ed the controller memory or powered off the controller you must first use the VLOAD monitor command to restore the model in vision memory The following example loads the example model contained in the file TEARMOD VS VLOAD tearmod Alternately you could include the VLOAD program instruction in your application program to automatically load the model when the program is executed The following program instruction loads the example model stored in the disk file named TEARMOD VS on the default system disk Logical unit number 6 is associated with the operation and is used to check for successful completion VLOAD 6 tearmod IF IOSTAT 6 lt 0 THEN TYPE C1 VLOAD failure SERROR IOSTAT 6 C1 HALT END See the AdeptVision Reference Guide for details on the VLOAD monitor command and program instruction Next you must plan the model The V code used to accomplish this is shown below Set up planning for the model Sfmods 0 model_nam Start of array fmods 1 m End of array VPLAN FINDER cam virt 1 fmods CAUTION Since planning data is not stored to disk you must be sure to include a VPLAN FINDER instruction in your application code so that the model is planned each time it is VLOADed from disk into vision memory After executing the program code the image in the Vision window will look si
119. T This program teaches all palletizing workcell It creates Guidance Vision Program offset gripz the locations required by the 7 calculates the Z offset for parts A camera data a reference frame for the pallet and being acquired based on arm mounted INPUT PARMS rows number of rows in the pallet H cols number of columns in the pallet OUTPUT PARMS pal offset offset from the vertical edge of the field A of view to the edge of a pallet p gripz the Z value for the grip transformation used to acquire parts based on arm mounted camera data SIDE EFFECTS The following global locations are updated F pallet loc reference frame for the pallet H pic loc picture taking location for acquiring a part E inspect loc picture taking location for part inspection scrap loc part reject location 7 pallet fram reference frame for the pallet AUTO fr origin fr posx fr posy pallet frame locations AUTO Sans AUTO jt datal Get the three locations required to establish a pallet reference fram DETACH YPE C24 U20 Create the pallet reference frame YPE Place the robot at the row 1 col 1 location on the pallet PROMPT Press ENTER when ready Sans HERE fr origin TYPE C2 Place the robot on the row 1 col rows location PROMPT Press ENTER when ready Sans HERE fr posx TYPE C2 Plac
120. The simplified syntax for a linear VRULERI is VRULERI cam virt type data ibr cam virt is replaced with the number of a virtual camera The value of V EDGE STRENGTH associated with this virtual camera will be used by some of the ruler types see Ruler Types on page 164 The value of VTHRESHOLD is used with dynamic binary rul ers The default value is camera 1 type is replaced with the type of ruler you want to place on the image The default value is 0 indicating a run length binary ruler The different types of rulers are explained in Ruler Types on page 164 data is replaced with a variable name for the array into which you want the ruler data placed see VRULERI array below ibr is replaced with the number of a defined image buffer region specifying a rectangular AOI see Defining a Tool Area of Interest AOI on page 152 VRULERI Array 158 When you have issued a VRULERI command the edge transition data is placed in the array you specified The element values are data 0 The number of edges found along the ruler data 1 For binary rulers the color of the pixel the ruler started on For gray scale rulers whether or not the ruler was clipped by the field of view data 2 The distance from the starting point to the first transition data 3 The distance from the starting point to the second transition data n The distance from the starting point to the n 1 th transition Adept Vision User
121. This offset is only in the X Y plane of the tool It is used during the calibration process and is left in the global transformation variable ac offset v where v is the virtual camera number The offset transformation is defined relative to the robot tool tip including any TOOL transformation used during calibration That is the rotation mentioned above is performed about the tool axis Therefore if you have a TOOL transformation defined the offset will be relative to the resulting ultimate tool tip If the TOOL transformation was originally meant to make the center of rotation be at the center of an offset pointer then ac offset v Adept Vision User s Guide Rev A 115 Chapter 7 Miscellaneous Global Variables could be used to correct that TOOL transformation The transform goes from the tool tip back to the actual axis of rotation Therefore tacking INVERSE ac offset v onto the existing tool tip on top of any existing TOOL would correct for any offset from the actual center of rotation This transformation value could also be used to determine the exact location of a fixed dot etched on a gripper that is used for calibration of a fixed camera Location Array ac nominal and Real Array ac config All the calibration methods that involve the robot make use of a nominal location This is the robot location that puts the calibration dot or disk in the vision window with no obstructing objects in sight The nominal
122. Training and Using the ObjectFinder Setting the System Switches and Parameters Required Settings Recommended Settings Creating an ObjectFinder Model Editing the Trained ObjectFinder Model Planning the ObjectFinder Model Using the ObjectFinder Performing Correlation Matches Creating a Correlation Template AdeptVision User s Guide Rev A Table of Contents 172 173 174 174 174 175 175 175 175 175 176 176 176 177 177 178 178 178 179 179 180 181 183 183 184 184 185 186 186 186 186 187 187 187 188 189 189 11 Table of Contents 12 Matching a Correlation Template Training and Using Prototypes Creating Prototypes Training Additional Instances Editing Prototypes Preview Window Zoom Buttons Message Window Edit Buttons ade s Editing Operation Data Box Edge Region Data Boxes Edge Region Radio Buttons Prototype Training Hints SubPrototypes Prototype Parameters Setting Prototype Parameters Verify percent Effort level Min max area Limit position Edge weights Assign cameras Using Prototypes Recognizing a Prototype Prototype Relative Inspection Prototype Relative Part Acquisition Prototype Model Switches and Parameters Performing Optical Character Recognition Training an OCR Font Font Planning Character Recognition OCR Examples i Loading and Storing Vision Models VSTORE VLOAD EP Qm Displaying Deleting and Renamin
123. URE data available for blobs unrecognized regions as well as data available only from recognized prototypes See Appendix B for additional VFEATURE data In some cases recognizing an object will be the only inspection you need to make In other cases you may want to use rulers and other vision tools to make a more thorough inspection of the object Chapter 15 describes the use of prototype relative inspections This inspection strategy allows you to place vision tools on the prototype regardless of its location and orientation in the field of view Prototype Relative Inspection You can use DEF TRANS VFEATURE 2 VFEATURE 3 and VFEATURE 7 to establish a reference frame for all vision tools AdeptVision User s Guide Rev A Chapter 12 Training and Using Prototypes Prototype Relative Part Acquisition If the objects you are acquiring Are similar and cannot be identified by blob recognition or by using a combination of finder and ruler tools Do not have a strong elliptical character or other features that define the object s rotation Are touching or overlapping or are formed by disjoint regions then prototyping may be the best way to define a reference frame for the objects Prototypes have their own reference frame based on the orientation of the part the first time it was trained When a prototype is recognized VLOCATE operation a reference frame based on the recognized object is returned The followin
124. URE instruction in graphics mode cam virt 1 VDISPLAY cam virt 3 Make sure hole information is gathered 148 Adept Vision User s Guide Rev A Chapter 9 Boundary Analysis Instructions ENABLE V HOLES cam virt ENABLE V BOUNDARIES cam virt DISABLE V DISJOINT cam virt ENABLE V CENTROID cam virt Make sure perimeter information is gathered ENABLE V PERIMETER Acquire and process an image VPICTURE cam virt 1 Remove any object from the queue for cam virt VLOCATE cam virt name trans var Check for a successful VLOCATE i e an object was found IF VFEATURE 1 THEN Display the perimeter of the object and the number of holes YPE Object perimeter is VFEATURE 41 YPE The number of holes in the object is VFEATUR Lr 17 Locate the largest hole in the object VLOCATE cam virt 4 1 Check for a successful VLOCAT Gl IF VFEATUR Ea 1 THEN Display the coordinates of the center hol TYPE Center hole coordinates VEFEATURE 2 VFEATURE rj Co Ira Z Og VQUEUE The monitor command VQUEUE shows the status of the vision queue The syntax for VOUEUE is VQUEUE cam virt cam virt isreplaced with the camera number whose queue you wish to examine The default is 0 indicating all cam
125. V_CAL is directed by menu selections There is a main menu with several selections Some of these selections lead to multiple program functions and therefore invoke secondary menus While other top level menu selections invoke just a single program function This chapter describes each of the selections in the ADV_CAL menus Three of the menu selections ADJUST camera image settings CALIBRATE the current camera and LOAD STORE data from to disk have their own menus These menus are explained in detail in the following sections When the program is first started you are asked to specify an initial virtual and physical camera You can switch to different cameras later by using one of the selections in the main menu Calibration Status Display A calibration status display is shown on the monitor screen above the main menu and also during some of the selection processes The virtual camera surrounded by pairs of asterisks is the virtual camera being calibrated The status display shows the following information abut each virtual camera e The associated physical camera number e The type and status of the calibration e Whether this is a perspective calibration e The image size full frame or single field e The camera type normal or shuttered Whether HPS data was used during the calibration If there is a valid calibration its type is either camera only CamOnly or camera to robot For camera to robot calibrations the descript
126. When you are not interested in location information from the vision system you can use Camera only calibration to establish the relationship between the camera image and the physical scene This method does not calculate a camera to robot transformation The camera only calibration procedure is designed for use with the precision calibration sheet provided by Adept in the AdeptVision Reference Guide The calibration sheet has one large and five small targets sets of nested squares Use the set of nested squares target that best fits in the vision window If the Adept calibration sheet is not available you can use one of the calibration disks provided by Adept or any object that contrasts with its background the material used should not be stretchable If you do not use the Adept calibration sheet you will be asked to enter the size of the object in millimeters The accuracy of the resulting calibration data will depend on the accuracy of the value entered for the diameter or width Measure your disk carefully See Appendix F for details an creating your own calibration target For this calibration method the camera can be located anywhere in the workcell at a fixed location or mounted on the robot The important point to remember is that the camera only calibration is accurate only for cameras that are in the same location as when they were calibrated Thus if a camera calibrated as Camera only is mounted on a robot your application
127. a 2 and select frame store 1 for processing VPICTURE cam2 0 second frm first frm 2 AdeptVision User s Guide Rev A 285 Chapter 15 Performing High Speed Inspections Inspect the part VWINDOWB dl first frm Deal with results UNTIL NOT SIG di run Inspect the final part VWINDOWB d2 second frm Deal with results The actual time required for ping pong inspection will be determined by the frame store requiring the longest processing time If your inspection operations take 75 milliseconds and acquisition takes 33 milliseconds processing on the newly acquired image will have to wait 42 milliseconds while processing finishes on the other image The High Speed Trigger In the above example image acquisition is started when the part present sensor signals that a part is ready There is a small potential delay due to the way digital signals are monitored in V Digital signals are read once every major CPU cycle Thus a slight delay may be encountered before the system actually registers the digital signal To overcome this delay a digital signal can be configured as an external trigger When the state of an external trigger changes a system interrupt is generated and the signal is registered immediately within 02 ms Before you can use an external trigger you must run the controller configuration utility CONFIG_C to specify the digital signal to monitor as an external trigger See the Instructions for Adept U
128. a to robot 5 gt COPY calibration between virtual cameras 6 gt CHANGE virtual and or physical cameras 7 gt SELECT different robot Main Menu Options 90 Exit to system monitor Choose this menu item when you want to exit the program and return to the V system monitor Since several system parameters may have been changed by you or by the program during the calibration process you are given the option of restoring the switches and parameters for all virtual cameras to the state they were in before the program was executed If you do not choose this option only a few switches Adept Vision User s Guide Rev A Chapter 6 Main Menu and parameters associated with image processing such as V BINARY and V BOUNDARIES are restored Other switches and parameters that are particular to your current application such as the binary threshold and vision window boundaries will be left as you set them while using the program If you want to exit the program at any prompt press Ctrl Z hold down the Ctrl key and press the Z key NOTE If you exit the program in this way or abort using the ABORT command there is no guarantee as to the status of the calibration or of any of the system switches or parameters In addition graphics windows used by the program may be left open and obscure the Monitor window LOAD STORE calibration data from to disk This selection displays a secondary menu from which you can choose to load calib
129. ains information on installing maintaining and calibrating the motion device The manuals for any options you have purchased with the system such as VisionWare or purchased separately to use with the system AdeptVision User s Guide Rev A 27 Introduction Safety Safety Reading and Training for Users and Operators 28 Adept systems can include computer controlled mechanisms that are capable of moving at high speeds and exerting considerable force Like all robot and motion systems and most industrial equipment they must be treated with respect by the user and the operator This manual should be read by all personnel who operate or maintain Adept systems or who work within or near the workcell We recommend that you read the American National Standard for Industrial Robot Systems Safety Requirements published by the Robotic Industries Association RIA in conjunction with the American National Standards Institute The publication ANSI RIA R15 06 contains guidelines for robot system installation safeguarding maintenance testing startup and operator training In situations with low frequency of exposure and low probability of permanent injury consideration factors EN 1050 a European Norm standard covering risk assessment for machinery specifies use of a Category 1 Control System per EN 954 EN 954 a standard that categorizes safety system requirements in accordance with a risk assessment defines a Category
130. am instruction accomplishes two primary tasks e Acquires an image gets the camera to transfer an electronic image to the controller Processes that image using the software to filter the image data and gather information about the image When a VPICTURE operation is performed the vision system acquires an image into an image buffer If the processing option has been selected the image data is examined and basic image data is calculated Depending on the setting of various vision switches described later in this chapter the level of data gathered can be controlled Each time a new VPICTURE is issued the previous image data is overwritten The results of a VPICTURE operation can be displayed in several different ways The way an image is displayed depends on the selection made from the Display menu or with the VDISPLAY command described in the next section VPICTURE Syntax VPICTURE can be executed either from the monitor prompt or from within a vision program The simplified VPICTURE syntax is VPICTURE cam virt mode cam virt is replaced with the number of the virtual camera you want to take a picture with Camera 1 is the default value mode is replaced with 1 the default value indicating that a new image should be acquired and processed immediately Performs boundary analysis and prototype recognition 2 indicating that a quick frame grab should be made and boundary analysis and prototype recognition should not
131. ance training is zero Table B 2 VFEATURE Values and Interpretation for ObjectFinder Models following VSHOW Index Information Unit Switch Parameter Effects 1 Whether the last VLOCATE T F As long as a VSHOW operation instruction was successful or not successfully displays a model this value will be returned as true 1 and information about that model will be available through VFEATURE access 2 X mm After a VSHOW X and Y are the center and rZ is the 3 y orientation of the bounding box of the first 4 Z training instance of the model The position and orientation of the model is not changed 5 Rotation about X by training additional samples 6 Rotation about Y Note that Z rX and rY are not used 7 Rotation about Z 9 Percentage of boundary that After VSHOW matched during prototype recognition specified during training recognition will be 0 for unrecognized regions 12 Minimum verify percentage Result of multi instance training To be used as a recommendation in selecting verify percent on training page 13 Left limit of region bounding box mm After VSHOW Min_X Bounding box is relative to prototype reference frame 14 Right limit of region bounding box Max_X 15 Lower limit of region bounding box Min_Y 16 Upper limit of region bounding box Max_Y 17 Number of pairs 304 Adept Vision User s Guide Rev A Appendix B Establishing VFEATURE Values Table B 2 VFEATURE Values and Inter
132. anything This value should be checked before attempting to access any of the other data array values This is particularly important during multiple iterations of the program When a tool instruction is processed the previously created array values are not deleted they are overwritten with any new values generated This means that if a tool fails the only array value overwritten will be the one indicating that the tool failed The other array values will contain the values from the previous iteration of the tool Location values should be checked to see if they can be reached by the motion device It is possible to create a transformation that the motion device cannot reach The INRANGE function can be used to check a location prior to issuing the move instruction to that location During the teaching phase of the program the operator should have been given the opportunity to verify the locations For critical locations teaching the location several times and then averaging the components of each instance may be in order All I O instructions should be checked with the IOSTAT function to make sure they were successful Since I O failures are not fatal if your program does not detect and deal with them the program will continue on as if the I O were successful Generalizing the Program 278 The above program has several constraints that could be alleviated to make it more versatile The first restriction is on the shape of the parts Th
133. application program Your application program should call the subroutine at some point before the vision system is to be activated for visual processing The subroutine normally needs to be called only one time for each camera per operating session The CALL instruction must have the following format CALL load area file cam thresh backlight to cam cam cal pmm to pix pix to pmm pmm to mm mm to pmm Serr where the program arguments have the interpretations that are shown in the following Adept Vision User s Guide Rev A 83 Chapter 5 84 LOADAREA V2 NOTE Although the CALL instruction is shown on two lines above it must be completed on a single line in your application program The variable names used here are for explanation purposes only Your application program can use any variable names you want file Serr cam Input parameter that passes the specification of the disk file con taining the area camera calibration data This parameter can be a string constant variable or expression The file specification follows disk unit name extension The file specification can also include a directory path as follows disk unit directory path Mname extension However the file name and extension must have the form AREAnnn DAT where nnn is the data set number if the data file was created by the Adept area vision calibration program a adv cal or by VisionWare If no error occurs while
134. apter 1 Vision Basics Vision System Representation Field of View 3 p D al al 3 3 3 3 AB Figure 1 5 Resolution Factors 44 Adept Vision User s Guide Rev A Chapter 1 Summary of Software Tools Summary of Software Tools This section gives a brief overview of the vision tools provided by AdeptVision VXL These tools are detailed in Chapters 9 10 and 12 Boundary Analysis Boundary analysis locates objects in the field of view and returns information about those objects sizes locations perimeters etc Boundary analysis locates objects by looking for bounded areas a contiguous area of light or dark pixels in the binary image These bounded areas are often called blobs Rulers Rulers are inspection tools you place in the vision image that return information based on the values found in the pixels the ruler crosses Linear rulers return distances between features of an object based on intensity changes edges in the field of view Arc rulers return the angular distance between object features You can set the length angle and position of these rulers Rulers work with both grayscale and binary images You can place multiple rulers in the field of view inspect multiple objects and examine the relationship between multiple objects Inspection Windows Inspection windows provide a quick way of obtaining basic graylevel binary or edge statist
135. arams Done Figure 12 8 Trained Prototype Model Step 2 Train Additional Instances The next step is to train additional instances This is oo inrougn Ser menu interace in the Vision window Refer to the section g ma page 191 steps 12 through 14 Figures 1 2 9 2 10 how Ed of the graphics that are displayed in the Vision window during these steps C 144 nan Instances on 220 Adept Vision User s Guide Rev A Chapter 12 Prototype Finder Example Are you sure PROTO1 1 samples trained New example Params Done Figure 12 9 Selecting Reference Corners for Prototype Finder Adept Vision User s Guide Rev A 221 Chapter 12 Prototype Finder Example Is prototype instance properly aligned vith the model PROTO1 2 samples trained lbn Params Done New example Figure 12 10 Instance Aligned With Model The final step is to use the prototype finder to locate a part The V code used to accomplish this is shown below NOTE This code assumes that you are still using the same AOI IBR switch settings parameter settings and variables that were used in the previous code examples Any changes to these are shown in the code example below 222 Adept Vision User s Guide Rev A Chapter 12 Prototype Finder Example Declare a variable for the model name F prot_name PROTTEAR Set prototype parameters ENABLE V V RECOGNITION enable prototype re
136. art ready input signal indicating a part is ready di pallet ready input signal indicating a pallet is ready do pal belt output signal driving the pallet conveyor do part belt output signal driving the parts conveyor AUTO row col max rows max cols row dist col dist AUTO passed num parts AUTO Sans AUTO gripz AUTO i Initialize variables arm cam 1 dwn cam 2 up cam 3 di oper 1001 di part ready 1002 di pallet ready 1003 do pal belt 5 do part belt 6 passed FALSE Assume the part failed inspection row 1 col 1 max rows 3 The pallet is 3x5 max cols 5 row dist 50 Spacing of pallet locations col dist 50 ENABLE UPPER Check to see if camera cal data is loaded load if necessary IF NOT DEFINED to cam 1 THEN CALL load cam cal END Should the operator create new robot locations DO PROMPT Do you want to teach new robot locations Sans UNTIL Sans y OR Sans n IF Sans y THEN Get the first pallet SIGNAL do pal belt TYPE Waiting for pallet WAIT SIG di pallet ready SIGNAL do pal belt 270 AdeptVision User s Guide Rev A Guidance Vision Program Chapter 14 Guidance Vision Program Teach the robot locations CALL teach pallet max rows max cols pal offset gripz ELSE Bring in a new pallet and update the pallet location CALL new pallet pal offset pal correctio
137. ate system 119 display modes using different 123 keyword changes 24 location 258 vis loc location variable 258 memory allocation 148 setting allocation 346 memory allocation 348 memory vs system memory 206 model processing 183 models displaying 209 renaming 210 parameters 298 queue 149 switches 295 tool data arrays 171 tools arcrulers 161 defining area of interest for 152 Finder tools 166 inspection windows VWINDOWI 171 linear rulers 158 transformation 61 fixed mount camera 260 window selecting display mode 121 window menu Cam frame 355 Display 123 355 Models 209 357 Ops 356 Pict 121 356 Status 357 Switches 129 358 Vision tasks scheduling 24 Vision guided tracking conveyor 292 VLOAD 207 215 VLOCATE 144 188 223 examples 145 with prototypes 198 Voltage Interruptions 31 VPICTURE 120 216 223 and VWINDOW 170 examples 121 getting an image 120 options 121 384 AdeptVision User s Guide Rev A syntax 120 using with different frame stores 283 with different frame stores 283 with external trigger 286 VPLAN FINDER 177 187 215 VQUEUE 149 188 217 VRENAME 211 VRULERI 158 161 array 158 VSHOW 178 209 210 VSTORE 206 214 VTRAIN FINDER 177 178 187 213 VTRAIN MODEL 189 202 203 correlation template 189 VWAIT 216 223 VWINDOW 170 and VPICTURE 170 example 170 171 instruction 234 VWINDOWI 171 W Window 172 defined 45 different types 172 vision adjusting 96 Workcell design considerations
138. ated manual is opened and the title page is displayed along with the bookmark list You can then select the desired destination within the manual from the bookmark list To return to the original manual click the go to previous view icon lt lt from the Acrobat Reader toolbar How Can Get Help Refer to the How to Get Help Resource Guide Adept P N 00961 00700 for details on getting assistance with your Adept software or hardware You can obtain this document through Adept On Demand The phone numbers are 800 474 8889 toll free 503 207 4023 toll call Please request document number 1020 AdeptVision User s Guide Rev A 33 Overview Introduction s ss ss a 36 What AdeptVision VXLIS 36 Physical Equipment rcl sns 36 Controller and Vision Processor 38 Robot or Motion Device 38 Graphics Terminal 2 2 38 User Equipment 39 What AdeptVision VXL Does 0 00 eee 40 Vision Basics 2 o 41 Pixel ou un 139 3 3 4 5 816 9 8 XXE CR UR IR DV ee a ee s 41 The Camera Imaging Surface 43 Resolution 25 25 25 2 2 5 2 5 43 Summary of Software Tools 2 2 2 45 Boundary Analysis 2 2 2 45 Rulers ss s s s s s sn 45 Inspection Windows a a a ln 45 Finder Tools
139. ates tmpl_1 and tmpl_2 to the file TPLATES VS on the default drive enter the command VSTORE tplates tmpl 1 tmpl 2 All correlation template names must have the form tmpl nn To store font font 3 to the file FONTS VS on the A drive enter the command VSTORE fonts font 3 All font names must have the form font nn Only one type of vision model can be stored in a file The instruction VSTORE models a proto font 4 tmpl 5 will result in an error Remember that after training vision models reside only in vision memory They must be explicitly stored to a disk file or they will be lost when the controller is turned off If the file specification does not contain a file extension the default extension NS is added when storing vision models VLOAD In order to use vision models you must load them to vision memory rather than the system memory VLOAD loads files from a disk file to vision memory its syntax is similar to LOAD VLOAD is also a program instruction Adept Vision User s Guide Rev A 207 Chapter 12 Loading and Storing Vision Models 208 NOTE This command supports the ObjectFinder tool Except where noted the usage is the same as for prototypes The syntax for VLOAD is VLOAD drive file spec To load the disk file of vision models VMODELS VS from the C drive into vision system processor memory issue the command VLOAD C vmodels VS is automatically ad
140. ave a calculated camera calibration a default millimeter to pixel ratio of 1 0 is used Relative measurements can be made based on this default calibration NOTE Relative measurements based on the default calibration can be compared only from one camera Adept Vision User s Guide Rev A Chapter 4 Why Calibrate a Camera Perspective Distortion Corrections In order for a camera to see an object in its correct aspect ratio the object must be perfectly parallel to the camera imaging element Otherwise objects will appear distorted and measurements will not be accurate If the square shown in Figure 4 1 was not parallel to the camera imaging element when the image was acquired the image might look like Figure 4 2 This distortion is similar to looking down parallel railroad tracks that appear to converge in the distance Notice that the two rulers in Figure 4 2 will return different widths for the same square The rulers detect edges at these 3 points One ruler calculates a width of 0 5 millimeters the other calculates a width of 0 6 millimeters Figure 4 2 Perspective Distortion During the calibration process a matrix of transformation elements is defined that will correct for perspective distortion See Appendix C of the AdeptVision Reference Guide for details on the matrix When Do Need the Perspective Distortion Corrections The perspective distortion corrections should be used whenever you cannot align th
141. b y scale 8 ius assuming the blob is a circle radius SORT VFEATURE vf area xyr PI ys Get radius cx DX cy DY range vloc vloc 20 ys AdeptVision User s Guide Rev A 331 Appendix G Use a window to compute an edge strength at contrast Use a rectangle so will not fail tall enough to catch some outside area when small enough to not reach to next ring VWINDOWI ac cam virt 2 1 data PARAMETER V EDGE STRENGTH ac cam virt ac refine vloc one third of maximum Must be but if clipped close to edge 1 cx radius cy range range 3 data 6 data 5 3 Check the color of the pixels on the inside of the edge VWINDOWI ac cam virt 0 1 data radius IF data 4 data 3 5 THEN ok 0 ELSE ok 1 END radius range 2 2y CX OY 10 10 If mostly dark on inside Dark on inside of arc finder else Light on inside of arc finder Do a VFIND ARC to find the radius and center VFIND ARC modes bit field values Circle color 0 dark 1 bright Find 0 center only 2 radius only 4 both Search position point 0 center 8 inner 16 outer VFIND ARC ac cam virt ok 0 0 1 100 data cx cy radius range 0 O Check out the various indicators of failure just don t do the refinement NOTE Should not exceed 35 characters The
142. bandon the operation From the V Monitor Prompt The command instruction VDELETE model_name will also delete models from vision memory See the AdeptVision Reference Guide for more details Renaming Vision Models 210 Renaming a model in vision memory does not change the name in the disk file the model is stored in To permanently change a vision model s name the disk file must be deleted with the FDELETE command and the models if any must be stored with the VSTORE instruction Using the Vision Window Menus To rename a vision model AdeptVision User s Guide Rev A Chapter 12 Displaying Deleting and Renaming Vision Models 1 Select Rename prototypes Rename fonts or Rename templates from the Models menu 2 A list of appropriate models in vision memory will be presented Click on the model to be renamed 3 Type the new name in the dialog box presented Click on Ok to change the name Click on Prev to abandon the change From the V Monitor Prompt The monitor command VRENAME new_name old_name will also rename a vision model See the AdeptVision Reference Guide for more details AdeptVision User s Guide Rev A 211 Chapter 12 ObjectFinder Example ObjectFinder Example 212 This section provides an example of training and then finding a sample object using the ObjectFinder The supporting V code is also provided for reference This example uses the teardrop shaped object shown in Figu
143. be performed When this mode is used the VPICTURE operation is typically followed by a VWINDOW instruction 1 See the full description of VPICTURE in the Adept Vision Reference Guide for details on storing multiple images 120 Adept Vision User s Guide Rev A Chapter 8 VDISPLAY Displaying the Image to process only sections of the field of view that have critical features See page 170 for details VPICTURE Examples Acquire an image with virtual camera 3 and process it immediately VPICTURE 3 Acquire an image with virtual camera 3 and hold it for later processing quick frame grab VPICTURE 3 2 Executing VPICTURE From the Menu To execute a VPICTURE command from the menu 1 Pull down the Cam Frame menu and drag to the number of the camera you want to take a picture with only the first 8 virtual cameras can be selected from the menu 2 Pull down the Pict menu and drag to the mode you want the picture taken in The results will be shown in the vision window TESTI 0 samples trained Cam Frame Display Ops Status Acquire VPICT 2 Process VPICT 0 Acquire process VPICT 1 Models Switches Resolution Figure 8 1 VPICTURE Options VDISPLAY Displaying the Image AdeptVision VXL provides several ways of displaying an acquired image on the screen You choose a display mode depending on what image characteristics you are interested in how time critical your application is and
144. ble V BINARY so the edge operator is not performed at every picture 4 Use both of AdeptVision VXL s frame stores to inspect alternating parts the two frame stores are described next 5 Have the system gather the minimum data required to successfully inspect the part 6 Use vision tools such as raw binary or fine edge rulers that operate on unprocessed image data whenever possible 7 Rulers are faster when they are rotated exactly 0 45 90 135 180 etc 8 If an inspection needs to be performed on processed image data perform the inspection within as small an inspection window as practical 9 Make the inspection tools as small as practical 10 VWINDOW VWINDOWB and VWINDOWI tools that are oriented orthogonally are much faster than rotated windows 11 When using tools that return a variable number of elements to an array such as VRULERI limit the number of array elements the tool looks for 12 On tools that allow you to set the effort level set the lowest level possible that still achieves effective inspections 13 Secure the part as accurately as possible so processing time does not have to be expended looking for the part 14 Organize the sequence of inspections so the most likely sources of failure are checked first Terminate inspections as soon as a failure is detected 282 Adept Vision User s Guide Rev A Chapter 15 Performing High Speed Inspections 15 A strobing device or a shuttered
145. bration files See the Instructions for Adept Utility Programs for details on load area CALL load area arm cal arm cam VAL Sarm dat RUE to cam 1 arm cam cal Serror CALL load area dwn cal dwn cam VAL Sdwn dat RUE to cam 2 dwn cam cal Serror CALL load area up cal up cam VAL Sup dat TRUE to cam 3 up cam cal Serror END 274 AdeptVision User s Guide Rev A Chapter 14 PROGRAM new pallet orig offset correction ABSTRACT INPUT PARM orig offset the offset that was calculated when the pallet OUTPUT PARM correction the difference between the location of the calculates the new pallet correction factor This program monitors the proper digital I O to bring a new pallet into the workcell When a pallet is in place a line finder reference frame was originally taught original pallet and the current pallet Bring the pallet into the workcell Lo be SIGNAL do pal belt TYPE Waiting for pallet WAIT SIG di pallet ready SIGNAL do pal belt cate th dge of the current pallet and calculate the differenc tween it and the original pallet VDISPLAY dwn cam 1 1 VPICTURE dwn cam 2 VDEF AOI 2000 1 100 150 50 25 180 VFIND LINE dwn cam data 2000 correction data 3 orig offset Adept Vision User s Guide Rev A Guidance Vision Program 275 Chapter 14 PROGRAM teach pallet rows cols pal ABSTRAC
146. cal cameras Associated with each physical camera will be one or more virtual cameras A virtual camera is a single set of switches and parameters calibration data and a vision queue see Figure 3 2 Switches and parameters are introduced in the next two chapters The vision queue is introduced in Chapter 9 Calibration is discussed in the next section A physical camera can have up to 32 virtual cameras associated with it but the total number of virtual cameras associated with all physical cameras cannot exceed 32 Each physical camera must have at least one virtual camera associated with it If you have 4 physical cameras camera 1 could have eight virtual cameras camera 2 could have sixteen virtual cameras camera 3 could have five virtual cameras and camera 4 could have three virtual cameras Or they could have any combination of virtual cameras that add up to 32 or less Physical Camera Virtual Camera switches parameters vision queue calibration data model planning Figure 3 2 Physical Virtual Camera Relationship AdeptVision User s Guide Rev A 59 Chapter 3 Motion Devices and Calibration How Are Camera Numbers Assigned The physical camera number is determined by the port the camera is plugged into on the vision processor see the Adept MV Controller User s Guide The virtual camera number and the physical camera associated with it is determined during camera calibration or when calibration data is loaded One of th
147. calibration results Thus if HPS data is available it should be used for any application with critical accuracy requirements For stationary cameras if HPS data was used while calibrating an associated virtual camera the same HPS data must also be used when the calibration results are used including when the calibration results are tested with the calibration program Likewise if HPS data was not used during calibration HPS data must not be used when the calibration results are used When using a stationary camera significant inaccuracies could result if HPS data is not used consistently For cameras mounted on the robot use of HPS data during calibration will improve the calibration results However unlike the constraints mentioned above for stationary cameras when using a camera mounted on the robot HPS data does not need to be used during the application if it was used during calibration Also when the camera is mounted on the robot it is okay to use HPS data during the application even if the data was not used during the calibration procedure Of course using HPS data whenever possible results in improved accuracy The Advanced Camera Calibration program can make use of multiple HPS maps This is needed when using the robot in both left handed and right handed configurations over the same work area or when separate maps are needed for different calibrations around the workspace When HPS maps are loaded into memory from disk by the
148. camera number and or the physical camera with which the virtual camera is associated This is an important menu item because all the other menu items pertain only to the current virtual camera which is marked by asterisks in the status block above the list of menu items When this menu item is selected you are asked to enter 1 the number of the virtual camera you want to work with and 2 the number of the physical camera to use For each prompt you can simply press the Enter key to retain the corresponding current camera selection As mentioned above the calibration status display shows a group of eight cameras that includes the current camera The status information for another group of eight virtual cameras can be viewed by using this menu selection to change the current virtual camera to be within the desired group When you select a new virtual camera number the default physical camera is the one previously associated with that virtual camera Therefore pressing the Enter key in response to the prompt for the physical camera will just change the virtual camera selected SELECT different robot NOTE This selection is available only for systems with multiple robots and is not displayed with nonrobot systems This selection is used to change the currently selected robot This is an important menu item because all the other menu items pertain only to the current robot which is indicated in the lower left of the display When this me
149. cessing Windows VWINDOW on page 170 e Remove a region s data from the vision queue and make it available to VFEATURE using the VLOCATE instruction e Use VFEATURE to return the particular information you are interested in We have already seen the syntax for VPICTURE and how to set system switches This section will describe VLOCATE and VFEATURE and describe the VOUEUE instruction that allows you to see the status of the vision queue VLOCATE When an image is processed each region s data is stored in a queue If V HOLES is enabled the data about the holes in each object is also stored in this queue To use the data you must remove it from the queue and make it available to VFEATURE The VLOCATE program instruction performs this operation NOTE This instruction supports the ObjectFinder tool Except where noted the usage is the same as for prototypes The syntax for VLOCATE is VLOCATE camera mode order var_name trans_var camera is replaced with the camera from whose vision queue you wish to remove an object There is a queue of data for each virtual camera The default is camera 0 which makes the contents of the queues of all virtual cameras available mode is replaced with 0 causing the system to attempt to remove a region s data from the queue referred to as locating a region 0 is the default 1 See the Adept Vision Reference Guide for details on default values for mode and order 144 Adept Visio
150. cognition ENABLE C ENTROID Acquire a processed image and locate the prototype VPICTURE cam virt VWAIT VLOCATE cam virt 2 S prot name loc Wait for operation to complete As shown in the ObjectFinder programming example you could add some additional code that would show the number of found objects that are stored in the Vision queue and then would display the X Y and Rotation of the objects The V code used to accomplish this is shown below NOTE If you plan on adding the code below you should delete or comment out the VLOCATE instruction above Otherwise there may be nothing left in the Vision queue for the VOUEUE real valued function to return Show the total number of parts stored in the Vision queue ttl tears VQUEUE cam virt S prot name TYPE Total objects ttl tears Show the location s of the found object s Ld FOR i 1 TO ttl tears VLOCATE cam virt 2 S prot name loc x VFEATURE 2 y VFEATURE 3 7 z VFEATURE TYPE Center i y yr Z After executing the program code the Monitor window will look similar to that shown in Figure 12 7 AdeptVision User s Guide Rev A 223 Programming AdeptVision VXL INTOQUEION amp amp s o o4 o4 48 BB OR aaar prp i 226 Application Development Strategy 226 Vision Inspection Example Program 227 Developing the Program Code
151. ct Disable the switch for a dark background and enable it for a light background Applies to binary processing only VBOUNDARIES Enables or disables boundary analysis If this switch is disabled perimeter edge centroid 2nd moment data and hole data will not be gathered This switch must be enabled for ObjectFinder prototype recognition and OCR 130 Adept Vision User s Guide Rev A Chapter 8 Using Parameters Using Parameters Parameters affect the vision system in much the same way switches do except that parameters can take on a range of values not just on or off Setting Parameters Parameters are set by entering the monitor command program instruction PARAMETER param_name cam virt value param_name is replaced with the name of the parameter you want to set cam virt is replaced with the virtual camera number you want to set the parameter for The default is all cameras If you are using multi ple cameras with different parameter settings make sure you include a camera number with each PARAMETER command value is replaced with the new value you want the parameter to have Parameter Examples Output the entire parameter list to the screen PARAMETER Display the value of a single parameter V THRESHOLD for example PARAMETER V THRESHOLD To return the value of a parameter from within a program use the PARAMETER function TYPE V THRESHOLD is PARAMETER V THRESHOLD 1
152. ct that the system will process Must be less than or equal to V MIN AREA Applies only to boundary analysis and models ObjectFinder prototype and OCR V THRESHOLD Sets the intensity at which the system divides pixels into black or white V2ND THRESHOLD Used with V THRESHOLD to establish a range of intensity that the system will see as black or white For example with V THRESHOLD at 50 and 2ND THRESHOLD at 70 all pixels between 50 and 70 would be seen as black V EDGE STRENGTH Sets the threshold at which the system recognizes an edge in grayscale processing If the variation in pixel intensity across a region exceeds this parameter an edge is recognized V GAIN AdeptVision VXL recognizes 128 degrees of intensity V GAIN works with V OFFSET to maximize the use of these 128 values V GAIN scales the incoming analog video signal V OFFSET Works with V GAIN to maximize the range of intensities that the system recognizes in your objects V OFFSET is applied to the incoming video signal 132 Adept Vision User s Guide Rev A Chapter 8 Examples of Switch and Parameter Settings Examples of Switch and Parameter Settings The examples in this section show the effects of changing switches and parameters The examples were taken with a VPICTURE 1 instruction and with VDISPLAY mode set to 3 NOTE These examples allow you to see the effects of various switch and parameter settings For V
153. d by grayscale tools looks at intensity changes in a neighborhood of pixels This strategy allows potential subpixel accuracy When Do Need the Millimeter to Pixel Ratio The following situations require a calculated millimeter to pixel ratio Inspections that return absolute distance measurements These include distance measurements returned by VFEATURE and by VRULERI tools Inspections that calculate areas or perimeters These include area and perimeter measurements returned by VFEATURE and by VWINDOWB and VFIND LINE tools Inspections that return Cartesian values used in guidance vision These include Cartesian values returned by VFEATURE and VLOCATE and from the VFIND LINE VFIND POINT VFIND ARC and VWINDOWB tools e Inspections where distances are being measured or Cartesian values are being compared from objects found by different cameras The following situations do not require a calculated millimeter to pixel ratio e Inspections that return grayscale or binary pixel statistics These include the average minimum maximum and standard deviation of graylevel values and the binary pixel counts from VWINDOWI tools Inspections that return angular values These include angular measurements returned by VFEATURE and by VFIND LINE tools NOTE Accurate distance measurements from these tools require a calculated millimeter to pixel ratio nspections that require only relative measurements If a virtual camera does not h
154. d calibration settings while using the same physical camera The switches and parameters can be broken into three main functional groups The first group influences the way the system initially acquires the image This group will be presented in this section The second group influences the types of processing the system performs and what information it gathers about the objects it finds in the field of view This group will be presented in Chapter 9 The third group influences the model recognition processes This group will be presented in Chapter 12 The entire group of switches and parameters is listed in Appendix A AdeptVision User s Guide Rev A Chapter 8 Using Switches Using Switches Switches are software variables that can take on a binary value they are either on or off Switches are referred to as being enabled or disabled There is an array of switch settings for each virtual camera Enabling Disabling Switches Switches are set using the ENABLE and DISABLE monitor commands or program instructions Their syntax is ENABLE switch camera switch camera DISABLE switch camera switch camera switch is replaced with any of the switches listed in Table 8 1 or Appendix A camera is replaced with the number of the virtual camera you want to set the switch for The default value is all cameras If you are using multiple cameras with different switch parameter set tings make sure you include a camera nu
155. d can be disabled using the symmetry parameter in the VTRAIN FINDER instruction Intermodel disambiguation is enabled by default and can be disabled using a new parameter in the VPLAN FINDER instruction AdeptVision User s Guide Rev A 177 Chapter 11 Automatic Learning Details ObjectFinder Model File Format Starting with version 12 3 the file format for ObjectFinder has changed and will be compatible with new releases of the ObjectFinder AdeptVision versions 12 0 and 12 1 can read only the model files created in that version For version 12 3 and later the structure of model files is a superset of the structure used in previous versions When older model files are read the fields from later versions are filled with appropriate default values to maintain compatibility When models are saved the latest file format is always used Automatic Learning Details Setting the mode argument in the VFINDER instruction to 3 or 4 invokes the automatic learning feature Whenever VFINDER is executed in learning mode mode value 4 if the add instances ok flag in the model is FALSE or if the maximum number of instances to accumulate has been reached then any new instances are ignored The maximum number of instances is 17 To set the add instances ok flag in the model use the VTRAIN FINDER instruction See Creating an ObjectFinder Model on page 187 for details To read the value from the model use VSHOW VFEATURE See VFEATURE on pa
156. d for backward compatibility Blobs allocation in Kb Object data structures allocation in Kb Run lengths allocation in Kb Bounds in box allocation in Kb Unmatched bounds allocation in Kb Allocation of AOIs in Kb Allocation of VTRANS in Kb Oo OLN oD OFF A wo N Allocation of user LUTs in Kb Elements 2 through 7 are memory allocations in units of kilobytes The default amount of total memory allocated for the vision system software has been increased from 1 25Mb to 1 5Mb These values should be in the range specified in Table 1 2 If a value outside the range is specified the closest in range value is used If a given value is 0 then the default allocation is used If the allocation size doubles the number of items doubles A few of the default allocations differ depending on the image size Table I 2 applies to a 512x480 image setup Table I 2 Vision Memory Allocation Allowed Range Default Item Approx Bytes in Kb Kb Size items Used Blobs alloc 4 to 512 28 32 875 28000 Objects alloc 4 to 800 77 116 663 76908 Run lengths alloc 4 to 255 125 4 31250 125000 Bounds in box alloc 1 to 40 4 56 71 3976 Unmatched alloc 2 to 56 30 12 2500 30000 AOIs alloc 1 to 100 6 28 214 5992 VTRANS alloc 1 to 100 1 48 20 960 348 Adept Vision User s Guide Rev A Appendix I The DEVICE Instruction With Vision Table I 2 Vision M
157. d in Table 9 1 and Table 9 2 determine what data and in some cases the form of the data the system gathers during boundary analysis of the regions within the processed image Table 9 1 Boundary Analysis Switches Switch Effects V BOUNDARIES Enables or disables boundary processing If this switch is disabled perimeter edge centroid 2nd moment data and hole data will not be gathered Must be enabled for vision model processing VSUBTRACT HOLE When this switch is enabled the area of holes within an object will be subtracted from the area calculation This switch affects the parameters V MIN AREA V MAX AREA and V MIN HOLE AREA 142 AdeptVision User s Guide Rev A Chapter 9 Introduction Table 9 1 Boundary Analysis Switches Continued Switch Effects V CENTROID The centroid of an object is calculated if this switch is enabled This switch increases processing time and should be disabled if the centroid information is not needed V BOUNDARIES must be enabled V MIN MAX RADII The perimeter points closest to and farthest from the centroid of an object are calculated when this switch is enabled VBOUNDARIES and V CENTROID must be enabled V2ND MOMENT The 2nd moments of inertia and best fit ellipse are calculated when this switch is enabled V CENTROID and VBOUNDARIES must be enabled V SUBTRACT HOLES is ignored V PERIMETER The perimeter of an object
158. d robot configuration if the corresponding left handed HPS map is in memory while the application is running The HPS mappings provide a means to accurately position the center of rotation of the robot quill in an X Y plane of the robot workspace The HPS mappings will not be so helpful however if the pointer vacuum gripper or camera is mounted such that it is affected by the rotation of robot joint 4 or 5 The positions of the center of the quill will still be accurate of course but the actual positions of the pointer gripper or camera will be limited by the accuracy of joint 4 or 5 This effect although small is compounded by how far the pointer gripper or camera is from the center of the quill Therefore the accuracy improvement from the use of HPS data can be somewhat reduced when using an off center pointer or gripper or a camera mounted on link 4 This comment is valid only for configurations with a joint 4 axis perpendicular to the HPS surface Similarly since the HPS mappings are done for only one plane that is at a constant Z height in the robot world coordinate frame movements in the Z direction are not improved by using HPS data Therefore for calibration of horizontal cameras the vertical axis of the camera is not improved at all when using HPS data However HPS data may still be useful for improving accuracy in the horizontal axis of the camera Adept Vision User s Guide Rev A 323 Calibration Targ
159. d switches 128 139 186 200 201 294 298 Prototype 200 Part location part loc location variable 259 Performing correlation matches 189 frame relative inspections 287 high speed inspections 282 optical character recognition 202 Perspective calibration 99 AdeptVision User s Guide Rev A 379 Index transformations 115 distortion 69 distortion corrections 69 transformations 114 Physical equipment 36 vs virtual cameras 59 118 Physical virtual camera relationship 59 Pict vision window menu 356 options 121 Ping pong frame grabbing 283 Pixel 41 defined 41 Pixel clocked camera 51 Planning fonts 203 Planning the ObjectFInder model 187 Point of Origin 119 Polarizing filters 320 Pose refinement details 179 POWER enabling robot power 61 Preview window 194 Processing windows 45 172 VWINDOW 170 Program ac refine vloc 331 adv cam sample 330 header and variables declarations 230 instructions DISABLE 129 ENABLE 129 executing from system prompt 146 VDEF AOI 152 VDISPLAY 121 VFIND LINE 166 VLOCATE 144 VPICTURE 120 VRULERI 158 161 VWINDOW 170 VWINDOWI 171 Program code developing the 230 Program Security 30 Programming considerations 242 Proposals 175 Prototype editing operations 193 model example 219 locating a part 222 processing 183 switches 200 switches and parameters 200 training 219 220 model parameters 201 models loading and storing 206 parameters 196 assign cameras 197 edge weights 197
160. data Calibration object attached to robot general case Specific common camera setups covered by this method are upward looking cameras an X Y table with overhead camera and horizontally mounted cameras This method assumes that the camera is mounted in a fixed position with respect to the robot base The calibration object must be attached to the robot tool tip as defined by any TOOL transformation and the orientation of the tool tip must be such that its Z axis is roughly parallel to the Z axis of the camera Adept Vision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu The center of the calibration object should be as close to the tool tip location as possible However if the tool tip can rotate about its Z axis one of the questions asked during calibration then the program will compensate for any offset from the tool tip On the other hand if the tool tip cannot rotate then the center of the calibration object must be precisely at the tool tip location This can be done using the TOOL transform To get a good thresholded image we suggest that the calibration dot or other simple shape be drawn on a rigid surface that is large enough to always fill the field of view Otherwise the robot itself or the overhead scene can cause a complicated background that is difficult to screen out by adjusting the vision parameters Downward looking stationary camera using vacuum gripper This calibration method is
161. ded if an extension is not specified AdeptVision User s Guide Rev A Chapter 12 Displaying Deleting and Renaming Vision Models Displaying Deleting and Renaming Vision Models Vision models can be displayed deleted and renamed The Vision window provides a menu system for performing these tasks However since the ObjectFinder is not supported by the Vision window menus any manipulation of the ObjectFinder models must be done by issuing commands at the V monitor prompt All of the V commands described in this section support the ObjectFinder tool Except where noted the usage is the same as for prototypes NOTE The type of model being supported is determined by the name which has been trained as either a prototype or an ObjectFinder model The name is first checked against the lists of prototypes for backward compatibility Therefore you should not use the same name for a prototype model and an ObjectFinder model Displaying Vision Models This operation displays models that have already been loaded into vision memory Using the Vision Window Menus Vision models in vision memory can be displayed and listed from the Models menu To display a graphic representation of a vision model 1 Select Show prototype Show font or Show template from the Models menu 2 A pop up window will appear showing the names of all the selected vision models currently in vision memory Click on the model you want to see and the model
162. distances between edges recognize bounded regions and extract other information about the image Resolution The number of rows and columns in the camera imaging surface the lens focal length and the distance of an object from the camera will determine the final resolution of whatever you are viewing Figure 1 5 shows the relationship between focal length and viewing distance In general optimum resolution will come when the object of interest fills as much of the field of view as possible while still being in focus The image representation of our hypothetical 22 x 16 camera shows very poor resolution due to the low density of pixels The size of the arrays in cameras supported by AdeptVision VXL typically ranges from 501 x 485 pixels to 768 x 493 pixels Appendix C details the steps to selecting the optimum lens focal length viewing distance and camera imaging surface An important concept that is illustrated by Figure 1 5 is the relationship between a pixel s dimensions and the physical size of an object A pixel will always have a relative relationship to the size of an object It will have an absolute relationship only when you fix your viewing distance and lens focal length and then calibrate the vision system The calibration process establishes an absolute relationship between a pixel and the actual dimensions of the field of view See Chapter 4 for an overview of the calibration procedure AdeptVision User s Guide Rev A 43 Ch
163. e IF good part THEN rul ibr 4000 AOI 4 VDEF AOI rul ibr 2 cent circlex cent circley 10 0 VRULERI cam 0 1 circ hole rul_ibr Check the value of the first transition which will be the radius against the required value IF circ hole 0 0 THEN YPE T ELSE IF ABS 2 circ hole 2 circ diam 1 THEN TYPE The circular hole CALL reject part good part FALSE END if ABS if circ hole 0 if good part he radius of the circular hole could not be determined is not the correct size Eri Z g We are now ready to inspect the polygon to see if the angle of the slanted face equals 25 x2 We will use a VFIND LINE tool to make this inspection The center coordinates of the polygon are still available through VFEATURE so we can center a VFIND LINE tool on these coordinates Place a VFIND LINE tool at the center of the polygon and have it look in the negative Y direction for an edge Search from dark to light object to background IF good part THEN lfdr ibr 501100 AOI 5 VDEF AOI lfdr ibr 1 VFEATURE 2 VFEATURE 3 10 10 VFIND LINE cam 0 poly hole lfdr ibr Compare the actual value with the acceptable valu 236 Adept Vision User s Guide Rev A Chapter 13 Developing the Program Code IF ABS poly hole 4 poly angle gt 2 THEN TYPE The poly shaped hole is incorrec
164. e In addition to grayscale processing AdeptVision VXL can process image data in binary mode In binary mode all the cells with a value above a certain value will be seen as white and those below that value will be seen as black Figure 1 4 shows how the sample object would be seen in binary mode Chapter 8 discusses the features and uses of grayscale and binary modes in more detail Figure 1 4 A Binary Image 42 AdeptVision User s Guide Rev A Chapter 1 Vision Basics The Camera Imaging Surface Video cameras used for machine vision replace the film used in a traditional camera with a light sensitive electronic surface When you instruct the system to acquire an image take a picture the imaging surface is exposed for a short time and the exposure is read into the vision processor The electronic surface is actually an array of photon detectors that store a charge based on the amount of light hitting the detector The more light that hits an individual detector the larger the stored charge and the higher the grayscale value that is read into the vision processor When an image is acquired all the charges in the imaging surface are zeroed out the surface is exposed for 1 10 000 to 1 30 of a second and the value recorded in each cell pixel of the imaging surface is read into the vision processor The resulting matrix of values is analyzed to locate edges and bounded regions Vision tools can then be used to measure
165. e AdeptMotion MotionWare PalletWare FlexFeedWare AdeptNet AdeptFTP AdeptNFS AdeptICP IP AdeptForce AdeptModules AdeptWindows AdeptWindows PC AdeptWindows DDE AdeptWindows Offline Editor and V are trademarks of Adept Technology Inc Any trademarks from other companies used in this publication are the property of those respective companies Printed in the United States of America Table of Contents Introduction Compatibility What s New in Ad pWision VXL verion 13 0 ObjectFinder Changes Feature based Refinement Improved Handling of Complex Parts Other Vision Changes Keyword Changes How to Use This Manual Organization Before You Begin Related Manuals Safety Reading a a training ir Users dnd desido System Safeguards Safety Features on the Controller ibiefas Panel CIP Computer Controlled Robots and Motion Devices Automatic mode Manually Controlled Robots and Motion Devices Other Computer Controlled Devices Program Security Overspeed Protection Voltage Interruptions Inappropriate Uses of the Ade pides C ntiolier Sharh Notes Cautions and Warnings Hypertext Links in Online Manuals Links to Cross References Links to Related Manuals Links to Related Keywords How Can Get Help Overview Introduction Adept Vision User s Guide Rev A 21 n 23 23 23 23 24 24 25 25 26 26 28 28 x 29 29 29 4 30 30
166. e Installation and use must comply with all safety instructions and warnings in this manual Installation and use must also comply with all applicable local or national statutory requirements and safety standards The AdeptWindows controller subassembly is not intended for use in any of the following situations e In hazardous explosive atmospheres e In mobile portable marine or aircraft systems e In life support systems e In residential installations e n situations where the AdeptWindows controller sub assembly may come into contact with liquids e Insituations where the AdeptWindows controller subassembly will be subject to extremes of heat or humidity See the Adept MV Controller User s Guide for allowable temperature and humidity ranges Notes Cautions and Warnings There are three levels of special notation used in this manual They are Adept Vision User s Guide Rev A 31 Introduction Hypertext Links in Online Manuals WARNING If the actions indicated in a WARNING are not complied with injury or major equipment damage could result A warning statement typically describes the hazard its possible effect and the measures that must be taken to reduce the hazard CAUTION If the action specified in the CAUTION is not complied VAN with damage to your equipment could result NOTE A NOTE provides supplementary information emphasizes a point or procedure or gives a tip for easier operation Hypertext Links in Onl
167. e Setting Lines Speed 0 1 15 No shutter 1 1 1 16000 Fast 2 2 1 8000 3 4 1 4000 4 8 1 2000 5 16 1 1000 Slow 6 32 1 500 7 64 1 250 8 128 1 125 For Normal Synchronous Mode For normal mode not using asynchronous reset the shutter control rotary switch can be set to any position depending on the shutter speed required for the application The shutter dial settings for this mode are the inverse of those shown in Table H 1 with the exception of setting 0 which is no shutter for both modes e If your application has no motion during a frame a shutter control setting of 2 equals 1 125 shutter speed is recommended AdeptVision User s Guide Rev A Appendix H EVI Board Settings e If your application has motion during a frame a higher shutter setting is recommended You must also open the aperture or increase the intensity of the lighting when operating at higher shutter settings EVI Board Settings The Pulnix TM 1001 camera requires that an EVI board be installed in the Adept MV controller This board has several sets of DIP and rotary switches that must be configured specifically for the Pulnix TM 1001 camera See the Adept MV Controller User s Guide for details on EVI board switch settings Camera Cables The Pulnix TM 1001 requires a special 4 camera Hydra cable and special breakout cable for attachment to the auxiliary connector on the 4 camera cable Both of these cables can be purchased from Intercon
168. e and ignored the change Grayscale operations would have perceived the intensity difference and calculated an edge In the case of an object with several interior features grayscale operations may be the only way to recognize interior features You may find when inspecting a part that the interior features are not of interest and need to be filtered out in which case binary operations might be more appropriate Some additional considerations when deciding whether to use grayscale or binary operations are 126 Adept Vision User s Guide Rev A Chapter 8 Binary vs Grayscale Operations 1 A few AdeptVision VXL tools can operate only on binary data These will be described in the following chapters 2 All of the grayscale tools can be used even when the picture is processed with binary operations 3 Grayscale tools can be more accurate than binary tools Grayscale tools use an algorithm that potentially allows them to locate features with subpixel accuracy Each time an image is acquired both grayscale and binary data are stored When making a decision about the type of operation to use you are not limited to one or the other You can inspect an image using binary and grayscale operations making use of the unique features of each to make different inspections of the image AdeptVision User s Guide Rev A 127 Chapter 8 Switches and Parameters Switches and Parameters 128 Before you can begin using the vision too
169. e bar on the left of the monitor screen When satisfied with both settings click on OK The values you have selected will be assigned to the system parameters V THRESHOLD and V 2ND THRESHOLD for the current virtual camera Click on QUIT to reset the thresholds back to the settings they had when you chose this option ADJUST vision WINDOW processing boundaries This selection allows you to use the mouse to change the boundaries of the window processed when VPICTURE operations are performed Adept Vision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu To adjust the window simply click on and drag the upper left corner or the lower right corner When satisfied with the boundaries click on OK The boundaries you have selected will be assigned to the system parameters V FIRST COL V LAST COL V FIRST LINE and V LAST LINE for the current virtual camera Click on QUIT to reset the window back to the setting it had when you chose this option CALIBRATE the Current Camera Menu The Advanced Calibration program offers the following calibration options accessed by selecting 3 gt CALIBRATE the current camera 0 Return to the main menu 1 Camera only other methods use the robot Stationary camera with robot 2 General method not automated 3 Calibration object attached to robot general case 4 Downward looking camera using vacuum gripper 5 Object on moving belt robot downstream of camera Camera mo
170. e by adding code in your application program that calls a subroutine to load the calibration data from disk See LOADAREA V2 on page 82 for a description of this procedure Adept Vision User s Guide Rev A Chapter 6 LOAD STORE Calibration Data Menu The Advanced Camera Calibration program provides the ability to store calibration data in a disk file and to retrieve the data from a disk file NOTE Stored calibration data is valid only if the following have not changed since the camera was calibrated the camera mounting the camera adjustments and the distance from the camera to the work surface Select LOAD STORE calibration data from to disk and the following secondary menu is displayed O gt RETURN to the main menu 1 gt LOAD calibration data from disk 2 gt STORE calibration data to disk LOAD STORE Calibration Data From To Disk Menu Options LOAD calibration data from disk To retrieve stored calibration data select LOAD calibration data from disk The program asks which disk drive and directory to read calibration data from drive and path specification is described in the previous section After the disk and directory are specified the program displays the names and comment lines for all the calibration files in that directory You can then enter the number of the file to load or press the Enter key to cancel the load operation NOTE The current virtual camera number is compared with the camera numb
171. e first questions asked during camera calibration is what virtual camera number you want associated with the physical camera you are calibrating Your answer to this question determines which virtual camera is being calibrated and which physical camera it will be associated with Why Use Virtual Cameras Switches and parameters can be set for an individual virtual camera Calibration data and prototype groups can also be defined for individual virtual cameras Virtual cameras allow you to use the same physical camera to look at the same image using different combinations of calibration prototypes switches and parameters simply by specifying different virtual cameras For example you might be inspecting different areas of an object each of which requires its own switch parameter settings Or you might be presenting two or more different objects to the same camera for inspection If these objects are different distances from the camera but still in focus you will need different camera calibration data for each object Since camera calibration is established for each virtual camera you could use different virtual cameras calibrated for the different distances to inspect the objects Unless noted this manual assumes your system has only one camera and that virtual camera 1 has been assigned to it Therefore all references to a camera mean virtual and physical camera 1 Motion Devices and Calibration For systems with motion devices
172. e following options e Camera lenses extension tubes e Strobe lights or other area lighting Optical filters e Camera mounting hardware e Robot or motion device Installing the Controller Your controller should be set up and configured before you install the peripheral vision system equipment See Adept MV Controller User s Guide for details on setting up the controller This guide also shows where to connect the monitor keyboard and pointing device to the controller If you are using digital I O pay particular attention to the controller user s guide s instructions on installing and configuring digital I O in your workcell Attaching Cameras and Strobes The Adept MV Controller User s Guide shows how to connect cameras and strobes and to set any hardware options required by the various cameras and strobes 50 Adept Vision User s Guide Rev A Chapter 2 Setting up the Hardware Appendix L lists several manufacturers that supply strobe lighting and general lighting that is compatible with AdeptVision systems Strobe Compatibility Adept s strobe signal is TTL compatible with a duration of 120 psec and an output of 80 120 mA positive going pulse The strobe signal is normally set active high but can be configured using the DEVICE instruction see Appendix I Strobe lights have a latency between signal detection and flash This latency combined with the flash duration should not exceed 100 psec Cameras Support
173. e image surface with the camera imaging element and e You are using tools that return distance angular or Cartesian values e You are using the system for guidance vision Adept Vision User s Guide Rev A 69 Chapter 4 Why Calibrate a Camera Camera to Robot Transformation In order to use camera data to acquire or place objects you must use the calibration program to calculate a transformation that relates the camera field of view to the robot There are two classes of transformations fixed mounted camera and robot mounted camera Fixed Mount Cameras There are three general methods of mounting fixed cameras e Camera mounted in the robot work envelope e Camera mounted upstream of the robot viewing an encoder equipped conveyor belt e Camera mounted on a robot that always takes pictures in the same location When a fixed mount camera is calibrated the transformation generated relates a corner of the field of view to the origin of the world coordinate frame of the robot Using this transformation along with one that defines an object s location within the field of view the robot can pick up or place objects Robot Mounted Cameras Cameras can be mounted in different locations on a robot Since the camera mounting location will change as the robot moves there is not a fixed relationship between the camera and the robot world coordinate frame as there is with a fixed mount camera This means that the camera calibration tra
174. e program assumes they are radially symmetrical so the robot gripper can pick them up in any orientation If the parts are not radially symmetrical the grip transformation would need to take into account any offset or rotation The part pickup location would also need to have the rotational component calculated One method of finding this orientation is with the major ellipse axis data available through VFEATURE If the part has been prototyped the prototype reference frame can be used to calculate the part rotation Adept Vision User s Guide Rev A Chapter 14 Further Programming Considerations The pallet is allowed to move only parallel to the robot Y axis This restriction could be removed by putting unique fiducial marks on the pallet and then using the vision system to calculate the pallet s orientation This example uses an indexing conveyor the conveyor moves parts into position and then stops until the assembly or palletizing operation is complete The V Language User s Guide provides details on setting up and calibrating a moving conveyor The inspection of the part was extremely simple A realistic inspection would require additional tools and possibly presentation of the part to the camera in different orientations AdeptVision User s Guide Rev A 279 Advanced Operations Performing High Speed Inspections 282 What is High Speed 282 Using the Two Frame Store Areas
175. e the part 50 mm COMMENTS In order for this program to run a location called pic loc must already exist When the robot is at pic loc the part must be in the camera s field of view LOCAL jt link2 obj loc part loc vis loc ret Adept Vision User s Guide Rev A 261 Chapter 14 MOVE pic loc BREAK J E gt K o m an LH ERE pic lo VPICTURE 1 VLOCATE 1 O0 DECOMPOSI EJ SET link2 HER c 4 Axis SCARA Robot with Camera on Link 2 Move to picture taking location Stop robot ttle for 0 1 seconds Let camera s Create a precision point at pic loc 1 Take picture with camera 1 name vis loc Find single object in field of view with Blob recognition jt l pic loc Obtain joints values at pic loc for use in building part location transformation SET obj loc E RZ jt 4 TRANS jt 3 Develop first part of object transformation link2 to cam 1 vis loc RZ VF EATURE 48 Develop world location of object Transformation to cam 1 is generated by the Utility Program and loaded by the utility LOADAREA V2 on the Adept Utility Disk IF NOT DEFIN Advanced Camera Calibration D grip trans THEN If it is necessary to reteach the existing grip trans transformation must be by typing DELET DETACH 0
176. e the robot in the row rows col cols location PROMPT Press ENTER when ready Sans HERE fr posy Create the pallet fram SET pallet frame FRAME fr origin fr posx fr posy fr origin Return to the frame origin and create the rowl coll pallet location relative to pallet frame TYPE Enable COMP mode Make sure comp mode is selected PROMPT The robot will return to the frame origin Press ENTER Sans ATTACH SPEED 20 ALWAYS Slow down while in teach routine DEPART 50 APPRO fr origin 50 MOVE fr origin BREAK HERE pallet frame pallet loc DEPART 50 276 Adept Vision User s Guide Rev A Chapter 14 n PEED 100 DETACH Create the part acquire picture taking location VPICTURE arm cam 2 VDISPLAY 1 1 YPE Place the robot at the picture taking location PROMPT Press ENTER when ready Sans HERE pic loc Create the part inspect picture taking location VPICTURE up cam 2 VDISPLAY 1 1 YPE Place the robot at the picture taking location PROMPT Press ENTER when ready Sans HERE inspect loc Create the part reject location YPE C2 Establish the part reject location TYPE Place the robot at the reject location PROMPT Press ENTER when ready Sans HERE scrap loc Calculate the Z offset for the g
177. ect obj_hgt The width of the area of interest window is 5mm wider than the object obj width The X center of the area of interest window is obj width 2 to the left of the found point The Y center of the area of interest window is the same as the Y axis value of the found point Figure 13 2 Executing the VWINDOW Instruction We now have an object in the vision queue and we are ready to do inspections on that object The first thing we will do is VLOCATE the object and check to be sure it has two holes If it does not we reject the part If the part is to be rejected we call the program reject_part which will activate the necessary machinery to remove the part and signal the conveyor belt to bring in the next part Remove the object from the vision queue and make its characteristics available to the VFEATURE function VLOCATE cam 2 obj loc Check to see if a part was successfully located IF NOT VFEATURE 1 THEN TYPE A hole was not located CALL reject part good part FALSE END END if good part Check that there are two holes in the part 234 Adept Vision User s Guide Rev A Chapter 13 Developing the Program Code IF good_part THEN IF VFEATURE 17 lt gt 2 THEN TYPE The part has an incorrect number of holes CALL reject part good part FALSE END END if good part Ld The next inspection involves checkin
178. ed by AdepiVision VXL The cameras listed here can be used with AdeptVision VXL Not all features of all cameras are supported by AdeptVision VXL The following highlights the main features of each camera Panasonic GP MF602 This is a black and white industrial CCD camera with a resolution of 768 x 494 pixels It has an asynchronous frame reset mode and electronic shutter trigger mode Nonshuttered cameras require about 1 30 of a second to acquire an image This speed is too slow to acquire unblurred images of moving parts Shuttered cameras have shutter speeds of 1 1 000 to 1 10 000 sec allowing them to acquire clear images of moving parts without the use of strobe lighting With shuttered cameras the strobe signal is used to latch the external encoders of motion devices simultaneously with image acquisition Since the timing of a strobe signal used to record encoder positions is different from the timing for a strobe light cameras used in shuttered mode cannot be used with strobe lights When you are using a shuttered camera images must be acquired in field acquire mode Panasonic GP MF702 This camera has a resolution of 649 x 491 pixels This camera can be set up to use the pixel clock output of the vision board This camera uses an MOS array rather than a CCD array for the imaging element MOS arrays shift data from the imaging element to the vision processor differently from CCD array cameras Therefore asynchronous strobe
179. elationship HPS data can be used when testing the calibration Thus the program asks you if you want to have HPS data used If you choose to use HPS data the program makes sure all the required conditions are satisfied before continuing with the test See Appendix E for details on using HPS data When testing the calibration the program prompts you to position a calibration disk within the vision window The general test procedure is for the program to take a picture compute the location of the disk and use the robot to determine the accuracy of that computed location The specific procedure used for the test depends on which method was used to calibrate the current camera The following paragraphs provide additional information about the test procedures used for some of the calibration methods e If a pointer is being used the program assumes an Adept calibration disk which has a tapered center hole is also being used The tip of the calibration pointer is moved over the computed location set back about 15 millimeters along the Z axis of the robot tool Then the program tells you to lower the pointer into the center hole If you do not wish to lower the pointer simply click on DONE Adept Vision User s Guide Rev A Chapter 6 Main Menu and the robot will return to the nominal position When you lower the pointer to the disk itis very important that you move the pointer only along the TOOL Z axis You should let the disk center itse
180. emory Allocation Continued Allowed Range Default Item Approx Bytes in Kb Kb Size items Used User LUT alloc 1 to 33 1 258 3 774 NOTE If the total of the above allocations does not leave at least 190Kb of free space an error is returned Defective Pixel Compensation The DEVICE command can be used to read write a table of bad pixel locations These tables are generated from reports that are typically provided by the camera manufacturer NOTE Defective pixel compensation can be used with any camera The table of bad pixel locations is an array of coordinates Element 0 is the number of coordinates it will be twice the number of pixels and array elements coords 1 through coords coords 0 are the x and y coordinates of the bad pixel locations The coordinates are specified relative to the AOI of the virtual frame buffer into which the frame is grabbed However 0 0 refers to the upper left pixel with x increasing as you move to the right and y increasing as you move down This coordinate system is used since the reports on bad pixel locations provided by the camera vendors assume a coordinate system with the y axis pointing down row line number increases and with 0 0 at the upper left of the camera imaging sensor NOTE Refer to the beginning of this section for a description of the DEVICE command parameters Writing a Table Entry To write the bad pixel coordinates for pixel comp
181. empt to create prototypes that produce the most accurate results in the least amount of time It should be disabled during normal operations V STROBE Whenever a VPICTURE instruction is issued and this switch is enabled a strobe signal is sent to the strobe port of the camera taking the picture V SUBTRACT HOLE When this switch is enabled the area of holes within an object will be subtracted from the area calculation reported in VQUEUE and VFEATURE 10 See Appendix B for VFEATURE information This switch affects the performance of V MIN AREA VMAX AREA and V MIN HOLE AREA V TOUCHING If the objects you are attempting to recognize are touching each other the system will see them as one object and may fail to recognize multiple touching objects If objects in the field of view touch and you need to recognize all of them enable this switch This switch may increase processing time for part recognition See the AdeptVision Reference Guide for details on how V TOUCHING V DISJOINT and VOVERLAPPING interact Adept Vision User s Guide Rev A 297 Appendix A List of Parameters Table A 1 Vision Switches Continued Switch Default Effects VISION v Disabling this switch will cause the system to behave as if the vision option is not installed When this switch is enabled from the monitor prompt using the ENABLE VISION command only the vision hardware is reinitialized takes 1 2 second
182. ensation table entry i use the following DEVICE command DEVICE 4 0 status 5 2 1 coords Up to eight pixel compensation tables can be defined using this DEVICE instruction The intent is that each compensation table can be associated with an actual camera Since different cameras can be attached to different camera ports there is no way for the system to know which pixel compensation table if any should be associated with a given virtual camera The pixel compensation table s can be defined with DEVICE instructions and then a particular compensation table identified by its index in the range 1 8 can be associated with a virtual camera using the following code AdeptVision User s Guide Rev A 349 Appendix I The DEVICE Instruction With Vision VGETCAL cam table table 18 index VPUTCAL cam table Once a defective pixel compensation table is associated with a virtual camera the pixels in the bad locations will be replaced with an average of the surrounding pixels that are not defective The replacement will happen automatically between the time that a frame is grabbed and is made available for processing Reading a Table Entry To read the bad pixel coordinates for pixel compensation table entry i use the following DEVICE command DEVICE 4 0 status 5 1 i coords Resetting a Table Entry To reset table entry i to the initial state no coordinates provided for that entry and no
183. ents The offset in tool coordinates from the origin of the vision reference frame to a location on the robot that is fixed relative to the camera this location varies depending on the joint the camera is mounted on This transformation is created by the camera calibration routine and is stored in the to caml array The offset and rotation of the part relative to the vision reference frame These values are calculated using different vision tools described in Chapters 9 12 The offset from the center of the quill flange to the center of the actual gripping location TOOL transformation See the description of the TOOL program instruction in the V Language Reference Guide for details The current position of the robot joint the camera was calibrated to The robot joint that the camera calibration transformation is based on moves Therefore the current position of the robot joint must be recalculated each time a picture is taken at a new location This is a simple calculation that is described in Chapter 14 The next four chapters will describe the tools and options available to calculate the necessary parts of a vision transformation AdeptVision User s Guide Rev A Chapter 3 Loading Vision Calibration Data Loading Vision Calibration Data After you have turned off the controller or zeroed system memory calibration data is no longer available and will have to be reloaded There are two ways of loading calibration data t
184. eo This selection is used to select the camera model number select the shutter and acquire modes and adjust the physical camera settings A live grayscale image is displayed to help you see the effects of adjusting the camera focus and aperture The camera model number is selected from a list of supported camera models There are also open models available for storing custom camera configurations See Cameras Supported by AdeptVision VXL on page 51 for details on supported camera models NOTE If you have an EVI board installed and the EVI license enabled an additional choice Pulnix TM 1001 appears on the camera model selection list Adept Vision User s Guide Rev A 95 Chapter 6 ADJUST Camera Image Menu 96 The shutter and acquire modes are selected from a list of supported shutter and acquire modes See Cameras Supported by AdeptVision VXL on page 51 for details on shutter modes The camera aperture setting controls the brightness and contrast A smaller aperture larger number lets in less light a larger aperture smaller number lets in more light You should adjust the light level and camera aperture to eliminate any over saturation in the white areas but still have a full range of gray values from very light to very dark This should provide a good contrasting image During these adjustments note that the aperture setting also affects the depth of field Depth of field refers to the range of distance
185. ept Calibration Sheet If you want your numbers to replace the existing ones for the Adept Calibration Sheet then sheet should be 1 If you would like to add your sheet as an option to the standard sheet then sheet should be 2 or more but the sheet numbers must be consecutive starting from 1 If you do define more than one sheet s worth of square dimensions then you will have to answer an additional question during calibration setup to indicate which sheet to use The identifying numbers on your custom sheet should be similar to the ones on the standard Adept Calibration Sheet but there need not be so many nested squares There must a pair of square dimensions for each number on the sheet Since the numbers are printed in the white areas the first number will be for the smallest square containing that number The second number will be for the next largest square Assign your custom values into this array prior to executing the calibration package Any sets of numbers predefined for any of the sheet numbers including number 1 will be available for use as part of the normal operation of the program Adept Vision User s Guide Rev A 327 Camera Calibration Programs adv cam sample ssh 330 ac refine vloe 64 45 46 8 44 0 Pe ee AREAS a 331 adv cam user and adv trpoint 0 00 333 adv cam user 2 nn 333 adv tr point 566 64445 oo xo X X 3 3 33 336 Adept Vision User s Guide Rev A 3
186. er 12 for details and examples on using the ObjectFinder in V NOTE A user interface for the ObjectFinder tool is provided in VisionWare It is highly recommended that users interested in this tool access it through VisionWare as this interface provides the greatest compatibility and ease of use See the Vision Ware User s Guide for more details Overview of Guidance Vision AdeptVision makes use of the tools just described both to inspect objects and to provide information to the motion device about an object s location Frames 46 All robot motion is based on frames of reference and location variables Location variables uniquely identify a point within a Cartesian space and the orientation of the robot tool at that point All robots and motion devices will have a primary reference frame On Adept SCARA robots the primary reference frame is centered at the base of the robot with the Z axis pointing straight up the X axis going front to back and the Y axis going left to right The V language provides several options for creating new frames of reference that are relative to this primary reference frame Relative reference frames can also be created with respect to other relative reference frames It is these relative reference frames that allow the vision system to guide robot motions Depending on the camera mounting location different relative reference frames will be used to relate the camera field of view to the robot work space
187. er or gripper to the center of the disk After four data points have been recorded the minimum needed to compute a calibration the program will automatically position the end of the tool over each successive disk position This makes it easy to gather additional data points to refine the calibration Using multiple points will significantly increase the precision of the calibration Monitor the statistics printed each time the calibration is calculated to determine when you have a sufficiently consistent calibration If the tool s Z axis is perpendicular to the work surface and the tool can rotate about its Z axis then a special procedure is used when recording the first data point so the program can compute any offset that exists from the tip of the pointer to the Z axis of the tool You will be asked to place the pointer in the center hole four times each with the tool rotated 90 degrees from the previous time Each time the pointer is lowered into the center hole let the disk move as required to center itself on the pointer However do not move the pointer in the X or Y directions just lower it along the tool Z axis If a vacuum gripper is used rough placement of the gripper near the center of the disk is sufficient Also for a vacuum gripper this rotation procedure will be automatic but will occur at each point If the camera is not mounted vertically it may not be appropriate to use HPS data See Appendix E for details on using HPS
188. er s Guide Rev A 175 Chapter 11 How Does Object Recognition Work Pose Refinement Pose refinement is based on correcting a confirmed pose hypothesis using selected model features the refine features During planning the refine features are automatically determined based on their relative importance in the model Selection criteria are based on the lengths and weights of the features as produced by multi instance training During recognition before carrying out the final verification of a proposed instance pose the new pose refinement attempts to match the refine features against corresponding image features If a sufficient match has been determined then the pose is refined based on these matches and the whole model i e the whole feature set is verified to determine the verification percent and decide whether it is above the user specified threshold In comparison to version 12 1 where refinement relied solely on aligning points pairs refinement is now extended to align portions of the model the set of refine features with their image counterparts before performing the final verification This new pose refinement significantly improves the alignment of the recognized instances especially when the image is at one half resolution hierarchical level 1 Verification Finally the proposed match is verified Corresponding features are matched along some portion of their length not just at particular points Until this step all
189. er stored in the calibration data file If they are different you will be asked if you want to continue loading the selected data file for the current virtual camera In this case the virtual camera number in the data file will be ignored Calibration data created with one type of AdeptVision system for example AdeptVision XGS should not be used with another type of AdeptVision system for example AdeptVision AGS Once the calibration data is restored the virtual camera is ready for use Calibration data must be reloaded only when the system controller has been rebooted or system memory has been cleared STORE calibration data to disk When you select STORE calibration data to disk you will be asked to specify the disk drive you want the data stored on that is drive A B C or D AdeptVision User s Guide Rev A 109 Chapter 6 LOAD STORE Calibration Data Menu You will also be asked to enter the directory path to be used You can respond in any of the following ways e Simply press the Enter key to have the program access the top level directory of the selected disk if the current default directory specification does not include a directory path or if the selected disk unit is different from the disk specified in the current default If the current default directory specification includes a directory path and if the selected disk unit is the same as the one in the default specifi cation the default directory path will be u
190. er to pixel trans formation matrix pix to pmml Output parameter that receives the pixel to millimeter trans formation matrix Adept Vision User s Guide Rev A 85 Chapter 5 LOADAREA V2 pmm to mml Output parameter that receives the transformation from real object space in millimeters to simple object space in millime ters For efficiency most vision tools are positioned with coordi nates in simple millimeter space and some tools such as blob analysis return coordinates in this space The pmm to mml transformation may be used to precisely position vision tools such as VWINDOW and the graphics instructions that do not automatically correct for perspective distortion NOTE Using this correction is appropriate only when the perspective distortion is significant Using the array mm to pmml see below to correct the results of vision tools however may be desirable for increased precision even when the perspective distortion is slight mm to pmml Output parameter that receives the transformation from sim ple object space in millimeters to real object space in millime ters This array can be used to correct for perspective distortion in the results from vision tools that do not automatically convert the coordinates with the transformation pix to pmml for example this is the case with blob or prototype locations Special Considerations The subroutine load area enables the VISION system switch r
191. eras When you execute a VOUEUE command you will see a display similar to Adept Vision User s Guide Rev A 149 Chapter 9 Name Verify percent 0 0 0 0 aproto 85 4 Name Verify percent Area X Y RZ Instance ID Camera Boundary Analysis Instructions Area X Y RZ Instance Camera ID 177797 182 3 80 7 0 00 1 2904 151 7 89 0 0 00 2 36855 159 1 85 9 8 70 3 1 If a region has been recognized as a prototype its name will appear in this column Otherwise a will appear indicating that information on an unidentified region blob has been placed in the queue A measure of how confident prototype recognition is Area of the region in raw pixels Region transformation components position and rotation in the vision coordinate system Order of processing for the different objects an arbitrary but sometimes useful ID number Camera the image was acquired with To determine the number of items remaining in a queue from within a program use the real valued function VQUEUE The following code will remove objects from the vision queue for virtual camera 4 if the 4 is omitted the code will look through all queues WHILE VQUEUE 4 DO VLOCATE 4 Sname code executed for each region TYPE END 150 Number of objects left VQUEUE 4 AdeptVision User s Guide Rev A Vision Tools Defining a Tool Area of Interest AOI 0 152 Frame Stores 1
192. ertically downward and is mounted on the second outer link of an AdeptOne AdeptThree Adept PackOne or Adept 604 S robot The calibration transformation determined is the relationship between robot link 2 and the vision coordinate frame NOTE For this calibration method perspective calibration cannot be used The camera must be mounted perpendicular to the work surface With this method place the calibration disk approximately in the center of the vision window and follow the instructions given on the monitor and pendant This method can be used only with AdeptOne AdeptThree Adept PackOne and Adept 604 S robots since it takes advantage of both the LEFTY and RIGHTY arm configurations About halfway through the automatic calibration procedure the arm will change configurations At that time you will be prompted to press the Enter key to proceed with the configuration change WARNING Make sure the robot can change configuration without damaging the camera or any other devices in the workcell Press the Enter key only when you are sure the robot can move safely NOTE We recommend that HPS data be used with this method since the accuracy of a robot is difficult to maintain across configurations If HPS data is used a map must be made with each arm configuration See Appendix E for details LOAD STORE Calibration Data Menu 108 NOTE Calibration data may also be reloaded without using the calibration program This is don
193. es A region within a prototype can be designated as a subprototype Subprototypes allow you to more accurately determine the position and goodness of fit of a prototype based on the region selected as a subprototype See the description of VDEF SUBPROTO in the AdeptVision Reference Guide Prototype Parameters 196 In addition to the parameters described above each prototype has several prototype parameters associated with it System parameters are associated with a virtual camera and will be in effect for any prototype recognized by that virtual camera Prototype parameters are associated with a trained prototype and will be in effect for that given prototype regardless of the virtual camera that acquired the image Setting Prototype Parameters To change parameters for a given prototype prototype parameters are described below 1 Load the prototype into vision memory using the VLOAD command 2 Activate the vision window and select Models gt Train prototype 3 Select the prototype model from the displayed list 4 Select the parameter you wish to set from the Params menu A dialog box will be displayed that will allow you to change the parameter value Repeat for as many parameters as you want to change 5 After you have made all changes select the monitor window and store the prototype to disk using the VSTORE command See page 206 for details AdeptVision User s Guide Rev A Chapter 12 Training and Using Prototypes
194. estores the stored settings of the VTHRESHOLD system parameter and the VVBACKLIGHT system switch and restores the vision calibration data via the VPUTCAL instruction The subroutine load area assumes that the calibration data file has the specific format used by the Adept area vision calibration program The calibration program writes a format version number in the data file this version number must agree with the one expected by load area or the loading is not performed 86 Adept Vision User s Guide Rev A The ADV_CAL Menus Introduction cad dos rss ON Calibration Status Display 89 Main Menu 2 25 25 2 2 52 5 02 52 52 52 252552 52 525 e 90 Main Menu Options 2 2 2 2 2 2 2 90 Exit to system monitor jo buc come Ar IA x MO LOAD STORE calibration data komie disk a 91 ADJUST camera image settings 92 CALIBRATE the current camera Moe nara M2 TEST current calibration camera to robob Esc ob os bh Ruhk oe 92 COPY calibration between virtual cameras 93 CHANGE virtual and or physicalcameras 94 SELECT different robot 2 2 2 2 2 94 ADJUST Camera Image Menu 95 ADJUST Camera Image Menu Options 95 RETURN to the main menu pur xod he MO ADJUST physical CAMERA ATTRIBUTES live video NI cs as SB S ADJUST video GAIN and OFFSET live video
195. et Dimensions The Calibration Target 2 2 0 1 Using a Custom Calibration Sheet 4 AdeptVision User s Guide Rev A 325 Appendix F The Calibration Target The Calibration Target The calibration target consists of black nested squares on a white background Each square ring is numbered on the inside corner between it and the next smaller square ring The inner and outer sides of the square rings are as follows Table F 1 Adept Calibration Sheet Dimensions Square Inside Outside 1 0 993 1 194 2 1 427 1 727 3 2 065 2 461 4 2 926 3 508 5 4 173 5 030 6 5 974 7 160 7 8 517 10 262 8 12 169 14 635 9 17 407 20 935 10 24 854 29 868 11 35 502 42 700 12 50 719 60 998 13 72 433 87 147 14 103 485 124 506 15 147 848 177 853 326 AdeptVision User s Guide Rev A Appendix F Using a Custom Calibration Sheet Using a Custom Calibration Sheet If you must create your own set of nested calibration squares you can make the data available for them by altering or adding to the global array ac square dims The format is ac square dims sheet 0 0 must be 0 A dimension of smallest white square 2 outside of smallest black square Pl outside of white square with 2 in it Al outside of black square with 2 in it 15 outside of white square with 3 in it 6 outside of black square with 3 init etc where sheet is 1 for the Ad
196. eters 307200 V MAX AREA 16 V MIN AREA 100 V OFFSET 90 V GAIN 8 V MIN HOLE AREA 55 V THRESHOLD 0 V 2ND THRESH 40 V EDGE STRENGTH Vision Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 9 Switch and Parameter Example 3 If the small polygon in the object is not of interest to you instruct the system to ignore it by changing the value of the minimum hole size the system will process within an object V MIN AREA will have to be raised to a value greater than V MIN HOLE AREA Figure 8 10 Switch and Parameter Example 4 shows the effects of changing these two parameters Raising these two parameters further would 136 Adept Vision User s Guide Rev A Chapter 8 Examples of Switch and Parameter Settings cause the circular hole to be ignored V BINARY has been reenabled for this example The settings for Switch and Parameter Example 4 are Switches v V BINARY v V BOUNDARIES v V BACKLIGHT Parameters 307200 V MAX AREA 650 V MIN AREA 100 V OFFSET 90 V GAIN 625 V MIN HOLE AREA 55 V THRESHOLD 0 V 2ND THRESH 20 V EDGE STRENGTH Vision Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 10 Switch and Parameter Example 4 1 These two values could be raised high enough to cause the system to ignore the object completely Adept Vision User s Guide Rev A 137 Chapter 8 Examples of Switch and Parameter Settings
197. f Interest Shapes Sample Area of Interest Sample Image Buffer Regions Linear Ruler Example Sample Gauge Face Arc Ruler Example Ruler Types Line Finder Search Area Finder Tool Polarity Line Finder Example VWINDOW Example n Prototype Editing Operations Font Similarity Matrix Sample Part for ObjectFinder Training Example ObjectFinder Model After Training Adept Vision User s Guide Rev A 30 37 41 42 44 54 58 59 67 69 121 123 124 125 126 133 134 135 136 137 138 139 154 154 156 197 160 161 163 165 167 168 169 171 193 204 212 214 17 Table of Contents Figure 12 5 Figure 12 6 Figure 12 7 Figure 12 8 Figure 12 9 Figure 12 10 Figure 13 1 Figure 13 2 Figure 13 3 Figure 13 4 Figure 13 5 Figure 14 1 Figure 14 2 Figure 14 3 Figure 14 4 Figure 14 5 Figure 14 6 Figure 14 7 Figure 14 8 Figure 15 1 Figure 15 2 Figure C 1 Figure C 2 Figure H 1 18 Example ObjectFinder Model After ees Example Found Object i Example Monitor Window Display Trained Prototype Model Selecting Reference Corners for Prototype Finder Instance Aligned With Model TE Application Flow Chart Executing the VWINDOW Instruction Executing a VFIND LINE Instruction Executing a VFIND ARC Instruction Calculating the Object Tail Location Fixed Mount Camera Vision Location Fixed Mount Camera Vision Transformati
198. f the output array vis_config 1 2 Write the new configuration DEVICE 4 0 error 1 2 vis_config IF error lt gt 1 GOTO 100 100 Handle errors The following code will change the space allocated for blobs to 24Kb and the allocation for object data structures to 500Kb Make sure all vision models have been saved before running this code Get the current configuration DEVICE 4 0 error 1 1 vis_config IF error lt gt 1 GOTO 100 Alter elements 2 and 3 of the output array vis_config 2 24 vis_config 3 500 Write the new configuration DEVICE 4 0 error 1 2 vis_config IF error lt gt 1 GOTO 100 100 Handle errors Adept Vision User s Guide Rev A 351 Memory Allocation In certain situations the Blob Finder and ObjectFinder tools may cause out of memory errors when used with the FlexFeeder To correct this the default system memory allocation was increased to 1 5Mb for V version 12 1 and later Specifically the values for run lengths blobs and objects for the vision queue have been increased The table below details the default memory allocations and provides suggested values for certain situations Table J 1 Vision System Memory Allocation Range Default Size of Kb Kb Item Items Default memory allocations for pre 12 1 software 1 25Mb t
199. f the vision transformation for guided vision see Chapter 14 Adept Vision User s Guide Rev A Chapter 12 Introduction Why Use OCR Optical character recognition has two primary uses text recognition and text verification Text recognition identifies characters from a trained font Text verification verifies that a string of expected characters was in fact found in the field of view verifying date and lot codes for example Adept Vision User s Guide Rev A 185 Chapter 12 Training and Using the ObjectFinder Training and Using the ObjectFinder ObjectFinder training is the process of creating ObjectFinder models of objects that you want the system to be able to recognize During ObjectFinder training you will e Specify the system switches and parameters to use during trainin pecuy y P 8 8 e Present one or more instances of an object to the system for training The system will average the data from multiple instances to create the vision model that it will use for recognition e Plan the model Once the above items are completed you can use the trained and planned model to locate one or more objects Setting the System Switches and Parameters 186 All switches and parameters should be at the default settings except as noted below See Table A 1 and Table A 2 for the default switch and parameter settings See the AdeptVision Reference Guide for a detailed description of each parameter and switch Required Setting
200. fers in each physical frame store A system configured for 12 frame stores uses six 360 x 240 virtual frame buffers in each physical frame store And a system configured for 16 frame stores uses eight 256 x 240 virtual frame buffers in each physical frame store On systems with the AdeptVision Enhanced VXL Interface option the physical frame stores are twice as large so they may be divided into twice as many virtual frame buffers four 640 x 480 virtual frame buffers two for each physical frame store etc The DEVICE instruction allocates virtual frame buffers See Example Changing the Number of Virtual Frame Stores on page 351 for details Figure 10 4 shows how physical frame stores are divided in the virtual frame buffers Adept Vision User s Guide Rev A Chapter 10 Defining a Tool Area of Interest AOI Areas of Interest Vision tools are placed within a virtual frame buffer based on a defined area of interest AOI AOIs are defined with the VDEF AOI instruction and include a shape argument and several dimensional arguments The syntax for VDEF AOI is VDEF AOI aoi shape diml dim2 dim3 dim4 angl ang2 aoi an integer that identifies the AOI being defined This value must be a 4 to 6 digit integer Counting from least significant to most significant right to left the fourth through sixth digits are used as the AOI number and the first through third digits are ignored See Defining an Image Buffer Region on page 155
201. file ADV_USER V2 If this program is present when the calibration program is running it will automatically be used to refine the location of vision locations to be used in calibration computations Therefore all calibration objects must be close to perfect circles since this routine uses VFIND ARC instructions to determine new centers for them PROGRAM ac refine vloc vloc error E ABSTRACT Refine The current b VLOCATEd is touching the circular disk VFIND ARC wit Errors should In any Case refinement is INPUT PARM vl OUTPUT PARM lo er the location of the circular blob at vloc lob region in the queue the last one the largest blob in the image that is not edges This routine assumes that it is a and refines the location by performing a h 100 effort level to get a new center value be rare since there is no good recovery the vloc should be returned unchanged when not possible oc Current centroid of blob already corrected for perspective distortion c Revised vision location rof Pass back an error code ec no disk for example SIDE EFFECTS The edge strength is changed for the current virtual camera Copyright c AUTO cx error VGETCAL 1990 by Adept Technology Inc cy data 10 ok radius range vb 14 xyr ys Do not return any errors xyr vb vb xy ratio ys vb Approximate rad 0 ac cam virt vb V
202. following messages be much longer Return no errors since written to the side bar IF we use TYPEs then they can but then they will go to the monitor window IF data 0 0 THEN If no arc found at all WRITE ac sbl C1 WARNING VLOC refinement failed GOTO 100 END IF data 5 80 THEN If less than 80 edges found WRITE ac sbl C1 WARNING VLOC refinement weak GOTO 100 END IF data 6 5 THEN If max err dist more than 5 pixels WRITE ac sbl C1 WARNING VLOC refinement in doubt GOTO 100 END SET vloc TRANS data 2 data 3 332 Adept Vision User s Guide Rev A Appendix G 100 RETURN adv cam user and adv tr point adv cam user and adv tr point The following programs are supplied on the Advanced Camera Calibration disk in the file ADV_USER V2 These programs can be called by application programs to determine the location of an object as seen by a camera that has been calibrated with the Advanced Camera Calibration program adv cam user PROGRAM adv cam user camera display Spart obj loc E E Serror ABSTRACT This is a user callable subroutine that takes a picture with the specified camera and returns the location in the robot coordinate system of the object seen It is assumed that the camera has been calibrated with the Adept Advanced Camera Calibration program in t
203. g and other measurements of objects in the field of view Guidance vision systems will use vision options to locate and acquire items in the field of view 40 AdeptVision User s Guide Rev A Chapter 1 Vision Basics Vision Basics Throughout this manual you will be seeing the object shown in Figure 1 2 We will use this sample object to help explain the features of the AdeptVision VXL system Figure 1 2 Sample Object Pixel The basic unit of a vision image is a pixel picture element It is the smallest unit of information a vision system can return to you The number of pixels the system can process determines the system s resolution and affects the computer processing time needed to analyze an image A pixel can be thought of as a single cell in a matrix that the camera overlays on the field of view The value that is placed in that cell will be a shade of gray that represents the intensity of the light reflected from the corresponding area in the field of view grayscale vision Figure 1 3 shows how a 22 x 16 pixel camera would see the object shown in Figure 1 2 The dashed lines are shown for reference they are not actually seen by the system AdeptVision User s Guide Rev A 41 Chapter 1 Vision Basics Figure 1 3 A Grayscale Imag
204. g Vision Models Displaying Vision Models Using the Vision Window Menus From the V Monitor Prompt Deleting Vision Models Adept Vision User s Guide Rev A 189 190 190 191 192 194 194 194 194 195 195 195 196 196 196 196 197 197 197 197 197 197 197 198 198 199 200 202 202 203 204 205 206 206 207 209 209 209 209 210 13 14 Using the Vision Window Menus From the V Monitor Prompt Renaming Vision Models Using the Vision Window Menus From the V Monitor Prompt ObjectFinder Example Step 1 Train the ObjectFinder Model Step 2 Plan the ObjectFinder Model Step 3 Use the ObjectFinder to Locate the Object Prototype Finder Example Step 1 Train the Prototype Finder Model Step 2 Train Additional Instances Step 3 Use the Prototype Finder to locufe c a Part gt Programming AdeptVision VXL Introduction Application B valapmni Siateay Vision Inspection Example Program Developing the Program Code i Program Header and Variables Declarations Set the Camera Environment Acquire an Image and Start Processing Locate the Object and Begin Inspections Output the Results i Further Programming Considerations The Complete Inspection Vision Program The Main Program inspect part Subroutine line line Subroutine init program Subroutine write vwin Guidance Vision Introduction Using a Fixed Mount Camera 4 Axis SCARA Robot wit
205. g code will move to a recognized prototype assuming the robot is a four axis SCARA see Chapter 14 for more information on guided vision operations cam virt 1 ENABLE V Acqu VPICTURE cam virt VLOCATE cam virt RECOGNITION cam virt enable prototype recognition ire a processed image and locate the prototype 1 2 sample object proto loc Use the prototype object location to acquire the recognized prototype ERE fcur loc ECOMPOSE jt link2 H obj loc obj loc F El UNIT F El MOVE 1 cur loc ERE INVERSE TOOL RZ jt 3 TRANS jt 4 link2 to cam proto loc grip trans AdeptVision User s Guide Rev A 199 Chapter 12 Prototype Model Switches and Parameters Prototype Model Switches and Parameters The following tables list the switches and parameters that affect the prototype model process Table 12 1 Prototype Model Switches Switch Default Effects V RECOGNITION v Disabling this switch will cause the system to behave as if no prototypes have been defined Must be enabled to perform prototype recognition Not required for OCR or correlation V DISJOINT A single object may appear to the vision system to be two separate objects e g a dark object with a white line down the middle would look like two objects If you are attempting prototype recognition on this type of object this switch
206. g the distance from the centers of the circular and polygon holes to the center of the object The part will be rejected if these values differ by more than 0 5 millimeters from their ideal values Remove the holes from the queue and check their centroids Remove the largest hole the circle from the queue IF good part THEN VLOCATE cam 4 1 rnd loc Save the circle s centroid X and Y values cent circlex VFEATURE 2 cent circley VFEATURE 3 The next hole removed will be the polygon VLOCATE cam 4 poly loc Calculate the distance rnd act DISTANCE obj loc rnd loc poly act DISTANCE obj loc poly loc Compare the distances and reject part if they are not within 5mm of correct IF ABS rnd act rnd dist gt 0 5 THEN TYPE The round hole is out of alignment CALL reject_part good_part FALSE END if ABS IF ABS poly act poly dist gt 0 5 THEN TYPE The polygon hole is out of alignment CALL reject_part good_part FALSE END if ABS END if good_part Adept Vision User s Guide Rev A 235 Chapter 13 Developing the Program Code If the part passes this inspection we turn to the circular hole to see if its diameter agrees with the correct value to within 1mm We will use a linear ruler to perform this inspection Place a ruler that starts at the center of the circular hole and goes past its edg
207. ge 146 for details Stage One VFINDER mode 4 During stage one learning the feature weights are adjusted Once the feature weights have converged learning proceeds to stage two and the feature classes are reordered In V stage one learning does not automatically change to stage two learning The programmer must write the program so that it detects when stage one learning is completed and then activates stage two by changing the VFINDER mode to 3 NOTE The AIM VisionWare module automatically detects when stage one learning is completed and then changes to the correct mode for stage two learning 178 AdeptVision User s Guide Rev A Chapter 11 Pose Refinement Details Stage Two VFINDER mode 3 During stage two learning statistics are gathered about the successes and failures of all the proposals made during the recognition process After each call to VFINDER in this mode you have the option of using that data to reorder the feature classes Theoretically certain classes will have a better likelihood of generating a successful proposal These will get bubbled to the front of the list if the reordering is done You can re sort after each recognition call or wait until more statistics are accumulated and then re sort in one pass A bubble sort is performed because the list should be close to the correct order prior to each re sort Therefore incremental reordering will not require much processing time When applying the new sta
208. gnized or verified a sample of the font containing all characters that might be encountered must be trained As with all vision model processes before models can be built or recognized the camera must be installed adjusted and calibrated The system parameters should be set to acquire the best image possible Before a font can be trained it must be defined with the program instruction VDEF FONT op font num chars height black op determines what action the instruction will initiate 0 define a new or replace an existing font default 1 modify an existing font font num number of the font to be defined or altered chars list of characters in the font height typical height of the largest character must be between 6 and 63 pixels black boolean indicating whether the font is dark characters on a light background or light characters on a dark background The default is TRUE dark characters on a light background Fonts are trained with the program instruction VTRAIN MODEL cam virt font font chars ibr cam virt virtual camera whose switches and parameters will be used when training the font Sfont a defined font in the form font_nn font chars the characters in the font sample entered in the order in which they occur in the sample AdeptVision User s Guide Rev A Chapter 12 Performing Optical Character Recognition ibr a defined image buffer region see Defining a Tool Area of Interest AOI
209. h 50 Length of the ruler cam 1 Enable gathering of centroid perimeter and min max radii data Adept Vision User s Guide Rev A 287 Chapter 15 ENABLE ENABLE Performing Frame Relative Inspections V BOUNDARIES V CENTROID ENABLE V PERIMETER ENABLE Get the o VPICTU VWAIT VLOCAT V MIN MAX RADII I bject s location variable with a VLOCATE instruction RE cam EA E cam 2 obj loc Calculate the object rotation based on the angle of a line from the blob center to the farthest point on the blob The major ellipse axis is not used because the positive direction of the X axis is not known without further calculations obj rotation VFEATURE 45 Rotate t offsets n he reference frame by obj_rotation and offset it by tool location ET tool loc obj loc RZ obj rotation TRANS xoffset yoffset Using the orientation and starting point of the blob place the frame relative ruler VDEF AOI 2000 2 DX tool loc DY tool loc length 0 ruler angctobj rotation VRULERI cam ruler data 2000 Figure 15 2 shows how the reference frame for the preceding code was calculated 288 Adept Vision User s Guide Rev A Chapter 15 Performing Frame Relative Inspections Blob centroid a of blob perimeter VFEATURE 45 Tool offset from Tool blob centroid x
210. h Camera on Link 2 5 Axis SCARA Robot with Camera on Link 2 Guidance Vision Program The Sample Program Further Programming Considerations Adept Vision User s Guide Rev A Table of Contents 210 210 210 210 211 212 213 215 216 219 219 220 222 225 226 226 227 230 230 231 232 233 240 242 243 243 250 252 253 255 256 257 261 266 268 269 278 13 Table of Contents Error Handling T Generalizing the Program 15 Advanced Operations 14 Performing High Speed Inspections What is High Speed Using the Two Frame Store Areas Using VPICTURE With Different Frame St r s Using VDISPLAY With Different Frame Stores Sample Code for a High Speed Inspection The High Speed Trigger Performing Frame Relative Inspections Blob Relative Inspection Prototype Relative Inspection Frame Relative Inspections Using VDEF TRANS Using a Vision Guided Tracking Conveyor Switches and Parameters Setting Vision Switches Viewing Switch Settings Setting Vision Parameters Viewing Parameters List of Switches List of Parameters VFEATURE Values Viewing VFEATURE Values Establishing VFEATURE Values Lens Selection Introduction i Formula for Focal Length Formula for Resolution Lighting Considerations Types of Lighting Lighting Strategies Adept Vision User s Guide Rev A 278 278 281 282 282 283 283 284 284 286 287
211. h other controllers or computers The digital output channels are used to switch the user supplied current to external equipment Signaling a part feeder to place a part in the field of view is a sample digital output operation Digital input channels tell the controller that an event such as a part being placed in the field of view has occurred and that your program should either suspend or continue execution or take any other appropriate action The optional analog I O channels allow you to read from and write to compatible analog I O devices See the Adept MV Controller User s Guide for details on installing digital serial and analog I O devices See the V Language Reference Guide descriptions of IO SIG and SIGNAL for details on programming digital I O See the descriptions of ATTACH READ GETC WRITE and DETACH for details on programming serial I O See the descriptions of AIO IN and AIO OUT for details on analog I O See the description of the utility program CONFIG_C in the Instructions for Adept Utility Programs for details on the configuration of digital analog and serial I O AdeptVision User s Guide Rev A 39 Chapter 1 What AdeptVision VXL Does What AdeptVision VXL Does Quite simply the AdeptVision VXL system looks at something and then tells you what it knows about that thing The system has software tools that allow you to control how AdeptVision VXL looks at objects and what information it gathers about th
212. hanged from the example preceding it are marked with a shadow In Figure 8 8 Switch and Parameter Example 2 V BINARY is disabled resulting in an edge image When the system processes this image it will operate on the edges generated using the parameter V EDGE STRENGTH rather than the binary image generated using the parameter V THRESHOLD 134 Adept Vision User s Guide Rev A Chapter 8 Examples of Switch and Parameter Settings The settings for Switch and Parameter Example 2 are Switches V BINARY v V BOUNDARIES v V BACKLIGHT Parameters 307200 V MAX AREA 16 V MIN AREA 100 V OFFSET 90 V GAIN 8 V MIN HOLE AREA 55 V THRESHOLD 0 V 2ND THRESH 20 V EDGE STRENGTH Vision Cam Frame Display Pict Ops Status Models Switches Resolution Figure 8 8 Switch and Parameter Example 2 Changing the value of V EDGE STRENGTH to 40 causes the system to fail to recognize an edge at the tail end of the object The change in intensity values at the tail of the object does not exceed the value of VEDGE STRENGTH so edges are not detected in that area Figure 8 9 Switch and Parameter Example 3 shows the effects of changing this parameter AdeptVision User s Guide Rev A 135 Chapter 8 Examples of Switch and Parameter Settings The settings for Switch and Parameter Example 3 are Switches V BINARY v V BOUNDARIES v V BACKLIGHT Param
213. has a camera to robot calibration MISC The V BOUNDARIES and V CENTROID system switches must be enabled for the specified camera If a named object is requested th V RECOGNITION switch must also be enabled In addition other switches and parameters must be set appropriate for the specific application Copyright c 1988 1989 1990 1991 1992 by Adept Technology Inc OCAL cal cal type jt mount npics L04 OCAL link2 pic loc vis frame vis loc AUTO pcal 2 2 ipcal 2 2 pix 2 pmm 2 L34 Serror Assume no error IF NOT LEN Spart THEN If NULL find any Spart 2 END Get calibration array for the camera and make sure it s okay VGETCAL camera cal pcal ipcall L34 IF cal 0 lt gt 2 THEN Camera calibrated Serror Camera not calibrated GOTO 100 END cal type cal 2 Get the calibration method If camera has camera to robot calibration and calib transformation is missing return error to cam n not defined IF cal type lt gt 1 AND NOT DEFINED to cam cameral THEN Serror 4 SCHR to cam ENCODE 10 camera Serror S error S CHR not defined GOTO 100 Return with error END Get the link number that the camera is mounted on L19 mount cal 3 Link number L04 L34 Adept Vision User s Guide Rev A Appendix G adv cam user and adv tr point
214. he calibration pointer over the disk Also the size of the hole is matched to the ball on the end of the Adept calibration pointer so that the pointer will be at the height of the work surface when the pointer is seated in the hole See Appendix F for details on calibration target dimensions If a vacuum gripper is being used the disk must be larger than the opening of the vacuum gripper Of course the disk should be fairly nonporous so that the vacuum gripper will be able to pick it up You can use one of the calibration disks provided by Adept if you cover the center hole with a piece of tape For robot related calibrations a contrasting dot drawn on a rigid flat surface The background color of the surface must blend in with the surrounding work area or the surface must be large enough to fill the vision window The dot need not be round but should be a simple shape When deciding how large a dot to draw plan to have the image size of the dot between 1 10 and 1 3 the height of the vision window If a vacuum gripper is being used the flat surface but not necessarily the dot must be larger than the opening of the vacuum gripper Of course the surface should be fairly nonporous so that the vacuum gripper will be able to pick it up When a disk or dot is used in the calibration process its location in a camera image is based on the object s centroid However you have the option of defining a routine to refine the location Thi
215. he disk file ADV_CAL V2 This will work for Adept supported SCARA XY XYZ XYZ Theta configurations including the UltraOne and NOTE This routine assumes that the calibration was loaded using the 10 3 version of the LOAD AREA utility This will insure that the link number that the camera is mounted on will be in cal 3 INPUT PARM camera Virtual camera number for the camera to use display Boolean TRUE FALSE to request suppress display of error messages on system monitor assumed to be TRUE if not defined part String containing name of object to be found Should be set to if looking for any object If this is a NULL string then it will be given the value of mon OUTPUT PARM Spart If this variable was set to on input see above it is set by this routine to the name of the object found obj loc Location in world coordinates of the object found by the vision system Set to NULL Adept Vision User s Guide Rev A 333 Appendix G adv cam user and adv tr point 334 and error reported if no object is seen Serror If no error occurs this string variable is set to an empty string otherwise 1t is set to a string describing the error SIDE EFFECTS None DATA STRUCT to cam This global transformation array must have an lement defined for any camera that is accessed amp that
216. he same as for prototypes What is VFEATURE VFEATURE is not a monitor command or a program instruction It is a system function that returns a value As such it can be used in most places you would use a variable For example F VFEATURE 10 gt 975 THEN or part_centerx VFEATURE 42 A critical point to remember when using VFEATURE is that it is a function that returns a value and not an array of values You cannot assign a value to a VFEATURE index For example the instruction VFEATURE 12 3 303 would produce an error Table 9 3 lists the values available through VFEATURE as a result of boundary analysis Additional data is available after prototype recognition this is covered in Chapter 12 The complete VFEATURE table is printed in Appendix B Adept Vision User s Guide Rev A Chapter 9 Boundary Analysis Instructions Table 9 3 VFEATURE Values and Interpretation Index Information Unit Switch Parameter effects 1 Whether an object was found or not T F Returns 1 for true or 0 for false true false 2 Center X mm If VCENTROID is enabled the value is the centroid of the region 3 Center Y ID Otherwise it is the center of the 4 Center Z ii bounding box of the region 5 Rotation about X 9 6 Rotation about Y 9 7 Rotation about Z 2 10 Area of object pixels If VSUBTRACT HOLES is enabled the area of holes in the object
217. hird Party Suppliers Third Party Suppliers U S Third Party Suppliers Europe Third Party Suppliers Asia Pacific Index Adept Vision User s Guide Rev A 345 346 346 349 349 350 350 350 351 353 355 361 362 366 370 373 Figure 1 Figure 1 1 Figure 1 2 Figure 1 3 Figure 1 4 Figure 1 5 Figure 2 1 Figure 3 1 Figure 3 2 Figure 4 1 Figure 4 2 Figure 8 1 Figure 8 2 Figure 8 3 Figure 8 4 Figure 8 5 Figure 8 6 Figure 8 7 Figure 8 8 Figure 8 9 Figure 8 10 Figure 8 11 Figure 8 12 Figure 10 1 Figure 10 2 Figure 10 3 Figure 10 4 Figure 10 5 Figure 10 6 Figure 10 7 Figure 10 8 Figure 10 9 Figure 10 10 Figure 10 11 Figure 10 12 Figure 12 1 Figure 12 2 Figure 12 3 Figure 12 4 List of Figures Impact and Trapping Hazards Typical AdeptVision VXL eee Sample Object f A Grayscale Image A Binary Image Resolution Factors Initial Screen Sample Operation Physical Virtual Camera Relationship Millimeter to Pixel Ratio Perspective Distortion VPICTURE Options Display Mode Options Sample Vision Matrix Binary Representation of Sample Matrix Grayscale Representation of Sample Matrix Sample Object Switch and Parameter Example 1 i Switch and Parameter Example 2 Switch and Parameter Example 3 Switch and Parameter Example 4 Switch and Parameter Example 5 Switch and Parameter Example 6 Rectangular Area of Interest Shapes Arc Shaped Area o
218. hould be checked throughout the duration of the shift in which the system will be operated to see how changes in ambient light affect the system Creating an optimum and consistent lighting environment when you design your workcell will save a great deal of trouble later AdeptVision User s Guide Rev A 47 Installation Setting up the Hardware ls sn 50 Installing the Controller 50 Attaching Cameras and Strobes 50 Strobe Compatibility 51 Cameras Supported by AdeptVision VXL 51 Panasonic GP MF602 51 Panasonic GP MF702 51 PulnixTM 1001 aa 52 Sony XC 77 0 52 Mounting Cameras oos 53 Setting up the Software ls s 54 System Memory s s s 4 55 Adept Vision User s Guide Rev A 49 Chapter 2 Setting up the Hardware Setting up the Hardware Your vision system includes the following items e An Adept controller equipped with e AdeptWindows Controller AWC board e Enhanced Vision Interface EVI board e V Operating System and Language Version 13 0 or later with the Vision option e Adept Utility Programs disk e One or more cameras If you are not using AdeptWindows PC software and a user supplied PC you will also need e VGB board e High resolution color monitor e AT compatible keyboard and pointing device You may be installing th
219. ics R Y F Optical Instruments Bettlaschstr 2 2540 Grenchen Switzerland Phone 41 32 65 25 484 Fax 41 32 65 33 612 Islang Riggen Bach Str 21 Ch 4600 Olten Switzerland Phone 41 62 296 3282 Lite Mite ring lights Volpi AG Wiesenstrasse 33 8952 Schlieren Switzerland Phone 41 1 73 09 761 Fax 41 1 73 09 044 Fiber optic illuminators in various shapes including ring and linear Table L 10 Lens Suppliers Manufacturer Product Line Chugai Boyeki Deutschland GmbH Hansaallee 191 40549 Diisseldorf Germany Phone 49 211 53 06 70 Fax 49 211 53 06 71 80 Chugai Boyeki U K Ltd Computar House 6 Garrick Industrial Centre Garrick Road London NW 9 6AQ England Phone 44 181 732 33 33 Fax 44 181 202 33 87 Chugai Boyeki Milano Via Carolina Romani 1 11 20091 Bresso MI Italy Phone 39 2 66 50 3210 Fax 39 2 66 50 32 04 Chugai Boyeki Paris Europarc 15 33 Rue Le Corbusier 94035 CRETEIL CEDEX France Phone 33 1 43 99 04 24 Fax 33 1 43 99 59 06 Internet www chugai com C mount lenses extension tubes range finders 35mm format lenses Joseph Schneider Optische Werke Kreuznach GmbH Ringstrasse 132 55543 Bad Kreuznach Germany Phone 49 671 60 10Fax 49 671 60 11 09 High quality C mount lenses with very low distortion AdeptVision User s Guide Rev A 367 Appendix L Third Party Suppliers Europe Table L 11 Filter and Op
220. ics about specific areas of an image Finder Tools These tools allow you to find points lines and arcs in an image The data returned from finder tools may provide all the information you need about an object or it may provide the basis to perform other inspections Processing Windows In Chapter 8 you will learn the difference between processed and unprocessed images In many cases you can speed up your applications by operating on unprocessed images or by processing only a limited portion of the field of view Processing windows see Chapter 10 allow you to process a limited area of the field of view In contrast to inspection windows processing windows do not return any data about the image They merely process a portion of an image for use by other vision tools AdeptVision User s Guide Rev A 45 Chapter 1 Overview of Guidance Vision Modeling Modeling allows you to store models of different objects in vision system memory and then compare these models with objects in the field of view The system will tell you if an object in the field of view matches a model in vision system memory how close the match is and where the object is in the field of view ObjectFinder The ObjectFinder was added to AdeptVision VXL for V version 12 1 This tool s functionality is similar to prototype recognition However the ObjectFinder uses grayscale edge based features See Chapter 11 for an overview of the ObjectFinder Also see Chapt
221. igin of the prototype r in VFEATURE 2 and VFEATURE 3 returned tool x tool y VFEA URE 2 xoffset VFEA URE 3 yoffset The rotation of E reference is contained in VFEATURE 7 Create a varia obj ang tool ang Issue a VRULI reference fram ference frame ar the object relativ VFEATURE 7 obj ang ruler ang x the location variable for the center of the ruler a the object rotation to the angle of the ruler VDEF AOI 2000 1 tool x tool y length tool ang cam VRULERI data 2000 to the prototype frame of ble for this angle ERI instruction that uses the X and Y values from nd adds Blob and prototype recognition are relatively processing intensive and may be too slow for high speed inspections The location and position data returned from vision tools operating in binary mode or grayscale on an unprocessed image may provide you with a less processing intensive way of creating object relative reference frames Frame Relative Inspections Using VDEFTRANS The VDEF TRANS instruction will offset and rotate a defined AOI The following code shows the use of the VDEETRANS function for part relative tool placement in inspection vision In this example the radius of the hole in a part is inspected Declare local variables AUTO shape AUTO Sname shape xoffset yoffset outer r
222. ine Finder bottom Figure 13 5 Calculating the Object Tail Location Adept Vision User s Guide Rev A 251 Chapter 13 Subroutine init program PROGRAM init program cam ABSTRACT This program initializes th A environment cycle tim INPUT PARMS cam virtual camera being used r OUTPUT PARMS None GLOBAL VARS to cam thresholds cam cal Serr SIDE EFFECTS If the global variables avg time total time are not defined they are set to 0 r num_parts 0 avg_time 0 total_time 0 Load calibration data file LOADAREA V2 details on the calling sequence CALL load area area87 dat cam thresholds TRUE to cam The Complete Inspection Vision Program statistics and camera and num_parts load area is supplied on the utility disk in the See the Instructions for Adept Utility Programs for Cam cal Serr Reset the timer used to determine when to recalculate V THRESHOLD TIMER 2 0 Set the binary threshold VAUTOTHR thresholds IF thresholds 0 THEN PARAMETER V THRESHOLD thresholds 0 ELSE TYPE A threshold could not be computed Check th END END 252 Adept Vision User s Guide Rev A lens apertur setting Chapter 13 The Complete Inspection Vision Program Subroutine write vwin PROGRAM write vwin cam x y text Serr ABSTRACT This program de
223. ine Manuals The online version of this manual contains links to cross references and to related manuals This section describes how to identify and use these links NOTE To view the online version of this manual you must install Acrobat Reader version 3 0 or later on a PC Macintosh or UNIX system Links to Cross References Links to cross references are displayed using turquoise bold text When you click on one of these links the cross referenced information is displayed To return to the original information select the lt lt go to previous view icon from the Acrobat Reader toolbar Links to Related Manuals Links to related manuals are displayed using turquoise italic text When you click on one of these links the related manual is opened and the title page is displayed along with the bookmark list You can then select the desired destination within the manual from the bookmark list To return to the original manual click the go to previous view icon lt lt from the Acrobat Reader toolbar 32 AdeptVision User s Guide Rev A Introduction How Can I Get Help Links to Related Keywords Links to related keywords are displayed using turquoise bold text When you click on one of these in the standard reference guides the cross referenced information is displayed However since this manual contains only new or enhanced keywords if the related keyword is not in this manual when you click the hypertext link the rel
224. ing window select Models gt Train prototype and click on the prototype you want to edit Select New example gt New example Place an example of the prototype in the field of view and click on the Ok button in the training window A graphic representation of the prototype example will be presented showing arcs in purple lines in yellow and corners as white dots During prototype editing you will edit the boundaries fit by the system so they match your object as closely and simply as possible The most common editing tasks you will perform are e Removing extra corners e Turning arcs into lines Deleting features that are unimportant or are part of the background Adept Vision User s Guide Rev A Chapter 12 Training and Using Prototypes Figure 12 1 shows the prototype training window and its functional groups of features The process of editing a prototype using the training window is described in the following sections Editing Operation Preview Window Data Box ya Training Current Op DELETE CORNER Edit Buttons Location A Box T ree Op Next Edge Region Zoom Select Buttons eee 9 o 2 1x 2x 3x 4x Edge Region Prev Next Zoom Message Window Edge Type Edge Length Region Area of Edges 4 b Y V Edge Region Information Data Boxes Figure 12 1 Prototype Editing Operations Adept Vision User s Guide Rev A 193 Chapter 12 Training and Using Pr
225. inst corresponding image features If a sufficient match has been determined then the pose is refined based on these matches and the whole model i e the whole feature set is verified to determine the verification percent and decide Adept Vision User s Guide Rev A 179 Chapter 11 Object Disambiguation Details whether it is above the user specified threshold In comparison to version 12 1 where refinement relied solely on aligning points pairs the improved refinement is extended to align portions of the model the set of refine features with their image counterparts before performing the final verification This new pose refinement significantly improves the alignment of the recognized instances especially when the image is at one half resolution hierarchical level 1 Additionally the pose refinement enhancements in version 12 3 result in more accurate poses for parts that are somewhat elongated i e whose length is relatively large compared to the width The feature based pose refinement techniques have been improved to better handle these parts by minimizing the orientation error along a part s elongation direction Object Disambiguation Details The disambiguation functionality allows the ObjectFinder to resolve ambiguities due to self similarities within models and due to similarities between different models planned for recognition Self similar models are almost symmetric except for a few features and similar models look a
226. ion Quarter Resolution Display the image at one quarter of maximum resolution Display a portion of the image at the center of the window at full Focus Mode resolution Adept Vision User s Guide Rev A 359 Third Party Suppliers Third Party Suppliers U S Fiber Optic Lighting Suppliers Lighting Suppliers 0 Camera Equipment Suppliers Frame Splitter Suppliers Camera Suppliers Filter and Optics Suppliers Lens Suppliers lll sss Third Party Suppliers Europe Mounting Hardware Suppliers Lighting Suppliers 0 01 Lens Suppliers ll ls Filter and Optics Suppliers Third Party Suppliers Asia Pacific Lighting Filter and Optics Suppliers Adept Vision User s Guide Rev A 361 Appendix L Third Party Suppliers U S Third Party Suppliers U S Table L 1 Fiber Optic Lighting Suppliers Manufacturer Product Line Dolan Jenner Industries Inc 678 Andover St Lawrence MA 01843 Phone 978 681 8000 Fax 978 682 2500 Fiber Lite illuminators annular single head and dual head fiber optic cables Fostec Inc 62 Columbus St Auburn NY 13021 Phone 315 255 2791 Fax 315 255 269
227. ion or compensate for the use of a different end effector Grip transformations are described in Chapter 14 For off vertical odd angled camera mountings the TOOL transformation must be correct during calibration Otherwise the calibration will be inconsistent and probably inaccurate For most calibration configurations you will be asked if the tool s Z axis is perpendicular to the work surface and if the tool can rotate about its Z axis If these are true then the tool is said to have theta capability with respect to the vision coordinate frame When the tool has theta capability the program will automatically compute any offset of the pointer from the tool Z axis or errors in the TOOL transform that occur in the X Y plane of the vision coordinate frame This offset will be used during the calibration process and left in the global transformation variable ac offset v where v is the current virtual camera number If the tool does not have theta capability then this transformation variable will be assigned the value NULL for cameras that have been calibrated See Miscellaneous Global Variables on page 115 for details on this and other global variables defined during calibration When a calibration pointer is used and the tool has theta capability the program will take four pictures of the calibration disk each with the tool rotated 90 degrees from the previous one Before each picture it will ask you to lower the pointer a
228. ion is more specific indicating how the camera was mounted with respect to the robot for example Link 2 or Fixed If the status is shown as NoTrans there is a valid camera to robot calibration array but no calibration transformation is defined If the status is Invalid there is a calibration transformation defined but it was not created at the same time as the calibration array Adept Vision User s Guide Rev A 89 Chapter 6 Main Menu The program performs all its operations only on the current virtual camera and the currently selected robot The current camera which is highlighted in the status display is selected when the program is first executed and can be changed with a menu selection The currently selected robot is displayed at the lower left of the screen and can also be changed with a menu selection only for systems with multiple robots Although the AdeptVision system has 32 virtual cameras the status information is shown for only the eight cameras surrounding the current virtual camera To view another group of eight cameras simply change the current virtual camera to be within the desired group Main Menu After a physical and virtual camera have been selected the following menu is presented O gt EXIT to the system monitor 1 gt LOAD STORE calibration data from to disk gt ADJUST camera image settings 2 3 gt CALIBRATE the current camera 4 gt TEST current calibration camer
229. ion procedure the nominal location is recorded in the global location variable ac nominal v where v is the current virtual camera number Similarly the robot configuration RIGHTY or LEFTY at the nominal location is recorded in the global variable ac configlv See Miscellaneous Global Variables on page 115 for more details on these and other global variables defined during calibration If the pointer or vacuum gripper used to touch the disk during calibration is not to be centered on the tool s axis of rotation a TOOL transformation should be defined to describe the tool offset Computed robot locations that are based on vision information assume that either the TOOL transformation was correct during calibration or that the tool offset is the same as it was during calibration However the program will compensate for small tool offsets or small errors in the TOOL if the tool can rotate about its Z axis and the Zis perpendicular to the work surface 1 The arrow s direction will not be accurate for errors of less than 2 pixels 2 VFIND LINE VFINDARC VFINDPOINT VRULER and VRULERI use perspective calibration and will be affected by selecting basic vs perspective calibration AdeptVision User s Guide Rev A 99 Chapter 6 CALIBRATE the Current Camera Menu 100 NOTE For vertically mounted cameras a grip transformation can often be defined that will compensate for an incorrect TOOL transformation during calibrat
230. ion process place the vacuum gripper on the calibration object near its center The gripper must be centered carefully if the vision window is small The program will complete the calibration automatically AdeptVision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu If you use a pointer you should use an Adept calibration disk with a tapered center hole You will be asked to place the pointer in the center four times each time with the quill rotated 90 degrees from the previous position After you lower the pointer the fourth time the program will complete the calibration automatically Link 2 mounted camera Known dot location This method assumes that the camera is pointing vertically downward and is mounted on the second outer link of an Adept SCARA robot The calibration transformation determined is the relationship between robot link 2 and the vision coordinate frame This method requires that you provide the location of the dot that will be used in the calibration You can specify the dot location in any of the following ways 1 Specify a virtual camera other than the current one with a good calibration for the same physical camera and mounting The program then uses that virtual camera to obtain the dot location automatically 2 Assign the location to the global variable ac dot loc prior to starting the calibration program 3 Manually enter the X Y and Z values of the location when the program ask
231. ion value repre senting the position and orientation of the vision camera in the robot frame of reference This transformation must be combined with the transformation returned by the vision system whenever the robot is to be moved to an object in the field of view For example for a camera fixed over the workspace the robot could be moved to the location defined by to cam vis loc where vis loc is the transformation returned by a VLOCATE instruction NOTE This example applies only if the camera is fixed over the workspace For any other camera mounting refer to Chapter 14 for the details of how to use the to cam transformation cam cal Output parameter that receives the area camera calibration data that is used in the VPUTCAL instruction see above This parameter must be a real array variable For details on the ele ments of this array see the description of the VPUTCAL instruc tion in the AdeptVision Reference Guide The following output parameters return transformation matrices for dealing with perspective distortion Each of these parameters must be a two dimensional real valued array variable If the calibration data file being read does not contain perspective data these arrays receive simple scale transformations NOTE Refer to the AdeptVision Reference Guide for more information on perspective distortion in general and on these arrays in particular pmm to pix Output parameter that receives the millimet
232. ironment V SHOW VERIFY Enabling this switch will cause the system to display all attempts the system makes during prototype recognition This switch is useful during development when you attempt to create prototypes that produce the most accurate results in the least amount of time It should be disabled during normal operations 200 AdeptVision User s Guide Rev A Chapter 12 Prototype Model Switches and Parameters Table 12 2 Prototype Model Parameters Parameter Default Range Effects V BORDER DIST 0 0 Allows you to disable prototype recognition processing 100 on objects that are not entirely within the field of view V MAX TIME 5 1 Sets the maximum time the vision system will spend 999 trying to recognize a prototype V MAX VER DIST 3 1 Sets the pixel variance allowed for successful fitting of 16 image boundaries to the prototype model V LAST VER DIST 0 0 Sets the pixel variance allowed for successful fitting of 16 image boundaries to the prototype model when a successfully recognized prototype is reverified When this switch is set to 0 the additional verification process is defeated Adept Vision User s Guide Rev A 201 Chapter 12 Performing Optical Character Recognition Performing Optical Character Recognition This section describes the optical character recognition capacities OCR of AdeptVision VXL Training an OCR Font 202 Before characters can be reco
233. is subtracted from this calculation 11 12 ID numbers See the description of VFEATURE in the AdeptVision Reference Guide for details on these two items 13 Left limit of region s bounding box mm 14 Right limit of region s bounding box mm 15 Lower limit of region s bounding box mm 16 Upper limit of region s bounding box mm 17 Number of holes in the object 18 Time spent acquiring processing secs and recognizing an object 21 When an object is located all the Holes can be located within a bounded holes within the object are given a region or within a hole in a bounded reference number This value is the region These values keep track of where reference number of the current hole you are in the locating sequence Holes Also holds true for holes within are numbered consecutively for each holes region 22 Parent number of holes referenced in VFEATURE 21 40 Total area of all holes pixels V HOLES must be enabled 41 Outer perimeter of the object mm V PERIMETER must be enabled 42 Object centroid along X axis mm V CENTROID must be enabled 43 Object centroid along Y axis mm Adept Vision User s Guide Rev A 147 Chapter 9 Boundary Analysis Instructions Table 9 3 VFEATURE Values and Interpretation Continued Index Information Unit Switch Parameter effects 44 The angle relative to the vision V CENTROID and V MIN MAX RADII coordinate system of a line drawn to must be enabled the
234. ist of Switches Table A 1 Vision Switches Continued Switch Default Effects V RECOGNITION v Disabling this switch will cause the system to behave as if no prototypes have been defined Must be enabled to perform prototype recognition VSHOW BOUNDS If this switch is enabled the vision system will display the results of fitting lines and arcs during boundary analysis This switch is useful during development as it allows you to see how the vision processor performs boundary analysis All the SHOW switches require a graphics display mode or overlay V SHOW EDGES If this switch is enabled the vision system will display the primitive edges fit to an object s boundary V SHOW FEATS If this switch is enabled the vision system will display the features used for ObjectFinder recognition This switch is similar to V SHOW BOUNDS However it applies to lines and arcs used in object finding not blob or prototype finding V SHOW GRIP If robot gripper positions have been defined for a prototype enabling this switch causes the system to show the effects of clear grip tests VSHOW RECOG If this switch is enabled and a part is recognized the silhouette of the prototype model will be overlaid on the part VSHOW VERIFY Enabling this switch will cause the system to display all attempts the system makes during prototype recognition This switch is useful during development when you att
235. ith reset mode when the camera receives a frame reset signal it immediately stops the current frame and starts a new frame This allows the timing of the frame to be controlled precisely relative to other timing events This capability also means that when a picture request is issued the vision system does not have to wait until the camera finishes with the current frame before starting the requested frame which would create a worst case delay of one frame period 1 15 second The digital connector is not used in Adept vision systems The BNC connector on the back of the camera has been modified to input the frame reset signal instead of output display video for unmodified Pulnix cameras The BNC connector cannot be used to display the camera image AdeptVision User s Guide Rev A Appendix H Switch Settings Switch Settings This section describes the switch settings for the Pulnix TM 1001 camera DSP NSP Switch The Pulnix TM 1001 camera has a DSP NSP switch located on the back of the camera see Figure H 1 NRM ASY Switch DSP NSP 12 pin Switch Hirose Shutter Control Connector Switch BNC o o Connector 000000000000000 Video OUT Connector Figure H 1 Pulnix TM 1001 Camera Connectors and Switches Always set the DSP NSP switch to NSP This switch is used in the Pulnix TM 1001 cameras that are not modified for Adept to change the frame rate from 15 to 30 frames per second This allows the video signal that is
236. izon indicates the approximate direction in which the calibration surface is tilted away from the camera Eliminating this tilt will result in a much better basic calibration Even if using a perspective calibration it is best to use a nontilted calibration surface if possible since not all vision tools do perspective compensation If you are not interested in location information from the vision system for example you are going to use the vision information only for inspections you may skip to the description of the Camera only calibration selection Otherwise you should read the following general material so you will be better able to understand the procedure for camera to robot calibration For any calibration involving the robot the program will prompt you to define a nominal robot location For fixed mount cameras the nominal location should allow a clear and shadow free vision window If the robot is to hold the disk in front of the camera during calibration the nominal robot location should position the disk near the center of the vision window For calibration of a robot mounted camera the nominal location should be as close as possible to the picture taking location that will be used during the application runtime NOTE When performing camera to robot calibrations in MANUAL mode on an EN954 Safety Category system a prompt appears on the MCP Hold down Speed Pot and STEP buttons After completion of the calibrat
237. jectFinder model Vision models already in RAM cannot be overwritten by new models with the same name You must first use the VDELETE or VRENAME command to delete or rename the existing model See Deleting Vision Models on page 210 and Renaming Vision Models on page 210 for details VSTORE VSTORE works the same way as STORE except it will store vision models from the vision processor memory to a disk file Additionally VSTORE supports the ObjectFinder tool NOTE You cannot store different model types to the same file The syntax for VSTORE is VSTORE drive file spec model_1 model_n To store the models either ObjectFinder or prototype goodpart badpart and okpart to the file PARTSCMP PTS on the B drive enter the command VSTORE B partscmp pts badpart goodpart okpart 1 VSTORE is also a program instruction 206 Adept Vision User s Guide Rev A Chapter 12 Loading and Storing Vision Models To store all of the prototypes to the file PARTSCMP PTS on the B drive you can simply use VSTORE with no arguments VSTORE B partscmp pts NOTE When no model names are specified VSTORE stores all the prototype models in memory to the disk file There is no way to globally store only the ObjectFinder models To store all of the ObjectFinder models in memory you must explicitly state the model names after the VSTORE command as shown in the first example above To store correlation templ
238. k file 71 78 79 ADV_USER V2 disk file 331 333 ADV USER V2 details on 81 Advanced Calibration Program main menu 90 options 90 AIO IN 39 AIO OUT 39 AOI see area of interest Application development strategy 226 flow chart 229 Arcruler 161 example 161 163 Arc shaped area of interest shapes 154 Area vision calibration program calibration target dimensions 326 AREACAL 60 using to load calibration data 63 Area of interest 152 shapes 154 Arm mounted camera 261 calibration 62 Array calibration see Calibration array Assign cameras 197 prototype parameter 197 Assigning camera numbers 60 Asynchronous Reset Mode 342 ATTACH 39 Attaching cameras and strobes 50 Automatic learning details 178 Backlighting 319 Before calibrating your cameras 71 Binary defined 42 image 42 example 42 representation of sample matrix 125 threshold 96 vs grayscale modes 124 AdeptVision User s Guide Rev A 373 Index Blob allocation 148 analysis 142 using the Pulnix TM 1001 344 recognition 145 Blob relative inspection 287 289 Boundaries vision window 96 Boundary analysis 45 142 defined 45 instructions 144 parameter 143 switches used with 142 switches 142 Brightness adjusting image 95 C Calculating the Link2 transformation 264 Calculating the object tail location 251 CALIBRATE 61 CALIBRATE the current camera menu 97 menu options 101 Calibrating acamera 60 with HPS data 322 Calibrating the curren
239. k surface H height of camera field of view same units as C Figure C 2 illustrates these relationships and the meaning of the camera scale factor In the two examples in this illustration the field of view width and the camera to object distance remain constant while two cameras with different size imaging surfaces are used In order to keep the image within the imaging surface on both cameras different focal length lenses must be used By applying the correct camera scale factor for each camera based on the imaging surface size the correct lens focal length can be determined 312 AdeptVision User s Guide Rev A Appendix C Formula for Focal Length Camera Imaging Surface Field of View Figure C 1 Camera Imaging Field of View _ Be d A Camera 1 Lens aoe _ Imaging Surface wae pose H meme M m e fy gt a C gt m fto H dem TN A ue H Camera2 p Imaging Surface a EE S Y f S C W ae Figure C 2 Camera Scale Factor Adept Vision User s Guide Rev A 313 Appendix C Formula for Resolution The following formula shows the relationship between resolution and image size for AdeptVision systems Formula for Resolution The formula for resolution is r H 480 where r resolution height of one pixel H height of field of view same units as r Table C 1 Camera Scale Factors Camera Scale Factor Panasonic GP CD 40 4 8 Panasonic GP MF 702 6
240. l need when reading the other chapters shows you how to physically set up the AdeptVision VXL system hardware shows you how to perform all the initialization tasks necessary to get your system ready to start developing vision applications provides an overview of vision system calibration The vision sys tem should always be calibrated prior to any application develop ment describes the overall procedure for executing the Advanced Camera Calibration program ADV_CAL V2 describes each of the selections in the ADV_CAL menus describes the data generated during the calibration process This data includes calibration arrays perspective transformations and for robot related calibrations camera to robot transformations introduces vision processing It describes how to acquire and pro cess an image You will learn to fine tune the images you produce so your vision applications run as efficiently and predictably as possi ble describes the first vision processing strategy boundary analysis You will learn where vision data is stored and how you can influ ence the data the vision system gathers describes the second vision processing strategy vision tools You will learn to use rulers finders and inspection windows Adept Vision User s Guide Rev A 25 Introduction How to Use This Manual Chapter 11 provides an overview of the ObjectFinder Chapter 12 describes the vision modeling process including ObjectFinder
241. ld have handy as you use this manual They are e The V Operating System User s Guide which covers operating system tasks such as copying files executing programs and using the graphical interface e The V Operating System Reference Guide which details the operating system commands known as monitor commands AdeptVision User s Guide Rev A Introduction How to Use This Manual The V Language User s Guide and the V Language Reference Guide which contain a complete description of the commands instructions functions and other features available in the V language These manuals are essential for advanced applications programming The AdeptVision Reference Guide which contains a complete description of the vision enhancements to the V language This manual is a companion guide to the AdeptVision User s Guide The Instructions for Adept Utility Programs many of which are referenced in this manual The Adept MV Controller User s Guide This manual contains information on installing maintaining and configuring the physical controller hardware The AdeptWindows User s Guide This manual contains information on installing and using the AdeptWindows software package This software allows you to use a PC front end with the AdeptWindows Controller AWC It also allows you to write and edit V code offline using the PC The user s guide for your robot or motion device if your system includes a motion device This manual cont
242. le lenses For example suppose you are using a medium resolution camera Your measurement accuracy needs to be within 0 1 mm and the camera can be mounted 60 to 100 mm away from the object 1 Using 1 4 pixel accuracy apply a factor of 10 to the desired resolution and calculate the available field of view height r 0 1 10 4 480 9 2 2 Calculate the lens focal length at the minimum distance f 4 8 60 19 2 15 3 Calculate the lens focal length at the maximum distance f 4 8 100 19 2 25 4 Your application will achieve the desired resolution using lenses with focal lengths between 15 and 25 mm If a 16 mm lens is selected the proper viewing distance is 16 4 8 C 19 2 C 16 4 8 19 2 64 NOTE The effective focal length of a given lens can be lengthened by adding extension tubes However extension tubes may introduce image distortion These calculations do not take into account any error introduced by manufacturing inaccuracies in the camera In general higher resolution cameras are better constructed and should be used when resolution tolerances are tight Adept Vision User s Guide Rev A 315 Lighting Considerations Types of Lighting 2 2 2 5 318 Lighting Strategies a aa aa a a 318 Diffuse 2 2 2 5 5 5 5 5 318 A 319 Directional lt lt s s ss eee ESS hae Sw oc 319 Structured 2 4 4 6 44 6 5 26646 dod Eo eww wD amp 9 4 319 S
243. lf on the end of the pointer You can assure that the pointer moves only along the TOOL Z axis by using TOOL mode on the manual control pendant with the Z direction active If the camera Z and tool Z axes are parallel and the tool can rotate about its Z axis often the case you will be asked to place the pointer in the center hole four times each time with the tool flange rotated 90 degrees from the previous position Each time let the disk center itself on the pointer This procedure compensates for any offset that exists between the center of the robot quill and the tip of the pointer e Ifavacuum gripper is being used the calibration program assumes the calibration object can be picked up and put down reliably without changing its position If the camera Z and tool Z axes are parallel and the tool can rotate about its Z axis often the case the object will be viewed in 4 different orientations each time rotated 90 degrees from the previous This is done to compensate for any offset that exists between the center of the robot quill and the center of the grip per e If the robot is holding the disk in front of the camera the robot is moved to the computed location not set back from it If you are using a two sided card for a side mounted camera the program will rotate the robot quill 180 degrees and take another picture If the camera Z and tool Z axes are parallel and the tool can rotate about its Z axis often the case the
244. ll use the point found by the two VFIND LINE instructions in our previous example Figure 10 11 Using this point x y we ll place an area of interest window that just encompasses the sample object w width 90 w height 60 VDEF AOI 5000 1 x w width 2 y w width w height VWINDOW cam virt 5011 170 Adept Vision User s Guide Rev A Chapter 10 Vision Tools Inspection Windows VWINDOWI The above instruction results in the window illustrated in Figure 10 12 In this case for maximum speed in locating the x y position you would use type 1 line finders 4 w width xy a wheigt _ Figure 10 12 VWINDOW Example Vision Tools Inspection Windows VWINDOWI VWINDOWI returns graylevel or binary data about the portion of an image inside the inspection window The number of nonzero pixels average graylevel standard deviation of the graylevels object and background pixel counts and number of edge points in the window are calculated with this instruction VWINDOWB returns basic information about the binary image See the AdeptVision Reference Guide for details on these instructions Vision Tool Data Arrays All vision tools return data to the array you specify in the instruction line A potential problem arises with these arrays when your application is cycling through multiple inspections and placing the data in the same array during each iteratio
245. lmost alike except for a few features or look like a subset of another model When disambiguation is enabled the ObjectFinder automatically determines potential ambiguities within a model and between models and remembers them At runtime whenever a model is recognized and before reporting a successful match the ObjectFinder checks whether the model was found to have ambiguities when it was planned If this is the case it attempts to detect and resolve potential ambiguities by performing verification with the alternative model correspondences This operation is relatively fast because the transformations are precomputed during planning After alternative model correspondences have been verified the match with the highest verify percent is reported NOTE Disambiguation is not performed for objects that are circularly symmetric 180 Adept Vision User s Guide Rev A Vision Model Processing Introduction sls sn Why Use the ObjectFinder Why Use Correlation Why Use Prototype Recognition Why Use OCR 2 2 2 2 2 52 5 Training and Using the ObjectFinder Setting the System Switches and Parameters Required Settings 0 0 0 Recommended Settings Creating an ObjectFinder Model Editing the Trained ObjectFinder Model Planning the ObjectFinder Model
246. load area is executing the parameter Serr receives an empty string and the output parameters described below receive the indicated values If an error does occur err receives a string describing the error and the other output parameters are not defined Thus your calling program should check the variable err before proceeding Input parameter and output parameter that identifies the vir tual camera receiving the calibration data As an input parameter cam specifies which virtual camera is to receive the calibration data If this parameter is undefined or has the value zero the camera number stored in the data file will be used If cam has a nonzero value it will be compared with the virtual camera number in the data file and err will be assigned a warning message if the camera numbers differ This parameter will be used as an output parameter if it was undefined or zero on input Then cam will return the virtual camera number used as a real value in the range 1 to 32 The physical camera number is contained in the cam cal data array see below Adept Vision User s Guide Rev A Chapter 5 thresh backlight to cam LOADAREA V2 Output parameter that receives the real value used to set the V THRESHOLD system parameter Output parameter that receives the real value used to set the V BACKLIGHT system switch The value will be either TRUE 1 or FALSE 0 Output parameter that receives the transformat
247. location This variance is calculated using a fixed mount downward looking camera Figure 14 8 shows the physical setup for this workcell Parts Conveyor Belt Arm Mounted Camera Pallet Conveyor Belt Figure 14 8 Example Program Setup The Sample Program PROGRAM guided vis examp ABSTRACT This program implements a robot workcell that 1 2 3 4 Allows teaching of workcell locations if necessary Visually locates parts brought into the workcell on an indexing conveyor Picks up the parts and presents them to a camera for inspection Discards the part if it fails or palletizes it if it passes The program will also load camera calibration files that have been previously stored on the default disk INPUT PARMS None OUTPUT PARMS None SIDE EFFECTS The following global variables are set pallet loc location of row 1 col 1 on the pallet pallet fram reference frame for the pallet inspect loc location robot presents part to up mounted camera Adept Vision User s Guide Rev A 269 Chapter 14 7 pic loc location robot takes picture of incoming part P scrap loc location robot takes rejected parts A arm cam number of the arm mounted camera locates parts f up cam number of the upward looking camera inspects parts dwn cam number of the downward looking camera locates pallets di oper input signal controlling main processing loop di p
248. location for each virtual camera is defined completely by the global variables ac nominal v and ac config v where v is the virtual camera number The robot location is stored in the transformation variable ac nominal v and the robot configuration 1 for RIGHTY and 0 for LEFTY is stored in the real valued variable ac config v You have a chance to define or redefine these variables during the calibration procedure and again when testing the calibration The most recent definition is the one that will be found in the global variables after you exit the calibration program Programs for applications using fixed mount cameras can use these variables to define a location where the robot will be clear of the camera field of view By moving the robot to the nominal location with the correct configuration you will be assured that the robot is out of the camera field of view For calibration of a robot mounted camera maximum accuracy will be obtained if all pictures are taken from the nominal location If you do not plan ever to change the robot configuration during the application then you do not need to consider the variable ac configl However if both robot configurations are used in your application you will need to change to the appropriate configuration before moving to the location ac nominall 116 Adept Vision User s Guide Rev A Teaching AdeptVision to See INMOCUCION amp o dono Pewee eer X49 EG EN Au dk 44S 1
249. long the tool Z axis to the center of the disk Each time except for the first that you lower the pointer into the center hole do not move the pointer in the direction of the tool X or Y axis just lower the pointer along the tool Z axis You may move the disk if necessary to allow the disk to center itself on the pointer You will have to do this only once for a calibration Information from the four pictures will allow the program to compute the pointer or TOOL offsets from the tool Z axis Vacuum grippers can be used only if the tool has theta capability In this case the program will automatically pick up and put down the calibration object four times each time rotating it 90 degrees with respect to the last orientation Information from the four pictures will allow the program to compute the pointer or TOOL offsets from the tool Z axis For camera to robot calibration you can have the program use HPS data to improve the accuracy of the calibration results If you select the option to use HPS data the program ensures that all the required conditions are satisfied before continuing with the calibration See Appendix E for more information on using HPS data AdeptVision User s Guide Rev A Chapter 6 CALIBRATE the Current Camera Menu After successful camera to robot calibration you will have a chance to test the calibration and to save the calibration data in a disk file CALIBRATE the Current Camera Menu Options Camera only
250. lowing code combines virtual frame buffer 21 with aoi12 to create the image buffer region ibr rect phy fr 1 virt fr 20 ibr rect aoil2 virt fr phy ftr jbr rect which now has the value 12021 can be used by any rectangular or line shaped tool that needs to be placed at the defined location in virtual frame buffer 21 The first example in Figure 10 4 shows the definition of ibr rect The example assumes a mm pixel ratio of 1 The second example in Figure 10 4 shows how an AOI definition can be combined with different virtual frame buffers to create different image buffer regions 156 AdeptVision User s Guide Rev A Chapter 10 Defining a Tool Area of Interest AOI 512 512 TV area of interest 12 mie VDEF AOI 12000 1 150 150 120 90 45 480 Virtual frame store 2 Physical frame store 1 Image buffer region 12021 320 320 320 64 area of interest 17 il VDEF AOI 17000 1 100 150 60 120 Virtual frame store 6 Physical frame store 2 Image buffer region 17022 Image buffer region 17062 Figure 10 4 Sample Image Buffer Regions Adept Vision User s Guide Rev A 157 Chapter 10 Linear Rulers Linear Rulers Linear rulers are vision tools that detect edges found along the length of the ruler and return the distances from the start of the ruler Linear rulers can operate on binary or grayscale data regardless of the setting of V BINARY
251. ls to inspect objects you need to acquire a clear accurate image that displays the features you are interested in and filters out features you are not interested in AdeptVision VXL has two classes of system variables that control the way it sees objects and what information the system will gather about those objects The two classes of variables are switches and parameters When an image is processed the effects of the switches and parameters are reflected in the data returned by the vision system For example suppose you have a part that has several 6 mm and 13 mm holes but you are interested only in the 13 mm holes By setting a combination of switches and parameters you can acquire an image that processes data about the 13 mm holes and ignores the 6 mm holes During the development of your applications care should be taken to set the switches and parameters so that your system produces clear images and processes only the minimum detail needed to accomplish the desired vision task processing unneeded data consumes processing time and may slow your applications All switches and parameters can be set within a program This allows you to set the variables for one image take a picture process the data and then change the variables for the next picture or image Remember each virtual camera has its own arrays of switches and parameters This allows you to use different virtual cameras to take pictures using different parameter switch an
252. lt Range Effects V FIRST COL 1 1 Sets the first column that will be processed by a 640 VPICTURE or VWINDOW instruction Used to speed processing time by ignoring unwanted areas of the left side of the field of view Must be less than V LAST COL V FIRST LINE 1 1 Sets the first line that will be processed by a 480 VPICTURE or VWWINDOW instruction Used to speed processing time by ignoring unwanted areas at the bottom of the field of view Must be less than V LAST LINE V GAIN 128 1 AdeptVision VXL recognizes 128 degrees of 256 intensity VGAIN works with V OFFSET to maximize the use of these 128 values V IO WAIT 0 0 When this parameter is set to 1 image acquisition 1 will wait until the digital input channel configured as an external trigger transitions V LAST COL 640 1 Sets the last column that will be processed 640 Everything to the right of this column will remain unprocessed Must be greater than or equal to V FIRST COL V LAST LINE 480 1 Sets the last line that will be processed Everything 480 above this line will remain unprocessed Must be less than or equal to V FIRST LINE V LAST VER DIST 0 0 Sets the degree of accuracy for 16 boundary to prototype model fitting required when a successfully recognized prototype is reverified When this switch is set to 0 the additional verification process is defeated V MAX AREA 307 200 1 Sets a value for the largest object the system will 1 048 576 attempt to process Useful if a large
253. map e Review the various calibration options and make sure you have any other items required by the selected option Things to Remember Important Stuff When to Recalibrate the Camera If the size of the field of view changes the camera should be recalibrated Camera calibration is very sensitive to the size of the field of view The following actions will change the size of the field of view Changing cameras or lenses changing lens focus or adding or removing extension tubes e Changing the lens aperture setting f stop e Changing the distance from the camera to the work surface Once calibration is complete Adept recommends that you secure your lens s focusing and aperture setting rings so they cannot be tampered with and move as a result of vibration This is especially true of robot mounted cameras In some cases simply taping the lens will work In other cases more elaborate clamps or set screws will be needed Adept Vision User s Guide Rev A 73 Chapter 4 Before You Start Calibrating Your Cameras 74 If the camera mounting position is changed the camera should be recalibrated The transformation used by guidance vision cameras is sensitive to the camera location either with respect to the robot world coordinate frame for fixed cameras or with respect to the joint the camera is mounted on for robot mounted cameras Virtual Cameras Camera calibration is calculated and stored for virtual not physical camera
254. mations Camera to Robot Transformation Miscellaneous Global Variables Location Array ac offset Location Array ac nominal and Real kates ac Sania Ji Teaching AdeptVision to See Introduction i Physical vs Virtual Gainera The Point of Origin VPICTURE Getting an Image VPICTURE Syntax VPICTURE Examples Executing VPICTURE From the Menu VDISPLAY Displaying the Image VDISPLAY Syntax VDISPLAY Examples Executing VDISPLAY From the Menu Using the Different Display Modes Live Modes Frame Frozen Modes Graphics Mode Binary vs Grayscale Operations Switches and Parameters Using Switches Enabling Disabling switches Viewing Switch Settings SWITCH Example Image Acquisition Switches Using Parameters Setting Parameters Parameter Examples Image Acquisition Parameters Examples of Switch and Parameter Settings Adept Vision User s Guide Rev A Table of Contents 111 112 112 114 115 115 115 116 117 118 118 119 120 120 121 121 121 122 122 123 123 123 124 124 124 128 129 129 129 130 130 131 131 131 131 133 Table of Contents 9 Boundary Analysis Introduction Switches and Polonia Used During Boundey Anclas Boundary Analysis Instructions VLOCATE VLOCATE Examples i The DO Monitor Command VFEATURE What is VFEATURE Blob Allocation VFEATURE Example VQUEUE 10 Vision Tools Defining a Tool Area of Interest AOI Frame S
255. mber in each switch These switches can be set by pulling down the Switches menu in the vision window dragging to the switch you want to change and releasing the mouse button A Y next to the switch name indicates that the switch is enabled The switch settings apply to whichever camera is selected in the Cam Frame menu The current state of a switch can be read within a program with the SWITCH function Viewing Switch Settings To see the status of all system switches issue the command SWITCH from the system prompt To see the status of the switches from the vision window menu pull down the Switches menu Switches marked with a Y are enabled This argument applies only to vision switches and parameters V system switches and parameters do not require this argument Adept Vision User s Guide Rev A 129 Chapter 8 Using Switches SWITCH Example The following example will enable the binary switch for virtual camera 4 and then output its current state ENABLE V RECOGNITION 4 F SWITCH V RECOGNITION 4 THEN TYPE V RECOGNITION 4 is ON ELSE TYPE V RECOGNITION 4 is OFF END Image Acquisition Switches Table 8 1 provides a brief description of the switches that affect the way the system sees an object Switches and Parameters Used During Boundary Analysis on page 142 describes the switches that influence what information the system gathers about
256. mber of the robot that the camera is fixed with respect to 4 y scale Vertical scale factor mm pixel 8 an error will result if y scale 0 5 y transl Must be 0 6 z constant Must be 0 7 v pitch Pitch angle 0 or 180 degrees see text 8 neg angle 1 gt Negate vision angles see text 1 gt Don t negate angles leave them alone 9 to cam x X component of calibration transform see text 10 to cam y Y component of calibration transform see text 11 to cam rz RZ component of calibration transform see text 12 mm per pulse Must be duplicate of y scale 13 flags A bit field containing several flags Bit 1 0 gt HPS not used 1 gt HPS used Bit 2 0 gt Full frame acquire 1 gt Field Bit 3 1 gt Asynchronous shuttered camera Bit 4 1 gt Synchronous shuttered camera Bits 3 and 4 are mutually exclusive 14 xy ratio Camera pixel height width converts X to Y 15 x scale Horizontal scale factor mm pixel 16 y scale Vertical scale factor mm pixel AdeptVision User s Guide Rev A 113 Chapter 7 Perspective Transformations Table 7 1 Elements of Vision Calibration Array Continued Index Name Value or Meaning 17 cam model 0 Normal RS 170 camera Panasonic GP MF702 Sony XC 77 etc 1 Panasonic GP CD40 2 Reserved 3 MF 702 asynch reset mode noninterlaced full frame 30Hz 4 MF 702 asynch reset mode interlaced full frame 5 MF 552 asynch reset mode interlaced full frame
257. me store sizes and memory allocations Reenables menu events 2 read modify camera interface registers 3 read modify camera model parameters 4 read modify vision constants 5 read modify bad pixel coordinates For Adept internal use only 346 Adept Vision User s Guide Rev A Appendix I The DEVICE Instruction With Vision arg 0 reset to defaults 1 read current values 2 write the values from input cam virt Selects the virtual camera affected when command is 2 Selects the camera model number affected when command is 3 Ignored when command is 1 or 4 input Array of data values when arg is 2 This should not be specified when arg is 0 or 1 output Array of data that is filled by the vision system when arg is 1 The input and output arrays always have the same format So if settings are read arg 1 then they can later be written arg 2 using the same array When command 1 the input and output arrays have the format shown in Table I 1 Adept Vision User s Guide Rev A 347 Appendix I The DEVICE Instruction With Vision Table I 1 DEVICE Input Output Format Index Contents 0 The number of elements that follow 9 1 Number of the virtual frame store size in the range 1 to 6 1 gt 256x240 2 gt 320x240 3 gt 512x480 4 gt 640x480 5 gt 1024x1024 Enhanced Vision Interface only 6 gt 1024x1024 eliminated in V version 12 0 but maintaine
258. milar to that shown in Figure 12 5 Adept Vision User s Guide Rev A 215 Chapter 12 ObjectFinder Example 216 perm fc weigh fc prune non props plan confirm xref classes merge fc equiv fc prune fc build fc Figure 12 5 Example ObjectFinder Model After Planning Use the ObjectFinder to Locate the Object In this step we will use the ObjectFinder model that we trained and planned to locate similar objects The V code used to accomplish this is shown below NOTE This code assumes that you are still using the same AOI IBR switch settings parameter settings and variables that were used in the previous code examples Acquire a picture of the object for processing VPICTURE cam virt 1 virt fr phy fr virt fr phy fr Find the object VFINDER cam virt 1 ibr rect VWAIT Wait for operation to complete After executing the program code the image in the Vision window will look similar to that shown in Figure 12 6 Adept Vision User s Guide Rev A Chapter 12 ObjectFinder Example Pe Ed Figure 12 6 Example Found Object You could also add some additional code that shows the number of found objects stored in the Vision queue and then displays the X Y and Rotation of the objects The V code used to accomplish this is shown below Show the total number of found objects stored in the Vision queue ttl tears VQUEUE cam virt S model name TYPE Total objects t
259. monstrates how to use the millimeter scaling mode of GTRANS to label an object in the vision window INPUT PARM cam virtual camera number REAL variable H X y location of text on vision screen REAL variable A Stext text containing STRING variable i OUTPUT PARM err string containing error messages AUTO vlun Serr Assume no error Attach and open the vision window ATTACH vlun 4 GRAPHICS IF FOPI IF Select VDI IOSTAT vlun lt 0 OR vlun 1 GOTO 100 EN vlun Vision Open the vision window p IOSTAT vlun 0 GOTO 100 display mode color and graphics mode SPLAY cam 1 1 Display grayscale frame and graphics GCOLOR vlun 1 Select the color black GTRANS vlun 1 Select millimeter scaling Output the text to the screen at the desired location GTYPE vlun x y text 3 Detach from the logical unit frees up the communications path DETACH vlun Check for errors 100 IF IOSTAT vlun 0 THEN Serr SERROR IOSTAT vlun END IF vlun 1 THEN Serr All logical units are in use PAUSE END END Adept Vision User s Guide Rev A 253 Guidance Vision INMOGUCTION amp o oko d om goo rasa 256 Using a Fixed Mount Camera 0 0 257 4 Axis SCARA Robot with Camera on Link 2 261 5 Axis SCARA Robot with Camera on Link 2 266 5 Axis SCARA R
260. n SET cur frame SHIFT pallet frame BY pal correction Start up the workcell TYPE C1 PROMPT Turn on the RUN switch and press ENTER when ready to begin Sans WAIT SIG di oper WHILE SIG di oper DO Move to the picture taking location and settle the robot MOVE pic loc DELAY 0 2 BREAK Bring parts into the workcell SIGNAL do part belt TYPE Waiting on a part WAIT SIG di part ready SIGNAL do part belt Create the variables for determining the link2 coordinate frame HERE pic loc DECOMPOSE jt 1 pic loc VPICTURE arm cam 1 O Make sure vision processor is idle then determine how many parts are seen VWAIT num parts VQUEUE arm cam Locate the parts and palletize them FOR i 1 TO num parts VLOCATE arm cam 2 vis loc Calculate the object location in world coordinates n E link2 pic loc RZ jt 4 TRANS 3t 3 part loc link2 to cam 1 vis loc TRANS gripz 180 n E Pick up the part APPRO part loc 50 OPENI Adept Vision User s Guide Rev A 271 Chapter 14 Guidance Vision Program PE T D 20 S MOVE part loc CLOSEI B D REAK EPART 50 Inspect the part CALL inspect part passed If the part passed palletize it IF passed THEN row offset row dist row 1 col offset col dist col 1 S
261. n Prev or Next an X will appear on one of the lines or arcs of the prototype If you click on Op the operation indicated by the Editing Operation Window will be performed If the Edge button is selected the next time you click on Prev or Next the X will move to the previous or next line or arc in the region Clicking on Op will perform the current operation If the Region button is selected the next time you click on Prev or Next the X will move to the previous or next region in the vision window Clicking on Op will perform the current operation Adept Vision User s Guide Rev A Chapter 12 Training and Using Prototypes Editing Operation Data Box This data box shows the editing operation that will be performed using the Edit Buttons or by clicking on the prototype The edit operation is selected from the Operation menu in the prototype window The editing tasks are Delete corner Delete the corner nearest to a mouse click or the next corner in sequence when Op is clicked Restore corner Restore a corner deleted with a delete corner operation Arc lt gt Line Convert a line to an arc or an arc to a line Delete region Delete the region nearest to the mouse click or the region cur rently selected with the Edit Buttons Can be performed only on the first prototype example Delete edge Delete the edge currently selected with the Edit Buttons or the edge nearest the mouse click Can be performed only on the first pro
262. n User s Guide Rev A Chapter 9 Boundary Analysis Instructions 4 causing the system to attempt to remove a hole s data from the vision queue V HOLES must be enabled Hole data is available only for holes in the most recently VLOCATEd region NOTE The mode parameter is not available when using VLOCATE with the ObjectFinder tool order is replaced with 1 causing the system to remove objects from the queue starting with the largest object 2 causing the system to remove objects from the queue starting with the smallest object NOTE Only the bounding box values are available when using VLOCATE with the ObjectFinder tool Svar_name To remove an unrecognized region known as a blob from the queue specify var_name To remove a hole s data mode 4 leave this parameter blank trans_var Optional transformation variable to be assigned the location of the object The type of model being supported is determined by the name which has been trained as either a prototype or an ObjectFinder model The name is checked against the lists of prototypes first for backward compatibility Therefore you should not use the same name for a prototype model and an ObjectFinder model VLOCATE Examples If a successful VPICTURE instruction has acquired and processed an image with at least one region in it the instruction VLOCATE 1 0 Sname trans_var will locate any object in the queue and make its region data available through VFE
263. n of the cycle The entire array is not overwritten during each cycle Only the currently generated values are overwritten AdeptVision User s Guide Rev A 171 Chapter 10 Windows Windows Windows For example suppose you were inspecting parts with linear rulers and you expected to find six edges in each part If a defective part containing only four edges was inspected the fifth and sixth array cells would still hold the distance to the fifth and sixth edges left over from the previous inspection To detect this problem check the array element that indicates how many edges were detected before processing the ruler Windows Windows Windows 172 Documentation for AdeptVision VXL uses the term windows in several contexts which can lead to confusion These are the different windows AdeptVision VXL uses Window used by itself refers to the windows that are open on the display screen These are the windows you can open and close perform operations in and view the results of vision operations in An inspection window results from issuing a VWINDOWI instruction The information available from this type of window is what is returned in the data array specified when the instruction was issued A processing window is the window resulting from issuing a VWINDOW or VWINDOWB instruction A VWINDOW instruction makes VFEATURE details available Vision models can be processed within this type of window and rulers can be placed inside these
264. n the frame stores is not changed This ruler type allows you to specify different values for the threshold parameters for each ruler you place 164 Adept Vision User s Guide Rev A Chapter 10 Ruler Types Graylevel Rulers type 1 This ruler operates on the grayscale frame store It returns the graylevel value of each pixel the ruler crosses The values are placed in the data array The first value in the array is the number of pixels found Fine Edge Fine Pitch Rulers type 2 3 These rulers operate on the grayscale frame store They look for edges based on the setting of V EDGE STRENGTH These rulers allow you to look for edges based on changes in intensity rather than binary thresholded values Unlike other ruler types these rulers find edges with subpixel accuracy See the AdeptVision Reference Guide for more details Figure 10 8 shows a comparison of standard binary and raw binary rulers With V MIN HOLE AREA larger than the size of the polygon hole a standard ruler would find these four edges A raw binary ruler with appropriate V THRESHOLD and V MIN HOLE AREA settings would find these two edges Figure 10 8 Ruler Types Adept Vision User s Guide Rev A 165 Chapter 10 Finder Tools Ruler Speed and Accuracy The absolute speed and accuracy of rulers will depend on your particular application In general e Ruler length and the number of transitions affect speed e Raw binary rulers are the fastest
265. n the robot is at the nominal location Otherwise a rapid 360 degree rotation of the quill and camera could occur during the calibration procedure With this method you will be asked to position the camera so that the dot appears in 5 unique locations in the vision window It is imperative that these locations represent significantly different viewing orientations of the dot The total variation in viewing orientation should be at least 120 degrees and preferably a full 360 degrees After these first five images the program will complete the calibration automatically attempting to rotate the camera to obtain a full 360 degree variation in view angle among all the data points If some robot positions are not valid they will be skipped NOTE The calibration data resulting from this method is usually not so accurate as data resulting from the method that involves touching the part see above Use this method only if it is not possible to use the contact method Link 2 mounted camera Robot can touch calibration object This method assumes that the camera is pointing vertically downward and is mounted on the second outer link of an Adept SCARA robot The calibration transformation determined is the relationship between robot link 2 and the vision coordinate frame If you use a vacuum gripper the calibration object may be a disk dot or any other simple shape as described in Calibration Object on page 71 To start the calibrat
266. nates This section describes how to use the two most common camera mountings fixed mount camera and cameras mounted on the second link of several common robot types Additional camera mountings are described in the camera calibration user s guide Adept Vision User s Guide Rev A Chapter 14 Using a Fixed Mount Camera Using a Fixed Mount Camera PROG A fixed mount camera is any camera that acquires images at a fixed location in the robot workspace The following code will locate a blob and then move the robot to the blob s location RAM pickup part fix pick up part with fixed camera ABSTRACT The following sample program is used to x Ss 0 DN E gt CO alr cam ove to a location outside the camera field of view Locate a single part using blob recognition Acquire the part with a single pneumatic gripper vacuum or mechanical Raise the part 50 mm ENTS In order for this program to run a location called pic loc must eady exist When the robot is at pic loc the part must be in the era s field of view and not obstructed by the robot AUTO obj loc part loc vis loc ret MOVE pic loc Move to picture taking location BREAK Stop robot VPICTURE 1 1 Take picture with camera 1 VLOCATE 1 0 name vis loc Find single object in field of view with Blob recognition SET obj loc to cam 1 vis loc RZ VFEATURE 48 Determine the location
267. nd only three are generated the array location that would normally hold the fourth value will not be blank but will hold the fourth value from the previous cycle This program provides no opportunity for operator intervention when errors are generated You will want your programs to be much more fault tolerant The simplest method is to place an IF THEN clause around conditions that indicate errors and prompt for operator attention In a more complicated vein the program could communicate with other cell devices or computers in an attempt to nonfatally resolve errors As you build a more robust program you will likely find that each inspection should be broken down into its own subroutine This will make the program more readable and maintainable 242 AdeptVision User s Guide Rev A Chapter 13 The Complete Inspection Vision Program The Complete Inspection Vision Program The Main Program inspect part PROGRAM inspect part re init i ABSTRACT Inspect the sample object for defects in the round and polygon shaped holes the arc at the front of the object and the surface gradation i INPUT PARM re_init determine whether to call the system initialization E routine 1 reinitialize 0 no initialization OUTPUT PARM None Lr SIDE EFFECTS The global variables num parts and avg time d will be updated Declare local variables UTO obj width object width UTO cent ci
268. ng conveyor The conveyor must be mounted and calibrated to the robot see the V Language User s Guide The camera must be mounted upstream of the robot with a field of view that will encompass all the belt width that might have parts e The camera must be calibrated using the object on moving belt option in the Advanced Camera Calibration program see Chapter 4 e See the V Language User s Guide for details on defining belt relative locations e The part location must be taught dynamically with a program that contains the following six steps 1 Prompts for a part to be placed upstream of the camera 2 Starts the calibrated conveyor moving 3 When the part enters the field of view either stops the conveyor and allows the user to take a picture or relies on a digital signal to trigger the picture taking 4 Moves the conveyor until the part is in the robot s work envelope 5 Stops the conveyor and prompts the user to manually grip the part without moving it 6 Records the location relative to the belt location and the camera transformation 292 Adept Vision User s Guide Rev A Switches and Parameters Setting Vision Switches s s 294 Viewing Switch Settings coss s 294 Setting Vision Parameters 0 0 1 1 294 Viewing Parameters 4 295 List of Switches ooo a 3 3 3o ee caca od AA a 295 List of Parameters sss 298 Ade
269. nitialize variables caml 1 cam2 2 vfbl 11 default area of interest frame store 1 vfb2 12 default area of interest frame store 2 aoi 10000 area of interest 10 do belt 34 di part ready 1032 di run 1030 Define the AOIs 284 AdeptVision User s Guide Rev A Chapter 15 Performing High Speed Inspections VDEF AOI aoi 1 20 20 10 5 first frm aoitvfbl virtual frame buffer 11 second frm aoitvfb2 virtual frame buffer 12 Set switches and parameters ENABLE V BINARY ENABLE V STROBE Set display mode to a grayscale frame store with graphics overlay and display only the image from camera 2 VDISPLAY caml 5 VDISPLAY cam2 1 nod Wait for the ready signal and start the belt WAIT SIG di run SIGNAL do belt Wait for the first part to be ready and then acquire the first image in a wait mode so we insure an image is present when we begin processing during the second image acquisition DO UNTIL SIG di part ready VPICTURE cam2 TRUE second frm first frm 2 Begin the ping pong routine DO Start a busy loop waiting for part to be ready DO UNTIL SIG di part ready Acquire an image with camera 1 and select frame store 2 for processing VPICTURE caml 0 first frm second frm 2 Inspect the part VWINDOWB d2 second frm Deal with results Wait for the next part DO UNTIL SIG di part_ready Acquire an image with camer
270. nixTM 1001 344 AdeptVision User s Guide Rev A 339 Appendix H Introduction Introduction This appendix describes how to set up the Pulnix TM 1001 camera The camera must be purchased with the Adept modifications CAUTION An unmodified Pulnix TM 1001 camera will not work M with Adept vision systems Overview 340 The Pulnix TM 1001 is operated in variable scan mode with video carried over single ended coax cable in the custom Hirose cable Variable scan mode means that the camera generates timing signals including pixel clock indicating the duration of a frame and the position of each image line and pixel within the video stream The frame grabber on the vision board samples the video signal using the frame enable line enable and pixel clock signals The frame grabber is programmed with the vertical offset from the top of the frame the number of lines to skip before valid image data the horizontal offset from the left end of each image row the number of pixels to skip at the beginning of each image row and the height number of lines per frame and width number of pixels per row of the image These four parameters determine the amount of the video signal that is used and also compensate for timing problems that may lead to missing lines at the top of the image extra lines at the bottom of the image missing pixels at the beginning of each row or extra pixels at the end of each row In asynchronous w
271. normally carried on the BNC connector to be displayed on a monitor NOTE You cannot use the BNC connector to display images when using Pulnix TM 1001 cameras with the Adept modification NRM ASY Switch The Pulnix TM 1001 camera has two modes of operation normal and asynchronous The mode is determined by the position of the NRM ASY switch located on the back of the camera see Figure H 1 The switch positions are NRM Normal Mode used for synchronous mode ASY Asynchronous Mode the resettable shutter is enabled used for asynchronous mode with reset Simply move the switch to the desired position to select the operating mode AdeptVision User s Guide Rev A 341 Appendix H Switch Settings Shutter Control 342 The Pulnix TM 1001 has a shutter control rotary switch located on the back of the camera see Figure H 1 This section describes the shutter control settings that are currently supported For Asynchronous Reset Mode For asynchronous reset mode the camera should be operated with a shutter control setting of 5 See Table H 1 for details on other shutter dial settings for asynchronous mode NOTE Other settings may also work but would require adjustments to the camera timing registers These settings have not been tested Shutter setting 9 external pulse width shutter is not supported Table H 1 Shutter Dial Settings for Asynchronous Mode Dial Shutter Period Shutter Mod
272. nse lighting sources will be needed with this type of filter By adjusting the orientation of polarizing filters on both the light source and lens you can significantly reduce ambient light and reduce shiny specular reflections Color Filters Color filters allow you to reduce or eliminate different colors of light that reach the camera Color filters may enable the system to ignore annoying object features that are a given color or ignore nonsignificant differences in an object that develop due to differences in the colors of the feature Color filtration is difficult and should be attempted only when other avenues have been exhausted 320 AdeptVision User s Guide Rev A Calibrating With HPS Data E Introduction amp a zoo eo eo Re X X CES E EX OE o Rok Rok xd 322 Using HPS Data 1 ooo sss 322 Adept Vision User s Guide Rev A 321 Appendix E Introduction Introduction If you have the Adept High Accuracy Positioning System HPS option data from that system can be used with the Advanced Camera Calibration Program while calibrating and testing the camera to robot relationship Refer to the manual for the HPS option for complete details on that system This appendix addresses some considerations that should be kept in mind when using HPS data with the calibration program and with application programs Using HPS Data 322 Use of HPS data during camera calibration generally improves the accuracy of the
273. nsformation will be different The robot mounted camera transformation relates the camera to a location on the robot The transformation is calculated with the robot joints between the camera and the robot gripper in a known state normally fully retracted or rotated 0 Each time the robot takes a picture at a new location the current state of these downstream joints is computed and the transformation from the current camera location and the robot world coordinate system is calculated The location of the part s within the field of view can then be determined so that the part s can be picked up 70 Adept Vision User s Guide Rev A Chapter 4 Before You Start Calibrating Your Cameras Before You Start Calibrating Your Cameras What You Need e Adept Utility Programs diskette which contains the following files ADV_CAL V2 the Advanced Camera Calibration program ADV_USER V2 a subroutine that can be called by a user written application program to take a picture with a calibrated camera locate a desired object in the image and determine the location in the robot coordinate system of the object e An Adept MV controller with the AdeptVision VXL option e Camera s and cable from the camera s to the controller e Camera lenses e Calibration object described below The following items are needed for the indicated camera calibration procedures e Manual control pendant for camera to robot calibrations only e Calibration p
274. nspect loc DELAY 0 5 BREAK E Acquire an image and place the arc finder VPICTURE up cam 2 VDEF AOI 3000 5 x y r tool r search 0 O VFIND ARC up cam 5 data 3000 If an arc is found and the radius is within the limits the part passes passed DATA O IF passed THEN passed data 4 gt low limit AND data 4 lt up limit END AdeptVision User s Guide Rev A 273 Chapter 14 Guidance Vision Program PROGRAM load cam cal ABSTRACT This program loads the camera calibration data for three cameras The calibration files must have been created and stored A on the default disk Global variables arm cam dwn cam and up cam H must have been previously defined INPUT PARM None OUTPUT PARM None SIDE EFFECTS The array elements to cam 1 to cam 3 are updated and three H virtual cameras are readied for use OCAL Sarm cal dwn cal up cal OCAL Sarm dat dwn dat Sup dat Get the calibration data file numbers TYPE C24 U20 PROMPT What is the calibration number for the arm mounted camera Sarm dat PROMPT What is the calibration number for the down mounted camera Sdwn dat PROMPT What is the calibration number for the up mounted camera Sup dat Sarm cal area S arm dat dat Sdwn cal area S dwn dat dat Sup cam area up dat dat Load the cali
275. nspection tools The main disadvantage of the strategy in the example program is that the object s location and rotation must be constrained A more sophisticated strategy that removes this constraint is to create a reference frame for the object and then place inspection tools relative to the new reference frame The following examples create reference frames based on an object s location and then place inspection tools based on that reference frame Blob Relative Inspection When a blob is located it will have a reference frame with the same orientation as the vision reference frame The starting point of this reference frame is the centroid of the blob see the V CENTROID switch description in the AdeptVision Reference Guide for additional details If the blob has a strong elliptical character you can identify the change in orientation based on the VFEATURE data generated by a VLOCATE operation Using the VFEATURE data and the origin of the blob reference frame you can create a reference frame unique to each found blob Is that perfectly clear Let s examine some sample code that places a blob relative ruler Initialize the ruler location variables These variables represent th location of the ruler relative to the centroid and rotation of the blob ruler_ang 45 Angle of the ruler relative to object s orientation xoffset 8 x offset of the ruler start point yoffset 0 y offset of the ruler start point lengt
276. nt Planning 4 4 4 4 4446 555080 SIE EIE He X E ER 203 Character Recognition ls s 204 OCR Examples 205 Loading and Storing Vision Models 206 NOIQRE ale riada IICA AAA 206 VLOAD sarro rs 4 Sow we habe AA 207 Displaying Deleting and Renaming Vision Models 209 Displaying Vision Models 209 Using the Vision Window Menus 209 From the V Monitor Prompt 209 Deleting Vision Models 0 210 Using the Vision Window Menus 210 From the V Monitor Prompt 210 Renaming Vision Models 210 Using the Vision Window Menus 210 From the V Monitor Prompt 211 ObjectFinder Example 2 212 Step 1 Train the ObjectFinder Model 213 Step 2 Plan the ObjectFinderModel 215 Step 3 Use the ObjectFinder to Locate the Object 216 Prototype Finder Example iss 219 Step 1 Train the Prototype Finder Model 219 Step 2 Train Additional Instances 220 Step 3 Use the Prototype Finder to Locate a Part 222 182 AdeptVision User s Guide Rev A Chapter 12 Introduction Introduction Vision model processing has two major steps training and recognition The first step training involves creating an idealized vision model of the object you want to recognize
277. nt Scientific 116 Burbridge Rd Hilton SA 5033 Austrailia Phone 03 723 6600 Fax 03 725 4822 Electro optical components for machine vision filters lasers structured lighting optical benches Dolan Jenner Europe BV contact U S office for information Fiber optic light sources and cables E G amp G Ireland Ltd Electro Optics Division Bay T 53 Shannon Free Zone County Clare Shannon Ireland Phone 353 61 472 1558 Fax 353 61 472 323 Strobe lights Hakuto Co Ltd 1 13 Shinjuku 1 chome Shinjuku ku Tokyo 160 Japan Phone 03 648 8115 Fax 03 648 9398 Electro optical components for machine vision filters lasers structured lighting optical benches Harvin Agencies Oriel Scientific Ltd 6 3 1090 B 4 Raj Bhavan Road Soma Jiguda Hyderabad 500 482 AP India Phone 36858 Lenses filters polarizers mirrors prisms beam splitters fiber optics Ing Volker Hippe auf der Platte 32 D 6000 Frankfurt Main 50 Germany Phone 069 545470 Line stripe projectors Keehwa Enterprise Corp Oriel Scientific Ltd Ha Nam Bldg Suite 906 44 27 Yedeudo Dong Yeoung Dung Po Ku Oriel Scientific Ltd Seoul Korea Phone 783 7396Fax 02 784 3935 Lenses filters polarizers mirrors prisms beam splitters fiber optics 370 Adept Vision User s Guide Rev A Appendix L Third Party Suppliers Asia Pacific Table L 12 Lighting Filter and Optics Suppliers
278. nu item is selected you are asked to enter the new robot number The default robot number will be the current one 94 Adept Vision User s Guide Rev A Chapter 6 ADJUST Camera Image Menu ADJUST Camera Image Menu This section describes the secondary menu for adjusting the camera image The following menu is displayed after selecting ADJUST camera image settings from the main menu O gt RETURN to the main menu 1 gt ADJUST physical CAMERA ATTRIBUTES live video 2 gt ADJUST video GAIN and OFFSET live video 3 gt ADJUST binary THRESHOLD live binary 4 gt ADJUST vision WINDOW processing boundaries Some system parameters may be changed by the following selections However you will have the option to restore all the camera switches and parameters to their original state when you exit the calibration program If you choose not to have them all restored only a few switches and parameters associated with image processing such as V BINARY and V BOUNDARIES will be restored Other switches and parameters which are particular to your current application such as the binary threshold and window boundaries will be left as you have set them while using the calibration program ADJUST Camera Image Menu Options RETURN to the main menu Use this selection when you are finished making adjustments and want to return to the main program menu ADJUST physical CAMERA ATTRIBUTES live vid
279. o holes TYPI Gl CALL reject_part good_part FALSE END if ABS END if good part Place a graylevel ruler along the width of the object starting at object tail and ending 5mm from the edge of the object Adept Vision User s Guide Rev A 247 Chapter 13 The Complete Inspection Vision Program IF good_part THEN grul_ibr 7000 AOI 7 VDEF AOI grul_ibr 1 tailx 5 taily obj width 10 180 obj rot VRULERI 1 1 gray data grul ibr Calculate the graylevel changes every 25 pixels and compare them with the acceptable value gvalue FOR i 2 TO gray data 0 25 STEP 25 good part ABS gray data i gray data i 25 gvalue gt 0 9 good part good part AND ABS gray data i gray data i 25 gvalue 1 1 IF NOT good part THEN CALL reject part TYPE Graylevel ruler failed GOTO 90 exit on failure END END Lori 02 END if good part Read the timer 90 cycle time TIMER 1 Calculate the total time total time cycle time t avg time num parts IF good part THEN num parts num parts l END IF num parts 0 THEN avg time 0 ELSE avg time total time num parts END Output the data to the vision window msg 0 Average Processing Time Smsg 1 SENCODE avg time msg 2 Number of units passed msg 3 SENCODE num parts Get the mm pixel ratio and divide the screen int
280. o 20 lines VGETCAL cam cal hgt cal 16 480 Screen height in millimeters inc hgt 20 Start at the first line and indent text one lin x inc y inc 248 Adept Vision User s Guide Rev A Chapter 13 FOR i 3 TO O STEP 1 CALL write vwin cam x y Smsg i Serr y y inc IF Serr lt gt THEN TYPE Serr Output error message EXIT END END Read timer 2 to see how long it has been since the threshold was set If it exceeds 30 minutes set V THRESHOLD and restart timer 2 ttime TIMER 2 IF ttime gt 1800 THEN VWAIT make sure the processor is idle VAUTOTHR tarray IF tarray 0 THEN PARAMETER V THRESHOLD tarray 1 Gl END if TIMER 2 0 END if AdeptVision User s Guide Rev A The Complete Inspection Vision Program 249 Chapter 13 The Complete Inspection Vision Program Subroutine line line PROGRAM line line x y tool ang status ABSTRACT This program uses data from two line finder tools to calculate H the intersection of two lines and the angle of a line bisecting the intersection point used to place other tools The current frame store must have a valid image INPUT PARM None OUTPUT PARMS x x coordinate of the intersection point y y coordinate of the intersection point E tool ang angle of a line bisecting the intersection point status success of operation
281. o as a frozen image Use the frozen modes to see the actual image the system is currently working with Graphics Mode The live and frozen modes do not show you the actual edges the system has detected or the graphics that represent the vision tools To see the processed image use display mode 3 To see the tool graphics use a graphics or graphics overlay mode Remember displaying graphics requires processing time and is not essential to many vision operations If your application is time critical consider not displaying graphics Binary vs Grayscale Operations To understand the relative advantages of grayscale and binary operations it helps to understand what information the camera returns to the controller and how the controller interprets that information Figure 8 3 shows a magnified section of an array of pixels that might be returned by a camera In each pixel of the matrix is the grayscale intensity value the camera has registered from the field of view ss 2 sa ss s 83 so os too 88 80 78 so so zs 73 94 109 ss 79 80 78 77 74 65 91 oo 38 as 4o 3s 3o 74 77 ro s 20 25 23 2s 3760 64 60 57 22 26 22 2s 40 65 64 so 34 24 2s 24 30 37 eo s 56 66 21 22 23 27 s 60 67 65 67 23 22 22 25 38 59 64 er Figure 8 3 Sample Vision Matrix 124 AdeptVision User s Guide Rev A Chapter 8 Binary vs Grayscale Operations When AdeptVision VXL create
282. o system memory from a disk file The first is to use the camera calibration program The second is to call the program load area from your application program See Chapter 5 for details on using ADV_CAL to load calibration data Loading calibration data by calling load area from an application program is shown in the programming example in Chapter 13 and described in the Instructions for Adept Utility Programs manual If you are using VisionWare or MotionWare with vision the calibration data is automatically loaded when VisionWare or Motion Ware is started NOTE In order for loaded calibration data to be valid the physical camera associated with the virtual camera must be in the same location and have the same lens settings as when it was calibrated If this is not the case the system will still return data but the data may not be valid AdeptVision User s Guide Rev A 63 Vision Calibration Overview GOmpaliDIMV 444 44 pom 8 amp eR ADRS A 66 Why Calibrate a Camera ol ss n 66 Millimeter to Pixel Ratio s lr ss 66 When Do Need the Millimeter to Pixel Ratio 68 Perspective Distortion Corrections 69 When Do Need the Perspective Distortion Corrections 69 Camera to Robot Transformation 70 Fixed Mount Cameras 70 Robot Mounted Cameras 70 Before You Start Calibrating Your Cameras 71 What You
283. obot with Camera on Link 2 266 Guidance Vision Program 0 0 lll ss 268 The Sample Program 269 Further Programming Considerations 278 Error Handling 5 322222 66 be he ee ee c3 eG 278 Generalizing the Program 000 0G 278 AdeptVision User s Guide Rev A 255 Chapter 14 Introduction Introduction 256 Before a camera can be used for inspection or guidance vision the camera must be calibrated and the calibration data must be transferred to the vision system Cameras are normally calibrated using the advanced camera calibration utility See Chapter 4 for details Once you have calibrated a camera and stored the calibration data to a disk the calibration data can be loaded from disk using the LOADAREA utility program on the Adept Utility Disk 1 See the sample program on page 252 for an example Camera calibration data must be reloaded each time the controller is turned off or system memory is zeroed See Loading Vision Calibration Data on page 63 One element of the camera to robot calibration relates the vision coordinate frame see Figure 14 1 to the world coordinate system of the robot The vision system returns X and Y coordinates and RZ rotation defining the location and orientation of an object with respect to the vision coordinate system This information is combined into a transformation value that represents an object s location in world coordi
284. offset reference frame tool loc Figure 15 2 Blob Relative Inspection Prototype Relative Inspection If the objects you are inspecting e Are similar and cannot be identified by blob recognition or by using a combination of finder and ruler tools Do not have a strong elliptical character or other features that define the object s rotation e Are touching or overlapping then prototyping may be the best way to define a reference frame for the object Prototypes have their own reference frame based on the orientation of the part the first time reference it was trained When a prototype is recognized VLOCATE operation a frame based on the recognized object is returned The following code will place a prototype relative ruler Identify the reference xoffset yoffset ruler ang length cam 1 offset and rotation of the tool relative to the prototype frame 5 ruler x offset from proto reference fram 30 ruler y 320 ruler angle 50 ruler length relative to proto ref frame Adept Vision User s Guide Rev A 289 Chapter 15 ENABLE V R ENABLE V CENTROID Frame Relative Inspections Using VDEETRANS ECOGNITION enable prototype recognition Acquire a processed image and locate the prototype VPICTURE VLOCATE Create tool location variables based on the prototyp cam cam 2 sample_object proto loc The X and Y values of the or
285. ointer for some camera to robot calibration methods Calibration Object The calibration procedures make use of a calibration object to relate the vision image to the actual physical scene viewed by the camera Depending on the specific calibration method you use one or more of the following objects can be used as the calibration object For camera only calibrations the Adept Calibration Sheet supplied with the system This sheet is a series of nested squares For camera only calibrations a thin flat square or disk of known dimensions the color must contrast with the surrounding work area For robot related calibrations a rigid thin disk with a color that contrasts with the surrounding work area Adept provides two sizes of calibration disks When deciding which calibra tion disk to use or how large to make one try to keep the image size of the disk between 1 10 and 1 3 the height of the vision window AdeptVision User s Guide Rev A 71 Chapter 4 Before You Start Calibrating Your Cameras 72 If you make your own disks consider the following design details which will improve the accuracy of the calibration results a The thinned edge of the disk reduces the possibility of the disk casting a shadow on the work surface Such a shadow would be seen by the vision system as part of the disk itself which could distort the calibration data b The conical hole in the center of the disk aids the process of centering t
286. om Electro optical components optical benches prisms filters light sources lasers lenses mirrors Edmund Scientific 101 E Glouster Pike Barrington NJ 08007 Phone 609 573 6260 Fax 609 573 6295 Internet www edsci com Scientific and optical supplies prisms lenses optical bench hardware Melles Griot 16542 Millikan Ave Irvine CA 92606 Phone 800 835 2626 Fax 949 261 7589 Filters lasers prisms optics positioning devices optical benches polarizers Newport Corp 1791Deere Ave Irvine CA 92602 Phone 714 863 3144 Fax 714 253 1800 Electro optical components for machine vision filters lasers structured lighting optical benches Tiffin Manufacturing 90 Oser Ave Hauppauge NY 11788 3886 Phone 516 273 2500 Fax 516 273 2557 Filters lenses Table L 7 Lens Suppliers Manufacturer Product Line Nikon Inc Instrument Group 1300 Walt Whitman Rd Melville NY 11747 Phone 516 547 4200 Fax 516 547 0299 Internet www nikonusa com Precision 35mm format lenses AdeptVision User s Guide Rev A 365 Appendix L Third Party Suppliers Europe Table L 7 Lens Suppliers Continued Manufacturer Product Line R O I Industries 1791 Deere Ave Irvine CA 92602 Phone 714 895 1880 Fax 714 224 0550 Internet www ramoptical com OVP optical video probe VDZ video direct zoom Right angle probes
287. om that system can be used during the calibration procedure to improve the accuracy of the camera to robot relationship See Appendix E for details on using HPS data with this program Consult the manual for the HPS option for details on that system AdeptVision User s Guide Rev A 75 Using the Calibration Program ADV_CAL V2 ADV_USER V2 LOADAREA V2 AdeptVision User s Guide Rev A 77 Chapter 5 ADV_CAL V2 ADV_CAL V2 Description Camera calibration utility Disk File Name ADV_CAL V2 Program Name a adv_cal Function Performs camera calibration Details The disk file ADV_CAL V2 is a protected file Programs in that file cannot be displayed edited or stored from memory to a disk Also the file cannot be copied from one disk to another with the FCOPY command The disk copy utility program on the Adept Utility Disk in the file DISKCOPY V2 can be used to make a backup copy of the entire distribution disk That program can also be used to copy the file ADV_CAL V2 from the distribution disk to the optional hard disk The steps below describe the overall procedure for executing the Advanced Camera Calibration program ADV_CAL V2 Details on each of the calibration program menu options are presented in Chapter 6 Procedure 1 Clear the system memory with the ZERO command Make sure you save any programs or data 2 If data from the optional High Accuracy Positioning System HPS is to be used a Load the HPS r
288. on Link2 Coordinate Frame Calculating the Link2 Transformation Components of the Vision Location Final Part Acquire Location Five Axis Vision Transformation Example Program Setup Ping Pong Frame Grabbing Blob Relative Inspection Camera Imaging Camera Scale Factor Pulnix TM 1001 Camera Connectors and Switches l AdeptVision User s Guide Rev A 216 217 218 220 22 222 229 234 237 239 251 259 260 263 264 265 266 267 269 283 289 313 313 341 Table 7 1 Table 8 1 Table 8 2 Table 9 1 Table 9 2 Table 9 3 Table 12 1 Table 12 2 Table A 1 Table A 2 Table B 1 Table B 2 Table B 3 Table B 4 Table C 1 Table D 1 Table F 1 Table H 1 Table l 1 Table 1 2 Table J 1 Table L 1 Table L 2 Table L 3 Table L 4 Table L 5 Table L 6 Table L 7 Table L 8 Table L 9 Table L 10 Table L 11 Table L 12 List of Tables Elements of Vision Calibration Array Image Acquisition Switches Image Acquisition Parameters Boundary Analysis Switches Boundary Analysis Parameter A VFEATURE Values and Interpretation Prototype Model Switches Prototype Model Parameters Vision Switches 4 2 Vision Parameters VFEATURE Values and Interpretation for ObjectFinder Recognition Instances following VLOCATE VFEATURE Values and Interpretation for ObjectFinder Models following VSHOW VFEATURE Values and Interpretation for Pr
289. on NOTE For the sake of simplicity the operations detailed in this manual do not list all available options See the V Language Reference Guide and the AdeptVision Reference Guide for a complete description of all keywords Remember AdeptVision VXL supplies an extension to the basic V programming language The basic language elements such as control structures mathematical functions etc are detailed in the V Language Reference Guide and the V Language User s Guide Adept Vision User s Guide Rev A Chapter 3 Virtual Cameras Virtual Cameras AdeptVision VXL allows you to establish several virtual cameras for each of your physical cameras as long as the total number of virtual cameras does not exceed 32 One of the most important things you will learn in the next three chapters is how to control what a camera sees You may find that you want to take several pictures of an object with each picture looking at the object in a different way or from a different distance Virtual cameras allow you to do this For example you might want your first picture of an object to look at the perimeter shape and your second picture to look at interior features of the object By establishing two virtual cameras for the physical camera looking at the object you can take both types of pictures of the object What Is a Virtual Camera The controller allows you to attach four different cameras to each vision processor These cameras are the physi
290. on last code line on page 262 should be changed to SET link2 HERE INVERSE TOOL RZ jt 4 TRANS jt 3 Adept Vision User s Guide Rev A 263 Chapter 14 4 Axis SCARA Robot with Camera on Link 2 E TOU Outer Link ont X Y A x3 _ RZ tl4 Note TOOL is set to NULL in this situation TRANS jt 3 HERE Figure 14 4 Calculating the Link2 Transformation Since the camera calibration transformation was created based on the link2 coordinate frame any time you use the camera calibration transformation to cam in this example it must be applied to the link2 coordinate frame Note that the value of link2 must be computed from the robot s location when the vision image is acquired Thus the instructions above will have to be executed each time a picture is taken at a new location 264 Adept Vision User s Guide Rev A Chapter 14 4 Axis SCARA Robot with Camera on Link 2 Figure 14 5 shows how the remaining components of the location are calculated link2 was calculated as shown in Figure 14 4 to cam 1 created during camera calibration is added to create a transformation relating the vision coordinate system to the world coordinate system vis loc returned by a vision operation blob recognition in this case is added to create a transformation that represents the location of the found part in the XY
291. on program The program includes vision instructions that were presented in previous chapters as well as other V program instructions As you go through this example remember that we are not attempting to present the most efficient guidance vision application We are attempting to present examples of vision instructions in a simple straightforward context This example assumes that you are familiar with basic V programming All the commands presented in this example are detailed in the V Language Reference Guide or the AdeptVision Reference Guide The program listed below will pick up round parts from one conveyor belt and palletize them to pallets on another conveyor belt The parts will be randomly located on the conveyor belt An arm mounted camera will be used to locate the parts and guide the robot to pick them up Both conveyor belts are indexing belts and will be started and stopped using digital I O signals After each part is picked up it will be presented to a fixed mount upward looking camera for inspection If the part passes inspection it will be palletized Otherwise it will be taken to a scrap bin AdeptVision User s Guide Rev A Chapter 14 Guidance Vision Program The conveyor belt carrying the pallets holds the pallets rigidly in parallel with the robot X axis so no X axis correction is necessary The pallets are also rotationally rigid so no rotation correction is necessary There is some variance in the absolute Y
292. on User s Guide Rev A Chapter 2 System Memory When your monitor looks like Figure 2 1 you are ready to begin vision operations and to load vision application programs See the V Operating System User s Guide for details on installing application software System Memory The amount of system memory allocated for the vision system software is 1 5Mb This value is stored with the configuration data for the controller The memory allocation was increased in version 12 1 to accommodate the ObjectFinder tool and to support the Enhanced Vision Interface EVI board The default value can be increased using the CONFIG_C utility to provide more room for correlation templates OCR fonts and prototypes NOTE The default system memory value must be increased if any significant adjustments are made to the fixed memory allocations See Appendix J for more details on memory allocation See the Instructions for Adept Utility Programs for details on the CONFIG_C utility AdeptVision User s Guide Rev A 55 Getting Started V Syntax Conventions sn Virtual Cameras e How Are Camera Numbers Assigned Why Use Virtual Cameras 0 058 Motion Devices and Calibration Calibration 2 ww a a a a a a aa Motion Device Calibration Start up Calibration 0 0 Camera Calibration The Vision Transfo
293. on page 152 Train the font 5 15 times using samples that represent the range of examples the system might encounter NOTE Fonts are trained based on the binary image Therefore a constant optimized image must be used during training and recognition to obtain accurate consistent OCR results Font Planning After fonts have been defined and trained but before sample characters can be recognized the vision system must plan a recognition strategy Planning will take place the first time recognition is attempted on an unplanned font or when planning is specifically requested Since font planning can take a few minutes we recommend you plan fonts before using them in an application The instruction to plan a font is VTRAIN MODEL cam virt 1 font As fonts are planned each character planned is shown in the upper left corner of the vision window When planning is complete a matrix showing the font characters vs the found characters is displayed A red square at the intersection of a font character and a sample character indicates a well defined and trained character After a font is trained a matrix is displayed that shows the relative similarities among the characters in the font The rows of the matrix are marked with the characters in the font as are the columns The color of the intersecting cell indicates how similar the character in the row is to the character in the column Red indicates very high similarity and the corner
294. on shape Figure 10 9 shows a sample VFIND LINE area of interest 166 Adept Vision User s Guide Rev A Chapter 10 Finder Tools VFIND LINE Array The array values returned to the VFIND LINE data array are data 0 data 1 data 2 data 3 data 4 data 5 data 6 TRUE if a line was fit FALSE otherwise TRUE if any part of the search window fell off the screen X coordinate of a point on the line nearest to the search starting point Y coordinate of a point on the line nearest to the search starting point Angle of the fit line relative to the vision X axis horizon Percentage of the line s extent for which edge points were found Maximum distance between the fit line and the most distant edge point used to compute the found line The value is in pixels Guide Line dim4 25mm dim1 250 mm dim2 200mm Figure 10 9 Line Finder Search Area Line Finder Tool Polarity An important point to remember when using the line finder tool is that it locates dark to light transitions as viewed from the dark side of the tool In Figure 10 9 the dark side is the side with the heavy line When a finder tool is displayed in the vision window the dark side is the dark blue half of the tool search area In order for the tool to find a line a transition from dark to light must occur within the window as viewed from the dark blue side of the tool If only light to dark transitions occur as viewed from
295. ony XC 77 provides both synchronous and asynchronous shuttered capability When used in asynchronous mode the maximum number of images that can be acquired per second is 30 60 is the maximum in synchronous mode NOTE When a camera is used in pixel clocked asynchronous or shuttered mode the camera must be properly set up to operate in the selected mode See the camera instructions for details on setting up the camera for different operating modes The following cameras are also compatible with AdeptVision VXL e Hitachi KP M1 e Panasonic GP CD 40 e Panasonic GP MF502 e Panasonic GP MF552 Contact your Adept salesperson for details on the cameras sold directly by Adept Contact Adept Applications for current details on camera compatibility AdeptVision User s Guide Rev A Chapter 2 Setting up the Hardware Mounting Cameras Mount your cameras rigidly and dampened from vibration Consistent vision results depend on cameras that stay a constant distance from the objects being viewed Cameras that can skew change position on their mounts or lose focus due to vibration or contact will cause problems over the life of your application Appendix L lists several suppliers of camera and lighting mounting hardware AdeptVision User s Guide Rev A 53 Chapter 2 Setting up the Software Setting up the Software Your vision system leaves the Adept factory with the operating system and vision software installed on a floppy disk If yo
296. operation will not work AdeptVision User s Guide Rev A 51 Chapter 2 Setting up the Hardware 52 Pulnix TM 1001 This is a large format 1024 x 1024 pixels camera that is supported by the EVI board When you set your system for large frame buffers this camera model 6 will be the default for all virtual cameras rather than the normal camera model 0 You can install up to two of these cameras per EVI board The board s AM VS module must be configured differently in order to work with the TM 1001 See the Adept MV Controller User s Guide for EVI board installation details The TM 1001 can operate in an asynchronous acquire mode that allows it to acquire and store a frame buffer upon receiving a VINIT signal The VINIT signal is transmitted on the BNC connector of a custom cable pair See Appendix H for details on configuring the Pulnix TM 1001 camera NOTE The Pulnix TM 1001 camera and cables are custom Adept configurations The camera must be ordered directly from Pulnix the cables must be ordered directly from Intercon Please contact the Adept Application Questions hotline or see the Adept on Demand Web Page for part numbers and ordering information Sony XC 77 This is an electronically shuttered camera with a resolution of 768 x 493 pixels See the description of the Panasonic GP CD 40 camera for additional details on shuttered cameras This camera can be set to operate in standard nonshuttered mode The S
297. ose objects AdeptVision VXL has three primary information processing strategies NOTE Each of these processing strategies can be used independently or in conjunction with the other two In the first strategy boundary analysis AdeptVision VXL looks at the boundaries of whatever is in the field of view and calculates information such as the perimeter centroid and area of each bounded region e Inthe second strategy vision tools you place ruler window and finder tools in the field of view and AdeptVision VXL returns information based on what it finds with those tools e In the third strategy vision model processing AdeptVision VXL compares each bounded region in the field of view with known shapes or models you have placed in memory and attempts to identify the region ObjectFinder Prototype recognition and OCR are the options in this mode of operation Image correlation is another option in this strategy The correlation template is considered a model However correlation templates are not really bounded regions like blobs A correlation template is an array of graylevel values recorded from the pixels in a specified area of the field of view When a match is attempted this array of values is compared with the graylevel values in a given search area See Performing Correlation Matches on page 189 for more details Inspection vision systems will use the results of the various vision options to make quality gaugin
298. ot location that calibration should have been performed in the same area as the new calibration will be performed After the dot location has been determined you will be asked to position the camera four times such that the object appears in the vision window in four different quadrants The calibration will then complete automatically Robot mounted camera Non contact method This method is for the general case of the camera being mounted on the robot The camera may be mounted on any link except link 1 or 2 The mounting must be such that the camera can be moved around with X Y and RZ motions relative to the work surface The calibration transformation determined is the relationship between the robot link the camera is mounted on and the vision coordinate frame AdeptVision User s Guide Rev A 105 Chapter 6 CALIBRATE the Current Camera Menu NOTE For this calibration method perspective calibration cannot be used The camera must be mounted perpendicular to the work surface CAUTION The camera should be mounted such that it cannot robot make contact with the robot outer link or equipment attached to the WARNING To accommodate mounting on the quill of Adept A SCARA robots the program uses the instruction SINGLE ALWAYS to 106 ensure that the quill does not rotate excessively during calibration Because of this it is required that joint 4 be in the range 180 degrees at the start of the calibration procedure whe
299. otal memory Blobs 4 to 32 28 32 8 Objects 4 to 800 77 116 6 Run lengths 4 to 126 125 4 31 1 TOTAL 230 Default memory allocations for version 12 1 software 1 5Mb total memory Blobs 4 to 512 28 32 8 Objects 4 to 800 77 116 6 Run lengths 4 to 255 125 4 31 1 TOTAL 230 Suggested allocations for version 12 1 software when using ObjectFinder with FlexFeeder images Blobs 4 to 512 50 32 1 5 Objects 4 to 800 100 116 8 Adept Vision User s Guide Rev A 958 Appendix J 354 Memory Allocation Table J 1 Vision System Memory Allocation Continued Range Default Size of Kb Kb Item Items Run lengths 4 to 255 200 4 50 0 TOTAL 350 Suggested allocations for version 12 1 software with 1K x 1K frame buffers requires the EVI board Blobs 4 to 512 100 32 3 0 Objects 4 to 800 100 116 0 8 Run lengths 4 to 255 255 4 63 7 TOTAL 455 Maximum allocations Blobs 4 to 512 50 32 15 Objects 4 to 800 100 116 8 Run lengths 4 to 255 200 4 50 0 TOTAL 350 Provided for illustration only maximum values are rarely needed Total vision system memory allocation must be changed to 4 0Mb using the CONFIG_C utility AdeptVision User s Guide Rev A Vision Window Menus Cam frame v Frame 11 i 21 5 12 22 v Camera 1 i 2 3 i 4 Display Select the frame store for the next image acqui
300. ototype Recognition Instances following VLOCATE VFEATURE Values and Interpretation for Prototype Recognition Instances following VSHOW Camera Scale Factors so s Types of Lighting Adept Calibration Sheet Dimensions Shutter Dial Settings for Asynchronous Mode DEVICE Input Output Format Vision Memory Allocation Vision System Memory Allocation Fiber Optic Lighting Suppliers Lighting Suppliers Camera Equipment Suppliers Frame Splitter Suppliers Camera Suppliers Filter and Optics Suppliers Lens Suppliers Mounting Hardware Suppliers Lighting Suppliers Lens Suppliers Filter and Optics Suppliers Lighting Filter and Optics Suppliers E AdeptVision User s Guide Rev A 112 130 132 142 143 147 200 201 295 298 303 304 306 308 314 318 326 342 348 348 353 362 363 363 364 364 365 365 366 366 367 368 370 19 Introduction Compatibility 0 22 What s New in AdeptVision VXL Version 13 0 23 ObjectFinder Changes 00 0000 23 Feature based Refinement 23 Improved Handling of Complex Parts 23 Other Vision Changes 0 0 eee ss 24 Keyword Changes sn 24 How to Use This Manual 0 00 ees 25 Organizatio uuo 6 44 Xo ERE CR eR eee X E x 25 Before You
301. ototypes 194 Preview Window This window shows a reduced view of the vision window When 1x is selected the preview window and the vision window show the same extent of view When 2x or greater is selected the objects in the vision window will be magnified and a location box will appear in the preview window showing the area of the vision window you are working on You can move to a different area of the vision window by clicking on this location box and dragging it to a new area Zoom Buttons These buttons allow you to work with different levels of magnification of the prototype object The area you have zoomed to is shown in the Preview Box Message Window This box will display information and error messages during the prototype training process Edit Buttons There are two methods of editing a prototype clicking on the object s features with the pointing device and using the Edit Buttons The main difference between the two methods is that data reported in the Edge Region Information Windows is available only when using the Edit Buttons The editing operation that will be performed using either method is selected from the Operation menu in the vision window The current operation is shown in the Editing Operation data box When you edit with the pointing device the current operation will be performed on the line arc or corner nearest the pointer click When you edit with the Edit Buttons The first time you click o
302. our vision system you may not need all of these elements The following sections describe what each element is and why you would need it Millimeter to Pixel Ratio When an image is acquired by AdeptVision data that describes the scene is stored in a matrix You can think of this matrix as a piece of graph paper that is laid over the scene In each square of the graph paper is written a value representing the intensity of light covered by the area AdeptVision stores intensity values two ways as a graylevel value representing the relative intensity of the area covered and as a thresholded binary value Graylevel values range from 0 to 127 that represent the intensity gradient of light being received by the camera Binary 66 AdeptVision User s Guide Rev A Chapter 4 Why Calibrate a Camera values are either black or white Each graylevel value is compared to a specified threshold value All areas exceeding the value are considered white and all other areas are considered black The area of each square of the graph paper is referred to as a pixel When vision tools such as rulers or finders are placed in the image they look for edges based on the graylevel or binary data Graylevel edges are found when the intensity change from one region of pixels to another exceeds a specified value In the binary image edges are found when neighboring pixels change from black to white In order to return distance measurements the system must know
303. ous position This will allow the program to determine the precise location of the disk After one of the above procedures you will be asked to position the camera four times such that the object appears in the vision window in four different quadrants The calibration will then complete automatically Robot mounted camera Known dot location This method is for the general case of the camera being mounted on the robot The camera may be mounted on any link except link 1 The mounting must be such that the camera can be moved around in both X and Y directions parallel to the work surface The calibration transformation determined is the relationship between the robot link the camera is mounted on and the vision coordinate frame This method requires that you provide the location of the dot that will be used in the calibration You can specify the dot location in any of the following ways 1 Specify a virtual camera other than the current one with a good calibration for the same physical camera and mounting The program then uses that virtual camera to obtain the dot location automatically 2 Assign the location to the global variable ac dot loc prior to starting the calibration program 3 Manually enter the X Y and Z values of the location when the program asks for them For greatest accuracy the dot should be in the area for which the calibration will be used Also when using another virtual camera calibration to determine the d
304. p 100 114 258 known dot location 105 107 nominal 99 116 offset 100 115 part location 259 perspective calibration 115 vision location 258 Types of lighting 318 Typical AdeptVision VME system 37 U User equipment 39 Using a Custom Calibration Sheet 327 a fixed mount camera 257 this manual 25 Using the ObjectFinder 188 Utility programs instructions for use 27 V V Language Reference Guide 27 V Language User s Guide 27 Vt Syntax Conventions 58 V2ND MOMENT 143 295 V2ND THRESHOLD 132 298 V BACKLIGHT 139 295 V BINARY 130 134 295 V BORDER DIST 201 298 VBOUNDARIES 130 142 296 V CENTROID 143 296 VDISJOINT 200 296 V DRY RUN 296 V EDGE INFO 296 V EDGE STRENGTH 125 132 134 135 298 V EDGE TYPE 298 V FIRST COL 299 V FIRST COL system parameter 96 V FIRST LINE 299 V FITARCS 143 296 V GAIN 132 299 system parameter 96 V HOLES 143 296 V IO WAIT 299 V LAST COL 299 Index V LAST COL system parameter 97 V LAST LINE 299 V LAST LINE system parameter 97 V LAST VER DIST 201 299 V MAX AREA 132 299 V MAX PIXEL VAR 143 299 V MAX TIME 201 299 V MAX VER DIS T 201 V MAX VER DIST 300 V MIN AREA 132 136 300 V MIN HOLE AREA 132 136 300 V MIN MAX RADII 143 296 V OFFSET 132 300 system parameter 96 V OVERLAPPING 200 296 V PERIMETER 143 296 V RECOGNITION 200 297 VSHOW BOUNDS 143 200 297 VSHOW EDGES 143 297 VSHOW GRIP 297 VSHOW RECOG 200 297 VSHOW VERIFY 200 297 V STROBE 297 VSUBTRACTHOLE 142 297
305. pe new name pop up window enter a prototype name using normal V variable naming conventions and click on Ok This name is for an individual prototype not the disk file for storing the prototypes Multiple prototypes can be stored in a single file See VSTORE on page 206 6 A screen listing the 32 virtual cameras will be presented Click on the numbers of the virtual cameras you want to be able to recognize this prototype the cameras must be calibrated Click on Done when you have finished selecting virtual cameras Cameras can be added or deleted during subsequent training sessions 7 Place the object you want to train in the field of view and click on the Ok button in the training window Edit the prototype See the section Editing Prototypes on page 192 9 When you have completed editing of the prototype example select Done 2 Use example 10 The training window will display the default verify percentage 75 Click on the percentage to change it Click on Ok to accept the percentage displayed in the dialog box 11 The training window will display the available effort levels The suggested effort level will be highlighted Click on Ok to accept the suggested effort level Training Additional Instances After training the initial model it is necessary to train additional instances examples of the prototype CAUTION You must perform these steps or the prototype finder will not be able to locate parts
306. pixel compensation performed use the following DEVICE command DEVICE 4 0 status 5 O i Error Information The status parameter is a return code for error information If status lt gt 1 an error occurred See the information at the beginning of The DEVICE Instruction With Vision on page 346 for details The possible reasons for errors are invalid arguments or being out of system memory An out of system memory error can happen only when the DEVICE command is unable to allocate space for the array of pixel coordinates from system memory The DEVICE command type parameter 4 will return an error such as device not ready on the AdeptWindows interface if there is a task running that has executed a D graphics command To fix this problem temporarily abort and kill those tasks and retry the command To permanently fix this problem convert the programs that currently use D graphics commands to use G graphics commands AdeptVision User s Guide Rev A Appendix I The DEVICE Instruction With Vision Example Changing the Number of Virtual Frame Stores The following code will change the number of virtual frame stores to six 320 x 240 frame stores twelve 320 x 240 frame stores with the Enhanced Vision Interface Make sure all vision models have been saved before running this code Get the current configuration DEVICE 4 0 error 1 1 vis_config IF error lt gt 1 GOTO 100 Alter element 1 o
307. pixels and compare them with the acceptable value gvalue Adept Vision User s Guide Rev A 239 Chapter 13 Developing the Program Code FOR i 2 TO gray_data 0 25 STEP 25 good part ABS gray_data i gray_data i 25 gvalue gt 0 9 good part good part AND ABS gray_datali gray_data i 25 gvalue 1 1 IF NOT good part THEN CALL reject part TYPE Graylevel ruler failed GOTO 90 exit on failure END END for i 2 END if good part Output the Results If the part has gotten to this stage it has passed all its inspections and is ready to be moved on down the line We now read the cycle timer to see how long the cycle took and update the global variables that keep track of cycle time Then we ship the part to the next station Read the timer 90 cycle time TIMER 1 Calculate the total time total time cycle time t avg time num parts IF good part THEN num parts num parts l END IF num parts 0 THEN avg time O0 ELSE avg time total time num parts END Once we have gathered the data we will output this information as text to the vision window V provides several G commands to control output to graphics windows The GTYPE instruction is used in the subroutine write vwin to do this The subroutine write vwin is introduced in the next code segment and the code for the complete subroutine is shown at the end of this chapter The other G commands
308. plane of the vision coordinate system RZ VFEATURE 48 is added to give the orientation of the part grip trans is added to create a transformation that offsets and or rotates the gripper if the found object is to be acquired at a location offset or rotated from the location returned by the vision operation E XININd X Vision Coordinate ot Ss Frame P Ta E vis loc link2 Fd Object grip trans Location Figure 14 5 Components of the Vision Location AdeptVision User s Guide Rev A 265 Chapter 14 5 Axis SCARA Robot with Camera on Link 2 Figure 14 6 summarizes the transformations used when calculating the final part acquire location Camera Transformation to cam Vision Location Transformation E vis loc NL Object i Location Grip Transformation grip trans Part Acquire Location Including Grip Transformation part loc X Figure 14 6 Final Part Acquire Location 5 Axis SCARA Robot with Camera on Link 2 266 If a fifth axis see Figure 14 7 is attached to an Adept SCARA Robot AdeptOne and AdeptThree we now have another joint that must be accounted for when we calculate the link2 coordinate frame When a fifth axis is mounted on the robot the kinematic model automatically sets the null tool from the normal position at the end of joint three the tool flange to the pivo
309. plied automatically and do not require any changes to existing V programs The new recognition strategies enlarge the range of parts for which ObjectFinder is suitable improving performance across the entire range from simple parts to more complex parts Other Vision Changes Vision tasks are now scheduled so that they do not interfere with the tasks that update the image data for AdeptWindows Keyword Changes The following AdeptVision keywords were changed since this manual was last published VCOPY program instruction VFEATURE real valued function VFINDER real valued function VGETCAL program instruction VPUTCAL program instruction VTRAIN FINDER program instruction See the AdeptVision Reference Guide for details 24 AdeptVision User s Guide Rev A Introduction How to Use This Manual How to Use This Manual Organization Material in this manual is presented in a step by step fashion Each chapter expands on and relies on information in the preceding chapters If you are new to machine vision systems this manual will take you from the conceptual basis for machine vision to advanced programming techniques in computer vision applications Here is what you will find in each of the chapters Chapter 1 Chapter 2 Chapter 3 Chapter 4 Chapter 5 Chapter 6 Chapter 7 Chapter 8 Chapter 9 Chapter 10 presents an overview of machine vision principles and introduces vocabulary and concepts you wil
310. point is Adept Vision User s Guide Rev A Chapter 10 Finder Tools Select a live grayscale image with a graphics overlay VDISPLAY 1 1 Acquire and process an image with camera 1 VPICTURE 1 Place two line finders VDEF AOI 2000 1 80 80 30 10 205 VDEF AOI 3000 1 80 50 30 10 25 VFIND LINE 1 datal 2000 VFIND LINE 1 data2 3000 Pass the line finder data to a routine that calculates a line to line intersection a sample routine is shown in the description of VFIND LINE in the AdeptVision Reference Guide and a similar routine is shown in the programming example on page 250 xl datal 2 yl datal 3 angl datal 4 x2 data2 2 y2 data2 3 ang2 data2 4 IF datal 0 AND data2 0 THEN CALL line_line x1 yl angl x2 y2 ang2 x y YPE The lines intersect at x x and y y YPE One of the line finders failed Figure 10 11 shows the tool placement for the preceding example f VDEF AOI 1000 1 120 80 30 10 205 VFIND LINE 1 1 data1 1011 VDEF AOI 2000 1 120 50 30 10 25 VFIND LINE 1 1 data1 2011 Figure 10 11 Line Finder Example Adept Vision User s Guide Rev A 169 Chapter 10 Processing Windows VWINDOW Processing Windows VWINDOW In many cases only a small section of the field of view will be of interest to you You can reduce processing time by using the VWI
311. port Ltd U K 4320 First Avenue Newbury Business Park London Road Newbury Berkshire RG13 2PZ United Kingdom Phone 444 1 635 521 757 Fax 444 1 635 521 348 Newport Instruments AG Switzerland Giessenstrasse 15 5th Floor 8952 Schlieren Switzerland Phone 41 17 40 50 70 Fax 441 17 40 50 77 Electro optical components for machine vision filters lasers structured lighting optical benches L O T Oriel Ltd 1 Mole Business Park Leatherhead Surrey KT22 7AU United Kingdom Phone 44 13 72 37 88 22Fax 444 13 72 37 53 53 L O T Oriel S A 9 Avenue De Laponie Z A De Courtaboeuf 91951 Les Ulis Cedex France Phone 33 1 60 92 16 16Fax 33 1 60 92 16 10 L O T Oriel GmbH Im Tiefen See 58 64293 Darmstadt Germany Phone 44 61 51 88 060Fax 44 61 51 89 66 67 L O T Oriel Italia Viale Dei Mille 20 20129 Milano Italy Phone 39 2 70 12 69 38Fax 39 2 70 12 67 67 Lenses filters polarizers mirrors prisms beam splitters fiber optics AdeptVision User s Guide Rev A 369 Appendix L Third Party Suppliers Asia Pacific Third Party Suppliers Asia Pacific Table L 12 Lighting Filter and Optics Suppliers Manufacturer Product Line Barnin Enterprises Co Ltd Oriel Scientific Ltd PO Box 87 594 Taipei Taiwan R O C Phone 02 760 5513 Fax 02 763 1231 Lenses filters polarizers mirrors prisms beam splitters fiber optics Cohere
312. pretation for ObjectFinder Models following VSHOW Continued Index Information Unit Switch Parameter Effects 19 Average verify percentage Result of multi instance training To be used as a recommendation in selecting verify percent on training page 20 Maximum verify percentage Result of multi instance training To be used as a recommendation in selecting verify percent on training page 21 Hierarchical level The image processing level 0 2 See VTRAIN FINDER in the AdeptVision Reference Guide for details 22 Parent number This value is always 1 23 Number of the virtual camera that Virtual camera 1 through 32 located this object 24 Effort level assigned during training After VSHOW only This value is always 0 for prototype recognition 1 to 4 25 Convergence measure A measure of the convergence of the feature weights during multi instance training A higher value means the model is stabilizing should be at least 3 but 2 may be acceptable in some situations 26 Number of samples taught during model training 27 Number of features in the model All of the line segments and circular arcs in the model are counted even if the weight after multi instance training is zero 28 Maximum pixel variation Units of pixels Controls the initial rough fitting of features to edges 29 Maximum location distance Units of pixels Controls the distance be
313. principles of machine vision and AdeptVision VXL processing are covered in greater detail here than in the VisionWare or MotionWare user s guides so a general review of this manual may be useful AdeptVision User s Guide Rev A Introduction What s New in AdeptVision VXL Version 13 0 What s New in AdeptVision VXL Version 13 0 This section provides a summary of the software changes made to AdeptVision VXL since this manual was last published for version 12 1 ObjectFinder Changes The ObjectFinder was enhanced to provide new features and better performance during refinement and learning Also the ObjectFinder model file format was changed so that models created in version 12 3 and later will be compatible with all future versions of AdeptVision See Chapter 11 for an overview of the ObjectFinder Also see Chapter 12 for details and examples on using the ObjectFinder in V Feature based Refinement Feature based refinement was added in version 12 2 to increase significantly the accuracy of alignment for instances found with the ObjectFinder In version 12 3 the calculation for pose refinement has been improved to provide a better estimate of the orientation of elongated parts See Pose Refinement Details on page 179 for details Improved Handling of Complex Parts Version 13 0 of ObjectFinder includes new techniques for improving the recognition speed of large complex parts that may contain more than a hundred features and tho
314. pt Vision User s Guide Rev A 293 Appendix A Setting Vision Switches Setting Vision Switches ENABLE switch cam virt switch cam virt DISABLE switch cam virt switch cam virt switch is replaced with any of the switches listed in Table A 1 cam virt isreplaced with the number of the camera you want to set the switch for The default value is all cameras If you are using mul tiple cameras with different switch settings make sure you include a camera number with each SWITCH command Viewing Switch Settings To see the settings for all switches for the virtual cameras specified by the system parameter DISPLAY CAMERA issue the command SWITCH Setting Vision Parameters PARAMETER parameter name cam virt value parameter name is replaced with the name of the parameter you want to set cam virt isreplaced with the camera number you want to set the parame ter for The default is all cameras If you are using multiple cam eras with different parameter settings make sure you include a camera number with each PARAMETER command value is replaced with the new value you want the parameter to have 294 Adept Vision User s Guide Rev A Appendix A Viewing Parameters Viewing Parameters To output the parameter list to the screen issue the command PARAMETER List of Switches This table lists all the switches available to AdeptVision VXL and a brief description of what they do Complete information on
315. pter will inspect the sample object that we have worked with in the last several chapters Below is a list of the major steps that the program will perform see the flow chart shown in Figure 13 1 1 A digital output signal will be sent to a conveyor belt The belt will bring the object into the field of view When the object is in place a digital input signal will be sent to the system indicating the part is ready When the part is in place the digital output signal to the belt will be turned off 2 The first step after the part is in place will be to take a picture 3 When the objects are placed on the conveyor belt the tail will be facing forward An object s location and rotation can vary but must be within limits set by the placement of two line finders we will use to locate the object If the object is positioned outside the allowed area it will be sent back If it is located its centroid and rotation will be determined 4 Based on the object s location and orientation we will process the image area that just encompasses the object 5 We will now make five inspections a Check that the center of the circular and polygon shaped holes are correctly spaced from the object center within 0 5mm b Check the diameter of the circular hole It should be 10mm 1mm c Check the angle of the slanted side of the polygon It should be 25 29 d Check the arc on the top of the object Its center should be centered between
316. r pro_ibr 2 cam virt isthe virtual camera number to be used acq ibr is the image buffer region into which the current picture will be acquired pro ibr is the image buffer region that subsequent processing is to take place on The definitions of acq_ibr and pro_ibr must specify different physical frame stores Using VDISPLAY With Different Frame Stores The VDISPLAY instruction has a special mode to be used when both frame stores are being used in a ping pong fashion and you want to see system or user generated graphics The problem with using a graphics overlay in ping pong frame grabbing is that before the graphics can be adequately displayed the system is acquiring another image and overwriting the existing graphics Using the special mode 5 allows you to instruct one frame area to not display an image thus allowing the other frame store exclusive access to the monitor The next section shows how this special mode would be used in a high speed application Sample Code for a High Speed Inspection Let s write the code shell for high speed inspection of parts on a moving belt An operator generated input signal 1030 will control program execution The program will signal belt motion with digital output signal 34 When the part is in place a proximity switch will return digital input signal 1032 Declare local variables AUTO first frm second frm caml cam2 vfbl vfb2 aoi AUTO do belt di part_ready di begin I
317. r s Guide Rev A 241 Chapter 13 Developing the Program Code One program cycle is now complete The number of cycles executed can be controlled several ways A WHILE loop around the entire program could watch for operator input of a digital input signal A FOR loop with an operator input index could control an absolute number of cycles Or as is the case in this program the program is executed with a 1 argument indicating the program should loop until it is aborted Further Programming Considerations The program presented here is not very robust and could be modified to make it much more crash proof For example inspections can be done to eliminate the requirement that the part enter the field of view within 12mm of the desired location In Chapter 15 we will describe the use of frames and prototype relative processing that will allow you to inspect objects in any orientation The data arrays that are returned by the finder and ruler tools provide information with which to make much more rigid inspections of the part You will also find that the assumptions made about a particular feature being in the expected place may not be warranted Whenever a VLOCATE is done check VFEATURE 1 to see if the locate was successful Also bear in mind that during each successive cycle only the array values generated during the current cycle will overwrite the values generated during the last cycle So if you expect four transitions from a ruler a
318. racy 166 types 164 165 Rulers 45 158 166 defined 45 dynamic binary 164 fine edge 165 gray level 165 raw binary 164 speed and accuracy 166 standard binary 164 Index S Safety 28 47 Safety Features on the Controller Interface Panel CIP 29 Sample area of interest 156 code for a High Speed Inspection 284 gauge face 161 image buffer regions 157 object 41 133 operation 58 program for guided vision 269 vision matrix 124 SCARA robot arm mounted camera 261 with camera on Link 2 4 Axis 261 5 Axis 266 Seeds 175 SELECT different robot 94 Selecting a different robot number 94 SerialI O 39 Setting parameters 131 prototype parameters 196 the camera environment 231 vision parameters 294 switches 294 Setting the system switches and parameters 186 Setting up hardware 50 software 54 Shutter control 342 dial settings for asynchronous mode 342 Shuttered camera 51 SIG 39 SIGNAL 39 Software tools summary 45 Sony XC 77 52 Sony XC 77 RR 52 Stage one learning VFINDER mode 4 178 Stage two learning VFINDER mode AdeptVision User s Guide Rev A 381 Index 3 179 Standard binary rulers 164 Start up calibration 61 Stationary camera calibration object attached to robot general case 102 Status vision window menu 357 359 STORE calibration data to disk 109 Storing current calibration 91 Strobe 319 compatibility 51 lighting 319 lights compatibility 51 Structured 319 Subprototypes 196 Subroutine initprogram
319. ration data from disk or store the current calibration to disk Both selections will ask you for the disk unit to access and the data set number for the disk file to be accessed NOTE Calibration data may also be reloaded without using the calibration program This is done by adding to your application program code that calls a subroutine to load the calibration data from disk See LOADAREA V2 on page 82 for a description of this procedure The name of the camera calibration disk file has the format AREAnnn DAT where nnn is a user specified data set number used to identify the calibration data in the file As an aid to choosing a data set number any calibration files currently on the selected disk are listed with the description if any that was stored in each data file You can cancel the load or store procedure by pressing just the Enter key in response to the prompt for the data set number When calibration data is loaded the data is applied to the current virtual camera If a different virtual camera is specified in the data file a warning message is displayed on the monitor and the user is asked if the data should continue to be loaded NOTE Under certain circumstances it may be possible to load calibration data created with an older AdeptVision single camera system into an AdeptVision multiple camera system or vice versa However the resulting calibrations would be meaningless and Adept strongly discourages this
320. rc centx 100 OR ABS arc data 3 arc centy gt 1 THEN The outer radius is not correctly aligned with the two holes TYPE CALL reject part good part FALSE END if ABS END if good part 238 Adept Vision User s Guide Rev A Chapter 13 Developing the Program Code The origin of VFIND ARC window is at the center of the object The rotation is based on the object s rotation Figure 13 4 Executing a VFIND ARC Instruction We have at last come to the final inspection looking at the surface gradation of the part to see that there is a constant gradation from light to dark across the part We will use a grayscale ruler to perform this operation A graylevel ruler differs from a regular ruler in that it returns the graylevel intensities for each pixel along the ruler rather than the transitions found along the ruler From the data array returned by the previous VFIND ARC instruction we know the center and radius of the object arc We also know the width of the object With this information we can place a ruler along the X axis and make sure it stays within the object Place a graylevel ruler along the width of the object starting at object tail and ending 5mm from the edge of the object IF good part THEN grul ibr 7000 AOI 7 VDEF AOI grul ibr 1 tailx 5 taily obj width 10 180 obj rot VRULERI 1 1 gray data grul ibr Calculate the graylevel changes every 25
321. rclex cent circley x y center of circular object UTO obj centx obj centy x y center of the object UTO arc centx arc centy x y center of object arc UTO gvalue acceptable graylevel variance UTO good part boolean indicating status of part UTO di part ready digital sig indicating part is ready UTO cycle time average inspection cycle time UTO do belt digital sig for conveyor belt UTO poly angle circ diam correct part dimensions UTO poly dist poly act 7 UTO rnd_dist rnd_act UTO win ibr rul ibr lfdr ibr define areas of interest UTO afdr ibr grul ibr UTO last msg 19 Serr UTO i lun qp og og p gp ggg Initialize known values obj length 0 obj centx 85 object center X within 12mm obj centy 60 object center Y within 12mm obj width 82 object width obj hgt 50 object height gvalue 10 acceptable graylevel variance poly angle 25 correct angle of polygon edge poly dist 19 correct dist from object center Adept Vision User s Guide Rev A Chapter 13 The Complete Inspection Vision Program Set 244 rnd dist 17 5 do belt 31 digital signal for conveyor belt di part ready 1032 digital signal for part ready good part TRUE assume the part is good circ diam 10 correct diameter of circular hole cam l1 virtual camera used for inspections Switches and parameters
322. re Select the camera to use for the next image acquire This option selects a physical virtual camera pair You cannot select different physical virtual camera pairs using this menu option V Live grayscale VDISP 1 0 Display the live video input from the selected camera Live binary VDISP 0 0 Display the live thresholded image from the selected camera Grayscale frame VDISP 1 0 Display the image in the selected grayscale frame store Binary frame VDISP 2 0 Display the image in the selected binary frame store Graphics only VDISP 3 Display a processed image and any tool or user graphics Static graphics VDISP 4 Don t erase graphics with each picture operation V Graphics overlay VDISP 1 Display tool and user graphics over live video or frame image Static overlay VDISP 2 Overlay graphics don t erase with each picture operation Adept Vision User s Guide Rev A 355 Appendix K Pict Vision Window Menus Acquire VPICT 2 Acquire an unprocessed image quick frame grab Process VPICT 0 Process image in frame store selected from Cam frame menu Acquire amp process VPICT 1 Acquire amp process image frame selected from Cam frame menu Ops Histogram Display histogram showing frequency of each graylevel value Auto threshold Generate recommended values for V THRESHOLD Copy frame 11 to 12 Copy image da
323. re 12 3 since it provides a good mix of arcs lines holes etc However you are free to substitute your own sample object into this example Figure 12 3 Sample Part for ObjectFinder Training This example makes the following assumptions you have a working knowledge of V programming e you have read through the section Training and Using the ObjectFinder on page 186 you have already set up and calibrated the camera Adept Vision User s Guide Rev A Chapter 12 Step 1 Train the ObjectFinder Model ObjectFinder Example The first step is to train the ObjectFinder model The V code used to accomplish this is shown below the Area of Interest AOI il Defin shape CX cy wd ht ro aoil2 70 50 130 110 0 12000 rot VDEF AOI aoil2 shape cx cy wd ht Define th IBR phy fr virt fr ibr rect Image Buffer Region 1 10 aoil2 virt fr phy fr rj in live mode py Display the results of the next VPICTUR with a graphics overlay cam virt 1 zoom 1 1 1000 VDISPLAY cam virt 1 1 zoom VPICTURE cam virt 0 virt fr phy fr virt frtphy fr 2 Set the switches and parameters for ObjectFinder PARAMETER V MIN HOLE AREA cam virt 4 PARAMETER V MIN AREA cam virt 4 ENABLE V FIT ARCS cam virt PARAMETER V MIN LEN cam virt 10 PARAMETER V MAX PIXE
324. rec ognition prototype recognition optical character recognition OCR and correlation templates Chapter 13 presents a sample program You will learn how to combine the knowledge gained in the previous chapters to program an inspec tion vision application Chapter 14 covers using the vision system to guide a motion device You will learn how to set up and calibrate cameras that will locate acquire and place parts If you do not have a motion device you can skip this chapter Chapter 15 discusses advanced topics in vision processing High speed inspec tions part relative inspections and conveyor operations are cov ered Before You Begin AdeptVision VXL is an extension of the V operating system and language In order to use the AdeptVision VXL extension you must be familiar with the basic V operating system and language In particular this manual assumes that you e Are familiar with the Adept graphical user interface Can use the SEE program editor or the AdeptWindows Offline Editor to create and edit programs Are familiar with V programming including control structures data types and subroutine principles The V operating system and graphical user interface are covered in the V Operating System User s Guide and the V Operating System Reference Guide The V language is covered in the V Language User s Guide and the V Language Reference Guide Related Manuals 26 There are several manuals you shou
325. rip transformation Guidance Vision Program YPE C2 Establish the part acquire picture taking location YPE C2 Establish the part inspect picture taking location A NULL TOOL is assumed and no grip offset from the center of the part is needed YP YP PROMPT Press ENTER when ready Sans E E C2 Establish the nominal part pickup location Place a sample part in the field of view and grip it with the robot The grip trans will be added to the transformation composed of the link2 coordinate frame and the camera calibration location HERE part nom DECOMPOSE jt 1 fpart nom SET link2 HERE RZ jt 4 TRANS 5t 3 HERE link2 to cam 1 part loc ATTACH Extract the Z offset for the part gripz DZ part loc Determine the nominal offset of the pallet VPICTURE dwn cam VDEF AOI 6000 1 100 150 50 25 180 VFIND LINE 2 data 6000 pal offset data 3 Adept Vision User s Guide Rev A 277 Chapter 14 Further Programming Considerations Further Programming Considerations Error Handling In the interest of presenting clear examples several necessary steps have been left out of this program The most basic missing steps are error handling and data validation The data arrays returned by the various vision tools include a boolean value that tells you whether the tool found
326. rm a workcell that performs the tasks you have designated for the system The major components an AdeptVision VXL system may have are described below Figure 1 1 shows a typical system 36 AdeptVision User s Guide Rev A Chapter 1 What Adept Vision VXL Is USER EQUIPMENT E g Printer Other Controllers or Computers O 0000 o00 0 Encoder data User Equipment USER EQUIPMENT Eg Conveyors Part Handlers Sensors Figure 1 1 Typical AdeptVision VXL System Adept Vision User s Guide Rev A 37 Chapter 1 What AdeptVision VXL Is Controller and Vision Processor The controller contains the logic boards system and vision processor boards I O boards and camera connector This hardware system provides an environment for Adept s V Operating System and Language that allows you to direct and monitor vision operations The hardware software combination is multitasking and contains everything necessary to control e Four physical cameras per vision system 32 virtual cameras e Strobe lights for two physical cameras AdeptVision VXL provides the connection for a signal pulse for user supplied strobe lights e A graphics monitor e User installed serial digital and optionally analog I O
327. rmation Fixed Mount Camera Transformation Robot Mounted Camera Transformation Loading Vision Calibration Data 2 004 Adept Vision User s Guide Rev A 57 Chapter 3 V Syntax Conventions V Syntax Conventions 58 This manual details V keywords monitor commands functions and program instructions These operations are presented using the following syntax conventions see Figure 3 1 e Keywords are typed in capital letters and should be typed exactly as they are shown For example LOAD should be typed exactly as it appears e Arguments are shown in lowercase letters and should be replaced with arguments you provide For example drive should be replaced with a drive letter you choose e Keywords and arguments shown in bold type are required those shown in regular type are optional If you omit an optional argument the system will assume a default value Bold lowercase indicates a required user specified argument Optional string of user specified arguments commas required Bold means this comma between arguments is required e All caps indicates a required keyword type exactly as shown OPERATION opt arg req arg opt argl ia P opt argn Comma required if M optional arguments are used Lowercase indicates an optional user specified argument Bold parentheses indicate that parentheses are required Figure 3 1 Sample Operati
328. rs listed in Setting the System Switches and Parameters on page 186 and then retrain the model Planning the ObjectFinder Model After the model is trained it must be planned This is done with the program instruction VPLAN FINDER cam mode Sfmods cam indicates the virtual camera to use for planning mode is a real valued expression indicating the planning mode See the description of VPLAN FINDER in the AdeptVision Refer ence Guide for details mods is an array of foreground models Each list must contain names of valid trained models starting with index 0 and terminating with a null string as the last name See the Adept Vision User s Guide Rev A 187 Chapter 12 Training and Using the ObjectFinder description of VPLAN FINDER in the AdeptVision Reference Guide for details Using the ObjectFinder 188 Now that the model has been trained and planned you can use it to locate parts in the camera s field of view To find one or more objects use the program instruction VFINDER cam mode ibr cam indicates the virtual camera to reference for planning and parameter information mode specifies the recognition operation default value is 1 for ObjectFinder recognition See the description of VFINDER in the AdeptVision Reference Guide for details ibr is a defined image buffer region see Defining a Tool Area of Interest AOD on page 152 NOTE In some applications it may be necessary to iss
329. rt tmpl_nn ibr cam virt isthe virtual camera to use tmpl nn is the name of the correlation template Correlation template names begin with tmpl and end with a number between 1 and 50 Multiple templates can be stored in a single disk file ibr is a defined image buffer region see Defining a Tool Area of Interest AOI on page 152 Once a correlation template has been created it can be stored loaded and compared with new camera images The VCORRELATE program instruction searches for a template match in an image See description of VCORRELATE in the AdeptVision Reference Guide for details on hierarchical and binary correlation These options speed up correlation searches Matching a Correlation Template An area of the field of view is compared to a defined correlation template with the program instruction VCORRELATE cam virt data tmp num ibr cam virt isthe number of the virtual camera to use Adept Vision User s Guide Rev A 189 Chapter 12 Training and Using Prototypes data is an array name to receive the results of the correlation opera tion data 0 receives the correlation value of the best match found 1 is per fect correlation data 1 receives the x value of the area matching the template data 2 receives the y value of the area matching the template tmp num is the number of a loaded correlation template ibr is a defined image buffer region see Defining a Tool Area of Interest AOD
330. s The following settings are required PARAMETER V MIN AREA vc 4 PARAMETER V MIN HOLE AREA vc 4 Recommended Settings The following settings are suggested These settings are suitable for most applications and will provide a good starting point when training difficult applications ENABLE V FIT ARCS vc PARAMETER V MIN LEN vc 10 PARAMETER V MAX PIXEL VAR vc 2 5 PARAMETER V EDGE STRENGTH ve 9 Adept Vision User s Guide Rev A Chapter 12 Training and Using the ObjectFinder Creating an ObjectFinder Model An ObjectFinder model is created with the program instruction VTRAIN FINDER cam mode S model name ibr cam is an optional integer that specifies the virtual camera to use mode is an optional integer specifying the operating mode for this instruction See the AdeptVision Reference Guide for details model name isa string containing the name for the ObjectFinder model up to 15 characters ibr is a defined image buffer region see Defining a Tool Area of Interest AOD on page 152 Once an ObjectFinder model has been created it can be stored loaded and compared with new camera images See the AdeptVision Reference Guide for details Editing the Trained ObjectFinder Model When the VTRAIN FINDER instruction is executed the object in the camera s field of view is trained and the results are displayed in the Vision window If you are not satisfied with the results you can make adjustments to the paramete
331. s Frame grabber testing is done only at system startup List of Parameters This table lists all the parameters available to AdeptVision VXL and a brief description of what they do Complete information on each parameter is available in the AdeptVision Reference Guide Table A 2 Vision Parameters Parameter Default Range Effects DISPLAY CAMERA 4 1 Sets the number of camera values that will be 32 displayed when a PARAMETER or SWITCH command is issued V2ND THRESH 0 0 Used with V THRESHOLD to establish a range of 127 intensities that the system will see as black or white With V THRESHOLD at 50 and 2ND THRESHOLD at 70 all pixels between 50 and 70 would be seen as dark V BORDER DIST 0 0 Allows you to disable prototype recognition 100 processing on objects that are not entirely within the field of view V EDGE STRENGTH 20 0 Sets the threshold at which the system recognizes an 127 edge in grayscale processing If the variation in pixel intensity in a local area exceeds this parameter an edge is recognized V EDGE TYPE 1 ray A cross gradient edge detector is used when this 2 parameter is set to 1 and a Sobel edge detector is used when it is set to 2 Measurements are in pixels 298 Adept Vision User s Guide Rev A Appendix A List of Parameters Table A 2 Vision Parameters Continued Parameter Defau
332. s for them For greatest accuracy the dot should be in the area for which the calibration will be used Also when using another virtual camera calibration to determine the dot location that calibration should have been performed in the same area as the new calibration will be performed With this method simply position the camera such that the dot appears in the center of the vision window and let the program run Link 2 mounted camera Non contact method single config This method assumes that the camera is pointing vertically downward and mounted on the second outer link of an Adept SCARA robot The calibration transformation determined is the relationship between robot link 2 and the vision coordinate frame NOTE For this calibration method perspective calibration cannot be used The camera must be mounted perpendicular to the work surface With this method simply place the calibration disk approximately in the center of the vision window and let the program run Adept Vision User s Guide Rev A 107 Chapter 6 LOAD STORE Calibration Data Menu NOTE The calibration data resulting from this method is usually not so accurate as that resulting from the other methods Use this method only if no other calibration method is possible for a camera mounted on link 2 or if simplicity is more important than accuracy Link 2 mounted camera Non contact method lefty righty This method assumes that the camera is pointing v
333. s Guide Rev A Chapter 10 Linear Rulers Linear Ruler Example This example code takes a picture of the sample object and reports how far it is from the round hole in the object to the left edge of the object measured along the X axis We start similarly to the VFEATURE example shown in Chapter 9 Display the results of the next VPICTURE in live mode with a graphics overlay cam virt 1 VDISPLAY cam virt 1 1 Make sure hole information is gathered ENABLE V HOLES cam virt ENABLE V BOUNDARIES cam virt DISABLE V DISJOINT cam virt Acquire and process an image VPICTURE cam virt 1 Locate any object i e remove the object from the queue VLOCATE cam virt name Locate the round hole in the object VLOCATE cam virt 4 1 Place a 50mm fine edge linear ruler that starts at the center of the circular hole VFEATURE 2 VFEATURE 3 and is rotated 180 deg with respect to the X axis Place the ruler data in the array testdata VDEF AOI 3000 2 VFEATURE 2 VFEATURE 3 50 0 180 VRULERI cam virt 2 testdata 3011 AOI 3 virt frame buffer 11 Calculate the distance between the first and second transitions dist horz testdata 3 testdata 2 Display the result dist horz TYPE The distance is dist horz Figure 10 5 illustrates the preceding code example Adept Vision User s
334. s Suppliers Continued Manufacturer Product Line Quentron Optics Pty Ltd Oriel Scientific Ltd Laser Court 75A Angas St Adelaide 5001 South Australia Phone 08 223 6224 Fax 08 223 5289 Lenses filters polarizers mirrors prisms beam splitters fiber optics Teltec Semiconductor Pacific Ltd Oriel Scientific Ltd Room 604 Che San Bldg 10 Pottinger St Central Hong Kong Phone 5 214213 Fax 5 8106090 Lenses filters polarizers mirrors prisms beam splitters fiber optics 372 Adept Vision User s Guide Rev A Index A a adv_cal program 79 ac config real array 116 ac dot loc location 105 107 ac nominal location array 99 116 ac offset location array 100 115 ac refine vloc program 331 Acquiring an image 120 and begin processing 232 unprocessed 120 Adept calibration sheet dimensions 326 AdeptVision changes keyword 24 ObjectFinder 23 changes other 24 what s new in version 13 0 23 AdeptVision Reference Guide 27 AdeptVision User s Guide 27 AdeptWindows User s Guide 27 ADJUST binary THRESHOLD live binary 96 camera image menu 95 menu options 95 settings 92 physical CAMERA ATTRIBUTES live video 95 video GAIN and OFFSET live video 96 vision WINDOW processing boundaries 96 Adjusting camera settings 95 adv cam sample program 330 adv cam user program 333 adv tr point program 336 ADV_CAL 60 ADV_CAL V2 78 ADV CAL V2 dis
335. s a binary image each value in the matrix is compared with a threshold value All the pixels with a value above the threshold are considered white and all the pixels below this value are considered black Figure 8 4 shows the binary image that would result from Figure 8 3 using a threshold value of 32 A binary line finder tool would be able to find two lines in this image the bottom and right edges assuming the left and bottom edges represent the edge of the field of view 88 82 sa ss ss 3 so 93 109 88 s0 78 so so 7s 73 oa froo Les 79 so 78 77 74 591 90 AS 37 69 64 22 26 22 28 EYEE 37 60 ss 56 66 AMEE 38 60 67 65 67 PEE 38 50 64 67 66 Figure 8 4 Binary Representation of Sample Matrix When grayscale vision tools are used the software processes image data based on the difference in intensity values found in the neighboring pixels If the difference found exceeds an edge strength value the system considers the three by three area to be part of an edge Figure 8 5 shows the four edges a grayscale line finder could find if an edge strength value of 20 were applied to the image data from Figure 8 3 This illustration is somewhat idealized to help illustrate the point 1 Line finders are described in Chapter 10 Adept Vision User s Guide Rev A 125 Chapter 8 Binary vs Grayscale Operations ss s2 sa 8 ss 3 so o3 102 ss so 78 so 30 7 amp 73 94 100
336. s a value for the minimum length of features to Nomax be used for pairs This parameter is used by VTRAIN FINDER and VPLAN FINDER see those program instructions in the Adept Vision Reference Guide for details V OFFSET 255 0 AdeptVision VXL recognizes 128 degrees of 255 intensity VGAIN works with V OFFSET to maximize the use of these 128 values V THRESHOLD 63 0 Sets the intensity at which the system sees a pixel as 127 either black or white Measurements are in pixels 300 Adept Vision User s Guide Rev A VFEATURE Values Viewing VFEATURE Values sns Establishing VFEATURE Values Adept Vision User s Guide Rev A 301 Appendix B Viewing VFEATURE Values Viewing VFEATURE Values VFEATURE is not a monitor command or a program instruction It is a system function that returns a value As such it can be used in most places you would use a variable For example F VFEATURE 10 975 THEN or part_centerx VFEATURE 42 A critical point to remember when using VFEATURE is that it is a function that returns a value and not an array of values You cannot assign a value to a VFEATURE index For example the instruction VFEATURE 12 3 303 would not be accepted by the V system Establishing VFEATURE Values VFEATURE values are established as the result of a successful VLOCATE or VSHOW instruction You cannot directly view or set these values Before
337. s as possible thus minimizing shadows reflections and the need for critically placed light sources Fluorescent lighting is the most diffuse of the lighting types listed in Table D 1 Diffuser plates and reflecting panels produce a more diffuse light True diffuse lighting requires a parabolic reflector Adept Vision User s Guide Rev A Appendix D Lighting Strategies Applications with high contrast complicated objects spherical objects highly reflective objects or objects that require multiple inspections of interior features are candidates for diffuse lighting Back In backlighting the light source usually a diffuse source is placed behind the object to be inspected Backlighting will effectively light objects whose silhouettes are the critical feature This is particularly effective if the objects are highly reflective or have highly variable surfaces Directional Incandescent floods ring lights and fiber lights mounted above or to the side of an object provide directional lighting This lighting is the simplest to install but effective vision operations depend on this type of light source remaining constant If the light source dims the object will appear different to the camera If the angle changes shadows may be added that will be interpreted as features of the object This type of lighting will be most effective with simple objects or objects where specific highly identifiable features are being inspected
338. s in the camera field of view that are in adequate focus The smaller the aperture the greater the depth of field Sometimes a well focused image with optimum contrast is not possible Then a trade off must be made between allowing in more light for good contrast larger aperture and obtaining a greater depth of field smaller aperture ADJUST video GAIN and OFFSET live video This selection is used to adjust the video gain and offset The live grayscale video image is displayed during this procedure The effect of changing the gain and offset is immediately applied to the current image To adjust the video gain or offset use the appropriate slide bar on the left of the monitor screen When satisfied with both settings click on OK The values you have selected will be assigned to the system parameters V GAIN and V OFFSET for the current virtual camera Click on QUIT to reset the gain and offset back to the settings they had when you chose this option ADJUST binary THRESHOLD live binary A live binary image is displayed so you can examine and adjust the binary threshold The binary threshold is the grayscale level used to divide the entire intensity scale into just white and black During binary processing all pixels with intensities above the binary threshold are considered white and all pixels with intensities below the threshold are considered black To adjust either of the binary thresholds use the appropriate slid
339. s reference frame 5 Rotation about X 6 Rotation about Y 7 Rotation about Z 8 Encoder offset See the V Language User s Guide 9 Percentage of boundary that After VSHOW matched during prototype recognition specified during training recognition 308 AdeptVision User s Guide Rev A Appendix B Establishing VFEATURE Values Table B 4 VFEATURE Values and Interpretation for Prototype Recognition Instances following VSHOW Continued Index Information Unit Switch Parameter Effects 10 Area of object raw If VSUBTRACT HOLES is enabled the area pixels of holes in the object is subtracted from this calculation Note that this is the area of the prototype not the area of the region 11 ID numbers V DISJOINT V TOUCHING and V OVERLAPPING will influence the 12 number of objects processed 13 Left limit of prototype bounding box mm After VSHOW Bounding box is relative to prototype 14 Right limit of prototype bounding teference frame box 15 Lower limit of prototype bounding box 16 Upper limit of prototype bounding box 17 Number of holes in the prototype V HOLES must be enabled 18 Time secs Time spent acquiring processing and recognizing an object Time for first region includes all time from V PICTURE or VWINDOW until placing in queue For remaining regions time is from when one region is placed in the queue until the next object is que
340. s routine must be named ac refine vloc and can use tools such as VFIND ARC to refine the locations that the main program will use to compute the calibration See the programs adv cam user and adv tr point in Appendix G for the calling sequences and sample routines The methods for determining camera to robot calibration all rely on the camera seeing a contrasting object In most situations that can be a disk a round dot or any other simple shape This manual uses the term disk to refer to any type of object Adept Vision User s Guide Rev A Chapter 4 Before You Start Calibrating Your Cameras What You Need to Do Below is the list of things you need to do before beginning the calibration procedures Have the Adept MV controller installed and running n robot systems have the robot ready to make commanded moves high power is enabled and start up robot calibration has been performed e Calculate the required accuracy of your application and select cameras lenses and extension tubes that provide a field of view size that guarantees the required accuracy see Appendix C for details Have the cameras rigidly mounted in their permanent locations if the camera is mounted on the robot it must be mounted so that it will be moved in a plane parallel to the work surface e Ifa camera is mounted upstream on a conveyor belt have the conveyor installed and calibrated e f high accuracy mapping has been done load the HPS
341. s the first information processing strategy that AdeptVision VXL employs boundary analysis often called blob analysis Chapter 10 covers the second strategy vision tools and Chapter 12 covers the third information processing strategy vision model processing When the system processes an image it explores the boundaries of all the regions in the field of view and stores the information it gathers about each of those regions in a special vision queue Two operations are required to retrieve boundary information The first is VLOCATE which retrieves a region s data from the vision queue The second operation VFEATURE retrieves individual data items In many cases this data will tell you all you need to know about an object You will not have to use any other vision tools or model processing Before we look at VLOCATE and VFEATURE let s examine the switches and parameters that influence their performance Switches and Parameters Used During Boundary Analysis In addition to the switches and parameter listed below all the switches and parameters introduced in Chapter 8 affect VLOCATE and VFEATURE For example one piece of information available through VFEATURE is the number of holes in a region If we set the parameter V MIN HOLE AREA so that it was larger than the size of the two holes in our sample object see Example 4 on page 137 then VFEATURE will report that there are 0 holes in the sample object The switches and parameter liste
342. sals to optimize performance objects sec Although it is designed to be a runtime replacement for the finder it can be a bit slower up to 10 Therefore you should adjust the speed of the part feeding mechanism accordingly CAUTION You must already have planned with models you are going to use Any replanning will undo the learned data In VisionWare the two stages are controlled by the Auto learn and Auto plan checkboxes See the AIM 3 x Release Notes for details Learning requires that you have Auto plan enabled checked so that you do not have to select Plan which would cause the learning results to be replaced see the CAUTION above When Auto learn is enabled the finder begins automatic multi instance training When the system detects that the model has converged it performs a quick plan and then switches to learning mode gradually reordering feature classes The recognition speed has also been improved by enhancing the recognition strategy so that it is now more effective for general viewing conditions Object Disambiguation Models may be rotationally ambiguous meaning that matches may be found in more than one orientation There can also be ambiguities between models A model may match another model with a verify percent above the threshold The ObjectFinder has been enhanced to detect and compensate for rotationally ambiguous models and similarities between models Intramodel disambiguation is enabled by default an
343. sed e Enter a single backslash character 1 to access the top level directory on the selected disk regardless of the current default specification e Entera directory path to be used a terminating backslash is not required If the specified path does not begin with a backslash and if the selected disk unit is the same as the one in the default specification the path entered will be appended to the current default After the disk and directory to be accessed are defined the program will display the names of all the calibration data files that already exist in that directory along with any description lines they contain Next you will be asked to enter a number from 0 to 999 to designate the disk file to which the calibration data will be written The file created will be named AREAnm DAT where nnn is the number you enter Finally you will be asked to enter a short one line description of the camera setup being used This information is stored in the disk file along with the calibration data 1 See the command DEFAULT DISK in the V Language Reference Guide for details 110 AdeptVision User s Guide Rev A Calibration Results INMOQUCION n s woe odo Deere rama 112 Vision Calibration Array sss 112 Perspective Transformations s s sls s 114 Camera to Robot Transformation 115 Miscellaneous Global Variables 115 Location Array ac offset
344. ser and adv tr point Convert the centroid to perspective millimeters if necessary L34 Do this by stripping off the basic calibration to get back to Camera pixels and then applying the perspective calibration from the VGETCAL instruction See the AdeptVision Reference Guide Appendix C Perspective Distortion for a description of the routine tr point IF ipcal 2 0 OR ipcal 2 1 THEN pix 0 DX vis loc cal 4 8 cal 14 Strip off basic cal pix 1 DY vis loc cal 4 8 pix 2 1 CALL adv tr point ipcal pix pmm Apply persp cal SET vis loc TRANS pmm 0 pmm 1 END L34 SET obj loc vis frame vis loc ELSE SET obj loc NULL IF part 2 THEN Serror No object seen E SE Serror SCHR Spart SCHR not seen END END Process any error that occurred 100 IF Serror lt gt THEN If there was an error IF ID 6 BAND HCO THEN Add camera number S10 Serror MID error 1 LEN error 1 Serror Serrort virtual camera SENCODE camera END IF NOT DEFINED display GOTO 110 Assume TRUE if not defined IF display THEN If display is enabled 11 0 TYPE B display error message TYPE Error in S CHR adv cam user CHR S TYPE MID Serror 3 LEN error 4 C1 END END RETURN END adv tr poin
345. sing Useful during development when you are trying to position your tools A graphics display mode must be selected V EDGE INFO Enabling this switch causes the system to gather statistics about edges These statistics will be available through the instruction VEDGE INFO V FIT ARCS Enabling this switch causes the system not to attempt to fit arcs during boundary analysis If arcs are unimportant in your application processing time will be improved by disabling this switch V HOLES If this switch is enabled the statistics gathered for objects will also be gathered for the holes in the objects The total number of holes in a region is available in VFEATURE 40 After an individual hole has been VLOCATEd all its features are available through VFEATURE V MIN MAX RADII The points closest to and farthest from the centroid of an object are calculated when this switch is enabled The data is available in VFEATURE 44 47 V BOUNDARIES and V CENTROID must be enabled V OVERLAPPING Enabling V OVERLAPPING will improve recognition of parts that are overlapping This switch increases processing time for part recognition and should be disabled if objects do not overlap V TOUCHING is assumed to be enabled whenever this switch is enabled V PERIMETER The perimeter of an object is available in VFEATURE 41 if this switch is enabled 296 Adept Vision User s Guide Rev A Appendix A L
346. spection applications be developed in the following sequence 1 Install the controller and any other equipment you will be using to deliver or remove parts 2 Selecta lighting strategy and install the lighting equipment see Appendix D Make the lighting environment as consistent as possible 3 Determine the lens requirements see Appendix C Install the cameras and lenses 4 Optimize the camera image select a live grayscale image Focus the lens Set the f stop aperture for maximum contrast Set V THRESHOLD select a live binary image The command VAUTOTHR will provide suggested threshold levels 5 Calibrate the cameras see Camera Calibration on page 61 6 Determine the part location strategy If parts will always be in the same location inspection tools can be placed relative to the vision coordinate system If the parts will be presented to the camera in varying locations inspection tools will have to be placed using a part relative strategy The AdeptVision User s Guide Rev A Chapter 13 Vision Inspection Example Program program in this chapter uses finder tools and boundary analysis data to determine tool locations Additional part relative strategies are discussed in Chapter 15 7 Determine which vision tools to use to make inspections 8 Write the application code 9 Debug the application 10 Fine tune the application Vision Inspection Example Program The program detailed in this cha
347. ssed image quick frame grab There are several different types of rulers some of which work on a processed image and some of which work on the raw grayscale or binary image The argument t ype determines which type of ruler will be used Standard Binary Rulers type 0 This is the default ruler type it is also referred to as the run length binary ruler It operates on processed image data after VPICTURE in mode 1 or within a VWINDOW processing window The effects of most system parameters are taken into account by this type of ruler For example if a ruler crosses a hole smaller than the size specified in V MIN HOLE AREA then it will not find the edges of the hole If V BINARY is enabled edges are found in a binary image Otherwise they are found in a binary edge image Raw Binary Rulers fype 1 This ruler operates on unprocessed data in the binary frame store Most of the system parameters will be ignored by this ruler If VBINARY is enabled edges are found in a binary image Otherwise they are found in a binary edge image Dynamic Binary Rulers fype 2 This ruler operates on data in the grayscale frame store Edges are found based on the current value of V THRESHOLD and V 2ND THRESH as opposed to the setting of these parameters when the image was acquired As the ruler looks for edges in the grayscale frame store the pixels it crosses are thresholded according to the current parameter setting but the data i
348. t PROGRAM adv tr point trans ptl tptI ABSTRACT Transform a 2 D point given a 3x3 homogeneous transform 336 Adept Vision User s Guide Rev A Appendix G Copyrig INPUT PARM OU SI Hh DI PUT PARM EFF trans 2 2 3x35 perspective pt 2 The coordinate to be transformed value should be 1 unless you are scaling tpt 2 The transformed point the third value is 1 ECTS None AUTO row FOR row END tpt 0 tpt 1 tpt 2 ht c 1992 by Adept Technology col sum 0 TO 2 sum 0 FOR col sum 0 TO 2 sumttrans row col pt col END tpt row sum tpt 0 tpt 2 tpt 1 tpt 2 T ETURN Adept Vision User s Guide Rev A Inc adv cam user and adv tr point 2 D homogeneous transform with pixel to mm scaling and compensation for the third normalized so that 337 Pulnix TM 1001 Configuration INMGOMGNON ux hoo hom e e Fo E Xo eS wD oe ODE 340 Overview 55455555 oss 340 Switch Settings 1 341 DSP NSP Switch 8 usos cwm we we ew 341 NRM ASY Switch 341 Shutter Control 342 For Asynchronous Reset Mode 342 For Normal Synchronous Mode 342 EVI Board Settings 2 343 Camera Cables 6245454563 esse TENA A 343 Changes to Frame Buffer Size 343 Blob Analysis Using the Pul
349. t 106 List of parameters 298 switches 295 Live display mode 123 LOAD calibration data from disk 109 load cam cal 274 LOAD STORE calibration data from to disk 91 menu options 109 LOADAREA V2 details on 82 Loading and storing vision models 206 calibration data 63 Locating the object and begining inspections 233 M Main Program inspect part 243 Maintenance 47 Manually Controlled Robots and Motion Devices 29 Manuals related 26 Matches correlation 189 Matching a correlation template 189 Max verify distance and verify percent 176 Medium resolution camera 51 Memory vision allocating 148 Message window 194 Millimeter to pixel ratio 66 67 Min max area 197 prototype parameter 197 Miscellaneous global variables 115 Model file format ObjectFinder 178 Modeling 46 image correlation 46 OCR 46 prototype 46 Models deleting 210 displaying 209 loading 207 renaming 210 vision window menu 209 357 Modes live 123 Monitor commands DO 146 VQUEUE 149 Motion 61 Motion devices and calibration 60 and cameras 60 Mounting cameras 53 N new pallet 275 Normal Synchronous Mode 342 NRM ASY Switch 341 O Object on moving belt robot downstream of camera 103 recognition 174 sample 41 Object disambiguation 177 details 180 Object also see ObjectFinder ObjectFinder 46 55 automatic learning 178 changes 23 confirmation 175 disambiguation 177 180 example 212 378 AdeptVision User s Guide Rev A
350. t and Trapping Hazards Program Security 30 Programs and data stored in memory can be changed by trained personnel using the V commands and instructions documented in the V manuals To prevent unauthorized alteration of programs you should restrict access to the keyboard This can be done by placing the keyboard in a locked cabinet Alternatively the V ATTACH and FSET instructions can be used in your programs to restrict access only to the V command prompt AdeptVision User s Guide Rev A Introduction Notes Cautions and Warnings Overspeed Protection Overspeed protection for a robot or motion system has to be taken into account during system integration by the integrator or end user Overspeed protection is not guaranteed by the controller hardware alone except when an MMSP is employed The V system software offers some overspeed protection capabilities Voltage Interruptions If the AC supply to the controller is interrupted the passive E stop and the CIP Emergency stop output will be activated open In addition the High Power Brake Release and Drive Enable signals will be turned off You must ensure that these signals are used to prevent a hazardous condition Inappropriate Uses of the AdeptWindows Controller System The AdeptWindows controller is intended for use as a component subassembly of a complete industrial automation system The AdeptWindows controller subassembly must be installed inside a suitable enclosur
351. t camera 92 Calibration arm mounted camera 62 array 112 neg angle entry 114 v pitch entry 114 data loading 63 fixed mount camera 61 menu link 2 mounted camera known dot location 107 non contact method lefty righty 108 non contact method single config 107 robot can touch calibration object 106 Robot mounted camera known dot location 105 robot can touch calibration object 104 robot mounted camera non contact method 105 Stationary camera Downward looking 103 Object on belt 103 miscellaneous global variables 115 object 71 attached to robot general case 102 program brightness adjusting image 95 calibrating with HPS data 322 calibration menu 101 102 Camera only 101 camera adjustment 95 96 current virtual camera 94 changing current virtual camera 94 contrast adjusting image 95 copying calibration between cameras 93 copying the program 78 exiting the program 90 91 grip transformation 114 LEFTY versus RIGHTY configuration 322 loading old calibration data 91 RIGHTY versus LEFTY configuration 322 robot number current 94 selecting a different robot number 94 status display 89 storing current calibration 91 testing the calibration 92 threshold adjusting binary 96 status display 89 testing 92 transformation 115 258 Calibration 60 Camera adjustment aperture 95 gain 96 374 AdeptVision User s Guide Rev A offset 96 cables 343 calibrating 60 calibration 60 61 programs 60 current 89 imaging 313
352. t point of the fifth axis However the fifth axis has an additional offset from the pivot point to the new tool flange that needs to be nulled in the link2 transformation The dimension of this offset is 50mm Starting at the end of the robot the procedure is as follows Find the current location of the end effector HERE null any tool transformation currently in effect INVERSE TOOL null the offset along the negative tool Z axis Adept Vision User s Guide Rev A Chapter 14 5 Axis SCARA Robot with Camera on Link 2 TRANS 50 null the rotation of the fifth axis rotation about the local Y axis RYGt 5 null the rotation of joint 4 rotation about the local Z axis RZ t 4 null the height of joint 3 TRANS 3t 3 Use the link2 transformation below when working with a fifth axis and the camera mounted on link 2 ET link2 HERE INVERSE TOOL TRANS 50 RY 3t 5 RZ 3t 4 1 TRANS 3t 3 A o XINIMd UU Outer Link N pl NOTE TOOL s set to NULL in this situation X Y RZz j4 cr J TRANS jt 3 Adjusted in kinematics p ad Figure 14 7 Five Axis Vision Transformation Adept Vision User s Guide Rev A 267 Chapter 14 Guidance Vision Program Guidance Vision Program 268 This section details the development of an AdeptVision VXL guidance visi
353. t positions in the field of view and then advancing the belt to put the disk within reach of the robot and placing the pointer in the center of the disk without moving the disk AdeptVision User s Guide Rev A 103 Chapter 6 CALIBRATE the Current Camera Menu The calibration transformation computed by the program represents the relationship between the robot base coordinate frame and the vision coordinate frame for the plane in which the disk is moved around The frame is calculated using the current belt calibration but once the frame is calculated the frame is not related to any belt calibration The results are the same as for any fixed camera calibration NOTE We recommend that you attach the disk to the belt for each calibration location Double stick tape works well If the disk moves at all relative to the belt between the time the upstream and downstream pictures are taken and when you establish the disk s location with the robot a less accurate calibration will result After four data points have been recorded the minimum needed to compute a calibration the program will compute a calibration and use it to automatically position the end of the tool over each successive disk position as you calibrate This makes it easy to gather additional data points to refine the calibration Monitor the statistics printed each time the calibration is calculated to determine when you have a sufficiently precise calibration If the camera
354. ta between the two frame stores Convolve 3x3 average Perform a convolve operation on the selected frame store See 5x5 average the description of VCONVOLVE in the Adept Vision Reference Guide for details on image convolutions i custom 17 Subtract grayscale 11 12 Subtract the grayscale or binary values in physical frame store binary 1 from the physical frame store 2 See the description of VSUBTRACT for details on image subtraction Add grayscale 11412 Add the grayscale or binary values in physical frame store 1 to binary the physical frame store 2 See the description of VADD for details on image addition Average grayscale 11 and 12 Average graylevels in the two frame stores Binary threshold Show edges found based on the value of V THRESHOLD Gray edges Gradient Show edges found based on the value of VEDGE STRENGTH Sobel using either the standard gradient operator or the Sobel operator See the description of VEDGE TYPE Morph erosion Perform a morphological operation on the selected image See dilation the description of VMORPH in the AdeptVision Reference Guide for details on morphological operations custom 9 356 Adept Vision User s Guide Rev A Appendix K Status Vision Window Menus Status Display the status of the vision system Abort processing Abort any active vision processing
355. ter settings causing your program to behave erratically Disabling switches that aren t needed for your program will improve processing time by reducing the amount of data the system has to gather about each image Set ENABL Switches and parameters V HOLES cam ENABL ENABL ENABLI DISABL DISABL DISABL DISABL DISABL DISABL DISABLE V BINARY cam V BOUNDARIES cam V BACKLIGHT cam PERIMETER cam ISJOINT cam ECOGNITION cam VERLAPPING cam ND MOMENTS cam lt lt I lt lt lt lt lt S lt D R TOUCHING cam O 2 S TROBE cam hole information is needed processing to be in binary mode region analysis will be done dark objects on a light background data not needed must be disabled to get hole data no prototype recognition we have only one part data not needed Strobes are not being used Adept Vision User s Guide Rev A Chapter 13 Developing the Program Code DISABLE V MIN MAX RADII cam data not needed PARAMETER V MIN AREA cam 101 filter small areas PARAMETER V MIN HOLE AREA cam 100 When we execute the main program we send in an indication of whether to reinitialize the camera and cycle time variables CALL the initialization program if the boolean is true this routine is on page 252 If necessary initialize
356. ter a VLOCATE With V CENTROID enabled the location 3 Center Y components are the centroid of the region 4 Center Z With V CENTROID disabled the location components are the center of the bounding 5 Rotation about X box of the region The reference frame is relative to the vision 6 Rotation about Y a rame 7 Rotation about Z 8 Encoder offset See the V Language User s Guide 9 Percentage of boundary that After VLOCATE matched during prototype of prototype verified recognition will be 0 for unrecognized regions 10 Area of object raw If VSUBTRACT HOLES is enabled the area pixels of holes in the object is subtracted from this calculation Note that this is the area of the region not the area of the prototype 11 ID numbers V DISJOINT V TOUCHING and V OVERLAPPING will influence the 12 number of objects processed 306 AdeptVision User s Guide Rev A Appendix B Establishing VFEATURE Values Table B 3 VFEATURE Values and Interpretation for Prototype Recognition Instances following VLOCATE Continued Index Information Unit Switch Parameter Effects 13 Left limit of region bounding box mm After VLOCATE 7 Bounding box is relative to vision reference 14 Right limit of region bounding box Pame 15 Lower limit of region bounding box 16 Upper limit of region bounding box 17 Number of holes in the region V HOLES must be
357. text recognition data text verification or recognition data For op 0 data 0 number of character regions found and analyzed data 1 average score of expected characters verified data 2 minimum score of expected characters verified For op 3 data 0 number of character regions found and analyzed data 1 average score of two most likely values per region data 2 minimum score of two most likely values per region data 3 amp data 4 not used data 5 ASCII value of character most likely to match region data 6 score of most likely character data 7 ASCII value of character 2nd most likely to match region 204 AdeptVision User s Guide Rev A Chapter 12 Performing Optical Character Recognition data 8 score of 2nd most likely character data 9 data 12 repeats data 5 data 8 for the second analyzed region region data 13 data 16 for the third analyzed region etc font num number of a trained and loaded font Sexpected expected text for op 0 ibr number of a defined image buffer region see Defining a Tool Area of Interest AOI on page 152 OCR Examples The following code will output the characters found in the area defined by cx cy dx and dy font 1 must be trained and loaded VPICTURE cam virt VWAIT VDEF AOI 3000 1 cx dx cy dy VOCR cam virt 3 data 1 3000 The first array value is the number of characters found found data 0 The ASC
358. the dark blue side of the tool a line will not be found Figure 10 10 illustrates the polarity of a finder tool In Example A a dark to light transition occurs within the window and the lower edge of the Adept Vision User s Guide Rev A 167 Chapter 10 Finder Tools rectangle is found In Example B no dark to light transition takes place so an edge is not found the light to dark edge is ignored In order to find an edge with the tool in this position the angle would have to be made 180 so the dark side of the tool would be in the rectangle In Example C the first dark to light transition is found and the remaining transitions are ignored the tool quits processing as soon as an edge is detected In Example D the first edge is a light to dark transition so it is ignored and the second edge a dark to light transition is found Example A Example B Edges Found Example C Example D Figure 10 10 Finder Tool Polarity VFIND LINE Example 168 This example locates the two straight edges of the sample object Using the location and angle information returned in the data arrays from each finder tool and the V trig functions the intersection of the straight edges can be calculated with high accuracy This type of strategy is particularly useful on an object similar to our sample object where the intensity changes at the intersection point are low enough that the system will have trouble recognizing exactly where the
359. the hard drive 82 AdeptVision User s Guide Rev A Chapter 5 LOADAREA V2 5 Store your application program and the load area subroutine in a disk file by typing store a file_name name_of_your_main_program where file_name represents the name you want to assign to your disk file and name_of_your_main_program represents the name of the top level program in your application program which must logically refer to all the other routines for the application Alternatively type the command store a file name to store all the programs and data in the system memory into the specified file Programming Considerations The load area subroutine reads the area vision calibration information that is stored in a disk file If the data are found to be valid the following instructions are executed to initialize the vision system and the data are returned to the calling program IF NOT SWITCH VISION THEN ENABLE VISION END PARAMETER V THRESHOLD camera_number stored threshold value SWITCH V BACKLIGHT camera number stored backlight value VPUTCAL camera number stored calib array stored pmm to pix stored pix to pmm After the routine has successfully processed the calibration data file the AdeptVision system is ready to process images All of the calibration data are returned to the calling program for completeness but only the variable to cam normally is utilized by the
360. the polygon and circular holes e The surface of the object should have a constant gradation from the front to the back If this gradation exceeds a certain value the part will be rejected AdeptVision User s Guide Rev A 227 Chapter 13 Vision Inspection Example Program 6 If any inspection fails a program will be called to remove the bad part and the conveyor will bring in a new part and begin again If the object passes all inspections the conveyor will move a new part into position and carry the inspected part out of the field of view 228 AdeptVision User s Guide Rev A Chapter 13 Vision Inspection Example Program Set Environment Signal New Part Wait for Part Take Picture Object Located Call return_part Set Processing Window Call reject_part A Hole Centers Insp Passed Circle Insp Passed Polygon Insp Passed no Object Top Insp Passed Object Surface Insp Passed Figure 13 1 Application Flow Chart Adept Vision User s Guide Rev A 229 Chapter 13 Developing the Program Code Developing the Program Code Program Header and Variables Declarations All programs should begin with a header that gives the program abstract creation date side effects input and output parameters and any modifications that have been made The header should be similar to this PROGRAM inspect part re init ABSTRACT
361. three different types of calibration must be completed before an AdeptVision VXL system can be used In addition a vision transformation will be required Calibration This section describes the three types of required calibration motion device calibration start up calibration and camera calibration 60 AdeptVision User s Guide Rev A Chapter 3 Motion Devices and Calibration Motion Device Calibration This calibration establishes the relationship between the robot s encoders and the actual space the robot works in On Adept robots this calibration is performed at the factory and will not need to be repeated unless an encoder is replaced or other major repair is performed For other motion devices this calibration is performed with the AdeptMotion VME utility SPEC V2 See the Instructions for Adept Utility Programs manual for details Start up Calibration When a motion device and its controller are first turned on the device must relate its current location to the motion device calibration data This procedure is accomplished by entering the commands ENABLE POWER CALIBRATE See the robot user s guide or the AdeptMotion VME Developer s Guide for more details Camera Calibration The relationship between the camera field of view and the motion device must be established before the vision system can be used to locate objects for the motion device See Chapter 4 for an details on the camera calibration procedure
362. tics Suppliers Manufacturer Product Line Aerotech Gmbh Sud West Park 90 D 90449 Niirnberg Germany Phone 49 911 967937 0 Fax 49 911 967937 20 Electro optical components filters mirrors positioning stages Coherent Ealing Catalog Division Greycaine Road Watford WD2 4PW England Phone 44 19 23 24 22 61Fax 44 19 23 23 42 20 Internet www ealing com Electro optical components light benches prisms filters light sources mirrors Melles Griot France Parc du M rantais 1 Rue de Guynemer 78114 Magny Les Hameaux France Phone 01 30 12 06 80Fax 01 30 60 08 51 Melles Griot Germany Lilienthalstr 30 32 64625 Bensheim Germany Phone 062 51 84 060Fax 062 51 84 06 22 Melles Griot Netherlands Hengelder 23 P O Box 272 6900 AG Zevenaar Netherlands Phone 0316 33 30 41Fax 0316 52 81 87 Melles Griot Ltd United Kingdom 2 Pembroke Avenue Waterbeach Cambridge CB5 9QR United Kingdom Phone 012 23 20 33 00Fax 012 23 20 33 11 Internet www mellesgriot com Mirrors prisms filters polarizers lasers optical benches component holders positioning devices 368 Adept Vision User s Guide Rev A Appendix L Third Party Suppliers Europe Table L 11 Filter and Optics Suppliers Continued Manufacturer Product Line Newport GmbH Germany Holzhofallee 19 64295 Darmstadt Germany Phone 49 61 51 36 210 Fax 49 61 51 36 21 50 New
363. tility Programs and the description of V IO WAIT in the AdeptVision Reference Guide When you use a high speed trigger image acquisition becomes dependent on the state of the vision switch V IO WAIT If V IO WAIT cam is set to 1 image acquisition by camera cam will wait until the state of the external trigger transitions before acquiring an image the specific digital signal used for the external trigger does not have to be specified 286 Adept Vision User s Guide Rev A Chapter 15 Performing Frame Relative Inspections Performing Frame Relative Inspections In many applications the object being presented to the camera may be in random orientation Frame relative inspections allow you to orient inspection tools with respect to the object s actual orientation In frame relative inspections a reference frame is generated based on an object s location in the field of view and vision tools are placed relative to this reference frame rather than the vision reference frame If you are inspecting a line of similar objects or objects that are easily distinguished with vision tools you would use finder and ruler tools or boundary analysis data to create the relative frame If you are inspecting a line of multiple object types that need prototype identification before they are inspected you would use prototype relative inspection The programming example in Chapter 13 presented a simple example of using line finders to place frame relative i
364. tistics each is applied in a fractional manner to the existing weight Therefore the effect is gradual If the new weights after a learning mode VFINDER do not result in a new ordering of the feature classes the learning convergence count is incremented If there is a new order this count is set to 0 Therefore if there is no change in the order of the feature classes for several scenes in a row this count will rise and can be used to indicate that you can exit learning mode Execute a VGETCAL for the virtual camera that has planned models to see the learning convergence count See the AdeptVision Reference Guide for details CAUTION If you do a normal VPLAN FINDER you will wipe out the learned order of the feature classes since this replanning will create the feature classes all over again Pose Refinement Details The ObjectFinder part alignment accuracy in version 12 2 and later has been improved over the previous version 12 1 The new pose refinement is based on correcting a confirmed pose hypothesis using selected model features the refine features During planning the refine features are automatically determined based on their relative importance in the model Selection criteria are based on the lengths and weights of the features as produced by multi instance training During recognition before carrying out the final verification of a proposed instance pose the new pose refinement attempts to match the refine features aga
365. tl tears Show the location s of the found object s FOR i 1 TO ttl tears VLOCATE cam virt 2 model name loc x VFEATURE 2 y VFEATURE 3 z VFEATURE 7 TYPE Center x y Z AdeptVision User s Guide Rev A 217 Chapter 12 ObjectFinder Example After executing the program code the Monitor window will look similar to that shown in Figure 12 7 Figure 12 7 Example Monitor Window Display 218 AdeptVision User s Guide Rev A Chapter 12 Prototype Finder Example Prototype Finder Example In this example we will train and find the same teardrop shaped object used in the previous ObjectFinder example see page 212 As stated previously you are free to substitute your own sample object into this example This example makes the following assumptions e you have a working knowledge of V programming e you have read through the section Training and Using Prototypes on page 190 e you have already set up and calibrated the camera Step 1 Train the Prototype Finder Model The first step is to train the prototype finder model This is done through the menu interface in the Vision window Refer to the section Creating Prototypes on page 190 steps 1 through 11 AdeptVision User s Guide Rev A 219 Chapter 12 Prototype Finder Example After la these steps the image in the Vision window will look similar to that shown in Figure 12 8 PROTO1 1 samples trained New example P
366. tly oriented CALL reject_part good_part FALSE END if ABS END if good part mro A p 10 A Figure 13 3 Executing a VFIND LINE Instruction The time has come to inspect the location of the arc on the front of the object with respect to the center line of the two holes We will use the X Y values of the object center to place the arc finder If the actual center of the object arc does not coincide with the midpoint between the two holes 1mm the part will be rejected We will use the VFIND ARC tool to see if the arc center is centered between the two holes in the object IF good_part THEN Calculate the X Y center point for the arc finder x DX obj loc y DY obj loc Use the locations of the two holes to calculate the midpoint arc centx DX rnd loc DX poly loc 2 arc centy DY rnd loc DY poly loc 2 AdeptVision User s Guide Rev A 237 Chapter 13 Developing the Program Code Place an arc finder centered around the two holes and look from dark to light for an arc afdr_ibr 6000 AOI 6 VDEF AOI afdr ibr 5 x y obj hgt 2 obj_hgt 2 5 90 0obj rot 270 0bj rot VFIND ARC cam arc data afdr ibr Check to see if an arc was found IF NOT arc data 0 THEN TYPE The outer radius was not located CALL reject part good part FALSE END if not END if good part Calculate the center variance IF good part THEN IF ABS arc data 2 a
367. tores Virtual Frame Buffers Areas of Interest i a Defining an Image Buffer Beglori Linear Rulers VRULERI Array Linear Ruler Example Arc Rulers Arc Ruler oe Ruler Types Standard Binary Rulers pes 0 Raw Binary Rulers type 1 Dynamic Binary Rulers type 2 Graylevel Rulers type 1 ES Fine Edge Fine Pitch Rulers type 2 3 Ruler Speed and Accuracy Finder Tools VFIND LINE Mo Line Finder Tool Polarity VFIND LINE Example Processing Windows VWINDOW VWINDOW Example Vision Tools Inspection Windows VWINDOWI Vision Tool Data Arrays 10 Adept Vision User s Guide Rev A 141 142 142 144 144 145 146 146 146 148 148 149 151 152 152 152 153 155 158 158 159 161 161 164 164 164 164 165 165 166 166 167 167 168 170 170 171 171 11 12 Windows Windows Windows The ObjectFinder Introduction How Does Object Pacccslfios Work Feature Processing Hypothesis Generation Feature Classes Proposals Seeds Confirmation Pose Refinement Verification Max Verify Dist aid Verify Hicon Automatic Learning Object Disambiguation ObjectFinder Model File Format Automatic Learning Details Stage One VFINDER mode 4 Stage Two VFINDER mode 3 Pose Refinement Details Object Disambiguation Details Vision Model Processing Introduction Why Use the ObjectFinder Why Use Correlation Why Use Prototype Becognifi n Why Use OCR
368. totype example Create corner Place a corner at the mouse click or when Op is clicked on the currently selected line or arc Can be performed only on the first prototype example Edge Region Data Boxes When you are editing using the Edit Buttons these data boxes show Edge type line or arc e Region area in pixels Edge length distance in pixels from one corner to the next e Number of edges in the region holes are not included in this count This data will not be displayed if you are using the mouse to edit the prototype Edge Region Radio Buttons These buttons work in conjunction with the Edit Buttons When Edge is selected pressing Prev or Next will select the previous or next edge in a region When Region is selected pressing Prev or Next will select the previous or next region within the field of view Adept Vision User s Guide Rev A 195 Chapter 12 Training and Using Prototypes Prototype Training Hints After you have completed prototype training you can still train additional examples of a part or change the prototype parameters described later in this chapter If you make any changes to an existing prototype you must store the changes using the VSTORE command if you use the same file name the existing disk file must be renamed or deleted When you train the first example make the prototype as simple as possible When you train additional examples do as little editing as possible SubPrototyp
369. ts within the field of view These points will be given in Cartesian coordinates with the X Y origin being at the lower left corner of the screen This means that In general only positive numbers are meaningful When we introduce relative reference frames negative values for tool placement are useful but they must resolve to a positive value relative to the base vision reference frame The higher the number for the X coordinate the further to the right on the screen the point is e The higher the number for the Y coordinate the higher on the screen the point is These coordinates are in millimeters that refer to the actual distances in the field of view not the dimensions of the monitor This coordinate frame is referred to as the Vision Coordinate System Tools placed relative to this coordinate system are in vision coordinates NOTE The V instructions GTYPE GARC etc have their own coordinate system that is based in screen pixels with the coordinate frame origin at the top left of the vision window The program instruction GTRANS will automatically convert real world millimeters to screen pixels so you can specify millimeters for the G graphics instructions The example program on page 253 shows how to use the GTRANS program instruction Adept Vision User s Guide Rev A 119 Chapter 8 VPICTURE Getting an Image VPICTURE Getting an Image The VPICTURE operation VPICTURE is both a monitor command and a progr
370. tween proposals to prevent too many proposals from being made in the same location 30 Indicates the virtual cameras bit Bit field indicating the virtual cameras associated with the prototype field associated with a model 1 through 16 31 Indicates the virtual cameras bit Bit field indicating the virtual cameras associated with the prototype field associated with a model 17 through 32 32 Indicates the range of edge numbers First edge number 1 for a prototype Adept Vision User s Guide Rev A 305 Appendix B Establishing VFEATURE Values Table B 2 VFEATURE Values and Interpretation for ObjectFinder Models following VSHOW Continued Index Information Unit Switch Parameter Effects 33 Indicates the range of edge numbers Last edge number for a prototype 34 x constraint mm Not currently used 0 35 y constraint mm Not currently used 0 36 ang constraint 9 Not currently used 0 Table B 3 VFEATURE Values and Interpretation for Prototype Recognition Instances following VLOCATE Index Information Unit Switch Parameter Effects 1 Whether the last VLOCATE T F As long as a VLOCATE operation instruction was successful or not successfully removes objects from the vision queue this value will be returned as true 1 and information about that object will be available through VFEATURE access 2 Center X mm Af
371. ue a VWAIT instruction after the VFINDER instruction This delays program execution until processing by the VFINDER operation has completed The location and orientation of the found object s is stored in the vision queue You can use the VOUEUE monitor command to display this information Or you can use the VQUEUE real valued function followed by a VLOCATE program instruction in your V program to obtain the location and orientation of the object s in the queue AdeptVision User s Guide Rev A Chapter 12 Performing Correlation Matches Performing Correlation Matches A correlation template is simply an array of graylevel values recorded from the pixels in a specified area of the field of view When a correlation match is attempted this array of graylevel values is compared with the graylevel values in a given search area The template and the search area can be any size as long as the search area is larger than the template Larger templates and search areas will increase processing time for a template match Since changes in ambient lighting will alter the graylevel values recorded template correlation is normalized to account for changes in lighting from when the template was created to when a correlation match is attempted Lighting changes that uniformly affect the field of view will not affect template matching Creating a Correlation Template A correlation template is created with the program instruction VTRAIN MODEL cam vi
372. ued 19 Flags bit Bit field True False Bit 2 Used only for VLOCATE All other bits are reserved for future use 20 Not used 21 When an object is located all the Holes can be located within a bounded holes within the object are given a region or within a hole in a bounded reference number This value is the region These values keep track of where reference number of the current hole you are in the locating sequence Holes are Also holds true for holes within numbered consecutively for each region holes 22 Parent number of holes referenced in VFEATURE 21 23 Number of the virtual camera that located this prototype 24 Effort level assigned during training Prototype must have been recognized for prototype recognition 1 to 4 After VSHOW only Adept Vision User s Guide Rev A 309 Appendix B Establishing VFEATURE Values Table B 4 VFEATURE Values and Interpretation for Prototype Recognition Instances following VSHOW Continued Index Information Unit Switch Parameter Effects 25 Color of prototype when trained 0 black 1 white 26 Number of samples taught during prototype training 27 Number of bounds in the prototype In prototypes holes are included In or region regions they are not 28 Maximum area assigned to a pixels After VSHOW only prototype during training 29 Minimum area assigned to a prototype during training 3
373. unted on robot general case 6 Robot can touch calibration object 7 With known dot location 8 Non contact method camera must rotate about Z Camera mounted on link 2 of Adept SCARA robot 9 Robot can touch calibration object 10 With known dot location 11 Non contact method single configuration 12 Non contact method lefty righty 1 This menu is displayed only for robot systems For nonrobot systems camera only is automatically selected Adept Vision User s Guide Rev A 97 Chapter 6 CALIBRATE the Current Camera Menu NOTE For the noncontact camera to robot calibration methods 8 11 12 we assume that the camera is pointed along a line that is perpendicular to the surface of the calibration object Except as noted below inaccuracies could result if this is not the case At the beginning of each calibration procedure 1 If DRY RUN is enabled or you are calibrating a nonrobot system you will be advised that camera only calibration will be performed 2 You will be asked to verify that you have a calibration object You will be asked to check the image parameters If you select this option you will be presented the same options as if you had selected the Adjust Camera Image Settings menu option See page 95 for details While checking the image parameters you also will be able to set the camera type and image acquire mode There are four options e No Shutter Full Frame acquire
374. untime routines b Use the program hps load to load into memory the data for at least one HPS mapping for the robot being used Mappings must be numbered consecutively starting with 1 See Appendix E for more details on using HPS 78 AdeptVision User s Guide Rev A Chapter 5 10 ADV_CAL V2 NOTE The following steps assume that your Advanced Camera Calibration program ADV_CAL V2 is stored on a floppy disk Ifitis not simply substitute the correct drive letter and directory name for A below Insert the Advanced Camera Calibration disk into disk drive A in your Adept controller Load the calibration program into system memory with the following command 4 indicates the Enter key must be pressed LOAD A ADV CAL 4 If you want to create the robot to camera transformation during calibration start up calibration must be performed for the robot ENABLE POWER 4 CALIBRATE J If you are not interested in the robot to camera transformation or there is not a robot attached to your system enable the dry run switch ENABLE DRY RUN 4 Start execution of the calibration program with the command EXECUTE a adv cal Jd If a calibrated robot is not connected to the system or DRY RUN is not enabled the program will abort immediately If ARM POWER is not enabled or DRY RUN is enabled the system will warn you that camera to robot calibration cannot be performed and ask you if you want to proceed
375. ur system has an internal drive Compact Flash or hard drive the operating system and vision software are also installed on that drive To boot the system and bring up the vision monitor turn on the monitor place the system disk in drive A and turn on the controller If the internal drive is installed just turn on the monitor and controller After power is turned on the system will go through a series of self tests and then load the operating system When the load procedure is complete you will see a screen similar to Figure 2 1 showing copyright information and the ID lines The ID lines contain coded information about the configuration of your system See the ID command in the V Operating System Reference Guide and the V Language Reference Guide for details on the meaning of these lines o AdeptwWindows PC 192 168 144 1 File Adept Monitor Adept V Copyright c 1984 1998 by Adept Technology Inc All rights reserved Adept External Encoder Module FlexFeeder Generation III Belt Robot Module FlexFeeder Generation III Lift Robot Module Configured as Category 3 Robot System per ISO 10218 and EN954 Software 13 0 87 31E0 Edit E 22 Jun 1998 Preliminary Release Comarca 405 2 00 Processor 1 0 0 4 7 8MB Robot I1 990 0 0 0 29 Bobo 2s 99D 0 0 20 Robot 3 990 0 0 029 Robot 4 990 0 0 0 30 Vision 13 13 0 S00 I L 5M amp E Egit A I2 Jun 1998 24 Jun 98 06 22 20 Figure 2 1 Initial Screen 54 Adept Visi
376. urements The system components that affect accuracy and repeatability are e The quality of the camera and camera imaging element e The quality of the optics e The quality of the camera cabling e The quality and consistency of lighting After selecting installing and calibrating a vision system empirical testing still must be done to prove that your vision setup is measuring to the accuracy and repeatability required AdeptVision User s Guide Rev A Chapter 4 Before You Start Calibrating Your Cameras For camera only calibration you can use the precision calibration sheet provided by Adept or you can construct your own target The calibration target is placed on the work surface in the camera field of view For camera to robot calibration automatic procedures are provided for several of the more common camera mountings such as upward looking or on link 2 of an Adept SCARA robot In addition there are semiautomatic procedures for the general cases of arbitrarily mounted fixed cameras and robot mounted cameras on an Adept supported robot configuration The program can be used to test the calibration data that defines the camera to robot relationship save the calibration data in disk files and load calibration data from disk In addition the program provides simple methods for adjusting various image parameters that can affect the calibration If you have the Adept High Accuracy Positioning System HPS option the data fr
377. usands of pairs Complex parts might produce too many proposals at runtime resulting in very slow recognition The new techniques added to ObjectFinder 13 0 compile complex models into more efficient recognition plans leading to faster recognition plans than previous versions of ObjectFinder The number of pairs used for generating proposals is reduced to a smaller set containing the pairs that are most likely to generate successful proposals The size of the pair set is reduced without sacrificing reliability and accuracy With complex parts the number of pairs can be reduced from thousands to less than a hundred The process of generating proposals has been improved by evaluating features for pair generation in a better order to produce successful proposals much earlier in the recognition process During recognition pairs that have been identified during planning as being very likely to lead to successful proposals bypass the confirmation step reducing the amount of time spent evaluating the proposal New geometric constraints have been added to pair generation to avoid generating weak proposals from small features or features that are too far apart thus reducing the time spent generating and matching pairs during recognition The new strategies improve the recognition times for both complex and simple parts Adept Vision User s Guide Rev A 23 Introduction What s New in AdeptVision VXL Version 13 0 These new recognition strategies are ap
378. ve to 7 Rotation about Z the X axis The orientation of an instance is not relative to the orientation of the model 8 Encoder offset See the V Language User s Guide 9 Percentage of boundary that After VLOCATE matched during prototype of model verified recognition will be 0 for unrecognized regions 11 Model number In planning list 1 through 10 12 Instance ID 13 Left limit of region bounding box mm After VLOCATE mm 7 Bounding box is relative to vision reference 14 Right limit of region bounding box irm 15 Lower limit of region bounding box 16 Upper limit of region bounding box 18 Time Secs Time spent acquiring processing and recognizing an object Time for first region includes all time from VWINDOW until placing in queue For remaining regions time is from when one region is placed in the queue until the next object is queued 23 Number of the virtual camera that Virtual camera number 1 through 32 located this object Adept Vision User s Guide Rev A 303 Appendix B Establishing VFEATURE Values Table B 1 VFEATURE Values and Interpretation for ObjectFinder Recognition Instances following VLOCATE Continued Index Information Unit Switch Parameter Effects 27 Number of features in the model All of the line segments and circular arcs in the model are counted even if the weight after multi inst
379. what information you want relayed to an operator Adept Vision User s Guide Rev A 121 Chapter 8 VDISPLAY Syntax VDISPLAY Displaying the Image VDISPLAY is both a monitor command and a program instruction The simplified VDISPLAY syntax is VDISPLAY mode mode overlay overlay is replaced with 1 indicating a live grayscale image is to be displayed This mode displays a live video image that shows you exactly what the camera currently sees not the last picture that was acquired indicating a live thresholded binary image is to be dis played indicating that an acquired grayscale image is to be dis played Modes 1 to 4 take effect at the first VPICTURE after VDISPLAY is changed indicating that an acquired binary or edge image is to be displayed indicating that a graphical representation of a processed image along with any user generated graphics is to be dis played indicating that user generated graphics should not be erased each time VPICTURE is executed This mode is useful for graphs or data you want to display continuously used with mode 1 0 1 and 2 only is replaced with 0 indicating no user graphics are to be overlaid This is the default value indicating that any user or system generated graphics are to be overlaid on a frozen or live image modes 1 0 1 and 2 In modes 3 and 4 user generated graphics are automatically displayed indicating user graphics
380. will have to be enabled or the object will not be recognized Disable this switch when you are not doing prototype analysis When doing region analysis this switch must be disabled for hole data to be gathered V TOUCHING If the objects you are attempting to recognize are touching each other the system will see them as one object and fail to recognize multiple touching objects If you need to recognize touching objects enable this switch This switch increases processing time for object recognition See the AdeptVision Reference Guide for details on how V TOUCHING V DISJOINT and V OVERLAPPING interact V OVERLAPPING Enabling V OVERLAPPING will improve recognition of objects that are overlapping This switch increases processing time for object recognition and should be disabled if objects do not overlap V TOUCHING is assumed to be enabled whenever this switch is enabled VSHOW BOUNDS If this switch is enabled the vision system will display the results of attempting to fit lines and arcs during prototype recognition This switch is useful during development because it allows you to see what the vision processor is going through during object recognition V RECOGNITION must be enabled VSHOW RECOG If this switch is enabled and an object is recognized the silhouette of the recognized prototype will be overlaid on the object The SHOW switches are time consuming and are generally turned off in the production env
381. windows A VWINDOW instruction by itself returns no data A VWINDOWB instruction makes basic binary image data available through a specified array Adept Vision User s Guide Rev A The ObjectFinder liloguellol amp s oak ooa none AAA 174 How Does Object Recognition Work 174 Feature Processing sss 174 Hypothesis Generation 175 Feature Classes lll sls 175 PIODOSUIS ERE AA 175 Se6dS ada eran 175 GOMUMCION s gt s so a a pope p Ea irit eiaa 175 Pose Refinement 176 Verification 64 6 66 5 ox oko eS 176 Max Verify Dist and Verify Percent 176 Automatic Learning 2 sns 177 Object Disambiguation 0 000 177 ObjectFinder Model File Format 178 Automatic Learning Details 0 0 0 00 s 178 Stage One VFINDERmode 4 0 178 Stage Two VFINDER mode 3 179 Pose Refinement Details 179 Object Disambiguation Details 180 AdeptVision User s Guide Rev A 173 Chapter 11 Introduction Introduction This chapter provides some general theory on how ObjectFinder works Chapter 12 describes how to use the ObjectFinder in V programs The ObjectFinder is a vision tool that recognizes objects and determines the object pose in the scene automatically without requiring the user to figure out how to combine other tools
382. ypotheses are called proposals since the combination of features proposes a sequence of tests that result in either the verification of the presence of the object in the image at the particular position and orientation or the rejection of the match Seeds The initial feature combination that produced the proposal is called a seed since it determines an initial placement of the model in the image and the search tree grows from that initial match Any combination of image features that does not fall into at least one feature class is discarded since that feature combination does not occur in any model and will not generate proposals The feature class is ordered so that the classes that contain the highest number of seed pairs most likely to generate good hypotheses are considered first Confirmation Hypothesis generation leads to some false proposals since a seed feature may not be matched to the correct model feature in all cases For example parts might have several right angle corners and each corner detected in an image may have to be matched against several model corners before the correct match is found Each hypothesis must be verified see Verification on page 176 before the match is considered correct However verification is expensive so confirmation attempts to prequalify the proposal by examining several additional potential matches between combinations of image and model features that are easy to find AdeptVision Us
383. ystems Worksmart Systems Inc 33 Ship Avenue Medford MA 02155 Phone 617 396 0650 Fax 617 391 9150 Modular mounting systems for cameras monitors terminals etc aluminum tubing and clamps Intercon 1 Inc Box 1C Merrifield MN 56465 Phone 800 237 9676Fax 218 765 3900 Standard and custom camera cables junction boxes Table L 4 Frame Splitter Suppliers Manufacturer Product Line American Sound 1800 Russel St Covington KY 41014 Phone 606 261 9024 Fax Same as phone Frame splitter combines two camera inputs into one for higher speed part number AD1470A Table L 5 Camera Suppliers Manufacturer Product Line Sony Corporation of America 10833 Valley View Street P O Box 6016 Cypress California 90630 0016 Phone 714 220 9100 Fax 714 229 4298 Sony XC 77RR shuttered cameras compatible with AdeptVision AGS EMUX 364 Adept Vision User s Guide Rev A Appendix L Third Party Suppliers U S Table L 6 Filter and Optics Suppliers Manufacturer Product Line Aerotech World Headquarters 101 Zeta Drive Pittsburgh PA 15238 Phone 412 963 7470 Fax 412 963 7459 Internet www aerotech industry net Electro optical components mirrors lasers positioning stages Coherent Ealing Catalog Division 2303 Linbergh St Auburn CA 95602 Phone 800 343 4912 Fax 508 429 7893 Internet www ealing c
Download Pdf Manuals
Related Search
Related Contents
IOGear GCS1802 User's Manual Rohrrichtwerkzeug Prime-Line N 6625 Instructions / Assembly Silicon Power T10 32GB Celestron Cometron 12x70 Emerson Islatrol E Series Warranties latest PDF - Read the Docs Copyright © All rights reserved.
Failed to retrieve file