wiki:CahierDesCharges

CAHIER DES CHARGES



I. Présentation du projet


Le projet consiste à concevoir et développer une architecture logicielle pour l'utilisation des périphériques de réalité virtuelle (RV). Cette couche logicielle doit apporter une grande souplesse dans l'utilisation de différents types de périphériques. L'objectif est de pouvoir ajouter et configurer de nouveaux périphériques (Classique ou RV) sans modifier le code de MASCARET. Une première phase du projet consiste à prendre en main les pilotes des périphériques et à les faire fonctionner sur la Paillasse. Dans un second temps, on doit proposer un modèle de périphérique générique, modéliser les périphériques disponibles et intégrer ce modèle dans MASCARET. Pour finir, on réalise une étude ergonomique sur les périphériques pour définir une interface immersive intuitive et efficace.

Exigence générale : interface avec la paillasse Virtuelle


II. Livrables

1. Structuration des livrables

  • Pilote pour chaque périphériques (Windows et/ou Linux).
  • Bibliothèque d'interaction (Linux).
  • Passerelle d'interaction de Windows à Linux.


2. Livrable 1 : Pilote Spacemouse

2.1 Exigence 1 : reconnaissance Spacemouse
Linux reconnait la Spacemouse lors de son branchement. ticket:6

2.2 Exigence 2 : Axes de translations
Récupération des forces/vitesses sur chaque axe. ticket:44

2.3 Exigence 3 : Axes de rotation
Récupération des forces/vitesses sur chaque axe. ticket:44

2.4 Exigence 4 : boutons de fonctionnement
Récupération des informations lors de l'activation des boutons. ticket:43

2.5 Exigence 5 : modes de fonctionnement dégradés
Bloquage de certains axes.

2.6 Exigence 6 : boutons de raccourcis
Activation des boutons servant de raccourcis.


3. Livrable 2 : Pilote Wiimote

3.1 Exigence 1 : reconnaissance Wiimote
Association Bluetooth (pairrage auto).
Méthode d'association (boutons Wiimote).
Gestion plusieurs Wiimotes. ticket:4

3.2 Exigence 2 : capteurs de position IR
Récupération de la position par les capteurs infrarouge. ticket:40

3.3 Exigence 3 : capteurs de mouvements
Récupération de l'accélération de la Wiimote selon trois axes de rotation. ticket:41

3.4 Exigence 4 : boutons Wiimote
Récupération des informations transmisses lors de l'activation des boutons. ticket:39

3.5 Exigence 5 : modes de fonctionnement
Reconnaissance du Nunchuk.
Plug/unplug du Nunchuk en temps-réel. ticket:53

3.6 Exigence 6 : capteurs et boutons du Nunchuk
Récupération de l'accélération du Nunchuk selon trois axes de rotation.
Récupération des informations transmisses lors de l'activation des boutons. ticket:51


4. Pilote P5 Glove

4.1 Exigence 1 : reconnaissance P5 Glove
Reconnaissance du P5 Glove par Linux lors de son branchement. ticket:7

4.2 Exigence 2 : Modes de fonctionnements
Mode souris : deux axes, deux boutons.
Mode Gant : tous les axes tous les boutons.

4.3 Exigence 3 : Capteur de position
Récupération des positions sur chaque axe. ticket:47

4.4 Exigence 4 : Capteur d'orientation
Récupération des orientations sur chaque axe. ticket:47

4.5 Exigence 5 : capteurs de flexion des doigts
Bloquage de certains axes. ticket:46

4.6 Exigence 6 : filtres pour capteurs
Réduire les mouvements parasites.


5. Pilote TrackIR

5.1 Exigence 1 : reconnaissance TrackIR
Récupération données du pilote propriétaire sous Windows. ticket:5

5.2 Exigence 2 : capteur de position
Récupération des positions. ticket:42

5.3 Exigence 3 : capteur d'orientation
Récupération des orientations. ticket:42

5.4 Exigence 4 : gestion du type de capteur
Choisir entre le récepteur du TrackIR et l'émetteur/récepteur Trackclip.

5.5 Exigence 5 : gestion des modes de filtrage
Sélection d'un mode en temps-réel.
Modification d'un mode en temps-réel.

5.6 Exigence 6 : gestion des filtres
Sélection d'un filtre en temps-réel.
Modification d'un filtre en temps-réel. ticket:32

5.7 Exigence 7 : récupération des données sous Linux
Communication passerelle. ticket:34

5.8 Exigence 8 : gestion des modes et filtres sous Linux
Communication passerelle.


6. Pilote Phantom Omni

6.1 Exigence 1 : reconnaissance Phantom sous Windows
Reconnaissance du Phantom par Winows lors de son branchement. ticket:8

6.2 Exigence 2 : reconnaissance Phantom sous linux
Reconnaissance du Phantom par Linux lors de son branchement. ticket:14

6.3 Exigence 3 : Capteur de position
Récupération des positions sur chaque axe. ticket:49

6.4 Exigence 4 : Capteur d'orientation
Récupération des orientations sur chaque axe. ticket49

6.5 Exigence 5 : Boutons Phantom
Gestion des Boutons. ticket:48

6.6 Exigence 5 : retour d'effort
Possibilité d'utiliser le retour d'effort. ticket:50


7. Passerelle D'interaction Windows/Linux?

7.1 Exigence 1 : communications
Socket réseau local.
Socket réseau émulé (machine virtuelle).
Autres méthodes (écriture lecture dans un fichier).
Comparaison des performances. ticket:59

7.2 Exigence 2 : envoi des données Windows->Linux
ticket:57

7.3 Exigence 3 : envoi des données Linux->Windows
ticket:56

7.4 Exigence 4 : sélection des données
Sélectionner les données à envoyer pour ne pas surcharger la passerelle. ticket:58


8. Bibliothèque d'intéraction

8.1 Exigence 1 : Intégration de la Wiimote
Intégrer la Wiimote à la bibliothèque. ticket:35

8.2 Exigence 2 : Intégration de la Spacemouse
Intégrer la Spacemouse à la bibliothèque. ticket:35

8.3 Exigence 3 : Intégration du TrackIR
Intégrer le TrackIR à la bibliothèque. ticket:35

8.4 Exigence 4 : Intégration du Phantom
Intégrer le Phantom à la bibliothèque. ticket:35

8.5 Exigence 5 : Intégration du P5 Glove
Intégrer le P5 Glove à la bibliothèque. ticket:35

8.6 Exigence 6 : utilisation simultanée de plusieurs périphériques
Possibilité d'utiliser deux ou plusieurs périphériques différents en même temps.

8.7 Exigence 7 : sélection de périphériques à la volée

8.8 Exigence 8 : gestion de la passerelle
Intégration de la passerelle à la bibliothèque. ticket:17

8.9 Exigence 9 : fonctionnement sous Linux en C++

8.10 Exigence 10 : fonctionnement sous Linux en AReVi


9. Interface immerssive

9.1 Exigence 1 : pilotage de la bibliothèque d'interaction depuis la simulation
Pouvoir choisir dans la simulation le ou les périphériques qu'on veut utiliser.


Retour au Wiki