Where's my robot?
A robotics vision: The idea of a robot in every home has been around for a while but just how close is it?
Microsoft founder Bill Gates likens the challenge of putting robots in every home to that faced by the PC pioneers, as they attempted to put a computer in every home
"Despite the difficulties, the level of excitement and expectation reminds me so much of that time when Paul Allen and I looked at the convergence of new technology and dreamed of the day when a computer would be on every desk," Gates said at the launch of Microsoft Developers Studio, in December 2006. "As I look at the trends that are now starting to converge, I can envision a future in which robotic devices will become a near ubiquitous part of our day-to-day lives.
"I believe that technologies such as distributed computing, voice and visual recognition, and wireless broadband connectivity will open the door to a new generation of autonomous devices that enable computers to perform tasks in the physical world on our behalf. We may be on the verge of a new 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 not physically present."
It was a vision that had crystallised two years earlier in conversations with leading US universities, and such was his enthusiasm that he dispatched 25-year Microsoft veteran Tandy Trower to go on an extended fact-finding mission.
"Back in the early days of the PC we realised that we needed an ingredient that would allow all of the pioneering work to reach critical mass, to coalesce into a real industry capable of producing truly useful products on a commercial scale," Gates says. For the PC that ingredient was Microsoft BASIC. With Microsoft Robotics Studio, he believes that he has given the same kick-start to the robotics industry.
"We started working on this product in late 2004," Tandy Trower, general manager of the Microsoft Robotics Group, explains. "The parallels with the PC business in the late 1970s are quite striking. We're hoping to provide a platform that smoothes out this fragmentation. We've created a consistent programming interface so that, whether you are creating applications for an educational or industrial robot, it's the same programming model. This means students who learn to program on a LEGO robot are mastering principles they need for more complex robots.
It's an open platform in that any hardware or software vendor can easily adapt their products to it, giving them a larger potential audience. And by bridging across the diversity of hardware, it enables a high degree of reusability of code."
Releasing the potential
With robots being such a large part of popular culture, why has it taken so long for someone to grasp the nettle and unleash that potential?
"One reason is that the hardware has been expensive," Trower says. "Sensors like laser range finders for measuring distance can cost about $10,000. By the time you include sensors, actuators and processors, it can put the cost of building a robot beyond most people's means.
"Probably even more important is that software development has just been too hard. So it becomes a world of haves and have-nots. The haves are like the people in the early PC days who had the expertise to build the hardware and the software. Then there is a vast majority of people who would like to use this technology but can't because of the technical challenges.
In some ways, robots don't necessarily seem like they fit in with Microsoft's traditional core businesses. So how does robotics suddenly now fit in with Microsoft's larger mission? "There's very little doubt that robots will be powered by PC technology - even on the industrial side, we're seeing more and more robots that use PC-based technology," Trower explains."As this industry moves forward it will it will take advantage of technology that already exists on the PC.
"It's the next frontier, and in the same way that we applied our software assets to help create a platform for the PC market, we can help to provide the platform that will unleash the creativity of the robotics community and enable the robotics industry to create the applications that will fuel its growth. So in many ways this work reflects what we have done in the past and is a very natural evolution of the things we do today."
To date, Microsoft has had over 200,000 downloads of the product from the website and have got more than 50 companies signed up as partners to the platform as well.
Some of the big name robotics successes will be known to all. One company, Robosoft, has built its Robo Box, which is its generic electronic control system that incorporates a series of Microsoft Robotic Studio's services into it.
"They develop new robots and new platforms and they plug this box into the custom platform and they have got their full robotics services implementation," Paul Foster, robotics expert at Microsoft explains. "They are exploiting the consistency of the Microsoft Robotics Studio to work with a control platform and the control platform then plugs into their propriety and customised service platforms as required by industry."
Another company, Alderbaran, has the humanoid NAYO robot that has been adopted as the standard robot in the Robo Cup Soccer League. There will be about 440 teams heading over to China later this year to compete in a variety of leagues and one of them is the humanoid soccer simulation league.
What Microsoft has done is deliver a Microsoft Developers Studio NAYO simulation that people can work with. "This is a key example there of being able to programme your application code at virtually no cost," Foster says.
"Let's say that you are an amateur academic so you have no commercial interest, you fill out an application for your robots playing football and then you can run in the simulation, but actually you would be able to point your application to a real robot let's say, and they would then be running your application."
What does it do?
Foster continues the story. "When you look at the home market or the consumer market scenario, it is very much like the early days in the PC world if you had said, 'I have got a personal computer', most people would go what's that or what can you do with it. That is exactly the same with robotics today. If you were to say, 'I have got a robot', it would be, 'why have you got one and what can it do?'
"There are normally two questions, can it vacuum the floor or can it get me a beer from the fridge? The answer of course to those is, yes you can vacuum the floor with an I-robot roomba, but getting a beer from the fridge is a more challenging problem. Most robots could find where I am and find where the fridge is, but it is the interacting with the fridge, so I think it would be a matter of having a beer dispenser."
Some of the robots developed with Microsoft Developers Studio, such as Alderbaran's NAYO, are humanoid in appearance, very much like the popular conception of a robot, but that needn't be the case according to Foster.
He explains that a robot in its simplest form is something that has input and output, with some kind of behaviour in the middle. So the input can affect the behaviour that affects an output. "So in that way I can look at my home security CCTV system and think of that in terms of a robotic solution," he says.
"The Microsoft Developers Studio provided me with a tool set to programme a security/CCTV solution as well as adding in further home automation. A robot is basically something that consists of three parts, an input, behaviour and output with all of those things linked together."
The Microsoft Developers Studio consists of three key parts. The two primary parts are core technologies. One is the Co-ordination and Concurrency Run-time (CCR) and this enables programmers to create applications that have a high level of synchronicity, so lots of things can run in parallel.
"That has been a really big challenge before because of the complexity of writing such applications, but the model of the CCR means that I actually have a much simpler world to live in," Foster says. "Rather than having to think about exactly how I was going to write the asynchronous programme, I can write my pieces of functionality and then just tell the CCR in what conditions that piece of functionality can run. Can it run concurrently with other things or does it need to run exclusively for example? Then what data conditions define when that piece of functionality should run? The CCR then basically works out what can run now.
"So it is a much simpler environment and that is the key element to the Developers Studio because it makes writing a robotics application that needs a high level of synchronicity much easier."
In the modern business world, when you have multicore computers coming out, the ability to really use that computing power depends on programmers being able to write applications that can have their parts running with a high level of concurrency.
The second piece of the Developers Studio puzzle is the standards piece. "I said before that the lack of standards between hardware manufacturers and what we have taken from our business system experience is the idea of having software services as a way of fronting particular functionality, and in the robotics case, hardware," Foster adds. "So we have the software services that enable me to write, say, a piece of behaviour, as a service and then apply that using standard, or should I say readily available published contract definition, to a particular piece of hardware.
"Let me give you a more concrete example. We have defined some generic interfaces, contracts, one of which is a differential drive one, so a two wheeled differential drive clearly is a common feature in many mobile, wheeled robots. By defining the generic contract it means that I can write an application such as an explorer application and I can then go and write that application so that it drives the two-wheeled differential drive system through our generic contract definition.
That means that I can then run that application against any robot platform that also implements its drive system control and publishes it through the generic differential drive interface."
This may sound very much like traditional plug-and-play technology but Foster explains that it is slightly different. "Rather than physical shareware software it is more of as your PS10 phone system. So there is a standard RJ45 socket and then there is a standard for communicating with the PBX. All of that has been published, so anyone who wanted to could make a phone and plug it into a wall socket. So that wall socket and the protocol that runs across it, let's call that a generic contract. We have published some generic contracts just for people to use or enhance or people could of course define their own and publish them. If they get adoption then those generic contracts will go forward.
"It just means that now that I am in this world, rather than having to write my programmes for a specific hardware device I have a level of abstraction, I can write my application to consume these generic contracts and then I can run my application against any device that implements that contract.
"That is what has been missing in the robotics world. There hasn't been that open level of standards and what that really means is that we have published our software services protocol. It is an availability that means that we will never ask anybody for royalties who wish to consume it."
Microsoft Robotics Studio is available in two licences. One is a non-commercial licence so it would applicable to the hobbyist and academia, which is free. The other is the commercial licence which costs in the region of $399 per development client and that gives the rights to distribute a number of run time environment.
The third and final piece of the Developers Studio puzzle is the tool set. The first two were key technologies and the third piece is the tool set and these are significant pieces of the offering because they lower the barrier for entry for people wanting to get into robotics or trying to prototype new pieces in robotics.
One important element of the tool set is the visual simulation environment and the other is the visual programming language.
The visual simulation environment is built using Microsoft's XNA games technology. "That means that various 3D meshes can be taken from a wide variety of professional design packages or sources," Foster says.
"This means that you can build a simulation where physics is appropriately represented for your environment into the application. So you could for example have an Earth-based gravity or you could actually go to lunar gravity whatever that is and you can define that in the simulation or you can define the friction of the environment.
"You can build your application and point it to the simulated implementation that those service and test your programming and potentially your robot design in that simulated environment, and then you can bring it to the real world by just changing the configuration file and say rather than using these services that are the simulated ones I want you to now use these services that happen to be the real ones against the real hardware."
It is very easy to switch between the simulated world and the real world, which is vital because clearly a simulated environment can only deliver so much of the real environment. There are so many noises and distractions in the real world that are very challenging to implement in a simulated world.
More to come
Despite the early success Foster feels that there is much more to come. "I think that there is a lot more technology to come from our side for robotic solutions," he says. "We have reached a point where we have key pieces in place, but I still think that there is a lot more to come.
"The exciting thing is that Microsoft started 30 years ago with a vision of a PC on every desktop and in every home and that was considered as somewhat madness to make such a strategic vision statement. By doing the same with robotics I think we will see robotic applications in every home, whether they will all be mobile ones I doubt that, but they could be mobile ones.
"Do you still vacuum your floor? We do occasionally, but we have an I-robot roomba that vacuums the floor and he gets it done far more frequently than we would do with our Dyson. That is just a case of 'why not'? It is there and it costs the same as a normal hoover and in the time that it is doing that hovering, we are doing something else."
Only time will tell if the robotics industry develops as Gates predicted, but if the early signs are any indication, it may well take less than the 30 years of the PC revolution.