1 / 52

Pré-soutenance Technique

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)

dylan
Download Presentation

Pré-soutenance Technique

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pré-soutenance Technique Couverture visuelle automatique par un groupe de robots Année 2006-2007 PARENT Pierre, GUEUCIER Sébastien, BOISTEAULT Nicolas

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

  3. Plan • Introduction • Choix envisagés • Architecture retenue • Résultats • Conclusion

  4. Introduction • Objectifs • Applications • Contexte • Mise en place • Système multi-agents • Marche aléatoire

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

  6. 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 • ...

  7. Contexte • Mise en place • Aibo • Urbi (Universal Real-time Behavior Interface ) • Java • Tim et Bob

  8. Contexte • Système multi-agents • Apprentissage partagé • logistique • structures de partage • Interactions entre agents • communication • types d'interactions

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

  10. Choix envisagés • Technique de Davison • Localisation Panoramique • WiFi

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

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

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

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

  15. Localisation Panoramique

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

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

  18. Architecture retenue • Détection de points d'intérêt • Landmarks • Apprentissage • Rotations et précision des calculs • Mapping • Tracking

  19. Détection de points d'intérêt • Fast Rosten • Détection des maximums locaux

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

  21. Landmarks • Génération de landmarks Y Rayon 20 Rho-Theta 5 Angle X

  22. Landmarks • SSD (Sum Squared Difference) • Précision de la génération : Rayon Rayon Angle Angle

  23. Apprentissage • Image -> Homing • Lieu • Apprentissage on-line -> Mapping • Apprentissage off-line

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

  25. Précision des calculs • Influence de la précision sur le calcul de rotation d'une image.

  26. Mapping

  27. Mapping • Estimation de la distance d'un Landmark • Précision de l'estimation accrue avec le temps

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

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

  30. Tracking

  31. Tracking

  32. Tracking • Création d’un carré avec l’aibo

  33. Tracking • Marche avant / Marche arrière

  34. Résultats • Détection de points d’intérêts • video • Capteurs interne non fiable Courbe Wifi attendu Courbe Wifi obtenue

  35. Résultats • Résistance des landmarks aux rotations • Vidéo

  36. Résultats • Démo 1: • Scénario • Vidéo • Démo 2: • Scénario • Vidéo • (Démo 3)

  37. Conclusion • Difficultés rencontrées • Evolutions possibles

  38. Difficultés rencontrées • URBI • Problèmes d’optimisation • Aibo • WiFi • Caméra • Démarche • Input • Projet taillé pour 4

  39. Evolutions • Mise en place de la cartographie • Système Multi-Agents • Constantes odométriques • Test sur d'autres robots que le Aibo

  40. FIN

  41. ANNEXE • Rôle de chacun • Evolution • Gestion matérielle • Analyse des risques • Arbre de Rosten • Rotation • Caméra • Panorama • Technique de Davison

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

  43. Rôle de chacun

  44. Evolution

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

  46. Analyse des risques • Projet taillé au minimum pour 4 • Domaine de recherche active • Projet complexe et coûteux en temps

  47. Arbre de Rosten

  48. 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; }

  49. 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; }

  50. Caméra • Images obtenues avec la caméra

More Related