Note: This excerpt was adapted from the introduction to Wolf Donat’s new book, Make a Raspberry Pi-Controlled Robot, a step-by-step tutorial on indeed, building your own robot rover, fresh from Make: Books.
I like to call this robot a rover, as I tried to pattern it after NASA’s designs. Figure 1-1 shows the general outline of the finished rover. It’s not nearly as robust as NASA’s versions, of course, and you’ll notice that its four (not six) wheels don’t sit on their own independent shock absorbers, but the design is a proven one.
And speaking of wheels: while I would very much like to program my own anthropomorphic android, such as C-3PO, it’s a sad fact that the Raspberry Pi’s computing power is most likely not up to the task of controlling a bipedal droid. You may think it’s nothing special, but as it happens, getting a robot to not only balance on two legs, but also walk on them, is quite a challenge. The well-known ASIMO robot by Honda (Figure 1-2) required many years and many millions of dollars to finally be able to walk on its own.
To balance on two feet, a robot’s internal sensors must constantly measure where the robot’s center of gravity (COG) is, and then determine where the robot’s feet are, and then check to see that the COG is over at least one of the robot’s feet, preferably over a line between the robot’s feet, or at most, very slightly offset from that line (but not too far). If the robot’s COG is too far to one side, the robot’s brain must send the command to flex the leg on that side to tilt the robot ever so slightly in the other direction, bringing the COG to a more stable location, without going too far in the other direction. And if the robot is carrying something, all those values need to be recomputed on the fly.
So there are several advantages to using wheels. First, not having to balance means that the Pi’s computing power (and servo power) can be spared for other tasks, such as taking temperature samples or moving the robot arm. Second, depending on the type of wheels you use, a wheeled vehicle can go all sorts of places that a bipedal robot can’t. And third, wheels can also be cool—I refer you to R2-D2, the Mars Curiosity rover, and the Mars Exploration rovers (Spirit and Opportunity) for examples of pretty cool wheeled robots.
To increase the coolness factor to monster truck levels, I decided to go with oversized wheels; it’s common knowledge that almost any wheeled vehicle looks seven and a half times better with bigger tires. Figures 1-4 and 1-5 prove my point.
This brings up more design challenges, however. Larger wheels tend to be heavier, and it’s always—always—a good idea to keep your robot or rover as light as possible. A heavy robot is a power-hungry robot, and batteries and engines are heavy enough to begin with. Large wheels also have greater rolling resistance, though rolling resistance comes more into play at higher speeds and higher efficiencies than this rover is likely to experience.
My solution: I used the wheels from a Power Wheels vehicle. They’re large and impressive, but because they’re made of plastic, they hardly weigh anything. Of course, that led to further challenges, such as mounting those wheels to a non–Power Wheels axle, but as you’ll see, those issues were solved as well, often with a combination of screws, nuts, bolts, and generous applications of epoxy and cold-weld.
The final design, assuming you follow my step-by-step instructions, can be seen here:
Wolfram Donat is a graduate of the University of Alaska Anchorage, with a B.S. degree in Computer Engineering. Along with an interest in robotics, computer vision, and embedded systems, his general technological interests and Internet expertise serve to make him an extremely eclectic programmer. He specializes in C and C++, with additional skills in Java, Python, and C#/.NET. He is the author of several books and has received funding from NASA for his work in autonomous submersibles. Get started building your own robot rover today!