Kyle L. Carithers
REU 2006
Vision
The CMU2+ vision system was used on
MiniRanger. The CMU2+ is
Acroname’s version of the CMUcam2.
The CMUcam2 is the second generation of the CMUcam designed by
Codevision’s terminal emulator was used to test the commands that would be used on the MiniRanger. For the purposes of tracking and following a color, only the following commands are necessary: RS, CR, SM, and TC. RS resets the camera to its default condition and moves servos to center position. CR can be used to adjust the internal register values of the camera such as contrast, brightness, auto white balance, clock speed, and auto gain. MiniRanger used the CR commands during camera initialization. The following was the exact command sent to the camera, "CR 18 32 19 32\r". The numbers are sent in pairs where the first number of the pair tells the camera which register that the next number will adjust. For MiniRanger, 32 turns off the YCrCb auto white balance of register 18, the color mode. The next 32 turns off the auto gain of the auto exposure register, register 18. SM is the servo mask that controls which servos are automated while tracking. The command "SM 15\r" was sent to the camera to enable both the pan and tilt.
The command TC was used to track specific colors. TC puts the camera in tracking mode where the red, green, and blue levels of each pixel are evaluated. The camera tracks the largest objects whose values range between the specified minimum and maximum color values. A series of numbers is sent after TC to set the minimum and maximum values for red, green, and blue. The command "TC 175 255 0 30 0 30\r" was the actual command sent to the camera. The number 175 and 255 represent the minimum and maximum allowable values for red. The last two pairs represent the minimum and maximum values for green and blue. While in tracking mode, the camera sends out a series of ASCII characters that specify tracking information. If the servos are being automatically controlled by the camera, the servo positions are sent after the tracking information. These servo values were stored while the other values sent during tracking mode were discarded.