Let's Make Robots!

Beagleboard - Arduino hybrid robot

Powerful union of a Beagleboard and Arduino to navigate using computer vision from a webcam
P1010480.jpg132.26 KB

The Beagle-Arduino robot will use a Beagleboard for high-level robot functions:
  • image processing
  • artificial intelligence
  • speech synthesis
  • voice recognition
  • internet connectivity
And an Arduino for low-level functions:
  • motor / servo control
  • sensor input & output
  • battery monitoring

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.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
keep us posted, this looks like it has a lot of potential.
Does the mobile robot really need the internet connectivity?

While a connection to the internet isn't strictly necessary, a wireless network connection is very useful.  It allows:

  • remote uploading and debugging of software
  • manual override (remote control)
  • image capture or video streaming from the webcam for surveillance
  • offloading computationally demanding tasks like speech recognition to a more powerful computer

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

 Beagleboard - Arduino robot webcam pan-tilt mount





Nice work on the home made servo brackets.
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 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.

Great work.

Keep it up !

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.


keep up the good work !


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)
  • Linux support is somewhat bleeding-edge