Robots Mobiles & Autonomes avec Pharo

2,146 views
2,023 views

Published on

Autonomous Mobile Robots with Pharo Smalltalk. Presentation given at the JM2L (Journées Méditérrannéennes des logiciels libres). 27 nov 2010.
First introduce mobile robotics and robotic software architectures. Then presents Pharo using robotic examples.

Published in: Technology, Business
1 Comment
1 Like
Statistics
Notes
  • The PDF is also available on my site http://car.mines-douai.fr/noury/docs
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,146
On SlideShare
0
From Embeds
0
Number of Embeds
125
Actions
Shares
0
Downloads
58
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Robots Mobiles & Autonomes avec Pharo

  1. 1. 1 NouryBouraqadi–JM2L2010
  2. 2. 2 NouryBouraqadi–JM2L2010
  3. 3. NouryBouraqadi–JM2L2010 3 Robotique Industrielle Première Application
  4. 4. Robots? 1.  Machine, automate à l'aspect humain, capable de se mouvoir et d'agir. => androïde, humanoïde […] 2.  Mécanisme automatique à commande électronique pouvant se substituer à l'homme pour effectuer certaines opérations, et capable d'en modifier de lui-même le cycle en appréhendant son environnement (=>automatique, cybernetique) […] Le petit Robert NouryBouraqadi–JM2L2010 4
  5. 5. Robots? 1.  Machine, automate à l'aspect humain, capable de se mouvoir et d'agir. => androïde, humanoïde […] 2.  Mécanisme automatique à commande électronique pouvant se substituer à l'homme pour effectuer certaines opérations, et capable d'en modifier de lui-même le cycle en appréhendant son environnement (=>automatique, cybernetique) […] Le petit Robert NouryBouraqadi–JM2L2010 5
  6. 6. 6 NouryBouraqadi–JM2L2010
  7. 7. NouryBouraqadi–JM2L2010 7 Robot Mobile •  Environnement partiellement connu et changeant  Carte ? Lois Physiques ? Dynamique ? •  Problème de navigation – Localisation – Reconnaissance – Chemins – Obstacles
  8. 8. NouryBouraqadi–JM2L2010 8 Robot Autonome Décide seul des actions à réaliser en fonction de ses perceptions
  9. 9. NouryBouraqadi–JM2L2010 9 Robotique Industrielle •  Fonctions/trajectoires pré-définies + figées •  Pas d'interaction avec l'humain •  Environnement maîtrisé/connu Mobilité & Autonomie Réduites !
  10. 10. NouryBouraqadi–JM2L2010 10 Robots Mobiles & Autonomes Drone
  11. 11. NouryBouraqadi–JM2L2010 11 Robots Humanoïdes
  12. 12. NouryBouraqadi–JM2L2010 12 Robots Mobiles & Autonomes Robots Androïdes
  13. 13. NouryBouraqadi–JM2L2010 13 Robots Mobiles & Autonomes Les plus utilisés
  14. 14. NouryBouraqadi–JM2L2010 14 Défis Robots Intelligents Robots Rapides Ressources Limitées
  15. 15. NouryBouraqadi–JM2L2010 15 Logiciel de contrôle d'un robot Capteurs Actionneurs Environnement Physique
  16. 16. NouryBouraqadi–JM2L2010 16 •  Sense – Lire les capteurs – Extraire des informations utiles •  Plan – Prendre des décisions •  Act – Exécuter des actions simples – Ex: Avancer, reculer, tourner, … Logiciel de contrôle d'un robot
  17. 17. NouryBouraqadi–JM2L2010 17 Familles d'architectures • Délibératives • Réactives • Comportementales • Hybrides
  18. 18. NouryBouraqadi–JM2L2010 18 Architectures Délibératives Sense Plan Act Capteurs Actionneurs Think then Act
  19. 19. 19 Architectures Délibératives Sense Plan Act Capteurs Actionneurs
  20. 20. NouryBouraqadi-DIA-EMDouai 20 Architectures Réactives Sense ActDécisions câblées Capteurs Actionneurs Don't think, (Re)Act
  21. 21. NouryBouraqadi–JM2L2010 21 Sense ActDécisions câblées Capteurs Actionneurs Architectures Réactives
  22. 22. 22 Architectures Comportementales Sense Act Capteurs Actionneurs Think the Way You Act Comportement 1 Comportement 2 Comportement 3 Comportement n
  23. 23. NouryBouraqadi–JM2L2010 23 Sense Act Capteurs Actionneurs Think the Way You Act Comportement 1 Comportement 2 Comportement 3 Comportement n Architectures Comportementales
  24. 24. NouryBouraqadi–JM2L2010 24 Architectures Hybrides Sense Act Réactions Capteurs Actionneurs Plan Think and Act Concurrently
  25. 25. NouryBouraqadi–JM2L2010 25 Architectures Hybrides Sense Act Réactions Capteurs Actionneurs Plan Think and Act Concurrently
  26. 26. 26 NouryBouraqadi–JM2L2010
  27. 27. NouryBouraqadi–JM2L2010 27 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment
  28. 28. NouryBouraqadi–JM2L2010 28 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment Langage + Bibliothèques + Outils
  29. 29. NouryBouraqadi–JM2L2010 29 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment Langage dynamique à objets
  30. 30. NouryBouraqadi–JM2L2010 30 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment Libre !
  31. 31. NouryBouraqadi–JM2L2010 31 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment Relation avec la recherche Traits
  32. 32. NouryBouraqadi–JM2L2010 32 is a! Clean! Innovative! Open-Source! Smalltalk-inspired! Environment Finalité Industrielle & Pédgogique
  33. 33. 33 NouryBouraqadi–JM2L2010 par l'exemple
  34. 34. NouryBouraqadi–JM2L2010 34 WifiBotST Robots Physiques Framework pour programmer Illustration
  35. 35. NouryBouraqadi–JM2L2010 35 WifiBotST Robots Physiques Framework pour programmer Développé en Illustration
  36. 36. NouryBouraqadi–JM2L2010 36 WifiBotST Environnement de simulation Robots Physiques Robots Virtuels Framework pour programmer Développé en Illustration
  37. 37. Application NouryBouraqadi–JM2L2010 37 Oubliez l'archaïsme des fichiers ! = Ensemble d'objets
  38. 38. Naviguer/Editer le codeNouryBouraqadi–JM2L2010 38 1 2 3
  39. 39. NouryBouraqadi–JM2L2010 39 1 2 3 4 5 Naviguer/Editer le code
  40. 40. NouryBouraqadi–JM2L2010 40 Interface avec l'OS = 4 fichiers – Machine virtuelle – Image mémoire : lecture / écriture – Source des bibliothèques de base : lecture seule – Sources des changements : •  lecture / sauvegarde automatique •  Quasi-impossible de perdre les sources ! •  Versionning sans effort !
  41. 41. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13 caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 41
  42. 42. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 42
  43. 43. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13 caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 43
  44. 44. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13 caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 44
  45. 45. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13 caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 45
  46. 46. Langage Simple •  Peu de concepts / règles – 6 Mots réservés – 13 caractères spéciaux – 5 concepts centraux – 4 expressions de base – 1 mode de gestion de la mémoire NouryBouraqadi–JM2L2010 46 Ramasse Miettes
  47. 47. NouryBouraqadi–JM2L2010 47 1 1
  48. 48. Langage Dynamique Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – … NouryBouraqadi–JM2L2010 48
  49. 49. Langage Dynamique Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – … NouryBouraqadi–JM2L2010 49
  50. 50. Langage Dynamique Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – … NouryBouraqadi–JM2L2010 50
  51. 51. Langage Dynamique Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – … NouryBouraqadi–JM2L2010 51
  52. 52. Langage dynamique ! Modification de la classe à l'exécution Après la création d'instances NouryBouraqadi–JM2L2010 52
  53. 53. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 53
  54. 54. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 54
  55. 55. Itérations & Blocs de code •  Répéter un nombre de fois •  Répéter tant que NouryBouraqadi–JM2L2010 55
  56. 56. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 56
  57. 57. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 57
  58. 58. Héritage & Conditionnelles NouryBouraqadi–JM2L2010 58
  59. 59. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 59
  60. 60. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 60 Variables accessibles par un seul objet
  61. 61. Langage Uniforme •  Pas d'exception aux règles – Tout est objet •  nombres, tableaux, classes, compilateur, IDE, … – Toute méthode retourne une valeur – Toute action == envoi de message •  création d'objets, définition de classes, if, while, … – Toutes les classes et les méthodes sont publics – Tous les champs sont privés – Tout objet est instance d'une classe NouryBouraqadi–JM2L2010 61
  62. 62. Les classes sont des objets ! NouryBouraqadi–JM2L2010 62
  63. 63. Les procesus sont des objets Multi-tâche préemptif – Chaque tâche a une priorité modifiable – Exécution de la tâche prête la plus prioritaire NouryBouraqadi–JM2L2010 63 Création Terminée
  64. 64. Les procesus sont des objets Multi-tâche préemptif – Chaque tâche a une priorité modifiable – Exécution de la tâche prête la plus prioritaire NouryBouraqadi–JM2L2010 64 Création Terminée
  65. 65. Systèmes Multi-Robots NouryBouraqadi–JM2L2010 65
  66. 66. Collections & itérations •  Bibliothèque de collections très riche •  Itérer sur une collection = envoi de message NouryBouraqadi–JM2L2010 66
  67. 67. Langage PuissantNouryBouraqadi–JM2L2010 67
  68. 68. Langage PuissantNouryBouraqadi–JM2L2010 68
  69. 69. Langage PuissantNouryBouraqadi–JM2L2010 69
  70. 70. Langage PuissantNouryBouraqadi–JM2L2010 70
  71. 71. Langage PuissantNouryBouraqadi–JM2L2010 71
  72. 72. Langage PuissantNouryBouraqadi–JM2L2010 72
  73. 73. Langage PuissantNouryBouraqadi–JM2L2010 73 Object Class Message Compiler BlockClosure Metaclass Process Debugger Browser Boolean UndefinedObject
  74. 74. Langage PuissantNouryBouraqadi–JM2L2010 74 Changer la classe d'un objet Retrouver les références sur un objet Echanger l'identité de 2 objets
  75. 75. Echange d'identité ! NouryBouraqadi–JM2L2010 75 v1 v2
  76. 76. Echange d'identité ! NouryBouraqadi–JM2L2010 76 v1 v2 become: o2
  77. 77. Echange d'identité ! NouryBouraqadi–JM2L2010 77 v1 v2
  78. 78. Echange d'identité ! NouryBouraqadi–JM2L2010 78 v1 v2
  79. 79. Pour en savoir plus NouryBouraqadi–JM2L2010 79
  80. 80. •  Physical-eToys http://tecnodacta.com.ar/gira/projects/physical -etoys/ •  Phidgetlab http://www.hpi.uni-potsdam.de/hirschfeld /projects/phidgetlab/ •  SqueakBot http://wiki.laptop.org/go/Projects/SqueakBot NouryBouraqadi–JM2L2010 80 Programmation Visuelle
  81. 81. Smalltalks dédiés •  NxTalk : Lego Mindstorm http://www.hpi.uni-potsdam.de/hirschfeld /projects/nxtalk/ •  Smalltalk pour PIC http://www.huv.com/uSeeker/smalltalk/pic.html •  FoxTalk http://foxtalkbots.com/ NouryBouraqadi–JM2L2010 81
  82. 82. Robotique @ Douai WifiBotST http://vst.mines-douai.fr/WifiBotST Articles, Code, Vidéos http://vst.mines-douai.fr/Robotics NouryBouraqadi–JM2L2010 82
  83. 83. NouryBouraqadi–JM2L2010 83 http://www.pharo-project.org/ LE Site
  84. 84. http://pharobyexample.org/ NouryBouraqadi–JM2L2010 84 Free LE Livre
  85. 85. NouryBouraqadi–JM2L2010 85 http://www.pharocasts.com/ Les VIDEOS
  86. 86. A vos agenda ! Atelier sur Pharo Vendredi 17 juin 2011 Atelier animé par ramix NouryBouraqadi–JM2L2010 86 René Mages Organisé par Linux Azur
  87. 87. 87 NouryBouraqadi–JM2L2010

×