At the forefront of Artificial Intelligence
  Home Articles Reviews Interviews JDK Glossary Features Discussion Search
Home » Reviews » Hardware » Machine Vision

CMUcam2

The original CMUcam was designed to aid machine vision projects by combining a good CMOS camera with built-in image processing and serial communication. The next incarnation, the CMUcam2, uses an SX52 microcontroller with a OV6620 Omnivision CMOS camera (the higher resolution OV7620 is also available). The design is fairly neat, and the design of the board keeps the size of the system very small (about 55mm2).

Camera body

One disappointing aspect of the CMUcam2's design is the lack of mounting points. The camera only has two mounting points at the top of the camera, I definitely would have liked to have seen points in all four corners.

Design aside, the CMUcam2 has some impressive features, some of which are listed here:

  • Track user defined color blobs at up to 50 fps
  • Track motion using frame differencing at 26 fps
  • Gather a 28 bin histogram of each color channel
  • Manipulate Horizontally Pixel Differenced Images
  • Transfer a real-time binary bitmap of the tracked pixels in an image
  • Up to 160 x 255 Resolution
  • Supports Multiple Baudrates: 1,200 to 115,200bps
  • Control 5 servo outputs
  • Slave parallel image processing mode off of a single camera bus
  • B/W Analog video output (PAL or NTSC)
  • Multiple pass image processing on a buffered image
The camera's resolution may seem small, but it is perfectly acceptable for machine vision purposes. Here is an example of the standard resolution from the CMUcam2:

Camera body

Using the CMUcam2

Using the CMUcam2 is very simple. Since all the processing is done for you, you communicate with the camera using a variety of text commands sent via the serial connection. For example, connecting the CMUcam2 up to your computer and using Hyperterminal you might get similar to this:
CMUcam2 v1.01 c6
:TI
ACK    
S 103 169 72 32 67 20                     
T 46 67 22 4 87 140 14 3                        
T 47 63 22 3 87 143 15 3                        
T 47 61 22 3 87 137 14 3                        
T 47 63 20 3 87 135 15 3                        
T 44 57 20 3 87 136 14 3                        
T 49 66 24 4 87 142 15 3
The TI command typed in tells the CMUcam2 to track the colour in the centre of its current window. The camera acknowledges the command, then sends an S-packet telling the user what colour is being tracked (Kermit the Frog in this case), then begins to send T-packets that detail Kermit's centroid, window size, as well as pixel and confidence information.

CMUcam2GUI

The camera also comes with a GUI that allows you to explore many of the features on the camera. The GUI is written in Java (with full source code), and allows you to grab frames, alter camera settings, view colour tracking, motion tracking, histograms, statistics and servo control:


Unfortunately, my experience with the GUI has definitely been mixed. I have had the GUI freeze on me countless times, especially when grabbing frames from the camera. Error control in the program seems to be minimal. Having said this, it is hard to ascertain whether this is a problem with the GUI or the camera itself, since both the camera and the GUI seem to freeze or generate error messages.

Nevertheless, the GUI does do a good job of allowing new users to become accustomed to the features of the camera, as long as you can work around the software's deficiencies.

Performance

The camera performs extremely well, tracking colour and motion with surprising fluidity given the picture quality. While I could not directly test the camera's integrated ability to control servos, a demonstration video is supplied on the accompanying CD-ROM that shows the camera responding quickly and accurately to a target object.

Conclusion

Overall the CMUcam2 is a good package, with a camera suitable for nearly all machine vision projects. The kit has an excellent feature set, with good colour and motion tracking. Unfortunately, small things about the kit are annoying and can hamper operation; the lack of mounting points, and especially the occasional instability of both the camera and GUI stand out.

This said, the CMUcam2 provides good operational performance at a very affordable price.

No cover available 8.5
Price:£105
Liked:Good tracking performance, feature set, decent quality
Disliked:Lack of sufficient mounting holes, stability under GUI
Website:http://www.active-robots.com/

Submitted: 07/07/2004

Article content copyright © James Matthews, 2004.
 Article Toolbar
Print
BibTeX entry

Search

Latest News
- Generation5 10-year Anniversary (03/09/2008)
- New Generation5 Design! (09/04/2007)
- Happy New Year 2007 (02/01/2007)
- Where has Generation5 Gone?! (04/11/2005)
- NeuroEvolving Robotic Operatives (NERO) (25/06/2005)

What's New?
- Back-propagation using the Generation5 JDK (07/04/2008)
- Hough Transforms (02/01/2008)
- Kohonen-based Image Analysis using the Generation5 JDK (11/12/2007)
- Modelling Bacterium using the JDK (19/03/2007)
- Modelling Bacterium using the JDK (19/03/2007)


All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -