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" ?>
<!--Initialize Roomba config file -->
|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.|
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.