.KEYWORD robot
.FLYINGHEAD REALLY MOBILE COMPUTING
.TITLE Build your own Palm powered robot
.FEATURE
.SPOTLIGHT figalt cover.gif
.SUMMARY Robot mania is sweeping the nation this year, as robot toys like Aibo are finding their way onto every kid’s wish list. For researchers at the Robotics Institute of Carnegie Mellon University, however, robots aren’t mere child’s play. A research team has designed a fascinating new robot with an off-the-shelf Palm device at its core. In this PalmPower exclusive, we reveal how you too can build and program a Palm powered robot of your very own.
.AUTHOR Greg Reshko, Matt Mason, and Illah Nourbakhsh
The PPRK (PalmPilot Robot Kit) is an entry into the world of robotics for those of you who have always wanted to build and program your own robot. We have designed a kit that uses nothing more fancy than off-the-shelf parts and requires little electronics or mechanical aptitude for assembly. As a result, the PPRK, shown in Figure A, is a gentle introduction into the world of robotics. And it is just so darned cool.
.FIGPAIR A The PalmPilot Robot Kit is at home on a table or desk.
The Palm computer makes a handy robot controller: it packs a great deal of computational power in a small form factor, runs on batteries, and communicates with external devices through a serial port (or USB in later models). Best of all, a Palm device’s display provides an excellent graphical user interface. In robotics, debugging is even more of a challenge than with ordinary computer programming. The ability of a robot to show you such information as its sensor values and its current state is crucial, and that’s why the Palm device screen is truly valuable.
Our robot empowers a Palm unit to move about on any flat surface and sense its environment. The configuration of three omni-wheels, pictured in Figure B, is the key to robot’s motion.
.FIGPAIR B The PPRK wheels can slide in any direction.
The wheel design allows the robot to move in any direction, turn in place, or do both at once. Thus, the robot moves fluidly, spinning and gliding to align itself with flat surfaces like a nearby wall at some desired distance.
The kit also has three infrared optical range sensors, each positioned between a pair of wheels. These sensors, shown in Figure C, measure straight-line distance from the robot out to the closest obstacle in each direction and provide reliable range readings between 10 centimeters and 1 meter away.
.FIGPAIR C These sensors measures distance using an infrared beam and triangulation.
Surprisingly, even though these sensors use infrared light, they continue to work reasonably well even in a sunlit room.
.H1 Building the PPRK
On our Web page, at http://www.cs.cmu.edu/~pprk/, we’ve documented complete instructions for building the PPRK as well as open source software for controlling its motion. A parts page identifies sources for all eleven parts required to build the PPRK. Step-by-step instructions and photographs document the process of putting it all together, from gluing the wheels and servo discs together to mounting the wheels, sensors, and Palm device cable on the acrylic chassis. The most challenging part of assembly, by far, is a soldering step. You need to attach the relevant lines from a Palm HotSync cable to the serial port of the SV203 microprocessor. Happily, there is an alternative. Acroname, Inc. (at http://www.acroname.com) has licensed our PPRK and is selling a fast-build kit that comes partially assembled. You can find it at http://www.acroname.com/robotics/info/PPRK/PPRK.html. With their kit, you can finish the fast-build PPRK, pictured in Figure D, in about one hour using just a screwdriver.
.FIGPAIR D The fast-build PPRK uses a stamped aluminum chassis.
One critical ingredient of the PPRK is the SV203 module. This tiny board, made by Pontech, Inc. (at http://www.pontech.com), communicates with any processor using a serial port, providing up to five analog inputs (three of which we use for the range sensors) and up to eight hobby servos (three of which are used to control the wheels). We imagine that many new roboticists, after building a PPRK, will make use of the SV203’s full capabilities to create more intricate and customized robots. We’re waiting for pictures from the first person to build a PPRK and attach a robot finger to the chassis, so that it can actually type on a desktop computer keyboard. Another interesting, if twisted, idea is to design a PPRK that can position itself under a stylus hanging from the ceiling and write on itself. We leave that as an exercise to the reader with an overwhelming excess of free time.
.H1 I built one; now what?
Once you’ve built a PPRK, what next? The fact that the robot has sensors means that it can do much more than just execute canned motions. You can program it using our CodeWarrior interface or any of several other Palm development environments to respond to sensor values in intelligent ways. As examples, our downloadable software includes a wandering program that moves omni-directionally away from the closest obstacle. Coral the robot completely, and it will begin rotating in place, scanning with its range sensors for the first opening through which to plot its escape.
We also provide a left-wall-following program. Like a rat in a maze, the PPRK will explore its environment, always keeping a wall on its left when possible. One undergraduate visitor from the University of Michigan even created navigation architecture for PPRK. As it left-wall-follows in its environment, the robot keeps track of concave and convex corners that it negotiates. By naming these corners and pointing to them on the screen, you can ask the robot to return to an earlier location. This project, although definitely a work in progress, is available for download as well and demonstrates the potential that this platform has as a serious robotics research test-bed.
Once you’ve used our existing programs, you’ll be ready to program the PalmPilot Robot Kit yourself. The process is simple: create robot software on a PC intended for download to the Palm device. Once the software is complete, you can compile it and even run a Palm simulation to check your graphical user interface. Finally, you can download your new application to the Palm device and execute it. Writing code for the PalmPilot Robot Kit is just like writing code for Palm applications in general; the difference is only that the code you write for the robot happens to communicate with the robot’s SV203, motors, and sensors via the Palm device’s serial port.
Specifically, we use the Metrowerks’ CodeWarrior environment to write C++ code for PPRK. CodeWarrior is particularly useful for debugging and for building effective user interfaces for the robot. But you can also use a variety of other compilers designed for the Palm device, including the free GNU C compiler. Figure E shows a screen shot of the Metrowerks environment during program development.
.FIGPAIR E Here the Metrowerks environment can be seen during program development.
As you can see, the code can be directly manipulated, and the effect of graphics routines on the Palm device’s screen can also be inspected. Figure F shows the specific Palm GUI that we use for the sample robotics programs available for your download.
.FIG F Here’s the specific Palm GUI used for the sample robotics programs.
There are more potential applications than we can possibly list. You can imagine everything from a new Palm-based alarm "clock" that not only beeps but nudges its owner, to a gaggle of Palm robots communicating using their infrared ports and behaving like a mound of termites. The possibilities are, as with software development, endless.
Our hope is that a community of Palm roboticists will emerge, sharing software as well as physical modifications of their Palm robots with one-another. Robotics is enchanting because it’s not just on the screen of a computer. Real robots have a physical presence because they move in the physical world. A bug in your program doesn’t necessarily require just a reset. Your bug may actually force you to dive for your robot as it crashes to the floor or chases the cat. Robots are engaging. Palm devices are cool in their own right as well. Marrying these two technologies together has real potential.
.BEGIN_SIDEBAR
.H1 Product availability and resources
For more information on the PalmPilot Robot Kit, visit http://www.cs.cmu.edu/~pprk/.
For more information on Acroname’s PPRK fast-build kit, visit http://www.acroname.com/robotics/info/PPRK/PPRK.html.
For more information on Pontech, Inc., visit http://www.pontech.com.
For more information on Metrowerks’ CodeWarrior, visit http://www.metrowerks.com.
For more information about Palm computers, visit http://www.palm.com.
.H1 Bulk reprints
Bulk reprints of this article (in quantities of 100 or more) are available for a fee from Reprint Services, a ZATZ business partner. Contact them at reprints@zatz.com or by calling 1-800-217-7874.
.END_SIDEBAR
.BIO Greg Reshko is an undergraduate at Carnegie Mellon University majoring in Computer Science. Matt Mason and Illah Nourbakhsh are professors at the Robotics Institute of Carnegie Mellon University. You can reach them at pprk@cs.cmu.edu.
.DISCUSS http://powerboards.zatz.com/cgi-bin/webx?50@@.ee6ec9c


