Santa’s elves were busy over the holidays giving Pi Robot a tune-up in preparation for the New Year. It is time to finally put Pi to work around the house but first a few improvements to Pi’s overall design were necessary.
- First, Pi’s old rectangular base was too big and boxy to get in and out of tight spaces so something smaller and rounder would be required.
- Second, Pi’s arms (or arm) would need some way to reach objects as low as the ground and as high as a table top or counter. While people tend to use their flexible knees or torso to adjust height, Pi has neither.
- Third, the design should be as modular as possible so that, for example, the base could be disconnected from the rest of the robot and run on its own for simple navigation experiments.
- Finally, the whole system would have to run off a single battery with as much run time between recharges as possible.
Having experimented with the Willow Garage TurtleBot lately, the use of
stackable circular plates seemed like a good design for the base.
Unfortunately, the iRobot Create rides too close to the ground to
function as a true service robot–for one thing, it cannot get over
carpet thresholds or throw rugs. So I would have to use a new drive
train consisting of better motors, wheels and controller.
Fortunately, the folks at the George Tech Healthcare Robotics Lab
already solved the arm problem: mount it on a vertical track so that the
whole arm can move up and down as shown below:
Fellow robot club member and Willow Garage software engineer Michael
Ferguson recognized the genius of this design and built a less
expensive version he calls Maxwell, shown below:
Mike brought Maxwell to our latest club meeting and I had a chance
to pick his brain regarding design details. Mike uses a piece of
T-slot extruded aluminum as the vertical track and a 20″ linear motor
to move the arm up and down. He also uses some top-of-the-line
Dynamixel servos for the arm and an Asus Xtion Pro Live 3D camera
instead of the Kinect. (The Asus has the nice feature of running solely
off a USB port without the need for an additional 12V power supply
like the Kinect.) Inspired by Mike’s work, and with some very helpful feedback from fellow
club members on the Home Brew Robotics forum, I fired up Google
Sketchup, a 3D drawing program, and put together a similar design
for Pi Robot shown here:
As you can see, the result is a hybrid of Maxwell and the
TurtleBot. After collecting all the needed parts, I grabbed a hack saw
and power drill and five days later, Pi was reborn in the form shown
The new Pi Robot does not yet have the linear motor to move the arm up
and down and the weight distribution will have to be modified for the
final version but it’s a good start. The arm is the standard TurtleBot
arm using low end AX12 servos. Even so, you can see that it can
handle the weight of a fairly hefty wine glass. The pictures below show the setup inside the first and second levels:
On the lower base layer (upper picture), the circular device at the top (front of the base) is a Hokuyo URG-04LX-UG01
scanning laser rangefinder which is tucked away out of harm’s
way. The big black and white rectangular object is a 12V 10000
mAh LiFePO4 battery (obtained from the local Fry’s Electronics) which
weighs about half as much as a lead acid battery of the same
capacity. Also on this level is a DC-DC converted with 12V, 5V
and 3.3V outputs and a pair of Phidgets sensors for measuring overall
current and battery voltage.
On the second level (lower picture), the larger green circuit board is a Serializer
microcontroller formerly made by the Robotics Connection. (This board is now called the Element
and is sold by CMRobot.) At the moment, the Serializer is only being used to monitor overall battery voltage
and current from the Phidgets sensors. However, it can handle a
wide range of other sensors including IR, Sonar, temperature, compass,
etc. It also has a dual H-bridge motor controller (up to 2A per
motor), quadrature encoder headers, and PID control programmed into
the firmware. Finally, there is support for PWM style servos (but not
Dynamixels). A while back I released a ROS package for the Serializer that provides access to most of the sensor types as well as PID control for a differential drive robot.
the Serializer in the picture is a newer prototype of the ArbotiX
controller from Vanadium Labs with a Polulu 30A motor driver mounted on top of it. Pi uses a pair of Pololu 100:1 220 oz-in 100 RPM drive motors mounted to 5″ BaneBots wheels with a fairly
soft rubber tire which works well on carpet and hard surfaces. As you can see, it’s a little
cramped in there so the final design will use slightly larger plates.
Total weight of the robot is 17.4 lbs (7.9 kg).
The brain of the robot is usually a laptop sitting on the top plate
or between the top two plates. Alternately, a Zotac dual core
mini-ITX that sits on the
second plate and runs off the 12V battery.