All About Microsoft Robotics Developer Studio Components

Microsoft’s Robotics Development Studio gives us the opportunity to design and simulate robots in an easy and user-friendly way. Simulation has advantages which include cost reduction, provides an easy way to change the structure of the robot, software testing is included in the simulation process, and fixing errors occurring in the design process.

Microsoft give us the opportunity to design and create new robots using RDS. This simulation platform is perhaps the most powerful free tool in the field of robotics simulation. The latest version of the program is RDS 4 and here you can find details how can be downloaded and installed.

In this article I made a description of the four basic components of MRDS. All these four components allows simulation in the most complex possible way of robots, simulation that can be done with minimal resources but with some solid knowledge of programming.

Robotics Developer Studio VPL workspace     Image source

01. Concurrency and Coordination Runtime (CCR)

CCR is a component that enables software development code to ensure autonomous operation. Mode of communication is through messages which are processed by a receiver. Applied in robotics, this technology enables operation of a robot based on information from several sensors. Another interesting feature made available by this technology is related to the operation of the robot. If a sensor produce wrong information or nothing at all, the robot can operate based on information from other sensors.

Concurrency programming has been used for a long time in operating systems programming, it is a high level type of programming.
MRDS by means of CCR component brings closer to robot programmers competitive programming. Increasing the complexity of programs also increases debugging difficulty. Part of this problem was solved and integrated into the CCR component which led to a much easier way to debug programs.

02. Decentralized Software Services (DSS)

As the name of component says, an application that is built on the principles of DSS allows running more services in parallel. In this case, when a service is included in the DSS receives a message from another service, it may change its state and send messages to other services. Information from sensors has an endpoint in actuators and this process of information combined with robot components is managed by the DSS component.

Each robot service component has a state and these changes of state must be known to all the other service components. For example, a robot that cleaning a room covers the default route based on information received from sensors. There is also a map after which the robot has to be guided. Since the objects in a room can take different positions, the robot can’t work every time based on the old version of map. Thus, the robot must constantly collect information from sensors and to update the map with new information. Every time when the robot enters into operation the program calculates the optimal way to go, and the changes of route are made by actuators.

Another feature of DSS is related to components. With one click a programmer can access robot state information. Files with information can be shared, these are based on XML technology. These files can access information about all of the robot DDS services and real-time information about each component.

03. Visual Simulation Environment (VSE)

VSE is perhaps the simplest component of MRDS to explain and perhaps the most beloved part in robot simulation. This component allows full 3D simulation of robots and components. Whether scene simulation is indoor or outdoor the objects can be modified, moved or new ones can be added. The program comes with a variety of robot models included and a list of various robot components that can be simulated. This component allows the visual simulation of the robot and robot interaction with other objects.

04. Visual Programming Language (VPL)

VPL is a visual simulation component, but this time it is a graphical representation of the components. Each simulated service can be connected with another service without writing any lines of code. VPL component comes with drag-and-drop technology which allows connection of different services and their simulation results.