CVM2 Real Time Vision System

CVM2 System
CVM2/KA-1100 (DSP)
CVM2/VX-1500 (VIDEO)
NOT Recommended for new designs.

What is the CVM2

The CVM2 is the second generation computer vision system from CVM family. The CVM family is designed to execute real time computer vision algorithms at a highly affordable price. The CVM2's small size and very low power make it ideal for mobile and aerial robotics. It can also be easily embedded into larger systems to solve time critical vision problems or used on a desktop or lab bench for applied vision research or algorithm development.

The CVM2 system consist of a digital signal processor card onto which is stacked a video card. When stacked the system forms a small, sturdy package that can easily be attached to a robot chassis, instrument case, or remain resting on a table top surface.

DSP CARD (KA-1100)

The DSP card CPU is the floating point digital signal processor TMS320C31. This processor is capable of executing code at upto 25-30 MIPS, or 50-60 MFLOPs. [Benchmarks in 1995 indicated that for image processing the C31 was twice the speed of the Pentium 100, and around six times the speed of a Sun Sparc 5 system.] The DSP card contains three RS-232 serial communication ports, 2 Mbytes static RAM (SRAM), two banks of in system re-programmable non-volatile storage (FLASH EPROM), an 8 bit Flex-PC processor expansion bus, an IIC controller, and a high speed synchronous serial port.

The large zero wait state main memory permits full speed sequential and random access - without the performance penalties typically associated with DRAM and SDRAM based desktop or embedded systems.

The RS-232 serial ports may be used to connect a host computer, a second CVM system in a two processor system, and RS-232 based sensors, and other computers in the embedded system.

The DSP board boots a modified version of the MIT AI LAB kernel called NEOS. The command shell supports basic memory read and modify commands, receiving and executing programs. A background debugger is under development that will permit variable inspection and modification and program break points.

Video CARD (VX-1500)

The video card consist of a 24 bit (RGB 4:4:4 and YUV 4:2:2) digital video decoder, a 24 bit digital video encoder, 2 banks of 1 Mbyte video RAM, and a hobby servo controller interface. The video input can be any of the world-wide composite or S-Video standards (including NTSC, PAL, RS-170). With the integrated video multiplexes four composite or two S-Video sources may be connected. The single channel video output is available in both composite and S-Video format.

Frame Grabber

Unlike many other vision systems, the CVM2 can grab a video frame while the processor is accessing the same video memory - without any performance penalty. This unique ability permits applications that can analyze regions of every field at 60 hertz (NTSC).

Video Display

The video display is a general purpose 24 bit color video display buffer similar to those found on desktop computers - except that the output format is NTSC. The display can output any mix of images or graphics as specified in the user application software. The display directly supports over 16 million colors, a color palate is optional.

The video display facilitates algorithm debugging by permitting the original image to displayed - with graphic enhancement, along with several intermediate images (such as edge enhanced, color segmented, left-right disparity, etc.). The video output can also be connected directly to a video recorder for documentation and presentations or to a video transmitter for remote viewing.

The video display can also be used in enhanced reality research and applications. Typical examples include highlighting of object of interest in an object recognition system, obstacle marking in obstacle avoidance, targeting cross hairs in a tracking system, and visual morphing, distortion, and mapping effects.

Hobby Servo Interface

The video board contains a connector that supports attachment of a PCB to which eight hobby type PWM servos may be connected. The hobby servos can be used to position small cameras for a low cost active vision head. The hobby servo board may also be connected to a PWM type hobby motor controller.

Programming the CVM2

The CVM2 is fully programmable in the C programming language. No assembly language or special knowledge of the hardware is required. Early users, with no prior experience with our systems, began using the CVM with a two page getting started document and a few very simple software examples - apparently without difficulties. Our goal of designing the CVM system be easy to use appears to have been met.

Typically C code is written on a UNIX based workstation or a Windows based PC. Using a C compiler for the TMS320C3X/C4X (available from Texas Instruments or a variety of 3rd parties) code is compiled and linked. The compiled code is then transferred over a serial port to the CVM2 executed. To facilitate the program transfer and debugging, communications software for both SunOS and the PC is supplied.

To further simplify program development, we supply general purpose makefiles, gnu-make, and a generic linker command file.

Library support

The ease of programming is the result of an extensive system support librarys. The compiler's library, rts30.lib, implements the functions from "math.h", "stdlib.h", "strings.h", "ctype.h", and others.

The CVM2 libraries consist of the DSP library, and video library. The DSP library consist of functions from "stdio.h" and functions that support and abstract the DSP hardware.

The stdio.h library supports the derivatives of printf, scanf, gets, getc, puts, and putc. The stdio.h contains the type FILE * which permits multiple streams to be read and written using fgets and fprintf. (Host and client software to implement fopen is under development.)

The video library contains functions to initialize the video hardware, enable a particular grabbing pattern, grab images from sub regions of the frame buffer, and display images onto the display.

Technical Support

Customer satisfaction is of prime importance, thus if required, extensive technical support is freely available.

Primary support is Internet based though the CVM2 support web page. This web page contains all the documentation, libraries, example software, utility software, and NEOS updates.

If the support web page does not solve the problem then we can provide support either through Internet email or telephone.

Key improvements over the CVM:

CVM2 System Specifications

CVM2 Applications

Some CVM family users

Applied AI Systems, Inc.
Ian Horswill at Northwestern University
Liana Loriga and the Mars Rover Project
Mike Wessler with the Modular Visual Tracking
Dr. Steve Mann with University of Toronto

To place an order : Address and contact information


Last modified : 12-17-98 CEB