Embedding Linux in a Mobile Robot
Feb 22, 2000 — by LinuxDevices Staff — from the LinuxDevices Archive — 4 viewsEmbedded systems frequently incorporate highly customized microcomputers, but our company's goal was to build a robot from commercial-off-the-shelf (COTS) embedded components. We felt that this approach would maximize the R&D capabilities of our own team and minimize the cost of our product. COTS components were one of the efficiencies that allowed us to introduce Pioneer 1 in 1995 for prices 50% lower than our nearest competitors' robots — and provide more features, too.
What do mobile robots do?
You may wonder — as most people do — exactly what it is that mobile robots do. After all, 3CPO “robotic butlers” only exist in the minds of folks like George Lucas. What exactly is it that mobile robots can do?. Vacuum? Do dishes? Mow the lawn? Walk the dog?
Well, don't fire your cleaning service just yet. So far, mobile robots don't do a whole heckuva lot. They don't even vacuum at rates anyone but the Gates estate can afford. But the day of Ray Bradbury-like vacuuming robotic mice isn't so far off. NASA and DARPA have taken over support of many of the activities of the artificial intelligence and robotics R&D community, building a wealth of new knowledge that is hastening the day when remote handling and reconnaissance robots form the front line in space and military operations.
Robot love
So our new, affordable Pioneer found a ready home. Engineers looking for prototyping platforms or a COTS base for robotic applications found the Pioneer appealing. The artificial intelligence research community adopted it as the “VW” of mobile robotics research.
Because the Pioneer jump-started projects with built-in libraries of obstacle avoidance and other navigation basics, it helped move along the state of robotics research to a higher plane. Instead of having to begin projects by raising tens of thousands in grant money or by building their own robots, researchers could now focus on the true topic of their research: robotic behaviors or applications.
Pioneers have dominated American Association for Artificial Intelligence annual contests since 1997. They took the World RoboCup Soccer Championship in 1998.
A brain implant?
But even these winners made clear the Pioneer 1's shortcomings. All six Pioneer teams at the World RoboCup Soccer Championships in 1998 had strapped computers on or around their robots. One team actually sawed their Pioneer 1's in two in order to fit computers inside! The results proved their wisdom; Pioneer teams won both first and second place. And if we didn't have proof enough, when we made the rounds of team members asking them for a wish list for the next generation of Pioneer, onboard computing was at the top of the list.
Why were they so desperate to have the computers onboard our robots, if they have to program them from the desktop anyway? There were two main reasons.
- First, in a communications-jammed environment, any wireless link is a weak link. In any contest, demo or even most applications environments, available bandwidths are jammed with competing signals. At 900 MHz cell phones compete. At 410 and 433, you need FCC approval and local TV stations may interfere. Audio-video transmitter-receivers and other high-throughput applications tend to slice up the 2.4 – 2.83 GHz bandwidth. That leaves little free space, even for radio Ethernet devices that employ frequency-hopping to minimize interference. The less expensive 900 MHz radio modems used by many university researchers were hopelessly overwhelmed. So having robots that could operate autonomously for DARPA grant demonstrations, exhibitions, contests and in applications situations was crucial.
- Secondly, the researchers and engineers wanted onboard computing so they could analyze vision data in nearly real time. Even Ethernet data links move far too slowly to handle masses of visual information. But the PCI bus on an embedded computer is another matter! The researchers processing images for shape identification and navigation purposes could now use our system plug-n-play.
Penguins onboard!
The availability of Linux drivers became another critical requirement. Linux is important to our robots for several reasons. One key consideration is that the AI community prefers Unix-like OSes. Another important advantage of Linux has to do with the fact that robots — unlike most computers — keep moving even while you're trying to debug them!
One solution to this dilemma is to run the embedded computer as an X Windows terminal under Linux from an off-board (radio-Ethernet linked) computer during the software development process. Now this can also be done under Windows with Timbuktu, but, being integrated and free, X Windows is the preferred solution among academics. Without some such capability, programmers have to tether and dolly the robot, watching screen and wheel motions to debug. Or, they can plug a monitor and keyboard into the robot's control panel and follow it around. Obviously, terminal emulation saves shoe leather, tangled cables, and strangled pets!
Getting tough
We began our search for an embedded computer by compiling two lists, a “requirements list” and a “wish list.”
- Requirements list:
- Commercial off-the-shelf (COTS) single-board computer
- Small form factor
- PCI bus expansion
- Ethernet expansion
- Full Linux support, including all required drivers
- Wide-availability of compatible COTS products for I/O expansion, sound, video capture, etc.
- Reliable supplier
Wish list:
- Low power draw and correspondingly low heat generation
- Rugged enough for mobile environments
- High CPU speed
- Good onboard I/O capabilities
- Expandability
- Modest price
We settled first on the “EBX” single-board computer (SBC) form-factor, which includes a combination PCI/ISA expansion bus called PC/104-Plus, as our desired SBC configuration. after Reviewing the available COTS products, we Ampro Little Board/P5e (LB/P5e) quickly jumped to the forefront because it appeared to meet all of our “requirements” and most of our “wish-list” desires.
In addition to being Linux compatible, the LB/P5e board also offered reasonable speeds, excellent I/O and expandability, and a reasonable cost. The only feature we failed to find, at that point, was low power draw and low heat. Instead, we decided to do our best to accommodate that shortcoming through careful power management design and increased battery capacity.
Robotics designers always try to minimize space, because the more space inside the robot, the more weight in the robot's case. The more weight in the case, the larger motors and the more batteries required — which, in turn, increases the weight, requiring larger motors and more batteries . . . You see the infinite loop here?
Decisions, decisions, . . .
We began the new design of our indoor robot for wheelchair-accessible terrain, the Pioneer 2-DX. A block diagram of the robot's internal electronics architecture appears here.
Deciding where to situate the embedded computer within the robot was a real challenge. Where do you put the board, so users can have access to it? How does it integrate with the rest of the robot electronics? We wanted to allow as many PC/104 expansion options as possible. This led to the decision to use a 2.25-inch hard drive even though it was more expensive than a standard 3.5-inch. We would need the extra space to shock-mount the drive.
The Ampro LB/P5e itself was easy enough to cable to for power and to connect one of its four serial ports to our robot's internal microcontroller. More difficult, was the decision of which of the many capabilities of the SBC to bring to the control panel on the robot's exterior. We finally decided to bring out the signals for a serial mouse, VGA monitor, and Ethernet, and to provide an external reset button.
All of these issues involved the development of many alternative solutions and ultimately choosing the best “set” of solutions — which often resulted in some compromises. As an example, we looked at numerous locations for the hard drive and ultimately chose to mount it in the robot's nose, which cost us one unit of space for PC/104 expansion, but which still left us room for five.
Though we didn't know it at the time, the solution to one of our compromises — power draw — was just around the corner. Ampro's new Little Board/P5x (LB/P5x) SBC based on the Intel mobile Pentium (“Tillamook”) CPU, would soon solve that problem. Not only that, the LB/P5x also improved our robot's vision processing capabilities as well. On the LB/P5e, the best image transfer rates we could get from the Imagenation PC/104-Plus framegrabber module was 30 frames per second (fps) using 16-bit color. On the LB/P5x, we could now use 32-bit color at 30 fps or better, and with faster processor speeds. Now our vision researchers could really cook!
Next came the process of adapting the architecture to our all-terrain model, the Pioneer 2-AT. Despite the fact that the 2-AT was larger, packing in its electronics turned out to be a greater challenge. All the additional space, and more, was allocated to its four larger motors and belt drive system. We reined in our naturally tendency to increase the robot's size even more, though, because we knew battery life was going to be a major issue with a platform this powerful. Indeed, it was not long after we introduced the 2-AT, and people began packing them with DGPS and laser systems, that we added the BatPack to double its power.
Basking in our success
The new generation of Pioneer 2's designed by Kurt Konolige and our engineering staff, were an immediate hit. Because we used a COTS computer, our R&D costs were low so we didn't have to raise prices to recoup our development expenses. In fact, thanks to improvements in our manufacturing processes, we were actually able to introduce the new base platforms at a price below that of the Pioneer 1. Our customers have expressed great satisfaction with our product and — even more convincingly — are placing second orders just months after their first purchases, so we feel the choices we made for Pioneer 2 were the right ones.
————————————————————————–
ActivMedia Robotics, LLC is a robotics manufacturer, systems integrator, and productizer for affordable, useable intelligent mobile robots. The company's Pioneer intelligent mobile robot is a leading platform for education, research, prototyping, exhibits, and plug-n-play applications. For further information, visit the ActivMedia website, at www.activrobots.com.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.