View
39
Download
0
Category
Preview:
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
Citation preview
LABORIE Sébastien
Validation d’applications
pour les Legos Mindstorms
Responsables : Yves LEDRU et Lydie du Bousquet
Laboratoire : Logiciels, Systèmes et Réseaux
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
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
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.
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.
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.
7
I – Le robot Lego Mindstorms
8
DESCRIPTION(1/3)
Capteur d’intensité de lumière
Capteur de contact
Robotic Command eXplorer
(RCX)
Port infrarouge
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.
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.
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.
12
Robot autonome ou communicant(2/5)
Problème :
LeJos applique de la « compilation croisée »
} LEJOSC
JAVA
JMLC
JAVA
JLMC
JAVA
LEJOSC
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.
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.
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
16
Positionnement du robot(1/2)
Système élaboré pour notre
« navigateur »
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.
18
II – L’application robotique
19
Description(1/2)
Environnement Obstacles
20
Description(2/2)
Propriétés à respecter :
• Eviter les obstacles.
• Ne pas sortir de l’environnement.
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(…)
{…}
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.
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.
24
Algorithme d’évitement d’obstacles(1/4)
Première étape : Découpage du terrain en zones.
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
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
27
Algorithme d’évitement d’obstacles(4/4)
Quatrième étape : Sélection des points milieux des arêtes.
28
Les différents résultats(1/3)
Environnement
ARRIVEE
Chemin à effectuer
29
Les différents résultats(2/3)
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() {…}
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)
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.
Recommended