Table des matières
La meilleure façon d'apprendre un nouveau langage est d'étudier de petits exemples pour voir ce qui peut être fait en pratique. Dans ce tutoriel, nous allons nous focaliser sur le détecteur de balle pour Aibo qui se révèle intéressant car son comportement n'est constitué que de deux états et parce qu'il implique une boucle perception-action qui est typique dans le domaine de la robotique. Nous allons voir comment URBI peut aider à contrôler l'exécution du comportement de façon simple grâce aux étiquettes.
Détecter une balle implique un traitement de l'image et ceci ne peut être écrit directement en URBI pour cause de performance. La meilleure façon de produire de tels composants algorithmiques (comme le traitement de l'image ou du son) est d'écrire un composant UObject en C++, Java ou Matlab et de le connecter à URBI. Nous n'allons pas nous attarder pour l'instant sur l'écriture d'un tel composant mais plutôt en utiliser un: l'objet ball.
L'objet ball est directement intégré dans l'Aibo URBI Engine et vous pouvez l'utiliser directement, comme n'importe quel device. Il n'y a pas de variable ball.val mais des variables ball.x et ball.y qui sont égales aux coordonnées de la balle dans l'image, comprises entre -1/2 et 1/2. Lorsqu'une balle est visible, ball.visible vaut 1, ou 0 dans le cas contraire. Il existe également une variable ball.ratio qui donne la proportion de pixels de la balle dans l'image, exprimée en pourcentage. Ces simples variables sont déjà intéressantes pour de nombreuses applications, tout comme nous allons le voir par la suite.