Les composants et liburbi

Etendre URBI avec du code écrit en C++, Java ou Matlab qui sera accessible à vos scripts URBI peut être réalisé de deux façons. La première est d'exploiter la liburbi de votre langage préférée (C++/Java/Matlab) pour construire un client URBI. C'est ce que nous allons décrire dans ce chapitre.

La seconde, plus puissante, est de créer un composant UObject qui est associé à un objet C++. Ceci est expliqué au chapitre Créer des composants: l'architecture UObject. L'objet sera accessible comme tout autre objet URBI, partageant ses méthodes et ses attributs. Il s'agit de la manière la plus portable et la plus flexible d'incorporer des fonctionnalités inédites à URBI. Mais commençons par la traditionnelle liburbi. L'un des aspects séduisants de la liburbi est qu'elle est disponible pour de nombreux langages, bien que le jumelage-objet ne soit pas toujours possible et qu'il soit pour l'instant limité au C++. Aborder la programmation avec la liburbi permet déjà de mener à bien certains projets de programmation et, chose intéressante pour les débutants, de s'initier à l'aspect asynchrone de la robotique.

Il existe actuellement une version C++, une version Matlab, une version Java et une version Python de la liburbi si vous désirez contrôler votre robot dans l'un des langages. Il existe également une version OPEN-R, permettant de recompiler un programme pour le faire tourner uniquement sur l'Aibo. Cependant, nous vous déconseillons cette dernière approche au profit des UObject. La seule raison d'être de cette version OPEN-R est qu'elle offre une gestion implicite du multi-threading non bloquant, indisponible dans le système d'exploitation de base de l'Aibo, Aperios.

Nous ne décrirons pas ici la totalité des implémentations de liburbi mais seulement celle dédiée au C++, permettant cependant de s'introduire aux concepts généraux. Les autres versions sont similaires et possèdent chacune leur documentation. Nous supposons dans ce qui suit que vous disposez d'un minimum de connaissances sur le C++. Dans le cas contraire, consultez un rapide tutoriel C++ pour vous familiariser aux concepts de base de ce langage populaire.