Microsoft Robotics Developer Studio (15 Free Video Tutorials)
Here is a collection of 15 free video tutorials on Microsoft Robotics Developer Studio (MRDS). The Microsoft Robotics Developer Studio is a Windows-based environment for robot control and simulation. You can download Microsoft Robotics Developer Studio here.
The Albert Einstein robot in this video was not developed with Microsoft Robotics Developer Studio, but it does serve to point the direction robotics is heading. (All the other videos in this post do deal with robots that are supported by Microsoft Robotics.)
Note: If you want to “deep dive” into robotics concepts and theories, you may want to check out Stanford’s Introduction to Robotics, which is a 16 part video series taught by Oussama Khatib.
Four Components of Microsoft Robotics Developer Studio:
- CCR (Concurrency and Coordination Runtime) – makes asynchronous programming simple. The CCR makes it simple to write programs to handle asynchronous input from multiple robotics sensors and output to motors and actuators. With the use of CCR, we don’t need to do any manual threads management. This can be especially useful in handling concurrency and partial failure. CCR has a failure handling mechanism called Causalities. This is basically a generalization of Try / Catch for multiple threads. But this is for many machines and processes working in synchronous fashion. This is the base of Robotics architecture by Microsoft. You can even use this component for the applications running on a PC instead of a robot. CCR is available in the form of a dynamic link library which may be used by any .net language.
- DSS (Decentralized Software Services) is the services architecture, and it is a companion to CCR. This is based on Service Oriented Architecture. This provides the ability to write applications which are highly distributed and modular. This means you can execute your code in the processing work horses and use anywhere in the distributed environment. The DSS makes it simple to access, and respond to, a robot’s state using a Web browser or Windows-based application. This provides for real-time monitoring of robotics sensors and real-time response to motors and actuators.
- VPL (Microsoft Visual Programming Language) is a visual programming tool that is used for creating and debugging robot applications, web-based and windows-based interfaces.
- VSE (Visual Simulation Environment) allows one to simulate the behavior of robots in a virtual world using NVIDIA PhysX technology (3D engine) that includes advanced physics.
The runtime environment consists of two components: the CCR and the DSS. The runtime is based on a lightweight REST-oriented services model. Making it REST based has made the services and applications to be independent of each other. They may be on the same machine or distributed across different machines connected through any means. When we say REST based, this means that the resources should be available by query strings. These services are available as resources to the other services, applications or User Interfaces. This is actually how Microsoft is able to promise low coupling between services. The Runtime supports from 8-bit to 32-bit robots. These robots may range from Toy Robots to Industrial Robots.
Microsoft Visual Programming Language enables anyone to create and debug robotics programs very easily. Just drag and drop blocks that represent services, and connect them. It is also possible to take a collection of connected blocks and reuse them as a single block elsewhere in the program. VPL follows the Observer Pattern. This means that it is not based on Control flow but on data flow which enables some program elements to get executed when some data arrives. VPL provides a model-driven approach to develop and orchestrate services.
Easily simulate robotics applications using realistic 3D simulated models. Since testing with real robots is often expensive, it saves money to start out in a simulated environment first and then move to real robots once the concepts have been proven to work. Microsoft Visual Simulation Environment (VSE) is based on Microsofts XNA Framework and the rendering engine uses AGEIA™ PhysX™ Technology from AGEIA Technologies Inc.. AGEIA Technologies Inc. is a pioneer in hardware-accelerated physics, enabling real-world physics simulation for robot models. PhysX simulations can also be accelerated using AGEIA hardware. These simulations can be recorded and saved as XML files and played back over and over again.
Six Key Features of MRDS
- Reuse Modular Services Using a Composable model
- Scalable and Extensible Platform
- Easily extend Microsoft Robotics Developer Studio Functionality
- Supports both remotely connected (PC-based) and robot-based (autonomous) application scenarios
- Develop using a wide range of programming languages
- Microsoft Robotics Developer Studio allows one to use various packages to add other services to the suite.
- Soccer Simulation
- Sumo Competition by Microsoft
- a community-developed Maze Simulator which is a program to create worlds with walls that can be explored by a virtual robot
Build high-level functions using simple components, providing for reuse of code modules as well as better reliability and replaceability. For example, a lower-level sensor service could be integrated into a navigation service.
The RDS programming model can be applied to a variety of robot hardware platforms, enabling users to transfer their skills across multiple platforms. The programming interfaces can be used to develop applications on single or multi-core processors.
Third parties can extend the functionality of RDS by providing additional libraries and services. Hardware or software vendors can make their products easily compatible with RDS.
Remotely connected scenarios enable communication from a PC to the robot through a serial port, Bluetooth®, 802.11 (WiFi), or RF modem. Programs can also execute natively on PC-based robots running one of the Microsoft Windows operating systems, enabling fully autonomous operation.
MRDS allows you to access the runtime services using the following programming languages: C# and Visual Basic .NET, JScript, and IronPython
Those other services include:
Sample Applications:
- Princeton University’s DARPA Urban Grand Challenge autonomous car entry was programmed entirely with MRDS.
- 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.
Supported Robots:
- Aldebaran Robotics
- CoroWare
- Lego Mindstorms NXT
- KUKA Robotics Educational Framework
- Robosoft’s robots
- Segway
- RoboticsConnection
- RoombaDevTools by RoboDynamics
- WowWeeRoboSapien via the USB-UIRT device
- e-nuvo WALK