IMA5 2019/2020 P18 : Différence entre versions

De Wiki de Projets IMA
(Réalisation du Projet)
(Semaine 2)
Ligne 64 : Ligne 64 :
 
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.
 
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.
  
 
+
Pour cette deuxième semaine dans l'équipe mint nous avons pu découvrir la seconde parti du projet sous unity. Celle ci se compose principalement de deux chose, les scènes et les scripts permettant aux scènes d'évoluer. Pour les scènes nous en avons une seule composé des objets suivant :
 +
*L'objet statique créant la pièces de jeu, l'environnement que nous pouvons retrouver autour de nous lorsque nous avons le casque de réalité virtuelle devant les yeux. Cet objet est statique et n'est pas relié à des scripts ou autre d'où son nom.
 +
*L'objet quad qui est un affichage reliè à 4 scripts, cet objet est l'endroit où l'image que la raspberry produit va apparaître, en d'autre mot, ça sera là où l'on peux voir le jeux comme une télévision. Les 4 scripts permettent la connexion et les échanges avec la raspberry, nous avons les scripts TCP config, TCP Commande, TCP screen et Vibration manager. TCP config permet de récupérer la configuration envoyé par la raspberry et lancer toute les fonctions nécessaires afin de reconfigurer l'oculus selon la configuration reçu. <strong>A finir</finir>
  
 
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.
 
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.

Version du 22 janvier 2020 à 16:24


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.

Pour cette deuxième semaine dans l'équipe mint nous avons pu découvrir la seconde parti du projet sous unity. Celle ci se compose principalement de deux chose, les scènes et les scripts permettant aux scènes d'évoluer. Pour les scènes nous en avons une seule composé des objets suivant :

  • L'objet statique créant la pièces de jeu, l'environnement que nous pouvons retrouver autour de nous lorsque nous avons le casque de réalité virtuelle devant les yeux. Cet objet est statique et n'est pas relié à des scripts ou autre d'où son nom.
  • L'objet quad qui est un affichage reliè à 4 scripts, cet objet est l'endroit où l'image que la raspberry produit va apparaître, en d'autre mot, ça sera là où l'on peux voir le jeux comme une télévision. Les 4 scripts permettent la connexion et les échanges avec la raspberry, nous avons les scripts TCP config, TCP Commande, TCP screen et Vibration manager. TCP config permet de récupérer la configuration envoyé par la raspberry et lancer toute les fonctions nécessaires afin de reconfigurer l'oculus selon la configuration reçu. A finir</finir>

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=