WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Method and system for quickly developing application software for use in a machine vision system    
United States Patent5742504   
Link to this pagehttp://www.wikipatents.com/5742504.html
Inventor(s)Meyer; Frank (Wootton, GB2); de Magalhaes; Frederico P. (Bedford, GB2); Chappel; Benjamin J. (Bucks, GB2); Cooper; Christopher J. (Herts, GB2)
AbstractA method and system are provided for quickly developing application software for use in a machine vision system using a computer system. Hardware operating parameters are stored which correspond to possible hardware for use in the machine vision system. The hardware operating parameters define a set of custom controls having properties. Commands and a set of instructions are received from a user of the computer system to select a first custom control program corresponding to a desired component, desired hardware operating parameters corresponding to desired hardware and a second custom control program corresponding to a desired machine vision algorithm. The first custom control program is linked with the desired hardware operating parameters to the second custom control program to form the application software. The step of linking includes the step of setting the property of one custom control to be equal to one property of another custom control to form the application software in response to the commands and a set of user supplied instructions.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5742504
Method and system for quickly developing application software for use in

     a machine vision system - US Patent 5742504 Drawing
Method and system for quickly developing application software for use in a machine vision system
Inventor     Meyer; Frank (Wootton, GB2); de Magalhaes; Frederico P. (Bedford, GB2); Chappel; Benjamin J. (Bucks, GB2); Cooper; Christopher J. (Herts, GB2)
Owner/Assignee     Medar, Inc. (Farmington Hills, MI)
Patent assignment
All assignments
Publication Date     April 21, 1998
Application Number     08/554,188
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 6, 1995
US Classification     700/83 700/181 700/259 700/264
Int'l Classification     G05B 009/02
Examiner     Elmore; Reba I.
Assistant Examiner     Patel; Ramesh
Attorney/Law Firm     Brooks & Kushman P.C.
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/188 364/513 364/191 364/474.23 395/700 395/99 395/706 395/705
Patent Tags     quickly developing application software in vision
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5603058
Belknap
710/35
Feb,1997

[0 after 0 votes]
5594657
Cantone
716/16
Jan,1997

[0 after 0 votes]
5581769
Wallace
719/315
Dec,1996

[0 after 0 votes]
5574828
Hayward
706/45
Nov,1996

[0 after 0 votes]
5555365
Selby
715/765
Sep,1996

[0 after 0 votes]
5530643
Hodorowski
700/86
Jun,1996

[0 after 0 votes]
5517663
Kahn
345/473
May,1996

[0 after 0 votes]
5511147
Abdel-Malek
700/264
Apr,1996

[0 after 0 votes]
5500906
Picard
382/220
Mar,1996

[0 after 0 votes]
5481712
Silver
717/109
Jan,1996

[0 after 0 votes]
5453933
Wright
700/181
Sep,1995

[0 after 0 votes]
5434629
Pearson

Jul,1995

[0 after 0 votes]
5416392
Lee
318/568.1
May,1995

[0 after 0 votes]
5414812
Filip
707/103R
May,1995

[0 after 0 votes]
5383110
Fujita
700/86
Jan,1995

[0 after 0 votes]
5327350
Endo
700/179
Jul,1994

[0 after 0 votes]
5314055
Gordon
198/395
May,1994

[0 after 0 votes]
5170352
McTamaney
701/26
Dec,1992

[0 after 0 votes]
5095204
Novini
250/223B
Mar,1992

[0 after 0 votes]
5005119
Rumbaugh
718/101
Apr,1991

[0 after 0 votes]
4928313
Leonard
382/149
May,1990

[0 after 0 votes]
4922434
Fule
700/259
May,1990

[0 after 0 votes]
4914567
Lipkis
700/83
Apr,1990

[0 after 0 votes]
4833624
Kuwahara
700/249
May,1989

[0 after 0 votes]
4759074
Iadipaolo
382/152
Jul,1988

[0 after 0 votes]
4679137
Lane
700/83
Jul,1987

[0 after 0 votes]
4462046
Spight
348/94
Jul,1984

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for quickly developing application software for use in a machine vision system using an open computer system operating in an open programming environment, the method comprising the steps of:

storing an application development program, including a first set of custom control programs representing possible components of a user interface for the machine vision system, the first set of custom control programs defining a first set of custom controls obeying an open standard which defines properties for programming the first set of custom controls;

storing a second set of custom control programs representing possible machine vision algorithms for the machine vision system, the second set of custom control programs defining a second set of custom controls obeying the open standard which defines properties for programming the second set of custom controls;

storing hardware operating parameters corresponding to possible hardware for use in the machine vision system, the hardware operating parameters defining a third set of custom controls obeying the open standard which defines properties for programming the third set of custom controls;

displaying graphical representations of the possible components, the possible hardware and the possible machine vision algorithms;

receiving commands from a user of the open computer system to select a first custom control program corresponding to a desired component of the user interface, desired hardware operating parameters corresponding to desired hardware and a second custom control program corresponding to a desired machine vision algorithm; and

linking the first custom control program with the desired hardware operating parameters to the second custom control program to form the application software in response to the commands wherein the step of linking includes the step of setting the properties of the custom controls of the selected programs and hardware operating parameters.

2. The method as claimed in claim 1 wherein the step of setting includes the step of setting one property of one custom control to be equal to one property of another custom control.

3. The method as claimed in claim 1 wherein the step of linking includes the step of receiving a set of instructions from the user of the open computer system.

4. The method as claimed in claim 1 further comprising the steps of:

storing a third set of custom control programs representing possible software products for use in a machine vision system; and

displaying a graphical representation of the possible software products, wherein the step of linking links a third custom control program corresponding to a desired software product with the first and second custom control programs and the desired hardware operating parameters in response to the commands to form the application software.

5. The method as claimed in claim 1 wherein the desired hardware operating parameters correspond to a desired image source of the machine vision system.

6. The method as claimed in claim 5 wherein the desired image source is a camera.

7. The method as claimed in claim 5 wherein the desired operating parameters further correspond to a desired vision processor board of the machine vision system.

8. The method as claimed in claim 5 wherein the desired hardware operating parameters further correspond to a desired frame grabber board of the machine vision system.

9. The method as claimed in claim 5 wherein the desired hardware operating parameters further correspond to a desired motion board of the machine vision system.

10. The method as claimed in claim 5 wherein the desired hardware operating parameters further correspond to a desired bus of the machine vision system.

11. The method as claimed in claim 5 wherein the desired machine vision algorithm is an image processing algorithm.

12. The method as claimed in claim 5 wherein the desired machine vision algorithm is an image-analysis algorithm.

13. The method as claimed in claim 5 wherein the desired machine vision algorithm is a calibration space algorithm.

14. The method as claimed in claim 5 wherein the desired machine vision algorithm is an interactive CAD/geometry algorithm.

15. The method as claimed in claim 5 wherein the open computer system includes a personal computer.

16. An open computer system operating in an open programming environment for quickly developing application software for use in a machine vision system, the system comprising:

means for storing an application development program, including a first set of custom control programs representing possible components of a user interface for the machine vision system, the first set of custom control programs defining a first set of custom controls obeying an open standard which defines properties for programming the first set of custom controls;

means for storing a second set of custom control programs representing possible machine vision algorithms for the machine vision system, the second set of custom control programs defining a second set of custom controls obeying the open standard which defines properties for programming the second set of custom controls;

means for storing hardware operating parameters corresponding to possible hardware for use in the machine vision system, the hardware operating parameters defining a third set of custom controls obeying the open standard which defines properties for programming the third set of custom controls;

means for displaying graphical representations of the possible components, the possible hardware and the possible machine vision algorithms;

means for receiving commands from a user of the open computer system to select a first custom control program corresponding to a desired component of the user interface, desired hardware operating parameters corresponding to desired hardware and a second custom control program corresponding to a desired machine vision algorithm; and

means for linking the first custom control program with the desired hardware operating parameters to the second custom control program to form the application software in response to the commands wherein the means for linking includes means for setting the properties of custom controls of the selected programs and hardware operating parameters.

17. The computer system as claimed in claim 15 wherein the means for setting sets one property of one custom control to be equal to one property of another custom control.

18. The computer system as claimed in claim 16 wherein the means for linking includes means for receiving a set of instructions from the user of the computer system.

19. The computer system as claimed in claim 16 further comprising:

means for storing a third set of custom control programs representing possible software products for use in a machine vision system; and

means for displaying a graphical representation of the possible software products, wherein the means for linking links a third custom control program corresponding to a desired software product with the first and second custom control programs and the desired hardware operating parameters in response to the commands to form the application software.

20. The computer system as claimed in claim 16 wherein the desired hardware operating parameters correspond to a desired image source of the machine vision system.

21. The computer system as claimed in claim 20 wherein the desired image source is a camera.

22. The computer system as claimed in claim 20 wherein the desired operating parameters further correspond to a desired vision processor board of the machine vision system.

23. The computer system as claimed in claim 20 wherein the desired hardware operating parameters further correspond to a desired frame grabber board of the machine vision system.

24. The computer system as claimed in claim 20 wherein the desired hardware operating parameters further correspond to a desired motion board of the machine vision system.

25. The computer system as claimed in claim 20 wherein the desired hardware operating parameters further correspond to a desired bus of the machine vision system.

26. The computer system as claimed in claim 20 wherein the desired machine vision algorithm is an image processing algorithm.

27. The computer system as claimed in claim 20 wherein the desired machine vision algorithm is an image-analysis algorithm.

28. The computer system as claimed in claim 20 wherein the desired machine vision algorithm is a calibration space algorithm.

29. The computer system as claimed in claim 20 wherein the desired machine vision algorithm is an interactive CAD/geometry algorithm.

30. The computer system as claimed in claim 20 wherein the open computer system includes a personal computer.
 Description Submit all comments and votes
 


TECHNICAL FIELD

This invention relates to methods and systems for developing application software for use in a machine vision system.

BACKGROUND ART

Application software is the cornerstone of every successful vision system job and normally accounts for the majority of the development effort.

At one extreme there are general purpose vision systems for generic gauging, verification, or flaw detection applications. These systems come with a standard interface configurable with a keyboard and mouse.

Successful applications most often require software changes to cope with individual site requirements. Most general purpose systems are closed, or difficult to modify. Others can only be reconfigured through various programming languages.

There is a need to configure and customize the application in the shortest time, yet provide powerful algorithms. Some systems can be modified using "C". Some require one to learn the supplier's proprietary language. Hiring "C" experts, or taking the time to learn yet another language, is expensive and time consuming.

Many times generic vision systems are not the answer, so one must build a custom system using a frame grabber or fast vision hardware. Software is typically the most difficult and time-consuming task of any programmable vision system. At best, the board comes with a library of "C" calls or more often a way to program the board at the register level. Not only does one have to program the application and design a Windows interface, one must understand the performance characteristics of the board and its behavior so one can write algorithms that maximize speed. This is a complicated task for someone trying to solve a problem in the shortest period of time.

Typically, this process takes man-years--not man-months. The only vision system developer that can afford this option is one that amortizes engineering over hundreds of systems. With today's frequency of product improvements, even OEMs are having a hard time justifying this approach.

The Intelec Corporation of Williston, Vt. sells a Windows-based software development package that allows users to create machine vision applications and handle a range of machine vision functions. The software provides a dynamic link library interface which allows the end user to add special purpose algorithms for image processing and analysis.

Xiris, Inc. of Burlington, Ontario, Canada makes a software package including image processing algorithms. The package is configured as a Visual Basic Extension (VBX) to allow the building of automatic inspection applications.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a method and system for quickly developing application software for use in a machine vision system.

Another object of the present invention is to provide a method and system for simply and flexibly developing application software for use in a machine vision system with a graphical user interface such as Windows interface.

Yet another object of the present invention is to provide a method and system for developing application software for use in a machine vision system without the need to develop core vision algorithms and/or complex calibration techniques.

Still another object of the present invention is to provide a cost-effective method and system for developing application software for use in a machine vision system using standard PC hardware and a frame grabber or vision processor while providing a graphical user interface, such as a Windows interface.

In carrying out the above objects and other objects of the present invention, a method is provided for quickly developing application software for use in a machine vision system using a computer system. The method includes the step of storing an application development program, including a first set of custom control programs representing possible components of a user interface for the machine vision system. The first set of custom control programs define a first set of custom controls. The method also includes the step of storing a second set of custom control programs representing possible machine vision algorithms for the machine vision system. The second set of custom control programs define a second set of custom controls. The method further includes the step of storing hardware operating parameters corresponding to possible hardware for use in the machine vision system. The hardware operating parameters define a third set of custom controls. The method further includes the step of displaying a graphical representation of the possible components, the possible hardware and the possible machine vision algorithms. Then, the method includes the step of receiving commands from a user of the computer system to select a first custom control program corresponding to a desired component of the user interface, desired hardware operating parameters corresponding to desired hardware and a second custom control program corresponding to a desired machine vision algorithm. Finally, the method includes the step of linking the first custom control program with the desired hardware operating parameters to the second custom control program to form the application software in response to the commands.

Further in carrying out the above objects and other objects of the present invention, a system is provided for carrying out the method steps.

The benefits accruing to the method and system of the present invention are numerous. For example, the method and system:

Simplify and accelerate the process of developing vision applications by using a Visual Programming Environment;

Utilize image processing algorithms that are robust, accurate, fast, and reliable;

Reduce software debugging time;

Develop applications which can easily have a graphical user interface such as a Windows.TM. user interface;

Support various processors and various frame grabbers such as Cognex processors;

Interface to various video sources including analog, digital, and the line scan cameras in addition to other image sources like a scanner;

Provide programmable tools for various application development environments such as Visual Basic.TM., Visual C++.TM., or Borland.RTM. Delphi.TM.;

Use standard technology such as visual basic extension (VBX) technology;

Include a library of image processing and analysis techniques such as color, distortion correcting calibration, and template matching;

Provide calibration such as non-linear, 2-D, and 3-D calibration;

Include components or custom controls for multi-axis motion control;

Transparently accelerate speed by using on-board vision processing; and

Operate typically with a single monitor.

The above objects and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram illustrating a preferred hardware configuration on which the method of the present invention can be implemented;

FIG. 2 is a schematic diagram illustrating a machine vision system which can be supported by the method and system of the present invention;

FIG. 3 is a screen display of a Visual Basic programming environment;

FIG. 4 is a portion of the Visual Basic programming environment after custom controls of the present invention have been added;

FIG. 5 is a screen display associated with a camera custom control;

FIG. 6 is a screen display associated with an SE100 custom control;

FIG. 7 is a screen display associated with a Magic custom control;

FIG. 8 is a screen display associated with a VP50 custom control;

FIGS. 9-11 are screen displays associated with a editable image custom control;

FIGS. 12-22 are screen displays associated with a search tool custom control;

FIGS. 23-27 are screen displays associated with a blob tool custom control;

FIGS. 28-29 are screen displays associated with a point custom control;

FIGS. 30-31 are screen displays associated with a editable shape custom control;

FIG. 32 is a screen display associated with a stage custom control; and

FIG. 33 is a screen display associated with a Type1 stage custom control.

BEST MODES FOR CARRYING OUT THE INVENTION

Referring now to the drawings figures, there is illustrated in FIG. 1 a workstation on which the method and system of the present invention can be implemented. The hardware illustrated in FIG. 1 includes a monitor 10 such as a single SVGA display, a keyboard 12, a pointing device such a mouse 14, a magnetic storage device 16, and a chassis 18 including a CPU and random access memory. In a preferred embodiment, the chassis 18 is a Pentium-based IBM compatible PC or other PC having 8 megabytes of RAM and at least 12 megabytes of hard disk space.

The hardware configuration also includes the development environments of either Microsoft Visual Basic, Microsoft Visual C++, or Borland Delphi together with a Microsoft Windows user interface.

Referring now to FIG. 2, there is illustrated schematically a machine vision system generally indicated at 20 generally of the type which can be supported by the method and system of the present invention. The machine vision system 20 typically includes an image digitizer/frame grabber 22. The image digitizer/frame grabber 22 samples and digitizes the input images from one or more image sources such as cameras 24 and places each input image into a frame buffer having picture elements. Each of the picture elements may consist of an 8-bit number representing the brightness of that spot in the image.

The system 20 also includes a system bus 38 which receives information from the image digitizer/frame grabber 22 and passes the information on to the IBM compatible host computer.

The system 20 also includes input/output circuits 30 to allow the system 20 to communicate with external peripheral devices such as robots, programmable controllers, etc. having one or more stages.

One or more of the cameras 24 may be an image source such as an analog digital or line scan camera such as RS-170, CCIR, NTSC and PAL.

The system bus 26 may be either a PCI an EISA, ISA or VL system bus or any other standard bus.

The I/O circuits 30 may support a three axis stepper board (i.e. supports multiple axis control) or other motion boards.

The image digitizer/frame grabber 22 may be a conventional frame grabber board such as that manufactured by Matrox, Cognex, Data Translation or other frame grabbers. Alternatively, the image digitizer/frame grabber 22 may comprise a vision processor board such as made by Cognex.

The machine vision system 20 may be programmed at a mass storage unit 32 to include custom controls for image processing, image analysis, third party machine vision products, calibration, and interactive CAD/geometry as described in greater detail hereinbelow. Examples of image processing may include linear and nonlinear enhancement, morphology, color and image arithmetic. Also, image analysis may include search, edge, caliper, blob, template, color, 2-D and 3-D measurements.

Third party products may include digital I/O, various camera formats, motion, databases, SPC and others.

Calibration may include non-linear, 2-D, 3-D and color calibration.

Also, interactive CAD/geometry custom control may be provided for both 2-D and 3-D space.

Referring now to FIG. 3, there is illustrated therein a Visual Basic programming environment screen. However, it is to be understood that the programming environment that can be utilized by the method and system of the present invention include other programming environments such as Microsoft Visual C++ or Borland Delphi as well as others.

Referring now to FIG. 4, there are illustrated icons of a Visual Basic toolbox which appear after various custom controls, which will be described in greater detail hereinbelow, are added thereto.