Build a Robot V
As mentioned in the previous section, "Microcontrollers," infrared technology can be used for sending control programs to a robot. This same technology can also be used for two-way, real-time communications between robots and humans, and between bots. This capability for robots to send signals to each other opens up all sorts of possibilities for orchestrated actions and emergent behavior. For instance, robots can be made to form "swarms," moving in concert and exhibiting pack-like behavior. Synchronized robot dancing, anyone?
Outer Shell (Optional)
Many robots are nudists. Actually, they're worse than nudists-they go around with their guts, nerve bundles, muscles, and bones hangin' out there for all the world to see. For most robot builders, this is a practical matter. If a robot's not going to be subjected to the elements, live in a dirty garage, or have to ward off a frisky kitten (by the way, cats love to beat up on robots), most builders don't bother putting a skin on it. The ugly truth of robotics is that robots "enjoy" a lot of downtime, so it's also a convenience not having to remove screws and access panels every time a robot decides to stop working.
In situations where an outer shell is called for, that shell is made out of a variety of materials, depending on what it's protecting the robot from. In combat robotics, these skins are used as armor, so the strongest materials possible (relative to weight concerns) are used. This usually translates to Plexiglass, Lexan, diamond plate steel, titanium, and thick layers of carbon composite. For commercial robots, such as robotic pets like AIBO, and robotic domestics, such as robo-mowers and vacuums, molded plastics are preferred. These are strong enough to take light-to-medium levels of abuse meted out by kids and cat claws, as well as the soil and turmoil of daily living.
Robot Soul (Software)
Some roboticists, when detailing robot anatomies using human analogies, have playfully suggested that robots even have souls: their programming. It is certainly the programs running in most robots that bring them to life, that animate them. There is a dizzying array of programming environments and software tools for building robot brains. Some researchers and developers roll their own languages and software; others make use of existing and popular languages, such as Basic, Visual Basic, Java, C, and C++. Most popular microcontroller modules have programming tools available, such as Windows-type program editors and built-in compilers (for turning code into executable programs your robot can run). These tools can make programming a lot easier, especially for the novice. Popular microcontrollers also have active mailing lists, online discussion groups, and file servers where robot builders can talk about and exchange programs. The software is often frequently updated, with new features, squashed bugs, and so forth.
A Word About Spaghetti
So that's a rundown of the major subsystems found in most of today's robots. It might seem like a lot of information to absorb, and a lot of very different subsystems to have to consider, but much of it will become second nature as you get into robot building yourself.
We didn't even bother talking about all of the minor hardware such as screws, nuts, bolts, nylon fasteners, cable ties, the many different types of tires, and all of the support electronics. Oh, and the spaghetti. Lots and lots of spaghetti. What's spaghetti? Wire. Any self-respecting robot of any significant size is bound to have many feet (even miles) of wire and cable. This can actually be one of the most intimidating aspects of looking at, and trying to understand the construction of, a robot you didn't build yourself. It's hard to make heads or tails of all the robot's systems because it's all obscured by mounds of spaghetti. Amazingly, as you start working on robots, you should find those tangles of wire much less intimidating. Think of that Olive Garden growing behind your computer desk. Those hook-ups might appear horrifyingly complex to your grandmother, or some other casual observer, but to you, it's nothing more than an unsightly mess that you keep swearing to yourself you're going to organize and color-code one "free" weekend.
Want to see how well you can now identify robot components? Let's try a little test. Look at the following picture of Timbot (see Figure 4.14), a robot project being done at the OGI School of Science and Engineering in Beaverton, Oregon. As you examine the picture, see how many of these questions you're able to answer.
Meet Timbot, a robot being used at the OGI School of Science and Engineering to test out embedded systems software. How many robot subsystems can you identify?
Photo used with permission of Mark P. Jones, Dr. of Philosophy, Dept. of Computer Science & Engineering, OGI School of Science & Engineering, Oregon Health & Science University.
1. What type of robot would you categorize Timbot as?
2. What is the frame made out of?
3. What type of drive system does it likely use?
4. Can you see the battery (one of two, by the way)? Can you guess which type it is?
5. How many sensors can you see?
6. Any idea what that cylindrical shape on the front might be?
7. Got a guess as to where the main controller is?
8. And, lastly, what do you think that black mast in the center is for?
It should be obvious by Timbot's "casual" appearance that it's an experimental platform. It's a DARPA (Defense Advanced Research Projects Agency)-funded project to develop better real-time control applications for embedded systems.
The bot's chassis is actually a cannibalized remote-controlled "monster truck." The platform on top is plywood, which should have given you a clue to the experimental nature of the bot. Obviously, you can see that it's a four-wheeled vehicle, but I bet you rightly guessed that it has two drive wheels and two steerable front wheels.
If you know anything about R/C cars, you probably also correctly guessed that DC motors are at work. Did you figure out the battery? It might be hard to see from this image, but that's a 12-volt sealed lead acid (SLA) battery between Timbot's wheels. There's another one on the other side.
The sensors might have been a tough call. The cylindrical sensor on the front is a sonar range sensor.
A pan and tilt camera can be seen above it. What you can't really make out from this picture very clearly is the servo motor directly underneath the camera mount (which is connected on the other side by a rod that allows the camera to tilt), and another servo underneath the robot that provides for camera panning.
The large pile of circuit boards on the back of the plywood platform is Timbot's Pentium III computer (running the Linux operating system). The black mast behind the camera is the antenna for the on-board WiFi network connection. Unseen (behind the camera assembly) is a motor controller for the servos, and (behind the computer), a speed controller for the DC drive train. Also unseen underneath the bot is a three-sensor array for line-following navigation. If you'd like to learn more about Timbot, and see high-resolution images and movies of it in action, check out the Timbot Project Web site (www.cse.ogi.edu/~mpj/timbot/index.html).
The Absolute Minimum
Whew. Robots can be complicated creatures! As we began to explore them more deeply in this chapter, we dreamt up some categories to make it easier to keep them straight. Then we did a little robot dissecting, traipsing around in their innards and ooh-ing and ahh-ing over all of the cool components. Here are some chapter highlights:
- Robots can be muscled into five general categories: industrial manipulators humanoid robots, robo-critters, embedded robots, and development platforms.
- Bots can be broken down into a number of subsystems, and these subsystems are fairly consistent regardless of robot type. These systems are frame, actuators, drive train, power system, manipulators/end effectors, sensors, controllers, communications systems, outer shell, and software.
- One of our robot types (embedded robots) is a different animal than the other four types and therefore does not share a lot of the aforementioned subsystems.
We won't be discussing embedded bots too much in this book.
- Although subsystems are similar across four of the five robot types (manipulators, humanoids, robo-critters, and development platforms), the components-what those robots are actually built out of-and their designs vary greatly depending on the application for the robot and the environmental conditions under which it will live.
- Builders face a vicious cycle when designing robots. They desire structural integrity, durability, and plenty of power, but at a certain point, this costs increased weight. More weight means more power requirements (bigger motors, more batteries), which means more weight-which means more power. And 'round and 'round it goes. Part of robot building is knowing to quit while you're ahead.
The Absolute Beginner's Guide to Building Robots by Gareth Branwyn, ISBN-10: 0-78972971-7 is available from InformIT. Permission to reprint granted by Pearson Publshing.