Logiciels
Microsoft launched its own robotic software platform called Microsoft Robotics Developer Studio (MSRS).

Microsoft Robotics Developer Studio is an example of the "purists" approach. It provides a runtime environment, a graphical drag-n-drop service creation environment and a simulation environment, but does not have its own built-in "artificial intelligence" components, such as a computer vision system, a navigation system, or a robot learning system. Instead, it relies on a growing number of partners that supply the "intelligence content" for the framework.

 

A runtime environment called DSS (Decentralized Software Services) underpins MSRS. It connects together software modules called services running locally or on the network (REST). For example, a navigation system could be treated as a service, and a computer vision system would be a different service. The services are loosely coupled and typically do not know about each other's existence.

Application-specific code orchestrates those services, sends queries, and receives responses back -- and thus controls the robot. If a service is located on a remote server, a patented network protocol called DSSP is used to communicate to the server.

As all the services are running in parallel, there is a chance that the application-level orchestration code may get confused by multiple responses simultaneously coming from various services. The answer to the problem is a special library called CCR (Concurrency and Coordination Runtime) that provides a consistent and scalable way to program asynchronous operations and coordinate among multiple responses. DSS makes use of CCR.

Image
Microsoft Visual Programming Language (VPL)

The runtime environment comes with a graphical programming language called VPL that is used to orchestrate multiple asynchronous invocations of decentralized services managed by the DSS/CCR framework. VPL is domain independent and can be used outside of the robotics domain.

Image
Microsoft Simulation environment
The robotics-specific portion of the Microsoft robotic platform consists of a robotic simulation environment, a set of robotics tutorials with sample code, and a nice online courseware package. The platform also defines a set of APIs for standard robotic services, such as a web camera service. The API is a form of hardware abstraction layer (HAL).

 

Originally greeted with a mixture of enthusiasm, caution, and skepticism by the world of robotics researchers and hobbyists, the MSRS platform turned out to be overkill for small hobby/research projects. Writing DSS services and connecting them to the platform is a major exercise in service-oriented programming, and one that is often an unnecessary distraction from the final goal of a robotics project. And, in the end, one still has to look for a third-party library to handle, for example, object recognition, as the platform does not have any built-in "artificial intelligence."

On the other hand, if a robot (simulated or real) comes with a package of DSS services already built for it, the robot can be easily programmed using VPL graphical language (mission-level programming). This helps, especially if the platform is used for education.

The platform's design is heavily influenced by WebServices/SOAP/REST architecture which was not originally meant for low-latency applications such as real-time vehicle control. In general, traditional Web technologies are optimized for traffic volume rather than for achieving the lowest latency. The problem is somewhat worsened by the .NET Framework's memory garbage collector, a source of random delays. How well the IT-style architecture of the Microsoft platform fits the real-time (or even "soft" real-time) domain is yet to be fully uncovered.

Several companies and teams use the Microsoft platform with success. Robosoft, a company building autonomous robots, uses it as a software framework for all of their robots. Coroware uses MSRS as a programming and simulation environment for their CoroBot robots, built for the research and education market. Princeton Urban Grand Challenge team used MSRS as a software framework for a control system built for their unmanned ground vehicle (pictured below).

Image
Prinston Urban Grand Challenge unmanned vehicle
 

 

By Michael Somby ( Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir