Table des matières
Utiliser URBI depuis un client telnet est trop limité. Vous avez besoin d'envoyer des commandes et de recevoir des messages en utilisant le langage de programmation de votre choix ou, de manière plus générale, vous avez besoin d'interfacer URBI avec d'autres langages.
C'est la raison pour laquelle URBI est un Interface Language: il est bien plus qu'un simple protocole car c'est un langage de script complet agissant comme un protocole. Dans la plupart des applications où intervient l'imagerie informatique ou le traitement sonore, URBI est utilisé conjointement avec C++ ou tout autre langage véloce afin d'effectuer la partie algorithmique. URBI est là pour orchestrer vos comportements, vos boucles action/perception et tout autre élement de haut niveau, avec comme source de décisions la sortie du code rapide de C++, Java ou Matlab.
Qu'est-ce que liburbi? Vous pourriez certes programmer une couche TCP/IP pour C++ ou pour votre langage favori mais c'est relativement trivial et serait fait une fois pour toutes. Voilà pourquoi nous avons créé liburbi. Voici les fonctionnalités que l'on est en droit d'attendre:
Ouvrir une connexion vers le robot depuis son langage favori (comme C++),
Envoyer une commande au robot depuis ce langage,
Demander la valeur d'une variable et la recevoir,
Recevoir les messages provenant du robot et réagir de manière appropriée.
Le dernier point est très important et, même si cette approche est très différente de votre façon de programmer, il est essentiel de vous adapter à cette logique-ci de programmation (appelée programmation asynchrone) car elle est la plus adaptée à la robotique. Les robots sont fondamentalement des systèmes asynchrones. On attend des messages de la part du robot pour y réagir ensuite. (ceci est également appelé programmation évenementielle). C'est ce qu'un robot fait la plupart du temps: réagir à des évenements [8] .
Ce chapitre est une brève introduction à liburbi. Vous devriez lire la documentation officielle de liburbi sur http://www.urbiforge.com si vous souhaitez une description plus étoffée. Si vous programmez en C++, nous vous conseillons d'utiliser l'architecture UObject décrite plus tard dans ce tutoriel, liburbi n'étant qu'un complément à la nouvelle et prometteuse technologie UObject.
[8] Traditionnellement en Intelligence Artificielle, la manière dont le robot réagit peut être modifiée par des activités cognitives de plus haut niveau (architecture hiérarchique) ou par des propriétés (architecture subsumée) ou par une combinaison complexe de processus délibératifs et réactifs (architecture hybride)