robots mobiles & autonomes avec pharo
DESCRIPTION
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.TRANSCRIPT
1
Nou
ry B
oura
qadi
– J
M2L
201
0
2
Nou
ry B
oura
qadi
– J
M2L
201
0
Nou
ry B
oura
qadi
– J
M2L
201
0
3
Robotique Industrielle
Première
Application
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
5
6
Nou
ry B
oura
qadi
– J
M2L
201
0
Nou
ry B
oura
qadi
– J
M2L
201
0
7
Robot Mobile • Environnement partiellement connu et
changeant Carte ? Lois Physiques ? Dynamique ?
• Problème de navigation – Localisation – Reconnaissance – Chemins – Obstacles
Nou
ry B
oura
qadi
– J
M2L
201
0
8
Robot Autonome
Décide seul des
actions à réaliser en
fonction de ses perceptions
Nou
ry B
oura
qadi
– J
M2L
201
0
9
Robotique Industrielle
• Fonctions/trajectoires pré-définies + figées
• Pas d'interaction avec l'humain
• Environnement maîtrisé/connu
Mobilité &
Autonomie Réduites !
Nou
ry B
oura
qadi
– J
M2L
201
0
10
Robots Mobiles & Autonomes Drone
Nou
ry B
oura
qadi
– J
M2L
201
0
11
Robots Humanoïdes
Nou
ry B
oura
qadi
– J
M2L
201
0
12
Robots Mobiles & Autonomes
Robots Androïdes
Nou
ry B
oura
qadi
– J
M2L
201
0
13
Robots Mobiles & Autonomes
Les plus utilisés
Nou
ry B
oura
qadi
– J
M2L
201
0
14
Défis
Robots
Intelligents
Robots Rapides
Ressources Limitées
Nou
ry B
oura
qadi
– J
M2L
201
0
15
Logiciel de contrôle d'un robot
Cap
teur
s
Act
ionn
eurs
Environnement Physique
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
17
Familles d'architectures
• Délibératives
• Réactives
• Comportementales
• Hybrides
Nou
ry B
oura
qadi
– J
M2L
201
0
18
Architectures Délibératives
Sense Plan Act
Cap
teur
s
Act
ionn
eurs
Think then Act
19
Architectures Délibératives
Sense Plan Act
Cap
teur
s
Act
ionn
eurs
Nou
ry B
oura
qadi
- D
IA -
EM
Dou
ai
20
Architectures Réactives
Sense Act Décisions câblées
Cap
teur
s
Act
ionn
eurs
Don't think, (Re)Act
Nou
ry B
oura
qadi
– J
M2L
201
0
21
Sense Act Décisions câblées
Cap
teur
s
Act
ionn
eurs
Architectures Réactives
22
Architectures Comportementales
Sense Act
Cap
teur
s
Act
ionn
eurs
Think the Way You Act Comportement 1
Comportement 2
Comportement 3
Comportement n
Nou
ry B
oura
qadi
– J
M2L
201
0
23
Sense Act
Cap
teur
s
Act
ionn
eurs
Think the Way You Act Comportement 1
Comportement 2
Comportement 3
Comportement n
Architectures Comportementales
Nou
ry B
oura
qadi
– J
M2L
201
0
24
Architectures Hybrides
Sense Act
Réactions
Cap
teur
s
Act
ionn
eurs
Plan
Think and Act Concurrently
Nou
ry B
oura
qadi
– J
M2L
201
0
25
Architectures Hybrides
Sense Act
Réactions
Cap
teur
s
Act
ionn
eurs
Plan
Think and Act Concurrently
26
Nou
ry B
oura
qadi
– J
M2L
201
0
Nou
ry B
oura
qadi
– J
M2L
201
0
27
is a!Clean!
Innovative!Open-Source!
Smalltalk-inspired!Environment
Nou
ry B
oura
qadi
– J
M2L
201
0
28
is a!Clean!
Innovative!Open-Source!
Smalltalk-inspired!Environment
Langage +
Bibliothèques +
Outils
Nou
ry B
oura
qadi
– J
M2L
201
0
29
is a!Clean!
Innovative!Open-Source!
Smalltalk-inspired!Environment
Langage dynamique
à objets
Nou
ry B
oura
qadi
– J
M2L
201
0
30
is a!Clean!
Innovative!Open-Source!
Smalltalk-inspired!Environment
Libre !
Nou
ry B
oura
qadi
– J
M2L
201
0
31
is a!Clean !
Innovative!Open-Source!
Smalltalk-inspired!Environment
Relation avec la
recherche
Traits
Nou
ry B
oura
qadi
– J
M2L
201
0
32
is a!Clean!
Innovative!Open-Source!
Smalltalk-inspired!Environment
Finalité Industrielle
& Pédgogique
33
Nou
ry B
oura
qadi
– J
M2L
201
0
par l'exemple
Nou
ry B
oura
qadi
– J
M2L
201
0
34
WifiBotST
Robots Physiques
Framework pour programmer
Illustration
Nou
ry B
oura
qadi
– J
M2L
201
0
35
WifiBotST
Robots Physiques
Framework pour programmer
Développé en Illustration
Nou
ry B
oura
qadi
– J
M2L
201
0
36
WifiBotST Environnement de simulation
Robots Physiques Robots Virtuels
Framework pour programmer
Développé en Illustration
Application
Nou
ry B
oura
qadi
– J
M2L
201
0
37
Oubliez l'archaïsme des fichiers !
= Ensemble d'objets
Naviguer/Editer le code N
oury
Bou
raqa
di –
JM
2L 2
010
38
1
2
3
Nou
ry B
oura
qadi
– J
M2L
201
0
39
1
2 3
4
5
Naviguer/Editer le code
Nou
ry B
oura
qadi
– J
M2L
201
0
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 !
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
Nou
ry B
oura
qadi
– J
M2L
201
0
41
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
Nou
ry B
oura
qadi
– J
M2L
201
0
42
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
46
Ramasse Miettes
Nou
ry B
oura
qadi
– J
M2L
201
0
47
1 1
Langage Dynamique
Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – …
Nou
ry B
oura
qadi
– J
M2L
201
0
48
Langage Dynamique
Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – …
Nou
ry B
oura
qadi
– J
M2L
201
0
49
Langage Dynamique
Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – …
Nou
ry B
oura
qadi
– J
M2L
201
0
50
Langage Dynamique
Tout se passe à l'exécution – Définition des classes – Compilation – Vérification de type – …
Nou
ry B
oura
qadi
– J
M2L
201
0
51
Langage dynamique !
Modification de la classe à l'exécution Après la création d'instances
Nou
ry B
oura
qadi
– J
M2L
201
0
52
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
54
Itérations & Blocs de code
• Répéter un nombre de fois • Répéter tant que
Nou
ry B
oura
qadi
– J
M2L
201
0
55
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
57
Héritage & Conditionnelles N
oury
Bou
raqa
di –
JM
2L 2
010
58
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
Nou
ry B
oura
qadi
– J
M2L
201
0
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
Nou
ry B
oura
qadi
– J
M2L
201
0
60
Variables accessibles par
un seul objet
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
Nou
ry B
oura
qadi
– J
M2L
201
0
61
Les classes sont des objets ! N
oury
Bou
raqa
di –
JM
2L 2
010
62
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
Nou
ry B
oura
qadi
– J
M2L
201
0
63
Création
Terminée
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
Nou
ry B
oura
qadi
– J
M2L
201
0
64
Création
Terminée
Systèmes Multi-Robots
Nou
ry B
oura
qadi
– J
M2L
201
0
65
Collections & itérations
• Bibliothèque de collections très riche • Itérer sur une collection = envoi de message
Nou
ry B
oura
qadi
– J
M2L
201
0
66
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
67
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
68
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
69
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
70
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
71
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
72
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
73
Object
Class
Message Compiler
BlockClosure
Metaclass
Process
Debugger Browser Boolean
UndefinedObject
Langage Puissant N
oury
Bou
raqa
di –
JM
2L 2
010
74
Changer la classe
d'un objet
Retrouver les références
sur un objet
Echanger l'identité de 2
objets
Echange d'identité ! N
oury
Bou
raqa
di –
JM
2L 2
010
75
v1
v2
Echange d'identité ! N
oury
Bou
raqa
di –
JM
2L 2
010
76
v1
v2
become: o2
Echange d'identité ! N
oury
Bou
raqa
di –
JM
2L 2
010
77
v1
v2
Echange d'identité ! N
oury
Bou
raqa
di –
JM
2L 2
010
78
v1
v2
Pour en savoir plus
Nou
ry B
oura
qadi
– J
M2L
201
0
79
• 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
Nou
ry B
oura
qadi
– J
M2L
201
0
80 Programmation Visuelle
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/
Nou
ry B
oura
qadi
– J
M2L
201
0
81
Robotique @ Douai
WifiBotST http://vst.mines-douai.fr/WifiBotST
Articles, Code, Vidéos http://vst.mines-douai.fr/Robotics
Nou
ry B
oura
qadi
– J
M2L
201
0
82
Nou
ry B
oura
qadi
– J
M2L
201
0
83
http://www.pharo-project.org/
LE Site
http://pharobyexample.org/
Nou
ry B
oura
qadi
– J
M2L
201
0
84
Free
LE Livre
Nou
ry B
oura
qadi
– J
M2L
201
0
85
http://www.pharocasts.com/
Les VIDEOS
A vos agenda !
Atelier sur Pharo
Vendredi 17 juin 2011 Atelier animé par ramix
Nou
ry B
oura
qadi
– J
M2L
201
0
86
René Mages
Organisé par
Linux Azur
87
Nou
ry B
oura
qadi
– J
M2L
201
0