CPUAuto_MBray.ppt

Download Report

Transcript CPUAuto_MBray.ppt

IPD Technical Conference
February 19th 2008
Application:
Inspection.
Pipette Measurement and Flash
Distributor: CPU Automation
Engineer: Mike Bray
Product
Clear plastic pipette used in medical environments.
Specifications
Inspection Requirement
 Measure pipette lengths - 3.375 inches +/- 0.020 inches
 Look for flattened tips
 Look for flash that extends beyond tips
 Inner view of tip hole not required
Camera setup
 Working Distance: Approximately 13 inches.
 Field of View: 3.65 inches x 2.75 inches
 1 pixel = Approximately .0058 inches
Product Presentation
 Pipettes are retrieved by a pick and place robot in
groups of twenty. The pipettes are held vertically in a
single row by twenty individual vacuum nozzles that are
inserted into the top of the pipettes.
 The robot then brings the group of pipettes into the
vision staging area where two 640x480 cameras capture
an image of ten pipettes per camera.
 The lighting consists of a red backlight mounted
underneath and shining up into the pipettes.
Hardware
 System: IPD vision appliance - VA40
 Camera: 2 Telli TM2 Cameras - 640x 480
 Lens: 2 Fujinon lenses - 16mm
 Lighting: CCS LDL-TP-211x200 - red backlight
 Backlight Power Supply: CCS PD-5024 24VDC
 CTC PHM-15 monitor with touch screen – 15”
Software
 Sherlock 7.1.2.0
 Visual Basic 6.0
Application Specific Problems
-1
 Need to inspect twenty pipettes at a time.
 Standard alignment tools will not work due to varying
pipette to pipette positions.
 Alignment must be achieved by finding the center of
each pipette then re-positioning the Roi's for each
pipette. This requires the re-positioning of sixty Roi’s
and the calculation of sixty two-element arrays that must
contain the x,y coordinates for the new Roi positions.
 The top of the pipette is not in the FOV. Top
measurement point has to be the step down point (see
drawing on frame 3) on the top third of the pipette. This
point turned out be difficult to illuminate with standard
backlighting.
Application Specific Problems
-2
 Multiple data readings for length, tip width and pass/fail are
required. All of the data must be stored in arrays.
 A Visual Basic interface is required for this application. Arrays
have to be passed from Sherlock to VB for displaying results.
Because VB can only use dynamic arrays when acquiring
elements from Sherlock, special care must be taken to handle
missing pipettes as this will change the size of the array
expected. This would result in a VB crash.
 Customer did not follow our camera mounting recommendations
and used large 80/20 stock for camera mounting. This made
camera alignment somewhat difficult and time consuming.
Eventually the cameras were pinned into place and a “Length
Offset” screen was made available in VB to manually correct
small skewing of the cameras after calibration.
Sherlock Application Sequence
1. Wait for trigger from robot
2. Acquire images
3. Apply preprocessing to raw images
4. Look for pipette edges using “Edge Count” tool.
5. If twenty edges per camera are found Calculate pipette width
centers and populate all “Set Coordinate” arrays for top
bottom and width Roi’s.
6. Calculate each pipette length and tip width then populate data
arrays.
7. Compare array data to min/max limits, set outputs and status
flags accordingly and update saved failed image queue if
needed.
Sherlock
Find Pipette Centers
Calculate Lengths
Calculate Tip Widths
Calibration – Four Point w/ custom fixture
Sherlock 7 Benefits for this Application
 Sherlock’s powerful logic capability helps in
applications where such as this where handshaking with
existing control systems is required.
 The new enhanced edge tools in 7.1.2.0 helped with
stability and consistency in this application.
 Scripting was also necessary in this application.
Sherlock’s scripting ability helped make this application
much easier to implement.
 Sherlock’s preprocessors are able to help correct for
lighting deficiencies.
 The ability to re-locate Roi’s on the fly was also
necessary for this application.
Sherlock Improvements needed
 There are 260 defined variables in this application. Currently the
variable list can only be sorted by their field headings. This makes
searching for specific variables difficult at times. Adding a third
column that could be used for a user sort index entry would be very
helpful.
 Currently you cannot enter a value into a variable field while in the
run mode. This makes de-bugging difficult.
 You cannot move a variable into the watch window. I find this
somewhat short sighted. I would like to be able to set up debugging scenarios in the watch window that include variables as
well as algorithm outputs.
 Java scripting lacks some functionality. Simple math functions i.e.
rounding anything other than integers are not available. Array
manipulation lacks functionality.
 More Sherlock functions need to be exposed for Visual Basic and
Visual C.
Visual Basic Interface Requirements
 Ability to select all camera views and image windows as needed.
 Control all modes of vision operation from user and password
protected supervisor screens.
 A Data Stat screen that will display all array data for length, width
and pass/fail.
 A password protected Setup screen where limits and tolerances can
be entered via an on screen numeric touch pad.
 Settings can be saved to an “ini” file located in the application’s VB
folder.
 Settings in the “ini” file are load when the application is launched.
 An Roi offset screen for offsetting the Sherlock Roi positions.
 Calibration can be run from the setup screen.
 A live camera screen for camera adjustment.
Main VB Screen
VB Stats Screen
VB Setup