FR3136568A1 - Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée - Google Patents

Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée Download PDF

Info

Publication number
FR3136568A1
FR3136568A1 FR2205489A FR2205489A FR3136568A1 FR 3136568 A1 FR3136568 A1 FR 3136568A1 FR 2205489 A FR2205489 A FR 2205489A FR 2205489 A FR2205489 A FR 2205489A FR 3136568 A1 FR3136568 A1 FR 3136568A1
Authority
FR
France
Prior art keywords
state
parameters
virtual hand
virtual
hand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR2205489A
Other languages
English (en)
Inventor
Tangui MARCHAND GUERNIOU
Maxime JOUIN
Jeremy Lacoche
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR2205489A priority Critical patent/FR3136568A1/fr
Priority to PCT/EP2023/065058 priority patent/WO2023237519A1/fr
Publication of FR3136568A1 publication Critical patent/FR3136568A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée Un procédé de génération d’une représentation graphique d’une main virtuelle est réalisé en fonction d’un premier jeu de paramètres (10) représentatifs d’un premier état et d’une première position d’une main virtuelle dans un environnement virtuel, et d’un deuxième jeu de paramètres (12) représentatifs d’une géométrie et d’une position d’un objet destiné à être agrippé par ladite main. Le procédé comprend une détermination (E6) d’un moins un quatrième jeu de paramètres (60) représentatifs d’un troisième état intermédiaire entre le premier état et un deuxième état, et d’une troisième position entre la première position et la deuxième position. La main agrippe l’objet dans le premier état ou le deuxième état. Le troisième état permet une génération (E8) d’une représentation graphique de la main virtuelle du premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position. Figure pour l’abrégé : figure 1

Description

Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée 1. Domaine de l'invention
La présente invention concerne le domaine de la réalité virtuelle. Plus précisément, l’invention a trait à la représentation d’une main virtuelle au sein d’un environnement virtuel.
L’utilisateur a visuellement accès à cet environnement via un retour vidéo (par exemple au moyen d’un casque de réalité virtuelle).
Pour la suite, l’expression « état d’une main » fait référence aux différentes configurations que cette main peut prendre, c’est-à-dire à la position relative des doigts, des phalanges et/ou de la paume de la main. Par exemple, une telle main peut être dans un état fermé dans lequel la main forme un poing, un état ouvert dans lequel les doigts sont tendus dans le prolongement de la paume, un état relâché dans lequel les doigts sont relâchés, ou tout état intermédiaire.
2. Art antérieur et ses inconvénients
La réalité virtuelle (VR pour «Virtual Reality» en langue anglaise) forme un domaine dans lequel l’immersion de l’utilisateur est essentielle pour lui procurer une expérience et une ergonomie satisfaisantes. En particulier, dans bon nombre de situations dans lesquelles un utilisateur se trouve en situation d’immersion dans un environnement de réalité virtuelle, ce dernier peut être amené à piloter une main virtuelle pour réaliser certaines étapes de type préhension et déplacement d’un objet. Ce pilotage de la main virtuelle est par exemple réalisé à l’aide d’une manette tenue par l’utilisateur.
Le pilotage par manette est simple à mettre en œuvre techniquement, et autorise l’utilisation de boutons et autres dispositifs haptiques pour permettre au système d’acquérir des instructions de l’utilisateur. Le pilotage par manette permet en outre d’offrir à l’utilisateur un retour haptique en cas d’interaction de la main virtuelle avec l’environnement dans lequel elle est plongée.
Le pilotage par manette de la main virtuelle n’est cependant pas sans inconvénient. En particulier, lorsqu’un utilisateur tenant une manette souhaite saisir un objet dans l’environnement virtuel par l’intermédiaire de la main virtuelle qu’il pilote, l’utilisateur rapproche tout d’abord la main virtuelle de l’objet. Une fois la main suffisamment proche, l’utilisateur envoie une instruction, typiquement en appuyant sur un bouton de la manette, de préhension de l’objet. La main virtuelle doit alors réaliser une transition d’un premier état dit de repos dans lequel la main virtuelle se déplace dans son environnement, à un deuxième état dit de préhension dans lequel la main saisit l’objet.
L’exécution de cette transition d’un premier état neutre vers un deuxième état de préhension pose problème, car soit la transition est progressive et démarre au moment de l’émission de l’instruction de préhension, ce qui induit une latence dans son exécution, soit la transition est instantanée et cela détériore grandement l’immersion pour l’utilisateur.
La présente invention propose d’améliorer la situation.
3. Exposé de l'invention
A cet effet, l’invention propose un procédé de génération d’une représentation graphique d’une main virtuelle en fonction d’un premier jeu de paramètres représentatifs d’un premier état d’une main virtuelle et d’une première position de ladite main virtuelle dans un environnement virtuel, et d’au moins un deuxième jeu de paramètres représentatifs d’une géométrie d’au moins un objet destiné à être agrippé par ladite main virtuelle et d’une position dudit objet dans ledit environnement virtuel, le procédé comprenant les étapes suivantes :
-- une détermination d’un moins un quatrième jeu de paramètres représentatif d’au moins un troisième état de la main virtuelle intermédiaire entre le premier état et un deuxième état de la main virtuelle, en fonction du premier jeu de paramètres, d’un troisième jeu de paramètres représentatif du deuxième état de la main virtuelle dans une deuxième position dans l’environnement virtuel, et d’au moins une information représentative d’une troisième position de la main virtuelle située entre la première position et la deuxième position, le troisième jeu de paramètres étant fonction du premier jeu de paramètres et du deuxième jeu de paramètres, la main virtuelle agrippant l’objet dans l’un des états parmi le premier état et le deuxième état dans une position parmi respectivement la première position et la deuxième position correspondant à la position de l’objet,
le troisième état permettant une génération d’une représentation graphique de la main virtuelle depuis le premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position.
Ainsi, un tel procédé de génération d’une représentation graphique d’une main virtuelle offre une transition fluide de la main virtuelle d’un état initial vers un état de préhension d’un objet, et ce de manière anticipée, c’est-à-dire avant même que l’utilisateur produise une instruction de saisie au moyen d’un dispositif de commande.
Plus précisément, à mesure que la main virtuelle se rapproche de l’objet à agripper, la main évolue progressivement du premier état, ou état initial vers le deuxième état, ou état de de préhension en passant par l’au moins troisième état, ou état intermédiaire, représentatif d’une transition entre l’état initial et l’état de préhension. Ainsi, la main virtuelle, dont le déplacement et les actions, telle que la saisie d’un objet, peuvent être contrôlées par un utilisateur au moyen d’un dispositif de contrôle, tel que par exemple, une manette ou un joystick, en particulier avec six degrés de liberté (aussi noté « 6DoF » pour «six degrees of freedom» en anglais), notamment le dispositif de contrôle est localisé dans l’espace, présente à l’utilisateur un comportement plus réaliste. L’utilisateur n’a en particulier pas besoin de donner d’instruction spécifique, par le truchement du dispositif de contrôle, pour fermer progressivement la main virtuelle lorsque celle-ci est proche de l’objet simulant ainsi le comportement d’une main « réelle ».
Le premier état peut par exemple être un état dans lequel la main virtuelle est légèrement ouverte (dit état « neutre » ou « relâché »), totalement ouverte (ou « à plat »), ou dans un état courant de la main virtuelle à l’instant où le procédé est mis en œuvre. Le deuxième état représente l’état dans lequel se trouve la main virtuelle lorsqu’elle est le plus près possible de l’objet, dans une configuration dans laquelle la main virtuelle est en capacité d’agripper l’objet.
Le troisième état de la main virtuelle dépend de la position relative de la main virtuelle par rapport à l’objet ainsi que du premier état et du deuxième état de la main virtuelle. Cet état intermédiaire est d’autant plus proche de l’état de préhension que la main virtuelle est proche de l’objet. Au fur et à mesure que la main virtuelle se rapproche de l’objet, l’état intermédiaire devient alors de plus en plus similaire à l’état de préhension. De fait, à l’instant où le dispositif de contrôle émet une instruction de saisie de l’objet, la main virtuelle agrippe ce dernier sans transition brusque ni retard dans l’exécution de l’instruction car elle se trouve déjà dans l’état de préhension ou dans un état similaire à l’état de préhension. La qualité d’expérience de l’utilisateur en est grandement renforcée, sans sacrifier la réactivité du contrôle de la main virtuelle.
Selon une caractéristique particulière, le procédé comporte une détermination, en fonction du premier jeu de de paramètres et du deuxième jeu de paramètres, d’un troisième jeu de paramètres représentatifs du deuxième état de la main virtuelle dans la deuxième position.
Selon une caractéristique particulière, les paramètres du troisième jeu de paramètres sont représentatifs d’un deuxième état de la main virtuelle lorsqu’elle agrippe l’objet.
Selon une caractéristique particulière, le procédé comporte la génération de la représentation graphique de la main virtuelle depuis le premier état à la première position jusqu’au deuxième état à la position de l’objet en passant par le troisième état à la deuxième position.
Dans un exemple, un état de la main virtuelle est défini par une pluralité de paramètres comprenant une liste de valeurs d’angles, une valeur d’angle décrivant un angle formé par deux phalanges successives d’un doigt de la main virtuelle ou un angle formé par une phalange et la paume de ladite main virtuelle.
Le fait de traiter les phalanges individuellement rend la représentation graphique plus réaliste et plus fluide, car ces valeurs peuvent être déterminées finement selon le type de transition voulu.
Selon un exemple, ledit au moins un quatrième jeu de paramètres comprend en outre un paramètre de transition dont la valeur est comprise entre une valeur minimale correspondant au premier état et à la première position de la main virtuelle et une valeur maximale correspondant à la position de l’objet et au deuxième état de la main virtuelle.
Dans cet exemple, l’ensemble des quatrièmes jeux de paramètres forme un continuum (ou une discrétisation suffisamment fine) entre l’état initial et l’état de préhension. Chaque état et chaque position représenté par l’un des quatrièmes jeux de paramètres étant associé à une valeur du paramètre de transition, la représentation graphique de la transition de la main virtuelle est ainsi plus réaliste et favorise l’immersion. Le continuum ainsi construit permet d’adapter la représentation graphique de la main virtuelle selon la fréquence à laquelle des trames sont affichées par le retour vidéo donnant accès à l’environnement de la main virtuelle, par exemple 90 Hz pour de la réalité virtuelle. En outre, cette paramétrisation de l’ensemble des quatrièmes jeux de paramètres permet avantageusement d’adapter la transition de la main à la vitesse à laquelle celle-ci se rapproche de l’objet.
Dans un exemple, au moins une valeur d’angle est fonction de la valeur du paramètre de transition.
Ici, le fait de définir au moins une valeur d’angle comme en fonction d’une valeur du paramètre de transition permet de piloter finement la représentation graphique de la main virtuelle, par exemple phalange par phalange, en fonction de la valeur du paramètre de transition.
Dans un exemple, la fonction liant la valeur du paramètre de transition à une valeur d’angle donnée est une interpolation linéaire passant par une valeur d’angle correspondant à la valeur minimale du paramètre de transition et par une valeur d’angle correspondant à la valeur maximale du paramètre de transition.
Ici, les données de transition sont ainsi construites par interpolation linéaire. Les inventeurs ont observé que ce choix d’interpolation était un bon compromis entre réalisme et vitesse de calcul.
Dans un exemple, une valeur du paramètre de transition correspond à :
- un moins un rapport entre la position relative de la main virtuelle par rapport à l’objet et une distance de transition lorsque ledit rapport est positif, et
- zéro sinon.
Dans cet exemple, la valeur du paramètre de transition varie entre les valeurs 0 et 1. Lorsque la main virtuelle se situe au-delà d’une certaine distance de l’objet, qualifiée de distance de transition, la valeur du paramètre de transition est nulle, et la main reste dans son état courant (par exemple un état relâché). Lorsque la main virtuelle se rapproche de l’objet, la valeur du paramètre de transition augmente linéairement avec la proximité de la main virtuelle à l’objet (en définissant la proximité comme la différence entre la distance de transition et la distance entre la main virtuelle et l’objet).
Dans un exemple, le premier jeu de paramètres est en outre représentatif d’une orientation de la main virtuelle dans l’espace virtuel, le procédé comprenant en outre :
- la détermination, en fonction de la position de la main virtuelle, de l’orientation de la main virtuelle et de la position de l’objet virtuel, d’un paramètre d’intention dont la valeur représente une probabilité d’intention de l’utilisateur de saisir ledit objet avec ladite main virtuelle ;
- la détermination de la satisfaction, par ledit paramètre d’intention, d’une première condition, ladite satisfaction entraînant la détermination du troisième jeu de paramètres et la détermination dudit au moins un quatrième jeu de paramètres.
Ici, la détermination du troisième jeu de paramètres et dudit au moins quatrième jeux de paramètres est conditionnée à la satisfaction d’une première condition, dite condition d’intention, par le paramètre d’intention. Cela permet d’économiser du temps de calcul, en ne construisant le troisième jeu de paramètres et ledit au moins quatrième jeu de paramètres que pour un objet que l’utilisateur compte vraisemblablement agripper avec la main virtuelle.
Dans un exemple, l’environnement virtuel comprend une pluralité d’objets, et la première condition est satisfaite pour l’objet associé audit paramètre d’intention présentant la plus grande valeur.
Ce choix de première condition permet, dans un environnement multi-objets, de calculer la transition de l’objet que l’utilisateur souhaite le plus vraisemblablement saisir.
Dans un exemple, chaque objet est associé à au moins une classe, et la valeur du deuxième paramètre associé audit objet est une fonction de l’au moins une classe associée à l’objet.
Dans cet exemple, les objets dans l’environnement sont chacun étiquetés avec une certaine classe (qui peut être commune à plusieurs objets). Ces classes peuvent par exemple correspondre à différentes étapes d’un processus, ou à un type d’objet tel qu’un outil. Ainsi, lorsque l’utilisateur doit manipuler plusieurs objets (par exemple des outils), ces classes contribuent au calcul du deuxième paramètre et donc de la transition de la main. Cela permet d’une part de mieux discriminer le choix de l’objet servant de base à la transition en autorisant seulement les objets relatifs à une classe donnée, et d’autre part joue un rôle de détrompeur pour l’utilisateur, en incitant l’utilisateur à déplacer la main virtuelle vers le ou les objets pertinents.
Dans un exemple, le procédé comprend l’obtention de données représentatives d’une direction du regard d’un utilisateur, le paramètre d’intention associé à un objet prenant une valeur d’autant plus grande que les données de regard indiquent que l’utilisateur regarde dans la direction dudit objet.
Dans cet exemple, la détermination d’une valeur du paramètre d’intention est, entre autres, fonction de la direction du regard de l’utilisateur. L’obtention de la direction du regard de l’utilisateur peut par exemple se faire au moyen d’un casque de réalité virtuelle. Cette solution offre à l’utilisateur un pilotage de la main virtuelle plus rapide, ergonomique et intuitif, en lui permettant de piloter le choix de l’objet qui sert de base à la construction de la transition de la main vers une préhension de cet objet.
Dans un exemple, la détermination du paramètre d’intention associé à l’objet comprend la détermination de la présence de l’objet dans un cône partant de la paume de la main virtuelle et incluant un vecteur orthogonal à la paume.
Dans cet exemple, la détermination de la présence de l’objet au moyen d’un cône permet de jouer sur l’orientation de la main virtuelle pour déterminer la valeur du paramètre d’intention. Cela permet à un utilisateur de sélectionner l’objet qu’il a l’intention de saisir en orientant la main virtuelle sensiblement dans la direction dudit objet. Cette méthode permet de ne pas avoir à calculer des valeurs pour des paramètres d’intention associés à des objets situés hors du cône (ou de fixer ces valeurs à zéro tant que l’objet est situé hors du cône, ce qui est équivalent).
Dans un exemple, le cône comprend des rayons formant un maillage du cône, et la détermination d’une valeur du paramètre d’intention associé à un objet donné comprend la détermination d’au moins un rayon atteignant l’objet, la valeur dudit paramètre d’intention étant une fonction croissante de la colinéarité entre ce rayon et le vecteur orthogonal à la paume.
Dans cet exemple, la valeur du paramètre d’intention associé à un objet est d’autant plus grande que la main virtuelle est orientée en direction dudit objet. Cela permet notamment à un utilisateur de sélectionner plus finement l’objet sur la base duquel la transition peut être générée.
Dans un exemple, la valeur du paramètre d’intention associé à un objet est une fonction décroissante de la distance entre la paume et l’objet.
Dans cet exemple, plus un objet est loin, moins l’utilisateur est réputé avoir l’intention de le saisir. Cela permet diverses optimisations, notamment en déclarant la valeur du paramètre d’intention associé à un objet comme nulle lorsque ledit objet est au-delà d’une certaine distance de l’objet. Il est ainsi possible de calculer la valeur du paramètre d’intention pour un grand nombre d’objets en discriminant très rapidement les objets éloignés, par exemple en utilisant des techniques issues du calcul de collisions dans un moteur physique.
L’invention a en outre pour objet un dispositif informatique pour une mise en œuvre d’un procédé de représentation graphique comme décrit ci-avant.
L’invention a en outre pour objet un produit programme d'ordinateur comprenant des instructions de code de programme pour la mise en œuvre d’un procédé selon l’invention tel que décrit précédemment, lorsqu’il est exécuté par un processeur.
Un tel programme d’ordinateur peut être enregistré sur un support d'enregistrement lisible par un ordinateur. Ce support d’enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur.
D'autre part, un tel support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens, de sorte que le programme d’ordinateur qu’il contient est exécutable à distance. Le programme selon l'invention peut être en particulier téléchargé sur un réseau par exemple le réseau Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé objet de l’invention précité.
L’invention concerne également un dispositif de réalité virtuelle comportant :
- un premier générateur de représentation graphique d’une main virtuelle en fonction d’un jeu de paramètres représentatifs d’un état d’une main virtuelle et d’une position de ladite main virtuelle dans un environnement virtuel,
- un deuxième générateur de représentation graphique d’un objet en fonction d’au moins un jeu de paramètres représentatifs d’une géométrie d’au moins un objet destiné à être agrippé par une main virtuelle et d’une position dudit objet dans ledit environnement virtuel,
- un reproducteur graphique configuré pour reproduire l’environnement virtuel, la représentation graphique générée de la main virtuelle, et la représentation graphique générée de l’objet ;
dans lequel le premier générateur de représentation graphique d’une main virtuelle comporte un calculateur déterminant au moins un quatrième jeu de paramètres représentatif d’au moins un troisième état de la main virtuelle intermédiaire entre un premier état et un deuxième état de la main virtuelle, en fonction d’un premier jeu de paramètres, d’un troisième jeu de paramètres représentatif d’un deuxième état de la main virtuelle dans une deuxième position dans l’environnement virtuel, et d’au moins une information représentative d’une troisième position de la main virtuelle située entre la première position et la deuxième position, le troisième jeu de paramètres étant fonction du premier jeu de paramètres et du deuxième jeu de paramètres, la main virtuelle agrippant l’objet dans un des états parmi le premier état et le deuxième état dans une position parmi respectivement la première position et la deuxième position correspondant à la position de l’objet,
le troisième état permettant une génération d’une représentation graphique de la main virtuelle depuis le premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position.
4. Liste des figures
D'autres buts, caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante, donnée à titre de simple exemple illustratif, et non limitatif, en relation avec les figures, parmi lesquelles :
- représente un schéma simplifié des étapes d’un procédé de commande selon l’invention,
- représente une main virtuelle commandée par le procédé de la ,
- représente un schéma simplifié d’une variante du procédé de la ,
- représente l’étape E4 de la ,
- représente un exemple de dispositif mettant en œuvre le procédé de la , et
- représente un schéma simplifié d’un dispositif de réalité virtuelle selon l’invention.
5. Description détaillée de modes de réalisation de l'invention
5.1. Principe général de l’invention
Il est fait référence à la , qui représente un procédé de génération d’une représentation graphique d’une main virtuelle dans un environnement virtuel.
Ce procédé est réalisé en fonction d’un premier jeu de paramètres 10 et d’au moins un deuxième jeu de paramètres 12. Le premier jeu de paramètres 10, aussi appelé jeu de paramètres de position, est représentatif d’un premier état d’une main virtuelle et d’une première position de ladite main virtuelle dans l’espace virtuel. Le deuxième jeu de paramètres 12, aussi appelé jeu de paramètres d’objet, est représentatif d’une géométrie (notamment d’une forme) d’au moins un objet destiné à être agrippé par ladite main virtuelle et d’une position dudit objet dans ledit environnement virtuel.
Le procédé comprend une étape de détermination E4 d’un troisième jeu de paramètres 40 représentatifs d’un deuxième état de la main virtuelle lorsqu’elle agrippe l’objet virtuel, une étape de détermination E6 d’au moins un quatrième jeu de paramètres 60 et une étape de génération E8 d’une représentation graphique de la main virtuelle depuis le premier état à la première position jusqu’au deuxième état à la position de l’objet en passant par le troisième état à la deuxième position.
L’étape de détermination E4 est réalisée en fonction du premier jeu de de paramètres 10 et du deuxième jeu de paramètres 12. L’étape de détermination E6 est réalisée en fonction du premier jeu de paramètres 10, du troisième jeu de paramètres 12, et d’au moins une information représentative d’une deuxième position de la main virtuelle dans l’espace virtuel située entre la première position de la main virtuelle et la position dudit objet. Le quatrième jeu de paramètres 60 est représentatif d’au moins un troisième état de la main virtuelle intermédiaire entre le premier état et le deuxième état.
Le premier état de la main virtuelle, appelé état initial, peut être l’état courant de la main virtuelle, c’est-à-dire l’état dans lequel la main virtuelle se trouve au moment de l’étape de construction E6. Dans un autre exemple, l’état initial peut être un état dit « neutre » de la main virtuelle, correspondant à un état de la main virtuelle lorsqu’elle est au repos. L’état neutre peut être un état dans lequel la main virtuelle est totalement ouverte et à plat, ou en variante un état dit relâché dans lequel les doigts de la main virtuelle sont légèrement recourbés. Le premier jeu de paramètres 10 est qualifié de jeu initial, pour des raisons analogues.
Le deuxième état, appelé état de préhension, correspond à un état dans lequel la main virtuelle agrippe l’objet à saisir. Le troisième jeu de paramètres 40, dit jeu de paramètres de préhension, est représentatif de cet état. Ce troisième jeu de paramètres 40 est déterminé à du premier jeu de paramètres et du deuxième jeu de paramètres. Diverses méthodes pour déterminer ce jeu de paramètres de préhension seront décrites ci-après.
Les autres jeux de paramètres 60 (i.e. le ou les quatrièmes jeux de paramètres) représentatifs des états dit intermédiaires entre l’état initial et l’état de préhension sont quant à eux déterminés à l’aide du premier jeu de paramètre 10 et du troisième jeu de paramètres 40. Ces états et ces jeux sont qualifiés d’intermédiaires car ils sont « entre » l’état initial et l’état de préhension (ou « entre » le jeu initial et le jeu de préhension).
L’étape E8 de génération de la représentation graphique de la main virtuelle se base sur les différents jeux de paramètres représentatifs des états intermédiaires précédemment déterminés, ainsi que sur le jeu initial 10 et sur le jeu de préhension 40. La représentation graphique ainsi obtenue représente la transition de la main le ou les différents états intermédiaires. Cela permet d’obtenir une transition fluide de la main virtuelle entre son état initial et l’état de préhension.
Il est maintenant fait référence à la , qui illustre une main virtuelle 100 et un objet 120 situés tous deux dans un environnement virtuel, la main virtuelle 100 cherchant à saisir l’objet 120. La main virtuelle 100 est commandée via un dispositif de commande (manette, joystick ou tout autre dispositif adapté pour déplacer une main virtuelle dans un environnement virtuel). Pour la suite de la présente description, le dispositif de commande est ici une manette.
La main virtuelle 100 est commandée en position et en orientation par des instructions de déplacement issues de la manette manipulée par un utilisateur. La main virtuelle 100 se situe à une position relative 140 de l’objet 120, cette position relative 140 pouvant être tirée du premier jeu de paramètres 10 et du deuxième jeu de paramètres 12.
Ici, la main virtuelle 100 est représentée dans trois états, étiquetés A, B et C sur la . Dans l’état A, la main virtuelle 100 est dans un état initial (ici, un état relâché), à une première position. La main virtuelle 100 dans l’état A est donc à une première distance de l’objet 100. Dans l’état C, la main virtuelle 100 est dans l’état de préhension. Dans cet état de préhension, la distance séparant la main virtuelle 100 de l’objet 120 est inférieure ou égale à un seuil de préhension. Lorsque la distance séparant la main virtuelle 100 de l’objet 120 est inférieure au seuil de préhension, il est considéré que la main virtuelle 100 est en contact avec la surface de l’objet 120 qu’elle peut saisir. Dans l’état B, la main virtuelle 100 est dans un état intermédiaire, et à une position relative 140 intermédiaire entre la position relative de l’état A et le seuil de préhension.
Le fait que la main virtuelle 100 soit dans l’un ou l’autre de ces états dépend de la position relative 140 de la main virtuelle 100 par rapport à l’objet 120. Un état intermédiaire de la main artificielle 100 est d’autant plus proche de l’état de préhension que la main artificielle 100 est proche de l’objet 120 (ou que la distance entre la main virtuelle et l’objet est proche du seuil de préhension).
La représentation graphique de la main virtuelle 100 peut être réalisée sans instruction de l’utilisateur autre que le déplacement de la main virtuelle 100 contrôlé via la manette. En particulier, la transition de la main virtuelle 100 d’un état courant vers l’état de préhension n’a pas besoin d’être déclenchée par une interaction de l’utilisateur avec la manette conduisant à l’émission un ordre de préhension de l’objets. De fait, la transition de la main virtuelle 100 vers l’état de préhension est fonction de son déplacement par rapport à l’objet 120.
Le procédé ainsi décrit permet d’offrir une transition fluide de la main virtuelle 100 vers l’état de préhension C de l’objet 120 de manière anticipée, avant même qu’une instruction de saisie ne soit générée par la manette. Au moment où l’utilisateur souhaite saisir l’objet après en avoir approché la main virtuelle 100 par l’entremise de la manette, la main virtuelle 100 est déjà en état de pouvoir saisir l’objet, et une instruction de saisie de l’objet 120 peut être exécutée sans latence ni transition brusque.
La main virtuelle 100 adopte ainsi, grâce à ce procédé, un comportement à la fois réactif, car apte à saisir l’objet 120 sans aucune latence autre que le déplacement de la main virtuelle 100 vers l’objet 120, et fluide, car apte à saisir l’objet sans transition brusque.
On a décrit ici le principe général d’une transition fluide d’un état initial (par exemple l’état courant de la main à sa position courante ou un état relâché à une position de la main virtuelle sans objet à proximité de la main virtuelle) à un état de préhension. Ce principe s’applique tout autant pour mettre en œuvre une transition fluide de l’état de préhension (à la position de préhension) à un autre état de la main plus distant de l’objet (par exemple un état relâché sans objet à proximité de la main virtuelle), toujours en passant par un état intermédiaire à une position intermédiaire.
5.2. Construction de la transition fluide
Dans un exemple de réalisation, l’étape de détermination E6 du ou des jeux de transition comprend la construction d’un ou plusieurs quatrièmes jeux de paramètres 60 représentatifs d’états intermédiaires. Un quatrième jeu de paramètres 60 représentatif d’un état intermédiaire donné comprend un paramètre de transition . Un tel paramètre de transition peut prendre une pluralité de valeurs dans un intervalle donné.
De manière générale, le paramètre de transition peut varier entre une valeur minimale et une valeur maximale. Pour simplifier le reste de la description, on considère pour la suite que le paramètre de transition varie entre 0 et 1 inclus, bien entendu d’autres valeurs peuvent être envisagées pour le paramètre de transition .
Parmi l’ensemble d’états intermédiaires possibles pour la main virtuelle 100, l’état intermédiaire associé à la valeur 0 du paramètre de transition correspond par exemple l’état initial. De manière analogue, l’état intermédiaire associé à la valeur 1 du paramètre de transition correspond par exemple à l’état de préhension.
Les valeurs des paramètres constitutifs des jeux de paramètres représentatifs des différents états intermédiaires de la main virtuelle 100 évoluent de manière continue, au sens mathématique du terme, par rapport à la valeur du paramètre de transmission . Dans un exemple particulier, les valeurs des paramètres constitutifs des jeux de paramètres représentatifs des différents états intermédiaires évoluent de manière monotone de l’état initial (quand le paramètre de transmission vaut 0) à l’état de préhension (quand le paramètre de transmission vaut 1).
De fait, ces caractéristiques contribuent à la fluidité de la transition. En effet, les valeurs des paramètres constitutifs des jeux de paramètres représentatifs des différents états varient continument avec la valeur du paramètre de transmission , pourvu que celle-ci varie elle-même continument.
Ce choix est également souple, car il autorise une variation fine de la transition de la main virtuelle entre ses différents états. Cela permet d’adapter la vitesse de cette transition à différentes situations et notamment à la fréquence d’affichage de l’environnement virtuel sur un dispositif d’affichage, tel que l’écran d’un casque de réalité virtuelle. Par exemple, la transition peut se faire à une fréquence d’affichage de 90 Hz.
Dans un mode de réalisation, un jeu de paramètres représentatifs d’un état de la main virtuelle comprend une liste de valeurs d’angles, chaque valeur d’angle décrivant l’angle formé par deux phalanges successives d’un doigt de la main virtuelle ou l’angle formé par une phalange et la paume de ladite main virtuelle.
Dans ce cas, la valeur d’angle peut être une fonction de la valeur du paramètre de transition . Dans un exemple précis, cette fonction est une fonction monotone allant d’une première valeur du paramètre de transition (celle de l’état initial) à une deuxième valeur du paramètre de transition (celle de l’état de préhension).
Il est par exemple possible d’exprimer que, pour une main avec cinq doigts, chacun ayant au plus trois phalanges, pour une phalange d’un doigt ( et étant des nombres entiers), l’angle de la phalange avec la phalange précédente , ou la paume pour la première phalange, s’exprime comme fonction de , soit . L’état de la main virtuelle pour une valeur du paramètre de transition peut alors s’exprimer comme un une matrice de dimension 3x5 : .
Le fait de définir les différents états de la main virtuelle 100 par des paramètres d’angles entre phalanges offre un format léger permettant de retranscrire la richesse des états que peut adopter une main virtuelle aussi réaliste que possible. Cela offre une grande finesse dans la représentation de la main virtuelle 100.
Dans un exemple, la fonction associant à une valeur du paramètre de transition une valeur d’angle donnée est une interpolation linéaire passant par la valeur d’angle de l’état initial lorsque la valeur du paramètre de transmission est égale à 0, et par la valeur d’angle de l’état de préhension lorsque la valeur du paramètre de transmission est égale à 1. L’interpolation peut être linéaire, ce qui permet un calcul très rapide. Les inventeurs ont observé que l’interpolation linéaire est un bon compromis entre vitesse de calcul et réalisme. En variante, l’interpolation peut être d’un type différent, par exemple une interpolation quadratique.
Dans un exemple, la main virtuelle 100 reste dans l’état neutre (relâché ou totalement à plat) tant qu’elle se situe à une distance supérieure à une distance de transition . Cette distance de transition peut par exemple valoir 30 cm.
Dans ce cas, la valeur du paramètre de transition reste égale à 0 tant que la distance entre la main virtuelle 100 et l’objet 120 est supérieure à la distance de transition . Quand , varie entre 0 et 1 de manière monotone, et quand (et donc que la main virtuelle 100 est au plus proche de l’objet 120), . Le paramètre de transmission peut varier de manière continue par rapport au rapport , ce qui assure une fluidité dans la transition. Dans un exemple, quand . Le rapport représente quantitativement la proximité de la main virtuelle 100 avec l’objet 120.
Selon un exemple d’implémentation, la détermination des paramètres représentatifs d’un état donné pour un doigt de la main virtuelle 100 est réalisé sur la base de l’algorithme ci-après :
Require: , ensemble des phalanges du doigt
Require: , pas de fermeture
for each:
while & !p.stable do
InterpolationFermeture( )
ifTestCollision then
p.parent.StabilizeRecursively()
p.stable true
end if
end while
dans lequel :
- InterpolationFermeture(valeur) est une fonction d’interpolation linéaire entre l’état initial (InterpolationFermeture(0)) et l’état de préhension (InterpolationFermeture(1)) comme décrit ci-avant,
- StabilizeRecursively détermine l’arrêt de toutes les phalanges antérieures dans un doigt donné,
- & est l’opérateur logique ET, et ! l’opérateur logique de négation.
5.3. Intention de saisie
Il est maintenant fait référence aux figures 3 et 4, qui décrivent un exemple alternatif de mise en œuvre du procédé décrit à la . Dans cet exemple, le procédé représenté à la comprend une étape de détermination E2 d’une intention de l’utilisateur de saisir l’objet 120 avec la main virtuelle 100 qu’il commande.
Lorsque l’environnement virtuel dans lequel évolue la main virtuelle 100 comprend plusieurs objets, le procédé dans cet exemple permet de déterminer pour quel objet parmi la pluralité d’objets compris dans l’environnement virtuel construire le troisième jeu de paramètres 40 et le quatrième jeu de paramètres 60. Pour ce faire, le procédé met en œuvre, au préalable de l’étape de détermination E4 du troisième jeu de paramètres 40, une étape de détermination E2, pour un objet donné, d’un paramètre d’intention 20 représentatif de l’intention de l’utilisateur de saisir ledit objet. Cette étape, comme la transition de la main virtuelle 100 décrite ci-avant, est réalisée sans avoir besoin d’instruction spécifique de l’utilisateur. Cela améliore l’immersion de celui-ci dans l’environnement virtuel.
L’étape de détermination E2 comprend une étape E20 de détermination d’un paramètre d’intention 20 associée à l’objet 120 et une étape E22 de détermination de la satisfaction d’une condition d’intention 22 sur la base de ce paramètre d’intention 20.
L’étape E20 est réalisée en fonction du premier jeu de paramètres 10 et du deuxième jeu de paramètres 12. De fait, une valeur du paramètre d’intention 20 déterminée dans l’étape E20 est associée à l’objet 120 relatif au deuxième jeu de paramètres 12. La valeur du paramètre d’intention 20 est représentative d’une probabilité d’intention de l’utilisateur de saisir ledit objet 120 avec ladite main virtuelle 100. Différentes méthodes de détermination de cette valeur du paramètre d’intention 20 seront décrites ci-après.
L’étape E22 détermine la satisfaction, par les valeurs des paramètres d’intention 20 associées à l’objet 120 précédemment déterminées, d’une condition d’intention 22. Lorsque la condition d’intention 22 est satisfaite, cela déclenche l’étape E6 de détermination du troisième jeu de paramètres 20 décrite ci-avant en fonction de premier de paramètres 10 et du deuxième jeu de paramètres 12 dont les données d’intention 20 satisfont la condition d’intention 22.
Outre le fait de pouvoir discriminer les objets entre eux et d’en déterminer un qui puisse servir de base à la transition, cette étape de détermination E2 d’intention permet d’économiser du temps de calcul, par exemple en éliminant d’office un objet virtuel 120 dont la valeur du paramètre d’intention serait trop faible (par exemple car trop éloigné de la main virtuelle 100).
La valeur du paramètre d’intention représente une probabilité, comme expliqué plus haut. Ainsi, selon un exemple de réalisation, la valeur du paramètre est par exemple comprise entre 0 et 1 inclus. Quand la valeur du paramètre d’intention d’un objet vaut 0, l’utilisateur ne compte vraisemblablement pas saisir cet objet, et quand la valeur du paramètre d’intention vaut 1, l’utilisateur compte très vraisemblablement saisir cet objet.
Selon un exemple de réalisation, lorsque plusieurs objets sont présents, la condition d’intention 22 pour un paramètre d’intention associé à un objet 120 donné est le fait d’avoir la plus haute valeur d’intention parmi l’ensembles des paramètres d’intention 20.
Selon un autre exemple d’implémentation, on associe à au moins un objet (et par exemple à tous les objets) au moins une classe. Les classes pouvant être associées à un objet forment un ensemble de classes. La valeur du paramètre d’intention est alors ici une fonction de cette au moins une classe. Plus précisément, au moment de l’étape de détermination E2 d’intention, il est déterminé si la classe associée à l’objet appartient à un sous-ensemble de classes de l’ensemble des classes. Si c’est le cas, la détermination du paramètre d’intention 20 se poursuit, sinon la condition d’intention 22 est considérée comme non satisfaite (ou alternativement le paramètre d’intention est déclaré de valeur nulle). Dans le cas où on associe plusieurs classes à un objet, la condition d’intention peut être que au moins une de ces classes soit appartienne au sous-ensemble de classes.
Il convient de noter que bien que l’au moins une classe soit associé à l’objet, plusieurs objets peuvent partager la même classe, et ce même si les objets sont de nature différente.
Cet exemple d’implémentation est particulièrement avantageux dans un exemple de situation où un utilisateur doit réaliser un certain processus découpé en tâche, chaque tâche impliquant un ou plusieurs objets (par exemple un ou plusieurs outils). Ici, chaque classe est relative à une tâche donnée du processus. Chaque outil est utilisé dans une ou plusieurs tâches du processus. Chaque outil est alors associé à la ou les classes relatives aux tâches dans lesquelles l’outil peut être utilisé. Lorsque l’utilisateur en est à une tâche donnée, le procédé comprend le fait de présupposer que l’utilisateur n’a pas l’intention de saisir un autre objet que celui ou ceux utilisés dans ladite tâche donnée. Les objets qui ne sont pas rattachés à cette tâche voient donc leur valeur de paramètre d’intention déclarée nulle tant que la tâche en cours (dans laquelle ils ne sont pas utilisés) n’est pas finie. Cela sert à la fois pour économiser du temps de calcul, mais aussi peut jouer le rôle de détrompeur pour un utilisateur, en l’incitant à ne pas aller vers un objet dont la transition n’est pas calculée (la main ne réalisant donc pas une transition vers la préhension de cet objet). Le guidage de l’utilisateur est amélioré, sans que cela ne détériore l’immersion comparé par exemple à un affichage des objets en surbrillance.
Cet exemple de réalisation permet également de pouvoir interdire la préhension de certains objets (par exemple s’ils n’ont pas vocation à être agrippés), et donc à ne pas construire de transition fluide vers ces objets.
Selon un exemple de réalisation, l’intention de saisir un objet donné peut également dépendre d’une direction du regard de l’utilisateur. Plus précisément, le procédé comprend l’acquisition de données relatives à la direction du regard de l’utilisateur. La valeur du paramètre d’intention 20 est alors fonction de ces données relatives à la direction du regard. Par exemple, si les données relatives à la direction du regard indiquent que l’utilisateur regarde en direction de l’objet 120, alors la valeur du paramètre d’intention 20 est proche de 1. L’étape de détermination de la valeur du paramètre d’intention 20 peut ici comprendre la détermination d’une distance entre la direction du regard de l’utilisateur et l’objet, puis la détermination d’un facteur de regard qui est une fonction décroissante de ladite distance entre le regard et l’objet. Le facteur de regard peut alors être intégré au calcul de la valeur du paramètre d’intention, par exemple en multipliant la valeur du paramètre d’intention par le facteur de regard.
Pour éviter de forcer l’utilisateur à regarder en continu l’objet 120, le facteur de regard peut être déterminé à intervalles réguliers, par exemple toutes les dix trames, ou toutes les secondes. Ces exemples sont donnés à titre illustratif.
Selon un exemple de réalisation, la détermination de la valeur du paramètre d’intention associée à l’objet comprend la détermination de la présence de l’objet dans un cône dont le sommet se situe au niveau de la paume de la main virtuelle et incluant un vecteur orthogonal à la paume. Le cône peut par exemple partir du centre de la paume, quoiqu’il puisse partir d’un autre lieu de la paume.
Cette détermination de l’intention par inclusion de l’objet dans un cône permet de jouer sur l’orientation de la main virtuelle 100 pour la détermination de la valeur du paramètre d’intention. En particulier, en orientation judicieusement la main virtuelle 100, l’utilisateur est réputé ne pas avoir l’intention de saisir les objets se situant hors du cône. Le vecteur orthogonal à la paume (aussi appelé normale à la paume) est de préférence à l’intérieur du cône, par exemple sensiblement au centre du cône (mais pas nécessairement).
Les méthodes de détermination de la valeur du paramètre d’intention par classe associée à un objet, au moyen de la direction du regard et par présence de l’objet dans un cône sont complémentaires et peuvent se combiner l’une avec l’autre.
Selon un exemple, des rayons formant un maillage du cône sont définis. La détermination de la valeur du paramètre d’intention associée à un objet donné comprend alors la détermination d’au moins un rayon atteignant la surface de l’objet. La valeur du paramètre d’intention est déterminée comme une fonction croissante de la colinéarité entre ce rayon et le vecteur orthogonal à la paume. La colinéarité peut par exemple être calculée comme le produit scalaire du vecteur unitaire définissant la direction du rayon et la normale à la paume (aussi unitaire, i.e. de norme égale à 1).
Selon un exemple, la valeur du paramètre d’intention 20 associé à un objet 120 est une fonction décroissante de la distance entre la paume de la main virtuelle 100 et l’objet 120.
Cette fonction décroissante peut présenter un seuil au-delà duquel la valeur du paramètre d’intention est nulle. Cela permet d’exclure très rapidement les objets lointains, dont il est raisonnablement sûr que l’utilisateur n’a pas l’intention de les saisir à court terme.
Selon un exemple d’implémentation, la détermination d’une appartenance au cône précédemment décrit pour la main virtuelle 100 est réalisé sur la base de l’algorithme ci-après :
Require:
Require:
Require:
Require:
Require:
Require:
Require:
Require:
For do
for do
if then
if then
end if end if end for end for
, , et sont les bornes inférieures et supérieures du cône par rapport aux directions X et Z (respectivement) ; et sont le nombre de rayons formant le maillage selon les directions X et Z (respectivement) ; la normale à la paume et la distance maximale qu’un rayon puisse atteindre. Les bornes selon X et Z ainsi que la normale à la paume définissent ensemble le cône et les variables et en définissent la densité de son maillage.
Chaque rayon présente une distance d’intersection avec l’objet et un point d’intersection avec l’objet . et sont dérivés entre autres de la variable . Cet algorithme permet d’identifier l’ensemble des rayons rencontrant l’objet. De cet ensemble de rayons, l’algorithme en extrait le rayon présentant la plus petite distance d’impact .
Afin de favoriser les rayons les plus proches de la normale à la paume (et limiter les problèmes de discrimination entre objets), les distances obtenues peuvent être pondérées par la colinéarité entre le vecteur directeur de chaque rayon et la normale à la paume de sorte à obtenir une distance pondérée , par exemple comme ci-dessous (où est une combinaison linéaire de la distance et d’une pondération de la distance par la colinéarité entre la direction du rayon et la normale à la paume ). Ici, les facteurs 1/5 et 4/5 sont choisis arbitrairement, on pourrait envisager d’autres paires de facteurs de pondération.
On conserve alors le rayon qui présente la distance pondérée la plus faible comme point de contact « intentionnel » avec l’objet. Ce point de contact intentionnel peut servir de base pour déterminer l’état de préhension à l’étape E4 de détermination du troisième jeu de paramètres 40.
Lorsque la détermination des valeurs des paramètres d’intention repose également sur la direction du regard et/ou une classe associée à l’objet, on peut utiliser des données relatives à la direction du regard ou la correspondance entre une classe associé(s) à l’objet pour éliminer d’office les objets qui ne satisfont pas des conditions relatives à la direction du regard et/ou à la classe d’objet. Cela permet de ne pas avoir à tenir compte de ces objets pour les calculs d’intersection des rayons, diminuant le temps de calcul nécessaire.
Les différents exemples d’étape E2 de détermination d’intention peuvent être mis en œuvre dans le cas où un seul objet virtuel 120 est présent dans l’environnement virtuel. Cela permet de déterminer le jeu de préhension 40 et le jeu intermédiaire 60 seulement quand la valeur du paramètre d’intention 20 est suffisante, par exemple quand la main virtuelle 100 est à proximité de l’objet virtuel 120. Cela économise du temps de calcul.
5.4. Construction de l’état de préhension
A l’étape E4 de détermination du troisième jeu de paramètres 40, l’état de préhension est construit. Cet état de préhension peut être construit à partir de la détermination d’un rayon partant de la paume et intersectant la surface de l’objet. Ce rayon peut par exemple être le rayon déterminé à l’étape E4 de détermination des valeurs des paramètres d’intention, et être le rayon présentant la plus faible distance pondérée. Ce rayon peut alternativement être calculé à l’étape E6, notamment lorsque le procédé ne comprend pas l’étape E4 de détermination des valeurs des paramètres d’intention.
A partir de ce rayon ainsi déterminé, on simule une projection de la main virtuelle dans la direction dudit rayon et avec la paume de la projection de la main virtuelle 100 au contact de l’objet 120. Une fois cette projection effectuée, et donc la projection de la main virtuelle 100 au contact de l’objet 120, les doigts de la projection sont refermés sur l’objet. Une fois les phalanges de tous les doigts refermés au maximum, les angles des phalanges avec leurs voisines et/ou la paume définissent ensemble les valeurs des paramètres représentatifs de l’état de préhension. Cette construction des valeurs des paramètres représentatifs de l’état de préhension peut comprendre une étape de vérification de l’absence d’interpénétration entre l’objet et la main virtuelle. Cette vérification de l’absence d’interpénétration peut être réalisée à chaque itération de la fermeture des phalanges.
5.5 Fréquence de mise en œuvre des étapes
Il a été décrit un procédé permettant une représentation graphique d’une main virtuelle en fonction d’un premier jeu de paramètres (relatifs à un état initial et une position initiale d’une main virtuelle) et d’au moins un deuxième jeu de paramètres (relatif à un objet). Ce procédé comprend comme décrit ci-avant :
E2(optionnel) la détermination d’une intention de saisie de l’objet virtuel 120 par la main virtuelle 100
E4la détermination d’un troisième jeu de paramètres 40,
E6la détermination d’au moins un quatrième jeu de paramètres 60 en fonction de ce troisième jeu de paramètres, et
E8la génération de la représentation graphique de la main virtuelle depuis le premier état à la première position (du premier jeu de paramètres) jusqu’au deuxième état à la position de l’objet (du troisième jeu de paramètres) en passant par le troisième état à la deuxième position (du quatrième jeu de paramètres).
Ces étapes E2 à E8 peuvent être réalisées lors de la génération de chaque image de la représentation graphique de la main virtuelle. Par exemple, pour une main virtuelle de type main virtuelle en réalité virtuelle, la fréquence de la représentation graphique peut être de 90 Hz.
Dans un exemple de réalisation, ces étapes ne sont pas mises en œuvre à chaque génération d’une image. Certaines étapes peuvent être réalisées toutes les n images (par exemple toutes les 10 images).
Selon un exemple de réalisation, les étapes E4 et E6 (et éventuellement l’étape E2 quand elle fait partie du procédé) sont mises en œuvre toutes les n images (avec n > 2). De fait, durant les n-1 images où les étapes E4 et E6 (et éventuellement l’étape E2) ne sont pas mises en œuvre, on utilise le dernier jeu de préhension 40 et le ou les derniers jeux intermédiaires 60 déterminés. Cela permet avantageusement de ne pas recalculer le jeu de préhension 40 et le ou les jeux intermédiaires à toutes les images, ce qui diminue d’autant le temps de calcul pour réaliser ce procédé, sans trop sacrifier en réalisme tant que la main virtuelle 100 et/ou l’objet 120 ne se déplacent pas trop rapidement. Lorsque l’étape E2 fait partie du procédé, sa fréquence peut être identique à celle des étapes E4 et E6, ou bien différente. Selon un exemple, le jeu de préhension 40 est déterminé toutes les dix images, et le ou les jeux intermédiaires 60 sont déterminés également toutes les dix images (sur la base du jeu de préhension 40 et du premier jeu 10).
5.7. Dispositif
La représente un dispositif apte à mettre en œuvre le procédé de représentation graphique selon la .
Un tel dispositif peut comprendre au moins un processeur matériel 51, une unité de stockage 52, et au moins une interface de réseau 53 qui sont connectés entre eux au travers d’un bus 54. Bien entendu, les éléments constitutifs du dispositif peuvent être connectés au moyen d’une connexion autre qu’un bus.
Le processeur 51 commande les étapes du procédé. L'unité de stockage 52 stocke au moins un programme pour la mise en œuvre du procédé selon un mode de réalisation de l’invention à exécuter par le processeur 51, et diverses données, telles que des jeux de paramètres utilisés pour des calculs effectués par le processeur 51, des données intermédiaires de calculs effectués par le processeur 51, etc. Le processeur 51 peut être formé par tout matériel ou logiciel connu et approprié, ou par une combinaison de matériel et de logiciel. Par exemple, le processeur 51 peut être formé par un matériel dédié tel qu'un circuit de traitement, ou par une unité de traitement programmable telle qu'une unité centrale de traitement (Central Processing Unit) qui exécute un programme stocké dans une mémoire de celui-ci.
L'unité de stockage 52 peut être formée par n'importe quel moyen approprié capable de stocker le programme ou les programmes et des données d'une manière lisible par un ordinateur. Des exemples d'unité de stockage 52 comprennent des supports de stockage non transitoires lisibles par ordinateur tels que des dispositifs de mémoire à semi-conducteurs, et des supports d'enregistrement magnétiques, optiques ou magnéto-optiques chargés dans une unité de lecture et d'écriture.
Il est fait référence à la , qui représente un exemple d’architecture d’un dispositif de réalité virtuelle selon un aspect de l’invention. Le dispositif de réalité virtuelle 1 comprend un premier générateur de représentation graphique 2 de la main virtuelle 100, un deuxième générateur de représentation graphique 3 de l’objet 120, et un reproducteur graphique 4. Ces trois éléments peuvent communiquer ensembles.
Le premier générateur 2 est apte à mettre en œuvre une représentation graphique d’une main virtuelle 100 en fonction d’un jeu de paramètres (par exemple le premier, troisième ou quatrième jeu de paramètres décrit ci-avant) représentatifs de l’état de la main virtuelle 100 et d’une position de ladite main virtuelle 100 dans son environnement virtuel.
Le deuxième générateur 3 est apte à mettre en œuvre une représentation graphique de l’objet 120 en fonction d’au moins un jeu de paramètres (par exemple le deuxième jeu de paramètres 12 susmentionné) représentatifs d’une géométrie d’au moins un objet 120 destiné à être agrippé par la main virtuelle 100 et d’une position dudit objet 120 dans ledit environnement virtuel.
Le reproducteur graphique 4 est configuré pour reproduire l’environnement virtuel, la représentation graphique générée de la main virtuelle 100, et la représentation graphique générée de l’objet 120.
Le premier générateur 2 de représentation graphique comporte un calculateur 5 déterminant au moins un quatrième jeu de paramètres 60 représentatif d’au moins un troisième état intermédiaire de la main virtuelle 100 entre un premier état et un deuxième état de la main virtuelle 100, en fonction d’un premier jeu de paramètres 10, d’un troisième jeu de paramètres 40 représentatif d’un deuxième état de la main virtuelle 100 dans une deuxième position dans l’environnement virtuel, et d’au moins une information représentative d’une troisième position de la main virtuelle 100 située entre la première position et la deuxième position, le troisième jeu de paramètres étant fonction du premier jeu de paramètres 10 et du deuxième jeu de paramètres 12, la main virtuelle agrippant l’objet 120 dans un des états parmi le premier état et le deuxième état dans une position parmi respectivement la première position et la deuxième position correspondant à la position de l’objet.
Le troisième état permet de mettre en œuvre une génération d’une représentation graphique de la main virtuelle 100 depuis le premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position (telle que la génération mise en œuvre dans l’étape E8 susmentionnée).
Le dispositif de réalité virtuelle 1 peut comprendre les briques matérielles représentées sur la et décrites ci-dessus en relation avec cette .

Claims (15)

  1. Procédé de génération d’une représentation graphique d’une main virtuelle (100) en fonction d’un premier jeu de paramètres (10) représentatifs d’un premier état d’une main virtuelle (100) et d’une première position de ladite main virtuelle (100) dans un environnement virtuel, et d’au moins un deuxième jeu de paramètres (12) représentatifs d’une géométrie d’au moins un objet (120) destiné à être agrippé par ladite main virtuelle (100) et d’une position dudit objet (120) dans ledit environnement virtuel, le procédé comprenant les étapes suivantes :
    -- une détermination (E6) d’un moins un quatrième jeu de paramètres (60) représentatif d’au moins un troisième état de la main virtuelle (100) intermédiaire entre le premier état et un deuxième état de la main virtuelle (100), en fonction du premier jeu de paramètres (10), d’un troisième jeu de paramètres (40) représentatif du deuxième état de la main virtuelle (100) dans une deuxième position dans l’environnement virtuel, et d’au moins une information représentative d’une troisième position de la main virtuelle (100) située entre la première position et la deuxième position, le troisième jeu de paramètres étant fonction du premier jeu de paramètres (10) et du deuxième jeu de paramètres (12), la main virtuelle agrippant l’objet (120) dans l’un des états parmi le premier état et le deuxième état dans une position parmi respectivement la première position et la deuxième position correspondant à la position de l’objet,
    le troisième état permettant une génération (E8) d’une représentation graphique de la main virtuelle (100) depuis le premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position.
  2. Procédé selon la revendication 1, dans lequel le procédé comporte une détermination (E4), en fonction du premier jeu de de paramètres (10) et du deuxième jeu de paramètres (12), du troisième jeu de paramètres (40) représentatifs du deuxième état de la main virtuelle (100) dans la deuxième position.
  3. Procédé selon la revendication 2, dans lequel les paramètres du troisième jeu de paramètres (40) sont représentatifs d’un deuxième état de la main virtuelle (100) lorsqu’elle agrippe l’objet (120).
  4. Procédé selon l’une des revendications précédentes, dans lequel le procédé comporte la génération (E8) de la représentation graphique de la main virtuelle (100) depuis le premier état à la première position jusqu’au deuxième état à la position de l’objet en passant par le troisième état à la deuxième position.
  5. Procédé selon l’une des revendications précédentes, dans lequel dans lequel un état de la main virtuelle est définie par une pluralité de paramètres comprenant une liste de valeurs d’angles, une valeur d’angle décrivant un angle formé par deux phalanges successives d’un doigt de la main virtuelle ou un angle formé par une phalange et la paume de ladite main virtuelle.
  6. Procédé selon l’une des revendications précédentes, dans lequel ledit au moins un quatrième jeu de paramètres comprend en outre un paramètre de transition dont la valeur est comprise entre une valeur minimale correspondant au premier état et à la première position de la main virtuelle et une valeur maximale correspondant à la position de l’objet et au deuxième état de la main virtuelle.
  7. Procédé selon la revendication 5 et la revendication 6, dans lequel au moins une valeur d’angle est fonction de la valeur du paramètre de transition.
  8. Procédé selon la revendication 7, dans lequel la fonction liant la valeur du paramètre de transition à une valeur d’angle donnée est une interpolation linéaire passant par une valeur d’angle correspondant à la valeur minimale du paramètre de transition et par une valeur d’angle correspondant à la valeur maximale du paramètre de transition.
  9. Procédé selon l’une des revendications 1 à 5, dans lequel le premier jeu de paramètres est en outre représentatif d’une orientation de la main virtuelle dans l’espace virtuel, le procédé comprenant en outre :
    - une détermination (E20), en fonction de la position de la main virtuelle, de l’orientation de la main virtuelle et de la position de l’objet virtuel, d’un paramètre d’intention dont la valeur représente une probabilité d’intention de l’utilisateur de saisir ledit objet avec ladite main virtuelle ;
    - une détermination (E22) de la satisfaction, par ledit paramètre d’intention, d’une première condition, ladite satisfaction entraînant la détermination du troisième jeu de paramètres et la détermination dudit au moins un quatrième jeu de paramètres.
  10. Procédé selon la revendication 8, dans lequel l’environnement virtuel comprenant une pluralité d’objets, la première condition est satisfaite pour l’objet associé audit paramètre d’intention présentant la plus grande valeur.
  11. Procédé selon la revendication 10, dans lequel chaque objet est associé à au moins une classe, et dans lequel la valeur du deuxième paramètre associé audit objet est une fonction de l’au moins une classe associée à l’objet.
  12. Procédé selon la revendication 8 ou 9, comprenant en outre une obtention de données représentatives d’une direction du regard d’un utilisateur, le paramètre d’intention associé à un objet prenant une valeur d’autant plus grande que les données de regard indiquent que l’utilisateur regarde dans la direction dudit objet.
  13. Dispositif informatique pour une mise en œuvre d’un procédé de représentation graphique selon l’une des revendications précédentes.
  14. Produit programme d’ordinateur comprenant des instructions de code de programme pour la mise en œuvre d’un procédé de commande selon l’une des revendications 1 à 12, lorsqu’il est exécuté par un processeur.
  15. Dispositif de réalité virtuelle comportant :
    - un premier générateur de représentation graphique (2) d’une main virtuelle (100) en fonction d’un jeu de paramètres (10, 40, 60) représentatifs d’un état d’une main virtuelle (100) et d’une position de ladite main virtuelle (100) dans un environnement virtuel,
    - un deuxième générateur de représentation graphique (3) d’un objet (120) en fonction d’au moins un jeu de paramètres (12) représentatifs d’une géométrie d’au moins un objet (120) destiné à être agrippé par une main virtuelle (100) et d’une position dudit objet (120) dans ledit environnement virtuel,
    - un reproducteur graphique (4) configuré pour reproduire l’environnement virtuel, la représentation graphique générée de la main virtuelle (100), et la représentation graphique générée de l’objet (120) ;
    dans lequel le premier générateur de représentation graphique (2) d’une main virtuelle (100) comporte un calculateur déterminant au moins un quatrième jeu de paramètres (60) représentatif d’au moins un troisième état de la main virtuelle (100) intermédiaire entre un premier état et un deuxième état de la main virtuelle (100), en fonction d’un premier jeu de paramètres (10), d’un troisième jeu de paramètres (40) représentatif d’un deuxième état de la main virtuelle (100) dans une deuxième position dans l’environnement virtuel, et d’au moins une information représentative d’une troisième position de la main virtuelle (100) située entre la première position et la deuxième position, le troisième jeu de paramètres étant fonction du premier jeu de paramètres (10) et du deuxième jeu de paramètres (12), la main virtuelle agrippant l’objet (120) dans un des états parmi le premier état et le deuxième état dans une position parmi respectivement la première position et la deuxième position correspondant à la position de l’objet,
    le troisième état permettant une génération (E8) d’une représentation graphique de la main virtuelle (100) depuis le premier état à la première position jusqu’au deuxième état à la deuxième position en passant par le troisième état à la troisième position.
FR2205489A 2022-06-08 2022-06-08 Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée Pending FR3136568A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2205489A FR3136568A1 (fr) 2022-06-08 2022-06-08 Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée
PCT/EP2023/065058 WO2023237519A1 (fr) 2022-06-08 2023-06-06 Procédé de construction de transitions fluides d'une main dans un environnement en réalité virtuelle ou augmentée

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2205489 2022-06-08
FR2205489A FR3136568A1 (fr) 2022-06-08 2022-06-08 Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée

Publications (1)

Publication Number Publication Date
FR3136568A1 true FR3136568A1 (fr) 2023-12-15

Family

ID=82942706

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2205489A Pending FR3136568A1 (fr) 2022-06-08 2022-06-08 Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée

Country Status (2)

Country Link
FR (1) FR3136568A1 (fr)
WO (1) WO2023237519A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3751433A1 (fr) * 2018-03-15 2020-12-16 Universidad Rey Juan Carlos Procédé mis en oeuvre par ordinateur, système et produit-programme d'ordinateur pour simuler le comportement d'une main qui interagit avec des objets dans un environnement virtuel
US20220009091A1 (en) * 2020-06-09 2022-01-13 Naver France Method for determining a grasping hand model

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3751433A1 (fr) * 2018-03-15 2020-12-16 Universidad Rey Juan Carlos Procédé mis en oeuvre par ordinateur, système et produit-programme d'ordinateur pour simuler le comportement d'une main qui interagit avec des objets dans un environnement virtuel
US20220009091A1 (en) * 2020-06-09 2022-01-13 Naver France Method for determining a grasping hand model

Also Published As

Publication number Publication date
WO2023237519A1 (fr) 2023-12-14

Similar Documents

Publication Publication Date Title
EP2483758B1 (fr) Systeme et procede de reconnaissance de gestes
EP1719047B1 (fr) Controleur par manipulation d'objets virtuels sur un ecran tactile multi-contact
EP3786783A1 (fr) Systeme d'aide a la conception d'application d'intelligence artificielle, executable sur des plates-formes informatiques distribuees
FR3044438A1 (fr) Systeme et procede d'aide a la decision
FR3100355A1 (fr) Système d’aide à la conception d’application d’Intelligence Artificielle, exécutable sur des plates-formes informatiques distribuées
WO2006008350A1 (fr) Recherche automatique de similarite entre images incluant une intervention humaine
CA2370693C (fr) Systeme et methode de pilotage d'un processus decisionnel lors de la poursuite d'un but globale dans un domaine d'application determine
CN113014994B (zh) 多媒体播放控制方法及装置、存储介质、电子设备
FR3136568A1 (fr) Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée
FR3087911A1 (fr) Authentification par pointage et cliquage
EP4179469A1 (fr) Dispositif électronique et procédé de traitement de données à base de réseaux génératifs inversibles, système électronique de détection et programme d'ordinateur associés
EP1938219A1 (fr) Procede de tri d'un ensemble de documents electroniques
EP3143595B1 (fr) Procédé d'affichage d'images
WO2022249081A1 (fr) Procédé pour la prédiction automatique de l'effet émotionnel produit par une séquence de jeu vidéo
WO2010037956A1 (fr) Procede et systeme de generation d'une interface de controle des expressions faciales d'un avatar
EP3051508B1 (fr) Système de jeu informatisé
WO2005001758A2 (fr) Systeme de conception et d’utilisation de modeles decisionnels
EP4127990A1 (fr) Procédé et dispositif de contrôle d'accès
EP2115559B1 (fr) Dispositif d'analyse de grandeurs variables par multi- fenêtrage simultané
WO2021094694A1 (fr) Procédé de détermination d'une fonction de prédiction mettant en œuvre un réseau de neurones, et procédé de traitement associé
WO2024079034A1 (fr) Procédé de détermination d'au moins une action cible parmi un ensemble d'actions exécutables sur un terminal électronique
EP1741066A1 (fr) Methode et dispositif pour generer une carte procedurale a partir d'un parametre externe tel une caracteristique d'une image
WO2018109407A1 (fr) Procédé et dispositif de mise à jour
WO2022079011A1 (fr) Procédé et système d'assistance au soin du corps
EP4330838A1 (fr) Caracterisation d'un utilisateur par association d'un son a un element interactif

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20231215