Virtual Mimic !

Bonjour à tous !

Dans le cadre de notre classe préparatoire intégrée à Polytech Angers, nous avons eu l’opportunité de réaliser des projets de groupe. Au résultat des choix, notre binôme s’est constitué de Clotilde HAS et Noémie PAPIN.

L’une étant intéressée par la simulation, l’acquisition de compétences sur un nouveau logiciel; l’autre portant de l’intérêt à comment l’ingénierie intervient dans le monde de la santé : il s’agit d’une collaboration poly’valente.

N’oubliez pas : [M.De Montaigne]

“La vie n’est que mouvement”

Objectif et Présentation :

L’objectif de « Virtual Mimic » est de nous initier au développement d’une plateforme innovante, destinée à la rééducation de patients cérébrolésés. Ce sont des victimes de lésions cérébrales consécutives à un traumatisme crânien grave, un accident vasculaire cérébral ou d’une autre origine (infectieuses, tumorales, …).
Notre projet s’inscrit donc dans le milieu médical et plus particulièrement dans l’utilisation des technologies interactives et ludiques appliquées à la santé. L’approche proposée repose sur la reproduction de gestes statiques et/ou dynamiques par le patient.
Pour ce faire, il est proposé d’utiliser des outils et techniques de réalité virtuelle. Notre travail consistait à développer une application, sur le logiciel Unity 3D à l’aide du langage C# (C sharp).

Ce projet comportait majoritairement deux grands points. Devant respecter l’utilisation d’avatars animés, provenant du site Mixamo, et les adapter en fonction des besoins des patients, notre travail a vu naître deux sous-projets orientés vers deux types de population : un pour les adultes, l’autre pour les enfants.

Illustration du projet :

  • Menus & Univers :
  • Voici un rendu de nos menus respectifs. Le but étant de nous plonger directement dans l’univers:

    Capture du menu de Clotilde

    Capture du menu de Clotilde

    Capture du menu de Noémie

    Capture du menu de Noémie

    Remarque : Malgré tout, l’environnement de la simulation est identique sur nos deux projets (forêt visible en arrière plan du menu de Noémie). Celui-ci était adaptable à nos besoins et était gratuit 🙂

    Chaque bouton est utilisable et redirige vers la scène de notre choix. Chaque scène correspond aux différents modes proposés.

  • Modes disponibles
  • Les animations pour chaque personnage sont représentées par les blocs gris ci-dessous. Lorsqu’une animation est jouée, elle passe en orange. C’est par l’appui sur une touche (ou un bouton sur l’écran) qu’on passe à l’animation de notre choix. On peut les enchaîner indéfiniment et y revenir comme on veut.

    Animator sous Unity 3D

    Capture de l’Animator

    Il existe un animator controller (ensemble d’animations par blocs) par mode proposé. Clotilde a orchestré les deux modes imposés (gestes Statiques et Dynamiques) sur son application tandis que Noémie en a ajouté un troisième pour initier le patient à quelques pas de danse en bonus.

  • Scripting
  • Le scripting C# (qui permet de gérer des fonctionnalités logiciels avec du code) fut une découverte pour nous, il nous était parfois difficile de manipuler correctement les différentes fonctions. A force de patience et de nombreuses recherches à naviguer entre le net et les cours à disposition, nous avons réussi à créer nos scripts en C# par nous-même.

    Voici un exemple d’un script en C#, qui nous a permis de mettre en place un chronomètre avec une barre de décompte.

    C# pour le timer

    C# pour le timer

  • Exécutables finaux
  • Vous trouverez ci-dessous le rendu vidéo de nos exécutables. Bon visionnage !

    Application de Clotilde
    Application de Noémie

Distanciel / Autonomie :

Le projet a été un exemple pour la mise à l’épreuve de notre capacité à être autonomes. Le distanciel fut une contrainte majeure durant nos créneaux de projet. En effet, la communication rendue difficile, la mise en commun n’a pas toujours été évidente. À regret de ces mêmes conditions, nous n’avons pas pu expérimenter nos propres projets avec les casques de réalité virtuelle 🙁

Conclusion :

Puisque notre cahier des charges n’était pas stricte, nous avons ajouté des contraintes afin de compléter le projet pour l’améliorer et le rendre plus attractif.

Nous pensons qu’avec un meilleur encadrement, rendu impossible dû aux conditions sanitaires actuelles, nous aurions pu être encore plus intransigeantes avec nous-mêmes et aller plus loin.

***

Ce projet très concret nous a permis de mettre un pied dans cycle ingénieur qui nous attend individuellement ces trois prochaines années (Noémie : SAGI / Clotilde : Génie Biomédical).

Merci pour votre lecture !

Nous remercions également M. Paul RICHARD pour son encadrement.

Projet ISTIA-VR

    Bonjour à tous !

    Dans le cadre des projets de conception de deuxième année du cycle préparatoire de l’ISTIA, et intéressé par la réalité virtuelle, nous avons décidé de nous lancer dans ce projet !

    Casque de réalité virtuelle

    Casque de réalité virtuelle

  • Objectif du projet
  • Le principe de cette visite virtuelle était initialement de pouvoir visiter l’ISTIA et de montrer les différents effets des dégradations du batiment à court, moyen et long terme par de petites animations du décor. Ce projet avait pour but d’être utilisé dans les cours de MIS de monsieur Bigaud.

  • La maquette, créée avec Blender
  • Nous avons commencé par reproduire le rez-de-chaussée de l’ISTIA en s’aidant des plans de l’école, récupérés auprès de l’accueil.

    Plan rez-de-chaussée ISTIA

    Plan rez-de-chaussée ISTIA

    Quelques mesures de hauteurs de plafonds, de fenêtres, de portes à l’aide d’un instrument de mesure laser nous ont permis d’obtenir une maquette la plus réaliste possible.

    Appareil de mesure laser

    Appareil de mesure laser

    Nous n’avons pas eu le temps de faire les autres étages de l’ISTIA, cela nous aurait demandé énormément plus de temps ! Voici le gabarit final de notre maquette.

    maquette rez-de-chaussée ISTIA

    maquette rez-de-chaussée ISTIA

    Pour la réalisation de la maquette nous avons procédé selon la méthode suivante.


    Création d’un cube et extrusion

    extrusion d'un cube

    extrusion d’un cube

    Pour illustrer notre démarche voici une partie de la conception du rez-de-chaussée sous forme de vidéo timelapse


    Titre de la musique (libre de droit) : Leap of faith FREE ROYALTY MUSIC FREE ORCHESTRAL MUSIC

    Voici maintenant le rendu final avec quelques textures ajoutées
    Aperçu d'un rendu de l'entrée de l'école

    Aperçu d'un rendu de l'entrée de l'école

    Aperçus d’un rendu de l’entrée de l’école

  • Le personnage, créé avec Unity3D
  • Après avoir importé un personnage transparent (pour la vue en première personne dans le casque) nous avons commencé à travailler sur sa façon de se déplacer dans l’espace, c’est-à-dire en fonction de l’orientation de la personne dans l’espace.
    Nous avons commencé à concevoir un script en C# (langage lié à Unity3D) dans l’IDE Visual Studio 2017.

    Personnage transparent, avec une caméra liée à la boite de collision

    Personnage transparent, avec une caméra liée à la boite de collision

    Pour ce faire, nous avons du manipuler le gyroscope du téléphone, renvoyant un quaternion (vecteur de dimension 4 permettant de repérer les rotations dans l’espace).

    Angles d'Euler

    Angles d’Euler

    Grâce à des calculs d’angles d’Euler entre les différents axes de repère fixe en 4 dimensions et les axes d’orientation du téléphone, on peut décaler le repère lié au personnage et le faire se déplacer dans la direction voulue.

    La détection du toucher de l’écran se fait par ces deux petites lignes de code dans la boucle “Update” qui se répète à chaque nouvelle image générée lorsque le programme est lancé.

    Détection toucher écran

    Il ne reste plus qu’à ajouter la translation selon l’axe X du personnage et nous pouvons nous déplacer en face d’où l’on regarde en vrai !

    Exportation sur le téléphone

    Pour finir, nous avons du installer quelques kits (SDK et JDK). Après quelques changements de paramètres dans Unity3D, nous avons pu obtenir une vue adapté au casque de réalité virtuelle.
    Ces kits nous ont aussi permis de gérer l’exportation de tout notre projet sous forme de fichier .apk (fichier d’installation sous Androïd) pour ainsi tester et visiter l’ISTIA directement sur le téléphone. Voici le résultat final !

  • Remerciements
  • Merci à David BIGAUD et Thierry CAPELLE, nos professeurs référents pour ce projet.
    Merci à Paul RICHARD pour ces conseils sur Unity3D.

    Maxime ALLAIN | Maxime PETITJEAN | Projet EI2 (Année 2017-2018)

Projet Air Drum

Nous sommes un groupe de 3 étudiants en deuxième année de classe préparatoire à l’ISTIA. Dans le cadre des projets, nous avons choisi le projet nommé “AirDrum”.
Le Airdrum qu’est-ce que c’est ? C’est une activité qui consiste à mimer le geste d’un batteur sans avoir l’instrument en main. Vous voyez le AirGuitar ? Et bien imaginez la même chose avec une batterie. Simple vous pourriez dire; mais l’objectif du projet est surtout de réaliser une batterie virtuelle et que les sons correspondants soient joués selon les mouvements du “musicien” !

Pour réaliser ceci, nous avons été confrontés à trois problèmes majeurs :

  1. Comment récupérer les coordonnées et mouvements du joueur ?
  2. Comment jouer les bons sons au bon moment ?
  3. Comment virtualiser la batterie, les baguettes/mains et faire tout correspondre ?

Nous avons alors fait des recherches sur Internet avec de nombreux tutoriels, des essais plus ou moins fructueux ainsi que de nombreuses découvertes pouvant aussi nous servir dans d’autres futurs projets. Voici les solutions que nous avons trouvé :

  1. Wiimote et Nunchuk, capteurs avec Arduino, capteurs infrarouges, MakeyMakey, RazerHydra et la solution finale gardée, la Kinect.
  2. Pure Data, Unity3D
  3. Blender, Unity3D, programmes en C#/JavaScript

Nous avons donc tout d’abord créé une batterie virtuelle sous Blender.

Batterie

Batterie modélisée sous Blender

Nous avons ensuite intégré ce modèle sous Unity3D afin de pouvoir y intégrer des sons, libres de droits trouvés sur Internet, grâce à des scripts en JavaScript . Finalement, il ne nous manquait plus que l’intégration de la Kinect2 en passant par l’utilisation de scripts en C# et du “squelette” disponible dans le modèle de démonstration gratuit de Microsoft.
Kinect2

Kinect 2 utilisé pour récuperer les mouvements du “musicien”


LogoBlender

Blender


Unity3DLogo

Unity3D


SqueletteKinect

Squelette aussi appelé figure fil de fer