Successfully reported this slideshow.

SOFAVR_jesnault_19-09-11_presentation1

398 views

Published on

Le travail consistait à créer une extension du projet SOFA (Simulation Open Framework Architecture) nommé SOFAVR portant l’application de simulation physique sur des équipements de Réalité Virtuelle. Une première partie est d’adapter le rendu 3D séquentiel de SOFA (OpenGL) à un rendu 3D orienté graphe de scène (OpenSceneGraph). Une seconde partie est d’adapter l’architecture de SOFA aux équipements de Réalité Virtuelle, dans un premier temps dans la salle immersive de Sophia Antipolis, puis dans un second temps dans les autres centres. Voici la première présentation des premiers résultats.

  • Be the first to comment

  • Be the first to like this

SOFAVR_jesnault_19-09-11_presentation1

  1. 1. SOFAVRSimulation Open Framework Architecturefor Virtual Reality SERVICE : DREAM EQUIPE PROJET : SOFA Sophia-Antipolis 19 Septembre 2011
  2. 2. SOMMAIRE1. Contextes – Objectifs - Contraintes2. SOFAVR - actuellement3. Suite du projet jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 2
  3. 3. 1Contextes – Objectifs - Contraintes1.1 Simulation Open Framework Architecture1.2 Objectifs et résultats attendus1.3 Initialisation du projet SOFAVR
  4. 4. 1.2 Simulation Open Framework Architecture Graphe de Simulation : Composants (400) :• Visuels• Topologique• Mapping• Calcul ODE / linéaire• Champs de forces• Modèles de collisions• Contraintes… Description XML Interface graphique Qt + rendu OpenGL Application SOFA jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 4
  5. 5. 1.2 Objectifs et résultats attendusPorter SOFA sur des équipements de Réalité Virtuelle :• S’adapter aux différents dispositifs d’affichage (sphérique, cubique…) des équipements de Réalité Virtuelle• Avoir des Interactions Homme-Machine favorisant l’immersion (plus de clavier / souris), découplées de la visualisation• Désynchronisation de la simulation et du rendu en deux boucles indépendantes (avoir un rendu orienté utilisateur)Pré requis :• Prise en main de SOFA et des API/outils disponiblesRésultats attendus :• Apporter une brique technologique innovante supplémentaire à SOFA• Promouvoir l’utilisation d’équipements de Réalité Virtuelle• Favoriser les échanges inter-INRIA (national) en contribuant à l’homogénéisation d’une architecture compatible avec les différents équipements de Réalité Virtuelle. jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 5
  6. 6. 1.3 Initialisation du projet SOFAVR Fort dynamisme Naissance Besoin de stabilité et de confort SOFA-DEV SOFAVR Dépôt SVN: Dépôt GIT :branche sofa-dev branche svn git svn fetch git pushDépôt distant Dépôt GIT : .svn branche svnDépôt local git commit git svn rebase Dépôt GIT :Répertoire de travail branche svn https://gforge.inria.fr/projects/sofa-vr/ jerome.esnault@inria.fr - SOFAVR -6 19 Septembre 2011
  7. 7. 1.3 Initialisation du projet SOFAVR Rythme des cycles de développement différents Etre le moins intrusif possible SOFA-DEV SOFAVR Dépôt SVN: Dépôt GIT : Dépôt GIT :branche sofa-dev branche svn branche master git pushDépôt distant git merge svn Dépôt GIT : Dépôt GIT : .svn branche svn branche masterDépôt local git checkout master git commit Dépôt GIT : Dépôt GIT : branche Master branche svn Conflits? branche MasterRépertoire de travail https://gforge.inria.fr/projects/sofa-vr/ jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 7
  8. 8. 1.3 Initialisation du projet SOFAVR Synchronisation régulière pour ne pas diverger SOFA-DEV SOFAVR Dépôt SVN: Dépôt GIT : Dépôt GIT : Dépôt GIT :branche sofa-dev branche svn branche master branche masterDépôt distant Dépôt GIT : Dépôt GIT : Dépôt GIT : git svn dcommit .svn branche svn branche master branche masterDépôt local Dépôt GIT : Dépôt GIT :Répertoire de travail branche master branche master https://gforge.inria.fr/projects/sofa-vr/ jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 8
  9. 9. 2SOFAVR - actuellement2.1 Structure du projet2.2 SOFAVR aujourd’hui2.2 Cas d’utilisation : sofaOsg et ses plugins
  10. 10. 2.1 Structure du projet Dépendances des projets :Autres MPI VRPN Autres OpenGL Qt Autres OpenSceneGraph (SVN-CMake) OSGVR (GIT-CMake) SOFA-DEV (SVN-QMake) SOFAVR (GIT-CMake) Arborescence du projet (Cmake) : Sources Bibliothèques Plugins Applications sofaOsg sofapp QtOsgViewer StandaloneOsgViewer « tests » sofavr jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 10
  11. 11. 2.2 SOFAVR aujourd’hui Bibliothèque Bibliothèque Bibliothèque sofaOsg sofapp osgvr Réalité Plugin Plugin Virtuelle : QtOsg Standalone Application sofavr Viewer OsgViewer • IHM fenêtrée CADWALL Application runSofa • Rendu plein écran Machine Maitre : Main thread : simulation I-SPACE Machines esclaves: Render threads jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 11
  12. 12. 2.3 sofaOsg et ses plugins : cas d’utilisation ObjectFactory FileRepository SofaViewer SofaPluginRessourcePath OsgSofaViewer SofaXmlAliases OsgBackground QtOsgViewer osg root node Background node Camera jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 12
  13. 13. 2.3 sofaOsg et ses plugins : cas d’utilisation ObjectFactory FileRepository SofaViewer <<Interface>> SofaPluginRessourcePath OsgSofaViewer DrawManager SofaXmlAliases OsgBackground OsgSofaDrawManager QtOsgViewer osg sofaRoot node osg root node debugDisplay node Background node Camera Geometries Drawables Visual Primitives jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 13
  14. 14. 2.3 sofaOsg et ses plugins : cas d’utilisation VisualModel ObjectFactory FileRepository SofaViewer VisualModelImpl <<Interface>> SofaPluginRessourcePath OsgSofaViewer DrawManager SofaXmlAliases OsgBackground OsgModel OsgSofaDrawManager QtOsgViewer osg sofaRoot node osg root node OsgSofaVisualModel debugDisplay nodeMatrixTransform node Background node Camera Switch node Models nodes Geometries DrawablesVisual Visual Visual PrimitivesNormals Model jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 14
  15. 15. 3Bilans - perspectives3.1 Jalonnage3.2 Planning à suivre – ouvertures3.3 Retour d’expériences
  16. 16. 3.1 Jalonnage - bilan Analyse métier & Intégration et fonctionnelle validation Conception générale Conception Tests & et préliminaire assemblages Codage Cycles itératifs 1. Configuration du projet 2. Prise en main d’OSG et de SOFA 3. Cycles itératifs d’analyses, de développements et de tests techniques 4. Intégration d’un plugin OSG Viewer basé sur Qt dans SOFA 5. Développements d’outils de chargement / déchargements de scènes SOFA… + autres 6. Développement d’un Viewer OSG Standalone self-threaded 7. Application SOFAVR basée sur OSGVR et MPI 8. Documentation (WIKI – code) Dec Jan Fev Mar Avr Mai Jui Juil Aout jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 16
  17. 17. 3.1 La situation aujourd’hui Jalons prévisionnels Jalons réalisées Avancedurée jalon durée jalon ments 1 Initialisation du projet (wiki, outils, configuration ) NP 2 Prise en main de SOFA 1 Prise en main de SOFA (rendu) P 1 Rendu OSG dans SOFA P 1 Séparation GUI / Rendu P 1 Visualisation asynchrone. 1 Séparation SIMU(main thread) / rendu (self-threaded) P 1 Gestion du démarrage de SOFA et de sa vue NP 1 Sécurisation, compatibilité, outils OSG NP 1 Connexion périph I - Travaux sur OSGVR P 1 Connexion périph I/O - - P 1 Visualisation CadWall 2 Application SOFAVR sur CadWall et iSpace P 2 Visualisation iSpace 3 SOFA-VR autres centres - Collaboration avec Rennes P 1 Intégration releases SOFA - Intégration local et proposition d’un plan d’intégration P P : Prévus NP : Non prévus jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 17
  18. 18. 3.2 Planning à suivre et ouvertures• Distribution MPI (SOFAVR sur I-Space)• Couplage de SOFAVR avec les interfaces de Réalité Virtuelle• Portage de SOFAVR vers les autres centres INRIA• Contribution au projet OSGVR / SOFAVR (et support)• Contribution au projet SOFA / SOFAVR (et support)• Intégration aux releases de SOFAProjet international MixedReality :• Création d’une API OpenSource dédiée RV en collaboration avec les centres INRIA• Projet porté par la D2T• Collaboration nationale Rennes/Grenoble – internationale Allemagne (IGD- fraunhofer)• SOFA est le cas d’utilisation  implication dans les processus du projet… jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 18
  19. 19. 3.3 Retour d’expérienceImplantation géographique : service DREAM (Sophia)Implantation projet : SOFA (Lille – Grenoble – Sophia)Maintien de la cohérence du projet SOFAVR :• Gestion de projet : - Réunion hebdomadaire SOFAVR - Réunion mensuelle SOFAVR (DREAM) / SOFA (EVASION-SHAMAN-ASCLEPIOS) - Wiki dédié à jour• Implications multiples : - Familiarisation des outils (GIT, CMake/cmaketools, OSG, documentation) - Participation au projet SOFA (réunions, chat IRC, mailling-list, documentation) jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 19
  20. 20. Merci de votre attention. Des questions ? PmWiki SofaVR : https://www-sop.inria.fr/dream/wiki/SofaVR/SofaVR SofaVR sur la forge (demander l’accès): https://gforge.inria.fr/projects/sofavr/
  21. 21. Simulation Open Framework Architecture jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 21
  22. 22. Simulation Open Framework Architecturejerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 22
  23. 23. Couches – SOFA<->SOFAVR OpenSceneGraph Contrôleur d’objets SceneManagement Entrées Graphe de scène périphériques Propriétés Comportement des physiques desRessourceManagement objets objetsMateriaux Textures Animations Logique Monde Physique Outils Mise à jour position / déformation / son de collisionsMath String Logging Viewer Rendu visuel Monde Audio Réalité virtuelle Sources sonores Rendu de l’objet à min 25 des objets images / s Moteur de simulation jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 23
  24. 24. Couches – SOFA<->SOFAVR Application User ModelerFramework - services Sound GUI Datas Input Sofa - GUI Sofa - Ressources SceneGraph Sofa - Components C / C++ / Standard Sofa - Viewer scripts OpenAL… C++ VRPN GL libraries Sofa – Helper (tools) GPGPU Sofa - Core I/O clavier Computer Hardware Sound Graphic souris CPU Cluster card card joystick - ART… Immersive room jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 24
  25. 25. Méthode de collaboration : Granulation temporelle et informationnelle asynchrone Collaboration en session Equipe sofavr (DREAM) Modèle 3C : Equipe sofa-dev PmWiki Communication MediaWiki-TracWiki- HUDSON-chat CMake Coordination QMake GIT Collaboration SVNUser 1 User 2 User User NF 1 NF 2 1 2 SOFAVR Repo forge SOFAUser 3 User 4 User User NF 3 NF 4 3 4 jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 25
  26. 26. Méthode Agile - codage Utilisateurs finaux Version 1.0.1 fonctionnelle Rapports de tests Mesure satisfaction clients Version 1.0.0 Version 1.0.1 BUG fonctionnelle fonctionnelle Réflexions jalon n+1 & corrections Développements jalonDéveloppements jalon n BUG version n - i n+1 Avec i le nombre d’itérations précédentes Ligne du temps jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 26
  27. 27. Tâches prévues Dec • Prise en main de Sofa (en continue) Janv • SofaOsg :Fev- Intégration d’un renduOSG dans SOFA (plugin Qt)Mars Connexion au modèle visuel (avec déformations + textures)Avril- Mai Travaux sur le mode « standaloneviewer » osg (plugin) Juin- Travaux sur le mode multi-thread (simu <-> rendu) Juil • SofaVR :Aout- Intégration d’OSGVR Sept Interactions SOFAVR tps jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 27
  28. 28. Tâches non prévues Dec • Initialisation gestion de projet (forge git/svn – Cmake – PmWiki) • Prise en main d’OpenSceneGraph (en continue) Janv • SofaOsg : • Travaux sur RigidState (mis en attente d’intégration)Fev- • Travaux sur le chargement/déchargement (ressources dir / XML)Mars • Ajout sur les outils OSG (background – debug infos)Avril- Mai • Autres : Juin- Sandbox.git (en continue) Juil Cmaketools.git (en continue) Groupe de travail communication interne (réunions ponctuelles)Aout- Sept tps jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 28
  29. 29. Cas d’utilisation : StandaloneOsgViewer (sous sofavr) sofaOsg •Inhiber la création automatique d’un viewer SofaThreadApplication sofavr •Création d’un viewer manuellement (main) StandAloneOsgViewer •Construit le graph de scène OSG • Rend la scène dans une fenêtre indépendante • Externalisation du rendu dans une boucle dédiée Main thread : QApplication (GUI) + simulation Render thread : OsgViewerStandalone (draw visitors on sofa graph) jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 29
  30. 30. Cas d’utilisation : sofavr Basé sur MPI : sofaOsg •Le même code … Inhiber la création automatique d’un viewer SofaThread Création d’un viewer manuellementApplication sofavr (main) SofaVRViewer Osgvr::Viewer::AbstractViewer Abstraction d’un rendu sur I-space et CAD-WALL SofaVRCallBack Mise à jour du graph de scène OSG …tournant indépendamment sur 1 machine maitre et des machines esclaves : Machine Maitre : Machines esclaves: Main thread : Render threads : QApplication (GUI) + simulation SofaVRViewer (draw visitors on sofa graph) jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 30
  31. 31. SOFAVR CppDependjerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 31
  32. 32. SOFAVR CppDependjerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 32
  33. 33. Equipements, ressources INRIA-RennesEquipements :•CAVE = Sol + mur vertical (10m de long + 3m de haut + 3m profondeur) • Stéréo active (INFITEC) (sync par 6 émetteurs infrarouges) • 2 machines quadroplex + 1 • Tracking ART 16 caméras • 2 API (OpenMASK et ColaVIZ) •Son spacialisé (OpenAL wrappé dans OpenMASK et ColaVIZ) • OS windows •Applis Ogre pas encore portées en salle•HAPTIC : 2 bras à retour d’effort (dont un phantom)• Utilisations de SOFA: •Avec INRIA-Lille sur une appli de neuro-chirurgie •A INRIA-Rennes contrôle de déplacement de robot sur surface flexible (abdomen) jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 33

×