1 / 32

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. PLAN. Introduction : Contexte et Problématique I – Le robot Lego Mindstorms 1. Description

ayasha
Download Presentation

LABORIE Sébastien

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Mindstorms 1. Description 2. Robot autonome ou communicant 3. Positionnement du robot II – L’application robotique 1. Description 2. Spécification JML 3. Algorithme d’évitement d’obstacles 4. 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) Port infrarouge Robotic Command eXplorer (RCX) Capteur d’intensité de lumière Capteur de contact

  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 LEJOSC JAVA JLMC JMLC JAVA JAVA

  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) • Robot communicant : Obligation de rechercher l’antenne. • 3 solutions : • Connaissance de la position de l’antenne. • Rotation du robot. • Antenne placée au-dessus de l’environnement du robot.

  15. Robot autonome ou communicant (5/5) Limite de la solution choisie : Antenne infrarouge Déviation limite (35 degrés ~) Portée limite (8 mètres) 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) Obstacles Environnement

  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 3 4 7 8 1 10 2 5 6 9

  26. Algorithme d’évitement d’obstacles (3/4) Troisième étape : Sélection d’un chemin dans le graphe. 3 4 7 8 1 10 2 5 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. CONCLUSION (1/2) • 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.

  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.

More Related