IMA5 2019/2020 P18

De Wiki de Projets IMA
Révision datée du 22 janvier 2020 à 16:08 par Fdinatal (discussion | contributions) (Réalisation du Projet)


Présentation générale

Sujet : Virtual Reality Old Gaming
Etudiant : Ibrahim Ben Dhiab et Fabien Di Natale
Encadrant : Laurent Grisoni

Description

L'equipe de recherche MINT, dans le cadre d'un projet européen, travaille sur un système permettant de jouer, via un système de réalité virtuelle, à de vieux jeux, utilisés sous la forme d'émulateurs logiciels. Ce dispositif est développé par l'equipe dans le cadre d'un projet européen portant sur l'utilisation de la RV pour la rééducation. Le dispositif existant utilise un PC portable combiné à un casque de RV (occulus Quest).
Nous souhaitons:

  • faire l'adaptation nécessaire à l'allègement de la forme physique du dispositif, ou nous souhaitons passer à une version n'utilisant plus le portable, mais une émulation sur carte Rapsberry. Le travail de proposition d'architecture a déjà été fait pour ce point.
  • faire en sorte d'etendre le système pour avoir une appli de configuration permettant de choisir la console et le jeux. Une partie de ces éléments de configuration pourront être utilisables dans le casque de RV par le malade, l'autre partie par le medecin, via une application tierce.
  • eventuellement et en fonction de l'avancement du projet, mettre en place quelques scénarios d'interaction spécifiques, déjà déterminés, dans le dispositif interactif utiles à l'avancée du projet européen.

Objectifs

Mettre en place quelques fonctionnalités dans un émulateur RV d'ancienne console

Préparation du projet

Cahier des charges

Le projet est fait suite à un besoin des hôpitaux de rendre la rééducation moins compliqué et plus attrayante. Nous utilisons donc de vieux jeux vidéo en réalité virtuel afin d'amener les personnes à bouger comme si elles faisait des exercices tout en s'amusant rendant ainsi le processus de rééducation moins pénible et plus facile à suivre. De plus toute les personnes ayant besoin de rééducation ou ayant besoin de faire de l'exercice dans les hôpitaux ont des maladies ou ont eu des accidents très varié. Notre dispositif doit alors être polyvalent et facilement configurable par les médecins ou les infirmières qui serait amené à faire les rééducation.

Ainsi nous allons nous concentrer sur la parti polyvalence et configuration du système. Nous avons pour objectif de rendre le système le plus polyvalent afin qu'il puisse convenir au plus de personnes possible. Le plus facilement et le plus rapidement utilisable par l'équipe médical.

Choix techniques : matériel et logiciel

Ce projet est fait à l'aide de unity avec les scripts en C# couplé à un serveur node.js sur une Raspberry pi donnant l'accès à une page web pour le personnel médical permettant la configuration et renvoyant la configuration à l'oculus. Nous utilisons un Oculus car c'est un casque de réalité virtuel de bonne qualité, dans des prix raisonnable mais surtout ne nécessitant pas d'ordinateur derrière pour faire tourner les jeux.

Liste des tâches à effectuer

Nous devons :

  • Améliorer la page web afin de proposer les personnalisations de paramètre suivant:
    • Choisir le nombre de manette nes utilisable par le patient
    • Possibilité d'avoir juste les boutons que le personnel soignant pourra déplacer
  • Ajout de script C# en concordance avec le serveur web
    • Décoder correctement les configurations envoyant par la page web (la raspberry pi)
    • Créer un groupe d'objet que de boutons sans la manette
    • Créer une fonction pour déplacer tous les boutons séparément de la manette de base
  • Vérifier si un scénario ayant pour objectif faire marcher le patient en déplaçant l'affichage du jeu et en fixant la manette nes sur les déplacement du casque est possible

Calendrier prévisionnel

Etat de l'art

Réalisation du Projet

Semaine 1

Pour ce projet, nous sommes intégrer à l'équipe mint s'occupant du contrat complet. Dans ce cadre nous pouvons alors découvrir complètement le sujet et voir les différentes personnes qui sont affecté à ce contrat. Nous avons ensuite installé tous les logiciels nécessaire au lancement du projet sur l'oculus:

  • Télécharger le projet à partir du git
  • Suivre les instructions des read.me (téléchargement de Unity, de certain assets et paramétrage d'Unity; téléchargement de node.js et paramétrage de la raspberry pi)

Ce sujet et divisé en deux partie:

  • Une première partie web
  • Une seconde partie Unity

Pour cette fin de première semaine nous avons pu découvrir la partie web qui est un serveur web écrit en node js. Le serveur web tourne sur la raspberry et à pour but de faire la liaisons entre le praticien et le patient. Pour cela la raspberry héberge un serveur web sur lequel nous pouvons choisir la configuration du casque. Pour l'instant nous pouvons choisir entre:

  • Contrôler le jeu à l'aide du manette directement sur le serveur web
  • Contrôler le jeu avec les pads matérialisé devant le joueur. Le nombre de pad peux varier de 1 à 3.

Semaine 2

Prise en main du projet avec un apprentissage des langage javascript, node.js et C# que nous avons peu utiliser pour le javascript et jamais utiliser pour les deux autres.


Première réunion avec tous les membres du projet afin de trouver les meilleurs scénario et les meilleurs paramètre à mettre en place pendant notre PFE. Au cours de cette réunion nous avons pu déduire que le scénario le plus intéressant avec le temps que nous disposons. Nous devons donc créer un nouveau set d'objet que nous appelons gamepad libre. C'est objet correspondent aux boutons que nous pouvons retrouver sur les manettes NES sans avoir la contrainte de les lier à un support en théorie. Cependant en pratique Unity nous oblige à créer un objet parent permettant de relier les boutons algorithmiquement et ainsi pouvoir les manipuler plus facilement et plus efficacement. Ainsi ces boutons devront être relié au site web et la raspberry qui permettent de configurer les différents paramêtre du projet.

Du côté du serveur web nous devons créer deux affichages gérant les boutons afin que l'utilisateur puissent bouger les boutons en 3D et ainsi augmenter ou diminuer la dificulté de l'exercice en temps réel. Ceci pose plusieurs problème :


Du côté du casque de réalité virtuel nous devons créer un nouveau script afin de placer les boutons en fonction de la configuration que nous recevons.

Documents Rendus