The future of robotics according to Bill Gates

The cover story in this month's Scientific American, written by mega-entrepreneur Bill Gates, discusses the future of robotics. In the article Gates describes one of robotics' thorniest problems. Having spent some time working with Lego Mindstorms, I can vouch that it's a tricky one: "how to simultaneously handle all the data coming in from multiple sensors and send the appropriate commands to the robot's motors, a challenge known as concurrency."

Psychologists know the problem by another name: attention. In humans, the problem of attention is so complex that we've barely made headway in understanding how the mind allocates its resources to the vast array of data available. This is one of the reasons that building humanlike robots has proved to be a daunting challenge. But Gates believes his researchers may have come up with a solution to the problem:

One approach to handling concurrency is to write multi-threaded programs that allow data to travel along many paths. But as any developer who has written multithreaded code can tell you, this is one of the hardest tasks in programming. The answer that [Microsoft]'s team has devised to the concurrency problem is something called the concurrency and coordination runtime (CCR). The CCR is a library of functions--sequences of software code that perform specific tasks--that makes it easy to write multithreaded applications that can coordinate a number of simultaneous activities. Designed to help programmers take advantage of the power of multicore and multiprocessor systems, the CCR turns out to be ideal for robotics as well. By drawing on this library to write their programs, robot designers can dramatically reduce the chances that one of their creations will run into a wall because its software is too busy sending output to its wheels to read input from its sensors.

What Gates is describing, of course, is an operating system for robots. Gates believes that robotics today is like the world of computers 30 years ago. Robots, like computers in the 1970s, have widespread applications in industry, but the models available for home users tend to be expensive and have appeal mainly for tinkerers and hobbyists. Gates foresees a world 30 years from now where home robots are as ubiquitous and indispensable as Windows computers and Microsoft Office. Gates wants those to be running a Microsoft operating system as well. Whether that vision is a utopia or a nightmare for you and me probably depends on whether you own Microsoft stock.

In other news:

Tags

More like this

Comment to providing food for grandma:

Grandma looks kinda scared. Perhaps if the robot looked more like, say, Frank Sinatra and less like the one that went berserk at the beginning of ROBO-COP, she might actually take her medicine. Now how do we get them to resolve conflicting information, so they don't go crazy like HAL 9000 or the computer in DARK STAR? ANd if they develop consciousness, might that "Providing food for grandma" picture be reversed, with robot masters monitoring human slaves? =0

By David Group (not verified) on 19 Dec 2006 #permalink

MicroS~1 promised a TV watch would be on the market some years ago. Anyone buy one? I never heard that they'd retracted it.

Dave,

It strikes me that Gates is trying to standardize the robotics industry in the same way that the computer software industry is standardized. As far as standardization goes, this is all good because it makes it easier for amateurs and hobbyists (not to mention scientists) to build robots, helping them work on more interesting things rather than starting from scratch all the time.

But surely, robotics is way more than that. There is a fundamental difference in the way people use computers and the uses that these autonomous robots are supposed to be put to (helping the elderly and the disabled, and so on). The most successful applications of computing (word processors, email, and so on) are all procedures, where people act through a computer, using it as a tool, in much the same way as a hammer is used to pound a nail (a classic example of Heidegger's ready-to-hand scenario). The applications for autonomous robots are clearly not of these type; people are not expected to use the robots as a tool (say, a surgeon acting through a robotic arm, to perform an intricate procedure, which in itself would be difficult to build) but instead the robots are supposed to be present-at-hand: actual autonomous agents that "help" us in some way. Morover working robots have always been hard to build since all robots are physical and have to interact with our messier, cluttered physical world rather than just a digital one, built up of symbols and representations. This is why the Gates's so-called "concurrency" problem comes about, creating a representation of the unconstrained, messy, physical world (which a robot takes in through its sensors) is probably the hardest problem that AI has dealt with.

Gates speaks as if solving this "concurrency" problem is simply a matter of designing an operating system that can handle multi-threading. It isn't! (I'm assuming here that we're talking of building autonomous robots, not assembly-line industrial ones). AI research in the 60s, 70s, and 80s is full of these robots, which used a variety of sensors, and tried to build an internal model of the external world, and then manipulated this representation of the world, which they then conveyed to their motor circuits. This sense-plan-act approach (called Good Old-Fashioned AI GOFAI by philosopher John Haugeland) failed to even produce a robot that can avoid obstacles in a crowded room (something even a 4 year old child can do). Rodney Brooks's alternative approach of behavior-based robotics (a lesser role for representation, a "behavior" as a fundamental cognitive unit, see his two great papers here and here ) fared much better. These are fundamental problems: the role of representation, sensing and action modules in cognitive architectures -- and I really don't see how a Microsoft OS for Robots is really going to help us solve these important issues.

Well remember, it was revealed in a later movie that Hal didn't "go crazy" -- it had been given an overriding agenda by some government operative (keep this secret no matter what), without the knowledge of the original programmer. And that's why I wouldn't want Microsoft programming my robots....

By David Harmon (not verified) on 03 Jan 2007 #permalink