cette section fourni les bases pour utiliser URBI pour Webots.
Nous fournissons des mondes de démonstration, avec différents robots, qui
utilisent URBI comme controlleur. Ils sont localisés dans le répertoire:
REPERTOIRE_WEBOTS/projects/packages/urbi/worlds/
.
Ouvrez le monde nommé aibo_ers7_urbi_soccer.wbt. L'image en
dessous est une copie-écran de ce monde. Vous pouvez voir un Aibo sur un terrain de
football, avec une balle rose devant lui.
![]() |
Si vous regardez l'arbre de scène de Webots, vous verrez que cet aibo (son vrai nom est ERS7) est un noeud CustomRobot, et qu'il utilise Urbi comme contrôleur.

Voyons comment ce contrôleur vous permet de contrôler le robot.
Vous avez deux modes de contrôle votre robot avec le contrôleur URBI. Avec le premier mode, vous envoyez à distance des commandes au contrôleur URBI. Celui ci agît comme un serveur. Vous pouvez vous y connecter à travers le réseau, et lui envoyer des commandes URBI. Le second mode de controle vous permet d'écrire des scripts URBI qui seront chargés au démarage du contrôleur.
Pour se connecter au contrôleur URBI puis envoyer des commandes, vous avez besoin d'utiliser un logiciel client. Celui ci vous permet de vous connecter à une adresse sur le réseau et vous laisse envoyer des données par cette connection. Le programme client le plus simple est le programme telnet, disponible sur tous les systèmes d'exploitation (Windows, Linux et MacOs). Vous pouvez aussi utiliser un des programmes disponible sur Urbiforge (http://www.urbiforge.com) dans la section Outils (Tools). Par défaut, le contrôleur URBI lancé avec le monde aibo_er7_urbi_soccer est en attente de connections réseaux arrivant sur votre ordinateur, sur le port 54000. Aussi pour vous y connecter vous avez à spécifier l'adresse de votre ordinateur ('localhost') et le port (54000).
Pour lancer telnet sous windows cliquez sur le menu Démarer (Start dans la version anglaise), puis sur Exéctuter (Run).

Tapez cmd et cliquez sur Ok. Ceci lancera une invite de commande Dos.

Dans l'invite de commande Dos tapez telnet localhost 54000.
Ceci lance telnet. Il se connecte au contrôleur URBI, et le contrôleur URBI lui envoi l'en-tête URBI (les lignes qui s'affiche sur l'écran). Dans la fenêtre le texte est mal affiché parce que certains caractères ont des problèmes de conversion. C'est quand même utilisable même si ce n'est pas vraiment commode.
Ouvrez un nouveau shell et tapez telnet localhost 54000. Ceci lance telnet. Il se connecte au contrôleur URBI, et le contrôleur URBI vous envois l'en-tête URBI.

Maintenant que vous êtes connecté au contrôleur URBI, vous pouvez lui envoyer des commandes pour faire bouger votre robot et le faire intéragir avec son environnemnt. Par exemple essayez de taper la commande suivante dans telnet:
headPan = 50 time: 5s; headPan = -50 time: 5s; headPan = 0 time: 5s;
Vous verrez la tête d'aibo bouger vers la gauche, la droite et finalement vers le milieu.

Il est possible d'écrire des scripts URBI et de les charger au démarage du contrôleur.
Pour ce faire, il suffit d'écrire du code URBI dans un fichier, et de spécifier
son chemin dans le noeud Webots "controllerArgs".
Par exemple, créez un nouveau fichier texte, renommez le test.u et écrivez dedans:
robot.sit (),
Puis éditez le monde webots aibo_ers7_urbi_soccer.wbt, et ajoutez
chemin vers votre fichier test.u à la ligne du noeud "controllerArgs".
controllerArgs "-f -p 54000 50 [ICI AJOUTEZ VOS FICHIERS]"
Par exemple si vous avez créé votre fichier dans:
Vous pouvez spécifier le chemin de manière absolue:
Ou vous pouvez le spécifier relativement à l'emplacement du controlleur Urbi. Disons que vous utilisez le controlleur Urbi qui se trouve ici:
Alors le chemin vers votre fichier relativement au controlleur Urbi est:
Ajoutez ce chemin au champs controllerArgs et cela donne:
# Sous Windows, version chemin absolu:
controllerArgs "-f -p 54000 50 \"C:/Program Files/webots/projects/packages/urbi/data/aibo/test.u\""
(Notez l'utilisation de \" \" autour du chemin, qui est obligatoire
lorsque le chemin contient des espaces. Ici entre Program et Files)
# Sous MacOs, version chemin absolu:
controllerArgs "-f -p 54000 50 /Applications/webots/projects/packages/urbi/data/aibo/test.u"
# Sous Linux, version chemin absolu:
controllerArgs "-f -p 54000 50 /usr/local/webots/projects/packages/urbi/data/aibo/test.u"
# Version chemin relatif (os independant)
controllerArgs "-f -p 54000 50 ../../../packages/urbi/data/aibo/test.u"
NB: Si vous avez des espaces dans le chemin vers votre fichier de script, vous devez ajouters des guillemets précédés de backslash afin que Webots et Urbi comprennent les chemins correctement.
Maintenant quand vous lancez Webots et que vous lancez le monde aibo_ers7_urbi_soccer.wbt vous pouvez vérifier que le controllerArgs a été correctement mis à jour.

Et si vous regardez la fenêtre du monde, vous pouvez voir que le contrôleur a exécuté le code URBI que vous avez spécifié: l'aibo s'est assis.
![]() |