In 2006, Microsoft founder Bill Gates wrote a feature for Scientific American titled, “A Robot in Every Home.” In the same year, Microsoft founded its robotics unit and released the Microsoft Robotics Developer Studio (RDS). Microsoft’s entry into the robotics industry was considered a major move from a very major player. But over the past four years, despite active marketing and evangelism from the unit’s leaders, RDS has failed to achieve widespread adoption. A new minor release, announced May 20, seeks to revitalize the user community, and ongoing work with RDS in nonrobotics fields is highlighting the product’s utility in new markets. However, Microsoft faces strong competition from newcomers to the “robot framework” market. For Microsoft to remain a force in the robotics industry, innovation and creativity will be required.
Bill Gates’ 2006 article compared the rise of robotics as a field to the PC revolution in the 1980s. This is a common comparison made by many roboticists, venture capitalists, and dot-com entrepreneurs. Gates specifically pointed to the fragmentation of the industry and lack of common hardware or software platforms to encourage rapid new application development. During the PC revolution, said Gates, he helped develop BASIC for the Altair 8800, a common (though proprietary) development tool that enabled hackers to begin developing the applications that would eventually make PCs an indispensable technology. He suggested that robotics required a similar tool.
Gates was not alone with his ideas. Over the years, numerous groups have begun to work on “a common robot framework” or “a common robot operating system.” All of these efforts are based on a similar philosophy: Each time a researcher or developer programs a new robot, much code is rewritten.
All robots require arbitration among asynchronous sensor inputs. They also require a similar set of behaviors in response to sensor inputs. Therefore, most robots, at least at a high level, require similar types of code. The goal of software platforms is to provide developers and researchers with this common code base, allowing them to focus on implementing new behaviors and increasing levels of autonomy, instead of spending precious resources (time and money) reinventing the wheel.
A Look at RDS
Microsoft’s answer to this problem, the Microsoft Robotics Developer Studio, is a software development kit (SDK) that runs on a controlling Windows PC. It can communicate to individual controllers and microprocessors onboard robots to control the hardware platform over a Bluetooth or hardwired link. The package includes a 3D simulation environment, enabling programmers to simulate their hardware for risk-free testing or give users without access to hardware a chance to develop behaviors for a virtual robot. It also uses a visual programming language (VPL) as a way to easily drag and drop different services that give a programmer a more intuitive interface to the high-level algorithms that run a robot-a programming interface similar in concept to the LEGO Mindstorms and National Instruments LabView tools. The VPL can generate C# code for lower-level access to the software.
Despite the efforts at increased intuitiveness of the SDK and the provision of high-level interfaces to software, RDS still requires a substantial level of programming experience to use. For example, hardware drivers for motors or sensors still must be coded, and their input or output linked to RDS. Waiting for sensor readings to be communicated from a robot to the controller PC can also introduce lag. One user, for example, had to write what he called “reflex code” onboard his robot’s microcontroller to respond to a sensor quickly, since communicating input to the PC and waiting for the RDS code to handle it took so long the robot would drive off stairs or other drops. Indeed, the goal of RDS is not to allow nonprogrammers to develop for robots, but rather to reduce the amount of time programmers spend getting a robot up and running.
Microsoft RDS has been used on a variety of common research platforms, like the Segway Robotics Mobility Platform (RMP) and iRobot Create, as well as hobby platforms like the Parallax Boe-Bot, VEX kits, and LEGO Mindstorms NXT. In 2007, Princeton University used Robotics Developer Studio to control its DARPA Urban Challenge vehicle. However, RDS lacks built-in support for increasingly popular off-the-shelf platforms like the Arduino microcontroller boards.
Outside of robotics, RDS is being used for a variety of applications that leverage its sensor fusion or distributed computing capabilities. MySpace and Indiana University both use it in computer networks. Microsoft has partnered with Intel Corp. and Ford Motor Co. for the American Journey 2.0 Initiative. In an Initiative-sponsored project called “Cloud Computing in the Commute,” competing teams used RDS integrated with the Ford SYNC in-car operating system to read inputs from the car’s various sensors for new applications, such as measuring and reporting fuel economy based on different driving behaviors.
A Change in Leadership
Since its inception, Microsoft Robotics had been evangelized by founding General Manager Tandy Trower. Trower had been at Microsoft for 25 years before working with Bill Gates to start the robotics division. He was a staple at robotics conferences and trade shows, often keynoting events and speaking on the expanding robotics industry and Microsoft’s role in it. But in November 2009, Trower resigned from Microsoft to launch his own company, Hoaloha Robotics. Hoaloha’s goal is to develop software and services for elder- and assistive-care robotics, a rapidly growing field in the United States and abroad. Stathis Papaefstathiou, another 25-year Microsoft veteran and a member of the robotics group from its start, has replaced Trower.
Papaefstathiou has an opportunity to leverage other units within Microsoft Research to define the next generation of Microsoft’s RDS offerings. In a brief conversation with Robotics Business Review, he mentioned two other ongoing Microsoft Research efforts that could have crossover with RDS in the future. One is advanced human interfaces, the best-known example of which is the gesture-based interface called Project Natal, demonstrated as a controller for Microsoft’s Xbox gaming system. The other is cloud computing, one of the new waves in software and a synergy that has already been explored in the American Journey 2.0 Initiative.
With its release on May 20, Microsoft made Robotics Developer Studio free to all users. Previously, it had to be licensed for commercial use. The company is also refocusing on the developer community to take advantage of social networks to foster a stronger user base that will help develop new, exciting applications. Much like the PC revolution it is so often compared to, Microsoft seems to believe that an active developer community is the key to uncovering “killer apps” and building the industry.
This new Microsoft Developer Studio version, R3, is taking the field with the recently released Robot Operating System, or ROS, from Menlo Park, Calif., start-up Willow Garage. Willow Garage and the ROS received press when the company gave away 11 of its advanced PR-2 hardware platforms with the open-source ROS installed to a variety of research institutions, hoping that new robotic capabilities will result.
Like the Microsoft RDS, Willow Garage’s ROS is designed to reduce the amount of coding from scratch required when developing robotics technology. ROS runs on Linux, not Windows, and works with a variety of programming languages. With the donation of the 11 PR-2 hardware platforms, Willow Garage is creating its own developer community. Much of the robotics community has embraced open-source solutions and Linux, and the Willow Garage initiative will encourage users to work together and support new efforts. For all of their differences, the Willow Garage ROS and Microsoft RDS are both targeted toward academic and professional research efforts, and less so for hobbyists.
For many, understanding the difference between these operating systems and frameworks is difficult. The robotics industry is fragmented, and different robotics technology markets-from military to healthcare to consumer-have standardized on different types of hardware and software. Additionally, many commercial companies have already developed their own proprietary frameworks which, thanks to momentum and institutional knowledge, are easier and cheaper for new system development. This leaves little incentive for existing companies to adopt new frameworks.
That is not to say that these systems have no future. As new robotics companies are formed, new customers are created. The challenge for tool and framework providers will be keeping up with the variety of hardware platforms and software interfaces these new robotics systems require.
If the comparisons to the PC industry are extended, it is possible to think of these robot frameworks like the different operating systems for mobile devices, home computers, and entertainment systems-they operate on the same philosophy of helping developers create new applications without requiring rewrites of low-level code. However, they must all be specifically tailored to take advantage of the unique hardware and use cases for the different markets.
The role for Robotics Developer Studio in this is still unclear. Rather than invest in development of new features for this latest release, Microsoft is instead investing in community building, relying heavily on its user base to develop the new features that could make RDS the default option for developers. Success in this venture could make or break Robotics Developer Studio’s penetration into the robotics market. However, continued adoption of RDS for nonrobotic platforms like Web applications or vehicle interfaces may bring greater success for Microsoft than robotics.
|The Bottom Line