Microsoft Robotics Studio 2008 Makes Controlling Robots Easier

The Microsoft Robotics Studio 2008 offers a suite of tools that makes it easy to write code that controls robots, from simple robots to advanced robots. Application developers can choose from the Visual Programming Language within the Microsoft suite or C# to create code. The runtime takes care of all the concurrency headaches so developers can focus on the more important issues of coding for robotics.

Microsoft's newest version of its Robotics Studio is a whole set of tools designed to help developers write code that controls robots.

The Robotics Studio 2008 offering, launched in mid-November, includes an IDE (Integrated Development Environment) for visually and graphically producing your code. Developers can also use the tools in conjunction with Visual Studio to write their own customized code.

Robotics Studio includes the Visual Programming Language IDE, as well as several runtime libraries to handle the connections to the devices. There is also an entire simulation environment and a set of preconfigured services set up to work with several popular robotic devices (such as Lego Mindstorm devices).

Concurrency and Robotics Studio

Robots involve multiple concurrent processes. For example, the robots the United States has sent to Mars have to do an enormous amount of things simultaneously. They move around the terrain, which involves controlling the steering and power of six wheels, each of which has a separate motor. They're also taking readings from the various instruments, responding to remote commands from Mission Control, and sending data back to Earth. And don't forget they're even performing scientific experiments. (For example, they include an alpha particle X-ray spectrometer.)

All of these processes involve separate code in the form of multithreaded processing. For a programmer, that can be nightmarish, as they have to take care of locks, semaphores and all the usual multithreaded headaches. That's where the Robotics Studio makes life easier: It includes the CCR (Concurrency and Coordination Runtime), which is a programming model that handles messaging and orchestration primitives, alleviating the need to manually handle all the low-level threading headaches. This lets the developer focus on more important tasks and spend less time fighting with low-level code.

Simulation Environment

I ran Microsoft Robotics Studio on a Toshiba Satellite U305, running Microsoft Vista, with Intel Core 2 Duo 1.8GHz and 2GB RAM.

One fun thing about the Robotics Studio is it includes a 3-D simulation environment that models actual physics (using the PhysX engine from Nvidia). At first glance, the presence of this Microsoft Visual Simulation Enviroment in a robotics studio might seem a bit odd, but the reason is that the simulation environment can include a simulation of the robot itself. This simulated robot can interact in an environment in the same way that a real robot would. In other words, if you don't have access to a robot, you can still control a simulated one that behaves just like the real thing.

Microsoft included with the Simulation Environment several pre-packaged sample simulations of actual robots, such as one called iRobot Create. This is an educational robot for students and researchers made by iRobot, a company that makes robotic vaccuum cleaners. There is also the LBR3 Arm, made by KUKA, NXT Tribot (part of the Lego Mindstorm line), and the Pioneer 3DX, made by Mobile Robots.