De Decker Claudine Faure Julie Gouit Benjamin Helbling Allan 4 ème année Informatique et Réseaux,...

Post on 03-Apr-2015

107 views 0 download

Transcript of De Decker Claudine Faure Julie Gouit Benjamin Helbling Allan 4 ème année Informatique et Réseaux,...

Réalité virtuelleet interaction avec des wiimotes

Projet tuteuré 2012-2013

De Decker ClaudineFaure JulieGouit BenjaminHelbling Allan

4ème année Informatique et Réseaux, INSA Toulouse

Tuteur : Thierry Monteil

jeudi 30 mai 2013

2

Plan I. Présentation du projet

› 1. Définition du sujet› 2. Conduite de projet› 3. Scénarii

II .Morse/Blender› 1. Présentation de Blender› 2. Présentation de Morse› 3. Capteurs/Actionneurs › 4. Scénario mis en œuvre› 5. Bilan sur les outils

III. Interface› 1. Communication Morse-Frameself› 2. Fonctionnement de Morse› 3. Interface côté Morse› 4. Problèmes rencontrés› 5. Sensor› 6. Collector/Dispatcher

IV. FRAMESELF› 1. Présentation› 2. Fonctionnement› 3. Règles Drools› 4. Testeur Framself› 5. Bilan

V. Wiimotes

3

I. Présentation du projet

« Réalité virtuelle et interaction avec des Wiimotes »

Objectifs :› Contruire, représenter et interagir avec un

monde virtuel Sujet « Création de capteurs et

actionneurs dans l'appartement virtuel du laas afin de mettre en oeuvre divers scenarii »

4

I. Présentation du projet

ADREAM

5

I. Présentation du projet

Diagramme de Gantt

6

I. Présentation du projet

Objectif : Sécuriser un appartement Scenarii envisagés :

7

I. Présentation du projet

OU

8

I. Présentation du projet

Capteur de pression au sol

9

I. Présentation du projet

10

I. Présentation du projet

Scenario retenu

11

II. Morse / Blender

Blender :› Logiciel open source, performant, léger et

multiplateforme

12

II. Morse / Blender

13

II. Morse / Blender

Morse : Modular OpenRobots Simulation Engine

Environnement : Blender

Intelligence : Scripts python

14

II. Morse / Blender

Robots :

Capteurs : › Thermomètre, caméra, position

Actionneurs :› Son, lumière, mouvement

15

II. Morse / Blender

16

II. Morse / Blender

17

II. Morse / Blender

Un actionneur : Son (On/Off)

Script morse appelle la fonction Sound de Blender

18

II. Morse / Blender

19

II. Morse / Blender

20

II. Morse / Blender

21

II. Morse / Blender

22

II. Morse / Blender

Script du scenario

23

II. Morse / Blender

Simulation

du scenario(carte de l’apparte-ment du LAAS)

24

II. Morse / Blender

Données envoyées par le thermomètre

25

II. Morse / Blender

Données envoyées à l’alarme

26

II. Morse / Blender

Bilan sur les outils utilisés :

› Blender : très puissant mais difficile à prendre en main

› Morse : très bon outil pour simuler la robotique mais encore en développement

› Python : Découverte du langage

27

III. Interface

1. Communication Morse - FRAMESELF

Pourquoi faire communiquer Morse et FRAMESELF ?

Quel intérêt ? Comment le faire ?

28

IV. Interface1. Communication Morse - FRAMESELF

FRAMESELF

Morse

FRAMESELF

Morse

Interface Java

29

III. InterfaceComment fonctionne Morse

Envoi de message : port 4000 - Tout ce qui est relatif à la simulation

60000, 60001, ... - Tout ce qui est relatif aux capteurs et aux actionneurs

Possibilité d'utiliser telnet

30

III. Interface

Interface côté Morse

Utilisation de sockets Java en entrée et sortie

Découpage du String reçu en paramètre stockage de l’id et de sa valeur dans une Hashmap

31

III. Interface

Problèmes rencontrés

Fermeture des sockets, mais non bloquant à l'instar de telnet

Format des messages :{"x": 0.3566, "pitch": -0.0001023715} Utilisation d'expressions régulières

32

III. Interface

Sensor Création d'une classe Sensor Renvoie un Event interprété par

Collector Permet la traduction entre Morse et

Frameself Informations contenues :

› Nom du capteur› Catégorie

› Valeur› Emplacement

33

III. Interface

Collector Transmet les Events reçus de la partie

morse à FRAMESELF sur 127.0.0.1:5000

Dispatcher Recoit les Actions de FRAMESELF sur

127.0.0.1:6000 et les transmet à la partie morse sous forme textuelle

34

IV. FRAMESELF

Présentation Logiciel d'autonomic

computing Génère une IA pour un

système Compatible universellement :

OS et software, grâce au Java

35

IV. FRAMESELF Fonctionnement

36

IV. FRAMESELF

Règles Drools Règles claires, i.e. non ambigües et

compréhensibles par tous Utilise le chainage avant (méthode de

déduction) Règles partant de prémisses pour en

déduire de nouvelles conclusions Pars de données disponibles pour

extraire davantage de données

37

IV. FRAMESELFRègles Droolsrule "add TemperatureHigh"

when Event($id: id, category == "Temperature", $value: value, Integer.parseInt(value) >= 40, $location: location) then Symptom symptom = new Symptom(); symptom.setCategory("TemperatureHigh"); symptom.setValue($value); symptom.setLocation($location); symptom.setTimestamp(new Date()); symptom.setExpiry(new Date (System.currentTimeMillis()+4000)); insert(symptom);end

38

IV. FRAMESELFRègles Droolsrule "add RingAlarm rfc"when Symptom(category == "TemperatureHigh",$locationPres: location) Symptom(category =="AlarmStateOff",location==$locationPres)

then Rfc rfc = new Rfc(); rfc.setCategory("RingAlarm"); rfc.setValue("0"); rfc.setLocation($locationPres); rfc.setTimestamp(new Date()); rfc.setExpiry(new Date(System.currentTimeMillis()+4000)); insert(rfc);end

39

IV. FRAMESELF

Testeur FRAMESELF

40

IV. FRAMESELF

Bilan Outil très puissant et très simple

d'utilisation Permet en quelques règles de créer

une IA complète Bonne découverte de l'autonomic

computing

41

V. Wiimotes

Utilisation de wiimotes API wminput (utilisation la bibliothèque

cwiid) Possibilité d'utiliser wmgui (interface

graphique, plus précis)

42

V. Wiimotes

wminput :› mappage par défaut insuffisant› fichier de configuration› contrôle du robot avec la wiimote et le

nunch Exemple de mappage

Plugin.nunchuk_stick2btn.Up = KEY_UPPlugin.nunchuk_stick2btn.Down = KEY_DOWNPlugin.nunchuk_stick2btn.Left = KEY_LEFTPlugin.nunchuk_stick2btn.Right = KEY_RIGHT

43

Conclusion

Cadre : cahier des charges, partage des tâches

Aspects moins scolaires : Blender, Wiimotes, ...

Découverte de nouveaux langages - nouveaux logiciels

Contact avec les chercheurs

44

Conclusion

Axes de réflexion› Approfondissement des notions› Ecriture de jmorse (Java Morse)› Création de capteurs/ actionneurs› Réécriture du script wiimote

45

Conclusion

Remerciements› Thierry Monteil, pour nous avoir guidé et

proposé un sujet réellement intéressant› Pierrick Koch, pour sa disponibilité› Mamoun Gharbi, pour ses conseils› Madhi Ben Alaya, pour sa réactivité› Sami Hamadouche, pour son ouverture