Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


An Introduction to Programming Robots with Microsoft Robotics Studio : Page 3

Earlier this year Microsoft released Microsoft Robotics Studio—an SDK that you can use to program robots ranging from small robots like the iRobot Roomba vacuum to the large robots used on assembly lines.




Application Security Testing: An Integral Part of DevOps

iRobot's Roomba Vacuuming Robot
Founded in 1990 by a group from the Massachusetts Institute of Technology, iRobot's flagship product is the popular Roomba vacuum. Over two million units have been sold and the company makes constant improvements to the product. The company offers several different models that do everything from simple cleaning to allowing for scheduled operations and remote control.

The Roomba Red vacuuming robot (see Figure 1) is the least expensive of iRobot's vacuuming robots. This one lets you clean both hardwood and carpeted floors. Using one of the interfaces available at http://www.roombadevtools.com, you can control your Roomba programmatically.

In 2005, the company added a Serial Command Interface (SCI) to all models that allows owners to program their Roombas. The SCI gave hobbyists who may not be interested in actually building a robot a way to enter the world of robotics.

Programming your Roomba with Robotics Studio
Robotics Studio offers several tutorials that get you up and running with your robot. You can use the Robotics tutorial #4 to work with the Roomba. A manifest file is included which specifically allows you to control your Roomba. The XML-based manifest file, seen below, contains the information needed by Robotics Studio to work with a specific type of hardware.

<?xml version="1.0" ?> <Manifest xmlns="http://schemas.microsoft.com/xw/2004/10/manifest.html" xmlns:dssp="http://schemas.microsoft.com/xw/2004/10/dssp.html"> <CreateServiceList> <ServiceRecordType> <dssp:Contract> http://schemas.microsoft.com/robotics/2006/08/roomba.html </dssp:Contract> <dssp:PartnerList> <!--Initialize Roomba config file --> <dssp:Partner> <dssp:Service> http://localhost/mountpoint/Samples/Config/ iRobot.Roomba.Config.xml

Figure 2. DataFlow Tab: Here's a screenshot of the dataflow tab for the robotics tutorial #4, as shown in the Microsoft Visual Programming Language utility.
</dssp:Service> <dssp:Name>dssp:StateService</dssp:Name> </dssp:Partner> </dssp:PartnerList> </ServiceRecordType> <ServiceRecordType> <dssp:Contract> http://schemas.microsoft.com/robotics/ 2006/09/roombadrive.html</dssp:Contract> </ServiceRecordType> </CreateServiceList> </Manifest>
The tutorial project is available in CSharp, VB.NET, and Jscript versions. The Robotics Studio installs the tutorial in the samples subdirectory. In addition to the different language versions, the tutorial includes a Microsoft Visual Programming Language (MVPL) file, which lets you see the way data flows through your application (see Figure 2). You can use this tool to convert the dataflow into actual code.

The tutorial project itself initializes the DSS node using the manifest files located in the config folder for the project. It also brings up a small form (see Figure 3) that lets you control the direction in which your robot moves.

Figure 3. Simple Robot Motion Control: Here's the control form available with the robotics tutorial #4. You can use this form to control the motion of your Roomba vacuum.
You need to make a change to the configuration file, iRobot.Roomba.Drive.manifest.xml, before executing the tutorial. You will need to add a element and set the value to the COM port to which the Roomba interface is connected. If you are using a wireless connection, then this will be the RooTooth (see the sidebar "Roomba Development Tools").

Is this Artificial Intelligence?
If you are thinking that Microsoft has solved problems associated with Artificial Intelligence (AI), you are partly right. They have created a software tool that makes it easier to control robots, which is often associated with AI. But, most scientists would define AI as the ability for a machine to think for itself. Robotics Studio may be used as a basis for adding higher level abstractions that represent intelligence, but in itself, it is only a tool for controlling the robot.

What makes Robotics Studio so special is that it opens up more opportunities for people to access the world of robotics. According to Tandy Towler, program manager for the Robotics Studio group, "Robots are about to be unshackled from forced labor. Expect them everywhere". So, now is a great opportunity for you as a developer to get involved with the world of robotics. I encourage everyone to download Robotics Studio and take a look. Even if you do not want to invest in a robot, you can still experiment with the service tutorials that require no hardware. You can also play with the Simulation Tool which allows you to simulate what your robot will do before you actually build it. And most importantly, it's a lot of fun.

Sara Morgan Rea is a 2007 Microsoft MVP for Office Communications Server. Her first book, Building Intelligent .NET Applications, was published in 2005. In addition to co-authoring several Microsoft Training Kits, she recently published Programming Microsoft Robotics Studio. She currently works as a robotic software engineer at CoroWare.com.
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date