Bookmark and Share
29 May 2001

A New Way of Seeing

by Carl W. Gerst III

A new development tool seeks to eliminate the classic flexibility/ease-of-use trade-off.

While many types of machine vision products are available on the market-ranging from high-performance, PC-based systems to low-cost vision sensors-you as a user have traditionally had few choices in application development environments.

You could either create a vision application using a programming language such as Visual Basic or C++, or build it using a more simplistic point-and-click development tool.

Programming languages typically offer you a great deal of flexibility in terms of customizing an application to meet your specific requirements and then modifying it to meet future requirements. The catch, however, is that you must have some level of programming experience. Graphical programming languages simplify things via pull-down menus and dialog boxes, but these features don't exempt you from actual programming.

At the other end of the spectrum lie a number of simple point-and-click development tools that don't require any programming at all, making development a snap. However, their predefined nature, which in many cases guides you through a series of templatelike application setup screens, offers very little flexibility and thus little room for customizing, modifying, or expanding your application.

Going to the Next Level

While developers in the past have been forced to make this trade-off between flexibility and ease of use, an entirely new model has emerged that takes application development to the next level by combining programming language flexibility with point-and-click simplicity.

This tool, a vision spreadsheet, represents a radical departure from the way vision applications have traditionally been created (Figure 1).

Why use a spreadsheet for machine vision? There are a few principal reasons. First, spreadsheets include hundreds of specialized functions, options, and operations, ranging from advanced mathematics (e.g., matrix calculations) to richly annotated graphics. Accordingly, they have a great deal of built-in capability. Second, spreadsheets provide a familiar framework within which most of us can comfortably work. Most engineers at one time or another have used a spreadsheet to perform some type of task, whether it was statistical process evaluations or expense reports. Providing an environment you're already comfortable with minimizes the learning curve for inexperienced vision users and eliminates the need to learn a programming language. Finally, machine vision operations are based on data, and spreadsheets offer one of the most flexible means of working with large data sets.

Not Your Everyday Spreadsheet

In many ways, this vision spreadsheet concept has much in common with its conventional siblings. Its look and feel are similar to those of a regular, everyday spreadsheet, and it preserves several of the same fundamental characteristics:

  • Interactivity among cells
  • Cell referencing
  • Complete mathematical functions to perform algorithm calculations
  • Statistical functionality
  • Formatting tools
  • Drop-down menus and dialog boxes

Despite these similarities, it wasn't until recently that machine vision could take advantage of the spreadsheet model for actual application development. This is because conventional spreadsheet programs such as Microsoft Excel don't support various functions on which machine vision operations depend, including operating on values stored over an interval of time and executing (or not executing) depending on some condition or status.

By adding these functions, vision applications can now be created with a flexibility that mirrors conventional programming approaches but with the added simplicity of point-and-click development.

Easy and Efficient

Whether the application involves locating parts for machine guidance, measuring part dimensions, or verifying that products have been assembled correctly, the spreadsheet approach can make the developer's job easier and more efficient.

To configure an application, for instance, you start by selecting tools and parameters from drop-down menus. Once selected, the spreadsheet automatically generates tool results into work-sheet cells that can easily be linked to perform the desired task.

Flexibility and Power of the Cell

Because of the rigid structure of many point-and-click development tools, we as developers have often had to "force" our applications into the environment's predefined constraints. The spreadsheet concept, on the other hand, offers the flexibility we need to create fully customizable solutions.

To better understand how development flexibility really benefits you, consider this scenario: You start out with a very simple application—for instance, determining the presence of a safety seal on medicine bottles. Over time, there's a need to improve the bottles' aesthetic quality, so you're tasked to expand this application to include label inspection. As you become more skilled in manipulating the spreadsheet, you realize that by running a series of pattern-matching tools on the date and lot codes, you can verify those codes for correctness. Ultimately, you'll want to analyze pass/fail data in real time to improve process control and set up a statistical process control operation right in the spreadsheet.

Because this approach really has no bounds from an application development standpoint, you can build and stretch applications in this manner. This inherent flexibility has other benefits as well. For example, relating tools together by cutting and pasting and using tool results in conditional statements makes "proof-of-concept" prototyping much faster. The vision spreadsheet also provides the flexibility to respond instantly to new product changeovers at run time. For example, in the past, product changeovers typically meant taking the vision system offline to reprogram it to recognize a new part. In contrast, the spreadsheet allows you to make modifications to the application on the fly, without the downtime associated with reprogramming.

This development model eliminates the age-old flexibility/ease-of-use trade-off by offering developers the best of both worlds: the flexibility of a programming language and the ease of use of point-and-click development tools. It also provides a familiar environment for most engineers to work within, the ability to create applications with far greater efficiency than ever before, and the flexibility to stretch applications to the boundaries of your imagination.  MC

(c)2001 Cognex Corporation, published under license.


Figures and Graphics

Author Information

Carl W. Gerst III is a product marketing manager for Cognex's In-Sight family. Previously, he spent 10 years working for Hand Held Products, a subsidiary of Welch Allyn, as product marketing manager for the ImageTeam line of 2-D bar-code readers. He holds a BSEE from Clarkson University and an MBA from the University of Rochester's Simon School. Contact him at One Vision Drive, Natick, MA 01760; tel: (508) 650-3296; www.cognex.com.

Return to Previous Page

Read questions answered by our experts or join the email list.