Pi Robot Rebuilds for 2012

KinectBot(Click here for the previous Pi Robot hardware design.)

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:

EL-E Robot
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:

Mawell image

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:

Pi Robot Version 2

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 below:

Pi Robot 2012

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:

Base Level 0

Base Level 1

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.

Below 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.