ES2725128A1 - 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 PDF

Info

Publication number
ES2725128A1
ES2725128A1 ES201830260A ES201830260A ES2725128A1 ES 2725128 A1 ES2725128 A1 ES 2725128A1 ES 201830260 A ES201830260 A ES 201830260A ES 201830260 A ES201830260 A ES 201830260A ES 2725128 A1 ES2725128 A1 ES 2725128A1
Authority
ES
Spain
Prior art keywords
hand
skeleton
simulated
connection
simulation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
ES201830260A
Other languages
English (en)
Other versions
ES2725128B2 (es
Inventor
Mickeal Verschoor
Tristran Miguel Angel Otaduy
Cuenca Daniel Lobo
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad Rey Juan Carlos
Original Assignee
Universidad Rey Juan Carlos
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad Rey Juan Carlos filed Critical Universidad Rey Juan Carlos
Priority to ES201830260A priority Critical patent/ES2725128B2/es
Priority to US16/971,521 priority patent/US11093037B2/en
Priority to PCT/ES2019/070170 priority patent/WO2019175460A1/es
Priority to EP19768022.6A priority patent/EP3751433A4/en
Publication of ES2725128A1 publication Critical patent/ES2725128A1/es
Application granted granted Critical
Publication of ES2725128B2 publication Critical patent/ES2725128B2/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04815Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/107Static hand or arm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves

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

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
DESCRIPCION
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 varios 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 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 computarizada 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].
Otros trabajos relacionados se pueden encontrar en [8], en el cual se simula un modelo de piel detallado de 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 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 HAPTICS ‘04. 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. Allen. 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, Hadrien 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 Hápticas para Entorno Virtual y Sistemas de Teleoperador, 14° Simposio en 2006.
[7] Carlos Garre, Fernando Hernandez, 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. Figenskin. 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 Li, 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, Transacciones en Visualización y Gráficos de Ordenador, 13(4):732-747, julio/agosto 2007.
[17] D. Lobo, M. Sarasc, 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 Hernandez, 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, Christian 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.
[25] Jesus 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 Victor 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] Alec 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. Li, D. Schroeder, y J. Barbic. Hiper-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 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, 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.
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:
- 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 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 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 1B 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 ilustran 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.
Descripción de los modos de realización de la presente invención
Las figuras 1A y 1B 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, 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 ilustra 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 , 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 U st. 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:
T + U = constante (1)
De forma alternativa, la Lagrangiana L(q, q ,t) del sistema es definida como
¿(q,q,t) = rCq.q.t) - l/(q,q,t), (2)
con q las coordenadas generalizadas y q las velocidades generalizadas. Utilizando la ecuación de Euler-Lagrange
Figure imgf000014_0001
son obtenidas las ecuaciones del movimiento:
Figure imgf000014_0002
dando la definición de la energía cinética T = ^qT Mq y asumiendo que la masa es constante a lo largo del tiempo, la ecuación (4) se expande a
¿ ( M « ^ = M Ü ^ = 0, (5)
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
Figure imgf000014_0003
y la velocidad q generalizada por:
Figure imgf000015_0001
sustituyendo la ecuación (7) en la ecuación (6), la siguiente aproximación para la aceleración generalizada es obtenida:
Figure imgf000015_0002
Que puede ser sustituida en la ecuación (5). Esta da el siguiente sistema de ecuaciones:
Figure imgf000015_0003
A partir esta relación, la función h(x) puede ser definida,
Figure imgf000015_0004
que corresponde a la condición de optimalidad de una función de energía E( q):
E ( q ) = ^ £ q TWq U, ( 11)
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) = dE(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
q = argmin||h(q)||. ( 12)
Existen varios 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(ql+1) = h(ql)
Figure imgf000015_0005
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:
Figure imgf000016_0001
Con z el índice de la integración, que no distingue de la etapa i de tiempo. La Hessiana se convierte en
Figure imgf000016_0002
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 = ql y qz+1 = ql+1, se obtiene la siguiente derivación:
Figure imgf000016_0003
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
qI+1 = q‘ Afq‘+1. (17)
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 varios 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 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:
Figure imgf000017_0001
conx las posiciones del hueso a intermedio y la configuración del hueso b seguido y A9eab 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 asíncrona. 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.
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
Figure imgf000019_0001
con vc la velocidad del centro de masa, 2 la velocidad angular e I 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:
Uj = ^k\\xca + ra - xcb - rb ||2, (20)
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.
La energía Ut potencial para un cuerpo deformables se puede describir mediante
Ut = jn W(F(q))dq, (21)
Con 5 la densidad de energía potencial en un punto q dentro del material y F el gradiente de deformación. Para una función 5 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, 5 puede ser aproximada por cada elemento. Con el fin de limitar la tensión, 5 será escalada una vez que se alcance una densidad 5 max de energía umbral. Por ejemplo:
1 / W~ \2
W = Wa - k c [ —q- ~ 1) , (22) q 2 c Vwmax )
con W9 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 W9 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,
Figure imgf000020_0001
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 DjD^1. 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)n, (24)
con n la superficie normal del área de sección transversal. Discretizando el interior de un objeto utilizando elementos de tetraedro, se pueden computar los vectores de 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,
Figure imgf000020_0002
Con Az nz la normal de área ponderada de una cara incidente al vértice i. Para un elemento de tetraedro, el nodo i es sólo compartido por 3 caras del mismo elemento. La fuerza derivada es computada como:
d2Ut _ df_ _ ¿HdF _ / dP(F) ^ \ áF
(26 )
dq2 dq dF dq V dF ' / dq'
Dado que la fuerza y las derivadas de la fuerza dependen de la Jacobiana y la Hessiana de la función 5 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:
Figure imgf000021_0001
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 5 de densidad de energía debería ser invariable al giro para materiales isotró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 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:
f = —ReKR£q ReKq0, (29)
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 qC. 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 = uFvT , 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 5 de densidad de energía es invariable al giro para materiales isotrópicos, la primera tensión de Piola-Kirchhoff puede computarse por
A
P(F) = UP(F)Vr = U ^ ^ V 7-. (30)
dF
Dado que el F es una matriz diagonal que contiene las deformaciones G1,G2,G3 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 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:
Figure imgf000022_0001
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 xB =
Figure imgf000022_0002
W(X¿ 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 f (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 x0 de anclaje es inicializado y la normal n de contacto es muestreada, tal y como se muestra en la figura 4A. Dado el nodo x0 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:
Figure imgf000023_0001
Con x0 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 ncon el vector t 1 tangente o el vector t 2 bi-normal. Los vectores t 1 y t 2 son ambos perpendiculares a n y entre sí. Además, t 1 apunta al nodo n0 de anclaje en la dirección de xn.
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 f (x) < 0 ) en kn . 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 x0 de anclaje se inicializa y se computa la normal n =
Figure imgf000023_0002
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 x0 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 f t en la dirección tangencial es más grande que la fuerza fn en la dirección normal multiplicada por el coeficiente w de n r r rozamiento cinético debería ser aplicado, es decir,||ft || > wl|fn II, con fn = - n/aq. En este caso, la fuerza tangencial es sostenida por la fuerza normal multiplicada por w de manera que aplica el rozamiento cinético, 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 x0 se permite que se deslice sobre la superficie 402. Dada la fuerza normal, el anclaje x0 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 || \ wl|fn II- La energía Uf potencial tangencial en caso de rozamiento cinético entonces se convierte en:
Uf = ^ k cw n ||ttr (x c ra - x n) ||2. (33)
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 || < wl|fn ||, 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 b. 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 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 varios 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 varios tipos de dispositivos 512 de seguimiento del 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 varios 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.
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, 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 pueden 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 dispositivo 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 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 imita 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).

Claims (16)

REIVINDICACIONES
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 (U crb) 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 (U ) potencial asociada al tejido (216), y una función (U st) 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 (U n) 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.
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 (U crb) 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 (U t ) 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.
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 (U st) 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.
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 (U crb) 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 (U ) potencial asociada al tejido (216), y una función (U st) 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 (U n) 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.
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
ES201830260A 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. Active ES2725128B2 (es)

Priority Applications (4)

Application Number Priority Date Filing Date Title
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.
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
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
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 (1)

Application Number Priority Date Filing Date Title
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 (2)

Publication Number Publication Date
ES2725128A1 true ES2725128A1 (es) 2019-09-19
ES2725128B2 ES2725128B2 (es) 2020-07-22

Family

ID=67906464

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201830260A Active 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.

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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 (7)

* Cited by examiner, † Cited by third party
Title
ANTONYA CSABA ET AL. Parameter computation of the hand model in virtual grasping. 2014 5th IEEE Conference on Cognitive Infocommunications (CogInfoCom), 20141105 IEEE. , 05/11/2014, Páginas 173 - 177 (DOI: doi:10.1109/CogInfoCom.2014.7020440) Todo el documento. *
HIROTA KOICHI ET AL. Interaction with virtual object using deformable hand. 2016 IEEE Virtual Reality (VR), 20160319 IEEE. , 19/03/2016, Páginas 49 - 56 (DOI: doi:10.1109/VR.2016.7504687) <p>Todo el documento.</p> *
KIM JUN-SIK ET AL. Physics-based hand interaction with virtual objects. 2015 IEEE International Conference on Robotics and Automation (ICRA), 20150526 IEEE. , 26/05/2015, Páginas 3814 - 3819 (DOI: doi:10.1109/ICRA.2015.7139730) Todo el documento. *
MANUEL FERRE ET AL. Haptic Device for Capturing and Simulating Hand Manipulation Rehabilitation. IEEE / ASME TRANSACTIONS ON MECHATRONICS, 20111001 IEEE SERVICE CENTER, PISCATAWAY, NJ, US. , 01/10/2011, Vol. 16, Páginas 808 - 815 ISSN 1083-4435, (DOI: doi:10.1109/TMECH.2011.2159807) Todo el documento. *
MIAO FENG ET AL. Real-time deformation simulation of hand-object interaction. Robotics, Automation and Mechatronics (RAM), 2011 IEEE Conference on, 20110917 IEEE. , 17/09/2011, Páginas 154 - 157 ISBN 978-1-61284-252-3 ; ISBN 1-61284-252-6, (DOI: doi:10.1109/RAMECH.2011.6070473) Todo el documento. *
SCHRODER MATTHIAS ET AL. Real-time hand tracking using synergistic inverse kinematics. 2014 IEEE International Conference on Robotics and Automation (ICRA), 20140531 IEEE. , 31/05/2014, Páginas 5447 - 5454 (DOI: doi:10.1109/ICRA.2014.6907660) Todo el documento. *
YING WU ET AL. Capturing articulated human hand motion: a divide-and-conquer approach. Computer Vision, 1999. The Proceedings of the Seventh IEEE Internation al Conference on Kerkyra, Greece 20-27 Sept. 1999, 19990920; 19990920 - 19990927 Los Alamitos, CA, USA,IEEE Comput. Soc, US. , 20/09/1999, Vol. 1, Páginas 606 - 611 ISBN 978-0-7695-0164-2 ; ISBN 0-7695-0164-8, Todo el documento. *

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
WO2019175460A1 (es) 2019-09-19

Similar Documents

Publication Publication Date Title
US10026233B2 (en) Efficient orientation estimation system using magnetic, angular rate, and gravity sensors
JP7437327B2 (ja) 異種入力の補間のための方法およびシステム
Borst et al. Realistic virtual grasping
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
ES2725128B2 (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.
JP2024069598A (ja) 仮想キャラクタの姿勢空間変形のための姿勢空間次元低減
JP4463120B2 (ja) 身まねロボットシステムとその身まね動作制御方法
Verschoor et al. Soft hand simulation for smooth and robust natural interaction
Jin et al. General constrained deformations based on generalized metaballs
US20230061175A1 (en) Real-Time Simulation of Elastic Body
JP2017049238A (ja) デジタルヒューマンモデルのためのビジョン測定量を求めるための方法およびシステム
Saupin et al. Contact model for haptic medical simulations
CN103426196B (zh) 一种流体环境下的关节动画建模方法
KR20200063367A (ko) 딥러닝 기술을 이용하여 비디오 영상을 3d 비디오 영상으로 변환하는 방법 및 장치
Matthews et al. Shape aware haptic retargeting for accurate hand interactions
Teleb et al. Data glove integration with 3d virtual environments
CN110008873B (zh) 面部表情捕捉方法、系统及设备
Wang et al. Six-degree-of-freedom haptic simulation of organ deformation in dental operations
Pihuit et al. Hands on virtual clay
KR102239957B1 (ko) 가상 관절 구(sphere)를 이용한 모션 모델링 방법 및 그 장치
Tsai et al. Two-phase optimized inverse kinematics for motion replication of real human models
CN118823193A (zh) 基于反向动力学的虚拟角色驱动方法及虚拟现实设备
Serrano Strategies to Accelerate Deformable and Rigid Bodies Simulation

Legal Events

Date Code Title Description
BA2A Patent application published

Ref document number: 2725128

Country of ref document: ES

Kind code of ref document: A1

Effective date: 20190919

FG2A Definitive protection

Ref document number: 2725128

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20200722