|
|
A Robot in Every Home
The leader of the PC revolution predicts that the next hot field will be robotics
By?Bill Gates
Imagine being present at the birth of a new industry. It is an industrybased on groundbreaking new technologies, wherein a handful ofwell-established corporations sell highly specialized devices forbusiness use and a fast-growing number of start-up companies produceinnovative toys, gadgets for hobbyists and other interesting nicheproducts. But it is also a highly fragmented industry with few commonstandards or platforms. Projects are complex, progress is slow, andpractical applications are relatively rare. In fact, for all theexcitement and promise, no one can say with any certainty when--or evenif--this industry will achieve critical mass. If it does, though, itmay well change the world.Of course, the paragraph above could be a description of thecomputer industry during the mid-1970s, around the time that Paul Allenand I launched Microsoft. Back then, big, expensive mainframe computersran the back-office operations for major companies, governmentaldepartments and other institutions. Researchers at leading universitiesand industrial laboratories were creating the basic building blocksthat would make the information age possible. Intel had just introducedthe 8080 microprocessor, and Atari was selling the popular electronicgame Pong. At homegrown computer clubs, enthusiasts struggled to figureout exactly what this new technology was good for.
But what I really have in mind is something much more contemporary: theemergence of the robotics industry, which is developing in much thesame way that the computer business did 30 years ago. Think of themanufacturing robots currently used on automobile assembly lines as theequivalent of yesterday's mainframes. The industry's niche productsinclude robotic arms that perform surgery, surveillance robots deployedin Iraq and Afghanistan that dispose of roadside bombs, and domesticrobots that vacuum the floor. Electronics companies have made robotictoys that can imitate people or dogs or dinosaurs, and hobbyists areanxious to get their hands on the latest version of the Lego roboticssystem.
Meanwhile some of the world's best minds are trying to solvethe toughest problems of robotics, such as visual recognition,navigation and machine learning. And they are succeeding. At the 2004Defense Advanced Research Projects Agency (DARPA) Grand Challenge, acompetition to produce the first robotic vehicle capable of navigatingautonomously over a rugged 142-mile course through the Mojave Desert,the top competitor managed to travel just 7.4 miles before breakingdown. In 2005, though, five vehicles covered the complete distance, andthe race's winner did it at an average speed of 19.1 miles an hour. (Inanother intriguing parallel between the robotics and computerindustries, DARPA also funded the work that led to the creation ofArpanet, the precursor to the Internet.)
What is more, the challenges facing the robotics industry aresimilar to those we tackled in computing three decades ago. Roboticscompanies have no standard operating software that could allow popularapplication programs to run in a variety of devices. Thestandardization of robotic processors and other hardware is limited,and very little of the programming code used in one machine can beapplied to another. Whenever somebody wants to build a new robot, theyusually have to start from square one.
Despite these difficulties, when I talk to people involved inrobotics--from university researchers to entrepreneurs, hobbyists andhigh school students--the level of excitement and expectation remindsme so much of that time when Paul Allen and I looked at the convergenceof new technologies and dreamed of the day when a computer would be onevery desk and in every home. And as I look at the trends that are nowstarting to converge, I can envision a future in which robotic deviceswill become a nearly ubiquitous part of our day-to-day lives. I believethat technologies such as distributed computing, voice and visualrecognition, and wireless broadband connectivity will open the door toa new generation of autonomous devices that enable computers to performtasks in the physical world on our behalf. We may be on the verge of anew era, when the PC will get up off the desktop and allow us to see,hear, touch and manipulate objects in places where we are notphysically present.
From Science Fiction to Reality
The word "robot" was popularized in 1921 by Czech play?wright KarelCapek, but people have envisioned creating robotlike devices forthousands of years. In Greek and Roman mythology, the gods of metalworkbuilt mechanical servants made from gold. In the first century A.D.,Heron of Alexandria--the great engineer credited with inventing thefirst steam engine--designed intriguing automatons, including one saidto have the ability to talk. Leonardo da Vinci's 1495 sketch of amechanical knight, which could sit up and move its arms and legs, isconsidered to be the first plan for a humanoid robot.
Over the past century, anthropomorphic machines have becomefamiliar figures in popular culture through books such as IsaacAsimov's I, Robot, movies such as Star Wars and television shows such as Star Trek.The popularity of robots in fiction indicates that people are receptiveto the idea that these machines will one day walk among us as helpersand even as companions. Nevertheless, although robots play a vital rolein industries such as automobile manufacturing--where there is aboutone robot for every 10 workers--the fact is that we have a long way togo before real robots catch up with their science-fiction counterparts.
One reason for this gap is that it has been much harder thanexpected to enable computers and robots to sense their surroundingenvironment and to react quickly and accurately. It has provedextremely difficult to give robots the capabilities that humans takefor granted--for example, the abilities to orient themselves withrespect to the objects in a room, to respond to sounds and interpretspeech, and to grasp objects of varying sizes, textures and fragility.Even something as simple as telling the difference between an open doorand a window can be devilishly tricky for a robot.
But researchers are starting to find the answers. One trendthat has helped them is the increasing availability of tremendousamounts of computer power. One megahertz of processing power, whichcost more than $7,000 in 1970, can now be purchased for just pennies.The price of a megabit of storage has seen a similar decline. Theaccess to cheap computing power has permitted scientists to work onmany of the hard problems that are fundamental to making robotspractical. Today, for example, voice-recognition programs can identifywords quite well, but a far greater challenge will be building machinesthat can understand what those words mean in context. As computingcapacity continues to expand, robot designers will have the processingpower they need to tackle issues of ever greater complexity.
Another barrier to the development of robots has been the highcost of hardware, such as sensors that enable a robot to determine thedistance to an object as well as motors and servos that allow the robotto manipulate an object with both strength and delicacy. But prices aredropping fast. Laser range finders that are used in robotics to measuredistance with precision cost about $10,000 a few years ago; today theycan be purchased for about $2,000. And new, more accurate sensors basedon ultrawideband radar are available for even less.
Now robot builders can also add Global Positioning Systemchips, video cameras, array microphones (which are better thanconventional microphones at distinguishing a voice from backgroundnoise) and a host of additional sensors for a reasonable expense. Theresulting enhancement of capabilities, combined with expandedprocessing power and storage, allows today's robots to do things suchas vacuum a room or help to defuse a roadside bomb--tasks that wouldhave been impossible for commercially produced machines just a fewyears ago.
A BASIC Approach
In february 2004 I visited a number ofleading universities, including Carnegie Mellon University, theMassachusetts Institute of Technology, Harvard University, CornellUniversity and the University of Illinois, to talk about the powerfulrole that computers can play in solving some of society's most pressingproblems. My goal was to help students understand how exciting andimportant computer science can be, and I hoped to encourage a few ofthem to think about careers in technology. At each university, afterdelivering my speech, I had the opportunity to get a firsthand look atsome of the most interesting research projects in the school's computerscience department. Almost without exception, I was shown at least oneproject that involved robotics.
At that time, my colleagues at Microsoft were also hearing from peoplein academia and at commercial robotics firms who wondered if ourcompany was doing any work in robotics that might help them with theirown development efforts. We were not, so we decided to take a closerlook. I asked Tandy Trower, a member of my strategic staff and a25-year Microsoft veteran, to go on an extended fact-finding missionand to speak with people across the robotics community. What he foundwas universal enthusiasm for the potential of robotics, along with anindustry-wide desire for tools that would make development easier."Many see the robotics industry at a technological turning point wherea move to PC architecture makes more and more sense," Tandy wrote inhis report to me after his fact-finding mission. "As Red Whittaker,leader of [Carnegie Mellon's] entry in the DARPA Grand Challenge,recently indicated, the hardware capability is mostly there; now theissue is getting the software right."
Back in the early days of the personal computer, we realizedthat we needed an ingredient that would allow all of the pioneeringwork to achieve critical mass, to coalesce into a real industry capableof producing truly useful products on a commercial scale. What wasneeded, it turned out, was Microsoft BASIC. When we created thisprogramming language in the 1970s, we provided the common foundationthat enabled programs developed for one set of hardware to run onanother. BASIC also made computer programming much easier, whichbrought more and more people into the industry. Although a great manyindividuals made essential contributions to the development of thepersonal computer, Microsoft BASIC was one of the key catalysts for thesoftware and hardware innovations that made the PC revolution possible.
After reading Tandy's report, it seemed clear to me that beforethe robotics industry could make the same kind of quantum leap that thePC industry made 30 years ago, it, too, needed to find that missingingredient. So I asked him to assemble a small team that would workwith people in the robotics field to create a set of programming toolsthat would provide the essential plumbing so that anybody interested inrobots with even the most basic understanding of computer programmingcould easily write robotic applications that would work with differentkinds of hardware. The goal was to see if it was possible to providethe same kind of common, low-level foundation for integrating hardwareand software into robot designs that Microsoft BASIC provided forcomputer programmers.
Tandy's robotics group has been able to draw on a number ofadvanced technologies developed by a team working under the directionof Craig Mundie, Microsoft's chief research and strategy officer. Onesuch technology will help solve one of the most difficult problemsfacing robot designers: how to simultaneously handle all the datacoming in from multiple sensors and send the appropriate commands tothe robot's motors, a challenge known as concurrency. A conventionalapproach is to write a traditional, single-threaded program--a longloop that first reads all the data from the sensors, then processesthis input and finally delivers output that determines the robot'sbehavior, before starting the loop all over again. The shortcomings areobvious: if your robot has fresh sensor data indicating that themachine is at the edge of a precipice, but the program is still at thebottom of the loop calculating trajectory and telling the wheels toturn faster based on previous sensor input, there is a good chance therobot will fall down the stairs before it can process the newinformation.
Concurrency is a challenge that extends beyond robotics. Todayas more and more applications are written for distributed networks ofcomputers, programmers have struggled to figure out how to efficientlyorchestrate code running on many different servers at the same time.And as computers with a single processor are replaced by machines withmultiple processors and "multicore" processors--integrated circuitswith two or more processors joined together for enhancedperformance--software designers will need a new way to program desktopapplications and operating systems. To fully exploit the power ofprocessors working in parallel, the new software must deal with theproblem of concurrency.
One approach to handling concurrency is to write multi-threadedprograms that allow data to travel along many paths. But as anydeveloper who has written multithreaded code can tell you, this is oneof the hardest tasks in programming. The answer that Craig's team hasdevised to the concurrency problem is something called the concurrencyand coordination runtime (CCR). The CCR is a library offunctions--sequences of software code that perform specific tasks--thatmakes it easy to write multithreaded applications that can coordinate anumber of simultaneous activities. Designed to help programmers takeadvantage of the power of multicore and multiprocessor systems, the CCRturns out to be ideal for robotics as well. By drawing on this libraryto write their programs, robot designers can dramatically reduce thechances that one of their creations will run into a wall because itssoftware is too busy sending output to its wheels to read input fromits sensors.
In addition to tackling the problem of concurrency, the workthat Craig's team has done will also simplify the writing ofdistributed robotic applications through a technology calleddecentralized software services (DSS). DSS enables developers to createapplications in which the services--the parts of the program that reada sensor, say, or control a motor-- operate as separate processes thatcan be orchestrated in much the same way that text, images andinformation from several servers are aggregated on a Web page. BecauseDSS allows software components to run in isolation from one another, ifan individual component of a robot fails, it can be shut down andrestarted--or even replaced--without having to reboot the machine.Combined with broadband wireless technology, this architecture makes iteasy to monitor and adjust a robot from a remote location using a Webbrowser.
What is more, a DSS application controlling a robotic devicedoes not have to reside entirely on the robot itself but can bedistributed across more than one computer. As a result, the robot canbe a relatively inexpensive device that delegates complex processingtasks to the high-performance hardware found on today's home PCs. Ibelieve this advance will pave the way for an entirely new class ofrobots that are essentially mobile, wireless peripheral devices thattap into the power of desktop PCs to handle processing-intensive taskssuch as visual recognition and navigation. And because these devicescan be networked together, we can expect to see the emergence of groupsof robots that can work in concert to achieve goals such as mapping theseafloor or planting crops.
These technologies are a key part of Microsoft Robotics Studio,a new software development kit built by Tandy's team. MicrosoftRobotics Studio also includes tools that make it easier to createrobotic applications using a wide range of programming languages. Oneexample is a simulation tool that lets robot builders test theirapplications in a three-dimensional virtual environment before tryingthem out in the real world. Our goal for this release is to create anaffordable, open platform that allows robot developers to readilyintegrate hardware and software into their designs.
Should We Call Them Robots?
How soon will robots become part of our day-to-day lives? According tothe International Federation of Robotics, about two million personalrobots were in use around the world in 2004, and another seven millionwill be installed by 2008. In South Korea the Ministry of Informationand Communication hopes to put a robot in every home there by 2013. TheJapanese Robot Association predicts that by 2025, the personal robotindustry will be worth more than $50 billion a year worldwide, comparedwith about $5 billion today.
As with the PC industry in the 1970s, it is impossible topredict exactly what applications will drive this new industry. Itseems quite likely, however, that robots will play an important role inproviding physical assistance and even companionship for the elderly.Robotic devices will probably help people with disabilities get aroundand extend the strength and endurance of soldiers, construction workersand medical professionals. Robots will maintain dangerous industrialmachines, handle hazardous materials and monitor remote oil pipelines.They will enable health care workers to diagnose and treat patients whomay be thousands of miles away, and they will be a central feature ofsecurity systems and search-and-rescue operations.
Although a few of the robots of tomorrow may resemble the anthropomorphic devices seen in Star Wars,most will look nothing like the humanoid C-3PO. In fact, as mobileperipheral devices become more and more common, it may be increasinglydifficult to say exactly what a robot is. Because the new machines willbe so specialized and ubiquitous--and look so little like thetwo-legged automatons of science fiction--we probably will not evencall them robots. But as these devices become affordable to consumers,they could have just as profound an impact on the way we work,communicate, learn and entertain ourselves as the PC has had over thepast 30 years. |
|