![]() |
|
| Fig. 1 - Kitchen Stereo Image set |
![]() |
|
| Tsukuba Stereo Image set |
|
|
| Fig. 2 - SAD 3x3 Window | Fig. 3 - SAD 21x21 Window |
|
|
| Fig. 4 - SSD 3x3 Window | Fig. 5 - SSD 21x21 Window |
|
BeagleboardThe Beagleboard is the mobile computer I used in building my robot. The processor is a 600mhz ARM Cortex-A8 processor. It is a system on a chip board with a video processor capable of OpenGL ES 2.0 and a DSP capable of HD video acceleration. The Beagleboard presented some problems, such as the lack of OpenGL drivers and lack of documentation on the C64x processor for most of the time that I spent on my thesis. It also had some difficulties with USB support. The board has only one USB port, so a hub had to be used. The USB hub also needed to be powered, as the Beagleboard's single USB port supplies only 100mA of power. The board's USB 2.0 support on the OTG (On The Go) port at the bottom of the image is broken. The broken support was causing buffer problems with my webcams with any USB 2.0 hubs, so a USB 1.1 powered hub had to be used to force the camera to use USB 1.1 instead of 2.0. |
|
Linksys USBHUB4C ProConnect Compact USB 4-Port HubThe hub used to connect the cameras and the Minyboard to the beagleboard. This hub was particularly hard to find, as it is outdated technology and most USB 1.1 Hubs were not powered. |
|
MinyboardThe motor controller board for the robot. An ATMega168 Microcontroller that can be commanded via a USB connection using a CR2101 USB to serial connection. The board can use pulsed width modulation to control the speed of the motors. The Minyboard was easy to set up and flash with a simple program to accept commands using the USB connection. The program written used the upper 4 bits of the byte sent to represent the left motor's speed and direction and the lower 4 bits to represent the right. The Minyboard was programmed to keep the motors at the last given speed until sent another byte. |
|
Lithium Ion BatteryAn old laptop battery from a Dell was used as the power supply for the robot. The battery used to be a 14.8V 3600mAh battery but was converted to 7.4V 7200mAh instead as there was no need for the higher voltage and increased battery life would be more beneficial. |
|
Dalek ToyA toy Dalek was used as the shell for the robot because of its maneuverable base and because I'm a fan of Doctor Who. Two holes were drilled in the front of its base so the cameras could be mounted on the inside. The base has been modified with a wood-based mounting board for mounting all the components. The Dalek has 2 motors in the back and a centered free moving wheel in the front, which makes it maneuverable like a tank. Rotating in place was very desirable as it makes it less likely to hit anything while it rotates. The original 4-AA-battery power supply is still used to power the Minyboard, which powers the motors. |
|
Logitech Quickcam ConnectThese are the cameras that are used in my robot. I have found several drawbacks to using these cameras, which have caused many problems for my thesis. These webcams only support adjusting Auto-Whitebalance (boolean), Brightness, Contrast and Gain. They have a maximum resolution of 640x480 but were used at 320x240 for speed. There is still some auto-balance for brightness which cannot be turned off, which does cause problems when using an SAD or SSD algorithm. Since one image may be brighter than the other, what normally should be a perfect match will leave a uniform "leftover" result from the algorithm. If this leftover result is large enough another disparity level may have a lower result than the correct disparity. |
![]() Fig. 7 - Dalek base with hardware mounted to wooden frame |
![]() Fig. 8 - Dalek shell with cameras in dremelled holes |
![]() Fig. 9 - Dalek shell |
![]() Fig. 10 - Fully Assembled Dalek |