By Tara Stratton
Whats your perfect vacation? Mine involves sitting out by the pool
under the sun as people deliver me ice-cold drinks. Andy Gikling
seems to have a similar dream, and he figured out a way to live the
good life every weekendby developing the BBot robot!
The BBot is an open source, remote-controlled drink serving robot.
This cooler camel puts a cooler on a mini trailer and delivers
drinks to people at the pool. As Andy put it, Why not have a robot
go get the drinks? Its 2013 people! And with the ability to haul
30-40 lbs, BBot keeps the drinks flowing. This robot does more than
just deliver drinks. It can talk to you, see the world around it and
even display drink prices and beer advertisements on the screen. One
very unique feature is that when people try to steal drinks, the
robot kicks on its absurdly loud alarm system.
Andy used 900 MHz XBee radios to transport remote control data from
the Microsoft .NET GUI to BeagleBone Black. XBee connectivity
enables very long range control, making it possible to order drinks
from miles away. The XBee radios were a treat to finally work with,
said Andy. They are so cool and simple to use.
The BeagleBone Black computer is the brain of the device. It parses
the data and routes it to the various control systems on the robot.
Theres nothing like it with as much computing power, flexibility,
and size of active community at the $45 price point, said Andy.
I needed the vast number if I/O found on BeagleBone Black for my
robot. I love how small it is too! It also provided Andy with a
great way to learn more about Linux and C++. Although BeagleBone
Black is rather new, there are an amazing number of sources on the
Internet that show you how to do common things, said Andy. He
specifically credited
Derek Molloys videos for helping him go from
zero to hero with some of the software development challenges he
faced.
Andy stacked a ValentFX FPGA cape
on top of BeagleBone Black to
provide a robust means of low-level hardware interfacing.
Andy coded the names of the classes and variables to be
anthropomorphic. For example, rather than calling the code that runs
the robots wheels Motors.cpp or Drives.cpp, he named them
things like Voice.cpp and Legs.cpp. Functions might be Walk
int speed ); instead of Drive ( int speed );. The GUI follows the
same trend, with the main window user controls named things like
eye ball, legs, and voice. Each control communicates with one
of BBots systems. Another cool feature of the GUI is that the user
can connect it to a Leap Motion controller so that the robot can be
driven by a simple wave of the hand above the sensor!
Andy says that the robot has a fairly simple mechanical design. The
main chasse consists of some simple Plexiglas disks stacked on top
of each other with threaded steel rods, nuts and washers. Everything
for the mechanical assembly can be purchased at a hardware store.
It seems like BBot already has it all, but Andy has plans to keep
adding features to the platform. He would like to add a precision
pan/tilt camera system and incorporate a tracking algorithm called
TLD so that the robot can follow its user around. He is also
contemplating having the main data, video and audio link run
through the cell network so he can approach people on the street and
offer them a free soda from a friendly and seemingly autonomous
robot!
Want your own BBot? (We do too!) Working source code, photos, video
and documentation can be found at
https://github.com/andygikling/BBot.