How to Choose the Best Controller for Your Vision Application


Machine vision is becoming more common in automation and measurement systems. A reason for this is that more information can be extracted from one camera than a single, purpose-built sensor. Cameras can be used to extract temperature information, measure dimensions, and check for presence or absence along with a host of other useful information. This makes them a popular choice for quality inspection, machine control, and robot guidance applications, which all have unique needs and challenges that must be considered when choosing the hardware and software to control them. This paper provides an overview of some of these considerations to help you choose the best controller for your machine vision system.


What is a Vision System?

A vision system consists of one or more cameras for image acquisition combined with a controller that runs acquisition and analysis software. These systems can take many forms, but some common ones are smart cameras where the camera and controller are built into one unit, cameras connected to a desktop or an industrial PC using a frame grabber or other interface port such as Ethernet or USB, or even cameras connected to industrial control devices such as programmable logic controllers (PLCs) where one controller manages image acquisition as well as slice I/O and measurement devices.

You can use each of these systems to solve similar applications, but they all have unique features that make them more suitable for certain use-cases. To choose the best controller for your application, it is important to consider your needs and match them with a controller best suited for the job. Although the most obvious consideration is the controller’s processing power, there are additional considerations like supported cameras, I/O capabilities, and the ability to integrate with existing infrastructure that have just as big of an impact on the controller you choose.

Considerations for Choosing a Vision Controller

Processing Power

Processing power can directly impact what algorithms you run and how quickly your vision system can make decisions. A single-camera barcode inspection system requires significantly less processing power than a multicamera stereovision system. Furthermore, a machine vision system that includes I/O or closed-loop motion control requires more processing power to ensure the vision component as well as the I/O and motion control component can run deterministically. In an effort to decrease the time it takes to process images, some vendors are now using heterogeneous processing to run vision algorithms. This heterogeneous processing approach uses a combination of CPUs and GPUs, FPGAs, or DSPs to process images faster than using one of these components alone. Heterogeneous processing decreases the time it takes to process images and can even allow images to be used as an input to a closed-loop control algorithm. It is important to have a good understanding of the algorithms you plan to use and the amount of time the system has to run them before choosing a controller for your vision system.

Supported Cameras

The number of cameras and type of communication bus you plan to use for your image acquisition also play roles in deciding on a controller. After you’ve selected the cameras for your application, make sure the controller supports the communication bus your cameras use. Two popular industry-standard buses for machine vision are USB3 Vision and GigE Vision. These standards allow controllers to interface with cameras using standard USB 3.0 or Ethernet ports, which are common on consumer and industrial computers. Both standards can connect multiple cameras to one port by using a hub or switch. This is an acceptable way to add more cameras to a system, but keep in mind that each camera connected to the hub shares bandwidth with the other cameras connected to the same hub. Additionally, certain features such as Power over Ethernet (PoE) are unsupported by most consumer-grade switches. If you plan to use these features, or your system does not have enough bandwidth to share with multiple cameras, you may want to select a controller that has multiple independently controlled ports so each camera has full bandwidth.

I/O Capabilities

Most machine vision systems require some basic digital I/O to trigger cameras or read encoders. An example is a vision system that uses a camera mounted above a conveyor belt to inspect parts as they move by. It can be challenging to snap an image at the same moment a part is positioned under the camera unless the system can keep track of the conveyor’s position. A common solution to this problem is to use an encoder to read the conveyor’s position and trigger the camera at regular intervals that correspond to part placement on the conveyor. If the parts are unevenly spaced on the conveyor, a proximity sensor can be used to trigger the camera instead.

Some machine vision systems may require more advanced I/O capabilities. In some material analysis applications, it is often a requirement to synchronize images with measurement data so events in the images can be correlated to measurements. Imagine an application that uses cameras and strain gages to measure the distance that a composite bends and the load as a force is applied. This synchronized data can be used to understand how a material behaves under loads or even measure its point of failure. This level of synchronization requires close integration between image acquisition and I/O so measurements can be accurately timestamped or the same clock can be shared between the cameras and measurement device. Understand your I/O and synchronization needs before choosing a controller. For basic I/O needs such as triggering or unsynchronized measurements, it is acceptable to choose a controller that has integrated or network-distributed I/O. For more complex I/O needs, choose a controller that has integrated I/O or connects to I/O devices using a deterministic communication protocol such as EtherCAT.

System Integration

In an ideal world hardware and software from different vendors would magically work together and allow data to be shared flawlessly, but that is rarely the case. Oftentimes, machine vision systems must be added to existing infrastructure that contains systems from different vendors who each use proprietary interfaces. This integration can be challenging, but thankfully standard communication protocols like Ethernet/IP and Modbus have been created to make this process easier. Be sure to understand your existing infrastructure and choose a vision controller that can integrate with it. Choose controllers that support a wide variety of industrial communication protocols to ensure the best integration.

Controller Product Comparison

CompactRIO and NI industrial controllers are some of the products NI offers for vision systems. As mentioned earlier, processing power and number of cameras directly impact the overall performance of a machine vision system. To understand the differences between these products, you can compare their performance when used as controllers for a pick-and-place machine where one or many cameras are used to identify parts to be picked. The overall performance of this machine is measured in terms of the number of parts that can be identified per second.

Your individual application needs dictate which controller is best suited for your application. A more detailed overview of each product is provided below.

CompactRIO Controller

CompactRIO is ideal for vision applications that require powerful processing along with modular I/O for automation, measurement, and control tasks. The latest performance CompactRIO models share the same quad-core Intel Atom processor as Compact Vision Systems and provide connectivity to GigE Vision cameras and USB3 Vision cameras that are USB 2.0 backward compatible.



Additionally, CompactRIO offers up to eight slots for use with over a hundred of C Series I/O modules so you can connect to any sensor on any bus. CompactRIO also offers the benefit of accelerated image processing through the use of a built-in user-programmable FPGA. This means that the CPU and FPGA can work together to coprocess images and reduce processing times. CompactRIO can easily integrate with PLCs and operator interfaces using its built-in RS232/RS485 port or industrial communication C Series modules. CompactRIO also has a dedicated Gigabit Ethernet port for network connectivity, and two USB 2.0 ports for external data storage. With enterprise connectivity, you can also monitor the inspection results, view images, or store data in databases for statistical process control.

Industrial Controller

NI industrial controllers are vision-optimized industrial computers. They have four independently controlled GigE ports, two USB 3.0 ports, an Intel i7 processor, and a Xilinx Kintex-7 FPGA, which makes them the most powerful embedded controllers for vision applications offered by NI. Although NI industrial controllers lack integrated slots for C Series I/O, an Ethernet or EtherCAT expansion chassis can be connected to add I/O to the system. The industrial controller’s large FPGA and powerful processor can be used together to coprocess images faster, which reduces latency.

Industrial Controller

Additionally, the system can send commands and data to other devices, such as PLCs and operator interfaces, using industrial protocols such as Ethernet/IP, RS232/RS485, Modbus serial, and Modbus/TCP. Industrial controllers also have a dedicated Gigabit Ethernet port for network connectivity, and four USB 2.0 ports for external data storage. With enterprise connectivity, you can also monitor the inspection results, view images, or store data in databases for statistical process control. The NI industrial controller is best suited for high-performance multicamera applications where processing speed is critical.