WO2019175460A1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- WO2019175460A1 WO2019175460A1 PCT/ES2019/070170 ES2019070170W WO2019175460A1 WO 2019175460 A1 WO2019175460 A1 WO 2019175460A1 ES 2019070170 W ES2019070170 W ES 2019070170W WO 2019175460 A1 WO2019175460 A1 WO 2019175460A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hand
- skeleton
- simulated
- simulation
- connection
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/016—Input arrangements with force or tactile feedback as computer generated output to the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/20—Scenes; Scene-specific elements in augmented reality scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
Definitions
- the present invention is comprised within the field of real-time simulations of the behavior of a human hand that interacts with virtual objects.
- Hands are our main means to interact with the world. Due to its importance, it is not surprising that the scientific community there witnessed a multitude of methods for monitoring, simulation, animation, robotics or hand-based touch systems. All these areas could benefit from a ready-to-use hand-held simulation model, which is also deficient, which can provide a robust and smooth interaction.
- the simulation of humans and human skin has achieved a development towards realism.
- the first models of human hands were based solely on rigid bodies and provided some form of force feedback to the user and a connection was made between an articulated and followed hand ([2]; [19]; [11]). Although the grip of the object is possible, due to the absence of a deformable skin, an accurate simulation of friction restrictions was not possible.
- Simulating a human hand that includes a deformable skin requires simulating all the different aspects that ultimately form the human hand. This includes the skeleton, muscles, tendons and skin. In these simulations, it is important that each different aspect is properly connected with the other parts so that realistic behavior is obtained, which makes the problem difficult to solve.
- there are vast approaches. Highly detailed approaches are for example found in [[28], where the hand is simulated with a very high level of detail, which includes for example the muscles. Other approaches perform deformation in a geometric way, but
- REPLACEMENT SHEET (RULE 26) deformations due to physical interactions are often not modeled ([12]; [13]).
- Other methods use data-based approaches to model hand deformation by learning from examples. Since these methods are not completely based on physics, it is difficult to obtain good deformation while the hand is in contact with an object ([26]; [16]; [14]).
- REPLACEMENT SHEET (RULE 26) Simulation does not restrict the movement of the user's hand, or compensates for it. Work on [15] skin shape using a global skin blend based on the underlying skeletal configuration. In this case, a physics-based simulation for the skeleton and skin is not performed. However, above all this, local deformation is computed based on the depth of penetration of the skin and on a seized object.
- REPLACEMENT SHEET (RULE 26) [7] Carlos Garre, Fernando Hernández, Antonio Gracia, and Miguel A. Otaduy. Interactive simulation of a deformable hand for haptic representation. In Proc. of the World Haptic Conference, 2011.
- REPLACEMENT SHEET (RULE 26) Transactions in Visualization and Computer Graphics, 13 (4): 732-747, July / August 2007.
- the present invention relates to a method implemented by computer with an efficient soft hand simulation model, which achieves a natural hand-based interaction that presents a smooth hand movement that adapts to the user's movement followed, reacts Robust contact with objects in a virtual environment, and allows the right handling of these objects.
- the hand simulation model integrates an articulated skeleton, a non-linear soft tissue and a friction contact, to provide the realism necessary for natural interaction.
- the robust and smooth interaction is made possible by simulating in a
- REPLACEMENT SHEET (RULE 26) Unique framework of energy minimization all mechanical exchanges between hand elements. Connection between the skeleton of the hand and the movement of the user, restrictions on the joints of the skeleton, non-linear soft skin formation, connection between the skeleton of the hands and soft skin, friction contact between the skin and virtual objects , and connection between seized objects and other virtual objects. All the elements of the hand that provide realism and natural integration are taken into account, while ensuring a minimum and limited computer cost, which is the key to a smooth and robust integration. As a result, the proposed method for hand simulation can be connected to various input tracking devices, and seamlessly integrated into game engines for rapid development in virtual reality (VR) applications.
- VR virtual reality
- a first aspect of the invention relates to a method implemented by computer to simulate the behavior of a hand that interacts with objects in a virtual environment.
- the method comprises acquiring, repeatedly, a hand configuration of a hand followed from data captured by a hand tracking device, the hand configuration that includes information to establish the position and orientation of the bones that form the skeleton followed by the hand followed; and repeatedly computing a hand configuration of a simulated hand in a hand simulation that interacts with at least one object in a virtual environment, the simulated hand comprising a non-linear deformable tissue and an articulated skeleton with joints and bones.
- the method also comprises the following stages:
- the method determines an internal energy of the simulated hand, the internal energy comprising a potential energy associated with the skeletal joints, a potential energy associated with the tissue,
- REPLACEMENT SHEET (RULE 26) and an energy function associated with the union between the tissue and the skeleton.
- the method establishes a friction contact between the simulated hand and at least one object in the hand simulation using potential energies in the normal and tangential directions between a node of the simulated hand tissue and an anchor node on the surface of the at least one object in the hand simulation.
- the step of establishing a connection between the simulated hand skeleton and the skeleton followed can comprise the following sub-stages:
- the step of computing a simulated hand hand configuration comprises modeling the joints using potential energies to hold the endpoints of the bones to form the joint together and limit the angle of the joint.
- the step of computing a simulated hand configuration comprises computing the deformation of the tissue using a finite element method, wherein the deformable tissue is described considering a potential energy having an energy density function. quadratic potential, and where the computer domain is divided into a set of tetrahedron elements.
- the step of computing a simulated hand hand configuration may comprise establishing a connection between the skeleton and the simulated hand tissue using an energy function between bones in the skeleton and nodes in the tissue, corresponding to the intersection of bones and tissues.
- the object in the virtual environment can be a rigid body or a flexible body.
- the method comprises establishing a connection between the object that interacts with the simulated hand in the hand simulation and the corresponding simulated object in the virtual environment that uses connection energies considering the difference in position and orientation between pairs of objects, and repeatedly compute an updated object in hand simulation minimizing connection energies.
- the method comprises establishing a connection between the object that interacts with the simulated hand and the hand simulation and the corresponding object simulated in the virtual environment using connection energies considering the difference in the state between pairs of objects, and repeatedly compute an updated object in hand simulation minimizing connection energies.
- the method can also comprise representing on a display device the simulated hand interacting with it at least one object in the virtual environment.
- Another aspect of the present invention relates to a system to simulate the behavior of a hand that interacts with objects in a virtual environment.
- the system comprises a data processing device, such as a processor or a computer, configured to carry out the steps of the method implemented by computer.
- the system can also comprise any of the following additional elements:
- REPLACEMENT SHEET (RULE 26) - the handheld tracking device for repeatedly acquiring the handheld hand configuration followed by a user.
- a display device for example a monitor or a head-mounted screen configured to represent the simulated hand interacting with it at least one object in the virtual environment.
- a portable handheld haptic device for example, a glove
- a portable handheld haptic device configured to apply a haptic feedback response on the hand followed by a user according to the forces computerized by the data processing device at simulated hand contact points , said forces being generated by integration with objects in the virtual environment.
- a third aspect of the present invention relates to a computer program product to simulate the behavior of a hand that interacts with objects in a virtual environment.
- the computer program product comprises a computer program code usable by computer to, when executed in a processor, perform the steps of the previously implemented computer implemented method.
- a fourth aspect of the present invention relates to a computer readable storage medium comprising instructions to cause a processor to carry out the steps of the previously defined computer implemented method.
- the method implemented by computer performs a real-time simulation of the skeleton, the skin, the contact and connection energies of a human hand as a large simulation, rather than solving each of the parts separately from the rest, therefore significantly improving simulation stability.
- a stable simulation of all facets of the virtual hand is of paramount importance.
- the virtual connection procedure presented in [7] is followed. Instead of modeling joints using strong speed restrictions, energy based on weak restrictions is used, which increases importantly the response and stability of the solver. Similarly, contact and friction are modeled through penalty energies, both for
- REPLACEMENT SHEET (RULE 26) contact and friction.
- Kinetic friction is computed by maintaining friction anchors.
- tension and deformation are limited using a penalty energy density such that the behavior of non-linear materials can be approximated. Since no strong restrictions are used, the convergence of the method remains predictable, which is required for real-time applications.
- hand simulation can be connected with other simulations and / or existing virtual environments.
- the present hand model can be used to interact with objects in virtual worlds through a mechanical exchange of forces and energies between virtual objects and the hand model.
- This approach differs significantly from existing solutions in which interactions with objects and / or with the environment are possible through some gestures.
- the user makes a hand gesture (such as closing the hand) and some tasks are performed with nearby objects. For example, grabbing an object by fixing the object in the hand by making the "closed hand" gesture.
- a virtual hand follows the movement of the user's hand obtained through some hand tracking method, which captures the position and configuration of the user's hand. If the user closes his hand and some virtual object is between the fingers of the virtual hand, the virtual hand and the virtual object will get in touch.
- the user is now able to interact with the virtual object when he does it with a real object.
- By opening or closing the hand additionally, the user can change the amount of force applied to the virtual object. This also changes the friction forces between the virtual object and the finger.
- the virtual hand is modeled through conservative energy models for each different aspect of the virtual hand.
- the virtual hand is an articulated hand model that includes the bones and joints in the hand.
- the skin of the virtual hand is modeled using a soft non-linear fabric that is wrapped around the articulated skeleton.
- penalty energies which include friction energies.
- REPLACEMENT SHEET (RULE 26) conservative as a function of position and angular deviation between the skeleton in the hand and the configuration followed.
- the connection to the virtual environment is made similarly using conservative energies as a function of the deviation between two examples of the same object seized.
- An example is simulated in the virtual world, the other is simulated in contact with the virtual hand. This allows stable interaction with a simulated object in the virtual environment, and a reuse of existing ready-to-use physical engines used within virtual environments. All parts of the simulation are simulated using an organization based on an implicit Euler method, which seeks an optimal solution that conserves total energy in the system.
- Figures 1A and 1 B represent two examples of a real-time hand-based interaction with an object, in accordance with the computer-implemented method of the present invention.
- Figures 2A and 2B schematically represent, in two different embodiments, the connection of all parts in the simulation.
- Figures 3A and 3B illustrate an overview of the complete model and a hand simulation when interacting with one or two rigid bodies, respectively.
- Figure 4A represents the configuration in the first impact between the skin of the virtual hand and an object.
- Figure 4B shows an update of the anchor node when a kinetic friction is applied.
- Figure 5 shows a schematic overview of hand simulation as a library for integration with third-party tools.
- Figure 6 represents an embodiment of a hardware configuration used to run a handheld simulation.
- Figures 1A and 1 B represent a natural and intuitive real-time hand-based interaction. Accurate right hand manipulation is possible thanks to the efficient and robust simulation of a soft hand model.
- the method implemented by computer performs a simulation of a deformable hand 102 in a virtual environment 220, which is controlled by a hand tracking solution, and is capable of interacting with virtual objects 222 that are simulated in the virtual environment 220 with a motor third party physicist
- Figure 2A represents a schematic overview of all the individual parts identified in the simulation and shows which parts will interact with each other through energy transfer.
- the black examples are synchronized copies of the corresponding entities (objects, skeleton) and act as static (non-mobile) entities in the simulation. When your blank equivalents are updated, the synchronized copy is also updated.
- the simulation included in the hand tracking, the tracking loop 200 is affected by the skeleton 202 followed by the hand followed (obtained from the data captured by the follower input) and a synchronized copy of the skeleton 204 of the simulation 210 of hand, while the intermediate skeleton 206 (a virtual intermediate layer used to connect the computerized hand configuration in the hand simulation 210 with the hand configuration captured by the hand tracking device) is updated at a high simulation speed.
- the properties of a synchronized copy of the intermediate skeleton 212 in the hand simulation 210 are updated and will affect the skeleton 214, tissue 216 and the bodies or objects 218 that are in Contact.
- the connection to the virtual environment 220 (a third party simulation performed by a physical engine) is carried out in a similar way, except that speeds and accelerations (forces and moments) are also transferred. This is due to a possible lower simulation speed.
- the tracking loop 200 is preferably used when the tracking process to obtain the skeleton 202 followed is executed at a higher speed than the computation performed in the hand simulation 210 to have an updated simulated hand 310.
- FIG. 2B depicted in Figure 2B,
- FIG. 3A illustrates an image of the simulated hand 310 and all the subsystems involved when interacting with various objects 222, and in particular with two rigid bodies: skeleton 202 followed by hand 300 followed by the user, skeleton 214 and tissue 216 of simulated hand 310, objects 218 touched in hand simulation 210 and objects 222 touched in virtual environment 220.
- Figure 3B shows another embodiment with the simulated hand 310 interacting with only one object 222, also a rigid body.
- the skeleton 202 followed by the hand 300 followed represents the configuration followed by the hardware and the hand follower software, while the skeleton 214 of the simulated hand 310 represents the articulated skeleton with joints 312 and bones 314.
- the joints 312 are modeled using energies U J t that hold the endpoints of the bones 314 together and limit the angle of the joint.
- Both skeletons (202, 214) are connected using U crb energies, between each pair of bones through an intermediate layer (intermediate skeleton 206).
- tissue 216 (represented as a mesh) is connected to skeleton 214 articulated through energies U st .
- the energy U t represents the energy within tissue 216 due to deformations and contact.
- the simulated hand 310 is in contact with other objects 218. Between the fabric 216 and the objects 218 in contact, the friction energy U f and the contact energy U n are used to connect the fabric 216 with the objects 218 touched. The objects 218 in contact with the handheld simulation 210 are connected with the objects 222 in the virtual environment 220 through the energy U crb between both objects.
- Lagrangian L (q, q, t) of the system is defined as
- Equation (12) There are many alternative approaches to minimize the equation (12).
- REPLACEMENT SHEET (RULE 26) It is limited when the virtual hand is obstructed by an object. Another problem originates from poor monitoring results. If the data obtained from the handheld follower is too loud or discontinuous, excessively large forces can be computed in the handheld model due to large reported speeds. To solve this, a virtual connection scheme is applied between simulated hand 310 and hand 300 followed. This virtual connection absorbs the excessive forces introduced by hand tracking. In addition, this connection absorbs the forces that could have been generated by the user's movement. For example, when the user grabs a virtual object using the virtual hand, or when the movement of the virtual hand is obstructed by other virtual (static) objects.
- a layered configuration is now followed.
- the movement of the user's hand is typically tracked at a different simulation speed than the virtual hand simulation.
- a separate simulation (tracking loop 200) is preferably performed at a higher simulation rate.
- the tracking loop 200 samples the follower data (hand 300 followed) and from the skeleton 214 fully articulated in the virtual hand through a synchronized copy 204.
- the "objective" intermediate skeleton 206 (an intermediate skeleton layer) is updated over time, also taking into account the connection between the entire skeleton and the intermediate skeleton. Therefore, this virtual connection system can be considered as three layers of skeleton.
- the hand follower establishes the position and orientations of the bones in the first layer, and can be connected to the second layer directly using the following energy function:
- REPLACEMENT SHEET (RULE 26) with x the positions of the bone at intermediate and the configuration of the bone b followed and I ab its difference in its axis angle orientations.
- the followed bone configuration is provided, only these energies are minimized for the intermediate bones, while the values of the followed consecutive configurations are maintained during the simulation stage. When this energy function is minimized, the configuration of the intermediate bones will follow the movement of the configuration followed.
- the connection between the intermediate layer (intermediate skeleton 206) and the complete articulated skeleton 214 is slightly different. Since the tracking and connection are performed using a much higher refresh rate than the full-hand simulation, each simulation simulates its own skeleton example.
- equation (18) is used to connect these examples to the intermediate layer.
- a synchronized copy 204 of the complete skeleton 214 in the hand simulation 210 is connected to the intermediate skeleton 206 using equation (18) for which the positions and orientations of the skeleton in the hand configuration are kept constant. This allows changing the positions and orientations in the intermediate skeleton 206.
- a similar connection is made between a synchronized copy 212 of the intermediate skeleton 206 and the complete skeleton 214 in the hand model.
- the positions and orientations of the intermediate skeleton remain constant, although the complete skeleton 214 (and therefore the complete hand) can be updated. Minimizing these energies allows updates of the intermediate skeleton 206 given the connection energies of the configuration followed and the handheld simulation 210. In addition, changes in energy between the intermediate layer and the skeleton of the hand result in updates of the virtual hand configuration in an asynchronous manner. Since the minimization of the energies between the skeleton 202 followed, the intermediate skeleton 206 and the synchronized copy 204 of the skeleton 214 of the hand operates at a higher refresh rate, stability is guaranteed. In addition, computed energies and corresponding forces can be used to control external haptic devices.
- the virtual hand model consists of different combined simulations for which different energy functions can be defined and added to the system described in equation (16).
- the hand model consists of an articulated body skeleton 214, a deformable skin (fabric 216), and a connection between the skin skeleton, and the contact between other objects 218 and the virtual hand.
- the bones 314 and the joints 312 form a skeleton 214 that is in a rigid articulated body simulation that forms the third layer in the virtual connection.
- the kinetic energy T for rigid bodies is computerized by with v c the velocity of the center of mass, w the angular velocity e / the moment of inertia.
- the joints 312 between the rigid bodies define a potential energy U j between the two rigid bodies. For a spherical joint this potential energy U j can be described as follows: which defines the potential between two endpoints of the bones 314 to form the joint 212.
- the positions x ca and x cb describe the positions of the centers of mass of both bones a and b.
- the vectors r a and r b are the vectors from the centers of mass of the endpoints of the bones 314 that are used in the joint 312. Depending on the type of joint, additional energies can be defined to restrict the relative movement between the bodies in A particular axis.
- a simulation of a finite element method is used to simulate skin deformation (tissue 216). Since the deformation of the skin is not linear, a tension limitation method / material is used to mimic the behavior of human skin. In the first stage of the deformation, the stiffness is relatively low, small forces result in a large deformation. As the deformation increases, the stiffness of the skin increases, resulting in minor deformation and increased tension in the skin. Because of this, the skin is capable of generating greater forces on the objects.
- REPLACEMENT SHEET (RULE 26)
- the potential energy U t for a deformable body can be described by
- W the potential energy density at a point within the material and F the deformation gradient.
- W the potential energy density at a point within the material and F the deformation gradient.
- W quadratic potential energy density
- a linear elasticity model can be easily obtained.
- W can be approximated by each element.
- W max the energy threshold and k c an additional penalty energy density.
- the energy density W q can be originated from a linear consecutive elasticity model.
- the following finite element method can be used. Given a particular energy density function W, the first voltage tensioner P (F) of Piolakirchhoff can be obtained through the derivative of the energy density function wrt of the gradient F of the information, that is,
- Both D s and D m contain 4 column vectors with the current and initial coordinates of all the vertices of the elements, where component 4 a contains a one ([30]).
- REPLACEMENT SHEET (RULE 26) tension for each surface element of each tetrahedron element.
- the force generated by the tension depends on the areas of these surface elements. By cross-sectional area, a corresponding force that contributes to each of the three nodes of the surface element can be computed. Therefore, the total force in a particular tetrahedron mode is the sum of the adjacent cross-section tensions, divided by three, that is,
- the gradient F of deformation contains the rotation, deformation and possible reflections (reversals) of each element, where the function W of energy density should be invariable to the rotation for sotropic materials.
- a Polar Decomposition or a Singular Value Decomposition can be used.
- a popular approach is the co-rotating MEF method (18).
- the co-rotating MEF computes the tension in a frame without turning by rotating in the movement in the frame without turning. Given the displacement without turning the tension and
- REPLACEMENT SHEET (RULE 26) the forces are computed in the frame without turning. Finally, the result is turned back to the rotated frame of the displacement.
- the co-rotating method can be summarized by: With K the stiffness matrix of the element and R e the rotation of the element obtained through a polar decomposition. Since q 0 is already in the frame without rotation, no correction is applied for q 0. In the case of a linear elasticity, K remains constant throughout the entire simulation.
- the MEF simulation is connected to the underlying articulated body simulation defining an energy function between
- REPLACEMENT SHEET (RULE 26) the tissue 216 and the rigid bodies in the skeleton 214.
- the contact between the virtual hand and another object is modeled using a penalty energy between nodes in the virtual hand and an anchor node that is arranged on the surface of the body.
- a vertex x n penetrates the surface of an object 218, its distance / (x) indicated with reference to the body surface becomes negative.
- an anchor node x a is initialized and the normal contact n is sampled, as shown in Figure 4A.
- a potential energy can be defined.
- U n potential in the normal direction becomes:
- n the normal contact
- k c the contact stiffness
- w a weighting value
- a bi-normal and tangential energy can be defined by replacing the normal n with the tangent vector x or the bi-normal vector t 2 .
- the vectors t x and t 2 are both perpendicular to each other.
- t x points to the anchor node n a in the direction of x n .
- FIG. 4A represents the contact model used for the interaction between the tissues 216 and the object 218.
- a vertex x n of the skin penetrates the object (distance / (x) ⁇ 0) at x n '. Then, the insertion of the trajectory of the vertex x n with the surface 402 of the object 218 is computed.
- the energy model just described minimizes the distance between anchor x a and the node in contact when applying a static friction, that is, when both surfaces do not slide together.
- Coulomb's friction model is approximate. When a force f t in the tangential direction is larger than the force f n in the normal direction multiplied by the coefficient m of kinetic friction should be d U
- the tangential force is sustained by the normal force multiplied by m so that the kinetic friction is applied, that is, the surfaces are allowed to slide together, as represented in Figure 4B. If a kinetic friction is applied, the anchor x a is allowed to slide over the surface 402. Given the normal force, the anchor x a is moved towards x n such as the corresponding friction force relative to the Coulomb friction model. To sustain the energy and force in the tangential direction, first the magnitude of the friction force is held in accordance with the Coulomb model for friction.
- the anchor point should move on the surface 402 of the object 218 in the direction of the sliding speed.
- the displacement should be chosen in such a way that the magnitude of the friction force in the next stage of time approximately satisfies Coulomb's law, that is
- the energy U f tangential potential in case of kinetic friction then becomes:
- REPLACEMENT SHEET (RULE 26) By updating the anchor position, a portion of the potential energy is removed from the system. This energy is converted into thermal energy, which is not modeled in this simulation.
- Objects in the virtual world can interact with each other and with the virtual environment. These objects are usually simulated using a physical engine (virtual environment 220) that takes care of these interactions and applies the laws of motion to these objects.
- a connection to the virtual world must be applied, similar to the virtual connection used between the hand follower and the simulated hand.
- each object exists in both simulations, one in the virtual environment 220 and one that is simulated together with the virtual hand in the hand simulation 210. If the object is rigid, the coupling energy is U ' crb , described in equation (18), but takes the object of both simulators (object a of hand simulation 210 and object b of virtual environment 220).
- connection energy is proportional to the Euclidean norm of the difference between the states of the objects a and or.
- the connection energy minimizes the difference between both cases of the objects (218, 222). This energy term is applied to each object in both simulators. When these energies are minimized, a pair of status representations remains constant since they are not computed by the same simulator (using copies 224 and 226 synchronized in Figure 2). In order to deliver a stable simulation of the complete hand model, individual aspects of the simulation are solved together using a large system of equations.
- REPLACEMENT SHEET (RULE 26) They need to be computed for each defined energy. Here it contains the positions of the skin nodes and the state of the bodies. In addition, those derived from kinetic energies must be computed and stored in the same system, see equation (4). This large system is solved for generalized rates of unknown that are applied later, see equation (17). Said large system allows a staggered implicit time scheme to be carried out correctly, which increases the accuracy and stability of the simulation. Figure 2 shows how the terms of individual energy are connected.
- the present hand simulation method has been encapsulated in a library that simplifies integration with other modules.
- the library constitutes an asset of a game engine, and the soft-hand model can be added to a virtual environment through a simple drag-and-drop operation.
- Figure 5 shows a brief overview of the simulation library 500 with different modules.
- the simulation library 500 is a modular library for handheld simulations that allows easy integration with third-party tools 510 (hardware and / or software) and in particular with different types of tracking devices 512.
- the library 500 can be used to control various types of 512 haptic devices and 516 touch devices through specific controllers or modules.
- Library 500 also provides an interface for third-party simulation environments 518, such as Unity or Unreal Engine, to share information regarding the state of physical objects that are allowed to interact with the present hand simulation.
- these virtual 518 environments are used to visualize the state of the simulated hand. Due to the modular configuration, custom controllers can be developed for certain hardware, also allowing easy integration with existing software.
- the main module of library 500 is invoked by physical / third-party game engines. It allows the user to load specific drivers for 514 and 516 touch devices and for various types of 512 tracking devices.
- REPLACEMENT SHEET (RULE 26) movement.
- the user is also able to create modules to customize devices using an SDK (software development kit).
- the main module contains the simulation of the hand and is performed only by the main module. It does not use the host physics engine.
- the host objects / classes are intended to be used by the user to interact with the library. These host objects are responsible for invoking the library, providing it with additional information regarding the simulated environment on the host physical engine.
- the host object is also responsible for displaying the status of the simulation performed in the simulation library and providing the virtual environment with additional responses that interact with the objects defined in the host physical engine.
- Tracking modules are used to generalize various hand / movement tracking methods, for example, Kinect, LeapMotion, OptiTrack or other methods. Each module is responsible for acquiring the positions and orientations of the fingers and the position of the hand, transforming the data into the appropriate format and feeding the simulation of the hand with appropriate movements.
- Haptic representation modules are used to control 514 haptic devices.
- API 520 provides the controller with information on the position followed and the orientation of the bones, and the current position and presentation of the simulated bones.
- all forces and pairs computed are provided by the connection between the bones followed and simulated. Given this information and some device-specific information, the controller can compute response forces or actuator positions in order to provide the end user with realistic haptic feedback through the device.
- the touch representation modules provide an interface to the touch representation devices 516.
- Touch devices provide the end user with tactile feedback of the objects touched in the virtual world.
- tactile information can be provided by the collision events generated.
- the module can compute a response or movement force for the device.
- REPLACEMENT SHEET (RULE 26)
- Library 500 distributes the message to all loaded modules so that they can be configured and / or controlled directly. For example, for specific types of haptic devices, a few engines must first be enabled in order to be functional.
- Figure 6 shows an embodiment of the hardware configuration used to run a simulation and interact with virtual objects in a virtual environment shown through a head-mounted display 610 (HMD)
- the simulation takes as input a configuration of hand, a hand 300 followed, obtained by a hand follower or a hand tracking device 620, such as a Leap Motion controller, through some hand tracking method.
- the hand-tracking device 620 may be connected to the head-mounted screen 610 in order to increase the user's workspace 630.
- a wide variety of cameras can be used to track the movement of the user's hand.
- stereo depth cameras or standard depth cameras can be used.
- the hand tracking method detects the position and shape of the user's hand and the present hand simulation method acquires the hand configuration by obtaining this information from the hand tracking device 620 (using the 512 follower device controller Figure 5).
- the hand tracking device 620 using the 512 follower device controller Figure 5.
- the user's hand configuration is captured using a stereo depth camera and reconstructing the bone configuration of the captured images.
- the complete simulation performed on a data processing device, such as a 650 computer or a laptop that uses a multi-core CPU.
- the visualization of the virtual environment is done using a game engine ready to use and the GPU to visualize the hand simulation in the HMD 610 and perform the simulation of the objects in the game engine.
- Hand simulation can be implemented in a connector created for a game engine (for example,
- Each game engine is able to interact with hand simulation through the interface provided by the connector.
- the game engine can provide the hand simulation with additional information regarding the objects that are created by the game engine.
- the display of the handheld simulation can be performed on a display device, such as a monitor, a television or a 610 device mounted on the head.
- Fire engines can support the use of a head-mounted display to display the virtual world in an immersive way to the user.
- the head mounted display 610 may be equipped with additional sensors to obtain the orientation, acceleration and position of the head mounted display.
- a head tracking device 660 can be used to capture the position of the head-mounted 610 screen (such as headphones with Oculus Rift or HTC Vine headphones).
- the hand tracking device 620 may be connected to the head mounted display 610 and the information of these sensors transferred to the handheld simulation.
- the sensors of the handheld tracking device 620 can only report positions and orientations with respect to the camera. Considering also the data of the sensors of the head-mounted screen, the absolute position of the hand 300 followed and its configuration can be reconstructed, significantly increasing the user's workspace.
- the 620 Leap Motion controller camera is located in front of the user on a flat surface, but the camera's position and orientation can be anywhere in the virtual and real world.
- the library can compute feedback forces for different types of haptic and tactile devices, such as a 670 haptic device handheld (for example, a glove).
- a hybrid haptic and tracking device controller was created to compute a response force for the exoskeleton used, and uses the sensors in the exoskeleton to acquire the finger configuration.
- touch device drivers are
- REPLACEMENT SHEET (RULE 26) implemented to control the devices described in [24] using the methods described in this document.
- the described hand simulation and the connection method allow the user to use their hands to interact with the virtual world in a physically correct way.
- the forces that are computed when the virtual hand is in contact with the virtual objects or the forces computed in the virtual connection can be used to control external devices for haptic and tactile feedback. Thanks to the connection method and the way in which the virtual hand simulation is configured, a very robust interaction mode is obtained that prevents the user from interacting with the virtual world in a non-physical way.
- virtual skin behavior mitates the behavior of real tissue.
- the user carries an HMD in which the hand follower is fixed.
- the head keeps track of the position of the HMD and the hand follower.
- the sensor, the HMD and the hand follower are connected to an end user's computer (CPU + GPU).
- the HMD shows the virtual environment to the user and the virtual world screen responds to the user's movement.
- the hand follower detects the user's hand, the hand position with respect to the hand follower is obtained.
- the simulated hand is shown (to the user) with respect to the HMD.
- the user of a virtual object through HMD the user is able to move his hand closer to the virtual object.
- the virtual hand is close enough to the virtual object, the user can interact with the virtual object using his own hand.
- the hand tracker can be configured in a fixed position close to the user (for example, at a table in front of the user).
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)
- Multimedia (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Optics & Photonics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Health & Medical Sciences (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Un método implementado por ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual, que comprende adquirir un esqueleto (202) de una mano (300) usando un dispositivo (620) de seguimiento de mano; computando una mano (310) simulada con objetos (222) en un entorno virtual (220); establecer una conexión entre el esqueleto (214) de una mano (310) simulada y el esqueleto (202) seguido utilizando energías (Ucrb) de conexión; establecer una energía interna de la mano (310) simulada que tiene en cuenta las restricciones de articulación del esqueleto, la conexión esqueleto-tejido, y la deformación de tejido suave no lineal; estableciendo un contacto de rozamiento entre la mano (310) simulada y los objetos virtuales utilizando una energía de penalización considerando la interpenetración relativa en puntos de contacto y una energía de rozamiento considerando la desviación entre cada punto de contacto y su punto de anclaje deslizante correspondiente; computar un esqueleto (214) actualizado y un tejido (216) de la mano (310) simulada minimizando la energía total involucrada.
Description
DESCRIPCION
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 Campo de la invención
La presente invención está comprendida dentro del campo de simulaciones en tiempo real del comportamiento de una mano humana que interactúa con objetos virtuales.
Antecedentes de la invención
Las manos son nuestros principales medios para interactuar con el mundo. Debido a su importancia, no sorprende que la comunidad científica allá sido testigo de multitud de métodos para el seguimiento, la simulación, la animación, la robótica o sistemas táctiles basados en la mano. Todas estas áreas podrían beneficiarse de un modelo de simulación de mano listo para utilizarse, preciso además deficiente, que puede proporcionar una interacción robusta y suave. A lo largo de los años la simulación de humanos y de la piel humana ha conseguido un desarrollo hacia el realismo. Los primeros modelos de manos humanas se basaron únicamente en cuerpos rígidos y proporcionaron alguna forma de retroalimentación de fuerza al usuario y se realizó una conexión entre una mano articulada y seguida ([2]; [19]; [11 ]). Aunque el agarre del objeto es posible, debido a la ausencia de una piel deformable, no fue posible una simulación precisa de las restricciones de rozamiento.
Simulando una mano humana que incluye una piel deformable, requiere simular todos los diferentes aspectos que finalmente forman la mano humana. Esto incluye el esqueleto, los músculos, los tendones y la piel. En esas simulaciones, es importante que cada aspecto diferente esté conectado de forma adecuada con las otras partes de manera que se obtenga un comportamiento realista, lo cual hace el problema difícil de solucionar. Dependiendo del nivel de detalle requerido, existen vahos enfoques. Enfoques altamente detallados son por ejemplo encontrados en [[28], en donde la mano es simulada con un nivel de detalle muy alto, que incluye por ejemplo los músculos. Otros enfoques realizan la deformación de una manera geométrica, pero
i
HOJA DE REEMPLAZO (REGLA 26)
las deformaciones debidas a las interacciones físicas no son a menudo modeladas ([12]; [13]). Otros métodos utilizan enfoques basados en datos para modelar la deformación de la mano aprendiendo de ejemplos. Dado que estos métodos no están completamente basados en la física, es difícil obtener una buena deformación mientras la mano está en contacto con un objeto ([26]; [16]; [14]).
Utilizando simulaciones de mano detalladas con piel deformable en aplicaciones interactivas y en tiempo real requiere realizar un equilibrio entre realismo y costes informáticos. Para reducir la complejidad computacional de simular manos deformables, a menudo sólo los dedos son simulados. Esto reduce enormemente la complejidad del modelo utilizado ([1 ]; [6]; [3]; [31 ]). Las simulaciones realistas de la mano incorporan una simulación del esqueleto rígido con una piel deformable conectada a la estructura de hueso. Métodos que conectan una porción de la piel deformable al esqueleto son por ejemplo ([10]; [27]; [5]). Enfoques más detallados también simulan partes de la deformación de la piel, como en [22] Una etapa adicional incorpora la simulación de la piel completa que está conectada a los huesos en una conexión bidireccional. Esto significa que las fuerzas en la piel se propagarán a los huesos, y que los huesos pueden generar, como resultado, fuerzas en la piel. Dicho enfoque aumenta enormemente el realismo de las manos deformables. El enfoque de [7] realiza la conexión entre los huesos y la piel en dos etapas. Primero la configuración aproximada del esqueleto es computerizada lo cual también toma en cuenta restricciones de las articulaciones. Después la configuración de la piel es calculada dada la configuración de los huesos, y se permite que los huesos actualicen la configuración del esqueleto. El contacto también es modelado utilizando restricciones fuertes. Además, los autores introducen una versión modificada de una conexión [4] virtual. Pérez y otros ([20]; [25]) investiga la simulación de piel no lineal en base a restricciones limitadas en la tensión y presenta un método eficiente para resolver este tipo de problemas restringidos [21 ]
Otro trabajo relacionados se pueden encontrar en [8], en el cual se simula un modelo de piel detallado del alta resolución, que está formado por la configuración del esqueleto subyacente. En este trabajo, no hay una simulación adicional del esqueleto, ni una conexión virtual entre la configuración de mano seguida y la simulación de piel. Esto resulta en tensiones demasiado grandes y deformaciones en la piel dado que la
2
HOJA DE REEMPLAZO (REGLA 26)
simulación no restringe el movimiento de la mano del usuario, o compensa esta misma. El trabajo en [15] de forma la piel utilizando una mezcla global de la piel basándose en la configuración del esqueleto subyacente. En este caso no se realiza una simulación basada en la física para el esqueleto y la piel. Sin embargo, por encima de todo esto, la deformación local es computada basándose en la profundidad de penetración de la piel y en un objeto agarrado.
Es por lo tanto necesario encontrar un método implementado por ordenador que realice una simulación en tiempo real de una mano humana que mejore la respuesta, el realismo y la estabilidad de la simulación, y al mismo tiempo que requiera un coste informático mínimo.
Referencias
[1 ] F. Barbagli, A. Frisoli, K. Salisbury, y M. Bergamasco. Simulación de dedos humanos: un modelo y algoritmo representativo de dedos suaves. En FIAPTICS Ό4. Procedimientos. 12° Simposio internacional en 2004 [2] C. W. Borst y A. P. Indugula. Agarre virtual realista. En Proc. de IEEE, Conferencia de Realidad Virtual, 2005.
[3] M. Ciocarlie, C. Lackner, y P. Alien. Modelo de dedo suave con geometría de contacto adaptativo para tareas de agarre y manipulación. En Conferencia Mundial de Háptica, 2007. [4] J. E. Colgate, M. C. Stanley, y J. M. Brown. Problemas en la visualización háptica de uso de herramientas. Proc. de IEEE/RSJ, Conferencia Internacional de Robots y Sistemas Inteligentes, páginas pp. 140-145, 1995.
[5] Christian Duriez, Fladrien Courtecuisse, Juan-Pablo de la Plata Alcalde, y Pierre- Jean Bensoussan. Contacto cutáneo. Conferencia Eurographics (documento corto), 2008.
[6] A. Frisoli, F. Barbagli, E. Ruffaldi, K. Salisbury, y M. Bergamasco. Una curva limite basada en algoritmo de objeto todopoderoso de dedo suave. En Interfaces Flápticas para Entorno Virtual y Sistemas de Teleoperador, 14° Simposio en 2006.
3
HOJA DE REEMPLAZO (REGLA 26)
[7] Carlos Garre, Fernando Hernández, Antonio Gracia, y Miguel A. Otaduy. Simulación interactiva de una mano deformable para una representación háptica. En Proc. de la Conferencia Mundial de Háptica, 2011.
[8] Koichi Hirota y Kazuyoshi Tagaw. Interacción con un objeto virtual utilizando una mano deformable. 2016 IEEE, Realidad virtual (VR), 00:49-56, 2016.
[9] G. Irving, J. Teran, y R. Fedkiw. Elementos finitos invertibles para simulación robusta de gran deformación. Proc. de ACM SIGGRAPH/ Simposio Eurographics en animación por ordenador, páginas 131 -140, 2004.
[10] J. Jacobs y B. Froehlich. Un modelo de mano suave para una manipulación basada físicamente de objetos virtuales. En 2011 Conferencia de Realidad Virtual
(VR) IEEE, páginas 11 -18, marzo de 2011.
[11 ] J. Jacobs, M. Stengel, y B. Froehlich. Un método de objeto todopoderoso generalizado para interacciones basadas en dedo plausibles en entornos virtuales. En 2012 IEEE, Simposio en Interfaces de Usuario en 3D (3DUI), páginas 43-51 , marzo de 2012.
[12] Paul G. Kry, Doug L. James, y Dinesh K. Pai. Eigenskin. Gran deformación en tiempo real de caracterización de la piel en hardware. En ACM SIGGRAPH/ Simposio Eurographics en animación por ordenador, páginas 153-160, julio de 2002.
[13] Tsuneya Kurihara y Natsuki Miyata. Modelización de manos humanas deformables de imágenes médicas. En 2004, ACM SIGGRAPH/Simposio
Eurographics en Animación por Ordenador, páginas 355-363, julio de 2004.
[14] Paul G. Kry y Dinesh K. Pai. Captura de interacción y síntesis. ACM transacciones en gráficos 25(3): 872-880, julio de 2006.
[15] Jun-Sik Kim y Jung-Min Park. Interacción de mano basada en la física con objetos virtuales. En IEEE, Conferencia Internacional de Robótica y Automatización, ICRA
2015, Seattle, WA, USA, 26-30 Mayo, 2015, páginas 3814-3819, 2015.
[16] Ying L¡, Jiaxin L. Fu, y Nancy S. Pollard. Síntesis de agarre basada en datos utilizando una forma coincidente y eliminación de archivos basada en tareas. IEEE,
4
HOJA DE REEMPLAZO (REGLA 26)
Transacciones en Visualización y Gráficos de Ordenador, 13(4):732-747, julio/agosto 2007.
[17] D. Lobo, M. Sara^, M. Verschoor, M. Solazzi, A. Frisoli, y M. A. Otaduy. Representación háptica basada en proxi para dispositivos hápticos infrautilizados. En 2017 IEEE, Conferencia Mundial de Háptica (WHC) IEEE, páginas 48-53, junio de
2017.
[18] Matthias Müller y M. Gross. Materiales virtuales interactivos. Proc. de Interfaz Gráfica, 2004.
[19] R. Ott, F. Vexo, y D. Thalmann. Manipulación háptica a dos manos para aplicaciones de DAO y RV. Diseño Asistido por Ordenador y Aplicaciones 7(1 ), 2010.
[20] Alvaro G. Perez, Gabriel Cirio, Fernando Hernández, Carlos Garre, y Miguel A Otaduy. Limitación de tensión para simulación de contacto de dedos suave. En Proc. de IEEE, Conferencia Mundial de Háptica, 2013.
[21 ] Alvaro G. Perez, Gabriel Cirio, Daniel Lobo, Francesco Chinello, Domenico Prattichizzo, y Miguel A. Otaduy. Simulación de la piel no lineal eficiente para representación táctil de dedos múltiples. En simposio de procedimientos de Háptica. IEEE, 2016.
[22] M. Pouliquen, Chhstian Duriez, C. Andriot, A Bernard, L. Chodorge, y Florian Gosselin. Simulación de agarre de pellizco de dedo por elementos finitos en tiempo real. En Conferencia Eurohaptics, 2005 y Simposio en Interfaces Hápticas para Entorno Virtual y Sistemas de Teleoperador, 2005. World Haptics 2005. Primera reunión, páginas 323-328, marzo de 2005.
[23] Theodore Papadopoulo y Manolis I. A. Lourakis. Estimación de la Jacobiana de la descomposición de valor singular: teoría y aplicaciones. En Conferencia Europea en Visión por Ordenador, 2000.
[24] A. G. Perez, D. Lobo, F. Chinello, G. Cirio, M. Malvezzi, J. S. Martín, D. Prattichizzo, y M. A. Otaduy. Representación táctil portátil basada en optimización. IEEE, Transiciones en Háptica, 10(2):254-264, abril de 2017.
5
HOJA DE REEMPLAZO (REGLA 26)
[25] Jesús Perez, Alvaro G. Perez, y Miguel A. Otaduy. Simulación de materiales hiper- elásticos utilizando restricciones de energía. En Proc. de CEIG, 2013.
[26] Nancy S. Pollard y Víctor B. Zordan. Control de agarre basado físicamente de un ejemplo. En 2005, ACM SIGGRAPH/Simposio Eurographics de Animación por Ordenador, páginas 311 -318, julio de 2005.
[27] Alee R. Rivers y Doug L. James. FastLSM: coincidencia de forma de celosía rápida para deformación robusta en tiempo real. ACM Transacciones en Gráficos (procedimientos de SIGGRAPH 2007), 2007.
[28] Shinjiro Sueda, Andrew Kaufman, y Dinesh K. Pai. Simulación de músculo- tendones para animación de mano. ACM Trans. Graph., 27(3), agosto de 2008.
[29] F. Sin, Y. Zhu, Y. L¡, D. Schroeder, y J. Barbic. Fliper-realidad isotópica invertible utilizando gradientes SVD. En ACM SIGGRAPH/Simposio Eurographics en Animación por Ordenador (posters), 2011.
[30] J. Teran, S. Blemker, V. Ng Thow Hing, y R. Fedkiw. Métodos de volumen finito para la simulación de un músculo esquelético. En SIG-GRAPH/ Simposio
Eurographics en Animación por Ordenador, páginas 68-74, 2003.
[31 ] C.B. Zilles y J.K. Salisbury. Un método de objeto todopoderoso basado en restricción para visualización háptica. En Robots y Sistemas Inteligentes, Conferencia Internacional, IEEE/RSJ en, volumen 3, página 3146. Los Alamitos, CA, USA, 1995. Sociedad Informática IEEE.
Descripción de la invención
La presente invención se refiere a un método implementado por ordenador con un modelo de simulación de mano suave eficiente, que logra una interacción basada en mano natural que presenta un movimiento de la mano de forma suave que se adapta al movimiento del usuario seguido, reacciona de forma robusta contacto con los objetos en un entorno virtual, y permite la manipulación diestra de estos objetos. El modelo de simulación de mano integra un esqueleto articulado, un tejido blando no lineal y un contacto de rozamiento, para proporcionar el realismo necesario para la interacción natural. La interacción robusta y suave se hace posible simulando en un
6
HOJA DE REEMPLAZO (REGLA 26)
marco de trabajo único de energía de minimización todos los intercambios mecánicos entre elementos de la mano. Conexión entre el esqueleto de la mano y el movimiento del usuario, restricciones en las articulaciones del esqueleto, de formación de la piel suave no lineal, conexión entre el esqueleto de las manos y la piel suave, contacto de rozamiento entre la piel y objetos virtuales, y conexión entre los objetos agarrados y otros objetos virtuales. Todos los elementos de la mano que proporcionan realismo y una integración natural son tomados en cuenta, a la vez que se asegura un coste informático mínimo y limitado, que es la llave para una integración suave y robusta. Como resultado, el método propuesto para la simulación de mano puede estar conectado a diversos dispositivos de seguimiento de entrada, e integrado de forma ininterrumpida en motores de juego para un desarrollo rápido en aplicaciones de realidad virtual (VR).
Un primer aspecto de la invención se refiere a un método implementado por ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual. El método comprende adquirir, de forma repetida, una configuración de mano de una mano seguida a partir de datos capturados por un dispositivo de seguimiento de mano, la configuración de mano que incluye información para establecer la posición y orientación de los huesos que forman el esqueleto seguido de la mano seguida; y computar de forma repetida una configuración de mano de una mano simulada en una simulación de mano que interactúa con al menos un objeto en un entorno virtual, la mano simulada que comprende un tejido deformable no lineal y un esqueleto articulado con articulaciones y huesos.
El método también comprende las siguientes etapas:
- Establecer una conexión entre el esqueleto de la mano simulada y el esqueleto de la mano seguida utilizando energías de conexión entre pares de huesos correspondientes considerando sus posiciones y orientaciones relativas.
- Establecer una energía interna de la mano simulada que toma en cuenta las restricciones de articulación del esqueleto, las uniones esqueleto-tejido, y la deformación de tejido suave no lineal. En particular, el método determina una energía interna de la mano simulada, la energía interna que comprende una energía potencial asociada a las articulaciones del esqueleto, una energía potencial asociada al tejido,
7
HOJA DE REEMPLAZO (REGLA 26)
y una función de energía asociada a la unión entre el tejido y el esqueleto. En particular, el método establece un contacto de rozamiento entre la mano simulada y al menos un objeto en la simulación de mano utilizando energías potenciales en las direcciones normal y tangencial entre un nodo del tejido de la mano simulada y un nodo de anclaje en la superficie de el al menos un objeto en la simulación de mano.
- Establecer un contacto de fricción entre la mano simulada y otros objetos utilizando una energía de penalización que considera la interpenetración relativa en puntos de contacto y una energía de rozamiento que considera la desviación entre cada punto de contacto y su punto de anclaje deslizante correspondiente. - Computar de forma repetida un esqueleto actualizado y tejido de la mano simulada minimizando la energía total implicada.
La etapa de establecer una conexión entre el esqueleto de la mano simulada y el esqueleto seguido puede comprender las siguientes subetapas:
Establecer una conexión entre una copia sincronizada del esqueleto de la mano simulada y el esqueleto intermedio utilizando energías de unión entre cada par de huesos correspondientes.
Establecer una conexión entre el esqueleto seguido y el esqueleto intermedio utilizando energías de conexión entre cada par de huesos correspondientes.
Establecer una conexión entre una copia sincronizada del esqueleto intermedio y el esqueleto de la mano simulada utilizando energías de conexión entre cada par de huesos correspondientes.
Computar de forma repetida un esqueleto intermedio actualizado minimizando las energías de conexión implicadas. Esto es particularmente útil cuando la computación de un esqueleto intermedio actualizado se realiza a una velocidad mayor que la computación de un esqueleto actualizado de la mano simulada.
De acuerdo con un modo de realización, la etapa de computar una configuración de mano de la mano simulada comprende modelar las articulaciones utilizando energías potenciales para mantener los puntos finales de los huesos para formar la articulación juntos y limitar el ángulo de la articulación.
8
HOJA DE REEMPLAZO (REGLA 26)
En un modo de realización, la etapa de computar una configuración en mano de la mano simulada comprende computar la deformación del tejido utilizando un método de elementos finitos, en donde el tejido deformable es descrito considerando una energía potencial que tiene una función de densidad de energía potencial cuadrática, y en donde el dominio informático es dividido en un conjunto de elementos de tetraedro.
La etapa de computar una configuración de mano de la mano simulada puede comprender establecer una conexión entre el esqueleto y el tejido de la mano simulada utilizando una función de energía entre huesos en el esqueleto y nodos en el tejido, correspondientes a la intersección de huesos y tejidos.
El objeto en el entorno virtual puede ser un cuerpo rígido o un cuerpo flexible. En el primer caso, el método comprende establecer una conexión entre el objeto que interactúa con la mano simulada en la simulación de mano y el objeto correspondiente simulado en el entorno virtual que utiliza energías de conexión considerando la diferencia en la posición y orientación entre pares de objetos, y computar de forma repetida un objeto actualizado en la simulación de mano minimizando las energías de conexión. Cuando el objeto es un cuerpo flexible, el método comprende establecer una conexión entre el objeto que interactúa con la mano simulada y la simulación de mano y el objeto correspondiente simulado en el entorno virtual utilizando energías de conexión considerando la diferencia en el estado entre pares de objetos, y computar de forma repetida un objeto actualizado en la simulación de mano minimizando las energías de conexión.
El método también puede comprender representar en un dispositivo de visualización la mano simulada interactuando con él al menos un objeto en el entorno virtual. Otro aspecto de la presente invención se refiere a un sistema para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual. El sistema comprende un dispositivo de procesamiento de datos, tal como un procesador o un ordenador, configurado para llevar a cabo las etapas del método implementado por ordenador. El sistema también puede comprender cualquiera de los siguientes elementos adicionales:
9
HOJA DE REEMPLAZO (REGLA 26)
- el dispositivo de seguimiento de mano para la adquisición de forma repetida de la configuración de mano de la mano seguida de un usuario.
- Un dispositivo de visualización (por ejemplo un monitor o una pantalla montada en la cabeza) configurado para representar la mano simulada interactuando con él al menos un objeto en el entorno virtual.
- Un dispositivo háptico portátil de mano (por ejemplo, un guante) configurado para aplicar una respuesta de retroalimentación háptica en la mano seguida de un usuario de acuerdo con las fuerzas informatizadas por el dispositivo de procesamiento de datos en puntos de contacto de la mano simulada, siendo generadas dichas fuerzas mediante la integración con objetos en el entorno virtual.
Un tercer aspecto de la presente invención se refiere a un producto de programa de ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual. El producto de programa de ordenador comprende un código de programa de ordenador utilizable por ordenador para, cuando se ejecuta en un procesador, realizar las etapas del método implementado por ordenador definido previamente.
Un cuarto aspecto de la presente invención se refiere a un medio de almacenamiento legible por ordenador que comprende instrucciones para provocar que un procesador lleve a cabo las etapas del método implementado por ordenador definido previamente. El método implementado por ordenador realiza una simulación en tiempo real del esqueleto, la piel, las energías de contacto y de conexión de una mano humana como una simulación grande, más bien que resolviendo cada una de las partes de forma separada del resto, por tanto mejorando de forma significativa la estabilidad de la simulación. Especialmente, cuando el usuario está agarrando objetos virtuales, una simulación estable de todas las facetas de la mano virtual es de una importancia primordial. Para una conexión estable y realista del movimiento del usuario y la simulación, se sigue el procedimiento de la conexión virtual presentada en [7] En lugar de modelar articulaciones utilizando restricciones fuertes en la velocidad, se utiliza energía basada en restricciones débiles, lo cual aumenta de forma importante la respuesta y la estabilidad del solucionador. De forma similar, el contacto y el rozamiento son modelados a través de energías de penalización, ambas para el
10
HOJA DE REEMPLAZO (REGLA 26)
contacto y el rozamiento. El rozamiento cinético es computado manteniendo anclajes de rozamiento. Cuando la densidad de energía en la piel excede un cierto máximo, la tensión y deformación están limitados utilizando una densidad de energía de penalización tal que el comportamiento de los materiales no lineales puede ser aproximado. Dado que no se utilizan restricciones fuertes, la convergencia del método permanece predecible, lo cual es requerido para aplicaciones en tiempo real. Además, la simulación de mano se puede conectar con otras simulaciones y/o entornos virtuales existentes.
El presente modelo de mano puede ser utilizado para interactuar con objetos en mundos virtuales a través de un intercambio mecánico de fuerzas y energías entre los objetos virtuales y el modelo de mano. Este enfoque difiere de forma significativa de las soluciones existentes en las cuales las interacciones con los objetos y/o con el entorno son posibles a través de algunos gestos. En dichas soluciones existentes, el usuario hace un gesto con la mano (como cerrar la mano) y se realizan algunas tareas con objetos próximos. Por ejemplo, agarrando un objeto fijando el objeto en la mano haciendo el gesto de“mano cerrada”. Sin embargo, en el presente método una mano virtual sigue el movimiento de la mano del usuario obtenido a través de algún método de seguimiento de mano, que captura la posición y configuración de la mano del usuario. Si el usuario cierra su mano y algún objeto virtual está entre los dedos de la mano virtual, la mano virtual y el objeto virtual se pondrán en contacto. El usuario ahora es capaz de interactuar con el objeto virtual cuando lo hace con un objeto real. Abriendo o cerrando adicionalmente la mano, el usuario puede cambiar la cantidad de fuerza aplicada al objeto virtual. Esto también cambia las fuerzas de rozamiento entre el objeto virtual y el dedo. La mano virtual es modelada a través de modelos de energía conservativos para cada aspecto diferente de la mano virtual. La mano virtual constituye un modelo de mano articulada que incluye los huesos y las articulaciones en la mano. La piel de la mano virtual es modelada utilizando un tejido suave no lineal que es envuelto alrededor del esqueleto articulado. El contacto entre la piel no lineal y otros objetos es modelado a través de energías de penalización, las cuales incluyen energías de rozamiento. Para conectar el movimiento de la mano virtual y un ejemplo seguido del esqueleto (obtenido por el método de seguimiento de la mano), se utilizan energías
11
HOJA DE REEMPLAZO (REGLA 26)
conservativas como una función de la desviación de posición y angular entre el esqueleto en la mano y la configuración seguida. La conexión con el entorno virtual es realizada de forma similar utilizando energías conservativas como una función de la desviación entre dos ejemplos del mismo objeto agarrado. Un ejemplo es simulado en el mundo virtual, el otro es simulado en contacto con la mano virtual. Esto permite una interacción estable con objeto simulada en el entorno virtual, y una reutilización de los motores físicos listos para utilizarse existentes utilizados dentro de entornos virtuales. Todas las partes de la simulación son simuladas utilizando una organización basada en un método de Euler implícito, que busca una solución óptima que conserve la energía total en el sistema.
Breve descripción de los dibujos
Una serie de dibujos que ayuda a una mejor comprensión de la invención y que están relacionados de forma expresa con un modo de realización de dicha invención, presentados como un ejemplo no limitativo de la misma, son descritos de forma breve más abajo.
Las figuras 1A y 1 B representan dos ejemplos de una interacción basada en mano en tiempo real con un objeto, de acuerdo con el método implementado por ordenador de la presente invención.
Las figuras 2A y 2B representan de forma esquemática, en dos modos de realización diferentes, la conexión de todas las partes en la simulación.
Las figuras 3A y 3B ¡lustran una visión global del modelo completo y una simulación de mano cuando interactúa con uno o dos cuerpos rígidos, respectivamente.
La figura 4A representa la configuración en el primer impacto entre la piel de la mano virtual y un objeto. La figura 4B muestra una actualización del nodo de anclaje cuando se aplica un rozamiento cinético.
La figura 5 muestra una visión global esquemática de la simulación de mano como una librería para la integración con herramientas de terceros.
La figura 6 representa un modo de realización de una configuración de hardware utilizada para ejecutar una simulación de mano.
12
HOJA DE REEMPLAZO (REGLA 26)
Descripción de los modos de realización de la presente invención
Las figuras 1A y 1 B representan una interacción basada en mano en tiempo real natural e intuitiva. La manipulación diestra precisa es posible gracias a la simulación eficiente y robusta de un modelo de mano suave. El método implementado por ordenador realiza una simulación de una mano 102 deformable en un entorno 220 virtual, que es controlada por una solución de seguimiento de mano, y es capaz de interactuar con objetos 222 virtuales que son simulados en el entorno 220 virtual con un motor físico de terceros.
La figura 2A representa una vista global esquemática de todas las partes individuales identificadas en la simulación y muestra cuáles partes van a interactuar entre sí a través de la trasferencia de energía. Los ejemplos en negro son copias sincronizadas de las entidades correspondientes (objetos, esqueleto) y actúan como entidades estáticas (no móviles) en la simulación. Cuando sus equivalentes en blanco son actualizados, también se actualiza la copia sincronizada. La simulación incluida en el seguimiento de mano, el bucle 200 de seguimiento, es afectada por el esqueleto 202 seguido de la mano seguida (obtenido de los datos capturados por la entrada del seguidor) y una copia sincronizada del esqueleto 204 de la simulación 210 de mano, mientras que el esqueleto 206 intermedio (una capa intermedia virtual utilizada para conectar la configuración de mano informatizada en la simulación 210 de mano con la configuración de mano capturada por el dispositivo de seguimiento de mano) es actualizado a una velocidad de simulación alta. Cuando una nueva etapa de simulación en la simulación 210 de mano es iniciada, las propiedades de una copia sincronizada del esqueleto 212 intermedio en la simulación 210 de mano son actualizadas y afectarán al esqueleto 214, tejido 216 y a los cuerpos u objetos 218 que están en contacto. La conexión con el entorno 220 virtual (una simulación de terceros realizada por un motor físico) se realiza de forma similar, excepto que también son transferidas las velocidades y aceleraciones (fuerzas y momentos). Esto es debido a una posible velocidad de simulación inferior.
El bucle 200 de seguimiento es preferiblemente utilizado cuando el proceso de seguimiento para obtener el esqueleto 202 seguido es ejecutado a una velocidad más alta que la computación realizada en la simulación 210 de mano para tener una mano 310 simulada actualizada. En otro modo de realización, representado en la figura 2B,
13
HOJA DE REEMPLAZO (REGLA 26)
en la que la velocidad de simulación para computar la mano 310 simulada es cercana o igual a la velocidad en la cual el esqueleto 202 seguido es obtenido, la computación del esqueleto 206 intermedio (y por lo tanto también del bucle 200 de seguimiento) no es estrictamente necesaria. La figura 3A ¡lustra una imagen de la mano 310 simulada y todos los subsistemas involucrados cuando interactúa con varios objetos 222, y en particular con dos cuerpos rígidos: el esqueleto 202 seguido de la mano 300 seguida del usuario, el esqueleto 214 y el tejido 216 de la mano 310 simulada, los objetos 218 tocados en la simulación 210 de mano y los objetos 222 tocados en el entorno 220 virtual. La figura 3B muestra otro modo de realización con la mano 310 simulada interactuando con sólo un objeto 222, también un cuerpo rígido.
El esqueleto 202 seguido de la mano 300 seguida representa la configuración seguida obtenida por el hardware y el software seguidor de mano, mientras que el esqueleto 214 de la mano 310 simulada representa el esqueleto articulado con articulaciones 312 y huesos 314. Las articulaciones 312 son modeladas utilizando energías UJ t que mantienen los puntos finales de los huesos 314 juntos y limitan el ángulo de la articulación. Ambos esqueletos (202, 214) son conectados utilizando energías Ucrb, entre cada par de huesos a través de una capa intermedia (esqueleto 206 intermedio). En la mano 310 simulada, el tejido 216 (representado como una malla) es conectado con el esqueleto 214 articulado a través de las energías Ust. La energía Ut representa la energía dentro del tejido 216 debido a las deformaciones y el contacto. La mano 310 simulada está en contacto con otros objetos 218. Entre el tejido 216 y los objetos 218 en contacto, la energía Uf de rozamiento y la energía Un de contacto son utilizadas para conectar el tejido 216 con los objetos 218 tocados. Los objetos 218 en contacto con la simulación 210 de mano están conectados con los objetos 222 en el entorno 220 virtual a través de la energía Ucrb entre ambos objetos.
La descripción de las energías potenciales entre las partes individuales se explicará ahora en detalle.
Comenzando con la dinámica, debido a la conservación de energía en un sistema cerrado, la suma de energías T cinéticas y energías U potenciales es igual a alguna constante, la energía total en el sistema:
14
HOJA DE REEMPLAZO (REGLA 26)
T + U = constante (1 )
De forma alternativa, la Lagrangiana L(q, q , t) del sistema es definida como
L(q, 0 ™ ?{ 4 *} Ui % · ø con q las coordenadas generalizadas y q las velocidades generalizadas. Utilizando la ecuación de Euler-Lagrange
son obtenidas las ecuaciones del movimiento:
dando la definición de la energía cinética T = -qr Mq y asumiendo que la masa es constante a lo largo del tiempo, la ecuación (4) se expande a
con M la matriz de masa generalizada y q las aceleraciones generalizadas. Para obtener la discretización de tiempo inversa de Euler, una aproximación de diferencia directa de la aceleración q es obtenida utilizando
y la velocidad q generalizada por:
sustituyendo la ecuación (7) en la ecuación (6), la siguiente aproximación para la aceleración generalizada es obtenida:
15
HOJA DE REEMPLAZO (REGLA 26)
Que puede ser sustituida en la ecuación (5). Esta da el siguiente sistema de ecuaciones:
A partir esta relación, la función h(x) puede ser definida,
que corresponde a la condición de optimalidad de una función de energía E( q):
Y q aproximada utilizando la ecuación (8) con q = q¿+1 las posiciones generalizadas. Por tanto, las ecuaciones de movimiento son los gradientes de la energía, es decir, h(q) = d£(q)/ dq. Minimizando el gradiente de la energía para alguna configuración q, la energía es conservada, lo cual se puede formalizar mediante
Existen vahos enfoques alternativos para minimizar la ecuación (12). Un enfoque es realizar una primera expansión de Taylor de primer orden en la ecuación (10) con el fin de encontrar la q¿+1 desconocida utilizando h(q¿+1) = h(q¿) + q¿+1 = 0, o
realizar varias iteraciones del método de Newton. En el caso especial en el que la derivada de h(q) sea constante, ambos enfoques consiguen exactamente el mismo procedimiento. La derivación utilizando el método de Newton es utilizada por la presente. Para una función /(x) dada, las raíces se pueden encontrar utilizando el siguiente método iterativo:
dado que la su posición inicial de x está próxima a la raíz real. Encontrar las raíces de la ecuación (10) resulta en el siguiente procedimiento iterativo:
16
Con z el índice de la integración, que no distingue de la etapa i de tiempo. La Hessiana se convierte en
que es una matriz constante de la función U cuadra tica. Tal y como se explicará más tarde, la energía U potencial escolástica para todas las energías definidas; por tanto, una iteración del método de Newton minimiza la ecuación (12). Ahora utilizando qz = q¿ y qz+i _ qí+i se obtiene la siguiente derivación:
la cual puede ser reconocida como un método de Euler inverso. Dado que la energía U potencial depende de las coordenadas generalizadas, solo se requiere la Jacobiana o la Hessiana de la energía potencial con respecto a q. Una vez que se obtiene q¿+1 , las nuevas posiciones generalizadas son obtenidas mediante
(i ?: En lo que se refiere al seguimiento elástico, para controlar una mano virtual siguiendo el movimiento de una mano real, se aplica la conexión virtual entre la mano virtual y la mano seguida. Aplicar el movimiento de la mano seguida directamente en la mano virtual parece ser lógico, pero puede provocar vahos problemas. Si el movimiento es directamente aplicado a la mano virtual, la cantidad de fuerzas aplicadas a los objetos agarrados en la mano virtual puede crecer rápidamente y puede hacerse no realista. Un comportamiento no realista sucede debido a que el movimiento real de la mano no
17
HOJA DE REEMPLAZO (REGLA 26)
está limitado cuando la mano virtual es obstruida por algún objeto. Otro problema se origina a partir de resultados de seguimiento pobres. Si los datos obtenidos del seguidor de mano tienen demasiado ruido o son discontinuos, se pueden computar fuerzas excesivamente grandes en el modelo de mano debido a velocidades reportadas grandes. Para resolver esto, se aplica un esquema de conexión virtual entre la mano 310 simulada y la mano 300 seguida. Esta conexión virtual absorbe las fuerzas excesivas introducidas por el seguimiento de mano. Además, esta conexión absorbe las fuerzas que podrían haber sido generadas por el movimiento del usuario. Por ejemplo, cuando el usuario agarra un objeto virtual utilizando la mano virtual, o cuando el movimiento de la mano virtual es obstruido por otros objetos virtuales (estáticos).
Se sigue ahora una configuración en capas. El seguimiento del movimiento de la mano del usuario se realiza típicamente a una velocidad de simulación diferente que la simulación de la mano virtual. Con el fin de realizar una conexión estable de la simulación 210 de mano con el método de seguimiento de mano, se realiza de forma preferente una simulación separada, bucle 200 de seguimiento) a una velocidad de simulación más alta. El bucle 200 de seguimiento toma muestras de los datos del seguidor (mano 300 seguida) y a partir del esqueleto 214 articulado completo en la mano virtual a través de una copia 204 sincronizada. En esta simulación, el esqueleto 206 intermedio“objetivo” (una capa intermedia del esqueleto) es actualizada a lo largo del tiempo, tomando también en cuenta la conexión entre todo el esqueleto y el esqueleto intermedio. Por tanto, este sistema de conexión virtual puede ser considerado como tres capas de esqueleto.
1. Configuración seguida del esqueleto de mano, esqueleto 202 seguido, obtenida por un seguidor de mano.
2. Esqueleto 206 intermedio.
3. Esqueleto 214 articulado completo que contiene huesos 314 y articulaciones 312 en la mano.
En primer lugar, el seguidor de mano establece la posición y orientaciones de los huesos en la primera capa, y puede conectarse a la segunda capa directamente utilizando la siguiente función de energía:
18
HOJA DE REEMPLAZO (REGLA 26)
con x las posiciones del hueso a intermedio y la configuración del hueso b seguido y Meab su diferencia en sus orientaciones de ángulo de eje. Además, dado que se proporciona la configuración de hueso seguida, sólo estas energías son minimizadas para los huesos intermedios, mientras que se mantienen los valores de las configuraciones seguidas constantes durante la etapa de simulación. Cuando se minimiza esta función de energía, la configuración de los huesos intermedios seguirá el movimiento de la configuración seguida.
La conexión entre la capa intermedia (esqueleto 206 intermedio) y el esqueleto 214 articulado completo es ligeramente diferente. Dado que el seguimiento y la conexión se realizan utilizando una velocidad de actualización mucho más alta que la simulación de mano completa, cada simulación simula su propio ejemplo del esqueleto. Para conectar estos ejemplos a la capa intermedia, se utiliza la ecuación (18). En primer lugar, se conecta una copia 204 sincronizada del esqueleto 214 completo en la simulación 210 de mano con el esqueleto 206 intermedio utilizando la ecuación (18) para la cual las posiciones y orientaciones del esqueleto en la configuración de mano se mantienen constantes. Esto permite cambiar las posiciones y orientaciones en el esqueleto 206 intermedio. En segundo lugar, una conexión similar se realiza entre una copia 212 sincronizada del esqueleto 206 intermedio y el esqueleto 214 completo en el modelo de mano. Ahora las posiciones y orientaciones del esqueleto intermedio se mantienen constantes, aunque el esqueleto 214 completo (y por lo tanto la mano completa) se pueden actualizar. Minimizando estas energías se permiten actualizaciones del esqueleto 206 intermedio dadas las energías de conexión de la configuración seguida y la simulación 210 de mano. Además, los cambios en la energía entre la capa intermedia y el esqueleto de la mano resultan en actualizaciones de la configuración de la mano virtual de una manera asincrona. Dado que la minimización de las energías entre el esqueleto 202 seguido, el esqueleto 206 intermedio y la copia 204 sincronizada del esqueleto 214 de la mano funciona a una velocidad de actualización más alta, se garantiza la estabilidad. Además, las energías computadas y las fuerzas correspondientes se pueden utilizar para controlar los dispositivos hápticos externos.
19
HOJA DE REEMPLAZO (REGLA 26)
El modelo de mano virtual consta de diferentes simulaciones combinadas para las cuales se pueden definir diferentes funciones de energía y añadir al sistema descrito en la ecuación (16). El modelo de mano consiste en un esqueleto 214 de cuerpo articulado, una piel (tejido 216) deformable, y una conexión entre el esqueleto de la piel, y el contacto entre otros objetos 218 y la mano virtual.
Los huesos 314 y las articulaciones 312 forma un esqueleto 214 que está en una simulación de cuerpo rígido articulado que forma la tercera capa en la conexión virtual. La energía T cinética para los cuerpos rígidos es informatizada mediante
con vc la velocidad del centro de masa, w la velocidad angular e / el momento de inercia. Las articulaciones 312 entre los cuerpos rígidos definen una energía Uj potencial entre los dos cuerpos rígidos. Para una articulación esférica esta energía Uj potencial puede ser descrita como sigue:
que define el potencial entre dos puntos finales de los huesos 314 para formar la articulación 212. Las posiciones xca y xcb describen las posiciones de los centros de masa de ambos huesos a y b . Los vectores ra y rb son los vectores desde los centros de masa de los puntos finales de los huesos 314 que son utilizados en la articulación 312. Dependiendo del tipo de articulación, se pueden definir energías adicionales para restringir el movimiento relativo entre los cuerpos en un eje particular.
Por encima de esta simulación de cuerpo articulada (esqueleto 214), se utiliza una simulación de un método por elementos finitos para simular la deformación de la piel (tejido 216). Dado que la deformación de la piel no es lineal, se utiliza un método/material de limitación de tensión para imitar el comportamiento de la piel humana. En la primera etapa de la deformación, la rigidez es relativamente baja, fuerzas pequeñas resultan en una gran deformación. Mientras la deformación aumenta, la rigidez de la piel aumenta, resultando en una deformación menor y una tensión creciente en la piel. Debido a esto, la piel es capaz de generar fuerzas más grandes en los objetos.
20
HOJA DE REEMPLAZO (REGLA 26)
La energía Ut potencial para un cuerpo deformables se puede describir mediante
Con W la densidad de energía potencial en un punto q dentro del material y F el gradiente de deformación. Para una función W de densidad de energía potencial cuadrática, se puede obtener un modelo de elasticidad lineal fácilmente. Dividiendo el dominio computacional en un número de elementos de tetraedro, W puede ser aproximada por cada elemento. Con el fin de limitar la tensión, W será escalada una vez que se alcance una densidad Wmax de energía umbral. Por ejemplo:
con Wq la densidad de energía actual, Wmax el umbral de energía y kc una densidad de energía de penalización adicional. La densidad Wq de energía puede ser originada a partir de un modelo de elasticidad consecutivo lineal.
Se puede utilizar el siguiente método de elementos finitos (MEF). Dada una función W de densidad de energía particular, el primer tensor P(F) de tensión de Piola- kirchhoff puede obtenerse a través de la derivada de la función w.r.t. de densidad de energía del gradiente F de la información, es decir,
El gradiente F de deformación para un elemento de tetraedro particular se refiere a la configuración Dm inicial con la configuración Ds actual, es decir Ds = FDm de tal manera que DSD ^. Tanto Ds como Dm contienen 4 vectores de columna con las coordenadas actual e inicial de todos los vértices de los elementos, en donde la componente 4a contiene un uno ([30]).
Similar para una tensión de Cauchy, se obtiene un vector de tensión t ~ P(F}«, (24. con n la superficie normal del área de sección transversal. Discreteando el interior de un objeto utilizando elementos de tetraedro, se pueden computar los vectores de
21
HOJA DE REEMPLAZO (REGLA 26)
tensión para cada elemento de superficie de cada elemento de tetraedro. La fuerza generada por la tensión depende de las áreas de estos elementos de superficie. Por área de sección trasversal, se puede computar una fuerza correspondiente que contribuye a cada uno de los tres nodos del elemento de superficie. Por lo tanto, la fuerza total en un modo particular de tetraedro es la suma de las tensiones en sección trasversal adyacentes, dividida por tres, es decir,
Con Az nz la normal de área ponderada de una cara incidente al vértice i. Para un elemento de tetraedro, el nodo / es sólo compartido por 3 caras del mismo elemento. La fuerza derivada es computada como:
Dado que la fuerza y las derivadas de la fuerza dependen de la Jacobiana y la Hessiana de la función W de densidad de energía, se derivan para el caso en el que la densidad de energía excede el umbral. La Jacobiana y la Hessiana de esta función de densidad de energía modificada en la ecuación (22) se convierte en:
Debido a la densidad de energía aumentada, la tensión y por la tanto de formación se reducirán.
El gradiente F de deformación contiene el giro, la deformación y las posibles reflexiones (inversiones) de cada elemento, en donde la función W de densidad de energía debería ser invariable al giro para materiales ¡sotrópicos. Para separar el giro de la deformación se puede utilizar una Descomposición Polar o una Descomposición de Valor Singular (SVD). Un enfoque popular es el método MEF co-giratorio (18). El MEF co-giratorio realiza la computación de la tensión en un marco sin giro girando en el desplazamiento en el marco sin giro. Dado el desplazamiento sin giro la tensión y
22
HOJA DE REEMPLAZO (REGLA 26)
las fuerzas son computadas en el marco sin giro. Finalmente, el resultado es girado de vuelta al marco girado del desplazamiento. El método co-giratorio puede resumirse por:
Con K la matriz de rigidez del elemento y Re el giro del elemento obtenido a través de una descomposición polar. Dado que q0 está ya en el marco sin giro, no se aplica ninguna corrección para q0. En el caso de una elasticidad lineal, K permanece constante a través de toda la simulación.
De forma alternativa, dado que las derivadas de la función de densidad de energía no son constantes para el enfoque de limitación de tensión, se sigue la descripción de las fuerzas como se describió en el párrafo anterior. Utilizando la SVD se puede descomponer el gradiente de deformación a través de F = UFVr , con F una matriz diagonal que contiene los valores singulares del gradiente de deformación y U y VT dos matrices de giro. Dado que la función W de densidad de energía es invariable al giro para materiales ¡sotrópicos, la primera tensión de Piola-Kirchhoff puede computarse por
Dado que el F es una matriz diagonal que contiene las deformaciones l1,l2,l3 en los tres ejes principales, la computación de Wq y su Jacobiana y Hessiana se convierten en sencillas. Cuando el determinante del gradiente de deformación es negativo, el elemento es invertido.
Con el fin de manejar dicha inversión, las matrices U y VT de giro y la matriz F necesitan ser corregida de tal manera que las matrices de giro están libres de cualquier reflexión, ver (9). Cuando se esperan grandes deformaciones, también las derivadas de los giros necesitan ser incluidas, lo cual requiere las derivadas de la SVD, ver (23) y (29).
En lo referente a la conexión esqueleto-tejido, la simulación MEF es conectada a la simulación de cuerpo articulado subyacente definiendo una función de energía entre
23
HOJA DE REEMPLAZO (REGLA 26)
el tejido 216 y los cuerpos rígidos en el esqueleto 214. Cada nodo 316 que pertenece a un elemento en la tetrahedrización es interceptado por un hueso 214 rígido, es fijado a ese hueso 214 utilizando la siguiente energía:
con xc el centro de masa del cuerpo rígido, Rb la orientación de cuerpo y rcn el vector desde el centro de masa a la posición interpolada xe = åf w¿x i del elemento conectado en su configuración de reposo. Minimizando esta energía, el movimiento y las fuerzas externas aplicadas en el esqueleto afectarán a la piel y las fuerzas en la piel afectarán al movimiento del esqueleto. Esto resulta eventualmente en una desviación en la conexión virtual.
El contacto entre la mano virtual y otro objeto es modelado utilizando una energía de penalización entre nodos en la mano virtual y un nodo de anclaje que se dispone en la superficie del cuerpo. Cuando un nodo particular del tejido 216 de piel, un vértice xn, penetra en la superficie de un objeto 218, su distancia /(x) señalada con referencia la superficie del cuerpo se hace negativa. Cuando esto ocurre, existe una configuración de tanto el objeto 218 como el vértice xn entre la etapa de tiempo actual y anterior, en donde xn se dispone exactamente en la superficie del cuerpo. En esta ubicación, un nodo xa de anclaje es inicializado y la normal n de contacto es muestreada, tal y como se muestra en la figura 4A. Dado el nodo xa de anclaje y el vértice xn , se puede definir una energía potencial. Aquí se distingue entre energía normal tangencial. Cuando un nodo de la piel está en contacto con el cuerpo, la energía Un potencial en la dirección normal se convierte en:
Con xa la posición del nodo de anclaje en la superficie del objeto 218, n la normal de contacto, kc la rigidez de contacto y w un valor de ponderación.
De forma similar se puede definir una energía bi-normal y tangencial reemplazando las normales n con el vector tx tangente o el vector t2 bi-normal. Los vectores tx y t2 son ambos perpendiculares a n y entre sí. Además, tx apunta al nodo na de anclaje en la dirección de xn.
24
HOJA DE REEMPLAZO (REGLA 26)
La figura 4A representa el modelo de contacto utilizado para la interacción entre los tejidos 216 y el objeto 218. Un vértice xn de la piel penetra en el objeto (distancia /(x) < 0 ) en xn' . Después, la inserción de la trayectoria del vértice xn con la superficie 402 del objeto 218 es computada. En el punto de intersección, el nodo xa de anclaje se inicializa y se computa la normal n =
de contacto. El anclaje es mantenido mientras el vértice está en contacto con la superficie.
El modelo de energía que se acaba de describir minimiza la distancia entre el anclaje xa y el nodo en contacto cuando aplica un rozamiento estático, es decir, cuando ambas superficies no se deslizan entre sí. Para determinar si debería aplicarse un rozamiento estático o cinético, el modelo de fricción de Coulomb es aproximado. Cuando una fuerza ft en la dirección tangencial es más grande que la fuerza fn en la dirección normal multiplicada por el coeficiente m de rozamiento cinético debería ser d U
aplicado, es decir, ||ft || > m\\ίh || , con f n = - n/gq En este caso, la fuerza tangencial es sostenida por la fuerza normal multiplicada por m de manera que aplica el rozamiento cinética, es decir, las superficies se permiten deslizar entre sí, tal y como se representa en la figura 4B. Si aplica un rozamiento cinético, el anclaje xa se permite que se deslice sobre la superficie 402. Dada la fuerza normal, el anclaje xa es movido hacia xn tal como la fuerza de rozamiento correspondiente respecto al modelo de rozamiento de Coulomb. Para sostener la energía y fuerza en la dirección tangencial, primero la magnitud de la fuerza de fricción es sujeta de acuerdo con el modelo de Coulomb para fricción. Después, el punto de anclaje debería moverse sobre la superficie 402 del objeto 218 en la dirección de la velocidad de deslizamiento. Debería elegirse el desplazamiento de tal manera que la magnitud de la fuerza de rozamiento en la siguiente etapa de tiempo satisfaga de forma aproximada la ley de Coulomb, es decir || ft || * m\\ΐh ||. La energía Uf potencial tangencial en caso de rozamiento cinético entonces se convierte en:
25
HOJA DE REEMPLAZO (REGLA 26)
Actualizando la posición del anclaje, se retira una porción de la energía potencial del sistema. Esta energía es convertida en energía térmica, que no es modelada en la presente simulación.
Con el fin de determinar si el rozamiento estático debería aplicarse, la magnitud de la fuerza de rozamiento tangencial debería compararse con la fuerza de contacto normal multiplicada por el coeficiente de fricción. Si ||ft || < m\\ΐh ||, se debería aplicar un rozamiento estático y el anclaje no se permite que deslice sobre la superficie.
Objetos en el mundo virtual pueden interactuar entre sí y con el entorno virtual. Estos objetos se simulan usualmente utilizando un motor físico (entorno 220 virtual) que cuida estas interacciones y aplica las leyes del movimiento a estos objetos. Con el fin de considerar la interacción entre la mano 310 simulada de los objetos, se debe aplicar una conexión con el mundo virtual, de forma similar a la conexión virtual utilizada entre el seguidor de mano y la mano simulada. En este caso, cada objeto existe en ambas simulaciones, uno en el entorno 220 virtual y uno que es simulado junto con la mano virtual en la simulación 210 de mano. Si el objeto es rígido, la energía de acoplamiento es U'crb, descrita en la ecuación (18), pero toma el objeto de ambos simuladores (objeto a de la simulación 210 de mano y objeto b del entorno 220 virtual). Si el objeto es flexible, la energía de conexión es proporcional a la norma Euclidiana de la diferencia entre los estados de los objetos a y ó. La energía de conexión minimiza la diferencia entre ambos casos de los objetos (218, 222). Este término de energía es aplicado a cada objeto en ambos simuladores. Cuando se minimizan estas energías, un par de representaciones de estado se mantiene constante dado que no son computados por el mismo simulador (utilizando las copias 224 y 226 sincronizadas en la figura 2). Con el fin de entregar una simulación estable del modelo de mano completo, aspectos individuales de la simulación son resueltos juntos utilizando un sistema de ecuaciones grande. Esto incluye los huesos 314 y las articulaciones 312 en el esqueleto 214 articulado, la simulación MEF de la piel 216, los cuerpos adicionales, la conexión entre la que la piel 216 y los huesos 314, la conexión de los objetos y su representación en el mundo virtual, y el contacto entre la piel y los objetos. Para obtener este sistema global, las Jacobianas y las Hessianas de las energías potenciales con respecto a q
26
HOJA DE REEMPLAZO (REGLA 26)
necesitan ser computadas para cada energía definida. Aquí q contiene las posiciones de los nodos de piel y el estado de los cuerpos. Además, las derivadas de las energías cinéticas deben computarse y almacenarse en el mismo sistema, ver la ecuación (4). Este sistema grande es resuelto para velocidades q generalizadas de desconocidas que son aplicadas más tarde, ver la ecuación (17). Dicho sistema grande permite realizar de forma correcta un esquema escalonado de tiempo implícito, lo cual incrementa la precisión y la estabilidad de la simulación. La figura 2 muestra cómo están conectados los términos de energía individual.
Tal y como se mencionó anteriormente, una ventaja importante del presente método es que permite una integración ininterrumpida con los motores físicos listos para utilizarse. Construyéndose en dicha característica, el presente método de simulación de mano ha sido encapsulado en una biblioteca que simplifica la integración con otros módulos. En particular, la biblioteca constituye un activo de un motor de juego, y se puede añadir el modelo de mano suave a un entorno virtual a través de una simple operación de arrastrar y soltar. La figura 5 muestra una vista global breve de la biblioteca 500 de simulación con diferentes módulos.
La biblioteca 500 de simulación es una biblioteca modular para simulaciones de mano que permite una integración fácil con herramientas 510 de terceros (hardware y/o software) y en particular con diferentes tipos de dispositivos 512 de seguimiento. Además, la biblioteca 500 puede ser utilizada para controlar vahos tipos de dispositivos 512 hápticos y dispositivos 516 táctiles a través de controladores o módulos específicos. La biblioteca 500 también proporciona una interfaz para entornos 518 de simulación de terceros, tal como Unity o Unreal Engine, para compartir información respecto al estado de los objetos físicos que se permiten interactuar con la presente simulación de mano. Además, estos entornos 518 virtuales son utilizados para visualizar el estado de la mano simulada. Debido a la configuración modular, se pueden desarrollar controladores personalizados para un cierto hardware, también permitiendo una fácil integración con software existente.
El módulo principal de la biblioteca 500 es invocado por física/motores de juego de terceros. Permite al usuario cargar controladores específicos para dispositivos hápticos 514 y táctiles 516 y para vahos tipos de dispositivos 512 de seguimiento del
27
HOJA DE REEMPLAZO (REGLA 26)
movimiento. El usuario también es capaz de crear módulos para personalizar dispositivos utilizando un SDK (kit de desarrollo de software). El módulo principal contiene la simulación de la mano y es realizado únicamente por el módulo principal. No utiliza el motor de física anfitrión. Para cada tipo de físicas/motor de juegos soportados, los objetos/clases anfitriones está previsto que sean utilizados por el usuario para interactuar con la biblioteca. Estos objetos anfitriones son responsables de invocar la biblioteca, suministrándola con información adicional respecto al entorno simulado en el motor físico anfitrión. El objeto anfitrión es también responsable de la visualización del estado de la simulación realizada en la biblioteca de simulación y del suministro al entorno virtual de respuestas adicionales que interactúan con los objetos definidos en el motor físico anfitrión.
Los módulos de seguimiento son utilizados para generalizar vahos métodos de seguimiento de la mano/movimiento, por ejemplo, Kinect, LeapMotion, OptiTrack u otros métodos. Cada módulo es responsable de adquirir las posiciones y orientaciones de los dedos y la posición de la mano, transformando los datos en el formato apropiado y alimentando la simulación de la mano con movimientos apropiados.
Módulos de representación háptica son utilizados para controlar dispositivos 514 hápticos. La API 520 proporciona al controlador de información sobre la posición seguida y a la orientación de los huesos, y la posición actual y presentación de los huesos simulados. Además, son proporcionados todas las fuerzas y pares computados por la conexión entre los huesos seguidos y simulados. Dada esta información y alguna información específica del dispositivo, el controlador puede computar las fuerzas de respuesta o las posiciones de actuador con el fin de proporcionar al usuario final una retroalimentación háptica realista a través del dispositivo.
Los módulos de representación táctil proporcionan una interfaz a los dispositivos 516 de representación táctil. Los dispositivos táctiles proporcionan al usuario final una retroalimentación táctil de los objetos tocados en el mundo virtual. Para cada dedo en la simulación, la información táctil puede proporcionarse por los eventos de colisión generados. Basándose en esta información, el módulo puede computar una fuerza de respuesta o movimiento para el dispositivo.
28
HOJA DE REEMPLAZO (REGLA 26)
Con el fin de controlar los diversos tipos de módulos, cada uno con un conjunto diferente de parámetros, el usuario puede enviar mensajes a través de la interfaz principal. La biblioteca 500 distribuye el mensaje a todos los módulos cargados de manera que pueden ser configurados y/o controlados directamente. Por ejemplo, para tipos específicos de dispositivos hápticos se deben habilitar primero unos pocos motores con el fin de ser funcionales.
La figura 6 muestra un modo de realización de la configuración de hardware utilizada para ejecutar una simulación y realizar interacciones con objetos virtuales en un entorno virtual mostrado a través de una pantalla 610 montada en la cabeza (HMD) La simulación toma como entrada una configuración de mano, una mano 300 seguida, obtenida mediante un seguidor de mano o un dispositivo 620 de seguimiento de mano, tal como un controlador Leap Motion, a través de algún método de seguimiento de mano. El dispositivo 620 de seguimiento de mano puede estar conectado a la pantalla 610 montada en la cabeza con el fin de aumentar el espacio de trabajo del usuario 630.
Dependiendo del método de seguimiento, se puede utilizar una vasta variedad de cámaras para seguir el movimiento de la mano del usuario. Por ejemplo, se pueden utilizar cámaras de profundidad estéreo o cámaras de profundidad estándar. El método de seguimiento de mano detecta la posición y forma de la mano del usuario y el método de simulación de mano presente adquiere la configuración de mano obteniendo esta información a partir del dispositivo 620 de seguimiento de mano (utilizando el controlador 512 de dispositivo seguidor de la figura 5). Por ejemplo, si se emplea un controlador Leap Motion como dispositivo 620 de seguimiento de mano, la configuración de la mano del usuario es capturada utilizando una cámara de profundidad estéreo y reconstruyendo la configuración del hueso de las imágenes capturadas.
La simulación completa realizada en un dispositivo de procesamiento de datos, tal como un ordenador 650 o un ordenador portátil que utiliza una CPU de múltiples núcleos. La visualización del entorno virtual es realizada utilizando un motor de juego listo para utilizarse y la GPU para visualizar la simulación de mano en el HMD 610 y realizar la simulación de los objetos en el motor de juego. La simulación de mano puede ser implementada en un conector creado para un motor de juego (por ejemplo,
29
HOJA DE REEMPLAZO (REGLA 26)
Unreal Engine 4, Unity). Cada motor de juego es capaz de interactuar con la simulación de mano a través de la interfaz que proporciona el conector. Además, el motor de juego puede proporcionar a la simulación de mano información adicional con respecto a los objetos que son creados por el motor de juego. La visualización de la simulación de mano puede realizarse en un dispositivo de visualización, tal como un monitor, una televisión o dispositivo 610 montado en la cabeza. Los motores de fuego puede soportar el uso de una pantalla montada en la cabeza para mostrar el mundo virtual de una forma inmersiva al usuario. La pantalla 610 montada en la cabeza puede estar equipada con sensores adicionales para obtener la orientación, aceleración y posición de la pantalla montada en la cabeza. Un dispositivos 660 de seguimiento de cabeza puede ser utilizado para capturar la posición de la pantalla 610 montada en la cabeza (tal como cascos con auriculares Oculus Rift o HTC Vine).
El dispositivo 620 de seguimiento de mano puede estar conectado a la pantalla 610 montada en la cabeza y la información de estos sensores transferida a la simulación de mano. Los sensores del dispositivo 620 de seguimiento de mano sólo pueden reportar posiciones y orientaciones con respecto a la cámara. Considerando también los datos de los sensores de la pantalla montada en la cabeza, la posición absoluta de la mano 300 seguida y su configuración se pueden reconstruir, aumentando de forma significativa el espacio de trabajo del usuario. En la configuración por defecto, la cámara del controlador 620 Leap Motion es situada enfrente del usuario en una superficie plana, pero la posición y orientación de la cámara puede estar en cualquier sitio en el mundo virtual y real.
Dado que la biblioteca computa las fuerzas en la conexión elástica y las fuerzas de contacto entre la mano y el objeto tocado en el entorno virtual, la biblioteca puede computar fuerzas de retroalimentación para diferentes tipos de dispositivos hápticos y táctiles, tal como un dispositivo 670 háptico portátil de mano (por ejemplo, un guante). Para los experimentos mostrados en [17], un controlador del dispositivo háptico y de seguimiento híbrido fue creado para computar una fuerza de respuesta para el exoesqueleto utilizado, y utiliza los sensores en el exoesqueleto para adquirir la configuración de los dedos. Además, los controladores de dispositivo táctiles son
30
HOJA DE REEMPLAZO (REGLA 26)
implementados para controlar los dispositivos descritos en [24] utilizando los métodos descritos en este documento.
La simulación de mano descrita y el método de conexión permiten al usuario utilizar sus manos para interactuar con el mundo virtual de una manera físicamente correcta. Las fuerzas que son computadas cuando la mano virtual está en contacto con los objetos virtuales o las fuerzas computadas en la conexión virtual, se pueden utilizar para controlar dispositivos externos para una retroalimentación háptica y táctil. Gracias al método de conexión y al modo en que está configurada la simulación de la mano virtual, se obtiene un modo de interacción muy robusto que evita que el usuario interactúe con el mundo virtual de una manera no física. Utilizando un modelo de deformación no lineal, el comportamiento de la piel virtual ¡mita el comportamiento del tejido real.
En la configuración mostrada en la figura 6, el usuario lleva un HMD en el cual está fijado el seguidor de mano. La cabeza mantiene el seguimiento de la posición del HMD y del seguidor de mano. El sensor, el HMD y el seguidor de mano están conectados a un ordenador del usuario final (CPU+GPU). Cuando la simulación está ejecutándose, el HMD muestra el entorno virtual al usuario y la pantalla del mundo virtual responde al movimiento del usuario. Cuando el seguidor de mano detecta la mano del usuario, se obtiene la posición de la mano con respecto al seguidor de mano. Cuando esta posición y la posición y la orientación del HMD, la mano simulada es mostrada (al usuario) con respecto al HMD. Cuando el usuario de un objeto virtual a través de HMD, el usuario es capaz de mover su mano más cerca al objeto virtual. Cuando la mano virtual está lo suficientemente cerca al objeto virtual, el usuario puede interactuar con el objeto virtual utilizando su propia mano. De forma alternativa, el seguidor de mano puede configurarse en una posición fija cercana al usuario (por ejemplo, en una mesa enfrente del usuario).
31
HOJA DE REEMPLAZO (REGLA 26)
Claims
1. Un método implementado por ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual, el método que comprende: adquirir de forma repetida una configuración de mano de una mano (300) seguida a partir de datos capturados por un dispositivo (620) de seguimiento de mano, la configuración de mano que incluye información para establecer la posición y orientación de huesos que forman un esqueleto (202) seguido de la mano (300) seguida;
computar de forma repetida una configuración de mano de una mano (310) simulada en una simulación (210) de mano que interactúa con al menos un objeto (222) en un entorno (220) virtual, la mano (310) simulada que comprende un tejido (216) deformable no lineal y un esqueleto (214) articulado con articulaciones (312) y huesos (314); caracterizado porque el método además comprende: establecer una conexión entre el esqueleto (214) de la mano (310) simulada y el esqueleto (202) seguido utilizando energías ( Ucrb ) de conexión entre pares de huesos correspondientes considerando sus posiciones relativas y orientaciones,
determinar una energía interna de la mano (310) simulada, la energía interna que comprende una energía (Uj) potencial asociada a las articulaciones (312) del esqueleto (214), una energía (Ut) potencial asociada al tejido (216), y una función (Ust) de energía asociada a la conexión entre el tejido (216) y el esqueleto (214);
establecer un contacto de rozamiento entre la mano (310) simulada y al menos un objeto (218) en la simulación (210) de mano utilizando energías potenciales en las direcciones normal (Un) y tangencial (Uf) entre un nodo (xn) del tejido (216) de la mano (310) simulada y un nodo (xa) de anclaje en la superficie (402), de el al menos un objeto (218) de la simulación (210) de mano; y
computar de forma repetida un esqueleto (214) actualizado y un tejido (216) de la mano (310) simulada minimizando la energía total ( Ucrb , Uj, Ut, Ust, Un, Uf) involucrada.
32
HOJA DE REEMPLAZO (REGLA 26)
16-04-2019
WO 2019/175460 PCT/ES2019/070170
2. El método implementado por ordenador de la reivindicación 1 , en donde la etapa de establecer una conexión entre el esqueleto (214) de la mano (310) simulada y el esqueleto (202) seguido comprende: establecer una conexión entre una copia (204) sincronizada del esqueleto (214) de la mano (310) simulada y un esqueleto (206) intermedio utilizando energías ( Ucrb ) de conexión entre cada par de huesos correspondientes;
establecer una conexión entre el esqueleto (202) seguido y el esqueleto (206) intermedio utilizando energías ( Ucrb ) de conexión entre cada par de huesos correspondientes;
establecer una conexión entre una copia (212) sincronizada del esqueleto (206) intermedio y el esqueleto (214) de la mano (310) utilizando energías ( Ucrb ) de conexión entre cada par de huesos correspondientes;
computar de forma repetida un esqueleto (206) intermedio actualizado minimizando las energías ( Ucrb ) de conexión involucradas.
3. El método implementado por ordenador de la reivindicación 2, en donde la computación de un esqueleto (206) intermedio actualizado es realizada a una velocidad más alta que la computación del esqueleto (214) actualizado de la mano (310) simulada.
4. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones anteriores, en donde la etapa de computar una configuración de mano de la mano (310) simulada comprende modelar las articulaciones (312) utilizando energías (Uj) potenciales para mantener los puntos finales de los huesos (314) que forman la articulación (312) juntos y limitar el ángulo de la articulación (312).
5. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones anteriores, en donde la etapa de computar una configuración de mano de la mano (310) simulada comprende computar la deformación del tejido (216) utilizando un método de elementos finitos, en donde el tejido (216) deformable es descrito considerando la energía (Ut) potencial que tiene una función W de densidad de energía potencial cuadrática, y en donde el dominio computacional es dividido en un conjunto de elementos de tetraedro.
33
HOJA DE REEMPLAZO (REGLA 26)
16-04-2019
WO 2019/175460 PCT/ES2019/070170
6. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones anteriores, en donde la etapa de computar una configuración de mano de la mano (310) simulada comprende establecer una conexión entre el esqueleto (214) y el tejido (216) de la mano (310) simulada utilizando una función (Ust) de energía entre huesos (314) en el esqueleto (214) y nodos (316) del tejido (216) correspondientes a la intersección de huesos (314) y tejido (214).
7. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones anteriores, en donde el al menos un objeto (222) es un cuerpo rígido, el método que además comprende: establecer una conexión entre el al menos un objeto (218) que interactúa con la mano (310) simulada en la simulación (210) de mano y el objeto (222) correspondiente simulado en el entorno (220) virtual utilizando energías ( U'crb ) de conexión considerando la diferencia en la posición y orientación entre pares de objetos (218, 222) y
computar de forma repetida al menos un objeto (218) actualizado en la simulación (210) de mano minimizando las energías ( U'crb ) de conexión.
8. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones 1 a 6, en donde el al menos un objeto (222) es un cuerpo flexible, el método que comprende: establecer una conexión entre el al menos un objeto (218) que interactúa con la mano (310) simulada en la simulación (210) de mano y el objeto (222) correspondiente simulado en el entorno (220) virtual utilizando energías que consideran la diferencia en el estado entre pares de objetos (218, 222) y
computar de forma repetida al menos un objeto (218) actualizado en la simulación (210) de mano minimizando las energías de conexión.
9. El método implementado por ordenador de acuerdo con cualquiera de las reivindicaciones anteriores, que comprende representar en un dispositivo (610) de visualización la mano (310) simulada interactuando con el al menos un objeto (222) en el entorno (220) virtual.
34
HOJA DE REEMPLAZO (REGLA 26)
16-04-2019
WO 2019/175460 PCT/ES2019/070170
10. Un sistema para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual, que comprende un dispositivo (650) de procesamiento de datos configurado para: adquirir de forma repetida una configuración de mano de una mano (300) seguida a partir de datos capturados por un dispositivo (620) de seguimiento de mano, la configuración de mano que incluye información para establecer la posición y orientación de huesos que forman un esqueleto (202) seguido de la mano (300) seguida; computar de forma repetida una configuración de mano de una mano (310) simulada en una simulación (210) de mano que interactúa con al menos un objeto (222) en un entorno (220) virtual, la mano (310) simulada que comprende un tejido (216) deformable no lineal y un esqueleto (214) articulado con articulaciones (312) y huesos (314); caracterizado porque el dispositivo (650) de procesamiento de datos está configurado además para: establecer una conexión entre el esqueleto (214) de la mano (310) simulada y el esqueleto (202) seguido utilizando energías ( Ucrb ) de conexión entre pares de huesos correspondientes considerando sus posiciones relativas y orientaciones,
determinar una energía interna de la mano (310) simulada, la energía interna que comprende una energía (Uj) potencial asociada a las articulaciones (312) del esqueleto (214), una energía (Ut) potencial asociada al tejido (216), y una función (Ust) de energía asociada a la conexión entre el tejido (216) y el esqueleto (214);
establecer un contacto de rozamiento entre la mano (310) simulada y al menos un objeto (218) en la simulación (210) de mano utilizando energías potenciales en las direcciones normal (Un) y tangencial (Uf) entre un nodo (xn) del tejido (216) de la mano (310) simulada y un nodo (xa) de anclaje en la superficie (402), de el al menos un objeto (218) de la simulación (210) de mano; y
computar de forma repetida un esqueleto (214) actualizado y un tejido (216) de la mano (310) simulada minimizando la energía total ( Ucrb , Uj, Ut, Ust, Un, Uf) involucrada.
35
HOJA DE REEMPLAZO (REGLA 26)
11. El sistema de la reivindicación 10, que comprende un dispositivo (620) de seguimiento de mano para adquirir de forma repetida la configuración de mano de la mano (300) seguida de un usuario (630).
12. El sistema de acuerdo con cualquiera de las reivindicaciones 10 a 11 , que comprende un dispositivo de visualización configurado para representar la mano (102) simulada que interactúa con él al menos un objeto (222) en el entorno (220) virtual.
13. El sistema de la reivindicación 11 , en donde el dispositivo de visualización es un monitor (610) montado en la cabeza.
14. El sistema de acuerdo con cualquiera de las reivindicaciones 10 a 13, en donde el dispositivo (650) de procesamiento de datos está configurado para computar fuerzas en puntos de contacto de la mano (310) simulada generados por la interacción con objetos (222) en el entorno (220) virtual, el sistema que además comprende un dispositivo (670) háptico portátil de mano configurado para aplicar una respuesta de retroalimentación háptica en la mano (300) seguida de un usuario (630) de acuerdo con las fuerzas computadas.
15. Un producto de programa de ordenador para simular el comportamiento de una mano que interactúa con objetos en un entorno virtual, caracterizado porque comprende un código de programa utilizable por ordenador para, cuando se ejecuta en un procesador, realizar las etapas del método implementado por ordenador definido en cualquiera de las reivindicaciones 1 a 9.
16. Un medio de almacenamiento legible por ordenador que comprende instrucciones para provocar que un procesador lleve a cabo las etapas del método implementado por ordenador definido en cualquiera de las reivindicaciones 1 a 9.
36
HOJA DE REEMPLAZO (REGLA 26)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/971,521 US11093037B2 (en) | 2018-03-15 | 2019-03-13 | Computer-implemented method, system and computer program product for simulating the behaviour of a hand that interacts with objects in a virtual environment |
EP19768022.6A EP3751433A4 (en) | 2018-03-15 | 2019-03-13 | COMPUTER-IMPLEMENTED PROCESS, SYSTEM AND COMPUTER PROGRAM PRODUCT FOR SIMULATING THE BEHAVIOR OF A HAND INTERACTING WITH OBJECTS IN A VIRTUAL ENVIRONMENT |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201830260 | 2018-03-15 | ||
ES201830260A ES2725128B2 (es) | 2018-03-15 | 2018-03-15 | 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. |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019175460A1 true WO2019175460A1 (es) | 2019-09-19 |
Family
ID=67906464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/ES2019/070170 WO2019175460A1 (es) | 2018-03-15 | 2019-03-13 | 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 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11093037B2 (es) |
EP (1) | EP3751433A4 (es) |
ES (1) | ES2725128B2 (es) |
WO (1) | WO2019175460A1 (es) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703570B (zh) * | 2021-08-16 | 2023-01-31 | 广东工业大学 | 基于vr环境的虚拟手模型构建方法及系统 |
US11934569B2 (en) | 2021-09-24 | 2024-03-19 | Apple Inc. | Devices, methods, and graphical user interfaces for interacting with three-dimensional environments |
FR3136568A1 (fr) * | 2022-06-08 | 2023-12-15 | Orange | Procédé de construction de transitions fluides d’une main dans un environnement en réalité virtuelle ou augmentée |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180024635A1 (en) * | 2016-07-25 | 2018-01-25 | Patrick Kaifosh | Methods and apparatus for predicting musculo-skeletal position information using wearable autonomous sensors |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8576253B2 (en) * | 2010-04-27 | 2013-11-05 | Microsoft Corporation | Grasp simulation of a virtual object |
US8994718B2 (en) * | 2010-12-21 | 2015-03-31 | Microsoft Technology Licensing, Llc | Skeletal control of three-dimensional virtual world |
JP2014071499A (ja) * | 2012-09-27 | 2014-04-21 | Kyocera Corp | 表示装置および制御方法 |
US9552673B2 (en) * | 2012-10-17 | 2017-01-24 | Microsoft Technology Licensing, Llc | Grasping virtual objects in augmented reality |
US10318008B2 (en) * | 2015-12-15 | 2019-06-11 | Purdue Research Foundation | Method and system for hand pose detection |
WO2018112112A1 (en) * | 2016-12-13 | 2018-06-21 | DeepMotion, Inc. | Improved virtual reality system using multiple force arrays for a solver |
WO2018187171A1 (en) * | 2017-04-04 | 2018-10-11 | Usens, Inc. | Methods and systems for hand tracking |
-
2018
- 2018-03-15 ES ES201830260A patent/ES2725128B2/es active Active
-
2019
- 2019-03-13 EP EP19768022.6A patent/EP3751433A4/en not_active Withdrawn
- 2019-03-13 US US16/971,521 patent/US11093037B2/en active Active
- 2019-03-13 WO PCT/ES2019/070170 patent/WO2019175460A1/es active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180024635A1 (en) * | 2016-07-25 | 2018-01-25 | Patrick Kaifosh | Methods and apparatus for predicting musculo-skeletal position information using wearable autonomous sensors |
Non-Patent Citations (39)
Title |
---|
A. FRISOLIF. BARBAGLIE. RUFFALDIK. SALISBURYM. BERGAMASCO: "A limit-curve based soft finger god-object algorithm", HAPTIC INTERFACES FOR VIRTUAL ENVIRONMENT AND TELEOPERATOR SYSTEMS, 14TH SYMPOSIUM, 2006 |
A. G. PEREZD. LOBOF. CHINELLOG. CIRIOM. MALVEZZIJ. S. MARTIND. PRATTICHIZZOM. A. OTADUY: "Optimization-based wearable tactile rendering", IEEE TRANSACTIONS ON HAPTICS, vol. 10, no. 2, April 2017 (2017-04-01), pages 254 - 264, XP011653671, DOI: 10.1109/TOH.2016.2619708 |
ALEC R. RIVERSDOUG L. JAMES: "FastLSM: Fast lattice shape matching for robust real-time deformation", ACM TRANSACTIONS ON GRAPHICS (PROCEEDINGS OF SIGGRAPH 2007, 2007 |
ALVARO G. PEREZGABRIEL CIRIODANIEL LOBOFRANCESCO CHINELLODOMENICO PRATTICHIZZOMIGUEL A. OTADUY: "Proceedings of Haptics Symposium", 2016, IEEE, article "Efficient nonlinear skin simulation for multi-finger tactile rendering" |
ALVARO G. PEREZGABRIEL CIRIOFERNANDO HERNANDEZCARLOS GARREMIGUEL A. OTADUY: "Strain limiting for soft finger contact simulation", PROC. OF IEEE WORLD HAPTICS CONFERENCE, 2013 |
ANTONYA CSABA ET AL.: "Parameter computation of the hand model in virtual grasping", 2014 5TH IEEE CONFERENCE ON COGNITIVE INFOCOMMUNICATIONS (COGINFOCOM, 5 November 2014 (2014-11-05), pages 173 - 177, XP032728905, doi:10.1109/CogInfoCom.2014.7020440 * |
BARBAGLI F ET AL.: "Simulating human fingers: a soft finger proxy model and algorithm", HAPTIC INTERFACES FOR VIRTUAL ENVIRONMENT AND TELEOPERATOR SYSTEMSHAPTICS '04. PROCEEDINGS.12TH INTERNATIONAL SYMPOSIUM ON CHICAGO, 27 March 2004 (2004-03-27), IL , USA, pages 9 - 17, XP010698147, ISBN: 978-0-7695-2112-1 * |
C. W. BORSTA. P. INDUGULA: "Realistic virtual grasping", PROC. OF IEEE VIRTUAL REALITY CONFERENCE, 2005 |
C.B. ZILLESJ.K. SALISBURY: "Intelligent Robots and Systems, IEEE/RSJ International Conference", vol. 3, 1995, IEEE COMPUTER SOCIETY, article "A constraint-based god-object method for haptic display", pages: 3146 |
CARLOS GARREFERNANDO HERNANDEZANTONIO GRACIAMIGUEL A: "Otaduy. Interactive simulation of a deformable hand for haptic rendering", PROC. OF WORLD HAPTICS CONFERENCE, 2011 |
CHRISTIAN DURIEZHADRIEN COURTECUISSEJUAN-PABLO DE LA PLATA ALCALDEPIERRE-JEAN BENSOUSSAN: "Contact skinning", EUROGRAPHICS CONFERENCE (SHORT PAPER, 2008 |
D. LOBOM. SARA,CM. VERSCHOORM. SOLAZZIA. FRISOLIM. A. OTADUY: "Proxy-based haptic rendering for underactuated haptic devices", 2017 IEEE WORLD HAPTICS CONFERENCE (WHC, June 2017 (2017-06-01), pages 48 - 53, XP033131388, DOI: 10.1109/WHC.2017.7989875 |
F. BARBAGLIA. FRISOLIK. SALISBURYM. BERGAMASCO: "Simulating human fingers: a soft finger proxy model and algorithm", HAPTICS '04. PROCEEDINGS. 12TH INTERNATIONAL SYMPOSIUM, 2004 |
F. SINY. ZHUY. LID. SCHROEDERJ. BARBIE: "Invertible isotropic hyperelasticity using SVD gradients", ACM SIGGRAPH / EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION (POSTERS, 2011 |
G. IRVINGJ. TERANR. FEDKIW: "Invertible finite elements for robust simulation of large deformation", PROC. OF ACM SIGGRAPH/EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION, 2004, pages 131 - 140, XP058329461, DOI: 10.1145/1028523.1028541 |
HIROTA KOICHI ET AL.: "Interaction with virtual object using deformable hand", 2016 IEEE VIRTUAL REALITY (VR, 19 March 2016 (2016-03-19), pages 49 - 56, XP032919349, doi:10.1109/VR.2016.7504687 * |
J. E. COLGATEM. C. STANLEYJ. M. BROWN: "Issues in the haptic display of tool use", PROC. OF IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS, 1995, pages 140 - 145, XP000730905, DOI: 10.1109/IROS.1995.525875 |
J. JACOBSB. FROEHLICH: "A soft hand model for physically-based manipulation of virtual objects", 2011 IEEE VIRTUAL REALITY CONFERENCE (VR, March 2011 (2011-03-01), pages 11 - 18 |
J. JACOBSM. STENGELB. FROEHLICH: "A generalized god-object method for plausible finger-based interactions in virtual environments", 2012 IEEE SYMPOSIUM ON 3D USER INTERFACES (3DUI, March 2012 (2012-03-01), pages 43 - 51, XP032169252, DOI: 10.1109/3DUI.2012.6184183 |
J. TERANS. BLEMKERV. NG THOW HINGR. FEDKIW: "Finite volume methods for the simulation of skeletal muscle", SIG- GRAPH/EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION, 2003, pages 68 - 74 |
JESUS PEREZALVARO G. PEREZMIGUEL A: "Otaduy. Simulation of hyper- elastic materials using energy constraints", PROC. OF CEIG, 2013 |
JUN-SIK KIMJUNG-MIN PARK: "Physics-based hand interaction with virtual objects", IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION, ICRA 2015, 26 May 2015 (2015-05-26), pages 3814 - 3819, XP033168944, DOI: 10.1109/ICRA.2015.7139730 |
KIM JUN-SIK ET AL.: "Physics-based hand interaction with virtual objects", 2015 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA, 26 May 2015 (2015-05-26), pages 3814 - 3819, XP033168944, doi:10.1109/ICRA.2015.7139730 * |
KOICHI HIROTAKAZUYOSHI TAGAW: "Interaction with virtual object using deformable hand", 2016 IEEE VIRTUAL REALITY (VR, vol. 00, 2016, pages 49 - 56, XP032919349, DOI: 10.1109/VR.2016.7504687 |
M. CIOCARLIEC. LACKNERP. ALLEN: "Soft finger model with adaptive contact geometry for grasping and manipulation tasks", WORLD HAPTICS CONFERENCE, 2007 |
M. POULIQUENCHRISTIAN DURIEZC. ANDRIOTA BERNARDL. CHODORGEFLORIAN GOSSELIN: "Real-time finite element finger pinch grasp simulation", EUROHAPTICS CONFERENCE, 2005 AND SYMPOSIUM ON HAPTIC INTERFACES FOR VIRTUAL ENVIRONMENT AND TELEOPERATOR SYSTEMS, 2005. WORLD HAPTICS 2005, March 2005 (2005-03-01), pages 323 - 328, XP010781823, DOI: 10.1109/WHC.2005.109 |
MANUEL FERRE ET AL.: "Haptic Device for Capturing and Simulating Hand Manipulation Rehabilitation", IEEE / ASME TRANSACTIONS ON MECHATRONICS, vol. 16, no. 5, 1 October 2011 (2011-10-01), PISCATAWAY, NJ, US, pages 808 - 815, XP011382389, ISSN: 1083-4435, doi:10.1109/TMECH.2011.2159807 * |
MATTHIAS MULLERM. GROSS: "Interactive virtual materials", PROC. OF GRAPHICS INTERFACE, 2004 |
MIAO FENG ET AL.: "Real-time deformation simulation of hand-object interaction", ROBOTICS, AUTOMATION AND MECHATRONICS (RAM), 2011 IEEE CONFERENCE, 17 September 2011 (2011-09-17), pages 154 - 157, XP031974452, ISBN: 978-1-61284-252-3, doi:10.1109/RAMECH.2011.6070473 * |
NANCY S. POLLARDVICTOR B. ZORDAN: "Physically based grasping control from example", 2005 ACM SIGGRAPH / EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION, July 2005 (2005-07-01), pages 311 - 318, XP058264161, DOI: 10.1145/1073368.1073413 |
PAUL G. KRYDINESH K. PAI: "Interaction capture and synthesis", ACM TRANSACTIONS ON GRAPHICS, vol. 25, no. 3, July 2006 (2006-07-01), pages 872 - 880 |
PAUL G. KRYDOUG L. JAMESDINESH K. PAI: "Eigenskin: Real time large deformation character skinning in hardware", ACM SIGGRAPH SYMPOSIUM ON COMPUTER ANIMATION, July 2002 (2002-07-01), pages 153 - 160 |
R. OTTF. VEXOD. THALMANN: "Two-handed haptic manipulation for CAD and VR applications", COMPUTER AIDED DESIGN & APPLICATIONS, vol. 7, no. 1, 2010 |
SCHRODER MATTHIAS ET AL.: "Real-time hand tracking using synergistic inverse kinematics", 2014 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA, 31 May 2014 (2014-05-31), pages 5447 - 5454, XP032650690, doi:10.1109/ICRA.2014.6907660 * |
See also references of EP3751433A4 |
SHINJIRO SUEDAANDREW KAUFMANDINESH K. PAI: "Musculotendon simulation for hand animation", ACM TRANS. GRAPH., vol. 27, no. 3, August 2008 (2008-08-01), XP058355376, DOI: 10.1145/1360612.1360682 |
THEODORE PAPADOPOULOMANOLIS I. A. LOURAKIS: "Estimating the jacobian of the singular value decomposition: Theory and applications", EUROPEAN CONFERENCE ON COMPUTER VISION, 2000 |
TSUNEYA KURIHARANATSUKI MIYATA: "Modeling deformable human hands from medical images.", 2004 ACM SIGGRAPH / EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION, July 2004 (2004-07-01), pages 355 - 363 |
YING LIJIAXIN L. FUNANCY S: "Pollard. Data-driven grasp synthesis using shape matching and task-based pruning", IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, vol. 13, no. 4, July 2007 (2007-07-01), pages 732 - 747, XP011190845, DOI: 10.1109/TVCG.2007.1033 |
Also Published As
Publication number | Publication date |
---|---|
US20200393899A1 (en) | 2020-12-17 |
ES2725128B2 (es) | 2020-07-22 |
EP3751433A1 (en) | 2020-12-16 |
US11093037B2 (en) | 2021-08-17 |
EP3751433A4 (en) | 2021-03-31 |
ES2725128A1 (es) | 2019-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7437327B2 (ja) | 異種入力の補間のための方法およびシステム | |
Borst et al. | Realistic virtual grasping | |
US10026233B2 (en) | Efficient orientation estimation system using magnetic, angular rate, and gravity sensors | |
US10297066B2 (en) | Animating a virtual object in a virtual world | |
Kenwright | Inverse kinematics–cyclic coordinate descent (ccd) | |
Weinstein et al. | Dynamic simulation of articulated rigid bodies with contact and collision | |
US20170185141A1 (en) | Hand tracking for interaction feedback | |
Talvas et al. | Aggregate constraints for virtual manipulation with soft fingers | |
WO2019175460A1 (es) | 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 | |
JP4463120B2 (ja) | 身まねロボットシステムとその身まね動作制御方法 | |
US20230061175A1 (en) | Real-Time Simulation of Elastic Body | |
Saupin et al. | Contact model for haptic medical simulations | |
Matthews et al. | Shape aware haptic retargeting for accurate hand interactions | |
Teleb et al. | Data glove integration with 3d virtual environments | |
Huang et al. | An efficient energy transfer inverse kinematics solution | |
Talvas et al. | The god-finger method for improving 3D interaction with virtual objects through simulation of contact area | |
CN110008873B (zh) | 面部表情捕捉方法、系统及设备 | |
US8289331B1 (en) | Asymmetric animation links | |
Csongei et al. | ClonAR: Rapid redesign of real-world objects | |
Cui et al. | Simulation of grasping deformable objects with a virtual human hand | |
JP3973995B2 (ja) | アニメーション作成システム | |
Tsai et al. | Two-phase optimized inverse kinematics for motion replication of real human models | |
KR102239957B1 (ko) | 가상 관절 구(sphere)를 이용한 모션 모델링 방법 및 그 장치 | |
Turner et al. | Head‐Tracked Stereo Viewing with Two‐Handed 3 D Interaction for Animated Character Construction | |
Schmidl et al. | Geometry‐driven physical interaction between avatars and virtual environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19768022 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 2019768022 Country of ref document: EP Effective date: 20200807 |
|
WWE | Wipo information: entry into national phase |
Ref document number: ES2019070170 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |