Télécharger la présentation
0
au département informatique
Block3D La réalité virtuelle au département informatique Etudiants Edgar-Fernando Arriaga-Garcia Charles-Henri Babiaud Encadrants Clément Grellier Ronan Gaugne Quentin Petit Jérôme Ricœur Valérie Gouranton Florent Violleau 31 mai 2012
1
Introduction
2
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
3
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
4
1. Rappel du contexte - Problématique et but
Portes ouvertes Vitrine technologique du département informatique Administration de la salle µRV Mise en place de la salle Gestion de l’accès à la salle Intégration d’autres projets 1 projet de 3INFO 3 projets de 5INFO Application ludique de réalité virtuelle à partir du projet L3G0 Déploiement dans la salle Immersia
5
1. Rappel du contexte - Matériel
Équipement de visualisation 3D : Un moniteur 3D Un vidéoprojecteur 3D Deux paires de lunettes Nvidia 3D Une paire de lunettes Vuzix Wrap 920 Équipement d’interaction : Une Kinect Deux Wiimotes avec Nunchuk Un joystick à retour de force
6
1. Rappel du contexte – Le coureur
Périphériques Visualisation : Lunettes 3D Nvidia Vidéoprojecteur Interaction : Kinect Actions Se déplacer Pivoter la caméra
7
1. Rappel du contexte – Le constructeur
Périphériques Visualisation Lunettes Vuzix Interaction Wiimote Actions Déplacer la caméra Poser pièces
8
1. Rappel du contexte – Collaboration
Collaboration avec les autres groupes Un groupe de 3ème année, Daedalus : Application de génération de labyrinthe Un groupe de 4ème année, Linnova : Stockage de leur matériel dans la salle µRV Un groupe de 5ème année : Application distribuée à l’aide d’OpenMASK D’autres groupes de 5ème année Utilisation temporaire de la salle
9
Daedalus, génération de labyrinthes
Paramètres de configuration Aperçu du labyrinthe Sauvegarde du fichier XML
10
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
11
2. Fonctionnalités – Interactions (1/3)
Fonctionnalités du coureur Avancer Reculer Tourner à gauche Tourner à droite Translater à gauche Translater à droite Sauter Accéder au menu
12
2. Fonctionnalités – Interactions (2/3)
Fonctionnalités du constructeur Dézoomer Translater la vue Orienter la vue Ajouter une pièce Changer la pièce courante Accéder au menu
13
2. Fonctionnalités – Interactions (3/3)
Fonctionnalités du menu Reprendre la partie Choisir le labyrinthe Choisir les paramètres sonores Afficher l’aide Quitter le jeu
14
2. Fonctionnalités – Mode distribué (1/2)
Communication distante 14
15
2. Fonctionnalités – Mode distribué (2/2)
Labyrinthe Décors Déplacement du coureur/constructeur Menus Collisions Wiimote Interactions coureur/constructeur Communication distante 15
16
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
17
3. Architecture logicielle – Vue générale
OpenMask Ogre3D OpenAL OgreAL PhysX NxOgre Critter
18
3. Architecture logicielle – Ogre
Moteur 3D Communauté active Licence libre (MIT) Multiplateforme C++
19
3. Architecture logicielle – Son spatialisé (1/4)
Utilisation d’OpenAL : Bibliothèque qui permet la manipulation de tampons sonores à bas niveau Adapté à de très nombreuses utilisations Utilisation d’OgreAL Wrappeur d’OpenAL pour Ogre3D Simplification dans le positionnement des sources sonores dans le monde symbolique Intégration aisée avec les objets de Ogre3D Utilisation des enceintes 5.1 dans le cadre de l’application Architecture sonore
20
3. Architecture logicielle – Son spatialisé (2/4)
Permettre l’immersion dans le monde symbolique du coureur Guider le coureur jusqu’à son objectif
21
3. Architecture logicielle – Son spatialisé (3/4)
Guider le coureur par l’utilisation d’un sonar Informer le coureur et le constructeur qu’une brique a été posée Sonar Pose des briques Coureur
22
3. Architecture logicielle – Son spatialisé (4/4)
Variation de la fréquence et du tempo du son : Du sonar De la musique d’ambiance Plus aigu Plus rapide Fréquence (kHz) Plus grave Moins rapide Arrivée Départ Distance par rapport à l’objectif
23
3. Architecture logicielle – Modélisation du coureur
Démarche d’utilisation de Blender : Importation d’un personnage Lego Correction des défauts (faces transparentes, …) Modification du squelette Création des animations Exportation en .mesh pour être utilisé dans Ogre Exportation des animations pour Ogre peu intuitive Relativement peu de documentation
24
Caractéristiques Empêcher le coureur de traverser les murs
3. Architecture logicielle – PhysX Empêcher le coureur de traverser les murs Caractéristiques C++ Licence commerciale Multiplateforme Développement actif Utilisé dans la plupart des jeux actuels Bien documenté Contrôleurs d’avatar Corps rigides et souples Champs de force, etc.
25
NxOgre = Wrappeur Critter = Interface et
3. Architecture logicielle – PhysX et Critter (1/2) NxOgre = Wrappeur Critter = Interface et Licence LGPL C++ Développement actif Tutoriels Visual débogueur intégré
26
Fonctionnalités supplémentaires
3. Architecture logicielle – PhysX et Critter (2/2) Fonctionnalités supplémentaires Débogueur visuel
27
3. Architecture logicielle – Gestion de projet
Site web collaboratif : Media Wiki Redmine : forge de l’INSA gestionnaire de version : Subversion intégré hébergement de la documentation : wiki intégré discussion par sujets sur des erreurs : forum intégré Communication IRC (Internet Relay Chat)
28
3. Architecture logicielle – Cmake
Gestion des dépendances logicielles Génération Makefile Génération projet VisualStudio Multiplateforme Indique les dépendances manquantes OgreAL et OpenAL VRPN OpenMASK Ogre CppUnit et CxxTest NxOgre et Critter
29
Bilan prévu / réel FAAST NxOgre et Critter VRPN OpenMASK OgreAL Ogre
CppUnit CEGUI Cmake Ogre Bites
30
3. Architecture physique– Généralités
Copie locale du monde virtuel MPI TCP IP OpenMASK Communication distante Même arborescence de fichiers sur les pc Copie locale du monde virtuel Participation des 5INFO 5INFO Coureur 30
31
3. Architecture physique– VRPN (1/2)
Virtual Reality Peripheral Network Interfaçage avec les périphériques Un serveur Associé à une IP et un port N clients Sur une machine ou plusieurs machines Serveur Clients
32
3. Architecture physique– VRPN (2/2)
Bouton : Envoi pour chaque pression/relâchement Clavier, clic, bouton Analogique : Envoi continu de l’état Joystick Tracker : Suivi d’une position Casque Bouton Analogique Tracker VRPN Événements récupérés
33
3. Architecture physique– Wiimote
Intégration d’un serveur VRPN Wiimote existant Création d’un client VRPN Interfaçage avec Block3D Boutons pressés (Bouton) Boutons relâchés (Bouton) Mouvement du joystick (Analogique) Accélération de la Wiimote (Analogique) Accélération des Nunchuk (Analogique) Wiimote - Nunchuk
34
3. Architecture physique– Intégration de la Wiimote
Serveur Wiimote Interfaçage Client Block 3D La Wiimote est connectée (Bluetooth) Le serveur Wiimote est lancé Block3D récupère les informations du serveur Les événements sont filtrés par un écouteur « WiimoteListener »
35
FAAST, serveur et client VRPN
3. Architecture physique– Contrôle de la Kinect (1/2) FAAST, serveur et client VRPN
36
FAAST, serveur et client VRPN
3. Architecture physique– Contrôle de la Kinect (2/2) FAAST, serveur et client VRPN Intégration transparente de FAAST dans Block3D transforme des événements Kinect en événements claviers Kinect FAAST Block3D
37
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
38
ogre openmask model interactions block3D plugin parser time wiimote
4. Conception et développement – Diagramme de Paquetages openmask block3D plugin model parser time data element sound interactions kinect wiimote ogre
39
4. Conception et développement – Tests
Tests unitaires Tests utilisateurs CppUnit CxxTest Facilité à trouver des bêta testeurs
40
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
41
Arriverez-vous à l’objectif avant que le temps soit fini ?
5. Démonstration Arriverez-vous à l’objectif avant que le temps soit fini ? Coureur Constructeur
42
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
43
6. Bilan - Matériel Vuzix Wiimote et nunchuck Changement de salle
2 adaptateurs VGA sur un même ordinateur
44
6. Bilan – Difficultés de synchronisation
Synchronisation Ogre – NxOgre
45
Communication distante
6. Bilan – Difficultés du mode distribué Difficultés de prise en main d’OpenMASK Documentation et communauté restreintes Sessions d’entrainement à l’ETI Connexion MPI en réseau Adaptation du travail des 5ème année Fonctionnalités aussi restreintes Contraintes sur la reprise du code Création de plugins OpenMASK nécessaires Communication distante 45
46
6. Bilan – Possibilités d’évolution
Evolutions d’intégration Amélioration du support Linux Amélioration application distribuée Evolutions des interactions Intégration du joystick Gérer le saut de l’avatar L’avatar suit les mouvements de l’utilisateur Jeu plateforme
47
Plan 5. Démonstration de Block3D
1. Rappels du contexte : µRV 2. Fonctionnalités de Block3D 3. Architecture logicielle et physique 4. Conception et développement 5. Démonstration de Block3D 6. Bilan du projet de réalité virtuelle 7. Planification
48
7. Planification – Jalons réels et prévisionnels
Livraison rapport final 30/05/2012 Planification initiale Planification réelle Livraison projet 31/05/2012 Intégration OpenMask 31/05/2012 Applications constructeur/coureur 27/04/2012 28/05/2012 Conception Implémentation Livraison Présentation finale 31/05/2012 Immersion dans un monde en 3D 16/03/2012 01/04/2012 Interactions utilisateur/matériel 24/02/2012 01/04/2012 Livraison rapport planification 10/02/2012 En 4 mois ce sont 1 mois de retard qui ce sont accumulés 48
49
7. Planification – Nombre d’heures
Charge (h) Prévu 1759h Réalisé 2079h 49
50
7. Planification – indicateurs et causes
Retard C’est une charge réelle totale de 2079h, alors que la charge prévisionnelle était de 1768h Ce n’est qu’une V4 qui est livrée et non une V5 Causes Difficultés d’implémentation (distribué, NxOgre,…) Départ d’un membre du groupe Difficultés de gestion de la salle Gestion du matériel 50
51
7. Planification – gestion de projet
Organisation de l’équipe Formation de 3 équipes : constructeur, coureur et matériel Avancement itératif Etablissement de jalons, et livraison d’une application à chaque jalon Méthode de gestion de projet Méthode de gestion de projet SCRUM, avec réunions régulières. 51
52
Conclusion Objectifs atteints Application interactive
Un projet complet Périphériques Wiimote, Kinect Technologies Ogre, PhysX, OpenAL Objectifs atteints Application interactive Coureur/Constructeur Application distribuée Un projet passionnant Découverte de la réalité virtuelle Sujet très intéressant
53
Block3D
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.