accueil
 
-
Page d'accueil

liste des exemples

- Spécification d'un système de vision active en robotique -


Cet exemple traite de la programmation d'un système de vision active en robotique, constitué d'un bras articulé portant une caméra. Il illustre l'utilisation de la notion de tâche flot de données introduite dans GTi [2].

La programmation au niveau tâche en robotique fait intervenir l'enchainement (sur des intervalles de temps) de fonctions de commande à comportement continu (tâches à flot de données) de facon réactive à l'environnement. On utilise SignalGti pour la programmation de stratégies perceptives d'un environnement statique dans un contexte de vision active Cette expérimentation illustre le caractère intégré de l'environnement, de la spécification en SignalGti à la mise en oeuvre séquentielle et la vérification de propriétés du comportement du système [1]. Elle s'inscrit dans une réflexion plus générale sur l'adéquation d'un environnement comme Signal en tant qu'environnement intégré de conception pour le contrôle d'applications robotiques.

Cette application a été réalisé dans le projet Temis (partie devenue VISTA) de l'IRISA/INRIA-Rennes (Eric Marchand et Francois Chaumette )en collaboration avec le projet EP-ATR, et avec le soutien du projet inter-PRC VIA (Vision Intentionnelle et Action) (en 1993-96).

photo1

Le système de vision active en robotique considéré porte sur la reconstruction 3-D d'une scène constituée de plusieurs objets en utilisant une caméra embarquée sur l'effecteur d'un robot manipulateur.

La tâche de ce robot est de créer un modèle géométrique 3D de son environnement à partir de la séquence d'images acquises en temps réel. Une méthode générale a été établie permettant de localiser toute primitive géométrique paramétrable. Il a été montré qu'un déplacement adéquat de la caméra par rapport à une unique primitive à localiser permet de minimiser les erreurs sur l'estimation des paramètres de la primitive. De tels mouvements sont réalisés en utilisant l'approche commande référencée-vision ou asservissement visuel. Cependant, cette approche ne permet de reconstruire qu'une seule primitive à la fois; de plus une connaissance a priori sur la nature de la primitive est nécessaire afin de générer les mouvements optimaux de la caméra. Il faut donc s'abstraire de ces contraintes en définissant des stratégies de perception de la scène afin de permettre une représentation 3D précise et complète de la zone à reconstruire. Le schéma de base proposé consiste à focaliser successivement la caméra sur les différents objets de la scène et à les reconstruire. La stratégie de reconstruction de la scène 3D est donc constituée de phases d'asservissement visuel durant lesquelles la primitive 3D sur laquelle la caméra est focalisée sera reconstruite, et de phases de recherche d'informations permettant de sélectionner les futures primitives à reconstruire.

Il est donc apparu clairement que l'une des difficultés de cette étude résidait, entre autres, dans la façon de gérer la dualité continu/événementiel dans la gestion du mouvement de la caméra et des stratégies de perception. Dans cette optique, Signal dipose une méthodologie de programmation unifiée permettant d'intégrer l'aspect ``continu'' des algorithmes de commande et d'estimation avec l'aspect ``événementiel'' des stratégies de perception au sein d'un langage temps réel de haut niveau. De plus, les méthodes de programmation classiques ne sont pas bien adaptées à la spécification et à l'implémentation de tels algorithmes. Un langage classique impératif requiert une prise en compte explicite des aspects bas niveau de la mise en oeuvre (tel le séquencement des calculs imposé par les dépendances entre les données) ainsi que des problèmes temporels pour lesquels ils ne fournissent pas de support ou de modèle bien établis. Les intérêts de Signal sont multiples pour cette application. D'une part, son caractère flot de données est parfaitement adapté aux tâches d'asservissement visuel et aux algorithmes de reconstruction 3D. Les opérateurs de Signal permettent une programmation aisée des algorithmes utilisant des valeurs mesurées à des instants précédents (mesure du déplacement de la caméra, mesure du déplacement des primitives entre plusieurs images successives, filtres moyennant, etc).


photo2


La figure présentant l'écran du système développé montre, en haut à gauche une représentation sous forme d'automate hiérarchique de la stratégie séquençant les tâches, au milieu l'image vue par la caméra en bout de bras articulé, et à droite une image de la reconstruction 3D de l'environnement. Plus bas, on voit les courbes décrivant l'évolution de diverses grandeurs reconstruites, et le chronogramme d'activité des différentes tâches de calcul, avec leur intervalles de temps. Le choix de l'objet de la scéne sujet à reconstruction alterne avec la reconstruction elle-même; celle-ci commence par reconnaître la nature de l'objet (re. opt. P), et ensuite dans le cas d'un cylindre son rayon et son axe (re. opt. V) puis sa longueur (re. opt. L), et dans le cas d'un segment sa longueur. En parallèle de ces tâche sont éventuellement exécutées des tâches de reconnaissance sommaire (au sens de non-optimale) d'objets qui traverseraient la scéne vue par la caméra

Références

  1. E. Marchand, E. Rutten, H. Marchand, F. Chaumette.
    Specifying and verifying active vision-based robotic systems with the Signal environment.  Int. Journal of Robotics Research, 17(4):418-432, Avril 1998.
  2. E. Rutten, E. Marchand, F. Chaumette.
    An experiment with reactive data-flow tasking in active robot vision.  Software - Practice & Experience, 27(5):599-621, Mai 1997.

 

haut


accueil

w3c-html4