Microsoft Robotics Developer Studio : les ressources pour bien démarrer

 

Pierre Cauchois - Article publié le 19 décembre 2008

 

Avec la première release officielle de Robotics Developer Studio, Microsoft confirme son engagement dans la robotique, et particulièrement la robotique amateur, en fournissant à la communauté une suite d’outils gratuite autour des technologies CCR&DSS (une architecture et un moteur d’exécution concurrente pour des applications distribuées) et de .NET.

La première question qui vient à l’esprit du hobbyiste qui voudrait s’essayer à Microsoft Robotics Developer Studio est bien entendu « Par où vais-je commencer ? ». Le but de ce document est  de répondre à cette question en fournissant des pointeurs vers les ressources, la documentation, les tutoriaux et bien entendu en faisant le tour de cet outil dont la puissance n’a d’égal que la simplicité d’utilisation.

I. Quels sont les outils de développement utilisés ?

On peut utiliser Microsoft Robotics Developer Studio de deux manières différentes pour développer le logiciel de son Robot : en écrivant directement son code dans un IDE, ou en utilisant un outil spécialement conçu pour Robotics Studio qui s’appelle le Visual Programming Language (VPL).

L’IDE de base pour Robotics Developer Studio est Visual Studio 2008. La version Express est gratuite et suffit parfaitement. Il est également possible d’utiliser Robotics Developer Studio avec Visual Studio 2005, il n’est donc pas nécessaire d’avoir les deux moutures de l’outil en parallèle sur sa machine. La première chose à faire est donc d’installer les outils : ci-dessous les liens vers ceux-ci :

Microsoft Visual Studio 2008 Express Edition

Microsoft Robotics Developer Studio Express Edition

 

II.  Les concepts majeurs

a. Le Visual Programming Language

Le but du VPL est de « dessiner » la machine d’état de son robot en choisissant dans une liste les composants à utiliser, et en les reliant par des chemins de données dont le type est paramétrable.  Il est ensuite possible de spécifier sur quel « nœud »  (le robot, le PC qui le contrôle, etc) le composant va être déployé et exécuté.

Le plus simple pour s’initier au VPL est de commencer par les tutoriaux MSDN, qui sont très rapides et permettent de prendre en main l’outil.

VPL Tutorials on MSDN

Microsoft Robotics

1. Exemple de diagramme VPL

 

Le VPL n’est cependant pas le seul moyen de programmer son robot. Il est également possible d’utiliser le C#, le VB. NET, le C++ et même le Python. On peut retrouver ces tutoriaux dans les autres langages sur le site MSDN suivant :

Basic Robotics Tutorials - All Languages

A souligner, il existe aussi un grand nombre de tutoriaux sous forme de Video On Demand :

Microsoft Robotics Developer Studio On Demand Screencasts

 

a.  Le moteur de simulation graphique

Microsoft Developer Robotics Studio 2008 intègre le moteur graphique 3D d’Ageia pour fournir un environnement de simulation puissant qui permet de tester son code sur un robot sans risquer de casser quoi que ce soit. Pour comprendre les fonctionnalités et les principes de ce moteur de simulation, MSDN répond encore à la majorité des questions :

Simulation Overview

Microsoft Robotics

2. Capture d'écran du simulateur

 

a.  Ce qui se cache sous le capot : CCR et DSS

Microsoft Robotics Developer Studio 2008 est architecturé autour de 2 composants essentiels : Le Concurrent and Coordination Runtime (CCR) et le Decentralized Software Services (DSS) : ils vont organiser tout le logiciel du Robot sous la forme d’une Architecture orientée Services, rendant ainsi les différents composants modulaires, et ils vont gérer la synchronisation, l’ordonnancement et d’une manière générale la vie de ces services.

Pour bien comprendre les rôles de CCR et DSS, une fois de plus, MSDN est là pour nous :

Microsoft Robotics Developer Studio Runtime

Attention il y a beaucoup de choses derrière ce lien, qui sont assez théoriques, mais qui permettent de comprendre la puissance de ce runtime.

b. Quels sont les plateformes supportées ?

Un grand nombre de robots, en kit ou prémontés, existent sur le marché, et les plus communs d’entre eux sont supportés par Robotics Developer Studio : en voila une liste non exhaustive qui est destinée à évoluer au fur et à mesure des versions :

-          LEGO Mindstorm NXT – RCX

-          Parallax BOE-BOT

-          iRobot Create Roomba…

Pour chacun de ces robots, il y a des pages sur MSDN et dans les forums qui leur sont spécifiques et qui permettent de rapidement faire fonctionner son robot avec les outils Microsoft, et éventuellement résoudre les problèmes auxquels on peut être confrontés :

Exemple de page spécifique pour un robot : Lego NXT services

Forums Microsoft Robotics: Hardware Configuration & Troubleshooting

 

III. Quelles sont les autres ressources en ligne disponibles ?

L’équipe de développement de Robotics Developer Studio est plutôt prolifique en terme de documentation. Le point de départ est sans aucun doute la page MSDN de Robotics Developer Studio :

http://msdn.microsoft.com/robotics

Sur cette page on retrouve des liens vers les resources téléchargeables, des news de l’équipe de développement, et également des liens vers plus de 30  tutoriaux, y compris des Webcasts, permettant de prendre en main Robotics Developer Studio :

http://msdn.microsoft.com/en-us/robotics/aa731536.aspx

Attention toutefois, ces tutoriaux sont en Anglais. En Anglais également, le blog de l’équipe de développement de Robotics Developer Studio, emmenée par Tandy Trower, est à l’adresse suivante :

http://blogs.msdn.com/msroboticsstudio

 Pour les allergiques à la langue de Shakespeare, Olivier Bloch a mis en ligne un certain nombre de webcasts en Français démontrant différentes fonctionnalités de Robotics Developer Studio. Son blog sur lequel sont disponibles ces ressources est à l’adresse suivante :

http://blogs.msdn.com/obloch

Mon blog va également devenir une source de contenu en Français sur Robotics Developer Studio, je vous invite donc à en noter également l’adresse :

http://blogs.msdn.com/pierreca