# Microsoft Robotics Developer Studio

Microsoft Robotics Developer Studio (Microsoft RDS, MRDS) is a discontinued Windows-based environment for robot control and simulation that was aimed at academic, hobbyist, and commercial developers and handled a wide variety of robot hardware. It requires a Microsoft Windows 7 operating system or later.
RDS is based on Concurrency and Coordination Runtime (CCR): a .NET Framework-based concurrent library implementation for managing asynchronous parallel tasks. This technique involves using message-passing and a lightweight services-oriented runtime, Decentralized Software Services (DSS), which allows orchestrating multiple services to achieve complex behaviors.
Features include: a visual programming tool, Microsoft Visual Programming Language (VPL) to create and debug robot applications, web-based and windows-based interfaces, 3D simulation (including hardware acceleration), easy access to a robot's sensors and actuators. The primary programming language is C#.
Microsoft Robotics Developer Studio includes support for packages to add other services to the suite. Those currently available include Soccer Simulation and Sumo Competition by Microsoft, and a community-developed Maze Simulator, a program to create worlds with walls that can be explored by a virtual robot, and a set of services for OpenCV.

## Components

RDS has four main components:
* Concurrency and Coordination Runtime (CCR)
* Decentralized Software Services (DSS)
* Visual Programming Language (VPL)
* Visual Simulation Environment (VSE)
CCR and DSS are also available separately for use in commercial applications that require a high level of concurrency and/or must be distributed across multiple nodes in a network. This package is called the CCR and DSS Toolkit.

## Tools

The tools that allow developing an MRDS application contain a graphical environment (Microsoft Visual Programming Language (VPL)) command line tools allow working with Visual Studio projects (VS Express version is enough) in C#, and 3D simulation tools.
* Visual Programming Language is a graphical development environment that uses a service and activity catalog.
** They can interact graphically, a service or an activity is represented by a block that has inputs and outputs that need only be dragged from the catalog to a diagram.
** Linking can be done with the mouse, it allows defining if signals are simultaneous or not, allows performing operations on transmitted values.
** VPL also allows generating the code of new "macro" services from diagrams created by users.
** In VPL, it is possible to easily customize services for different hardware elements.
* RDS 3D simulation environment allows simulating the behavior of robots in a virtual world using NVIDIA PhysX technology (3D engine originally written by Ageia) that includes advanced physics.
* There are several simulation environments in RDS. These environments were developed by SimplySim
** Apartment
** Factory
** Modern House
** Outdoor
** Urban
* Many examples and tutorials are available for the different tools, which permits a fast understanding of MRDS. Several applications have been added to the suite, such as Maze Simulator, or Soccer Simulation which is developed by Microsoft.
* The Kinect sensor can be used on a robot in the RDS environment. RDS also includes a simulated Kinect sensor. The Kinect Services for RDS are licensed for both commercial and non-commercial use. They depend on the Kinect for Windows SDK.

## Notable applications

* Princeton University's DARPA Urban Grand Challenge autonomous car entry was programmed with MRDS.
* MySpace uses MRDS's parallel computing foundation libraries, CCR and DSS, for a non-robotic application in the back end of their site.
* Indiana University uses MRDS in a non-robotic application to coordinate a high-performance computing network.
* In 2008 Microsoft launched a simulated robotics competition named RoboChamps using MRDS, four challenges were available: maze, sumo, urban, and Mars rover. the simulated environment and robots used by the competition were created by SimplySim and the competition was sponsored by Kia Motors
* The 2009 robotics and algorithm section of the Imagine Cup software competition uses MRDS visual simulation environment. The challenges of this competition were also developed by SimplySim and are improved versions of the RoboChamps challenges.

## Critique

* The complication and overhead required to run MRDS prompted Princeton Autonomous Vehicle Engineering to convert their Prospect 12 system from MRDS to IPC++.
* The main RDS4 website was last updated on 2012-06-29. (In fact, the product no longer exists).

## Microsoft Robotics and the future

Microsoft Robotics Developer Studio has not been updated or patched since version 4.0, which was released on March 8, 2012. On September 22, 2014, as part of Microsoft's restructuring plan, the Robotics division of Microsoft Research was suspended, according to a tweet from Ashley Feniello, a principal developer at Microsoft Robotics division of Microsoft Research (MSR). It is now highly unlikely that MRDS will ever be updated again, however forum members (MVPs) may still offer limited support.