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
Top Related