I'm currently doing a thesis project involving image processing for a UAV to compete in the 2009 UAV Outback Challenge (see http://www.uavoutbackchallenge.com.au/uavoutbackchallenge/ for more info). Since the image processing is to be done on board the UAV, I needed something light but with enough processing power to run OpenCV. I ended up settling on a Gumstix Overo Earth (http://www.gumstix.com/).
It's based on a TI OMAP3 processor (ARM Cortex A8 architecture) and according to this Wikipedia article: http://en.wikipedia.org/wiki/Million_instructions_per_second#Million_instructions_per_second has just under the processing power of a PIII. Although I haven't yet tested my program on the Gumstix, others have used OpenCV succesfully on it so it should be sufficient for my needs.
Firstly a couple of pictures showing size compared to my Nokia 6300 phone.
The picture above also shows the camera I'm using, it's a 1.3 MP Monochrome USB camera from Mightex Systems, the details of which I'll leave for another post.
I haven't done much development on the Gumstix yet, mainly just hooking up some peripherals and playing around with the GUI. The pictures above show the connectors on the Summit expansion board: Power, USB OTG, Audio in/out, HDMI, USB host, USB serial console.
Connecting peripherals requires a USB mini-A cable, which isn't all that easy to find locally. Luckily there's a couple of options. The OTG port behaviour is determined by the grounding of the 4th pin: if grounded then the port acts as a host, if floating then it acts as a device. Since the OTG port accepts both mini-A and mini-B connectors, a mini-B connector can be modified by soldering a bridge between pin 4 and pin 5, preferably on the cable side. Although this involves hacking up a mini-B cable, it's a perfectly workable solution which I can confirm works.
I ended up purchasing a standard A female to mini-A male adaptor from Ebay as this was a much neater solution for connecting up my powered USB Hub (an $8 Ritmo job from MSY). So far the Gumstix has been able to detect all the peripherals I've connected to it. It's not a huge list by far but it's great to be able to connect something up and know it works.
So far I've tested: a Netcomm NP545 Wireless USB Adapter; a Swann Ethernet USB Adapter; a Logitech Quickcam Pro 9000 Camera; a Logitech USB wireless keyboard/mouse. I've also managed to hook it up through HDMI to my computer monitor. Below are some pics of the Gumstix default window manager (whose name escapes me right now). I even managed to get ekiga running with my camera:
Stay tuned for my experiences with OpenEmbedded and OpenCV.
Hi Rod,
ReplyDeleteI am studying Mechatronics in Melbourne and am interest with how you got on with openCV on the Gumstix?
I have ordered the same unit and plan to use openCV.
Hi, good to see someone is actually reading my ramblings. I have managed to get some OpenCV functionality working on the Gumstix.
ReplyDeleteI used the instructions on this blog post: http://danielbaggio.blogspot.com/2009/01/compiling-opencv-for-gumstix.html
and compiled the OpenCV libraries that way. For some reason I haven't been able to get the included OE bitbake recipe to work but this might be an issue on my end. The bitbake recipe compiles successfully but when I install the ipk package it fails to recognise the installed libraries.
Anyway, using the instructions above I was able to get some of the samples to compile and run in X windows.
Sorry about the vagueness of this reply, I'm in the middle of rebuilding my build environment and didn't properly document my procedures the first time around.
Hopefully I'll have some more details by the end of the week so check back if you want more info.