Pré-soutenance Technique Couverture visuelle automatique par un groupe de robots Année 2006-2007 PARENT Pierre, GUEUCIER Sébastien, BOISTEAULT Nicolas
Composition de l’équipe Equipe du projet Pierre PARENT (Chef de projet et responsable technique) Sébastien GUEUCIER (Responsable qualité) Nicolas BOISTEAULT Clients Pierre ANDRY Philippe LAROQUE
Plan Introduction Choix envisagés Architecture retenue Résultats Conclusion
Introduction Objectifs Applications Contexte Mise en place Système multi-agents Marche aléatoire Introduction Choix envisagés Architecture retenue Résultats Conclusion
Objectifs Localisation d’Aibo au sein d'un environnement inconnu. Apprentissage d’un lieu et s'y rendre de manière autonome. Système multi-agents: Comportement coopératif Partage d’informations Introduction Choix envisagés Architecture retenue Résultats Conclusion
Applications Application militaire : Reperage d’un lieu de facon autonome et en multi-agent. ... Application professionelle ou personnelle: Surveillance d’un lieu Aspirateur intelligent Application ludique: Interaction entre Aibo Introduction Choix envisagés Architecture retenue Résultats Conclusion
Contexte Mise en place Aibo Urbi (Universal Real-time Behavior Interface ) Java Tim et Bob Introduction Choix envisagés Architecture retenue Résultats Conclusion
Contexte Système multi-agents Apprentissage partagé logistique structures de partage Interactions entre agents communication types d'interactions Introduction Choix envisagés Architecture retenue Résultats Conclusion
Contexte Marche aléatoire Marche préemptible Choix plus ou moins aléatoire des trajectoires Adaptation du comportement en cas d’obstacle vue: Arrêt du Aibo Rotation du robot Introduction Choix envisagés Architecture retenue Résultats Conclusion
Choix envisagés Technique de Davison Localisation Panoramique WiFi Introduction Choix envisagés Architecture retenue Résultats Conclusion
Technique de Davison SLAM(Self Localization And Mapping) à partir d’une seule caméra Contraintes sur les points d’intérêt : Ils doivent être pertinents Un nombre minimum doit toujours être visible dans l’image, quand ce n’est pas le cas, une nouvelle carte de points d’intérêt est initialisée. Ces points d’intérêt doivent être répartis dans toute l’image. Introduction Choix envisagés Architecture retenue Résultats Conclusion
Technique de Davison L’approche EKF(Extended Kalman Filter) : X = ( Xv , Y1, Y2, … , Yn ) est composé de : Xv : position, orientation, vitesse linéaire ainsi que la vitesse angulaire de la camera. Yn : paramètres composant le vecteur de la position 3D des points d’intérêt. Pas d’odomètrie modèle à vitesse constante Ce modèle exige des paramètres définissant: le nombre d’images par seconde le maximum de la vitesse linéaire et angulaire. Introduction Choix envisagés Architecture retenue Résultats Conclusion
Technique de Davison Limitations de la technique de Davison: Les mouvements de la caméra pour lesquels le tracking peut être maintenu sont limités Vitesse de mouvement de la caméra limité Angle de la caméra Technique non adapté à notre environnement de test, et aux caractéristiques de l’Aibo. Introduction Choix envisagés Architecture retenue Résultats Conclusion
Localisation Panoramique Ce procédé est une technique utilisée lors des tournois de foot de Aibo, le Four-Legged League soccer, afin de pouvoir apprendre un environnement et s’y localiser Introduction Choix envisagés Architecture retenue Résultats Conclusion
Localisation Panoramique Introduction Choix envisagés Architecture retenue Résultats Conclusion
WIFI L’utilisation du WIFI aurait dû être un axe majeur de notre projet. Nos tests nous ont démontrés le contraire. Les raisons principales sont: La non linéarité du signal WiFi Paliers de décroissance pas assez marqué Superficie de test restreinte Position de l’émetteur/récepteur WiFi du Aibo Introduction Choix envisagés Architecture retenue Résultats Conclusion
WIFI Tout n’est cependant pas à rejeter dans le WiFi: Positionnement à large échelle du Aibo Le WiFi reste également le moyen que nous avons choisi pour les communications PC/Robot et Robot/PC Introduction Choix envisagés Architecture retenue Résultats Conclusion
Architecture retenue Détection de points d'intérêt Landmarks Apprentissage Rotations et précision des calculs Mapping Tracking Introduction Choix envisagés Architecture retenue Résultats Conclusion
Détection de points d'intérêt Fast Rosten Détection des maximums locaux Introduction Choix envisagés Architecture retenue Résultats Conclusion
Détection de points d'intérêt Optimisation: 2651 lignes en version de l'auteur 70 lignes dans notre version (sans l’arbre) Angle Introduction Choix envisagés Architecture retenue Résultats Conclusion
Landmarks Génération de landmarks Y Rayon Rho-Theta Angle X 20 5 Introduction Choix envisagés Architecture retenue Résultats Conclusion
Landmarks SSD (Sum Squared Difference) Précision de la génération : Rayon Rayon Angle Angle Introduction Choix envisagés Architecture retenue Résultats Conclusion
Apprentissage Image -> Homing Lieu Apprentissage on-line -> Mapping Apprentissage off-line Introduction Choix envisagés Architecture retenue Résultats Conclusion
Rotations Démarche du Aibo Recherche d'un invariant aux rotations Vidéo Recherche d'un invariant aux rotations Recherche d’un maximum dans le Landmark Angle du point d'intérêt Calcul de cet invariant ( arbre de rosten ) Introduction Choix envisagés Architecture retenue Résultats Conclusion
Précision des calculs Influence de la précision sur le calcul de rotation d'une image. Introduction Choix envisagés Architecture retenue Résultats Conclusion
Mapping Introduction Choix envisagés Architecture retenue Résultats Conclusion
Mapping Estimation de la distance d'un Landmark Précision de l'estimation accrue avec le temps Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Pourquoi le tracking : Outils : Estimer l’odomètrie de l’aibo Comparer le trajet réel de l’aibo à des estimations issues des différentes méthodes Outils : Langage Java Utilisation de la JMF Caméra + carte d’acquisition Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Méthode : Composantes RGB < Seuil Capture d’une image toutes les secondes Critère de sélection des points de l’image : Composantes RGB < Seuil RGBcourant - RGBprécédent > Diff entre l’image courante et la précédente On situe le centre de l’aibo au milieu du premier et du dernier point retenu On ne traite qu’une zone de l’image autour de l’aibo Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Création d’un carré avec l’aibo Introduction Choix envisagés Architecture retenue Résultats Conclusion
Tracking Marche avant / Marche arrière Introduction Choix envisagés Architecture retenue Résultats Conclusion
Résultats Détection de points d’intérêts Capteurs interne non fiable video Capteurs interne non fiable Courbe Wifi attendu Courbe Wifi obtenue Introduction Choix envisagés Architecture retenue Résultats Conclusion
Résultats Résistance des landmarks aux rotations Vidéo Introduction Choix envisagés Architecture retenue Résultats Conclusion
Résultats Démo 1: Démo 2: (Démo 3) Scénario Vidéo Introduction Choix envisagés Architecture retenue Résultats Conclusion
Conclusion Difficultés rencontrées Evolutions possibles Introduction Choix envisagés Architecture retenue Résultats Conclusion
Difficultés rencontrées URBI Problèmes d’optimisation Aibo WiFi Caméra Démarche Input Projet taillé pour 4 Introduction Choix envisagés Architecture retenue Résultats Conclusion
Evolutions Mise en place de la cartographie Système Multi-Agents Constantes odométriques Test sur d'autres robots que le Aibo Introduction Choix envisagés Architecture retenue Résultats Conclusion
FIN
ANNEXE Rôle de chacun Evolution Gestion matérielle Analyse des risques Arbre de Rosten Rotation Caméra Panorama Technique de Davison
Rôle de chacun Pierre PARENT Sébastien GUEUCIER Nicolas BOISTEAULT Traitement d’images (Rosten, Hough, Harris, …) Apprentissage de Landmarks Mise en place des algorithmes sur le Aibo Sébastien GUEUCIER Marche aléatoire Test WIFI, Panorama, … Etude de la technique de Davison et de la localisation panoramique. Nicolas BOISTEAULT Tracking
Rôle de chacun
Evolution
Gestion matérielle Ordinateurs Communications Choix du Aibo 3 pc de bureau, 1 ordinateur portable Communications Routeur et clés USB WIFI afin de communiquer avec le robot Choix du Aibo Robot disponible et équipé du WIFI, caméra, … Choix de URBI Universel, simple et multi-langage Pas de périphérique: Aucun élément n’a été ajouté au Aibo
Analyse des risques Projet taillé au minimum pour 4 Domaine de recherche active Projet complexe et coûteux en temps
Arbre de Rosten
Rotation Mauvaise précision : public static Raster badPrecisionRotation (Raster raster, int angle) { int rayon=raster.getWidth()/2,x,y; double theta,r; int pixel[] = new int[1]; WritableRaster out=raster.createCompatibleWritableRaster(); for (int i = -rayon; i <= rayon; i++) { for (int j = -rayon; j <= rayon; j++) { r = Math.sqrt (i * i + j * j); if (r >= 0 && r <= rayon) { raster.getPixel (i + rayon, j + rayon, pixel); theta = Math.atan2(j, i)+Math.toRadians(angle); x=(int)(r*Math.cos(theta)); y=(int)(r*Math.sin(theta)); out.setPixel (rayon + x, rayon + y, pixel); } else { pixel[0] = 255; out.setPixel (i + rayon, j + rayon, pixel); } } return out;
Rotation Bonne précision : public static Raster goodPrecisionRotation (Raster raster, int angle) { WritableRaster out; AffineTransform tx = new AffineTransform (); tx.rotate (Math.toRadians (angle), raster.getWidth()/2, raster.getWidth()/2); AffineTransformOp op = new AffineTransformOp (tx, AffineTransformOp.TYPE_BILINEAR); out = raster.createCompatibleWritableRaster (); op.filter (raster, out); return out; }
Caméra Images obtenues avec la caméra
Création d’un panorama Pertes d’informations Duplicité des éléments
Technique de Davison Exemple d’un résultat obtenue