SlideShare une entreprise Scribd logo
1  sur  33
SOFAVR
Simulation Open Framework Architecture
for Virtual Reality



 SERVICE : DREAM
 EQUIPE PROJET : SOFA
 Sophia-Antipolis                        19 Septembre 2011
SOMMAIRE



1. Contextes – Objectifs - Contraintes

2. SOFAVR - actuellement

3. Suite du projet




  jerome.esnault@inria.fr - SOFAVR   19 Septembre 2011 - 2
1
Contextes – Objectifs - Contraintes
1.1 Simulation Open Framework Architecture
1.2 Objectifs et résultats attendus
1.3 Initialisation du projet SOFAVR
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
1.2 Objectifs et résultats attendus
Porter 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 disponibles

Ré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
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 push
Dépôt distant

                               Dépôt GIT :
                       .svn
                               branche svn
Dé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
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 push
Dépôt distant
                                                 git merge svn
                               Dépôt GIT :                   Dépôt GIT :
                      .svn
                               branche svn                 branche master
Dépôt local
                             git checkout master             git commit
                                             Dépôt GIT :                           Dépôt GIT :
                                           branche Master
                                             branche svn            Conflits?    branche Master
Répertoire de travail
                                                      https://gforge.inria.fr/projects/sofa-vr/
              jerome.esnault@inria.fr - SOFAVR                                    19 Septembre 2011 - 7
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 master


Dépôt distant

                               Dépôt GIT :             Dépôt GIT :          Dépôt GIT :
 git svn dcommit       .svn
                               branche svn           branche master       branche master
Dé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
2
SOFAVR - actuellement
2.1 Structure du projet
2.2 SOFAVR aujourd’hui
2.2 Cas d’utilisation : sofaOsg et ses plugins
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
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
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
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
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 node
MatrixTransform node
                                                                Background node              Camera

          Switch node

             Models nodes

              Geometries Drawables

Visual    Visual
                                         Visual Primitives
Normals   Model

             jerome.esnault@inria.fr - SOFAVR                                        19 Septembre 2011 - 14
3
Bilans - perspectives
3.1 Jalonnage
3.2 Planning à suivre – ouvertures
3.3 Retour d’expériences
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
3.1 La situation aujourd’hui

        Jalons prévisionnels                                     Jalons réalisées                              Avance
duré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
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 SOFA

Projet 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
3.3 Retour d’expérience

Implantation 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
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/
Simulation Open Framework Architecture




 jerome.esnault@inria.fr - SOFAVR   19 Septembre 2011 - 21
Simulation Open Framework Architecture




jerome.esnault@inria.fr - SOFAVR   19 Septembre 2011 - 22
Couches – SOFA<->SOFAVR
 OpenSceneGraph
                                                                        Contrôleur d’objets
  SceneManagement
                                                   Entrées
    Graphe de scène                             périphériques                                       Propriétés
                                                                     Comportement des             physiques des
RessourceManagement                                                      objets                       objets

Materiaux          Textures

        Animations                                Logique                            Monde Physique


            Outils                                                 Mise à jour position / déformation /
                                                                            son de collisions
Math      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
Couches – SOFA<->SOFAVR

                                     Application User
                                                                           Modeler
Framework -
  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
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                SVN

User 1             User 2                                         User               User
 NF 1               NF 2                                           1                  2

                                      SOFAVR
                                                    Repo forge
                                                                          SOFA


User 3             User 4                                         User                User
 NF 3               NF 4                                           3                   4



         jerome.esnault@inria.fr - SOFAVR                                 19 Septembre 2011 - 25
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 jalon
Dé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
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
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
Cas d’utilisation : StandaloneOsgViewer (sous sofavr)
                                   sofaOsg

                                                        •Inhiber la création automatique d’un viewer
                                 SofaThread
Application 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
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 manuellement
Application 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
SOFAVR CppDepend




jerome.esnault@inria.fr - SOFAVR            19 Septembre 2011 - 31
SOFAVR CppDepend




jerome.esnault@inria.fr - SOFAVR         19 Septembre 2011 - 32
Equipements, ressources INRIA-Rennes

Equipements :
•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

Contenu connexe

En vedette

Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...
Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...
Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...Noelle Remy
 
Formation marketing cga aga
Formation marketing cga agaFormation marketing cga aga
Formation marketing cga agachantalpaugam
 
Reunion d'information sur la randonnée en ouest Cornouaille
Reunion d'information sur la randonnée en ouest CornouailleReunion d'information sur la randonnée en ouest Cornouaille
Reunion d'information sur la randonnée en ouest CornouailleBénédicte Aocd
 
Modoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris PythonModoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris Pythonadrienpad
 
Medida cautelar innovativa contencioso administrativo
Medida cautelar innovativa contencioso administrativoMedida cautelar innovativa contencioso administrativo
Medida cautelar innovativa contencioso administrativoRoss Mendoza
 
Print digital 2012 151012
Print digital 2012 151012Print digital 2012 151012
Print digital 2012 151012Xavier Dordor
 
Guillaume tell,
Guillaume tell,Guillaume tell,
Guillaume tell,nacarEOI
 
Code promo capsiplex 2012
Code promo capsiplex 2012Code promo capsiplex 2012
Code promo capsiplex 2012hemmysams
 
Evolution des-pme-depuis-10ans-2012
Evolution des-pme-depuis-10ans-2012Evolution des-pme-depuis-10ans-2012
Evolution des-pme-depuis-10ans-2012nleclerre
 
Cataracte diabetique : gestion pratique
Cataracte diabetique : gestion pratiqueCataracte diabetique : gestion pratique
Cataracte diabetique : gestion pratiqueFrank FAMOSE
 
Soir de Match Rouen/Bordeaux
Soir de Match Rouen/BordeauxSoir de Match Rouen/Bordeaux
Soir de Match Rouen/Bordeauxspo_officiel
 
à La découverte de la guyane élèves de nivel básico 1
à La découverte de la guyane élèves de nivel básico 1à La découverte de la guyane élèves de nivel básico 1
à La découverte de la guyane élèves de nivel básico 1nacarEOI
 
1ère partie mémoire
1ère partie mémoire1ère partie mémoire
1ère partie mémoiremissy181
 

En vedette (20)

Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...
Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...
Retour d'expérience Animation Numérique de Territoire - Office de tourisme Va...
 
Formation marketing cga aga
Formation marketing cga agaFormation marketing cga aga
Formation marketing cga aga
 
Reunion d'information sur la randonnée en ouest Cornouaille
Reunion d'information sur la randonnée en ouest CornouailleReunion d'information sur la randonnée en ouest Cornouaille
Reunion d'information sur la randonnée en ouest Cornouaille
 
Modoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris PythonModoboa - Antoine Nguyen - Paris Python
Modoboa - Antoine Nguyen - Paris Python
 
Cm4 12-13
Cm4 12-13Cm4 12-13
Cm4 12-13
 
Medida cautelar innovativa contencioso administrativo
Medida cautelar innovativa contencioso administrativoMedida cautelar innovativa contencioso administrativo
Medida cautelar innovativa contencioso administrativo
 
Print digital 2012 151012
Print digital 2012 151012Print digital 2012 151012
Print digital 2012 151012
 
Guillaume tell,
Guillaume tell,Guillaume tell,
Guillaume tell,
 
3-Cm29 2013-2014
3-Cm29 2013-20143-Cm29 2013-2014
3-Cm29 2013-2014
 
Code promo capsiplex 2012
Code promo capsiplex 2012Code promo capsiplex 2012
Code promo capsiplex 2012
 
Cm14
Cm14Cm14
Cm14
 
Evolution des-pme-depuis-10ans-2012
Evolution des-pme-depuis-10ans-2012Evolution des-pme-depuis-10ans-2012
Evolution des-pme-depuis-10ans-2012
 
Cataracte diabetique : gestion pratique
Cataracte diabetique : gestion pratiqueCataracte diabetique : gestion pratique
Cataracte diabetique : gestion pratique
 
Bilan 2011 de la population ursine dans les Pyrénées
Bilan 2011 de la population ursine dans les PyrénéesBilan 2011 de la population ursine dans les Pyrénées
Bilan 2011 de la population ursine dans les Pyrénées
 
Soir de Match Rouen/Bordeaux
Soir de Match Rouen/BordeauxSoir de Match Rouen/Bordeaux
Soir de Match Rouen/Bordeaux
 
4-Cm23 10-11
4-Cm23 10-114-Cm23 10-11
4-Cm23 10-11
 
Tptecno
TptecnoTptecno
Tptecno
 
Duplo dossier
Duplo dossierDuplo dossier
Duplo dossier
 
à La découverte de la guyane élèves de nivel básico 1
à La découverte de la guyane élèves de nivel básico 1à La découverte de la guyane élèves de nivel básico 1
à La découverte de la guyane élèves de nivel básico 1
 
1ère partie mémoire
1ère partie mémoire1ère partie mémoire
1ère partie mémoire
 

Similaire à SOFAVR_jesnault_19-09-11_presentation1

ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2Jérôme Esnault
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Lilie - l'ENT de la Région Ile-de-France
Lilie - l'ENT de la Région Ile-de-FranceLilie - l'ENT de la Région Ile-de-France
Lilie - l'ENT de la Région Ile-de-FranceStefane Fermigier
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023SpikeeLabs
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsRonan Amicel
 
Wad Robot Framework Pour Jump Camp4 It
Wad Robot Framework Pour Jump Camp4 ItWad Robot Framework Pour Jump Camp4 It
Wad Robot Framework Pour Jump Camp4 ItJérôme BATON
 
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisSymfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisNicolas Pastorino
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraDNG Consulting
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentationOpenCascade
 
Les distros mobiles sont aussi des distros !
Les distros mobiles sont aussi des distros !Les distros mobiles sont aussi des distros !
Les distros mobiles sont aussi des distros !Anne Nicolas
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...Publicis Sapient Engineering
 
DevOps, freedom to get stuff done
DevOps, freedom to get stuff doneDevOps, freedom to get stuff done
DevOps, freedom to get stuff doneAhmed Bessifi
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfChris Saez
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpusleplatrem
 
Formation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleFormation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleYannick Comte
 
Premier contact avec Subversion
Premier contact avec SubversionPremier contact avec Subversion
Premier contact avec SubversionSylvain Leroux
 
Les paquets snaps « les paquets d’applications linux universels, nouvelle g...
Les paquets snaps   « les paquets d’applications linux universels, nouvelle g...Les paquets snaps   « les paquets d’applications linux universels, nouvelle g...
Les paquets snaps « les paquets d’applications linux universels, nouvelle g...Vincent JOBARD
 

Similaire à SOFAVR_jesnault_19-09-11_presentation1 (20)

ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Fully Automated Nagios Jm2L 2009
Fully Automated Nagios Jm2L 2009Fully Automated Nagios Jm2L 2009
Fully Automated Nagios Jm2L 2009
 
Lilie - l'ENT de la Région Ile-de-France
Lilie - l'ENT de la Région Ile-de-FranceLilie - l'ENT de la Région Ile-de-France
Lilie - l'ENT de la Région Ile-de-France
 
VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023VDLT - Retour DevFest 2023
VDLT - Retour DevFest 2023
 
Je configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtoolsJe configure mes serveurs avec fabric et fabtools
Je configure mes serveurs avec fabric et fabtools
 
Wad Robot Framework Pour Jump Camp4 It
Wad Robot Framework Pour Jump Camp4 ItWad Robot Framework Pour Jump Camp4 It
Wad Robot Framework Pour Jump Camp4 It
 
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live ParisSymfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
Symfony et eZ Publish: embarquement immédiat - talk at Symfony Live Paris
 
Session GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 CobraSession GWT Devoxx France 2012 Cobra
Session GWT Devoxx France 2012 Cobra
 
08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation08 jus 20101123_cae_linux_presentation
08 jus 20101123_cae_linux_presentation
 
Les distros mobiles sont aussi des distros !
Les distros mobiles sont aussi des distros !Les distros mobiles sont aussi des distros !
Les distros mobiles sont aussi des distros !
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
XebiCon'16 : Le futur de la télévision, les applications ! Par Fabien Mirault...
 
DevOps, freedom to get stuff done
DevOps, freedom to get stuff doneDevOps, freedom to get stuff done
DevOps, freedom to get stuff done
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpus
 
Formation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité VirtuelleFormation Unity 3D Réalité Virtuelle
Formation Unity 3D Réalité Virtuelle
 
Premier contact avec Subversion
Premier contact avec SubversionPremier contact avec Subversion
Premier contact avec Subversion
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 
Les paquets snaps « les paquets d’applications linux universels, nouvelle g...
Les paquets snaps   « les paquets d’applications linux universels, nouvelle g...Les paquets snaps   « les paquets d’applications linux universels, nouvelle g...
Les paquets snaps « les paquets d’applications linux universels, nouvelle g...
 

SOFAVR_jesnault_19-09-11_presentation1

  • 1. SOFAVR Simulation Open Framework Architecture for Virtual Reality SERVICE : DREAM EQUIPE PROJET : SOFA Sophia-Antipolis 19 Septembre 2011
  • 2. SOMMAIRE 1. Contextes – Objectifs - Contraintes 2. SOFAVR - actuellement 3. Suite du projet jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 2
  • 3. 1 Contextes – Objectifs - Contraintes 1.1 Simulation Open Framework Architecture 1.2 Objectifs et résultats attendus 1.3 Initialisation du projet SOFAVR
  • 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. 1.2 Objectifs et résultats attendus Porter 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 disponibles Ré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. 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 push Dépôt distant Dépôt GIT : .svn branche svn Dé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. 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 push Dépôt distant git merge svn Dépôt GIT : Dépôt GIT : .svn branche svn branche master Dépôt local git checkout master git commit Dépôt GIT : Dépôt GIT : branche Master branche svn Conflits? branche Master Répertoire de travail https://gforge.inria.fr/projects/sofa-vr/ jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 7
  • 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 master Dépôt distant Dépôt GIT : Dépôt GIT : Dépôt GIT : git svn dcommit .svn branche svn branche master branche master Dé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. 2 SOFAVR - actuellement 2.1 Structure du projet 2.2 SOFAVR aujourd’hui 2.2 Cas d’utilisation : sofaOsg et ses plugins
  • 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. 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. 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. 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. 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 node MatrixTransform node Background node Camera Switch node Models nodes Geometries Drawables Visual Visual Visual Primitives Normals Model jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 14
  • 15. 3 Bilans - perspectives 3.1 Jalonnage 3.2 Planning à suivre – ouvertures 3.3 Retour d’expériences
  • 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. 3.1 La situation aujourd’hui Jalons prévisionnels Jalons réalisées Avance duré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. 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 SOFA Projet 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. 3.3 Retour d’expérience Implantation 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. 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. Simulation Open Framework Architecture jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 21
  • 22. Simulation Open Framework Architecture jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 22
  • 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 des RessourceManagement objets objets Materiaux Textures Animations Logique Monde Physique Outils Mise à jour position / déformation / son de collisions Math 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. Couches – SOFA<->SOFAVR Application User Modeler Framework - 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. 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 SVN User 1 User 2 User User NF 1 NF 2 1 2 SOFAVR Repo forge SOFA User 3 User 4 User User NF 3 NF 4 3 4 jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 25
  • 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 jalon Dé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. 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. 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. Cas d’utilisation : StandaloneOsgViewer (sous sofavr) sofaOsg •Inhiber la création automatique d’un viewer SofaThread Application 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. 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 manuellement Application 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. SOFAVR CppDepend jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 31
  • 32. SOFAVR CppDepend jerome.esnault@inria.fr - SOFAVR 19 Septembre 2011 - 32
  • 33. Equipements, ressources INRIA-Rennes Equipements : •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

Notes de l'éditeur

  1. 1) sofaOsg (passerelle entre SOFA et OSG) a) Plugin SOFA pour un rendu OSG dans l’interface graphique Qt (utilisable par l’application standard de SOFA) b) Plugin SOFA pour un rendu externalisé (fenêtrée et dans un boucle séparé de celle du rendu) -&gt; self-threaded2) Bibliothèque Sofapp a) Encapsule l’application principale de SOFA a) Inhibe la création automatique d’un rendu b) Création d’un rendu manuellement (basé sur osgvr et utilisant sofaOsg)3) Application sofavr (utilisant le projet OSGVR) a) Création d’un mode de rendu OSGVR faisant le lien avec sofaOsg permettant l’affichage sur le CADWALL de Sophia b) Travaux d’integration sur le CAVE (ISPACE) en cours car basé sur MPI -&gt; gestion de la communication (le même code sur plusieurs machines)