BH Team - Mettez un python dans votre robot !

705 vues

Publié le

La BH Team participe depuis 7 ans à la Coupe de France de Robotique.

Ce challenge consiste en la conception et la réalisation complète d'un robot autonome en énergie et en commande. Les robots ainsi réalisés s'affrontent dans des matchs d'une durée de 90 secondes, sans intervention de leurs concepteurs. La principale difficulté de cette compétition est que son règlement, diffusé 9 mois à l'avance seulement, implique systématiquement un changement presque total des contraintes du jeu.

A un moment de notre parcours, nous avons eu le besoin de pouvoir décrire dans un langage de haut niveau notre stratégie. Notre expérience dans le développement logiciel nous a amené à choisir le langage Python.

Trois ans après la première édition du framework "Brewery", voici une présentation de ses capacités et des avantages qu'il confère à l'équipe.

Nous commencerons par une explication du contexte de la compétition, de l'évolution des différents modules développés par l'équipe au fur et à mesure des années, et enfin nous détaillerons les points remarquables du framework.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
705
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
4
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

BH Team - Mettez un python dans votre robot !

  1. 1. BH TEAM METTEZ UN PYTHON DANS VOTRE MOTEUR ROBOT !
  2. 2. YANNICK @yanjost yannick (at) yjost.com Pythonista depuis 1.4 BH Team depuis 2009 9 participations à la Coupe de France de Robotique La Plage Digitale
  3. 3. ERIC @eric_alber eric.alber (at) gmail.com Pythonista depuis 2.4 BH Team depuis 2010 7 participations à la Coupe de France de Robotique
  4. 4. BH TEAM 6 personnes Strasbourg, Belfort, Lyon Depuis 2007 Meilleur classement : vice-champions de France (2011) Ouéééééé Dernier classement : 19 / 146 www.bhteam.org / @thebhteam
  5. 5. LA COUPE DE FRANCE DE ROBOTIQUE
  6. 6. DE QUOI EST FAIT UN ROBOT ?
  7. 7. COMMENT CODER LA STRATÉGIE POUR LE ROBOT ? Multiples entrées-sorties (USB / Ethernet) Communication asynchrone entre les composants Tolérance aux erreurs Pas besoin de hautes performances Langage de haut niveau Rapidité de modification Utiliser des paradigmes modernes Stacktrace Bref "batteries included"
  8. 8. BREWERY ! Framework dédié à la robotique Basé sur asyncore Existe depuis 2010 (Lua → Python) Evénementiel Entrées multiplexées
  9. 9. ARCHITECTURE GÉNÉRALE
  10. 10. GESTION DES MACHINES À ÉTAT
  11. 11. GESTION DES MACHINES À ÉTAT
  12. 12. SHOW ME THE CODE ! casMi(tt) ls anSae: dfo_ne(ef: e netrsl) yedMvTGas.. il oeols(.) yedTkGas.. il aels(.) #Sic t saeMvTGas wth o tt oeols #Sic t saeTkGas wth o tt aels casMvtGasSae: ls oeols(tt) dfo_ne(ef: e netrsl) yedMvLn(oiin1 #Sic t saeMvLn, il oeiepsto_) wth o tt oeie #mv t psto 1 oe o oiin yedMvLn(oiin2 #Sic t saeMvLn, il oeiepsto_) wth o tt oeie #mv t psto 2 oe o oiin yedNn il oe #Ppbc t saeMi o ak o tt an casTkGasSae: ls aels(tt) dfo_ne(ef: e netrsl) yedCoerpe(.) il lsGipr.. yedNn il oe #Sic t saeCoerpe wth o tt lsGipr #Ppbc t saeMi o ak o tt an
  13. 13. STATE MACHINE PARALLÈLE casDPrle(tt) ls oaallSae: dfo_ne(ef: e netrsl) l =Saeahn(bra" sd =SD_ET #Satprle FM b ttMcie"amn, ie IELF) tr aall S r =Saeahn(bra" sd =SD_IH)#frec sd b ttMcie"amn, ie IERGT o ah ie yedMvLn(.,00 #Mv t satpsto il oeie10 .) oe o tr oiin yedNn il oe #Ppsae o tt
  14. 14. LE PROTOCOLE BH TEAM KISS Paquet TCP 256 octets 1 octet : type 255 octets : data Basé sur s r c tut Ordres Ouverture / fermeture actionneurs Paramétrage Ordres de déplacement
  15. 15. SÉRIALISATION API déclarative Types de données UInt Float Tableaux Enum Booléen
  16. 16. EXEMPLE casTreDtc(aeakt: ls urteetBsPce) TP =3 YE 2 DFNTO =( EIIIN (dsac' Un8(,"eeto dsac" ) 'itne, It 0 Dtcin itne) , (age 'nl' ,Un8(,"eeto age)) It 0 Dtcin nl" , (rbt 'oo' ,Unm(POETRBT OPNN_OO_AN ) Eu8OPNN_OO, POETRBTMI) , ) Introspection des paquets Visualisation des logs Génération des paquets pour l'interface web
  17. 17. UTILISATION Mapping automatique de méthode basé sur le nom du paquet TurretDetect : on_turret_detect(packet) GotoFinished : on_goto_finished(packet) casMOjc: ls ybet dfo_urtdtc(akt: e ntre_eetpce) pit"eevdpce,dsac=}.omtpce.itne) rn(Rcie akt itne{"fra(aktdsac) m_bet=MOjc( yojc ybet) p=TreDtc( urteet) #Ti clsm_beto_urtdtc() hs al yojc.ntre_eetp pdsac(yojc) .ipthm_bet
  18. 18. CALCUL DE TRAJECTOIRE Utilisation d'une "carte" du terrain Mise à jour en fonction de l'état des capteurs Problème de rapidité → réécriture en C
  19. 19. PRISE DE DÉCISION : GOAL MANAGER Heuristique Objectifs restants réalisés par le robot et son acolyte Utilisation du pathfinding : Distance des objectifs Position de l'adversaire Pas d'ordre défini mais pondération des objectifs
  20. 20. UTILISATION D'UNE CAMÉRA C++, OpenCV Invocation d'un subprocess Très fiable
  21. 21. ONE MORE THING...
  22. 22. SIMULATION
  23. 23. PAQUETS ÉCHANGÉS
  24. 24. TRAJECTOIRE DEMANDÉE & RÉELLE
  25. 25. VITESSE DÉPLACEMENT
  26. 26. VITESSE ROTATION
  27. 27. WHAT'S NEXT ? Unifier appels inter-module et les évènements Moteur physique dans le simulateur Améliorer communication entre les robots Traitement d'image plus complexe Faire un package réutilisable
  28. 28. POUR EN SAVOIR PLUS The source code : http://bitbucket.org/bhteam Twitter : @thebhteam Facebook : TheBhTeam Site : http://www.bhteam.org
  29. 29. MERCI AUX SPONSORS ! { yucmaylg } { oropn.oo }
  30. 30. CONCLUSIONS OUI : Python et robotique font bon ménage NON : Python ne peut pas tout faire Gain de productivité / vitesse de dev "Pas testé, pas validé !" Contents de notre choix !
  31. 31. CRÉDIT PHOTO http://www.mirror.co.uk/news/world-news/pythonfound-in-car-engine-16-ft-1309075 Marc Obergfell Wat Horse : http://t.qkme.me/3ttns0.jpg http://www.ludumdare.com/compo/wpcontent/uploads/2013/04/i-have-no-idea-what-imdoing-dog.jpg http://madan.wordpress.com/2007/01/06/kurukshetrarobotics-at-anna-university/ le reste : (c) BH Team

×