LABORIE Sébastien

32
LABORIE Sébastien Validation d’applications pour les Legos Mindstorms Responsables : Yves LEDRU et Lydie du Bousquet Laboratoire : Logiciels, Systèmes et Réseaux

description

LABORIE Sébastien. Validation d’applications pour les Legos Mindstorms. Responsables : Yves LEDRU et Lydie du Bousquet Laboratoire : Logiciels, Systèmes et Réseaux. PLAN. Introduction : Contexte et Problématique I – Le robot Lego Mindstorms 1. Description - PowerPoint PPT Presentation

Transcript of LABORIE Sébastien

Page 1: LABORIE   Sébastien

LABORIE Sébastien

Validation d’applications

pour les Legos Mindstorms

Responsables : Yves LEDRU et Lydie du Bousquet

Laboratoire : Logiciels, Systèmes et Réseaux

Page 2: LABORIE   Sébastien

2

PLAN

Introduction : Contexte et Problématique

I – Le robot Lego Mindstorms1. Description2. Robot autonome ou communicant3. Positionnement du robot

II – L’application robotique1. Description2. Spécification JML3. Algorithme d’évitement d’obstacles4. Les différents résultats

Conclusion

Page 3: LABORIE   Sébastien

3

CONTEXTE

Laboratoire Logiciels, Systèmes et Réseaux

ADELE DRAKKAR PLIAGE VASCO STORMS-BD SIGMA

Etude des Logiciels

Architectures Logicielles

Spécification Validation par le test

Page 4: LABORIE   Sébastien

4

PROBLEMATIQUE(1/3)

Environnement de travail :

• Robot Lego Mindstorms :

Commandé par un ordinateur (le RCX)

qui peut être programmé en Java.

• Java Modelling Langage (JML) :

Langage de spécification formelle.

Page 5: LABORIE   Sébastien

5

PROBLEMATIQUE(2/3)

But du projet :

• Expérimenter l’utilisation de JML en combinaison avec les Legos Mindstorms.

• Spécifier en JML et réaliser en Java une application qui illustre bien l’utilisation de propriétés.

Page 6: LABORIE   Sébastien

6

PROBLEMATIQUE(3/3)

Intérêts du projet :

•Expérimenter JML sur une application robotique.

•Spécifier en JML des contraintes réelles et objectives.

•Illustrer par des expérimentations le respect de ces contraintes.

Page 7: LABORIE   Sébastien

7

I – Le robot Lego Mindstorms

Page 8: LABORIE   Sébastien

8

DESCRIPTION(1/3)

Capteur d’intensité de lumière

Capteur de contact

Robotic Command eXplorer

(RCX)

Port infrarouge

Page 9: LABORIE   Sébastien

9

DESCRIPTION(2/3)

Le RCX est composé d’une machine virtuelle Java (JVM).

Lego Java Operating System (LeJos) permet :

• L’implémentation de programmes Java.

• Le chargement de programmes Java sur le RCX.

Page 10: LABORIE   Sébastien

10

DESCRIPTION(3/3)

Conclusion :

LeJos offre tous les outils nécessaires à :

• L’implémentation de divers algorithmes.

• La réalisation d’une application robotique.

Page 11: LABORIE   Sébastien

11

Robot autonome ou communicant(1/5)

Robot autonome :

Tous les algorithmes sont chargés sur le RCX.

Robot communicant :

2 applications s’exécutent simultanément.

Robot autonome :

Obligation d’avoir du JML sur le RCX.

Page 12: LABORIE   Sébastien

12

Robot autonome ou communicant(2/5)

Problème :

LeJos applique de la « compilation croisée »

} LEJOSC

JAVA

JMLC

JAVA

JLMC

JAVA

LEJOSC

Page 13: LABORIE   Sébastien

13

Robot autonome ou communicant(3/5)

Solution :

Ecrire les librairies manquantes.

Conclusion :

• Réflexion et concertation sur cette solution.

• Abandon de l’idée de mettre du JML sur le RCX.

Page 14: LABORIE   Sébastien

14

Robot autonome ou communicant(4/5)

3 solutions :

• Connaissance de la position de l’antenne.

• Rotation du robot.

• Antenne placée au-dessus de l’environnement du robot.

Robot communicant :

Obligation de rechercher l’antenne.

Page 15: LABORIE   Sébastien

15

Robot autonome ou communicant(5/5)

Limite de la solution choisie :

Déviation limite (35 degrés ~)

Portée limite (8 mètres)

Antenne infrarouge

Robot

Page 16: LABORIE   Sébastien

16

Positionnement du robot(1/2)

Système élaboré pour notre

« navigateur »

Page 17: LABORIE   Sébastien

17

Positionnement du robot(2/2)

Avantages :

• Permet de connaître l’état de déplacement du robot.

• Certains évènements extérieurs sont pris en compte.

• Permet de limiter l’imprécision.

Conclusion :

• Ce « navigateur » nous offre une certaine précision.

• L’imprécision inhérente au robot existera toujours.

Page 18: LABORIE   Sébastien

18

II – L’application robotique

Page 19: LABORIE   Sébastien

19

Description(1/2)

Environnement Obstacles

Page 20: LABORIE   Sébastien

20

Description(2/2)

Propriétés à respecter :

• Eviter les obstacles.

• Ne pas sortir de l’environnement.

Page 21: LABORIE   Sébastien

21

Spécification JML(1/3)

Exemple de code JML :

/*@ @ public invariant (\forall int i; i>=0 && i<Obstacles.size(); @ Obstacles.get(i) instanceof Cadre || @ Obstacles.get(i) instanceof Cannette;) @*/

Public void Algorithme(…)

{…}

Page 22: LABORIE   Sébastien

22

Spécification JML(2/3)

Spécification de différentes contraintes en JML :

Contraintes liées au programme :

Les obstacles sont soit : • l’environnement. • les cannettes.

Page 23: LABORIE   Sébastien

23

Spécification JML(3/3)

Contraintes liées à l’environnement :

• Il existe un seul et unique environnement.

• Les cannettes sont dans cet environnement.

• Les cannettes ne doivent pas se superposer.

• Le chemin du robot doit être assez large.

Page 24: LABORIE   Sébastien

24

Algorithme d’évitement d’obstacles(1/4)

Première étape : Découpage du terrain en zones.

Page 25: LABORIE   Sébastien

25

Algorithme d’évitement d’obstacles(2/4)

Deuxième étape : Construction d’un graphe d’arêtes.

Graphe d’arêtes 1

2 3

5 4

6 7 6 7

9 8 9 8

10

1

2 5

43

7 8

6 9

10

Page 26: LABORIE   Sébastien

26

Algorithme d’évitement d’obstacles(3/4)

Troisième étape : Sélection d’un chemin dans le graphe.

1 10

2

3 4

5

7 8

6 9

Page 27: LABORIE   Sébastien

27

Algorithme d’évitement d’obstacles(4/4)

Quatrième étape : Sélection des points milieux des arêtes.

Page 28: LABORIE   Sébastien

28

Les différents résultats(1/3)

Environnement

ARRIVEE

Chemin à effectuer

Page 29: LABORIE   Sébastien

29

Les différents résultats(2/3)

Page 30: LABORIE   Sébastien

30

Les différents résultats(3/3)

Contrôle des différentes contraintes spécifiées en JML :

Chemin assez large Chemin trop étroit

En JML : //@ ensures ( assezLarge(\result) )

public Arete getPlusLongueADroite() {…}

Page 31: LABORIE   Sébastien

31

• JML un bon outil pour spécifier différents types de contraintes.

• Mise en évidence des propriétés JML avec l’application robotique.

• Imprécision inhérente au robot.

CONCLUSION(1/2)

Page 32: LABORIE   Sébastien

32

CONCLUSION(2/2)

Différentes évolutions de notre étude :

• Amélioration de l’algorithme de recherche de chemin.

• Utilisation du capteur d’intensité de lumière.

• Amélioration du positionnement du robot.

• Améliorer l’interaction Robot-Ordinateur.

• Diversifier le type des obstacles.