BeagleBone Black project spotlight: BBot robot

By Tara Stratton

What’s 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 weekend—by 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? It’s 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.
“There’s 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 Molloy’s 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 robot’s 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 BBot’s 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
.