Nos produits
Vos infos

Visual Programming Language

Logo Microsoft Visual Programming Language

Cet article présente Visual Programming Language (VPL) qui est une partie intégrante de Microsoft Robotics Studio. VPL est un environnement de développement graphique qui rappelle NXT-G de Lego mais qui a la particularité et l’avantage de fonctionner avec de nombreuses plates-formes robotiques et également la bonne idée de tirer partie de .Net, DSS et CCR. Cet article présente une première approche de cet outil.

Positionnement de VPL

Visual Programming Language constitue une partie intégrante de Microsoft Robotics Studio (MSRS). Pour en savoir plus sur Microsoft Robotics Studio, consultez notre article de présentation.

Pour se procurer Visual Programming Language, rendez-vous sur la page d’accueil Robotique de Microsoft : http://msdn.microsoft.com/fr-fr/robotics/default(en-us).aspx

Si vous entrez dans le fonctionnement du runtime et des librairies (CCR et DSS) de Microsoft Robotics Studio, vous découvrirez un ensemble riche et très bien conçu. Ces deux briques répondent très bien aux nécessités d’un développement en robotique à savoir, gérer une exécution parallèle des différents composants d’un robot. En effet, il n’est pas concevable par exemple de différer l’arrêt des moteurs parce que l’un des capteurs est en train de communiquer de l’information à la brique centrale. Cela pourrait entrainer des effets désastreux si par exemple le capteur prend un temps significatif pour dialoguer ou pire s’il est bloqué.

En contrepartie à cette conception robuste et performante, il est difficile de rentrer dans le modèle de programmation de MSRS, nous y reviendrons dans un prochain article. Le modèle est en effet riche et relativement complexe. Pour pallier à ce souci, Microsoft a ajouté dans son offre MSRS un outil graphique qui s’appuie sur le runtime et les librairies citées ci-dessus.

Cet outil graphique, vous l’avez compris, c’est Visual Programming Language. Il permet concevoir un programme robotique par un jeu de glisser-déplacer de « boites » spécialisées représentant les entités (les services) que sont les effecteurs, les capteurs, les briques, les manettes de contrôle ainsi que tout autre programme tiers.

L’excellente nouvelle, c’est qu’un code que vous avez généré directement à l’aide de Visual Studio, l’outil de développement professionnel de Microsoft (non fourni dans MSRS mais des versions gratuites téléchargeables sont disponibles) est lisible à l’aide de VPL et de manière symétrique, vous pouvez demander à VPL de générer le code correspondant à la version graphique que vous venez de créer, code que vous pouvez ensuite retoucher à l’aide de Visual Studio.

Vous l’avez donc compris, Visual Programming Language est donc la manière simple de rentrer dans MSRS. Dans la plupart des cas, c’est d’ailleurs la seule que vous utiliserez car, comme nous allons le voir, cet environnement est complet et performant.

Les avantages de VPL

  • Programmation graphique facile à manipuler
  • S’appuie sur une infrastructure robuste et capable de monter en charge : CCR et DSS
  • S’appuie sur la plate-forme logicielle .Net. Etant donné que VPL peut générer du code qui peut ensuite être retouché et amélioré, cela en fait une plate-forme très professionnelle et complète
  • Fonctions de Debug
  • VPL est un langage de flux de données (par oppositions aux langages impératifs que sont par exemple C++ ou Java). Ce type de langage est mieux adapté à la réalisation de programmes utilisant fortement le parallélisme et le multitâche.

Description de l’interface

La figure ci-dessous présente la fenêtre de travail de VPL.

Interface de programmation de Microsoft Visual Programming Language

Comme le présente cette figure, l’écran de travail de VPL est découpé en 5 zones en plus de la barre d’outils.

Les zones 1 et 2 contiennent les boites que vous allez glisser-déposer sur la zone de travail (zone n°3) appelé le diagramme. La zone 1 contient les activités qui permettent de gérer les variables, les données ainsi que les boucles régissant le flux de données.

La zone 2 contient les services. Les services, comme le décrit notre article sur Microsoft Robotics Studio sont la base de travail pour Microsoft. Tout programme de pilotage d’un robot ou d’une partie de robot est un service. Ainsi, les programmes que vous créez à l’aide de VPL peuvent se retrouver dans cette liste de services. Microsoft fournit une liste de services de base vous permettant de piloter de manière générique des robots du marché. Nous reviendrons largement sur cette liste de servies.

La zone 4 présente quant à elle les diagrammes et les fichiers de service inclus dans votre projet.

Un premier programme sans robot

Rien ne vaut un petit programme tout simple pour comprendre comment fonctionne l’outil. Voici donc un exemple de programme ne nécessitant pas de robot pour fonctionner et utilisant Visual Simulation Environment qui est à l’instar de Visual Programming Language un composant de Microsoft Robotics Studio.

Cet exemple utilise le robot Lego Mindstorms NXT et déclenche l’affichage d’une fenêtre Windows lorsqu’il touche un obstacle.

Créez votre programme de pilotage de robot

La première étape consiste à trouver dans la liste de services (zone 2) un service qui se nomme Generic Differential Drive et de le glisser-déposer sur le diagramme principal comme le présente la figure ci-dessous.

Etape 1 du programme Visual Programming Language

Le service Generic Differential Drive permet de piloter un robot ayant deux roues et se dirigeant ainsi à l’aide d’une conduite différentielle (c'est-à-dire qu’au lieu d’orienter les roues à l’aide d’un volant comme sur une voiture, l’orientation du robot est réalisée en faisant varier les vitesses et le sens de rotation sur chaque des deux roues indépendamment). Pour en savoir plus, se reporter au glossaire de la robotique sur ce site.

La seconde étape consiste à faire la même opération avec le service qui se nomme Simple Dashboard comme le présente la figure ci-dessous.

Etape 2 du programme Visual Programming Language

Ce service affiche une fenêtre sur votre PC qui vous permet de piloter le robot depuis cette interface (que ce soit le robot dans l’environnement virtuel ou bien un robot réel).

La troisième étape de cet exemple consiste à glisser-déplacer le service qui se nomme Generic Contact Sensor comme illustré ci-dessous.

Etape 3 du programme Visual Programming Language

Faîtes glisser ensuite une activité Data depuis la zone 1 vers le diagramme. Reliez ensuite la sortie du service Generic Contact Sensors à l’entrée de l’activité Data. Pour cela, placez votre curseur sur le bouton orange en forme de cercle qui se trouve en bas à droite du Generic Contact Sensors et tout en maintenant la souris enfoncée, rejoignez la case orange se trouvant à gauche de l’activité Data.

Cela fait apparaître une boite Connections. Cette boite vous permet d’indiquer quelles sont les paramètres de la liaison entre les deux cases que vous reliez sur le diagramme. Dans notre cas, cliquez dans la zone de gauche sur ContactSensorUpdate et dans la zone de droite sur Create.

Etape 4 du programme Visual Programming Language

Vous indiquez par ces choix qu’un événement sera déclenché lorsque l’état du capteur de contact change (choix de gauche) et qu’à chaque fois, cela va créer une valeur (choix de droite).

Dans la boite Data, remplacez le 0 un mot ou une phrase de votre choix. Dans la liste déroulante, changez le type de la valeur utilisé : choisissez « string » au lieu de « int ». Vous indiquez donc que la valeur qui est créée à chaque fois que le capteur de contact est activé est une valeur de type chaîne de caractère et qu’elle prend la valeur du mot ou de la phrase que vous avez choisie.

Etape 5 du programme Visual Programming Language

Glissez-déposez depuis la liste des services, un service qui se nomme SimpleDialog. Ce service affiche des fenêtres de messages simples. Comme précédemment, reliez la sortie de la boite Data à l’entrée de la boite SimpleDialog.

Dans la boite Connections qui apparaît, choisissez DataValue à gauche et AlertDialog à droite. Cela indique que la valeur de la boite Data sera passée à une boite de dialogue, c'est-à-dire une fenêtre simple qui n’affiche qu’un message. Lorsque vous cliquez sur OK, une seconde fenêtre Connections apparaît, il s’agit d’une fenêtre Data Connections vous demandant de préciser exactement quelle valeur va être passée la boite de dialogue. Dans la liste déroulante de gauche choisissez « value » au lieu de null.

Etape 6 du programme Visual Programming Language

Voilà, vous avez terminé la partie programmation. Sauvegardez votre programme.

Vous constatez donc qu’il y a trois flux en parallèle dans ce programme. Trois flux vont donc fonctionner en parallèle, le flux qui gère la conduite du robot, le flux qui gère l’interface de pilotage et enfin le flux qui gère le capteur de contact. Ce petit exemple illustre combien il est aisé de réaliser des programmes multitâche à l’aide de cet environnement.

Spécifiez quel est le robot piloté par le programme

Avant de tester, nous devons préciser quel robot va être utilisé. En effet, Visual Programming Language ne fait pas d’hypothèse sur le robot qui va être utilisé. Mieux, le programme que vous réalisez est compatible avec tout type de robot pour peu qu’il existe des services permettant de le manipuler. Préciser le robot revient à dire quelle est le constructeur du robot en question et quelle est sa configuration (combien et quels capteurs, où sont placés ces capteurs, le nombre de roues…). Toutes ces informations sont stockées dans un fichier manifest. C’est un fichier XML que vous pouvez vous-même créer. Pour notre exemple, nous allons utiliser un manifeste existant et fourni avec Microsoft Robotics Studio.

Cliquez sur la boite Generic Differential Drive, puis dans la zone Properties (zone 5), choissiez la valeur « Use a manifest » pour la liste déroulante « Configuration ». Cliquez sur le bouton « Import » et dans la liste qui apparaît, choisissez LEGO.NXT.Tribot.simulation.manifest.xml. Ce manifest représente le robot Tribot basé sur Lego Mindstorms NXT, dans l’environnement de simulation de Microsoft Robotics Studio. Cliquez sur OK.

Faire la même manipulation en sélectionnant la boîte GenericContactSensors mais cette fois, au lieu d’importer le manifest en cliquant sur le bouton import, sélectionnez le manifest précédent dans la seconde liste déroulante.

Sauvegardez votre programme. Vous êtes à présent prêt à le tester. Pour ce faire, appuyez sur la touche F5.

Utilisez le programme

Lors du lancement du programme, une fenêtre « RUN » apparaît. Cette fenêtre liste toutes les actions menées par Microsoft Robotics Studio et en particulier tous les services qui sont lancés. Cette fenêtre est très utile car elle permet d’accéder à l’interface web de chacun des services (entre autre).

Fenêtre RUN de Microsoft Visual Programming Language

Patientez quelques secondes, le temps que deux autres fenêtres soient lancées par le système. La première est un formulaire .NET nommé « Dashboard ». Cette fenêtre est votre interface de pilotage générée par le service Simple DashBoard que vous avez placé dans le programme précédemment. La seconde est l’environnement de simulation de Microsoft Robotics Studio étant donné que le manifeste du robot choisi indique qu’il ne s’agit pas d’un robot s’inscrivant dans le monde réel mais d’un robot simulé. Vous pouvez déjà vous familiariser avec cet environnement si vous ne le connaissez pas. Naviguez dans cet environnement 3d à l’aide de votre souris et des flèches sur votre clavier. Vous constatez que vous pouvez vous y déplacer, faire varier les vues mais que pour autant, le robot ne s’anime pas.

Pour ce faire, dans la fenêtre DashBoard, renseignez le champ de saisi « Machine » situé en haut à droite avec l’adresse IP locale de votre machine. Saisissez 127.0.0.1 qui est l’adresse locale par défaut, puis cliquez sur le bouton Connect situé juste en dessous. Cela charge les services représentant des robots actuellement actifs sur votre machine. Double-cliquez sur le nom du service trouvé dans la liste des services situé sous le bouton Connect puis, cliquez sur le bouton Drive qui se situe à gauche. Vous indiquez que vous souhaitez conduire (Drive) le robot représenté par le service actif. Vous y êtes !

Dashboard Visual Programming Language

Vous pouvez à présent piloter le robot à l’aide du cercle réticulé situé au dessus du bouton Stop et de votre souris. Dirigez votre robot vers le plot jaune et vérifiez qu’une fenêtre s’affiche à chaque fois que le capteur de contact situé devant le robot entre en contact avec le plot.

Conclusion

Cet article vous a présenté une première approche de Visual Programming Language. Les éléments principaux de cette première approche ont été la manière de créer un programme à l’aide de cet outil graphique, un programme dit de flux de données. Nous avons abordé le principe d’indépendance du code vis-à-vis du robot utilisé et présenté une première utilisation de l’interface de simulation.

 


Génération Robots (http://www.generationRobots.com)

Tout usage et reproduction soumis à autorisation explicite préalable.

Recherche
Interface Playstation


49,95 €

Connecteur PlayStation pour Lego Mindstorms NXT

En savoir plus

Lettre d'infos
Recevez notre lettre d'informations.
Je m'abonne
Je me désabonne
Batterie rechargeable pour Lego Mindstorms NXT
Batterie rechargeable
pour Lego Mindstorms NXT
70,00 €

Infos Securites

Toutes vos transactions sont 100% sécurisées !
En savoir plus

Génération Robots © tous droits réservés
powered by solution ecommerce solution ecommerce