URBI (Universal Robotic Body Interface) est un langage de script conçu pour fonctionner selon un mode client/serveur dans le but de contrôler un robot, ou plus largement, tous les types d'appareils disposant de moteurs et de capteurs. Comme nous allons le voir dans ce tutoriel, URBI est plus qu'un simple outil de pilotage, il est un système universel de contrôle du robot apportant des fonctionnalités supplémentaires via des plugins et autorisant la création d'applications interactives complexes ouvertes.
Les principales qualités d'URBI sont les suivantes :
Simplicité: Facile à comprendre et puissant à la fois, URBI convient aussi bien à l'enseignement qu'au développement d'applications professionnelles.
Flexibilité: Indépendant du robot, de l'OS, de la plateforme, URBI est également interfaçable avec de nombreux langages (C++, Java, Matlab...).
Modularité: L'architecture de composants orientés objet permet d'étendre les possibilités d'URBI grâce à une multitude de langages. Les composants peuvent être externes au serveur URBI (remote) ou intégrés (plugin).
Traitements parallèles: Exécution parallèle de commandes, gestion des accès concurrentiels aux variables, programmation évenementielle, ...
Le point probablement le plus important de ce tutoriel est le suivant : URBI a été conçu dès le début avec un souci constant de simplicité. Il n'y a pas de philosophie ou d'architecture complexe à assimiler. Il est compréhensible en quelques minutes et peut être utilisé immédiatement. Que vous développiez une application se contentant de bouger quelques articulations du robot ou une application implémentant une intelligence artificielle complexe, URBI vous fournira les outils pour vous simplifier la vie.
URBI est disponible pour beaucoup de robots et leur nombre augmente. Actuellement, il existe une version d'URBI pour Aibo, pour l'humanoïde HRP-2, pour le simulateur universel Webots, les robots Pioneer, l'iCat de Philips et d'autres humanoïdes vont suivre.
La compatibilité avec le simulateur Webots signifie qu'il est possible de passer du véritable robot à sa simulation via un simple changement d'adresse IP, et cela rend URBI particulièrement adapté à cet usage.
Dans ce tutoriel, nous avons essayé de faire une description progressive d'URBI qui s'étend des commandes simples pour les moteurs à de la programmation plus complexe ainsi qu'aux composants logiciels intégrés. Tout ceci a été rédigé dans le but d'être compréhensible par des personnes ayant peu ou pas d'expérience en matière de robotique et de programmation (exception faite des sections traitant du C++ qui exigent un minimum d'aisance avec ce langage). Cependant, de temps en temps, nous avons fourni des explications ou des compléments qui resteront probablement opaques au lecteur lambda.