Urbi, pour Universal Real-time Behavior Interface, est un dispositif de contrôle client-serveur destiné à universaliser le pilotage de robots différents d’un point de vue matériel et logiciel mais pouvant faire fonctionner une interface de communication standardisée.
On doit la naissance d’Urbi en 2003 au fondateur de Gostaï, une société française qui développe différents environnements de programmation et contrôle de robots de service, et accessoirement sponsorise Pobot depuis juin 2010.
Urbi est désormais open-source (licence GPL) et peut être étendu facilement grâce à une interface C++ "UObject" qui standardise la connexion de code spécifique ou déjà existant au reste de l’API (ensemble de fonctions de base) existante.
Parmi les robots déjà compatibles avec URBI, on trouve des robots connus accessibles à un club :
– les Lego Mindstorms NXT (utilisés par le club)
– le robot à chenilles Spykee de Meccano
– l’aspirateur intelligent de iRobot (version Create qui ne se trouve pas en Europe car contient du plomb)
Pour les plus riches, on peut rêver avec des robots comme :
– le chien-robot de Sony (déjà vieux)
– les kits de construction haut de gamme Bioloid
– l’humanoïde qui danse (et peut-être sait marcher [1]), Nao de Aldebaran Robotics
Il y a d’autres robots mais je ne les connais pas. Vous trouverez la liste complète et mise à jour sur le site Urbi.
Les bases
J’ai indiqué dès la définition d’Urbi qu’il s’agissait d’un système client-serveur car c’est une contrainte importante : il faut un logiciel "serveur" qui tourne sur le robot, faisant l’interface bas-niveau avec l’électronique et les différents éléments, et au moins un logiciel "client" capable de se connecter au robot / serveur en IP (protocole réseau).
C’est donc une limite importante pour nous qui avons plutôt l’habitude de développer du logiciel embarqué. Certes on trouve de plus en plus de systèmes compatibles (Ethernet, Wifi), et même si le robot est de ce fait piloté par un dispositif extérieur et non plus autonome, cela permet à un plus grand nombre de développeurs d’avoir accès à la robotique.
Mais, si on a la puissance de calcul suffisante pour faire fonctionner le serveur PLUS le client sur le robot, alors on retrouve cette autonomie. Et on gagne même parfois un logiciel de contrôle compatible avec un autre hardware : on ne développe qu’une seule fois les commandes robotiques haut-niveau et on change juste l’interface bas-niveau.
Un peu de pratique
Le club disposant d’un robot Lego NXT qui est compatible avec Urbi, des ateliers pour prendre en main URBI sont proposés aux adhérents du club.
Par exemple :
– piloter un moteur Lego NXT depuis une interface en ligne de commande
– suivi de ligne sur le terrain des courses mensuelles du club
– ... autre sur demande (via le forum)
Des articles sont d’ors et déjà disponibles pour apprendre à manipuler un robot NXT avec URBI.
Pour aller plus loin
URBI peut être utilisé sur les robots de la Coupe de France, une solution intéressante surtout si on le couple à l’utilisation de Gostai Studio dont le club possède une licence.