Vision

Our vision-processing system is designed to give the vehicle up-to-date and accurate data about the surrounding mission elements. A newly rewritten vision daemon handles the process of reading and processing camera data. An undistortion system lets us get usable data from a wide-angle lens. Processing the vision output is done using a combination of color thresholding, Sobel or Canny edge detection, and graph segmentation.

Undistortion

The undistortion module allows us to compensate for the distortion inherent in some lens. It runs the pixel data through a polynomial approximation of the inverse of the distortion effect.

Vision Distorted Vision Undistorted


Camera view before and after undistortion

Vision Tuning

A new vision tuning system has been written to enable fast, real-time adjustments to the vision parameters. Since making reliable vision is an iterative process, it is important to have a fast system to adjust it. The vision tuning shows the results of intermediate steps and makes it easy to see the results of the tuning changes as they are made.


Vision Tuning GUI


The Vision Tuning GUI allows for real-time adjustment of vision parameters

Vision Processing

Each mission element has its own vision module which can be run or started independent of every other module. This lets us save processor time by only running the necessary processes. Mission elements are detected by a combination of edge detection, color thresholding, and graph segmentation, though not all elements use every algorithm. Camera data can also be saved to disk to be used later for off-line mission tuning. This enables us to use vision data from previous competitions to adjust for the lighting conditions at Transdec when we are not there.