The two microcontrollers will be connected by USB, along with a USB webcam mounted on a servo pan/tilt mechanism, and a USB wifi dongle for internet connectivity. Basic tank treads will provide movement, possible being replaced by servo-based legs for a humanoid or dog form.
It’s a work-in-progress at the moment. I’ve got the tracked base running with the Arduino using the Ardumoto controller, and I’ve got a webcam and USB wifi working with the Beagleboard. More details on my build log at: http://mechomaniac.com/robots
Update (2009-10-04)
I’ve now got the Beagleboard talking to the Arduino by serial, so that it can control the motors and servos. I’ve started to experiment with some computer vision, identifying and tracking a pink ball from an Aibo. See http://mechomaniac.com/node/72 for details.
There pictures form the webcam seem to be delayed by about 2 seconds which makes the tracking a bit odd, and only the pan servo is connected (I need to extend the cable for the tilt servo), but the Beagleboard does seem to have enough performance for image processing.
Powerful union of a Beagleboard and Arduino to navigate using computer vision from a webcam
I’ve now made a pan-tilt mount for the webcam. Basically it’s the guts of a Playstation Eye webcam mounted to two home made aluminium brackets, driven by a mini and micro servo. Details of the construction are at http://mechomaniac.com/node/57
I saw some OpenCV pictures of code on your site. I love opencv - will you be sending the pictures to a computer? I don’t know many micro-controllers that can preform “much” meaningful processing on a image stream.
Thanks! They’re not Thanks! They’re not pretty, but seem to be functional at least. I considered getting some Lynxmotion brackets, but the cost and time to get them to Austraia wasn’t worth it for now.
I’m actually running OpenCV I’m actually running OpenCV on the Beagleboard itself. With 256Mb RAM and a 600MHz CPU it should be able to handle the image processing on-board, though I don’t think that OpenCV has been very well optimized for the ARM architecture. The Beagleboard also has a DSP core and some people are working on using that for accerlerating image processing tasks, so there’s a lot of potential.
Interesting - what benefits would using a beagleboard vs a mini/micro/pico/ atx ? I am not really familiar with ARM architecture, although I remember seeing it as one of the possible kernel builds when I recompile my kernel.
Initially I see $145 for the beagleboard vs $66 for a mini atx - Is the beagleboard mor catered to digitial & analog io? DSP Core? Digitial Signal Processing?
I found a link once where a group has optimized OpenCV to run 10 X faster on a playstation since it has hardware catered to graphics processing (Awesome!)
Very interested in seeing your progress.
I have been working on a java robot framework - with a JNA implementation (some very smart guy (Samuel Audet) wrote) to opencv. I found this just recently. Previously I was using JNI which has been a pain in the rear.
The Beagleboard has a number of advantages over a PC-based system:
much lower power (about 3W for the entire system)
Small size (and if the Beagleboard is too big, the same hardware is availible in a tiny package at http://gumstix.com/)
Direct access to IO ports (I2C, SPI, serial, GPIO etc)
The TI OMAP chip on the Beagleboard includes the ARM Cortex A8 core (also used in the latest mobile phones like the iPhone 3GS and Palm Pre), a graphics chip and the digital signal processor core.
Of course there are also a few issues:
cost (though compared to many ARM development board this is very cheap)
It all looks very interesting. Have you hacked into the array microphone? Does the driver have some API which allows localization of incoming sound signals? Is it just on two or four channels and you do a little disparity calculation/triangulation?
Here’s that link I was talking about… kindof clever I thought
Thanks for the OpenCV link - the performance gains are impressive. While the ARM core on the Beagle can’t approach the power of the Cell chip in the Playstation, it does have a vector floating point unit and I’m hoping that someone will come up with some optimizations to OpenCV to take full advantage.
I haven’t tested the array microphone yet. All the processing has to be done in software, I beleive that it’s just 4 channels of audio.
Nice! I guess this is the Nice! I guess this is the first robot I see using a Beagleboard!! It looks very promising! Keep it going, because I will look forward to see more progress!!
I’m still working on the I’m still working on the power source… For now, I’m using a 6V (4 * AA batteries) pack to drive the motors and servos, and a 12V 2AH NiMh pack for everything else. The NiMh pack is old though and seems to have lost too much capacity, so I may move to a 7.2V pack for everything. The electronics are run from a 5V switchmode DC to DC converter.
Beagle/Arduino I’ll have a Rev C3 BeagleBoard this week! I’m planning to use two Arduino type boards for some motor control and sensor processing, and the Beagle will be the master controller.
I just got my Rev C3 BeagleBoard from Sparkfun. I will also be using it as a master controller on a robot, either ASTRID or WALTER 2.0, along with at least two Arduino compatible boards connected via USB. I still have to get an SDHC compatible card reader/writer and a serial cable adapter for my BeageBoard. I already have a WiFi dongle I have used with a Samsung based ARM9 board, so it should work with the BeagleBoard also.
I’ll be following your development closely and perhaps we can share some code at some point. I still have a long way to go and a lot to learn about the BeagleBoard though.