Documentation Utilisateur - Epitech Innovative Project
Transcription
Documentation Utilisateur - Epitech Innovative Project
Documentation Utilisateur Documentation utilisateur Référence Auteurs : Matthieu Kermagoret Céline Baraban Dorian Guillois Stéphane Lapie Thomas Lecomte Yoann Moizan Monirath Pontiac Alexis Rolland Vincent Schoener Table des mises à jour : Version V1.0 V1.1 Date 01/04/10 17/06/10 Chapitres modifiés / / V1.2 06/07/10 3.5 Changements Création Modification ergonomiques Ajout de la procédure d’installation Objet du document : Dans le cadre de l'Epitech Innovative Project, il faut imaginer, développer et proposer un projet fini et novateur. C'est le projet qui concrétise 5 années d'études. Il se déroule en 2 ans. Nysa est un projet innovant, qui a pour but de créer une solution complète de simulation interactive et immersive (réalité virtuelle). Nysa se propose donc de créer un ensemble complet matériel et logiciel permettant aux utilisateurs d'apprécier la simplicité d'utilisation et le réalisme de la réalité virtuelle tout en permettant aux éditeurs tiers de créer simplement des applications compatibles avec le système de réalité virtuelle. Ce document se destine à expliquer comment fonctionne notre projet pour les développeurs qui voudraient l'utiliser.. -2- Documentation utilisateur Sommaire REFERENCE ...................................................................................................... - 2 SOMMAIRE ....................................................................................................... - 3 1. PRESENTATION DU PROJET ............................................................................. - 4 1.1 PERIMETRE DU PROJET ....................................................................................... - 4 1.1.1 DOMAINE ............................................................................................ - 4 1.1.2 L’EXISTANT DU LE MARCHE ........................................................................ - 4 1.1.3 PRINCIPES DE BASE DU SYSTEME ................................................................. - 6 1.1.4 DESTINATAIRES DU PROJET ....................................................................... - 6 1.2 LES DIAGRAMMES .............................................................................................. - 7 1.2.1 ARCHITECTURE TECHNIQUE........................................................................ - 7 1.2.2 CONFIGURATION MATERIELLE ..................................................................... - 7 - 2. LE MATERIEL ................................................................................................. - 8 3. INSTALLATION ET DESINSTALLATION .............................................................. - 9 3.1 COMPOSANTS ................................................................................................... - 9 3.2 DEPENDANCES.................................................................................................. - 9 3.3 CONFIGURATION ............................................................................................. - 10 3.4 COMPILATION ................................................................................................ - 11 3.5 INSTALLATION ............................................................................................... - 11 3.5.1 PRE-REQUIS LUNETTES ........................................................................... - 11 3.5.2 PRE-REQUIS GANTS ............................................................................... - 13 3.5.3 LE PROJET .......................................................................................... - 14 3.6 DESINSTALLATION .......................................................................................... - 16 - 4. HOW TO ..................................................................................................... - 16 5. FAQ ........................................................................................................... - 17 GLOSSAIRE .................................................................................................... - 19 - -3- Documentation utilisateur 1. Présentation du projet 1.1 Périmètre du projet 1.1.1 Domaine Nysa se rapproche avant tout des frameworks de développement de jeuxvidéo. Le projet rajoute cependant la gestion d'une interface homme-machine innovante qui est le couple gants-lunettes. Cependant afin de pouvoir gérer ce matériel il faudra au préalable faire de la gestion bas niveau tel que le développement de drivers pour différentes plateformes. Ceci est appelé la programmation système. 1.1.2 L’existant du le marché Les solutions existantes sont peu nombreuses et représentent souvent uniquement une solution d'une partie du problème qui permettrait d'avoir accès à une immersion compatible avec la majorité des logiciels existants. Lorsque des solutions complètes existent, elles sont bien souvent très onéreuses et difficiles d'accès. Parmi les fonctionnalités que l'on peut retrouver indépendamment : les gants : constructeurs indépendants de chaque marque 5DT Virtual Technologies Essential Reality ... les lunettes : constructeurs indépendants de chaque marque Vuzix Emagin … Le problème principalement rencontré avec des solutions séparées est que pour fournir leur valeur ajoutée, ces solutions ont bien souvent besoin que les logiciels existants et déclarés compatibles soient mis à jour, c'est à dire modifiés -4- Documentation utilisateur de manière souvent non officielles. Dans le cas contraire, la valeur ajoutée reste minimale. Parmi les fonctionnalités que l'on peut retrouver groupées : 3DVIA Virtools - Dassault Systèmes Dont la solution n'est pas destinée au grand public Nvidia 3D vision Le problème de Nvidia est le fait qu'ils vendent une solution avec lunettes + Ecran + PC + Carte graphique qui vont ensemble ce qui devient vite onéreux et contraignant Microsoft Natal Pour la Xbox360, rajouter un système dont le corps servira de contrôleur de jeux. Au niveau framework de développement, il existe énormément de solutions pour créer des applications graphiques. On pourra citer des exemples en logiciels libres : - Ogre3D Irrlicht ... Et en logiciel propriétaire : - Source Engine Cry Engine Unreal Engine ... Toutes ces solutions ont l'avantage de gérer toutes les créations de scènes et problématiques générales du jeux-vidéo, mais aucune d'entre elles ne gèrent les rendus stéréoscopiques ou les entrées des gants de données. Pour le rendu graphique les bibliothèques principales qui gèrent l'OpenGL sont : - Mesa 3D (Open-source et software) ATI Catalyst (Propriétaire et hardware) drivers Nvidia (Propriétaire et hardware) -5- Documentation utilisateur Le problème ici est que les solutions qui pourraient permettre des rendus stéréoscopiques sont principalement propriétaires (drivers ATI et Nvidia). Mesa3D fournit certes une implémentation software d'OpenGL, mais les performances en rendu stéréoscopique restent à démontrer. 1.1.3 Principes de base du système Le but du projet est de mettre à la portée du plus grand nombre la réalité virtuelle. En effet, les jeux vidéos fournissent pour le moment tous les mêmes interfaces homme-machine : clavier/souris ou manette toujours couplé à un écran. De part sa nature l'écran est limité à 2 dimensions qui sont elles-mêmes comprises dans des limites fixes. Il y a bien quelques essais pour contourner ces limitations intrinsèques : les rendus polarisés donnant une fausse impression de 3D en sont un exemple. Malheureusement personne dans l'industrie ne semble vouloir mettre cette révolution technologique que représente la réalité virtuelle à la portée de tous. Nous nous proposons donc de fournir aux développeurs à l'imagination débordante un moyen d'exprimer toute leur créativité. Ils ne seront donc ainsi plus limités par des périphériques d'entrées/sorties datant des années 60. Ils pourront tirer partie de ce qui est à l'heure actuelle à la pointe de la technologie en matière de rendu intégral. Bien sûr notre solution ne sera pas limitée aux seuls jeux-vidéos. Il sera bien entendu possible, par exemple, de créer une interface de bureau totalement novatrice ou encore des logiciels de visite d'appartement sur plan, les limites de notre SDK ne seront posées que par les limites du génie humain. 1.1.4 Destinataires du projet Ce projet est destiné aux: - développeurs souhaitant créer des applications innovantes pour le grand public développeurs de jeux entreprises désirant faire de la réalité virtuelle -6- Documentation utilisateur 1.2 Les diagrammes 1.2.1 Architecture technique L'architecture technique de Nysa se décompose en deux parties. La partie rendu graphique et la partie interface homme-machine. Partie Rendu graphique La machine s'occupe des calculs relatifs au rendu visuel en utilisant éventuellement une accélération matérielle. Partie interface homme-machine Les capteurs situés dans nos périphériques d'entrées/sorties, nous permettent de déterminer avec précisions et à chaque instant, la position dans l'espace des mains et de la tête. 1.2.2 Configuration matérielle Rendu graphique La machine de rendu ne nécessite pas de matériel particulier, il faut néanmoins faire attention à la puissance du processeur afin que le rendu graphique puisse être fait dans les temps, une machine datant de moins d'un an devrait amplement suffire. Interface homme-machine De part la nature même de notre projet, nous aurons besoin de gants de données à 6 degrés de liberté et capables de fournir des informations indépendantes pour chaque doigt et de lunettes stéréoscopiques. -7- Documentation utilisateur 2. Le matériel Gants de données La plupart des gants de données disponibles sur le marché sont relativement chers et/ou fermés, c'est pourquoi notre choix s'est porté sur des gants datant des années 90 : AcceleGlove. Malgré leur ancienneté, ces gants disposent de toutes les caractéristiques techniques nécessaires dans le cadre de notre projet. De plus ces gants ont été documentés depuis longtemps par la communauté open-source. 79$ US et 25$ US de frais de port (~75€) http://www.cwonline.com Lunettes stéréoscopiques Jusqu'à il y a très peu de temps, toutes les lunettes stéréoscopiques étaient hors de prix. Heureusement Vuzix a récemment sorti un modèle grand public : les VR920. Ses caractéristiques les situent dans le moyen/haut de gamme : 3 degrés de liberté et écrans de 640x480. 350$ CA (~250€) http://www.ebay.ca -8- Documentation utilisateur 3. Installation et désinstallation 3.1 Composants Le projet Nysa est composé de multiples sous-projets: Pilotes Les pilotes Linux et Windows pour les lunettes iWear VR920 et les gants de données Acceleglove. - SDK Fonctionnalités de base proposées par les lunettes et les gants qui seront abstraite pour être multi-plateforme. Le SDK est construit au-dessus des drivers. - Framework Fournit un kit de composants et de fonctionnalités complet pour développer de nouveaux logiciels orientés réalité virtuelle. Framework basé sur la célèbre bibliothèque Ogre3D et Nysa: SDK. 3.2 Dépendances Si vous voulez compiler une partie ou l'ensemble des composantes de Nysa vous aurez besoin pour chacune des parties d'installer les dépendances. Sous-projets Drivers Framework SDK Plate-forme Linux Windows Dépendances Linux Kernel Tree Aucun. Identique à Ogre (voir http://www.ogre3d.org/wiki/index.php/ Building_From_Source) Libusb -9- Documentation utilisateur 3.3 Configuration La construction du projet Nysa est basé sur CMake (http://www.cmake.org). CMake est un « moteur de production » multiplateforme (Makefiles sur Unix, Visual Studio project sur Windows). L'utilisation de l'interface graphique et de la CLI restent relativement simples. Par exemple, depuis un prompt, juste exécuter : $> cmake . et votre Makefile ou projet Visual Studio sera généré. Pour configurer le processus de production, CMake utilises des variables pouvant être configuré à travers une interface graphique sur Windows ou en utilisant cette syntaxe sur une plate-forme Unix: $> cmake -Dvariable1=value1 -Dvariable2=value2 . Les options suivantes sont actuellement disponibles : Option Type LIBUSB_INCLUDE_DIR String Valeurs par défaut Répertoire par défaut LIBUSB_LIBRARIES String NO_DRIVERS Boolean 0 NO_FRAMEWORK Boolean 0 NO_SDK Boolean 0 NO_UT Boolean 0 Description Où trouver le fichier à inclure de libusb La bibliothèque Libusb Ne pas construire les drivers Ne pas construire le framework Ne pas construire le SDK Ne pas construire les tests unitaires Ces options sont spécifiques à Nysa, mais d'autres options plus générales sont directement disponibles sur CMake. Référez vous à http://www.ogre3d.org/wiki/index.php/Building_From_Source pour une documentation plus exhaustive. - 10 - Documentation utilisateur 3.4 Compilation Pour compiler Nysa sur Windows, il vous suffit simplement d'utiliser le projet généré sur Visual Studio et le compiler. Sur Unix, une simple commande "make" devrait être suffisant pour lancer le processus entier de compilation. 3.5 Installation 3.5.1 Pré-requis lunettes Configuration système requise : - Ordinateur PC standard ou portable avec port VGA ou DVI Système d'exploitation Windows XP ou Vista (32 bits) ou UNIX Port USB 2.0 Sous Windows : Ne pas connecter les lunettes avant l'installation du logiciel. Insérer le CD du logiciel iWear pour lancer le programme d'installation. L'application d'installation doit se lancer automatiquement. Dans le cas contraire double cliquez sur le lecteur CD/DVD dans le poste de travail. Cliquez sur « Install VR920 Software » - 11 - Documentation utilisateur Une fois que l'installation est lancée suivez les instructions à l'écran. Quand l'installateur vous indique que l'installation est terminée, appuyez sur le bouton « Finish ». Connexion des lunettes vidéo : Connectez le connecteur VGA ou DVI sur la sortie vidéo de votre carte graphique ainsi que l'USB sur un port USB disponible de l'ordinateur. Sous Windows XP la détection d'un nouveau périphérique se lance automatiquement. Sélectionnez l'option « Non pas maintenant » puis « Suivant ». Dans la seconde fenêtre sélectionnez « Installer le logiciel automatiquement (Recommande) » puis terminez. Calibrage des lunettes : La dernière étape consiste à calibrer le « head tracking ». Les lunettes VR920 disposent de trois capteurs magnétiques et de trois accéléromètres. - Ouvrez l'application iWear VR920 Calibrator - Appuyez sur le bouton « Begin Calibration » (commencer le calibrage) - Tenez vos lunettes face à votre écran - Faites tourner complètement les lunettes sur chaque axe. Une fois la rotation des lunettes sur les 3 axes terminée, appuyez sur le bouton « Lock calibration ». La dernière étape du processus consiste à paramétrer le point central. Placez les lunettes sur votre visage Mettez vous face à votre moniteur de bureau et appuyez sur le bouton « Set Zero » Sous Linux : C’est include dans le paquet Nysa, voir section 3.5.3 - 12 - Documentation utilisateur 3.5.2 Pré-requis gants Configuration système requise : - Compatible Windows 2000/XP/Vista ou UNIX - Java Runtime Environment (JRE) Sous Windows : Insérer le CD des AcceleGlove, ouvrir le dossier des drivers en double cliquant sur le lecteur CD/DVD et sélectionner le système d'exploitation. Ouvrir le sous dossier (Windows) et double cliquez sur le driver (CDM 2.04.06.exe). Suivre les instructions pour compléter l'installation. Installation du « Visualizer » : Sous Windows, ouvrez le dossier Visualizer, sélectionnez le dossier correspondant à votre système et double-cliquez sur « AcceleGlove Visualizer.exe) et suivre les indications à l'écran. Connecter le gant : Branchez le câble USB sur le gant ainsi que sur l'ordinateur. Pour tester le bon fonctionnement du gant vous pouvez lancer l'AcceleGlove Visualizer qui se trouve dans le menu programme. - 13 - Documentation utilisateur 3.5.3 Le projet Sur Linux : Téléchargez le paquet sur : http://eip.epitech.eu/2011/nysa/website/?page_id=10 Executez avec les droits administrateur la commande o dpkg –i nysa.deb Sur windows : Téléchargez l’installeur sur : http://eip.epitech.eu/2011/nysa/website/?page_id=10 Double cliquez sur l’installeur nysa_setup.exe Sélectionnez la langue d’installation souhaitée Cliquez sur ok Cliquez sur suivant - 14 - Documentation utilisateur Cliquez sur installer Une fois fini, cliquez sur fin, l’installation de Nysa est terminée. - 15 - Documentation utilisateur 3.6 Désinstallation Sur Linux : Dpkg –r nysa Sur Windows : Utilisez le désinstalleur de Nysa : Aller dans : Demarrez - Tous les programmes - Nysa Cliquer sur Uninstall Nysa 4. How To Nysa est un outil permettant de se plonger dans un univers 3D et d'aborder une nouvelle façon d'interagir avec l'ordinateur. Ce How-To a pour but de vous montrer comment il est facile d'utiliser rapidement les outils que propose Nysa. Tout d'abord il vous faudra vous munir de nos gants et lunettes disponibles dans le package livré par nos soins. Une fois les périphériques déballé, branchez les via les ports USB disponibles de votre ordinateur. En suivant la doc d'installation disponible pour votre système (consulter la documentation ici), installer le SDK. Afin de profiter pleinement de cet univers 3D, Nysa vous propose une panoplie d'outils tel que le SDK (consulter la documentation sur notre site internet). Ce SDK n'est pour le moment pas totalement fonctionnel. Un framework est lui aussi disponible. Utilisant Ogre comme moteur 3D, vous n'aurez pas besoin de vous en souciez vu que tout est intégré au sein du moteur. - 16 - Documentation utilisateur 5. FAQ -Les gants AcceleGlove Sur quels systèmes d’exploitations peut-on utiliser les gants ? Windows XP/Vista Mac OS X (10.4 ou supérieur) Linux (2.6.9 ou supérieur) Comment le gant est-il connecté à l’ordinateur? Par l’intermédiaire d’un simple cable USB allant du gant au PC. De plus, aucune alimentation externe n’est requise. Comment les mouvements sont-ils capturés par le gant ? Un gant AcceleGlove est composé de 6 capteurs permettant de mesurer les mouvements et l’orientation de la main, du poignet et des doigts (soit 18 degrés de liberté). Les 6 capteurs sont des accéléromètres MEMS 3 axes. Un accéléromètre est localisé sur chaque doigts, ainsi que sur le dos de la main. Quelle est la fréquence d’échantillonnage maximum du gant ? La fréquence d’échantillonnage maximum du gant est de 35Hz (soit 630 axes par secondes). Quelle est la plage de valeur pour l’orientation et l’accélération des gants ? La plage d’orientation est de 180 degrés pour chaque axe (x,y,z). Le range de l’accélération est quand à lui d’environs +/- 1.5g. Quel est le poids et la matière du gant ? Un gant AcceleGlove est fabriqué à partir de tissus léger tel que le Nylon et le Lycra. Le poids d’un gant de taille L est d’environs 54 grammes. - 17 - Documentation utilisateur -Les lunettes Vuzix iWear VR920 Comment connecté mes lunettes à mon ordinateur ? Si vous n’avez qu’un port sur votre carte graphique ou portable, les lunettes iWear VR920 peuvent être connecté directement sur un cable “Y”, ce qui permettra de connecté les lunettes en tant que second moniteur. Si votre carte graphique est équipé d’un connecteur HDMI, vous pouvez utiliser l’adaptateur HDMI fourni pour y connecter les lunettes. Si votre carte graphique possède 2 ports, vous pouvez utiliser les lunettes en tant qu’écran primaire, secondaire ou cloné. Quelle est la résolution d’écran pour chaque oeil ? La résolution de chaque est écran est de 640×480. Les lunettes sont-elles équipées d’un dispositif Audio ? Un dispositif audio complet est présent sur les iWear VR920: - Un microphone est intégré sous l’avant-gauche des lunettes Deux écouteurs stéréo amovibles sont placés sur les branches des lunettes De combien de capteurs sont équipés les lunettes ? Les lunettes sont équipées de 3 capteurs magnétiques et 3 accéléromètres permettant de capturer les mouvements de la tête sur 3 axes. - 18 - Documentation utilisateur Glossaire API Une API (Application Programmable Interface, traduisez « interface de programmation » ou « interface pour l’accès programmé aux applications ») est un ensemble de fonctions permettant d’accéder aux services d’une application, par l’intermédiaire d’un langage de programmation. Degré de liberté En mécanique, un degré de liberté est une possibilité de mouvement. En 3D, il en existe 6 : les rotations suivant les 3 axes et les translations suivant les 3 axes. Driver Pour pouvoir fonctionner, n'importe quel matériel nécessite une couche logicielle qui comprend comment il marche. Cette couche logicielle est génériquement appelée driver. Gants de données Gants possédant des capteurs permettant de modéliser sur machine la position exacte dans l'espace des mains, doigts inclus. Mailing-list Une liste de diffusion (en anglais mailing-list) est un des services les plus couramment utilisés sur internet, permettant à un expéditeur d'envoyer un message à un ou plusieurs destinataires via une seule adresse. Le courrier électronique a été inventé par Ray Tomlinson en 1972. OpenGL OpenGL est une API permettant de créer des images 3D (et 2D). Le but est d'uniformiser sur toutes les plateformes l'API graphique. Les rendus OpenGL peuvent être accélérés (hardware) ou non (software). Stéréoscopie La stéréoscopie est une technique mise en œuvre afin de percevoir une sensation de relief à partir de deux images planes (une pour chaque œil). Elle se base sur la perception du cerveau qui restitue une seule image en 3D à partir des informations fournies par chaque œil. - 19 -