Club robotique de Sophia-Antipolis

Accueil > POBOTpedia > Lego Mindstorms > NXT avec URBI > Installation d’URBI pour Mindstorms NXT

Installation d’URBI pour Mindstorms NXT

Didacticiel pour faire fonctionner URBI sur votre robot Lego via USB

vendredi 2 juillet 2010, par Julien H.

Lien vers la page Urbiforge pour Lego Mindstorms NXT

Depuis que la plateforme de gestion URBI est passée en open-source (mai 2010), l’intérêt qu’on lui porte est croissant. Nous avions déjà présenté cette solution universelle et libre dans cet article, mais cette fois nous la mettons en pratique sur un robot, ici le Lego Mindstorms NXT.

Prérequis

Il vous faut :
 un ordinateur PC Windows (versions récentes)
 un robot Lego Mindstorms NXT (toute version)
 un câble USB (un autre article sera dédié au Bluetooth)

Téléchargements

Cette section peut être soumise à de nouveaux changements ou variations, donc prévenez-nous si vous rencontrez un problème. Au moment de la rédaction de cet article, c’est la version URBI 2.0 qui est utilisée.

De même pour les logiciels qui ne sont pas fournis par Gostai : prenez la version indiquée quand nous la connaissons, ou adaptez nos explications aux dernières versions que vous aurez récupérées.

Il vous faudra récupérer :
 le driver Lego NXT 1.02 : site support technique Lego
 le runtime Urbi 2.0 pour Windows compilée vcxx2008 : site de téléchargement Urbiforge
 la partie Urbi pour NXT 2.0 : site de téléchargement Urbiforge

Pour récupérer le runtime Urbi générique, il faut vous enregistrer avec un email valide, attendre quelques minutes en consultant vos mails et aller sur la page qui vous est envoyée. Choisissez bien la version compatible Visual Studio 2008 (vcxx2008).

Présentation de l’installation

Il y a deux aspects sensibles à cette installation. Merci à l’équipe de Gostai pour le support qu’ils nous ont apporté : avec tous les logiciels installés sur ma machine pour les Lego (NXT, NXJ, NQC, Lejos, Legos, RobotC, BrixCC, Microsoft Robotics Studio, SimplySim NXT, etc...), j’ai passé un peu de temps pour comprendre ce qui clochait concernant l’installation du driver.

Si vous rencontrez un souci, ne désespérez pas et contactez-moi pour me donner la solution que vous aurez trouvée, afin qu’elle serve aux prochains.

Le driver NXT

Le logiciel URBI fonctionne sur un mode client/serveur. Avec le robot NXT, le serveur n’est pas embarqué dans le robot, il est exécuté en local et communique par un driver avec la brique NXT (en USB ou en bluetooth, ici c’est l’USB qui est présenté, voyez le second article pour le Bluetooth).

Ce mode de fonctionnement est similaire à celui qui permet d’exécuter des programmes en cours de design depuis l’environnement Lego NXT classique, sans télécharger le programme dans la brique.

Cependant il faut passer par un driver open-source spécifique pour la communication USB : libusb-win32. Il est fourni avec la partie Urbi pour NXT 2.0 (le troisième téléchargement) mais il doit venir remplacer le driver NXT classique.

Voilà la difficulté : on a besoin du driver classique pour "reconnaître" votre brique (son numéro de connexion pour simplifier) puis il faut l’enlever pour utiliser le driver d’Urbi. Cette étape peut être automatique si votre système se rend compte de l’existence du nouveau driver, mais peut nécessiter que vous désinstalliez (au bon moment) le driver Lego.

La partie Visual C++ "redistributable"

Il n’est pas nécessaire d’avoir installé Visual Studio ou Visual Express (la solution de développement C#/C++/.NET de Microsoft) pour faire fonctionner Urbi sur Mindstorms.

Cependant, certains fichiers issus de l’environnement Visual sont nécessaires au bon fonctionnement du serveur : il existe pour cela une version minimale qui peut être distribuée et se trouve justement intégréée dans Urbi (et ce qui explique que vous deviez télécharger la version compilée vcxx2008).

Le problème que vous pouvez rencontrer est d’avoir déjà un ou plusieurs exemplaires de ce paquet, car il y a plusieurs versions. Avec de la chance, les DLL nécessaires sont les mêmes ou compatibles. Sinon, vous pourrez essayer d’identifier et de désinstaller les versions qui ne vous sont plus nécessaires, mais attendez de rencontrer un vrai problème de DLL avant de le faire, sinon vos autres programmes utilisant le runtime peuvent ne plus fonctionner.

Installation pas à pas

Récupérer tous les fichiers

Regardez la liste ci-dessus et faites un répertoire avec tous les fichiers (normalement, 3).

Désinstaller ce qui existe déjà

Supprimez votre installation d’Urbi si vous en aviez fait une avec une version précédente ou que vous avez rencontré des problèmes lors d’une première installation.

Si votre brique NXT fonctionne correctement avec le logiciel standard Lego Mindstorms, pas la peine de la désinstaller ou de réinstaller le driver. Vous sauterez cette étape.

Installer le driver NXT

Vérifiez dans la liste des programmes (panneau de configuration / ajouter-supprimer des programmes) si le driver Lego est installé, sinon procéder à l’installation avec l’archive téléchargée (exécutable dans le répertoire).

Connectez votre brique : l’assistant d’ajout d’un nouveau périphérique doit vous signaler l’insertion d’une brique NXT et procéder à la connexion et à l’installation du driver.

Si vous avez un logiciel Lego NXT, faites le test de connexion, sinon ouvrez la fenêtre de vos périphériques (clic-droit sur l’icône du poste de travail, puis Propriétés et onglet Matériel puis Gestionnaire de périphériques).

Vous devez voir une catégorie Lego NXT avec votre brique LEGO MINDSTORMS NXT connectée (pas de point d’exclamation jaune ni rouge).

Pas la peine de continuer avec URBI si ça ne fonctionne pas.

Installation du moteur générique Urbi

Le programme d’installation de Gostai Urbi 2.0 va procéder à plusieurs installations : laissez-faire et indiquez le répertoire de votre choix (c :/Program Files par défaut).

Après le moteur Urbi, le programme d’installation va proposer la Console Urbi : c’est le client en ligne de commande qui peut se connecter au serveur qui pilote le robot NXT pour vous permettre de lui transmettre des commandes en urbiscript en direct (plutôt qu’en chargeant un fichier, voir nos autres articles). Il est donc très utile de le laisser s’installer :)

Ensuite, le paquet redistribuable de Visual C++ 2008 va être installé. C’est totalement transparent, puisqu’il s’agit essentiellement de copier des assembly ou DLL dans les fichiers systèmes de Windows.

Copier la partie spécifique Mindstorms

L’archive zip du moteur Urbi pour NXT (troisième fichier téléchargé) doit être décompressée à la racine du répertoire générique installé ci-avant. Certains fichiers vont être écrasés (ce n’est pas grave, par exemple les fichiers texte de licence ou readme) donc confirmez que vous souhaitez bien avoir les nouveaux fichiers. Des répertoires sont ajoutés, notamment dans /bin (libusb) et à la racine (/data).

Préparer le driver Urbi NXT

Dans un des nouveaux répertoires apportés par Urbi pour NXT se trouvent des fichiers d’installation d’un driver. Vous ne pouvez pas l’utiliser directement, car il faut avoir détecté le numéro de votre brique telle que Windows la détecte par USB.

Pour se faire, lancer le programme bin/libusb/inf-wizard.exe : il s’agit d’un assistant qui va afficher l’ensemble des périphériques USB susceptibles de correspondre à votre robot. Choisissez dans la liste votre Lego Mindstorms NXT et validez pour déclencher l’enregistrement dans un fichier .inf.

Attention, utilisez le fichier mindstorms.inf qui existe déjà, et ne créez pas un fichier supplémentaire. Voilà, c’est fini, le driver NXT est prêt à être installé.

Installer le driver Urbi NXT

C’est à ce moment que ça a été sensible pour mon cas. On va donc décrire deux façons : la simple proposée dans la documentation officielle et celle qui a marché pour moi, plus radicale.

Normalement, débranchez votre brique de la prise USB. Faites un clic-droit sur le fichier mindstorms.inf que vous avez modifié avec l’assistant / wizard et choisissez dans le menu contextuel l’option "installer". Pas de confirmation, peut-être un clignotement des fenêtres en arrière-plan. Rebranchez votre brique et allumez-là : normalement une fenêtre d’installation de nouveau périphérique va s’ouvrir et vous demander d’indiquer l’emplacement du driver.

Ou alors (si votre brique n’a pas été vue comme un nouveau périphérique donc vous n’avez pas eu l’assistant d’installation qui aurait pu prendre les fichiers de driver d’Urbi) : allez dans la liste des programmes installés sur votre PC, désinstallez le driver Lego officiel (brique débranchée ça va de soi). Pour plus de sécurité, ouvrez le Gestionnaire des périphériques, et branchez votre brique NXT : si elle apparait comme correctement installée avec le driver Lego, faites un clic-droit "désinstaller le périphérique" (qui est différent de désinstaller son driver, ce que vous venez déjà de faire). Déconnectez puis rebranchez votre brique : là enfin vous devriez avoir l’assistant et pouvoir indiquer le répertoire libusb d’Urbi pour NXT contenant le mindstorms.inf modifié.

Tester le driver

Enfin vous pensez être prêt : une petite vérification dans le Gestionnaire de périphériques vous montrera que votre brique NXT est connectée sous "libusb-win32", ce qui est différent de la connexion Lego NXT standard (officielle).

Bravo, vous avez tout installé, ça devrait marcher. Sinon, réessayez :)

Premiers tests

Lancement du serveur

A la racine du répertoire d’installation d’Urbi engine, vous trouverez deux programmes batch : urbi-launch-nxt et urbi-launch.d-nxt

Vous n’avez pas à les modifier pour utiliser normalement Urbi pour NXT via USB, en local sur le port par défaut.

Connectez votre brique NXT, avec un moteur sur la sortie C et le capteur ultrason sur l’entrée 4. Pas besoin de plus pour le moment, mais si vous avez sous la main la configuration de base "Tribot", ne la détruisez pas car c’est celle-ci qui est utilisée par défaut :)

Cliquez sur le premier bat, cela lance une fenêtre DOS avec la bienvenue à Urbi puis les messages spécifiques : lancement du NXT, connexion par USB, etc...

Normalement vous devriez avoir des messages positifs (copie d’écran à venir). Chouette, vous voilà prêt à commander votre NXT en Urbiscript.

Laissez la fenêtre ouverte, c’est votre serveur : il vous indiquera différents événements internes au robot ou aux scripts en cours sur le robot.

Lancement du client (console)

Sur le bureau Windows, une icône spécifique doit indiquer la bonne installation de la console URBI : double-cliquez, ou allez la chercher dans les programmes du menu Démarrer.

Cette console est très simple : une ligne d’adresse, un bouton de connexion, une fenêtre de message et une fenêtre de saisie. Vous n’avez pas à modifier l’adresse, cliquez seulement sur le bouton de connexion : il vire au vert et une invite de bienvenue similaire à celle du serveur s’affiche.

Vous voilà prêt à dialoguer avec votre robot (ou plutôt avec le serveur local qui commande votre robot).

Premières commandes

Pour cela, il faudra attendre nos ateliers.

Vos commentaires

  • Le 7 juillet 2011 à 22:40, par Max En réponse à : Installation d’URBI pour Mindstorms NXT

    C’est vieux, mais ca pourrait servir pour ceux qui, comme moi, ont un peu galéré avec des versions x64 de windows.

    Les versions 64 bits de seven et vista n’acceptent pas les drivers non signés. Il faut passer par les dernières versions de la libusb-win32 (1.2.0.0 et supérieures) pour pouvoir les installer.

    Répondre à ce message

  • Le 3 octobre 2010 à 18:10, par Thierry En réponse à : Installation d’URBI pour Mindstorms NXT

    J’ai parcouru votre article sur l’installation de Urbi pour le robot Nxt. Je rencontre un problème concernant l’installation d’Urbi, à la fin de l’intallation, j’ai un message m’indiquant que "Microsoft Visual Studio 2008 not detected, not installing the uobjet wizard". Le fait de ne pas avoir l’installation de Uobjet me bloque lors du lancement du programme car j’obtiens un erreur avec nxt.u can’t open car la librarie Libuobject-vc90-d.dll n’est pas installée. J’ai essayé avec le version urbi 2.2 vcxx2008 puis le 2.0.1 et toujour le même message à la fin de l’installation. Avez-vous déjà rencontré ce problème ? pouvez-vous m’orienter ? (l’installation se fait sous windows seven édition starter)

    • Le 3 octobre 2010 à 21:35, par Julien H. En réponse à : Installation d’URBI pour Mindstorms NXT

      Bonjour Thierry,

      J’avais ce problème avec la version précédente lors du lancement d’Urbi 2.0, mais celle qu’ils ont mis en ligne ne me l’a pas fait.. sauf que j’avais installé Visual Express C++ entre temps pour d’autres besoins.

      Il est certain qu’on doit pouvoir le faire fonctionner sans installer cet environnement de développement, même s’il est gratuit. Je vais poser la question au club, si quelqu’un a fait l’installation sur un Windows 7 vierge de tout runtime.

      Si un visiteur lit ce problème et connait la solution, merci de nous aider !

    • Le 5 octobre 2010 à 18:32, par Julien H. En réponse à : Installation d’URBI pour Mindstorms NXT

      J’ai vu qu’une nouvelle version d’urbi a été mise à disposition, qui corrige un problème de déploiement UObject sous Windows : peut être que ça correspond à ton problème ?

    Répondre à ce message

  • Le 23 juillet 2010 à 21:47, par ? En réponse à : Installation d’URBI pour Mindstorms NXT

    et bien merci pour cette doc, parce qu’avec la doc officielle qui laisse croire que c’est hyper simple et ne décrit rien, c’est pas facile !

    Répondre à ce message

Un message, un commentaire ?

modération a priori

Attention, votre message n’apparaîtra qu’après avoir été relu et approuvé.

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.