Machine Vision on CompactRIO and Single-Board RIO


The CompactRIO platform offers some of the only embedded controllers in the industry to offer built-in vision capabilities and provide a fully integrated and efficient design for shorter time to market and smaller size. Both board-level options and rugged modular controllers support camera connectivity over USB and Gigabit Ethernet. The CompactRIO platform can also accelerate embedded vision applications through the Vision Development Module, which includes many image processing functions that can run on both a real-time processor and an FPGA.


Figure 1. Integrate vision capabilities with precise control and monitoring on the CompactRIO platform.



Imaging support on the CompactRIO platform addresses a variety of control and measurement applications that involve mixed I/O, including:

    • Autonomous Robotics
      The camera connectivity makes the CompactRIO platform ideal for developing professional robotics projects by integrating sensor connectivity, vision, motion, and control functions within a single system. 
    • Embedded Medical Devices
      The image acquisition capabilities and small form factor provide an ideal platform for slide scanners and automated microscopy, and the real-time OS option makes it easier to obtain FDA validation. 
    • Industrial Monitoring
      Vision capabilities also make the CompactRIO platform ideal for industrial applications such as machine condition monitoring and critical vessel monitoring with area-scan and thermal cameras.

Figure 2. More helpful data can be added to machine condition monitoring by using thermal imaging to trend hot spots.


Camera Connectivity

Adding visual data helps a system gain a more complete understanding of its environment. In many machines, the vision system is separated from the main machine controller, and results pass through serial or Ethernet communication. However, many modern applications need lower latency, smaller size, or lower power than what a distributed system can provide. Combining the advanced control capabilities of CompactRIO with onboard image acquisition and processing provides tight synchronization between vision and I/O. With both Gigabit Ethernet and USB connectivity to cameras, CompactRIO hardware can interface with thousands of models of industrial cameras.

The performance line of CompactRIO controllers based on Intel Atom and Intel Core i7 processors supports GigE Vision cameras, which offer cable lengths up to 400 m and bandwidth up to 1 Gb/s. For surveillance applications, you can acquire compressed images from IP cameras connected to any CompactRIO target that has an Ethernet port. All CompactRIO and Single-Board RIO targets with a USB port can acquire images from compatible USB3 Vision cameras. Why USB3 Vision cameras on a USB 2.0 port? USB3 Vision provides a camera interface industry standard that you can use with NI Vision Acquisition Software to connect to hundreds of USB3 Vision cameras on the market. Machine vision camera manufacturers are quickly adopting the standard, so the availability of USB3 Vision cameras is expected to become as broad as GigE Vision cameras. Although intended for USB 3.0 ports, the standard includes the option for backward compatibility to USB 2.0 ports, which are common on many CompactRIO targets. Compatible cameras include Basler USB3 Vision cameras as well as any USB3 Vision camera with backward compatibility to USB 2.0 ports. The ability to connect to a broad range of USB3 Vision, GigE Vision, and IP cameras provides many immediate imaging options for current CompactRIO targets and users.

The software experience stays consistent because of the NI-IMAQdx driver, which eliminates the need to edit code if application requirements change the originally selected CompactRIO target or camera interface.


FPGA Image Coprocessing

Many image processing algorithms can take advantage of the parallel nature of an FPGA and offload the processor-intensive portions of a vision application, which frees the processor to handle other tasks. The Vision Development Module includes over 50 FPGA image processing functions as well as an API to efficiently handle the image transfer between the processor and FPGA. This enables the FPGA to be used as a coprocessor in which the processed image is sent back to the host or for the image processing to be tightly coupled with other processing and I/O on the FPGA. This creates a high-performance solution for applications such as visual servo control.

Figure 3. Accelerate vision by offloading image processing to the FPGA.

Users can quickly prototype and develop FPGA vision applications using the Vision Assistant, which is included with the Vision Development Module. The Vision Assistant is a configuration-based prototyping tool that empowers developers to iterate on image processing algorithms and see how changes in parameters affect the image. Once the algorithm engineering is complete, the Vision Assistant can automatically generate a complete LabVIEW project including host processor VI, FPGA VI, and supporting elements such as code to transfer images between the processor and FPGA as well as the corresponding FIFOs. The FPGA code generated by the Vision Assistant is also optimized for parallel execution for improved performance.


Recommended Hardware and Software

Recommended Hardware: CompactRIO Performance Controller
Recommended Driver for Image Acquisition: NI-IMAQdx in Vision Acquisition Software September 2014 or Later
Recommended Software for Image Processing: Vision Development Module