87
1 Noury Bouraqadi – JM2L 2010

Robots Mobiles & Autonomes avec Pharo

Embed Size (px)

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.

Citation preview

Page 1: Robots Mobiles & Autonomes avec Pharo

1

Nou

ry B

oura

qadi

– J

M2L

201

0

Page 2: Robots Mobiles & Autonomes avec Pharo

2

Nou

ry B

oura

qadi

– J

M2L

201

0

Page 3: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

3

Robotique Industrielle

Première

Application

Page 4: Robots Mobiles & Autonomes avec Pharo

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

Page 5: Robots Mobiles & Autonomes avec Pharo

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

Page 6: Robots Mobiles & Autonomes avec Pharo

6

Nou

ry B

oura

qadi

– J

M2L

201

0

Page 7: Robots Mobiles & Autonomes avec Pharo

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

Page 8: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

8

Robot Autonome

Décide seul des

actions à réaliser en

fonction de ses perceptions

Page 9: Robots Mobiles & Autonomes avec Pharo

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 !

Page 10: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

10

Robots Mobiles & Autonomes Drone

Page 11: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

11

Robots Humanoïdes

Page 12: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

12

Robots Mobiles & Autonomes

Robots Androïdes

Page 13: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

13

Robots Mobiles & Autonomes

Les plus utilisés

Page 14: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

14

Défis

Robots

Intelligents

Robots Rapides

Ressources Limitées

Page 15: Robots Mobiles & Autonomes avec Pharo

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

Page 16: Robots Mobiles & Autonomes avec Pharo

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

Page 17: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

17

Familles d'architectures

• Délibératives

• Réactives

• Comportementales

• Hybrides

Page 18: Robots Mobiles & Autonomes avec Pharo

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

Page 19: Robots Mobiles & Autonomes avec Pharo

19

Architectures Délibératives

Sense Plan Act

Cap

teur

s

Act

ionn

eurs

Page 20: Robots Mobiles & Autonomes avec Pharo

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

Page 21: Robots Mobiles & Autonomes avec Pharo

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

Page 22: Robots Mobiles & Autonomes avec Pharo

22

Architectures Comportementales

Sense Act

Cap

teur

s

Act

ionn

eurs

Think the Way You Act Comportement 1

Comportement 2

Comportement 3

Comportement n

Page 23: Robots Mobiles & Autonomes avec Pharo

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

Page 24: Robots Mobiles & Autonomes avec Pharo

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

Page 25: Robots Mobiles & Autonomes avec Pharo

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

Page 26: Robots Mobiles & Autonomes avec Pharo

26

Nou

ry B

oura

qadi

– J

M2L

201

0

Page 27: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

27

is a!Clean!

Innovative!Open-Source!

Smalltalk-inspired!Environment

Page 28: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

28

is a!Clean!

Innovative!Open-Source!

Smalltalk-inspired!Environment

Langage +

Bibliothèques +

Outils

Page 29: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

29

is a!Clean!

Innovative!Open-Source!

Smalltalk-inspired!Environment

Langage dynamique

à objets

Page 30: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

30

is a!Clean!

Innovative!Open-Source!

Smalltalk-inspired!Environment

Libre !

Page 31: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

31

is a!Clean !

Innovative!Open-Source!

Smalltalk-inspired!Environment

Relation avec la

recherche

Traits

Page 32: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

32

is a!Clean!

Innovative!Open-Source!

Smalltalk-inspired!Environment

Finalité Industrielle

& Pédgogique

Page 33: Robots Mobiles & Autonomes avec Pharo

33

Nou

ry B

oura

qadi

– J

M2L

201

0

par l'exemple

Page 34: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

34

WifiBotST

Robots Physiques

Framework pour programmer

Illustration

Page 35: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

35

WifiBotST

Robots Physiques

Framework pour programmer

Développé en Illustration

Page 36: Robots Mobiles & Autonomes avec Pharo

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

Page 37: Robots Mobiles & Autonomes avec Pharo

Application

Nou

ry B

oura

qadi

– J

M2L

201

0

37

Oubliez l'archaïsme des fichiers !

= Ensemble d'objets

Page 38: Robots Mobiles & Autonomes avec Pharo

Naviguer/Editer le code N

oury

Bou

raqa

di –

JM

2L 2

010

38

1

2

3

Page 39: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

39

1

2 3

4

5

Naviguer/Editer le code

Page 40: Robots Mobiles & Autonomes avec Pharo

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 !

Page 41: Robots Mobiles & Autonomes avec Pharo

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

Page 42: Robots Mobiles & Autonomes avec Pharo

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

Page 43: Robots Mobiles & Autonomes avec Pharo

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

Page 44: Robots Mobiles & Autonomes avec Pharo

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

Page 45: Robots Mobiles & Autonomes avec Pharo

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

Page 46: Robots Mobiles & Autonomes avec Pharo

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

Page 47: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

47

1 1

Page 48: Robots Mobiles & Autonomes avec Pharo

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

Page 49: Robots Mobiles & Autonomes avec Pharo

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

Page 50: Robots Mobiles & Autonomes avec Pharo

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

Page 51: Robots Mobiles & Autonomes avec Pharo

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

Page 52: Robots Mobiles & Autonomes avec Pharo

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

Page 53: Robots Mobiles & Autonomes avec Pharo

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

Page 54: Robots Mobiles & Autonomes avec Pharo

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

Page 55: Robots Mobiles & Autonomes avec Pharo

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

Page 56: Robots Mobiles & Autonomes avec Pharo

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

Page 57: Robots Mobiles & Autonomes avec Pharo

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

Page 58: Robots Mobiles & Autonomes avec Pharo

Héritage & Conditionnelles N

oury

Bou

raqa

di –

JM

2L 2

010

58

Page 59: Robots Mobiles & Autonomes avec Pharo

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

Page 60: Robots Mobiles & Autonomes avec Pharo

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

Page 61: Robots Mobiles & Autonomes avec Pharo

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

Page 62: Robots Mobiles & Autonomes avec Pharo

Les classes sont des objets ! N

oury

Bou

raqa

di –

JM

2L 2

010

62

Page 63: Robots Mobiles & Autonomes avec Pharo

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

Page 64: Robots Mobiles & Autonomes avec Pharo

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

Page 65: Robots Mobiles & Autonomes avec Pharo

Systèmes Multi-Robots

Nou

ry B

oura

qadi

– J

M2L

201

0

65

Page 66: Robots Mobiles & Autonomes avec Pharo

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

Page 67: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

67

Page 68: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

68

Page 69: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

69

Page 70: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

70

Page 71: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

71

Page 72: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

72

Page 73: Robots Mobiles & Autonomes avec Pharo

Langage Puissant N

oury

Bou

raqa

di –

JM

2L 2

010

73

Object

Class

Message Compiler

BlockClosure

Metaclass

Process

Debugger Browser Boolean

UndefinedObject

Page 74: Robots Mobiles & Autonomes avec Pharo

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

Page 75: Robots Mobiles & Autonomes avec Pharo

Echange d'identité ! N

oury

Bou

raqa

di –

JM

2L 2

010

75

v1

v2

Page 76: Robots Mobiles & Autonomes avec Pharo

Echange d'identité ! N

oury

Bou

raqa

di –

JM

2L 2

010

76

v1

v2

become: o2

Page 77: Robots Mobiles & Autonomes avec Pharo

Echange d'identité ! N

oury

Bou

raqa

di –

JM

2L 2

010

77

v1

v2

Page 78: Robots Mobiles & Autonomes avec Pharo

Echange d'identité ! N

oury

Bou

raqa

di –

JM

2L 2

010

78

v1

v2

Page 79: Robots Mobiles & Autonomes avec Pharo

Pour en savoir plus

Nou

ry B

oura

qadi

– J

M2L

201

0

79

Page 80: Robots Mobiles & Autonomes avec Pharo

•  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

Page 81: Robots Mobiles & Autonomes avec Pharo

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

Page 82: Robots Mobiles & Autonomes avec Pharo

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

Page 83: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

83

http://www.pharo-project.org/

LE Site

Page 84: Robots Mobiles & Autonomes avec Pharo

http://pharobyexample.org/

Nou

ry B

oura

qadi

– J

M2L

201

0

84

Free

LE Livre

Page 85: Robots Mobiles & Autonomes avec Pharo

Nou

ry B

oura

qadi

– J

M2L

201

0

85

http://www.pharocasts.com/

Les VIDEOS

Page 86: Robots Mobiles & Autonomes avec Pharo

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

Page 87: Robots Mobiles & Autonomes avec Pharo

87

Nou

ry B

oura

qadi

– J

M2L

201

0