Sie sind auf Seite 1von 6

Developing for Robots: An Introduction to The Microsoft Robotics Developer Studio

It has been said that one of the next major revolutions in terms of technology will be in personal
robotics. Anyone who’s watched the Will Smith blockbuster movie, iRobot, would suddenly get images
of robots in the house taking care of household chores, robots doing your gardening, robots attending to
everyday mundane activities.

Well, it may not be so imminent but the road there is definitely becoming clearer. In the past, robots
have been confined to industries and manufacturing. They’ve definitely proved useful in things such as
assembling machinery and printing all those millions of transistors on chips. But, what if everyone who
could take just a little time to learn, could write applications for robots? – Useful applications. What if
you could, on your desktop, or laptop, with no access to high end tools or even robotic hardware be
able, in a very simple way write such applications? What possibilities would be open to the average
developer then?

These are the motivators that set a team at Microsoft on the path to finding a way to solve this very
problem, making robotic development easy to do, and create a toolset that is a great fit for the problem.

To elaborate on the problem this team sought to tackle, here’s sort of, the ‘state of the (robotics)
industry’ that the team was to tackle, and what the Microsoft Robotics Developer Studio seeks to solve:

1. Fragmented hardware – multiple hardware platforms


2. Limited tools and technologies for doing this kind of development
3. It was too complex, and much expertise was needed in order for a developer to get into this
field
4. Lack of reusable components
5. Difficulty in transferring this kind of skill

So what exactly is the Microsoft Robotics Developer Studio (RDS)? Well, in a sentence, it’s a Microsoft
product for building and running Robotics applications. The RDS consists of a set of tools and a runtime
for building controlled, semi-autonomous and autonomous robotic applications. The diagram below
shows the different components of RDS:
Before going into the details of RDS, it is worth noting what kinds of applications RDS is targeted
towards, these are also some of the unique characteristics of Robotics applications

1. Loosely coupled – apps built out of bringing together individual ‘pieces’ and making them work
together
2. Asynchronous –having multiple tasks executing in the background in an asynchronous way
3. Concurrent – having multiple tasks being executed at the same time
4. Composable – being able to ‘compose’ or build apps out of bringing pieces together to create a
whole
5. Decentralised (Distributed computations)
6. Resilient – Fault tolerant

The Runtime

Architecture Diagram
The runtime environment runs on the .NET framework. There are two key components here:

1. The Distributed Software Services (DSS)


2. The Concurrency and Coordination Runtime (CCR)

These two provide programming models for distributed applications programming (DSS) and a
concurrent programming model (CCR).

The basic building block of a Robotics application using RDS is a ‘service’. The DSS and CCR provide ways
of defining and working with services.

DSS is based on Representational State Transfer (REST) principles. It provides programming constructs
for expressing distribution. It defines a protocol known as the Distributed Software Services Protocol
(DSSP) which is a simple SOAP-based application protocol that provides a lightweight service model by
which one can define services, give them identity and state and create relationships between services1.

The CCR, on the other hand deals with the problem of concurrency. Using CCR you can coordinate
services very simply. The CCR hides the complexities of dealing with such things as locks and threads
directly.

Authoring Tools

While a programmer can sit down and write C# code to create a robotics application, the RDS provides a
Visual Programming Language (VPL). The VPL provides the developer with a set of predefined
components and services e.g. actuators, cameras and motors that can be dragged and dropped onto a
‘composition’ area and connected to create an application.

1
Decentralized Software Services Protocol – DSSP/1.0; Henrik Frystyk Nielsen and George Chrysanthakopoulos
RDS also provides a simulation engine so that one can simulate robots in action in a 3D environment.
Using the VPL and the simulation engine, a developer can do rapid prototyping and even visualize the
robot in action.

Hardware Support

The RDS supports a variety of hardware components and various robotics kits including:

– Lego® Mindstorms® RCX

– Lego® Mindstorms® NXT

– Fischertechnik®

– MobileRobots Pioneer P3™

Conclusion

The Microsoft Robotics Developer Studio provides a comprehensive set of tools for creating robotic
applications. Furthermore, the DSS and CCR can be adopted to other scenarios other than robotics
where application have aspects of distribution or concurrency.

The RDS comes in several editions of which there is the RDS Express Edition which is free to download
and use. So you can get the tools and start exploring the world of robotics. The RDS comes with a
number of tools, a large number of tutorials and samples to get you started.

Once you get the RDS, a good place to start would be the RoboChamps website which has a number of
robotics challenges you can try to solve.

Links

1. RDS 2008 Express Edition Download - http://go.microsoft.com/fwlink/?LinkID=134518


2. RoboChamps – http://www.robochamps.com
3. Microsoft Robotics Page on MSDN - http://msdn.microsoft.com/en-us/robotics/default.aspx
4. CCR and DSS Toolkit 2008 - http://www.microsoft.com/ccrdss/
5. Decentralized Software Services Protocol – DSSP/1.0 -
http://download.microsoft.com/download/5/6/B/56B49917-65E8-494A-BB8C-
3D49850DAAC1/DSSP.pdf

Wilfred Mworia

Academic Developer Evangelist

Microsoft, East Africa

Das könnte Ihnen auch gefallen