520 likes | 737 Views
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)
E N D
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
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
Applications • Application militaire : • Reperage d’un lieu de faconautonome et en multi-agent. • ... • Application professionelleoupersonnelle: • Surveillance d’un lieu • Aspirateur intelligent • ... • Application ludique: • Interaction entre Aibo • ...
Contexte • Mise en place • Aibo • Urbi (Universal Real-time Behavior Interface ) • Java • Tim et Bob
Contexte • Système multi-agents • Apprentissage partagé • logistique • structures de partage • Interactions entre agents • communication • types d'interactions
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
Choix envisagés • Technique de Davison • Localisation Panoramique • WiFi
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.
Technique de Davison • L’approche EKF(ExtendedKalmanFilter) : • 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.
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.
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
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
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
Architecture retenue • Détection de points d'intérêt • Landmarks • Apprentissage • Rotations et précision des calculs • Mapping • Tracking
Détection de points d'intérêt • Fast Rosten • Détection des maximums locaux
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
Landmarks • Génération de landmarks Y Rayon 20 Rho-Theta 5 Angle X
Landmarks • SSD (Sum Squared Difference) • Précision de la génération : Rayon Rayon Angle Angle
Apprentissage • Image -> Homing • Lieu • Apprentissage on-line -> Mapping • Apprentissage off-line
Rotations • Démarche du Aibo • 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 )
Précision des calculs • Influence de la précision sur le calcul de rotation d'une image.
Mapping • Estimation de la distance d'un Landmark • Précision de l'estimation accrue avec le temps
Tracking • Pourquoi le tracking : • 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
Tracking • Méthode : • 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
Tracking • Création d’un carré avec l’aibo
Tracking • Marche avant / Marche arrière
Résultats • Détection de points d’intérêts • video • Capteurs interne non fiable Courbe Wifi attendu Courbe Wifi obtenue
Résultats • Résistance des landmarks aux rotations • Vidéo
Résultats • Démo 1: • Scénario • Vidéo • Démo 2: • Scénario • Vidéo • (Démo 3)
Conclusion • Difficultés rencontrées • Evolutions possibles
Difficultés rencontrées • URBI • Problèmes d’optimisation • Aibo • WiFi • Caméra • Démarche • Input • Projet taillé pour 4
Evolutions • Mise en place de la cartographie • Système Multi-Agents • Constantes odométriques • Test sur d'autres robots que le Aibo
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 • 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
Gestion matérielle • Ordinateurs • 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
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