EP4537177A1 - 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

Info

Publication number
EP4537177A1
EP4537177A1 EP23729433.5A EP23729433A EP4537177A1 EP 4537177 A1 EP4537177 A1 EP 4537177A1 EP 23729433 A EP23729433 A EP 23729433A EP 4537177 A1 EP4537177 A1 EP 4537177A1
Authority
EP
European Patent Office
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
EP23729433.5A
Other languages
German (de)
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
Publication of EP4537177A1 publication Critical patent/EP4537177A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/013Eye tracking input arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation

Definitions

  • TITLE Process for constructing fluid transitions of a hand in a virtual or augmented reality environment
  • the present invention relates to the field of virtual reality. More precisely, the invention relates to the representation of a virtual hand within a virtual environment.
  • the user has visual access to this environment via video feedback (for example using a virtual reality headset).
  • the expression "state of a hand” refers to the different configurations that this hand can take, that is to say to the relative position of the fingers, the phalanges and/or the palm of the hand .
  • a hand may be in a closed state in which the hand forms a fist, an open state in which the fingers are extended in line with the palm, a relaxed state in which the fingers are relaxed, or any intermediate state .
  • VR virtual reality
  • a virtual hand may be required to control a virtual hand to carry out certain steps such as gripping and moving an object. This control of the virtual hand is for example carried out using a joystick held by the user.
  • Joystick control is technically simple to implement, and allows the use of buttons and other haptic devices to allow the system to acquire instructions from the user.
  • Joystick control also makes it possible to offer the user haptic feedback in the event of interaction of the virtual hand with the environment in which it is immersed.
  • Joystick control of the virtual hand is, however, not without its drawbacks.
  • the user first brings the virtual hand closer to the object. Once the hand is close enough, the user sends an instruction, typically by pressing a button on the controller, to grasp the object.
  • the virtual hand must then make a transition from a first so-called rest state in which the virtual hand moves in its environment, to a second so-called gripping state in which the hand grasps the object.
  • the present invention proposes to improve the situation.
  • the invention proposes a method for generating a graphic representation of a virtual hand as a function of a first set of parameters representative of a first state of a virtual hand and a first position of said virtual hand in a virtual environment, and at least a second set of parameters representative of a geometry of at least one object intended to be gripped by said virtual hand and a position of said object in said virtual environment, the method comprising the following steps: determining at least a fourth set of parameters representative of at least a third state of the virtual hand intermediate between the first state and a second state of the virtual hand, as a function of the first set of parameters, a third set of parameters representative of the second state of the virtual hand in a second position in the virtual environment, and at least information representative of a third position of the virtual hand located between the first position and the second position, the third set of parameters being a function of the first set of parameters and the second set of parameters, the virtual hand gripping the object in the one of the states among the first state and the second state in a position among respectively the
  • such a method for generating a graphic representation of a virtual hand offers a fluid transition of the virtual hand from an initial state to a state of gripping an object, and this in an anticipated manner, that is- i.e. even before the user produces an input instruction by means of a control device.
  • the virtual hand whose movement and actions, such as grasping an object, can be controlled by a user by means of a control device, such as for example, a controller or a joystick, in particular with six degrees of freedom (also noted “6DoF” for “six degrees of freedom” in English), in particular the control device is located in space, presents the user with more realistic behavior.
  • a control device such as for example, a controller or a joystick, in particular with six degrees of freedom (also noted “6DoF” for “six degrees of freedom” in English), in particular the control device is located in space, presents the user with more realistic behavior.
  • the user does not need to give any specific instruction, through the control device, to gradually close the virtual hand when it is close to the object, thus simulating the behavior of a hand. real”.
  • the first state can for example be a state in which the virtual hand is slightly open (called “neutral” or “relaxed” state), completely open (or “flat”), or in a current state of the virtual hand at the same time. the moment when the process is implemented.
  • the second state represents the state in which the virtual hand is found when it is as close as possible to the object, in a configuration in which the virtual hand is able to grip the object.
  • the third state of the virtual hand depends on the relative position of the virtual hand relative to the object as well as the first state and the second state of the virtual hand.
  • This intermediate state is all the closer to the gripping state as the virtual hand is closer to the object. As the virtual hand gets closer to the object, the intermediate state then becomes more and more similar to the grasping state.
  • the virtual hand grips the latter without abrupt transition or delay in the execution of the instruction because it is already in the state gripping or in a state similar to the gripping state.
  • the quality of user experience is greatly enhanced, without sacrificing the responsiveness of the virtual hand control.
  • the method comprises a determination, as a function of the first set of parameters and the second set of parameters, of a third set of parameters representative of the second state of the virtual hand in the second position.
  • the parameters of the third set of parameters are representative of a second state of the virtual hand when it grips the object.
  • the method comprises the generation of the graphic representation of the virtual hand from the first state at the first position to the second state at the position of the object passing through the third state at the second position.
  • a state of the virtual hand is defined by a plurality of parameters including a list of angle values, an angle value describing an angle formed by two successive phalanges of a finger of the virtual hand or an angle formed by a phalanx and the palm of said virtual hand.
  • said at least a fourth set of parameters further comprises a transition parameter whose value is between a minimum value corresponding to the first state and the first position of the virtual hand and a maximum value corresponding to the position of the object and in the second state of the virtual hand.
  • all of the fourth sets of parameters form a continuum (or a sufficiently fine discretization) between the initial state and the gripping state.
  • Each state and each position represented by one of the fourth sets of parameters being associated with a value of the transition parameter, the graphic representation of the transition of the virtual hand is thus more realistic and promotes immersion.
  • the continuum thus constructed makes it possible to adapt the graphic representation of the virtual hand according to the frequency at which frames are displayed by the video feedback giving access to the environment of the virtual hand, for example 90 Hz for virtual reality.
  • this parameterization of all of the fourth sets of parameters advantageously makes it possible to adapt the transition of the hand to the speed at which it approaches the object.
  • At least one angle value is a function of the value of the transition parameter.
  • the fact of defining at least one angle value as a function of a value of the transition parameter makes it possible to finely control the graphic representation of the virtual hand, for example phalanx by phalanx, as a function of the value of the transition parameter. transition.
  • the function linking the value of the transition parameter to a given angle value is a linear interpolation passing through an angle value corresponding to the minimum value of the transition parameter and through an angle value corresponding to the maximum value of the transition parameter.
  • transition data are thus constructed by linear interpolation.
  • a value of the transition parameter corresponds to: one minus a ratio between the relative position of the virtual hand with respect to the object and a transition distance when said ratio is positive, and zero otherwise.
  • the value of the transition parameter varies between values 0 and 1.
  • transition distance When the virtual hand is located beyond a certain distance from the object, called transition distance, the value of the transition parameter is zero, and the hand remains in its current state (for example a relaxed state).
  • the value of the transition parameter increases linearly with the proximity of the virtual hand to the object (defining the proximity as the difference between the transition distance and the distance between the virtual hand and the object).
  • the first set of parameters is further representative of an orientation of the virtual hand in virtual space
  • the method further comprising: determining, based on the position of the virtual hand, the orientation of the virtual hand and the position of the virtual object, of an intention parameter whose value represents a probability of intention of the user to grasp said object with said virtual hand; determining the satisfaction, by said intention parameter, of a first condition, said satisfaction leading to the determination of the third set of parameters and the determination of said at least one fourth set of parameters.
  • the determination of the third set of parameters and said at least fourth set of parameters is conditional on the satisfaction of a first condition, called the intention condition, by the intention parameter. This saves calculation time by only constructing the third set of parameters and said at least fourth set of parameters for an object that the user probably intends to grip with the virtual hand.
  • the virtual environment includes a plurality of objects, and the first condition is satisfied for the object associated with said intent parameter having the greatest value.
  • This choice of first condition makes it possible, in a multi-object environment, to calculate the transition of the object that the user most likely wishes to grasp.
  • each object is associated with at least one class
  • the value of the second parameter associated with said object is a function of the at least one class associated with the object.
  • the objects in the environment are each labeled with a certain class (which may be common to several objects).
  • classes can for example correspond to different stages of a process, or to a type of object such as a tool.
  • these classes contribute to the calculation of the second parameter and therefore of the hand transition. This makes it possible on the one hand to better discriminate the choice of the object serving as a basis for the transition by authorizing only objects relating to a given class, and on the other hand plays a role as a deceptive for the user, by encouraging the the user to move the virtual hand towards the relevant object(s).
  • the method comprises obtaining data representative of a direction of gaze of a user, the intention parameter associated with an object taking a value that is greater as the gaze data indicates that the user looks in the direction of said object.
  • the determination of a value of the intention parameter is, among other things, a function of the direction of the user's gaze.
  • Obtaining the direction of the user's gaze can for example be done using a virtual reality headset.
  • This solution offers the user faster, ergonomic and intuitive control of the virtual hand, allowing them to control the choice of the object which serves as a basis for constructing the transition of the hand towards grasping this object. .
  • determining the intention parameter associated with the object comprises determining the presence of the object in a cone starting from the palm of the virtual hand and including a vector orthogonal to the palm.
  • determining the presence of the object by means of a cone makes it possible to play on the orientation of the virtual hand to determine the value of the intention parameter. This allows a user to select the object they intend to grasp by orienting the virtual hand substantially in the direction of said object. This method avoids having to calculate values for intention parameters associated with objects located outside the cone (or setting these values to zero as long as the object is located outside the cone, which is equivalent).
  • the cone comprises rays forming a mesh of the cone
  • the determination of a value of the intention parameter associated with a given object comprises the determination of at least one ray reaching the object, the value of said parameter of intention being an increasing function of the collinearity between this ray and the vector orthogonal to the palm.
  • the value of the intention parameter associated with an object is greater as the virtual hand is oriented in the direction of said object. This notably allows a user to more precisely select the object on the basis of which the transition can be generated.
  • the value of the intent parameter associated with an object is a decreasing function of the distance between the palm and the object.
  • This allows for various optimizations, including declaring the value of the intent parameter associated with an object as zero when said object is beyond a certain distance from the object. It is thus possible to calculate the value of the intention parameter for a large number of objects by discriminating distant objects very quickly, for example by using techniques from the calculation of collisions in a physics engine.
  • the invention further relates to a computer device for implementing a graphical representation method as described above.
  • the invention further relates to a computer program product comprising program code instructions for implementing a method according to the invention as described above, when executed by a processor.
  • Such a computer program can be recorded on a computer-readable recording medium.
  • This recording medium can be any entity or device capable of storing the program.
  • the medium may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or even a magnetic recording means, for example a USB key or a hard disk.
  • such a recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means, so that the program computer it contains can be executed remotely.
  • the program according to the invention can in particular be downloaded onto a network, for example the Internet network.
  • the recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method which is the subject of the aforementioned invention.
  • the invention also relates to a virtual reality device comprising: a first generator of graphical representation of a virtual hand as a function of a set of parameters representative of a state of a virtual hand and of a position of said virtual hand in a virtual environment, a second generator of graphic representation of an object as a function of at least one set of parameters representative of a geometry of at least one object intended to be gripped by a virtual hand and a position of said object in said virtual environment, a graphic reproducer configured to reproduce the virtual environment, the generated graphic representation of the virtual hand, and the generated graphic representation of the object; in which the first generator of graphic representation of a virtual hand comprises a calculator determining at least a fourth set of parameters representative of at least a third state of the virtual hand intermediate between a first state and a second state of the virtual hand, depending on a first set of parameters, a third set of parameters representative of a second state of the virtual hand in a second position in the virtual environment, and at least one piece of information representative of a third position of the virtual hand located between
  • FIG. 1 represents a simplified diagram of the steps of a control method according to the invention
  • FIG. 3 represents a simplified diagram of a variant of the method of Figure 1
  • FIG. 5 represents an example of a device implementing the method of Figure 1
  • FIG. 6 represents a simplified diagram of a virtual reality device according to the invention.
  • Figure 1 represents a method for generating a graphical representation of a virtual hand in a virtual environment.
  • This method is carried out as a function of a first set of parameters 10 and at least a second set of parameters 12.
  • the first set of parameters 10, also called a set of position parameters is representative of a first state of a virtual hand and a first position of said virtual hand in virtual space.
  • the second set of parameters 12, also called a set of object parameters is representative of a geometry (in particular a shape) of at least one object intended to be gripped by said virtual hand and of a position of said object in said virtual environment.
  • the method comprises a step E4 of determining a third set of parameters 40 representative of a second state of the virtual hand when it grips the virtual object, a step E6 of determining at least a fourth set of parameters 60 and an E8 generation step of a graphical representation of the virtual hand from the first state at the first position to the second state at the position of the object via the third state at the second position.
  • the determination step E4 is carried out as a function of the first set of parameters 10 and the second set of parameters 12.
  • the determination step E6 is carried out as a function of the first set of parameters 10, the third set of parameters 12, and at least one piece of information representative of a second position of the virtual hand in the virtual space located between the first position of the virtual hand and the position of said object.
  • the fourth set of parameters 60 is representative of at least a third state of the virtual hand intermediate between the first state and the second state.
  • the first state of the virtual hand can be the current state of the virtual hand, that is to say the state in which the virtual hand is at the time of construction step E6.
  • the initial state may be a so-called “neutral” state of the virtual hand, corresponding to a state of the virtual hand when it is at rest.
  • the neutral state may be a state in which the virtual hand is completely open and flat, or alternatively a so-called relaxed state in which the fingers of the virtual hand are slightly curved.
  • the first set of parameters 10 is called the initial set, for similar reasons.
  • the second state corresponds to a state in which the virtual hand grips the object to be grasped.
  • the third set of parameters 40 is representative of this state. This third set of parameters 40 is determined from the first set of parameters and the second set of parameters. Various methods for determining this set of grip parameters will be described below.
  • the other sets of parameters 60 (i.e. the fourth set(s) of parameters) representative of the so-called intermediate states between the initial state and the gripping state are for their part determined using the first set of parameters 10 and the third set of parameters 40. These states and sets are called intermediate because they are “between” the initial state and the gripping state (or “between” the initial set and the gripping set).
  • Step E8 of generating the graphic representation of the virtual hand is based on the different sets of parameters representative of the intermediate states previously determined, as well as on the initial set 10 and on the gripping set 40.
  • the graphic representation thus obtained represents the transition of the hand to the different intermediate states. This allows for a smooth transition of the virtual hand between its initial state and the gripping state.
  • FIG 2 illustrates a virtual hand 100 and an object 120 both located in a virtual environment, the virtual hand 100 seeking to grasp the object 120.
  • the virtual hand 100 is controlled via a control device.
  • command (pad, joystick or any other device suitable for moving a virtual hand in a virtual environment).
  • the control device here is a joystick.
  • the virtual hand 100 is controlled in position and orientation by movement instructions from the joystick manipulated by a user.
  • the virtual hand 100 is located at a relative position 140 of the object 120, this relative position 140 being able to be derived from the first set of parameters 10 and the second set of parameters 12.
  • the virtual hand 100 is represented in three states, labeled A, B and C in Figure 2.
  • state A the virtual hand 100 is in an initial state (here, a relaxed state), at a first position .
  • the virtual hand 100 in state A is therefore at a first distance from the object 100.
  • state C the virtual hand 100 is in the gripping state.
  • the distance separating the virtual hand 100 from the object 120 is less than or equal to a gripping threshold.
  • the virtual hand 100 is in contact with the surface of the object 120 which it can grasp.
  • state B the virtual hand 100 is in an intermediate state, and at a relative position 140 intermediate between the relative position of state A and the gripping threshold.
  • the fact that the virtual hand 100 is in one or other of these states depends on the relative position 140 of the virtual hand 100 relative to the object 120.
  • An intermediate state of the artificial hand 100 is as closer to the gripping state that the artificial hand 100 is close to the object 120 (or that the distance between the virtual hand and the object is close to the gripping threshold).
  • the graphical representation of the virtual hand 100 can be produced without instruction from the user other than the movement of the virtual hand 100 controlled via the controller.
  • the transition of the virtual hand 100 from a current state to the gripping state does not need to be triggered by user interaction with the controller leading to the issuance of a gripping order. the objects.
  • the transition of the virtual hand 100 to the gripping state is a function of its movement relative to the object 120.
  • the virtual hand 100 thus adopts, thanks to this process, a behavior that is both reactive, because capable of grasping the object 120 without any latency other than the movement of the virtual hand 100 towards the object 120, and fluid, because capable to grasp the object without abrupt transition.
  • the step E6 of determining the transition set(s) comprises the construction of one or more fourth sets of parameters 60 representative of intermediate states.
  • a fourth set of parameters 60 representative of a given intermediate state includes a transition parameter t.
  • Such a transition parameter t can take a plurality of values in a given interval.
  • the transition parameter t can vary between a minimum value and a maximum value. To simplify the rest of the description, we consider for the following that the transition parameter t varies between 0 and 1 inclusive, of course other values can be considered for the transition parameter t.
  • the intermediate state associated with the value 0 of the transition parameter t corresponds for example to the initial state.
  • the intermediate state associated with the value 1 of the transition parameter t corresponds for example to the gripping state.
  • the values of the parameters constituting the sets of parameters representative of the different intermediate states of the virtual hand 100 evolve continuously, in the mathematical sense of term, relative to the value of the transmission parameter t.
  • the values of the parameters constituting the sets of parameters representative of the different intermediate states evolve monotonically from the initial state (when the transmission parameter t is 0) to the gripping state (when the transmission parameter t is 1).
  • This choice is also flexible, because it allows fine variation in the transition of the virtual hand between its different states. This makes it possible to adapt the speed of this transition to different situations and in particular to the frequency of display of the virtual environment on a display device, such as the screen of a virtual reality headset. For example, the transition can be made at a display frequency of 90 Hz.
  • a set of parameters representative of a state of the virtual hand comprises a list of angle values, each angle value describing the angle formed by two successive phalanges of a finger of the virtual hand or the angle formed by a phalanx and the palm of said virtual hand.
  • the angle value can be a function of the value of the transition parameter t.
  • this function is a monotonic function going from a first value of the transition parameter t (that of the initial state) to a second value of the transition parameter t (that of the gripping state).
  • the function associating a given angle value with a value of the transition parameter is a linear interpolation passing through the angle value of the initial state when the value of the transmission parameter is equal to 0, and by the angle value of the gripping state when the value of the transmission parameter is equal to 1.
  • the interpolation can be linear, which allows a very fast calculation. The inventors have observed that linear interpolation is a good compromise between calculation speed and realism. Alternatively, the interpolation may be of a different type, for example a quadratic interpolation.
  • the virtual hand 100 remains in the neutral state (relaxed or completely flat) as long as it is located at a distance d greater than a transition distance d T.
  • This transition distance d T can for example be worth 30 cm.
  • the value of the transition parameter t remains equal to 0 as long as the distance d between the virtual hand 100 and the object 120 is greater than the transition distance d T.
  • the ratio d/d T quantitatively represents the proximity of the virtual hand 100 to the object 120.
  • the determination of the parameters representative of a given state for a finger of the virtual hand 100 is carried out on the basis of the following algorithm: in which :
  • & is the logical operator AND, and ! the logical negation operator.
  • the method represented in Figure 3 comprises a step E2 of determining an intention to the user to grasp the object 120 with the virtual hand 100 that he controls.
  • the method in this example makes it possible to determine for which object among the plurality of objects included in the virtual environment to construct the third set of parameters 40 and the fourth set of parameters 60.
  • the method implements, prior to the step E4 of determining the third set of parameters 40, a step E2 of determining, for a given object, a representative intention parameter 20 of the user's intention to enter said object.
  • This step like the transition of the virtual hand 100 described above, is carried out without the need for specific instructions from the user. This improves the user's immersion in the virtual environment.
  • the determination step E2 comprises a step E20 of determining an intention parameter 20 associated with the object 120 and a step E22 of determining the satisfaction of an intention condition 22 on the basis of this parameter d intention 20.
  • Step E20 is carried out as a function of the first set of parameters 10 and the second set of parameters 12.
  • a value of the intention parameter 20 determined in step E20 is associated with the object 120 relating to the second set of parameters 12.
  • the value of the intention parameter 20 is representative of a probability of intention of the user to grasp said object 120 with said virtual hand 100. Different methods for determining this value of the intention parameter 20 will be described below.
  • Step E22 determines the satisfaction, by the values of the intention parameters 20 associated with the object 120 previously determined, of an intention condition 22.
  • this triggers the step E6 for determining the third set of parameters 20 described above as a function of the first set of parameters 10 and the second set of parameters 12 whose intention data 20 satisfy the intention condition 22.
  • this determination step E2 of intention makes it possible to save calculation time, for example by automatically eliminating a virtual object 120 whose value of the intention parameter would be too low (for example because it is too far from the virtual hand 100).
  • the value of the intent parameter represents a probability, as explained above.
  • the value of the parameter is for example between 0 and 1 inclusive.
  • the intention condition 22 for an intention parameter associated with a given object 120 is the fact of having the highest intention value among all of the parameters d intention 20.
  • At least one object is associated with at least one class.
  • the classes that can be associated with an object form a set of classes.
  • the value of the intention parameter is then a function of this at least one class. More precisely, at the time of the intention determination step E2, it is determined whether the class associated with the object belongs to a subset of classes of the set of classes. If this is the case, the determination of the intent parameter 20 continues, otherwise the intent condition 22 is considered not satisfied (or alternatively the intent parameter is declared to be zero).
  • the intention condition can be that at least one of these classes belongs to the subset of classes.
  • each task involving one or more objects (for example one or more tools).
  • each class is relative to a given task in the process.
  • Each tool is used in one or more tasks in the process.
  • Each tool is then associated with the class(es) relating to the tasks in which the tool can be used.
  • the method includes assuming that the user does not intend to grasp any object other than that or those used in said given task. Objects that are not attached to this task therefore have their intent parameter value declared zero until the current task (in which they are not used) is finished.
  • User guidance is improved, without deteriorating immersion compared, for example, to a display of highlighted objects.
  • This exemplary embodiment also makes it possible to prohibit the gripping of certain objects (for example if they are not intended to be gripped), and therefore not to construct a fluid transition towards these objects.
  • the intention to grasp a given object can also depend on a direction of the user's gaze. More precisely, the method comprises the acquisition of data relating to the direction of the user's gaze. The value of the intention parameter 20 is then a function of these data relating to the direction of gaze. For example, if the data relating to the direction of gaze indicates that the user is looking in the direction of the object 120, then the value of the intention parameter 20 is close to 1.
  • the step of determining the value of the parameter of intention 20 can here include the determination of a distance between the direction of the user's gaze and the object, then the determination of a gaze factor which is a decreasing function of said distance between the gaze and the object. object.
  • the gaze factor can then be integrated into the calculation of the value of the intention parameter, for example by multiplying the value of the intention parameter by the gaze factor.
  • the gaze factor can be determined at regular intervals, for example every ten frames, or every second. These examples are given for illustrative purposes.
  • determining the value of the intention parameter associated with the object comprises determining the presence of the object in a cone whose apex is located at the level of the palm of the virtual hand and including a vector orthogonal to the palm.
  • the cone can for example start from the center of the palm, although it can start from another place on the palm.
  • This determination of the intention by inclusion of the object in a cone makes it possible to play on the orientation of the virtual hand 100 for determining the value of the intention parameter.
  • the user is deemed not to have the intention of grasping objects located outside the cone.
  • the vector orthogonal to the palm (also called normal to the palm) is preferably inside the cone, for example substantially in the center of the cone (but not necessarily).
  • the methods for determining the value of the intention parameter by class associated with an object, by means of the direction of gaze and by the presence of the object in a cone are complementary and can be combined with each other.
  • rays forming a mesh of the cone are defined. Determining the value of the intention parameter associated with a given object then includes determining at least one ray reaching the surface of the object. The value of the intention parameter is determined as an increasing function of the collinearity between this ray and the vector orthogonal to the palm. Collinearity can for example be calculated as the scalar product of the unit vector defining the direction of the ray and the normal to the palm (also unitary, i.e. with norm equal to 1).
  • the value of the intention parameter 20 associated with an object 120 is a decreasing function of the distance between the palm of the virtual hand 100 and the object 120.
  • This decreasing function may present a threshold beyond which the value of the intention parameter is zero. This makes it possible to very quickly exclude distant objects, which it is reasonably sure that the user does not intend to grasp in the short term.
  • the determination of membership in the cone previously described for the virtual hand 100 is carried out on the basis of the algorithm below: where minAngleX, maxAngleX, minAngleZ and maxAngleZ are the lower and upper limits of the cone with respect to the X and Z directions (respectively); nbRaysX and nbRaysZ are the number of rays forming the mesh in the X and Z directions (respectively); palmForward the normal to the palm and reach the maximum distance a ray can reach.
  • the limits along X and Z as well as the normal to the palm together define the cone and the variables nbRaysX and nbRaysZ define the density of its mesh.
  • Each ray has an intersection distance with the hitDist object and an intersection point with the hitPoint object.
  • hitDist and hitPoint are derived, among other things, from the reach variable. This algorithm makes it possible to identify all of the rays encountering the object. From this set of rays, the algorithm extracts the ray with the smallest hitDist impact distance.
  • the hitDist distances obtained can be weighted by the collinearity between the direction vector of each ray and the normal to the palm so that to obtain a weighted distance DistPond, for example as below (where DistPond is a linear combination of the distance hitDist and a weighting of the distance by the collinearity between the direction of the rayDirection and the normal to the palm palmForward).
  • DistPond is a linear combination of the distance hitDist and a weighting of the distance by the collinearity between the direction of the rayDirection and the normal to the palm palmForward.
  • the factors 1/5 and 4/5 are chosen arbitrarily, other pairs of weighting factors could be considered.
  • DistPond h.itDist/5 + hitDist x 4/5 x rayDirection ⁇ palmForward
  • the different examples of intention determination step E2 can be implemented in the case where a single virtual object 120 is present in the virtual environment. This makes it possible to determine the gripping game 40 and the intermediate game 60 only when the value of the intention parameter 20 is sufficient, for example when the virtual hand 100 is close to the virtual object 120. This saves calculation time .
  • step E4 of determining the third set of parameters 40 the gripping state is constructed.
  • This gripping state can be constructed from the determination of a ray starting from the palm and intersecting the surface of the object.
  • This radius can for example be the radius determined in step E4 of determining the values of the intention parameters, and be the radius presenting the smallest weighted distance.
  • This radius can alternatively be calculated in step E6, in particular when the method does not include step E4 of determining the values of the intention parameters.
  • a projection of the virtual hand is simulated in the direction of said ray and with the palm of the projection of the virtual hand 100 in contact with the object 120.
  • the fingers of the projection are closed on the object.
  • the angles of the phalanges with their neighbors and/or the palm together define the values of the parameters representative of the grip state.
  • This construction of the values of the parameters representative of the gripping state may include a step of verifying the absence of interpenetration between the object and the virtual hand. This verification of the absence of interpenetration can be carried out at each iteration of the closure of the phalanges.
  • a method has been described allowing a graphical representation of a virtual hand as a function of a first set of parameters (relating to an initial state and an initial position of a virtual hand) and at least a second set of parameters (relating to an object). This process comprises, as described above:
  • steps E2 to E8 can be carried out during the generation of each image of the graphic representation of the virtual hand.
  • the frequency of the graphic representation can be 90 Hz.
  • these steps are not implemented each time an image is generated. Some steps can be performed every n images (for example every 10 images).
  • steps E4 and E6 are implemented every n images (with n > 2).
  • steps E4 and E6 are not implemented.
  • the last gripping set 40 and the last determined intermediate set(s) 60 are used. This advantageously makes it possible not to recalculate the gripping game 40 and the intermediate game(s) for all the images, which further reduces the calculation time to carry out this process, without sacrificing too much in realism as long as the virtual hand 100 and /or the object 120 does not move too quickly.
  • step E2 is part of the process, its frequency can be identical to that of steps E4 and E6, or different.
  • the gripping game 40 is determined every ten images, and the intermediate game(s) 60 are also determined every ten images (on the basis of the gripping game 40 and the first game 10).
  • the [fig. 5] represents a device capable of implementing the graphic representation method according to Figure 1.
  • Such a device can comprise at least one hardware processor 51, a storage unit 52, and at least one network interface 53 which are connected to each other via a bus 54.
  • the constituent elements of the device can be connected using a connection other than a bus.
  • the processor 51 controls the steps of the process.
  • the storage unit 52 stores at least one program for implementing the method according to one embodiment of the invention to be executed by the processor 51, and various data, such as sets of parameters used for calculations carried out by the processor 51, intermediate calculation data carried out by the processor 51, etc.
  • the processor 51 can be formed by any known and suitable hardware or software, or by a combination of hardware and software.
  • the processor 51 can be formed by dedicated hardware such as a processing circuit, or by a programmable processing unit such as a Central Processing Unit which executes a program stored in a memory. this one.
  • the storage unit 52 may be formed by any suitable means capable of storing the program(s) and data in a computer-readable manner.
  • Examples of storage unit 52 include non-transitory computer-readable storage media such as solid-state memory devices, and magnetic, optical, or magneto-optical recording media loaded into a read and read unit. 'writing.
  • the virtual reality device 1 comprises a first graphic representation generator 2 of the virtual hand 100, a second graphic representation generator 3 of the object 120, and a graphic reproducer 4. These three elements can communicate together.
  • the first generator 2 is able to implement a graphic representation of a virtual hand 100 as a function of a set of parameters (for example the first, third or fourth set of parameters described above) representative of the state of the virtual hand 100 and a position of said virtual hand 100 in its virtual environment.
  • the second generator 3 is able to implement a graphic representation of the object 120 as a function of at least one set of parameters (for example the second set of parameters 12 mentioned above) representative of a geometry of at least one object 120 intended to be gripped by the virtual hand 100 and a position of said object 120 in said virtual environment.
  • at least one set of parameters for example the second set of parameters 12 mentioned above
  • the graphic reproducer 4 is configured to reproduce the virtual environment, the generated graphic representation of the virtual hand 100, and the generated graphic representation of the object 120.
  • the first graphic representation generator 2 comprises a calculator 5 determining at least a fourth set of parameters 60 representative of at least a third intermediate state of the virtual hand 100 between a first state and a second state of the virtual hand 100, depending on a first set of parameters 10, a third set of parameters 40 representative of a second state of the virtual hand 100 in a second position in the virtual environment, and at least one piece of information representative of a third position of the virtual hand 100 located between the first position and the second position, the third set of parameters being a function of the first set of parameters 10 and the second set of parameters 12, the virtual hand gripping the object 120 in one of the states among the first state and the second state in a position among respectively the first position and the second position corresponding to the position of the object.
  • the third state makes it possible to implement a generation of a graphical representation of the virtual hand 100 from the first state at the first position to the second state at the second position passing through the third state at the third position (such as the generation implemented in the aforementioned step E8).
  • the virtual reality device 1 may include the hardware bricks shown in Figure 5 and described above in relation to this Figure 5.

Landscapes

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

Abstract

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.

Description

DESCRIPTION
TITRE : 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 :
[fig- 1] représente un schéma simplifié des étapes d'un procédé de commande selon l'invention,
[fig. 2] représente une main virtuelle commandée par le procédé de la figure 1,
[fig. 3] représente un schéma simplifié d'une variante du procédé de la figure 1,
[fig- 4] représente l'étape E4 de la figure 3,
[fig. 5] représente un exemple de dispositif mettant en œuvre le procédé de la figure 1, et [fig. 6] 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 figure 1, 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 figure 2, 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 figure 2. 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 t. Un tel paramètre de transition t peut prendre une pluralité de valeurs dans un intervalle donné.
De manière générale, le paramètre de transition t 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 t varie entre 0 et 1 inclus, bien entendu d'autres valeurs peuvent être envisagées pour le paramètre de transition t.
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 t correspond par exemple l'état initial. De manière analogue, l'état intermédiaire associé à la valeur 1 du paramètre de transition t 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 t. 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 t vaut 0) à l'état de préhension (quand le paramètre de transmission t 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 continûment avec la valeur du paramètre de transmission t, pourvu que celle-ci varie elle-même continûment.
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 t. Dans un exemple précis, cette fonction est une fonction monotone allant d'une première valeur du paramètre de transition t (celle de l'état initial) à une deuxième valeur du paramètre de transition t (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 p E [1, 3] d'un doigt n E [1, 5] (n et p étant des nombres entiers), l'angle ap n de la phalange p avec la phalange précédente p — 1, ou la paume pour la première phalange, s'exprime comme fonction de t, soit ap n(t). L'état e(t) de la main virtuelle pour une valeur du paramètre de transition t 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 d supérieure à une distance de transition dT. Cette distance de transition dT peut par exemple valoir 30 cm.
Dans ce cas, la valeur du paramètre de transition t reste égale à 0 tant que la distance d entre la main virtuelle 100 et l'objet 120 est supérieure à la distance de transition dT. Quand d < dT, t varie entre 0 et 1 de manière monotone, et quand d < seuil de transition (et donc que la main virtuelle 100 est au plus proche de l'objet 120), t = 1. Le paramètre de transmission t peut varier de manière continue par rapport au rapport d/dT, ce qui assure une fluidité dans la transition. Dans un exemple, t = 1 — d/dT quand d < dT. Le rapport d/dT 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 : dans lequel :
InterpolationFermeture(valeur) est une fonction d'interpolation linéaire entre l'état initial (InterpolationFermeture(O)) et l'état de préhension (InterpolationFermeture(l)) 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 figure 1. Dans cet exemple, le procédé représenté à la figure 3 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 : où minAngleX, maxAngleX, minAngleZ et maxAngleZ sont les bornes inférieures et supérieures du cône par rapport aux directions X et Z (respectivement) ; nbRaysX et nbRaysZ sont le nombre de rayons formant le maillage selon les directions X et Z (respectivement) ; palmForward la normale à la paume et reach 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 nbRaysX et nbRaysZ en définissent la densité de son maillage.
Chaque rayon présente une distance d'intersection avec l'objet hitDist et un point d'intersection avec l'objet hitPoint. hitDist et hitPoint sont dérivés entre autres de la variable reach. 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 hitDist.
Afin de favoriser les rayons les plus proches de la normale à la paume (et limiter les problèmes de discrimination entre objets), les distances hitDist 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 DistPond, par exemple comme ci-dessous (où DistPond est une combinaison linéaire de la distance hitDist et d'une pondération de la distance par la colinéarité entre la direction du rayon rayDirection et la normale à la paume palmForward). Ici, les facteurs 1/5 et 4/5 sont choisis arbitrairement, on pourrait envisager d'autres paires de facteurs de pondération.
DistPond = h.itDist/5 + hitDist x 4/5 x rayDirection ■ palmForward
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 œuyre 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
E4 la détermination d'un troisième jeu de paramètres 40,
E6 la détermination d'au moins un quatrième jeu de paramètres 60 en fonction de ce troisième jeu de paramètres, et
E8 la 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 [fig. 5] représente un dispositif apte à mettre en œuvre le procédé de représentation graphique selon la figure 1.
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 figure 6, 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 figure 5 et décrites ci-dessus en relation avec cette figure 5.

Claims

REVENDICATIONS
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.
EP23729433.5A 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 Pending EP4537177A1 (fr)

Applications Claiming Priority (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

Publications (1)

Publication Number Publication Date
EP4537177A1 true EP4537177A1 (fr) 2025-04-16

Family

ID=82942706

Family Applications (1)

Application Number Title Priority Date Filing Date
EP23729433.5A Pending EP4537177A1 (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

Country Status (4)

Country Link
US (1) US20250348138A1 (fr)
EP (1) EP4537177A1 (fr)
FR (1) FR3136568A1 (fr)
WO (1) WO2023237519A1 (fr)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2725128B2 (es) * 2018-03-15 2020-07-22 Univ Rey Juan Carlos Método implementado por ordenador, sistema y producto del programa de ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual.
ES2885077B2 (es) * 2020-06-09 2025-02-03 Naver Corp Metodo para determinar un modelo de agarre de mano

Also Published As

Publication number Publication date
FR3136568A1 (fr) 2023-12-15
WO2023237519A1 (fr) 2023-12-14
US20250348138A1 (en) 2025-11-13

Similar Documents

Publication Publication Date Title
EP1719047B1 (fr) Controleur par manipulation d&#39;objets virtuels sur un ecran tactile multi-contact
EP2483758B1 (fr) Systeme et procede de reconnaissance de gestes
EP2101253B1 (fr) Système de classification de gestes
EP3588301A1 (fr) Determination automatique et auto-optimisee des parametres d&#39;execution d&#39;une application logicielle sur une plateforme de traitement de l&#39;information
FR3112413A1 (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
WO2023237519A1 (fr) Procédé de construction de transitions fluides d&#39;une main dans un environnement en réalité virtuelle ou augmentée
FR3087911A1 (fr) Authentification par pointage et cliquage
EP3143595B1 (fr) Procédé d&#39;affichage d&#39;images
EP4348598A1 (fr) Procédé pour la prédiction automatique de l&#39;effet émotionnel produit par une séquence de jeu vidéo
TW202435938A (zh) 基於人工智慧(ai)之故事板產生方法及系統
EP3051508B1 (fr) Système de jeu informatisé
WO2005001758A2 (fr) Systeme de conception et d’utilisation de modeles decisionnels
WO2008096063A1 (fr) Dispositif d&#39;analyse de grandeurs variables par multi- fenêtrage simultané
EP4145253A1 (fr) Procédé d analyse de l activité d&#39;un utilisateur d&#39;un terminal électronique
FR3103294A1 (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é
CA2922336C (fr) Procede de sequencement de commandes d&#39;execution, procede d&#39;execution, programme d&#39;ordinateur et circuit integre
EP4589537A1 (fr) Procédé de génération de données, programme d&#39;ordinateur et dispositif de calcul associés
EP2469397A1 (fr) Traitement perfectionné de données d&#39;interface graphique
FR3144340A1 (fr) Procédé d’identification ou d’authentification d’un utilisateur d’un système de réalité virtuelle ou mixte.
EP4432175A1 (fr) Procédé de paramétrage d&#39;une chaîne de traitement de données
EP4330838A1 (fr) Caracterisation d&#39;un utilisateur par association d&#39;un son a un element interactif
WO2005114588A1 (fr) Methode et dispositif pour generer une carte procedurale a partir d&#39;un parametre externe tel une caracteristique d’une image
WO2024079034A1 (fr) Procédé de détermination d&#39;au moins une action cible parmi un ensemble d&#39;actions exécutables sur un terminal électronique
EP2372674A1 (fr) Procédé de génération d&#39;un signal de retour et terminal à interface tactile mettant en oeuvre un tel procédé
FR3064795A1 (fr) Modelisation de comportement humain

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20241205

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)