Simple BeagleBoard-xM Based Robot

In my quest to start building smarter robots, I wanted to explore some concepts using parts I had lying around. I bought a BeagleBoard-xM  over a year ago for this very purpose but never got to it. When I got my CNC router though, I figured this would be the perfect first project.

At minimum I wanted this robot to have a camera (for OpenCV experiments), a “2-wheel plus caster” configuration similar to my cartographer robot, and a computer capable of running OpenCV (plus any necessary connections for controlling the motors). With the BeagleBoard-xM, I get 4 USB ports, a RS-232 port, a GPIO header, and a whole bunch of other stuff.

I went hunting through my collection of robotics parts for things I could use and ended up finding some good stuff I bought throughout the years but never used:

Because these things all had nice mounting holes, I didn’t have to make any weird brackets. I bought some sheets of HDPE from Amazon and designed a simple 2-layer chassis to cut on the router.

A few pictures to show the process:

Just finished cutting a prototype robot chassis

Just finished cutting a prototype robot chassis

Chassis after cutting on router

Chassis after cutting on router

Pieces punched out

Pieces punched out

Beaglebot prototype

Beaglebot prototype

From the side showing BeagleBoard-xM

From the side showing BeagleBoard-xM

I had to make a wire harness with a built in regulator to bring the 7.2v from the NiCd battery tamiya connector down to 5v at a barrel jack for the BeagleBoard-xM. The harness also provides 7.2v through the proper power connector for the servos.

For now, I just have a simple python socket server running on the BeagleBoard-xM which sends any data it receives directly to the servo controller. This allows a Processing program running on a PC to issue commands to the servo controller directly so that the robot can be driven around. The video from the camera is streamed over WiFi using Motion, which gives the user the ability to see. In the future this robot will be my testbed for object tracking experiments.

Advertisements

Posted on January 14, 2013, in Robotics. Bookmark the permalink. 5 Comments.

  1. Nice robot!
    What camera are you using?
    We are also building 3D-printed BBxM-based robot: http://veterobot.org . In particular, you might be intested to take a look at OpenCV-based example http://veterobot.org/demos.html (Unit 5).
    Everything is opensourse, so maybe you will find something useful also for your project.

    • Hello Andrey,
      I’m using a Kinobo Origami because it was easy to modify the mount, it was cheap, and it looked nice.
      Your robot looks very well designed and constructed! I’ve been looking into 3D printers lately and it’s inspiring to see them used like this.
      I’m always looking for OpenCV examples, especially on embedded platforms so I really appreciate the code you have available.
      thanks for looking and sharing your project!

      • Thank you Justin very much for the information. Could you please tell me whether this camera supports UYVY color-space? The reasons why I am interesting is that we are using TI’s DSP-axelerated h264 video encoder to encode real-time video from camera and this encoder supporsts only UYVY as input. Otherwise there is a need to convert color-space which is rather expensive step.

      • The only color space this camera appears to support (according to Yawcam) is YUY2 which appears to be an expression of UYVY (also called Y’UV422 I think?). So it’s just a matter of how the YUV data is packaged. This means you shouldn’t have to do any RGB to YUV conversions though which can be expensive.

      • Thanks Justin for checking it out. YUY2 (aka UYVY) sounds good. If possible I would avoid even conversion between different YUV formats. It seams like with this camera it might work well.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: