-
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).
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).
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
- 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.
- 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.
|