ES2927183T3 - Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico - Google Patents

Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico Download PDF

Info

Publication number
ES2927183T3
ES2927183T3 ES18707347T ES18707347T ES2927183T3 ES 2927183 T3 ES2927183 T3 ES 2927183T3 ES 18707347 T ES18707347 T ES 18707347T ES 18707347 T ES18707347 T ES 18707347T ES 2927183 T3 ES2927183 T3 ES 2927183T3
Authority
ES
Spain
Prior art keywords
electronic device
pose
measurement
haptic
electronic
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.)
Active
Application number
ES18707347T
Other languages
English (en)
Inventor
José Araujo
Zeid Al-Husseiny
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2927183T3 publication Critical patent/ES2927183T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/016Input arrangements with force or tactile feedback as computer generated output to the user
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a three-dimensional [3D] space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/76Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries based on eigen-space representations, e.g. from pose or different illumination conditions; Shape manifolds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker

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)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Un primer dispositivo electrónico controla un segundo dispositivo electrónico para medir una posición del primer dispositivo electrónico. El primer dispositivo electrónico incluye un sensor de movimiento, un circuito de interfaz de red, un procesador y una memoria. El sensor de movimiento detecta el movimiento del primer dispositivo electrónico. El circuito de interfaz de red se comunica con el segundo dispositivo electrónico. La memoria almacena el código del programa que ejecuta el procesador para realizar operaciones que incluyen, en respuesta a la determinación de que el primer dispositivo electrónico tiene un nivel de movimiento que satisface una regla definida, la transmisión de una solicitud para que el segundo dispositivo electrónico mida una posición del primer dispositivo electrónico. La posición del primer dispositivo electrónico se detecta y luego se almacena en la memoria. Se recibe un reconocimiento del segundo dispositivo electrónico que indica que tiene datos de sensor almacenados que pueden usarse para medir la posición del primer dispositivo electrónico. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico
Campo técnico
La presente descripción se refiere a la interacción de dispositivos hápticos y dispositivos de realidad generada por ordenador, tales como dispositivos de realidad mixta y dispositivos de realidad virtual.
Antecedentes
Los dispositivos hápticos y los dispositivos de Realidad Mixta o Virtual (MR o VR, por sus siglas en inglés) serán una parte cada vez mayor del futuro ecosistema de dispositivos utilizados por la sociedad para la comunicación interpersonal, los juegos y otras aplicaciones. Los sistemas informáticos de realidad mixta aumentan lo que un usuario ve en el mundo real con objetos virtuales generados por ordenador que tienen una pose que hace que los objetos virtuales se presenten ante el usuario como si existieran en el mundo real. Por el contrario, un sistema informático de realidad virtual genera un mundo de objetos completamente virtual, en lugar de superponer los objetos en el mundo real. Ambos tipos de sistemas pueden permitir que un usuario interactúe de una manera aparentemente real o física utilizando equipos electrónicos especiales, tales como un visualizador en forma de visor que muestre objetos generados por ordenador a un usuario y un dispositivo háptico que siga el movimiento del usuario y que pueda proporcionar retroalimentación háptica al usuario. La expresión realidad generada por ordenador (CGR, por sus siglas en inglés) se usa en la presente memoria para referirse colectivamente a sistemas de tipo MR y sistemas de tipo VR. En consecuencia, un sistema CGR descrito en la presente memoria puede ser un sistema MR o un sistema VR, a menos que se defina de otro modo en un ejemplo concreto posteriormente.
En un sistema CGR, un dispositivo háptico puede proporcionar a un usuario retroalimentación háptica que le permite sentir objetos virtuales mientras ve los objetos virtuales a través de una pantalla de un dispositivo CGR. Un problema desafiante con los sistemas CGR es cómo proporcionar alineación entre el sistema de coordenadas del dispositivo háptico, tal como el espacio de trabajo del dispositivo, y el sistema de coordenadas del dispositivo CGR, que se puede usar para visualizar objetos generados por ordenador en 3D que se generan basándose en imágenes de cámara.
Algunos sistemas de realidad mixta conocidos que integran dispositivos hápticos en un mundo CGR utilizan un sistema de seguimiento externo. Por ejemplo, el sistema de la marca GO TOUCH VR y el sistema de la marca Ultrahaptics utilizan el dispositivo de seguimiento de manos de la marca Leap Motion. El producto de la marca HTC Vive realiza un seguimiento de sus dispositivos periféricos y su dispositivo para la cabeza mediante un sistema de seguimiento externo, lo que elimina la necesidad de una alineación del sistema de coordenadas, ya que se emplea el mismo sistema de seguimiento para realizar el seguimiento de todos los dispositivos. Una desventaja del HTC Vive es que debe usarse dentro de una sola habitación y, por lo tanto, no es móvil más allá de esos límites.
Por lo tanto, existe la necesidad de proporcionar un sistema CGR que proporcione una alineación automatizada mejorada de sistemas de coordenadas de dispositivos hápticos y CGR.
El documento US 2017/0220119 A1 describe dispositivos informáticos de realidad mixta que utilizan sensores remotos y sensores locales como dispositivos de entrada. En un ejemplo, un dispositivo informático de realidad mixta comprende un sensor de imagen, un dispositivo de entrada remota, un procesador y un almacenamiento que comprende instrucciones almacenadas. El procesador puede ejecutar las instrucciones almacenadas para realizar el seguimiento del movimiento del objeto y el seguimiento del entorno en función de la salida del sensor de imagen y, en respuesta a la detección de que el dispositivo de entrada remota está en uso, ajustar un parámetro del seguimiento del movimiento mientras se mantiene el seguimiento del entorno.
Compendio
La invención está definida por las reivindicaciones independientes.
Algunas realizaciones descritas en la presente memoria están dirigidas a un primer dispositivo electrónico que controla un segundo dispositivo electrónico para medir una posición del primer dispositivo electrónico. El primer dispositivo electrónico incluye un sensor de movimiento, un circuito de interfaz de red, un procesador y una memoria. El sensor de movimiento está configurado para detectar el movimiento del primer dispositivo electrónico. El circuito de interfaz de red está configurado para comunicarse con el segundo dispositivo electrónico. El procesador está conectado al sensor de movimiento y al circuito de interfaz de red. La memoria almacena código de programa que es ejecutado por el procesador para realizar operaciones, que incluyen responder a una determinación de que el primer dispositivo electrónico tiene un nivel de movimiento detectado por el sensor de movimiento que satisface una regla definida, transmitiendo una solicitud para que el segundo dispositivo electrónico mida una posición del primer dispositivo electrónico. Las operaciones incluyen además detectar y almacenar una posición del primer dispositivo electrónico en la memoria y recibir un acuse de recibo del segundo dispositivo electrónico que indica que ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico.
En algunas realizaciones adicionales, el primer dispositivo electrónico incluye un dispositivo háptico que está configurado para realizar una medición del movimiento del dispositivo háptico por parte de un usuario y/o proporcionar retroalimentación háptica a un usuario. La solicitud se transmite al segundo dispositivo electrónico, que incluye un dispositivo CGR que está configurado para visualizar gráficos como una superposición sobre objetos del mundo real. Desde el dispositivo CGR se recibe una medición de la posición del dispositivo háptico. A continuación, se determina una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas en función de la posición del dispositivo háptico recuperada de la memoria y en función de la medición de la posición del dispositivo háptico recibida del dispositivo CGR. Uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos háptico y CGR y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos háptico y CGR.
Una ventaja potencial de estas operaciones es que la matriz de transformación entre los sistemas de coordenadas se puede generar con una precisión de funcionamiento que se puede repetir de manera más uniforme en relación con los enfoques de la técnica anterior. El segundo dispositivo electrónico mide una posición del primer dispositivo electrónico cuando se determina que el primer dispositivo electrónico tiene un nivel de movimiento que satisface una regla definida, tal como cuando el primer dispositivo electrónico está estacionario. En consecuencia, es más probable que el primer y el segundo dispositivos electrónicos midan la misma posición del primer dispositivo electrónico, lo que aumenta la precisión de la matriz de transformación resultante entre los respectivos sistemas de coordenadas. La regla definida también puede satisfacerse cuando el primer dispositivo electrónico tiene una velocidad constante, ya que la diferencia entre las posiciones medidas por el primer y el segundo dispositivos electrónicos puede compensarse matemáticamente usando la velocidad constante conocida del primer dispositivo electrónico, lo que nuevamente tiene como resultado una mayor precisión de la matriz de transformación resultante.
Algunas otras realizaciones relacionadas están dirigidas a un segundo dispositivo electrónico para medir una posición de un primer dispositivo electrónico en relación con el segundo dispositivo electrónico. El segundo dispositivo electrónico incluye un sensor, un circuito de interfaz de red, un procesador y una memoria. El sensor está configurado para emitir datos de sensor que pueden indicar una posición del primer dispositivo electrónico. El circuito de interfaz de red está configurado para comunicarse con el primer dispositivo electrónico. El procesador está conectado al sensor y al circuito de interfaz de red. La memoria almacena código de programa que es ejecutado por el procesador para realizar operaciones, que incluyen recibir una solicitud para el envío de una medición por parte del segundo dispositivo electrónico de una posición del primer dispositivo electrónico. Las operaciones incluyen además, en respuesta a la solicitud, iniciar operaciones para generar una medición de la posición del primer dispositivo electrónico y almacenar en la memoria datos de sensor emitidos por el sensor que pueden indicar la posición del primer dispositivo electrónico. Se transmite un acuse de recibo que indica que los datos de sensor se han almacenado. Se genera una medición de la posición del primer dispositivo electrónico basándose en los datos de sensor almacenados en la memoria y se transmite dicha medición desde el segundo dispositivo electrónico.
En algunas realizaciones adicionales, las operaciones incluyen además determinar si se ha recibido un mensaje de cancelación que indique que un nivel de movimiento del primer dispositivo electrónico, detectado durante un intervalo de tiempo entre el momento de recepción de la solicitud y el momento de transmisión del acuse de recibo por el segundo dispositivo electrónico, ha dejado de satisfacer la regla definida. La operación para transmitir la medición de la posición del primer dispositivo electrónico se realiza en respuesta a la determinación de que no se ha recibido ningún mensaje de cancelación.
Algunas otras realizaciones relacionadas están dirigidas a un servidor que incluye un circuito de interfaz de red, un procesador y una memoria. El circuito de interfaz de red está configurado para comunicarse con un primer dispositivo electrónico y un segundo dispositivo electrónico. El procesador está conectado al circuito de interfaz de red. La memoria almacena código de programa que es ejecutado por el procesador para realizar operaciones, que incluyen recibir, desde el primer dispositivo electrónico, una medición por parte del primer dispositivo electrónico de la posición del primer dispositivo electrónico. Las operaciones incluyen además recibir de un segundo dispositivo electrónico una medición por parte del segundo dispositivo electrónico de una posición del primer dispositivo electrónico y generar una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas, en respuesta a la posición del primer dispositivo electrónico recibida del primer dispositivo electrónico y la posición recibida del segundo dispositivo electrónico. Uno de los sistemas de coordenadas primero y segundo se usa referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
Algunas realizaciones relacionadas están dirigidas a un método por un primer dispositivo electrónico para controlar un segundo dispositivo electrónico para medir una posición del primer dispositivo electrónico. El método incluye responder a una determinación de que el primer dispositivo electrónico tiene un nivel de movimiento que satisface una regla definida, transmitiendo una solicitud para que el segundo dispositivo electrónico mida una posición del primer dispositivo electrónico y detectando y almacenando la posición del primer dispositivo electrónico en una memoria. Se recibe un acuse de recibo del segundo dispositivo electrónico que indica que ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico.
Algunas otras realizaciones relacionadas están dirigidas a un método por un segundo dispositivo electrónico para medir una posición de un primer dispositivo electrónico en relación con el segundo dispositivo electrónico. El método incluye recibir una solicitud para el envío de una medición por parte del segundo dispositivo electrónico de una posición del primer dispositivo electrónico. En respuesta a la solicitud, el método inicia operaciones para generar una medición de la posición del primer dispositivo electrónico y almacenar en una memoria los datos de sensor emitidos por un sensor, que pueden indicar la posición del primer dispositivo electrónico. Se transmite un acuse de recibo que indica que se han almacenado los datos de sensor. Se genera una medición de la posición del primer dispositivo electrónico basándose en los datos de sensor almacenados en la memoria. La medición de la posición del primer dispositivo electrónico se transmite desde el segundo dispositivo electrónico.
Algunas otras realizaciones relacionadas están dirigidas a un método por un servidor. El método incluye recibir, desde el primer dispositivo electrónico, una medición por parte del primer dispositivo electrónico de la posición del primer dispositivo electrónico. Una medición por parte de un segundo dispositivo electrónico de la posición del primer dispositivo electrónico se recibe desde el segundo dispositivo electrónico. En respuesta a la posición del primer dispositivo electrónico recibida desde el primer dispositivo electrónico y la posición recibida desde el segundo dispositivo electrónico, se genera una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas. Uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
Otros dispositivos electrónicos, servidores y métodos correspondientes de acuerdo con las realizaciones serán o se harán evidentes para un experto en la técnica tras la revisión de los siguientes dibujos y la descripción detallada. Se pretende que todos estos dispositivos electrónicos, servidores y métodos correspondientes adicionales estén incluidos en esta descripción y protegidos por las reivindicaciones adjuntas.
Breve descripción de los dibujos
Los aspectos de la presente descripción se ilustran a modo de ejemplo y no están limitados por los dibujos adjuntos. En los dibujos:
la Figura 1 ilustra un sistema CGR que incluye un dispositivo háptico y un dispositivo CGR que funcionan de acuerdo con algunas realizaciones de la presente descripción;
la Figura 2 ilustra un diagrama de flujo de datos y un diagrama de flujo de operaciones por un dispositivo háptico y un dispositivo CGR que funcionan de acuerdo con algunas realizaciones de la presente descripción;
las Figuras 3a y 3b ilustran un diagrama de flujo de datos y un diagrama de flujo de operaciones por un dispositivo háptico, un servidor y un dispositivo CGR que funcionan de acuerdo con algunas realizaciones de la presente descripción;
las Figuras 4a y 4b ilustran otro diagrama de flujo de datos y otro diagrama de flujo de operaciones por un dispositivo háptico, un servidor y un dispositivo c Gr que funcionan de acuerdo con algunas otras realizaciones de la presente descripción;
la Figura 5 ilustra otro tipo de dispositivo CGR que tiene una cámara orientada hacia el usuario y que funciona de acuerdo con algunas realizaciones de la presente descripción;
la Figura 6 ilustra un diagrama de flujo de operaciones por un dispositivo CGR para iniciar la generación de una matriz de transformación actualizada de acuerdo con algunas realizaciones de la presente descripción;
la Figura 7 es un diagrama de bloques de componentes del dispositivo háptico que están configurados de acuerdo con algunas otras realizaciones de la presente descripción;
la Figura 8 es un diagrama de bloques de componentes del dispositivo CGR que están configurados de acuerdo con algunas otras realizaciones de la presente descripción; y
la Figura 9 es un diagrama de bloques de componentes del servidor que están configurados de acuerdo con algunas otras realizaciones de la presente descripción.
Descripción detallada
A continuación se describirán más completamente conceptos de la invención con referencia a los dibujos adjuntos, en los que se muestran ejemplos de realizaciones de conceptos de la invención. Sin embargo, los conceptos de la invención pueden incorporarse en muchas formas diferentes y no deben interpretarse como limitados a las realizaciones expuestas en la presente memoria. Más bien, estas realizaciones se proporcionan para que esta descripción sea exhaustiva y completa y transmita completamente el alcance de diversos conceptos presentes de la invención a los expertos en la técnica. También debe señalarse que estas realizaciones no son mutuamente excluyentes. Se puede suponer tácitamente que unos componentes de una realización están presentes/son utilizados en otra realización.
Los sistemas de coordenadas de los dispositivos hápticos y CGR se pueden alinear mediante el uso de matrices de transformación, que permiten la transformación de la ubicación y/o los ángulos de rotación (por ejemplo, ubicación y rotación de un sistema de coordenadas de 6 grados de libertad (DOF, por sus siglas en inglés)) de un objeto o dispositivo referenciado en un sistema de coordenadas a otro sistema de coordenadas. Se puede generar una matriz de transformación utilizando un sensor de un dispositivo CGR, tal como una cámara orientada hacia delante de un dispositivo MR, para detectar la posición (ubicación) del dispositivo háptico en el sistema de coordenadas del dispositivo MR, y los sensores integrados del dispositivo háptico que se utilizan para seguir su movimiento (por ejemplo, basados en los dispositivos Geomagic Touch o GO TOUCH VR) y detectar su posición en el sistema de coordenadas del dispositivo háptico. Basándose en la posición del dispositivo háptico en el sistema de coordenadas del dispositivo háptico y la posición del dispositivo háptico en el sistema de coordenadas del dispositivo CGR, se puede generar una matriz de transformación que relacione los dos sistemas de coordenadas. La precisión de la matriz de transformación puede incrementarse realizando varias mediciones de posición mediante el sensor en el dispositivo háptico y/o varias mediciones de posición mediante el sensor en el dispositivo CGR. Se calcula una matriz de transformación que aproxima mejor la relación entre los dos sistemas de coordenadas, utilizando, por ejemplo, mínimos cuadrados u otros métodos de regresión.
Tal como se usa en la presente memoria, el término "pose" se refiere a la posición y/o el ángulo de rotación de un dispositivo en relación con un sistema de coordenadas definido. Por lo tanto, una pose puede definirse basándose únicamente en la posición multidimensional del dispositivo, los ángulos de rotación multidimensionales del dispositivo o una combinación de los mismos. El término "posición o pose" se refiere a la posición, el ángulo de rotación o una combinación de los mismos.
Como se explicó anteriormente, alinear los sistemas de coordenadas de dos dispositivos electrónicos, tales como un dispositivo háptico y un dispositivo CGR, puede ser un desafío. El desafío aumenta cuando los dos dispositivos no están sincronizados en las mediciones de sus sensores, tal como cuando el dispositivo háptico mide su posición a 1 kHz (por ejemplo, como lo hace Geomagic Touch) y cuando el dispositivo CGR toma imágenes a 60 Hz (por ejemplo, como lo hace Microsoft Hololens). Por ejemplo, el dispositivo Hololens puede tardar entre 10 ms y 50 ms en procesar la imagen que toma de un dispositivo háptico para medir la posición del dispositivo háptico, dependiendo de las otras tareas que se estén ejecutando en el dispositivo Hololens. Para calcular con precisión las transformaciones entre los sistemas de coordenadas, un sistema debe garantizar que el momento en que se realizan las mediciones de ambos dispositivos que se utilizan para calcular la transformación sea el mismo, es decir, que los pares de posiciones correspondan a mediciones tomadas al mismo tiempo, o ser consciente del desfase de tiempo entre los momentos en que se realizan las mediciones.
Un enfoque para garantizar la detección casi simultánea de las posiciones de los dispositivos es configurar el sistema CGR para sincronizar operativamente las operaciones de detección por los dispositivos y calcular una latencia de medición en Hololens y luego encontrar la medición de posición del dispositivo háptico que corresponde al mismo momento que la medición de posición capturada por Hololens. Este enfoque de detección sincronizada, que requiere una operación y un algoritmo de sincronización complejos, es propenso a errores de sincronización (por ejemplo, deriva en los relojes de sincronización de los dispositivos), está sujeto a los efectos perjudiciales en la precisión de la sincronización debido a la variabilidad de la latencia en la red de comunicación entre los dispositivos y requiere el paso frecuente de mensajes entre los dispositivos relacionados con el mantenimiento y la medición de la sincronización.
Las realizaciones de la presente descripción están dirigidas a proporcionar una alineación mejorada de los sistemas de coordenadas entre dos dispositivos electrónicos, tales como un dispositivo háptico y un dispositivo MR u otro dispositivo CGR. El dispositivo háptico puede detectar su posición en su propio sistema de coordenadas, y el dispositivo CGR puede detectar la posición del dispositivo háptico en el sistema de coordenadas del dispositivo CGR, que puede ser el mismo que se usa para una cámara del dispositivo CGR.
Algunas realizaciones de la presente descripción pueden realizar la alineación de los sistemas de coordenadas de dos dispositivos utilizando un algoritmo operativo de complejidad reducida y reduciendo la necesidad de comunicaciones entre los dispositivos. En algunas realizaciones, un dispositivo háptico usa su medición de posición relativamente rápida para identificar cuándo el dispositivo háptico está estático, es decir, la velocidad del dispositivo está por debajo de un umbral de nivel de ruido, y en respuesta envía una solicitud al dispositivo CGR para que detecte la posición del dispositivo háptico (en el sistema de coordenadas del dispositivo CGR), y el dispositivo háptico mismo también captura su propia posición (en el sistema de coordenadas del dispositivo háptico). Dado que el dispositivo háptico está estático, la posición detectada tanto por el dispositivo CGR como por el dispositivo háptico es la misma y, por lo tanto, elimina la necesidad de que las operaciones de alineación utilicen cualquier información de tiempo relativa a cuándo ha completado cada dispositivo su detección de posición respectiva. Se pueden realizar varias mediciones detectadas de diferentes posiciones estáticas en cada dispositivo y usar las mismas para calcular la transformación entre los dos sistemas de coordenadas para mejorar la alineación de los sistemas de coordenadas. Como se explicará con más detalle posteriormente, el dispositivo háptico también puede activar la detección de su posición por sí mismo y la detección de su posición por parte del dispositivo CGR aunque el dispositivo háptico se esté moviendo, tal como cuando el dispositivo háptico determina que tiene una velocidad sustancialmente constante (es decir, cuando su velocidad de traslación y/o rotación no cambia más de una cantidad umbral definida durante un intervalo de tiempo).
Aunque en la presente memoria se describen diversas realizaciones en el contexto de dispositivos MR y otros dispositivos CGR utilizados en combinación con dispositivos hápticos, estas realizaciones no se limitan a los mismos. Las realizaciones de la presente descripción pueden funcionar para proporcionar una alineación de sistemas de coordenadas utilizados como referencias para cualesquiera dos tipos de dispositivos electrónicos, tal como entre cualquier dispositivo de visualización (por ejemplo, dispositivo MR, dispositivo VR, pantalla de teléfono inteligente) que esté configurado para detectar la posición de otro dispositivo que esté configurado para detectar su propia posición (por ejemplo, un dispositivo háptico o un objeto de juego que el usuario pueda mover, tal como un controlador de juego o una espada de juego, un volante pistola, etc.).
La Figura 1 ilustra un sistema CGR que incluye un dispositivo háptico 130 y un dispositivo CGR 100 que funcionan de acuerdo con algunas realizaciones de la presente descripción.
Con referencia a la Figura 1, el dispositivo CGR 100 de ejemplo puede ser un dispositivo MR que tenga una cámara 110 orientada hacia delante que esté configurada para detectar ópticamente la posición del dispositivo háptico 130. El dispositivo CGR 100 puede configurarse para visualizar objetos gráficos como una superposición sobre objetos del mundo real que se pueden ver a través de la cámara 110 y/o que se pueden ver a través de una pantalla transparente (por ejemplo, Google Glass). Los objetos gráficos pueden ser generados por el dispositivo MR y/o por el servidor 140. El dispositivo CGR 100 puede incluir uno o más altavoces 120.
El dispositivo háptico 130 incluye sensores integrados que detectan la posición actual del dispositivo háptico 130. El dispositivo háptico 130 puede incluir un dispositivo 750 de generación de retroalimentación háptica (Figura 7), que está configurado para proporcionar retroalimentación háptica a un usuario, tal como retroalimentación de fuerza y/o retroalimentación de vibración. Los sensores integrados pueden incluir un sensor 740 de movimiento (Figura 7), codificadores de posición de rotación y/o traslación, un sistema de posicionamiento infrarrojo (IR) y/u otro sensor configurado para detectar la posición o pose actual del dispositivo háptico 130. El dispositivo háptico 130 puede incluir componentes del producto Geomagic Touch. En una realización, la posición o pose se mide a 1 kHz usando codificadores en los motores del dispositivo háptico 130. El dispositivo háptico 130 y el dispositivo CGR 100 incluyen circuitos de interfaz de red, que pueden configurarse para comunicarse a través de cables y/o enlaces de comunicación inalámbricos directamente entre sí y/o a través de un servidor 140 u otro dispositivo (por ejemplo, un enrutador o relé de red).
El dispositivo CGR 100 puede detectar su posición o pose actual usando la cámara 110 y/o usando un sensor de movimiento, tal como una Unidad de Medición Inercial, configurada para detectar la posición o pose actual del dispositivo háptico 130. Como alternativa, el dispositivo CGR 100 puede detectar la posición o pose actual del dispositivo háptico 130 utilizando la cámara 110, transmisores y receptores de RF separados (por ejemplo, radios de Banda Ultraancha o Wi-Fi) configurados para realizar una triangulación de señales de RF transmitidas al y/o recibidas del dispositivo háptico 130, y/o usando otro sensor configurado para detectar la posición o pose actual del dispositivo háptico 130. El dispositivo CGR 100 puede incluir componentes del producto Microsoft Hololens, tales como su cámara y circuitería de comunicación.
En la descripción posterior de las realizaciones de ejemplo, la posición del dispositivo háptico 130 en coordenadas homogéneas se denomina P, donde P = [p 1]T ([...]T representa la transpuesta de una matriz [...]). El término p es un vector y p = [X,Y,Z] indica la posición tridimensional (3D) del dispositivo háptico 130 en coordenadas cartesianas. Además, el término S(P) se define como un conjunto de todas las posiciones registradas del dispositivo háptico 130 en el sistema de coordenadas del dispositivo háptico 130. La posición del dispositivo háptico 130 en relación con un sistema de coordenadas del dispositivo CGR 100 se denomina PCGR, en coordenadas homogéneas, donde PCGR = [pCGR 1]T y pCGR = [Xcgr,Ycgr,Zcgr] está en coordenadas cartesianas. El conjunto de posiciones del dispositivo CGR 100 es SCGR(PCGR). El conjunto de cada par de posiciones del dispositivo háptico detectadas tanto por el dispositivo háptico 130 como por el dispositivo CGR 100 se almacenan en un conjunto Q(P,PCGR).
Además, el término Vp se refiere a la velocidad de traslación y el término Valfa se refiere a la velocidad de rotación. El término Z(f) se refiere a una estimación de la velocidad V, t segundos en el futuro, que puede estimarse basándose en el análisis de la aceleración del movimiento y/o patrones de movimiento previos que haya realizado el usuario.
El término épsilon se refiere a un valor constante que puede ser definido por el usuario y/o por una aplicación ejecutable.
En el ejemplo de la Figura 1, el dispositivo háptico 130 está configurado para detectar su pose en un primer sistema de coordenadas de 6 DOF, ilustrado como direcciones X', Y', Z' de traslación y direcciones 0x', 0y', 0z' de rotación, que pueden corresponder a balanceo, cabeceo y guiñada. De manera similar, el dispositivo CGR 100 está configurado para detectar la posición del dispositivo háptico 130 en un segundo sistema de coordenadas de 6 DOF, ilustrado como direcciones X, Y, Z de traslación y direcciones 0x, 0y, 0z de rotación, que pueden corresponder a balanceo, cabeceo y guiñada. No obstante, las realizaciones se pueden usar con cualquier sistema de coordenadas multidimensional.
De acuerdo con diversas realizaciones de la presente memoria, el dispositivo háptico 130, el dispositivo CGR 100 y/o el servidor 140 están configurados para generar una matriz de transformación para transformar una pose (por ejemplo, posición, ángulo de rotación y/o una combinación de los mismos) referenciada en uno de los sistemas de coordenadas primero y segundo al otro de los sistemas de coordenadas primero y segundo, y además pueden generar otra matriz de transformación para transformar una pose en la otra dirección, del otro de los sistemas de coordenadas primero y segundo al uno de los sistemas de coordenadas primero y segundo. El dispositivo háptico 130 puede generar la matriz de transformación y comunicarla al dispositivo CGR 100, de modo que el dispositivo CGR 100 pueda ajustar la pose de objetos que visualice en un dispositivo 850 de visualización (Figura 8) para un usuario.
Por ejemplo, un objeto virtual puede tener propiedades hápticas que se definan en el primer sistema de coordenadas referenciado por el dispositivo háptico 130. El dispositivo CGR 100 puede recibir metadatos sobre el objeto virtual, tal como desde el propio dispositivo háptico 130 y/o el servidor 140, donde los metadatos pueden incluir la forma, el sombreado de color y la pose del objeto virtual en relación con el primer sistema de coordenadas. El dispositivo háptico 130 puede transmitir la matriz de transformación al dispositivo CGR 100 para hacer que el dispositivo CGR 100 transforme los metadatos (por ejemplo, pose) del objeto virtual del primer sistema de coordenadas del dispositivo háptico 130 al segundo sistema de coordenadas del dispositivo CGR 100. El dispositivo CGR 100 puede entonces visualizar el objeto virtual usando los metadatos transformados en un dispositivo de visualización para que lo vea un usuario. Estas operaciones permiten que el objeto virtual se ilustre con mayor precisión y que sus propiedades hápticas se rastreen operativamente en relación con los objetos reales, tales como los dedos, la mano, el brazo u otro objeto físico del usuario.
Las propiedades hápticas del objeto virtual pueden hacer que el dispositivo CGR 100 controle el dispositivo háptico 130 para proporcionar retroalimentación háptica a un usuario cuando se cumplan las propiedades hápticas, tal como cuando se determine que el dedo de un usuario ha tocado posicionalmente una superficie del objeto virtual. Como alternativa o adicionalmente, las propiedades hápticas del objeto virtual pueden hacer que el dispositivo CGR 100 mueva y/o gire el objeto virtual visualizado o cambie de otro modo su apariencia visualizada en respuesta a la determinación de que se cumplen las propiedades hápticas, tal como cuando se determine que el dedo del usuario ha tocado posicionalmente la superficie del objeto virtual.
A la inversa, un nuevo objeto virtual creado en un segundo sistema de coordenadas del dispositivo CGR 100 puede enviar sus metadatos al dispositivo háptico 130 para, por ejemplo, controlar la retroalimentación proporcionada por el dispositivo háptico 130 a un usuario y/o para controlar la determinación de posición del dispositivo háptico 130 en relación con el nuevo objeto virtual. El dispositivo háptico 130 usa los metadatos para calcular una matriz de transformación que se usa para transformar la pose del objeto virtual del segundo sistema de coordenadas del dispositivo CGR 100 al primer sistema de coordenadas del dispositivo háptico 130.
La Figura 2 ilustra un diagrama de flujo de datos y un diagrama de flujo de operaciones ejemplares adicionales que pueden ser realizadas por un dispositivo háptico 130 y un dispositivo c Gr 100 que funcionan de acuerdo con algunas realizaciones de la presente descripción. La Figura 7 es un diagrama de bloques de componentes del dispositivo háptico que están configurados de acuerdo con algunas otras realizaciones de la presente descripción, y la Figura 8 es un diagrama de bloques de componentes del dispositivo CGR que pueden usarse en el dispositivo CGR 100 y/o el dispositivo CGR 500 descrito anteriormente de acuerdo con algunas otras realizaciones de la presente descripción.
Haciendo referencia a la Figura 2 con referencia adicional a las Figuras 7 y 8, que se describirán posteriormente con más detalle, el dispositivo háptico 130 controla el dispositivo CGR 100 para medir una posición del dispositivo háptico 130. El dispositivo háptico 130 de la Figura 2 está configurado para determinar una matriz de transformación entre el primer y el segundo sistemas de coordenadas de la Figura 1.
El dispositivo háptico incluye un sensor 740 de movimiento, una interfaz 730 de red, un procesador 710 y una memoria 720. El sensor 740 de movimiento está configurado para detectar el movimiento del dispositivo háptico 130. El circuito 730 de interfaz de red está configurado para comunicarse con el dispositivo CGR 100, tal como a través de comunicaciones inalámbricas y/o por cable directas, y/o con el servidor 140. El procesador 710 está conectado al sensor 740 de movimiento y al circuito 730 de interfaz de red. La memoria 720 almacena código de programa que es ejecutado por el procesador 710 para realizar operaciones que se explican posteriormente con respecto a la Figura 2.
El dispositivo CGR 100 mide una posición de un dispositivo háptico 130 en relación con el dispositivo CGR 100, incluye un sensor 110, un circuito 830 de interfaz de red, un procesador 810 y una memoria 820. El sensor 110 está configurado para emitir datos de sensor que pueden indicar una posición del dispositivo háptico 130. El circuito 830 de interfaz de red está configurado para comunicarse con el dispositivo háptico 130. El procesador 810 está conectado al sensor 110 y al circuito 830 de interfaz de red. La memoria 820 almacena código de programa que es ejecutado por el procesador 810 para realizar operaciones que también se explican posteriormente con respecto a la Figura 2.
El dispositivo háptico puede comunicar 200 una solicitud de emparejamiento al dispositivo CGR 100, que en respuesta puede recibir 210 la solicitud. El usuario puede iniciar la operación 200 pulsando un botón o iniciando una aplicación ejecutada por el dispositivo háptico 130. La operación 200 puede activarse adicionalmente o como alternativa cuando se determine que es necesaria la alineación o la alineación actualizada del sistema de coordenadas, tal como cuando la active un usuario y/o la active automáticamente el dispositivo CGR 100 como se describirá posteriormente con respecto a la Figura 6. El dispositivo CGR 100 puede usar una cámara orientada hacia los ojos para capturar imágenes de la córnea del usuario, que analiza para determinar cuándo hay una desalineación excesiva entre los gráficos para el objeto virtual generado por ordenador visualizado en un dispositivo 850 de visualización del dispositivo CGR 100 y un objeto del mundo real visto por el usuario. El dispositivo CGR 100 puede entonces activar la actualización de la matriz de transformación cuando haya una desalineación excesiva.
Como se explicará posteriormente con más detalle con respecto a la Figura 6, la imagen de la córnea se puede analizar para identificar la existencia de una desalineación excesiva entre el primer y el segundo sistemas de coordenadas, tal como cuando un objeto virtual que deba alinearse con un objeto real específico tenga una desalineación excesiva entre los mismos.
El sensor, por ejemplo, la cámara 110 orientada hacia delante, puede apagarse cuando no se use, para ahorrar energía. El dispositivo CGR 100 puede responder a la solicitud encendiendo 212 el sensor que utilizará para medir la posición del dispositivo háptico 130. El dispositivo háptico 130 opera el sensor 740 de movimiento para detectar 202 su movimiento. En respuesta a la determinación 204 de que el dispositivo háptico 130 tiene un nivel de movimiento detectado por el sensor 740 de movimiento que satisface una regla definida, el dispositivo háptico 130 transmite 206 una solicitud para que el dispositivo CGR 100 mida una posición del dispositivo háptico 130.
El dispositivo háptico 130 puede determinar que su nivel de movimiento satisface la regla definida cuando, por ejemplo, existan una o más de las siguientes condiciones:
a) Vp <= épsilon
b) //(t) <= épsilon
En una realización, el valor épsilon es aproximadamente 0 u otro valor de umbral definido. Un valor épsilon de 0 puede ser difícil de observar, ya que el dispositivo háptico 130 puede experimentar movimientos muy pequeños y/o la salida del sensor 740 de movimiento puede verse afectada por ruido y/o deriva. En consecuencia, el valor de épsilon se puede elegir en función del nivel de precisión deseado para la matriz de transformación resultante utilizada para la alineación de los sistemas de coordenadas. A continuación, la posición P del dispositivo háptico se almacena en S y Q. La regla definida puede incluir además determinar si la posición actual medida P ya está en un conjunto de posiciones registradas S y/o si la posición actual medida ha expirado debido a un umbral de tiempo transcurrido desde su determinación.
La condición (b) anterior puede ser más ventajosa en general, ya que se puede realizar una solicitud de medición en el futuro, lo que reduce la latencia para recibir una medición de posición desde el dispositivo CGR 100. Una solicitud de medición del dispositivo háptico 130 al dispositivo CGR 100 y en funcionamiento para capturar una imagen provoca una latencia distinta de cero. La latencia puede ser suficiente para que se produzca un movimiento del dispositivo háptico 130. Sin embargo, el uso de una solicitud predictiva permite la compensación computacional de dicha latencia y una alineación más uniforme de los sistemas de coordenadas a pesar del movimiento del dispositivo háptico 130.
La medición posicional del dispositivo háptico 130 por el dispositivo CGR 100 puede mejorarse limitando la medición para que ocurra cuando el dispositivo háptico 130 tenga una velocidad de rotación que esté por debajo de un umbral definido.
En una realización adicional, se puede solicitar al usuario, por ejemplo, a través de la pantalla del dispositivo CGR 100, que deje de mover el dispositivo háptico 130 cuando se reconozca que se requiere una medición de posición. De manera similar, se le puede pedir al usuario que mueva el dispositivo háptico 130 a una posición o a un par de posiciones diferentes, que todavía no formen parte del conjunto S y Q, respectivamente. Tal guía puede proporcionarse al usuario mediante retroalimentación háptica proporcionada a través del dispositivo háptico 130, mediante retroalimentación de audio a través del altavoz 120 del dispositivo CGR 100 y/o mediante información visualizada en el dispositivo 850 de visualización del dispositivo CGR 100.
Con referencia adicional a la Figura 2, cuando se satisface la regla definida, el dispositivo háptico 130 detecta y almacena 208 la posición del dispositivo háptico 130 en la memoria 720. El dispositivo CGR 100 recibe 214 la solicitud y en respuesta inicia 216 operaciones para generar una medición de la posición del dispositivo háptico 130. El dispositivo CGR 100 almacena 218 en la memoria 820 datos de sensor emitidos por el sensor, por ejemplo, una imagen digital procedente de la cámara 110, que pueden indicar la posición del dispositivo háptico 130. El dispositivo CGR 100 transmite 220 entonces un acuse de recibo que indica que los datos de sensor han sido almacenados.
El dispositivo háptico 130 recibe 222 el acuse de recibo del dispositivo CGR 100 que indica que ha almacenado los datos de sensor que se pueden usar para medir la posición del dispositivo háptico 130. El dispositivo háptico 130 puede determinar 224 si se ha producido un estado de cancelación en el que un nivel de movimiento del dispositivo háptico 130, que se detecta durante un intervalo de tiempo entre el momento en que se transmitió 206 la solicitud al dispositivo CGR 100 y el momento en que se recibió 222 el acuse de recibo del dispositivo CGR 100, ha dejado de satisfacer la regla definida. En respuesta al estado de cancelación existente, el dispositivo háptico 130 transmite 226 un mensaje de cancelación al dispositivo CGR 100 para cancelar las operaciones para medir la posición del dispositivo háptico 130.
En una realización ilustrativa, cuando el dispositivo háptico 130 no se ha movido o tiene de otro modo un movimiento que satisface la regla definida, se realizan operaciones adicionales para determinar una matriz de transformación entre el primer y el segundo sistemas de coordenadas. Por el contrario, cuando se determina que el dispositivo háptico 130 se ha movido o ha tenido de otro modo un movimiento que no haya satisfecho una regla definida, se transmite un mensaje al dispositivo CGR 100 para cancelar su medición actual de la posición del dispositivo háptico 130.
Sea T1 el momento en que se transmitió 206 la solicitud de una medición al dispositivo CGR 100 y sea T2 el momento en que se recibió 222 el acuse de recibo (ACK, por sus siglas en inglés), cuando se determina que el dispositivo háptico 130 ha tenido un movimiento que ha violado la regla definida durante el intervalo de tiempo entre T1 y T2, se transmite 226 un mensaje al dispositivo CGR 100 para cancelar la medición, dado que la indicación de los datos de sensor almacenados de la posición del dispositivo háptico ya no es válida. Por el contrario, cuando se determina que el dispositivo háptico 130 no ha tenido un movimiento que haya violado la regla definida durante el intervalo de tiempo entre T1 y T2, el dispositivo háptico 130 procede con operaciones para determinar la matriz de transformación.
El tiempo T2-T1 puede basarse en o ser igual a Delta_N*2 Delta_C, donde Delta_N es la latencia de la red, y Delta_C es el tiempo entre el momento en que se transmite 206 la solicitud de una nueva imagen y el momento en que la imagen se adquiere y almacena en la memoria del dispositivo CGR 100 para el procesamiento posterior para determinar la posición del dispositivo háptico 130. Delta_C puede definirse en función de la frecuencia de imagen de la cámara (por ejemplo, 60 Hz), y la latencia de la red puede ser de aproximadamente 1 ms a aproximadamente 5 ms dependiendo del protocolo de comunicación de la red y la ruta utilizada para las comunicaciones, ya sea que las comunicaciones se retrasen debido a la compartición de recursos de comunicación con otros dispositivos y/u otras aplicaciones en los mismos dispositivos. Por lo tanto, T2-T1 puede ser de aproximadamente 20 ms, que es entonces la duración aceptable durante la cual el dispositivo háptico no debe moverse o no debe tener de otro modo un movimiento que exceda la regla definida.
Para el caso en el que se usa un servidor 140 para recoger la posición medida tanto del dispositivo háptico 130 en el dispositivo CGR 100 como para realizar operaciones para determinar la matriz de transformación utilizada para las transformaciones de alineación de los sistemas de coordenadas, si se recibe un mensaje del dispositivo háptico 130 con información de que el dispositivo háptico 130 se ha movido, Delta_B segundos después de recibir el ACK del dispositivo CGR 100, donde Delta_B es mayor que el Delta_N máximo admisible, entonces el servidor 140 transmite un mensaje al dispositivo CGR 100 para cancelar su recogida de las posiciones medidas y su realización de operaciones para determinar la matriz de transformación.
Con referencia adicional a la Figura 2, el dispositivo CGR 100 determina 228 si se ha recibido un mensaje de cancelación que indique que un nivel de movimiento del dispositivo háptico 130, que se detecta durante un intervalo de tiempo entre el momento en que se recibió 214 la solicitud y el momento en que se transmitió 220 el acuse de recibo, ha dejado de satisfacer la regla definida. En respuesta a la no recepción de un mensaje de cancelación, el dispositivo CGR 100 completa la generación 230 de una medición de la posición del dispositivo háptico 130 basándose en los datos de sensor almacenados en la memoria, y transmite 232 la medición de la posición del dispositivo háptico 130. En consecuencia, la transmisión de la medición de la posición del dispositivo háptico 130 se realiza en respuesta a la determinación 228 de que no se ha recibido ningún mensaje de cancelación.
En una realización, el dispositivo CGR 100 usa un algoritmo de estimación de posición, tal como una operación de identificación de posición basada en visión, que procesa una foto digital del dispositivo háptico 130 por la cámara 110 almacenada 218 en la memoria, para estimar la posición del háptico dispositivo 130 en el segundo sistema de coordenadas del dispositivo CGR 100. El acuse de recibo (ACK), que indica que la foto digital ha sido capturada, se envía 220 al dispositivo háptico 130. El algoritmo de estimación de posición continúa ejecutándose para estimar la posición del dispositivo háptico 130 usando la foto digital almacenada, aunque el mensaje de acuse de recibo se transmite 220 tan pronto como se determina que la foto digital está almacenada en la memoria.
El algoritmo de estimación de posición basado en visión puede determinar la posición en función de la identificación de uno o más marcadores conectados a o visibles en el dispositivo háptico 130, una parte de la carcasa del dispositivo háptico 130 y/u otra característica identificable visualmente del dispositivo háptico 130. El algoritmo puede estar basado en un algoritmo usado por el producto Hololens, que usa HololensARToolKit que tarda entre 20 y 50 ms desde que captura una imagen digital hasta que emite la estimación de posición de un marcador unido al dispositivo háptico 130. Los algoritmos de estimación de posición basados en visión pueden, como alternativa o adicionalmente, basarse en uno o más algoritmos proporcionados a través de Open Source Computer Vision Library (OpenCV).
En algunas otras realizaciones, la posición del dispositivo háptico se estima utilizando transmisores y receptores de RF separados (por ejemplo, radios de Banda Ultraancha o Wi-Fi) configurados para realizar una triangulación de señales de RF transmitidas y/o recibidas desde el dispositivo háptico 130.
El dispositivo háptico 130 recibe 234 la medición de la posición del dispositivo háptico 130 que está referenciada en el segundo sistema PAR de coordenadas del dispositivo CGR 100. La posición medida del dispositivo háptico en el segundo sistema PCGR de coordenadas se puede almacenar en SCGR y Q.
El dispositivo háptico 130 determina 236 en respuesta una matriz de transformación para transformar una pose (es decir, posición, ángulo de rotación y/o combinación de los mismos) referenciada en uno de los sistemas de coordenadas primero y segundo en una pose referenciada en el otro de los sistemas de coordenadas primero y segundo, sobre la base de la posición del dispositivo háptico 130 recuperada de la memoria del dispositivo háptico 130 y sobre la base de la posición del dispositivo háptico 130 recibida del dispositivo CGR 100.
En una realización, cuando el número de vectores de posición linealmente independientes en el conjunto Q es mayor que N, es decir, rango(Q)>=N, se puede realizar el cálculo de la matriz de transformación entre el primer sistema de coordenadas del dispositivo háptico 130 y el segundo sistema de coordenadas del dispositivo CGR 100. Para que el cálculo de la matriz de transformación se realice tanto para la posición como para la orientación, el número de vectores linealmente independientes en el conjunto Q es mayor que N >= 12 (que es el número mínimo de parámetros que se han de identificar en la matriz de transformación). El cálculo de la matriz de transformación se puede realizar mediante operaciones de mínimos cuadrados donde las operaciones encuentran la transformada T, que relaciona los dos sistemas de coordenadas como PCGR = T*P, donde
R
pCGR = [p C G R -|]T p = [p 1 ]T, y T = [0 ,0 ,0 ]
Figure imgf000010_0001
R=
Figure imgf000010_0002
donde Lr31 r33 con /seIR, y f = [h, fe, fe]1 con f , e l . Sea M = [P(1)T; P(2)T; P(n)T] y MCGR = [PCGR(1) ,T-PCGR(2)T; ...; PCGR(n)T] sea una matriz columna compuesta de las mediciones de pose P y PCGR para todas las mediciones i en el conjunto Q, respectivamente. La transformada T se obtiene como la transformada que minimiza ||M*TT -Mcgr||. También se pueden utilizar otros métodos, tales como la Transformación Lineal Directa (DLT, por sus siglas en inglés), para calcular la matriz de transformación.
La matriz de transformación puede usarse 238 para controlar el dispositivo háptico 130 y/o puede enviarse al dispositivo CGR 100 y/o al servidor 140. Por ejemplo, la matriz de transformación puede usarse para transformar una pose del dispositivo háptico 130 de uno de los sistemas de coordenadas primero y segundo al otro de los sistemas de coordenadas primero y segundo, para generar una pose transformada. La generación de retroalimentación háptica por el dispositivo háptico 130 puede controlarse basándose en la pose transformada. Como alternativa o adicionalmente, el dispositivo CGR 100 puede controlarse 240 basándose en la matriz de transformación, tal como visualizando en un dispositivo de visualización un objeto gráfico con una pose que se determine basándose en la matriz de transformación.
En algunas realizaciones, las operaciones para determinar 204 que el nivel de movimiento detectado por el sensor 740 de movimiento satisface la regla definida, tal como cuando el dispositivo háptico 130 permanece estacionario durante un intervalo de tiempo entre el momento en que se ha transmitido 206 la solicitud (momento T1) al dispositivo CGR 100 y el momento en que se ha recibido 222 el acuse de recibo (momento T2) desde el dispositivo CGR 100.
Por el contrario, en algunas otras realizaciones, la regla definida se satisface cuando el dispositivo háptico 130 permanece estacionario o tiene una velocidad que no cambia más de una cantidad umbral definida durante el intervalo de tiempo entre T1 y T2. La operación para estimar una posición actualizada del dispositivo háptico 130 se realiza entonces sobre la base de una cantidad determinada en la que haya cambiado la posición del dispositivo háptico 130 recuperada de la memoria 720 debido a la velocidad del dispositivo háptico 130 durante al menos un parte del intervalo de tiempo entre T1 y T2. El dispositivo háptico 130 recibe 234 una medición de la posición del dispositivo háptico 130 desde el dispositivo CGR 100. El dispositivo háptico 130 puede entonces determinar 236 una matriz de transformación para transformar una pose referenciada en uno de los sistemas de coordenadas primero y segundo en una pose referenciada en el otro de los sistemas de coordenadas primero y segundo sobre la base de la posición actualizada del dispositivo háptico 130 y sobre la base de la medición de la posición del dispositivo háptico 130 recibida desde el dispositivo CGR 100.
Las Figuras 3a y 3b ilustran un diagrama de flujo de datos y un diagrama de flujo de operaciones por un dispositivo háptico 130, un servidor 140 y un dispositivo CGR 100 que funcionan de acuerdo con algunas realizaciones de la presente descripción. En las operaciones ilustradas, el servidor 140 genera la matriz de transformación entre el primer y el segundo sistemas de coordenadas del dispositivo háptico 130 y el dispositivo CGR 100.
Haciendo referencia a las Figuras 3a y 3b, el dispositivo háptico 130 genera 300 una solicitud de emparejamiento que se comunica al dispositivo CGR 100 para su recepción 304 y que puede retransmitirse 302 a través del servidor 140. El dispositivo háptico 130 detecta 306 su movimiento y espera a una determinación 308 de que el nivel de movimiento satisface una regla definida, tal como estar sustancialmente inmóvil o tener una velocidad constante aceptable. En respuesta a esa determinación, el dispositivo háptico 130 transmite 310 una solicitud al dispositivo CGR 100 para el envío de una medición de la posición del dispositivo háptico al servidor 140. El dispositivo CGR 100 recibe 330 la solicitud de medición, que puede ser reenviada u observada 312 de otro modo por el servidor 140.
El dispositivo háptico 130 detecta 316 su posición actual, por ejemplo, a través del sensor 740 de movimiento, y transmite 318 la posición detectada al servidor 140. El servidor inicia 314 operaciones para generar una métrica de transformación en respuesta a la observación 312 de la solicitud o en respuesta a la recepción 320 de la medición desde el dispositivo háptico 130. El dispositivo CGR 100 responde a la solicitud recibida 330 iniciando 332 operaciones para generar una medición de la posición del dispositivo háptico y almacena 334 datos de sensor emitidos por el sensor, por ejemplo, una imagen digital de la cámara 110, que pueden ser utilizados por el dispositivo CGR 100 o el servidor 140 para determinar la posición del dispositivo háptico. En respuesta al almacenamiento de los datos de sensor, el dispositivo CGR 100 transmite 336 un acuse de recibo para su recepción 340 por parte del dispositivo háptico 130. El servidor 140 puede reenviar u observar 338 de otro modo el acuse de recibo.
El dispositivo CGR 100 transmite 350 una medición de la posición del dispositivo háptico al servidor 140, que es recibida 370 por el servidor 140. El dispositivo háptico 130 determina 360, ya sea antes o después de recibir 370 la medición de posición del dispositivo háptico, si se ha movido durante el intervalo de tiempo entre el momento en que se transmitió 310 la solicitud (momento T1) y el momento en que se recibió 340 el acuse de recibo (momento T2), o si ha tenido algún otro movimiento durante el intervalo de tiempo que no haya satisfecho una regla definida (por ejemplo, tener una velocidad de traslación y/o de rotación sustancialmente constante que satisfaga la regla definida).
Cuando el dispositivo háptico 130 haya tenido un movimiento que no haya satisfecho la regla definida, se puede transmitir 362 un mensaje de cancelación al servidor 140 que, cuando el servidor 140 lo recibe 372, hace que el servidor 140 cancele la generación de la matriz de transformación sobre la base de la medición de posición por el dispositivo háptico 130 y la medición de posición por el dispositivo CGR 100. Por el contrario, cuando el dispositivo háptico 130 haya permanecido estático o tenido de otro modo un movimiento que haya satisfecho la regla definida, el servidor 140 completa la generación 374 de la matriz de transformación entre el primer y el segundo sistemas de coordenadas.
La matriz de transformación se puede usar entonces para controlar 380 la generación de retroalimentación háptica por parte del dispositivo háptico. Como alternativa o adicionalmente, la matriz de transformación se puede usar para controlar 380 la visualización en un dispositivo de visualización del dispositivo CGR 100 de un objeto gráfico con una pose determinada sobre la base de la matriz de transformación. Por ejemplo, el dispositivo CGR 100 puede usar la matriz de transformación para manipular un objeto gráfico que se visualice, tal como posicionando, rotando, ajustando el sombreado de color del objeto y/o ajustando la forma del objeto sobre la base de las métricas de procesamiento del objeto a través de la matriz de transformación.
Las Figuras 4a y 4b ilustran otro diagrama de flujo de datos y diagrama de flujo de operaciones por un dispositivo háptico 130, un servidor 140 y un dispositivo CGR 100 que funcionan de acuerdo con algunas otras realizaciones de la presente descripción. En las operaciones ilustradas, el dispositivo CGR 100 y/o el servidor 140 generan la matriz de transformación entre el primer y el segundo sistemas de coordenadas del dispositivo háptico 130 y el dispositivo CGR 100.
Con referencia a las Figuras 4a y 4b, el dispositivo háptico 130 genera 400 una solicitud de emparejamiento que se comunica al dispositivo CGR 100 para su recepción 404 y que puede retransmitirse 402 a través del servidor 140. El dispositivo háptico 130 detecta 406 su movimiento y espera a una determinación 408 de que el nivel de movimiento satisface una regla definida, tal como estar sustancialmente inmóvil (estático) o tener una velocidad constante aceptable. En respuesta a esa determinación, el dispositivo háptico 130 transmite 410 una solicitud al dispositivo CGR 100 para la generación de una medición de la posición del dispositivo háptico. El dispositivo CGR 100 recibe 430 la solicitud de medición, que puede ser reenviada u observada 412 de otro modo por el servidor 140.
El dispositivo háptico 130 detecta 416 su posición actual, por ejemplo, a través del sensor 740 de movimiento, y transmite 418 la posición detectada al servidor 140 y/o al dispositivo CGR 100. El dispositivo CGR 100 responde a la solicitud recibida 430 iniciando 432 operaciones para generar una medición de la posición del dispositivo háptico y almacena 434 datos de sensor emitidos por el sensor, por ejemplo, una imagen digital de la cámara 110, que pueden ser utilizados por el dispositivo CGR 100 o el servidor 140 para determinar la posición del dispositivo háptico. En respuesta al almacenamiento de los datos de sensor, el dispositivo CGR 100 transmite 436 un acuse de recibo para su recepción 440 por parte del dispositivo háptico 130. El servidor 140 puede reenviar u observar 438 de otro modo el acuse de recibo.
El dispositivo háptico 130 determina 460 si se ha movido durante el intervalo de tiempo entre el momento en que se transmitió 410 la solicitud (momento T1) y el momento en que se recibió 440 el acuse de recibo (momento T2), o si ha tenido de otro modo un movimiento durante el intervalo de tiempo que no haya satisfecho una regla definida (por ejemplo, tener una velocidad de traslación y/o de rotación sustancialmente constante que satisfaga la regla definida).
Cuando el dispositivo háptico 130 haya tenido un movimiento que no haya satisfecho la regla definida, se puede transmitir 462 un mensaje de cancelación al dispositivo CGR 100 y/o al servidor 140, que puede reenviar 464 el mensaje de informe. Si se recibe el mensaje de cancelación, éste hace que el dispositivo CGR 100 cancele 452 la generación de la medición de la posición del dispositivo háptico. Por el contrario, cuando el dispositivo háptico 130 haya permanecido estático o tenido de otro modo un movimiento que haya satisfecho la regla definida, el dispositivo CGR 100 no recibe el mensaje de cancelación y, por lo tanto, completa la generación 454 de la medición de la posición del dispositivo háptico y puede actuar para transmitir 456 la medición al servidor para su recepción 466.
El dispositivo CGR 100 puede recibir 457 la posición del dispositivo háptico 130 que es medida por el dispositivo háptico 130 y determinar la matriz de transformación entre el primer y el segundo sistemas de coordenadas. El dispositivo CGR 100 puede usar la matriz de transformación para controlar la visualización 458 de un objeto gráfico con una pose que se determina sobre la base de la matriz de transformación. Por ejemplo, el dispositivo CGR 100 puede manipular un objeto gráfico que se visualice, tal como posicionando, rotando, ajustando el sombreado de color del objeto y/o ajustando la forma del objeto sobre la base de las métricas de procesamiento del objeto a través de la matriz de transformación.
Como alternativa o adicionalmente, el servidor 140 puede recibir 466 la medición de la posición del dispositivo háptico y determinar 468 la matriz de transformación entre el primer y el segundo sistemas de coordenadas. La matriz de transformación puede usarse entonces para controlar 470 la generación de retroalimentación háptica por el dispositivo háptico. Como alternativa o adicionalmente, la matriz de transformación generada por el servidor 140 puede usarse para controlar 380 la visualización en un dispositivo de visualización del dispositivo CGR 100 de un objeto gráfico con una pose determinada sobre la base de esa matriz de transformación.
La Figura 5 ilustra otro tipo de dispositivo CGR 500 (por ejemplo, Google Glass) que tiene una cámara 502 orientada hacia el usuario que visualiza objetos generados por ordenador en un dispositivo 850 de visualización y que permite a un usuario ver los objetos del mundo real a través del dispositivo 850 de visualización y/o ver los objetos del mundo real fuera de un área del dispositivo 850 de visualización, de acuerdo con algunas realizaciones de la presente descripción. Se puede procesar una imagen digital de la cámara 502 orientada hacia el usuario para determinar automáticamente cuándo es necesario generar una matriz de transformación actualizada e iniciar en respuesta la generación de la misma. La Figura 6 ilustra un diagrama de flujo de operaciones relacionadas por parte del dispositivo CGR 100 para iniciar la generación de una matriz de transformación actualizada de acuerdo con algunas realizaciones de la presente descripción.
Con referencia a las Figuras 5 y 6, el dispositivo CGR 500 opera la cámara 502 orientada hacia el usuario para capturar 600 una imagen digital de un reflejo del ojo 510 del usuario. El reflejo del ojo 510 del usuario incluye un primer componente que es un reflejo de un objeto virtual generado por ordenador visualizado en el dispositivo 850 de visualización y un segundo componente que es un reflejo de la luz de un objeto del mundo real. El dispositivo CGR 500 procesa 602 la imagen para extraer una medida de desalineación entre el objeto virtual generado por ordenador y el objeto del mundo real. El dispositivo CGR 500 responde a una medida de desalineación que no satisfaga una regla de alineación definida, iniciando 604 operaciones para generar una matriz de transformación actualizada, tal como las operaciones mostradas en las Figuras 2, 3a-3b y/o 4a-4b.
Implementación en la nube
Algunas o la totalidad de las operaciones descritas anteriormente realizadas por el dispositivo háptico 130, el servidor 140 y/o el dispositivo CGR 100 pueden ser realizadas como alternativa por otro nodo que sea parte de un recurso de computación en la nube de un operador de red. Por ejemplo, esas operaciones se pueden realizar como una función de red que esté cerca del borde, tal como en un servidor en la nube o un recurso en la nube de un operador de red de telecomunicaciones, por ejemplo, en una CloudRAN o una red central.
Ejemplo de dispositivo háptico, dispositivo CGR y configuraciones de servidor
La Figura 7 es un diagrama de bloques de componentes de un dispositivo háptico 130 que están configurados de acuerdo con algunas otras realizaciones de la presente descripción. El dispositivo háptico 130 puede incluir un sensor 740 de movimiento, un circuito 730 de interfaz de red, al menos un circuito procesador 710 (procesador) y al menos una memoria 720 (memoria). El sensor 740 de movimiento puede incluir una unidad de medición inercial. El circuito 730 de interfaz de red está configurado para comunicarse con otro dispositivo electrónico a través de una interfaz de red cableada (por ejemplo, Ethernet, USB, etc.) y/o inalámbrica (por ejemplo, Wi-Fi, Bluetooth, celular, etc.). El dispositivo háptico 130 puede incluir además un dispositivo 750 de generación de retroalimentación háptica, que está configurado para proporcionar retroalimentación háptica a un usuario, tal como retroalimentación de fuerza y/o vibración. El procesador 710 está conectado al sensor 740 de movimiento, el circuito 730 de interfaz de red, el dispositivo 750 de generación de retroalimentación háptica y la memoria 720. La memoria 720 almacena código de programa que es ejecutado el procesador 710 para realizar operaciones. El procesador 710 puede incluir uno o más circuitos de procesamiento de datos, tales como un procesador de uso general y/o especializado (por ejemplo, un microprocesador y/o un procesador de señales digitales), que pueden colocarse o distribuirse en una o más redes de datos. El procesador 710 está configurado para ejecutar instrucciones de programa informático entre el código 722 de programa en la memoria 720, que se describe posteriormente como un medio legible por ordenador, para realizar algunas o la totalidad de las operaciones y métodos para una o más de las realizaciones descritas en la presente memoria para un dispositivo háptico 130.
La Figura 8 es un diagrama de bloques de componentes 800 del dispositivo CGR que pueden usarse en los dispositivos CGR 100 y/o 500 descritos anteriormente y que funcionan según al menos algunas realizaciones de la presente descripción. Los componentes 800 del dispositivo CGR pueden incluir un sensor 840 de movimiento, un circuito 830 de interfaz de red, un altavoz 120, al menos un circuito procesador 810 (procesador), un dispositivo 850 de visualización, una cámara 110 orientada hacia delante, la cámara 502 orientada hacia el usuario, y al menos una memoria 820 (memoria). El sensor 840 de movimiento puede incluir una unidad de medición inercial. El circuito 830 de interfaz de red está configurado para comunicarse con otro dispositivo electrónico a través de una interfaz de red cableada (por ejemplo, Ethernet, USB, etc.) y/o inalámbrica (por ejemplo, Wi-Fi, Bluetooth, celular, etc.). El procesador 810 está conectado al sensor 840 de movimiento, el dispositivo 850 de visualización, la cámara 110 orientada hacia delante, la cámara 502 orientada hacia el usuario, el altavoz 120, la interfaz 830 de red y la memoria 820. La memoria 820 almacena código de programa que es ejecutado por el procesador 810 para realizar operaciones. El procesador 810 puede incluir uno o más circuitos de procesamiento de datos, tales como un procesador de uso general y/o especializado (por ejemplo, un microprocesador y/o un procesador de señales digitales), que pueden colocarse o distribuirse en una o más redes de datos. El procesador 810 está configurado para ejecutar instrucciones de programa informático entre el código 822 de programa en la memoria 820, que se describe posteriormente como un medio legible por ordenador, para realizar algunas o la totalidad de las operaciones y métodos para una o más de las realizaciones descritas en la presente memoria para un dispositivo CGR 100.
La Figura 9 es un diagrama de bloques de componentes de un servidor 140 que están configurados de acuerdo con algunas otras realizaciones de la presente descripción. El servidor 140 puede incluir un circuito 930 de interfaz de red, al menos un circuito procesador 910 (procesador) y al menos una memoria 920 (memoria). El circuito de interfaz de red y 30 está configurado para comunicarse con otro dispositivo electrónico a través de una interfaz de red cableada (por ejemplo, Ethernet, USB, etc.) y/o inalámbrica (por ejemplo, Wi-Fi, Bluetooth, celular, etc.). El procesador 910 está conectado a la interfaz 930 de red en la memoria 920. La memoria 920 almacena código 922 de programa que es ejecutado por el procesador 910 para realizar operaciones. El procesador 910 puede incluir uno o más circuitos de procesamiento de datos, tales como un procesador de uso general y/o especializado (por ejemplo, un microprocesador y/o un procesador de señales digitales), que pueden colocarse o distribuirse en una o más redes de datos. El procesador 910 está configurado para ejecutar instrucciones de programa informático entre el código 922 de programa en la memoria 920, que se describe posteriormente como un medio legible por ordenador, para realizar algunas o la totalidad de las operaciones y métodos para una o más de las realizaciones descritas en la presente memoria para un servidor 140.
Otras definiciones y realizaciones:
En la descripción anterior de diversas realizaciones de conceptos de la presente invención, debe entenderse que la terminología utilizada en la presente memoria tiene el propósito de describir realizaciones concretas únicamente y no pretende ser una limitación de conceptos de la presente invención. A menos que se defina de otro modo, todos los términos (incluidos los términos técnicos y científicos) utilizados en la presente memoria tienen el mismo significado que comúnmente entiende un experto en la técnica a la que pertenecen los presentes conceptos de la invención. Se entenderá además que los términos, tales como los definidos en diccionarios de uso común, deben interpretarse con un significado que sea coherente con su significado en el contexto de esta especificación y la técnica pertinente y no se interpretarán en un sentido idealizado o demasiado formal expresamente así definido en la presente memoria.
Cuando se hace referencia a un elemento como "conectado", "acoplado", "sensible", o variantes de los mismos, a otro elemento, puede estar conectado, acoplado o ser sensible directamente al otro elemento o pueden estar presentes elementos intermedios. Por el contrario, cuando se hace referencia a un elemento como "directamente conectado", "directamente acoplado", "directamente sensible", o variantes de los mismos, a otro elemento, no hay presentes elementos intermedios. Los números similares se refieren a elementos similares en todas partes. Además, "acoplado", "conectado", "sensible", o variantes de los mismos, tal como se usan en la presente memoria, pueden incluir acoplado, conectado o sensible de forma inalámbrica. Tal como se usan en la presente memoria, las formas singulares "un", "una", "el" y “la” también incluyen las formas plurales, a menos que el contexto indique claramente lo contrario. Es posible que las funciones o construcciones conocidas no se describan en detalle por razones de brevedad y/o claridad. El término "y/o" incluye cualquiera y la totalidad de las combinaciones de uno o más de los elementos enumerados asociados.
Se entenderá que aunque los términos primero, segundo, tercero, etc. pueden usarse en la presente memoria para describir diversos elementos/operaciones, estos elementos/operaciones no deben estar limitados por estos términos. Estos términos solo se utilizan para distinguir un elemento/operación de otro elemento/operación. Por lo tanto, un primer elemento/operación en algunas realizaciones podría denominarse segundo elemento/operación en otras realizaciones sin apartarse de las enseñanzas de los presentes conceptos de la invención. Los números de referencia iguales o los designadores de referencia iguales denotan elementos iguales o similares en toda la memoria descriptiva.
Tal como se usan en la presente memoria, los términos "comprenden", "que comprende", "comprende", "incluyen", "que incluye", "incluye", "tienen", "tiene", "que tiene", o variantes de los mismos, son abiertos e incluyen una o más características, números enteros, elementos, etapas, componentes o funciones expuestos, pero no excluyen la presencia o adición de otra u otras características, números enteros, elementos, etapas, componentes, funciones o grupos de los mismos. Además, tal como se usa en la presente memoria, la abreviatura común "e.g.", que se deriva de la locución latina "exempli gratia", se puede usar para introducir o especificar uno o varios ejemplos generales de un elemento mencionado anteriormente y no está destinada a limitar tal elemento. La abreviatura común "i.e.", que se deriva de la locución latina "id est", puede usarse para especificar un elemento concreto de una relación más general.
Las realizaciones ejemplares se describen en la presente memoria con referencia a diagramas de bloques y/o ilustraciones de diagramas de flujo de métodos, aparatos (sistemas y/o dispositivos) y/o productos de programas informáticos implementados por ordenador. Se entiende que un bloque de los diagramas de bloques y/o las ilustraciones de diagramas de flujo, y las combinaciones de bloques en los diagramas de bloques y/o las ilustraciones de diagramas de flujo, pueden implementarse mediante instrucciones de programa informático que sean ejecutadas por uno o más circuitos informáticos. Estas instrucciones de programa informático pueden proporcionarse a un circuito procesador de un circuito informático de uso general, un circuito informático especializado y/u otro circuito de procesamiento de datos programable para producir una máquina, de tal modo que las instrucciones, que se ejecutan a través del procesador del ordenador y/u otros aparatos de procesamiento de datos programables, transformen y controlen transistores, valores almacenados en ubicaciones de memoria y otros componentes de hardware dentro de tal circuitería para implementar las funciones/acciones especificadas en los diagramas de bloques y/o el o los bloques de diagrama de flujo y, de este modo, crear medios (funcionalidad) y/o estructura para implementar las funciones/acciones especificadas en los diagramas de bloques y/o el o los bloques de diagrama de flujo.
Estas instrucciones de programa informático también pueden almacenarse en un medio tangible legible por ordenador que pueda dirigir un ordenador u otro aparato de procesamiento de datos programable para que funcione de una manera concreta, de tal modo que las instrucciones almacenadas en el medio legible por ordenador produzcan un artículo de fabricación que incluya instrucciones que implementen las funciones/acciones especificadas en los diagramas de bloques y/o el o los bloques de diagrama de flujo. En consecuencia, las realizaciones de los presentes conceptos de la invención pueden incorporarse en hardware y/o en software (incluido firmware, software residente, microcódigo, etc.) que se ejecute en un procesador tal como un procesador de señales digitales, que colectivamente puede denominarse "circuitería", "un módulo" o variantes de los mismos.
También cabe señalar que en algunas implementaciones alternativas, las funciones/acciones anotadas en los bloques pueden ocurrir fuera del orden anotado en los diagramas de flujo. Por ejemplo, dos bloques mostrados en sucesión pueden, de hecho, ejecutarse sustancialmente al mismo tiempo o, a veces, los bloques pueden ejecutarse en el orden inverso, dependiendo de la funcionalidad/las acciones implicadas. Además, la funcionalidad de un bloque dado de los diagramas de flujo y/o diagramas de bloques puede separarse en múltiples bloques y/o la funcionalidad de dos o más bloques de los diagramas de flujo y/o diagramas de bloques puede integrarse al menos parcialmente. Finalmente, se pueden añadir/insertar otros bloques entre los bloques que se ilustran, y/o se pueden omitir bloques/operaciones sin apartarse del alcance de los conceptos de la invención. Además, aunque algunos de los diagramas incluyen flechas en las rutas de comunicación para mostrar una dirección principal de comunicación, debe entenderse que la comunicación puede ocurrir en la dirección opuesta a las flechas representadas.
Se pueden hacer muchas variaciones y modificaciones a las realizaciones sin apartarse sustancialmente de los principios de los presentes conceptos de la invención. Se pretende que todas estas variaciones y modificaciones estén incluidas en la presente memoria dentro del alcance de los presentes conceptos de la invención. En consecuencia, la materia descrita anteriormente debe considerarse ilustrativa y no restrictiva, y los ejemplos adjuntos de realizaciones están destinados a cubrir todas estas modificaciones, mejoras y otras realizaciones que entren dentro del alcance de los presentes conceptos de la invención. Por lo tanto, en la máxima medida permitida por la ley, el alcance de los presentes conceptos de la invención se determinará mediante la interpretación más amplia permisible de la presente descripción, incluidos los ejemplos siguientes de realizaciones y sus equivalentes, y no se verá restringido ni limitado por la descripción detallada anterior.

Claims (22)

REIVINDICACIONES
1. Un primer dispositivo electrónico (130) configurado para controlar un segundo dispositivo electrónico (100, 500) para medir una posición del primer dispositivo electrónico (130), comprendiendo el primer dispositivo electrónico (130):
un sensor (740) de movimiento configurado para detectar el movimiento del primer dispositivo electrónico (130); un circuito (730) de interfaz de red configurado para comunicarse con el segundo dispositivo electrónico (100, 500); un procesador (710) conectado al sensor (740) de movimiento y al circuito (730) de interfaz de red; y una memoria (720) que almacena código de programa que es ejecutado por el procesador (710) para realizar operaciones que comprenden:
en respuesta a la determinación (204, 308, 408) de que el primer dispositivo electrónico (130) está estacionario o tiene una velocidad constante, según lo detectado por el sensor (740) de movimiento, transmitir (206, 310, 410) una solicitud al segundo dispositivo electrónico (100, 500) para medir la posición del primer dispositivo electrónico (130);
detectar y almacenar (208, 316, 416) la posición del primer dispositivo electrónico (130) en la memoria (720); y recibir (222, 340, 440) un acuse de recibo del segundo dispositivo electrónico (100, 500) que indica que ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico (130) detectada por el segundo dispositivo electrónico (100, 500).
2. El primer dispositivo electrónico (130) de la reivindicación 1,
comprendiendo el primer dispositivo electrónico (130) un dispositivo háptico configurado para realizar una medición del movimiento del dispositivo háptico por parte de un usuario y/o proporcionar retroalimentación háptica a un usuario; y
transmitiéndose la solicitud al segundo dispositivo electrónico (100, 500) que comprende un dispositivo de realidad generada por ordenador, CGR, configurado para visualizar gráficos como una superposición sobre objetos del mundo real.
3. El primer dispositivo electrónico (130) de cualquiera de las reivindicaciones 1 a 2, en donde las operaciones comprenden además:
recibir (234) desde el segundo dispositivo electrónico (100, 500) una medición de la posición del primer dispositivo electrónico (130) detectada por el segundo dispositivo electrónico (100, 500);
determinar (236) una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas sobre la base de la posición del primer dispositivo electrónico (130) detectada por el primer dispositivo electrónico (130) y sobre la base de la posición del primer dispositivo electrónico (130) detectada por y recibida desde el segundo dispositivo electrónico (100, 500), en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
4. El primer dispositivo electrónico (130) de la reivindicación 3, que comprende además:
un dispositivo (750) de generación de retroalimentación háptica conectado al procesador (710),
en donde las operaciones comprenden además:
transformar una pose del primer dispositivo electrónico (130) de uno de los sistemas de coordenadas primero y segundo al otro de los sistemas de coordenadas primero y segundo usando la matriz de transformación, para generar una pose transformada; y
controlar (238) la generación de retroalimentación háptica por el dispositivo (750) de generación de retroalimentación háptica sobre la base de la pose transformada.
5. El primer dispositivo electrónico (130) de cualquiera de las reivindicaciones 1 a 4, en donde las operaciones comprenden además:
determinar (224, 360, 460) si se ha producido un estado de cancelación en el que el primer dispositivo electrónico (130) ha dejado de estar estacionario o de tener una velocidad constante, según lo detectado durante un intervalo de tiempo entre el momento en que se transmitió la solicitud al segundo dispositivo electrónico (100, 500) y el momento en que se recibió el acuse de recibo desde el segundo dispositivo electrónico (100, 500); y
en respuesta a que se produzca el estado de cancelación, transmitir (226) un mensaje de cancelación al segundo dispositivo electrónico (100, 500) para cancelar las operaciones para medir la posición del primer dispositivo electrónico (130).
6. El primer dispositivo electrónico (130) de cualquiera de las reivindicaciones 1 a 5, que comprende además:
determinar (204) que el primer dispositivo electrónico (130) está estacionario en respuesta a que el primer dispositivo electrónico (130) permanezca estacionario durante un intervalo de tiempo entre el momento en que se transmitió la solicitud al segundo dispositivo electrónico (100, 500) y el momento en que se recibió el acuse de recibo desde el segundo dispositivo electrónico (100, 500).
7. El primer dispositivo electrónico (130) de cualquiera de las reivindicaciones 1 a 6, que comprende además:
determinar (204) que el primer dispositivo electrónico (130) tiene una velocidad constante en respuesta a la determinación de que el primer dispositivo electrónico (130) tiene una velocidad que no ha cambiado más de una cantidad umbral definida durante un intervalo de tiempo entre el momento en que se transmitió la solicitud al segundo dispositivo electrónico (100, 500) y el momento en que se recibió el acuse de recibo desde el segundo dispositivo electrónico (100, 500);
estimar una posición actualizada del primer dispositivo electrónico (130) sobre la base de una cantidad determinada en la que haya cambiado la posición del primer dispositivo electrónico (130) recuperada de la memoria debido a la velocidad del primer dispositivo electrónico (130) en al menos una parte del intervalo de tiempo;
recibir (234) desde el segundo dispositivo electrónico (100, 500) una medición de la posición del primer dispositivo electrónico (130) detectada por el segundo dispositivo electrónico (100, 500);
determinar (236) una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas sobre la base de la posición actualizada del primer dispositivo electrónico (130) detectada por el primer dispositivo electrónico (130) y sobre la base de la posición del primer dispositivo electrónico (130) detectada por y recibida desde el segundo dispositivo electrónico (100, 500), en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
8. El primer dispositivo electrónico (130) de cualquiera de las reivindicaciones 1 a 7, que comprende además:
determinar (224, 360, 460) si se ha producido un estado de cancelación en el que el primer dispositivo electrónico (130) ha dejado de estar estacionario o de tener una velocidad constante, según lo detectado durante un intervalo de tiempo entre el momento en que se transmitió la solicitud al segundo dispositivo electrónico (100, 500) y el momento en que se recibió el acuse de recibo desde el segundo dispositivo electrónico (100, 500); y
en respuesta a que se produzca el estado de cancelación, transmitir (362, 462) un mensaje de cancelación a un servidor (140) para cancelar operaciones para determinar una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas, en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
9. Un segundo dispositivo electrónico (100, 500) configurado para medir una posición de un primer dispositivo electrónico (130) en relación con el segundo dispositivo electrónico (100, 500), comprendiendo el segundo dispositivo electrónico (100, 500):
un sensor (110) configurado para emitir datos de sensor que pueden indicar la posición del primer dispositivo electrónico (130);
un circuito (830) de interfaz de red configurado para comunicarse con el primer dispositivo electrónico (130);
un procesador (810) conectado al sensor (110) y al circuito (830) de interfaz de red; y
una memoria (820) que almacena código de programa que es ejecutado por el procesador (810) para realizar operaciones que comprenden:
recibir (214, 430) una solicitud para el envío de una medición por parte del segundo dispositivo electrónico (100, 500) de la posición del primer dispositivo electrónico (130), siendo la solicitud indicativa de que el primer dispositivo electrónico (130) está estacionario o tiene una velocidad constante;
en respuesta a la solicitud, iniciar (216, 432) operaciones para generar una medición de la posición del primer dispositivo electrónico (130);
almacenar (218, 434) en la memoria (820) datos de sensor emitidos por el sensor (110) que pueden indicar la posición del primer dispositivo electrónico (130);
transmitir (220, 436) un acuse de recibo que indique que los datos de sensor han sido almacenados; generar (230, 454) una medición de la posición del primer dispositivo electrónico (130) sobre la base de los datos del sensor almacenados en la memoria; y
transmitir (232, 456) la medición de la posición del primer dispositivo electrónico (130).
10. El segundo dispositivo electrónico (100, 500) de la reivindicación 9, en donde las operaciones comprenden además:
determinar (228, 230, 452, 454) si se ha recibido un mensaje de cancelación que indique que el primer dispositivo electrónico (130) ha dejado de estar estacionario o de tener una velocidad constante, según lo detectado durante un intervalo de tiempo entre el momento en que la solicitud fue recibida y el momento en que el acuse de recibo fue transmitido por el segundo dispositivo electrónico (100, 500),
en donde la transmisión de la medición de la posición del primer dispositivo electrónico (130) se realiza en respuesta a la determinación (228, 230, 452, 454) de que no se ha recibido ningún mensaje de cancelación.
11. El segundo dispositivo electrónico (100, 500) de cualquiera de las reivindicaciones 9 a 10, en donde:
el sensor (110) comprende una cámara;
las operaciones para generar la medición de la posición del primer dispositivo electrónico (130) sobre la base de los datos de sensor almacenados en la memoria comprende identificar, en una foto digital procedente de la cámara, una posición de al menos uno de unos marcadores conectados al primer dispositivo electrónico (130) y una parte de una carcasa del primer dispositivo electrónico (130).
12. El segundo dispositivo electrónico (100, 500) de cualquiera de las reivindicaciones 9 a 11,
comprendiendo el segundo dispositivo electrónico (100, 500) un dispositivo de realidad generada por ordenador, CGR; y
comprendiendo el primer dispositivo electrónico (130) un dispositivo háptico configurado para realizar una medición del movimiento del dispositivo háptico por parte de un usuario y/o proporcionar retroalimentación háptica a un usuario.
13. El segundo dispositivo electrónico (100, 500) de cualquiera de las reivindicaciones 9 a 12, en donde transmitir (232, 456) la medición de la posición del primer dispositivo electrónico (130) comprende:
transmitir (232) la medición de la posición del primer dispositivo electrónico (130) al primer dispositivo electrónico (130) para la determinación de una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas, en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
14. El segundo dispositivo electrónico (100, 500) de cualquiera de las reivindicaciones 9 a 13, que comprende además:
determinar (457) una matriz de transformación, para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas, sobre la base de la posición del primer dispositivo electrónico (130) detectada por y recibida desde el primer dispositivo electrónico (130) y sobre la base de la medición de la posición del primer dispositivo electrónico (130) detectada por el segundo dispositivo electrónico (100, 500), en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo; y visualizar (458) en un dispositivo (850) de visualización un objeto gráfico con una pose que se determina sobre la base de la matriz de transformación.
15. El segundo dispositivo electrónico (100, 500) de cualquiera de las reivindicaciones 9 a 14, en donde transmitir (232, 456) la medición de la posición del primer dispositivo electrónico (130) comprende:
transmitir (456) la medición de la posición del primer dispositivo electrónico (130) a un servidor (140) que utiliza la medición de la posición del primer dispositivo electrónico (130) para determinar una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas, en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
16. El segundo dispositivo electrónico (500) de cualquiera de las reivindicaciones 9 a 15, que comprende además:
capturar (600) una imagen digital de un reflejo del ojo de un usuario usando una cámara (502), orientada hacia el usuario, del segundo dispositivo electrónico (500), en donde el reflejo del ojo del usuario incluye un primer componente que es un reflejo de un objeto virtual generado por ordenador visualizado en un dispositivo (850) de visualización del segundo dispositivo electrónico (500) y un segundo componente que es un reflejo de la luz de un objeto del mundo real;
procesar (602) la imagen para extraer una medida de desalineación entre el objeto virtual generado por ordenador y el objeto del mundo real; y
en respuesta a que la medida de desalineación no satisfaga una regla de alineación definida, iniciar (604) operaciones para generar una matriz de transformación actualizada.
17. Un servidor (140) que comprende:
un circuito (930) de interfaz de red configurado para comunicarse con un primer dispositivo electrónico (130) y un segundo dispositivo electrónico (100, 500);
un procesador (910) conectado al circuito (930) de interfaz de red; y
una memoria (920) que almacena código de programa que es ejecutado por el procesador (910) para realizar operaciones que comprenden:
observar (338) un acuse de recibo comunicado desde el segundo dispositivo electrónico (100, 500) que indica que el segundo dispositivo electrónico (100, 500) ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico (130);
recibir (320), desde el primer dispositivo electrónico (130), una medición por parte del primer dispositivo electrónico (130) de la posición del primer dispositivo electrónico (130);
recibir (370), desde un segundo dispositivo electrónico (100, 500), una medición por parte del segundo dispositivo electrónico (100, 500) de una posición del primer dispositivo electrónico (130);
determinar (372) si se ha recibido un mensaje de cancelación que indique que el primer dispositivo electrónico (130) ha dejado de estar estacionario o de tener una velocidad constante, según lo detectado durante un intervalo de tiempo entre el momento en que se observó una solicitud para el segundo dispositivo electrónico (100, 500) para el envío de la medición de la posición y el momento en que el segundo dispositivo electrónico (100, 500) comunicó el acuse de recibo que indicaba que el segundo dispositivo electrónico (100, 500) había almacenado los datos de sensor, y
generar (374), solo cuando no se haya recibido ningún mensaje de cancelación antes de recibir el acuse de recibo comunicado desde el segundo dispositivo electrónico (100, 500), una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas en respuesta a la posición del primer dispositivo electrónico (130) detectada por y recibida desde el primer dispositivo electrónico (130) y la posición del primer dispositivo electrónico (130) detectada por y recibida desde el segundo dispositivo electrónico (100), en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
18. El servidor de la reivindicación 17, en donde:
el primer dispositivo electrónico (130) comprende un dispositivo háptico configurado para realizar una medición del movimiento del dispositivo háptico por parte de un usuario y/o proporcionar retroalimentación háptica a un usuario; y
el segundo dispositivo electrónico (100, 500) comprende un dispositivo de realidad generada por ordenador, CGR.
19. El servidor de la reivindicación 17, que comprende además:
realizar al menos uno de:
controlar (380) la generación de retroalimentación háptica por un dispositivo (750) de generación de retroalimentación háptica usando la matriz de transformación; y
controlar (380) la visualización en un dispositivo (850) de visualización de un objeto gráfico con una pose que se determina sobre la base de la matriz de transformación, en donde el dispositivo (850) de visualización está dentro del segundo dispositivo electrónico (100, 500).
20. Un método por un primer dispositivo electrónico (130) para controlar un segundo dispositivo electrónico (100, 500) para medir una posición del primer dispositivo electrónico (130), comprendiendo el método:
en respuesta a la determinación (204, 308, 408) de que el primer dispositivo electrónico (130) está estacionario o tiene una velocidad constante,
transmitir (206, 310, 410) una solicitud al segundo dispositivo electrónico (100, 500) para medir la posición del primer dispositivo electrónico (130);
detectar y almacenar (208, 316, 416) la posición del primer dispositivo electrónico (130) en una memoria; y recibir (222, 340, 440) un acuse de recibo desde el segundo dispositivo electrónico (100, 500) que indica que ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico (130) detectada por el segundo dispositivo electrónico (100, 500).
21. Un método por un segundo dispositivo electrónico (100, 500) para medir una posición de un primer dispositivo electrónico (130) en relación con el segundo dispositivo electrónico (100, 500), comprendiendo el método:
recibir (214, 430) una solicitud para el envío de una medición por parte del segundo dispositivo electrónico (100, 500) de la posición del primer dispositivo electrónico (130), siendo la solicitud indicativa de que el primer dispositivo electrónico (130) está estacionario o tiene una velocidad constante;
en respuesta a la solicitud, iniciar (216, 432) operaciones para generar una medición de la posición del primer dispositivo electrónico (130);
almacenar (218, 434) en una memoria datos de sensor emitidos por un sensor que pueden indicar la posición del primer dispositivo electrónico (130);
transmitir (220, 436) un acuse de recibo que indique que los datos de sensor han sido almacenados; generar una medición de la posición del primer dispositivo electrónico (130) sobre la base de los datos de sensor almacenados en la memoria; y
transmitir (232, 456) la medición de la posición del primer dispositivo electrónico (130).
22. Un método por un servidor (140) que comprende:
observar (338) un acuse de recibo comunicado desde el segundo dispositivo electrónico (100, 500) que indica que el segundo dispositivo electrónico (100, 500) ha almacenado datos de sensor que pueden usarse para medir la posición del primer dispositivo electrónico (130);
recibir (320), desde el primer dispositivo electrónico (130), una medición por parte del primer dispositivo electrónico (130) de la posición del primer dispositivo electrónico (130);
recibir (370), desde un segundo dispositivo electrónico (100, 500), una medición por parte del segundo dispositivo electrónico (100, 500) de una posición del primer dispositivo electrónico (130);
determinar (372) si se ha recibido un mensaje de cancelación que indique que el primer dispositivo electrónico (130) ha dejado de estar estacionario o de tener una velocidad constante, según lo detectado durante un intervalo de tiempo entre el momento en que se observó una solicitud para el segundo dispositivo electrónico (100, 500) para el envío de la medición de la posición y el momento en que el segundo dispositivo electrónico (100, 500) comunicó el acuse de recibo que indicaba que el segundo dispositivo electrónico (100, 500) había almacenado los datos del sensor, y
generar (374), solo cuando no se haya recibido ningún mensaje de cancelación antes de recibir el acuse de recibo comunicado desde el segundo dispositivo electrónico (100, 500), una matriz de transformación para transformar una pose referenciada en un primer sistema de coordenadas en una pose referenciada en un segundo sistema de coordenadas en respuesta a la posición del primer dispositivo electrónico (130) detectada por y recibida desde el primer dispositivo electrónico (130) y la posición del primer dispositivo electrónico (130) detectada por y recibida desde el segundo dispositivo electrónico (100), en donde uno de los sistemas de coordenadas primero y segundo se usa para referenciar una pose de uno de los dispositivos electrónicos primero y segundo y el otro de los sistemas de coordenadas primero y segundo se usa para referenciar una pose del otro de los dispositivos electrónicos primero y segundo.
ES18707347T 2018-02-23 2018-02-23 Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico Active ES2927183T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/054481 WO2019161903A1 (en) 2018-02-23 2018-02-23 Coordinating alignment of coordinate systems used for a computer generated reality device and a haptic device

Publications (1)

Publication Number Publication Date
ES2927183T3 true ES2927183T3 (es) 2022-11-03

Family

ID=61283229

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18707347T Active ES2927183T3 (es) 2018-02-23 2018-02-23 Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico

Country Status (11)

Country Link
US (3) US11526216B2 (es)
EP (2) EP4086736B1 (es)
JP (1) JP7079848B2 (es)
CN (1) CN111801642B (es)
DK (1) DK3756073T3 (es)
ES (1) ES2927183T3 (es)
PL (1) PL3756073T3 (es)
PT (1) PT3756073T (es)
RU (1) RU2751130C1 (es)
SG (1) SG11202006100QA (es)
WO (1) WO2019161903A1 (es)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9649558B2 (en) * 2014-03-14 2017-05-16 Sony Interactive Entertainment Inc. Gaming device with rotatably placed cameras
US11347303B2 (en) * 2018-11-30 2022-05-31 Sony Interactive Entertainment Inc. Systems and methods for determining movement of a controller with respect to an HMD
US11455078B1 (en) 2020-03-31 2022-09-27 Snap Inc. Spatial navigation and creation interface
WO2022025885A1 (en) * 2020-07-29 2022-02-03 Nokia Technologies Oy Geo-location assisted mobile augmented reality
EP4203188A4 (en) 2020-10-12 2024-03-20 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE COMPRISING A UWB ANTENNA AND 6DOF IMPLEMENTATION METHOD
TWI900664B (zh) * 2020-10-23 2025-10-11 日商和冠股份有限公司 電腦、用以在xr空間內而渲染3d物件之方法及程式
US11797162B2 (en) * 2020-12-22 2023-10-24 Snap Inc. 3D painting on an eyewear device
US12229342B2 (en) 2020-12-22 2025-02-18 Snap Inc. Gesture control on an eyewear device
US11782577B2 (en) 2020-12-22 2023-10-10 Snap Inc. Media content player on an eyewear device
EP4268066A1 (en) 2020-12-22 2023-11-01 Snap Inc. Media content player on an eyewear device
US12105283B2 (en) 2020-12-22 2024-10-01 Snap Inc. Conversation interface on an eyewear device
TWI779922B (zh) * 2021-11-10 2022-10-01 財團法人資訊工業策進會 擴增實境處理裝置以及方法
US12236512B2 (en) 2022-08-23 2025-02-25 Snap Inc. Avatar call on an eyewear device
KR102922541B1 (ko) * 2023-11-27 2026-02-05 전남대학교산학협력단 Vr 컨트롤러를 이용한 혼합현실 인터페이스 정합 장치 및 방법

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005147894A (ja) 2003-11-17 2005-06-09 Canon Inc 計測方法、計測装置
JP2007004714A (ja) 2005-06-27 2007-01-11 Canon Inc 情報処理方法、情報処理装置
US8730156B2 (en) * 2010-03-05 2014-05-20 Sony Computer Entertainment America Llc Maintaining multiple views on a shared stable virtual space
JP2009180536A (ja) * 2008-01-29 2009-08-13 Omron Corp 画像処理装置、画像処理方法、およびプログラム
US8761434B2 (en) 2008-12-17 2014-06-24 Sony Computer Entertainment Inc. Tracking system calibration by reconciling inertial data with computed acceleration of a tracked object in the three-dimensional coordinate system
EP2554225A4 (en) 2010-03-30 2014-08-06 Capcom Co PROGRAM AND RECORDING MEDIUM ON WHICH THE PROGRAM IS RECORDED
JP2013011979A (ja) 2011-06-28 2013-01-17 Jvc Kenwood Corp 動作指示装置、動作指示システム、動作指示方法、及びプログラム
US20130234925A1 (en) * 2012-03-09 2013-09-12 Nokia Corporation Method and apparatus for performing an operation at least partially based upon the relative positions of at least two devices
US9058681B2 (en) * 2012-06-01 2015-06-16 The Boeing Company Sensor-enhanced localization in virtual and physical environments
KR101887422B1 (ko) * 2012-11-19 2018-09-10 삼성전자주식회사 설정된 디바이스의 위치정보를 디스플레이하는 전자 장치 및 방법
US10137361B2 (en) * 2013-06-07 2018-11-27 Sony Interactive Entertainment America Llc Systems and methods for using reduced hops to generate an augmented virtual reality scene within a head mounted system
US9524580B2 (en) * 2014-01-06 2016-12-20 Oculus Vr, Llc Calibration of virtual reality systems
CN105981083B (zh) 2014-02-24 2019-01-08 索尼公司 智能可穿戴设备和用于优化输出的方法
US10943395B1 (en) * 2014-10-03 2021-03-09 Virtex Apps, Llc Dynamic integration of a virtual environment with a physical environment
KR102414356B1 (ko) * 2015-06-26 2022-06-29 삼성전자 주식회사 전자 장치 및 그의 햅틱 피드백 제공 방법
JP6565465B2 (ja) 2015-08-12 2019-08-28 セイコーエプソン株式会社 画像表示装置、コンピュータープログラム、および画像表示システム
US10509468B2 (en) * 2016-01-27 2019-12-17 Tactai, Inc. Providing fingertip tactile feedback from virtual objects
US10908694B2 (en) 2016-02-01 2021-02-02 Microsoft Technology Licensing, Llc Object motion tracking with remote device
US10249090B2 (en) * 2016-06-09 2019-04-02 Microsoft Technology Licensing, Llc Robust optical disambiguation and tracking of two or more hand-held controllers with passive optical and inertial tracking
US10078377B2 (en) * 2016-06-09 2018-09-18 Microsoft Technology Licensing, Llc Six DOF mixed reality input by fusing inertial handheld controller with hand tracking
US11740690B2 (en) * 2017-01-27 2023-08-29 Qualcomm Incorporated Systems and methods for tracking a controller

Also Published As

Publication number Publication date
RU2751130C1 (ru) 2021-07-08
US11526216B2 (en) 2022-12-13
WO2019161903A1 (en) 2019-08-29
JP2021520528A (ja) 2021-08-19
PT3756073T (pt) 2022-08-19
BR112020017167A2 (pt) 2020-12-22
PL3756073T3 (pl) 2022-11-21
US20230384872A1 (en) 2023-11-30
EP3756073A1 (en) 2020-12-30
JP7079848B2 (ja) 2022-06-02
US20230050367A1 (en) 2023-02-16
US20200348767A1 (en) 2020-11-05
EP3756073B1 (en) 2022-07-20
DK3756073T3 (da) 2022-08-29
US11868545B2 (en) 2024-01-09
CN111801642B (zh) 2024-10-18
US12141371B2 (en) 2024-11-12
EP4086736C0 (en) 2025-07-16
EP4086736B1 (en) 2025-07-16
SG11202006100QA (en) 2020-07-29
EP4086736A1 (en) 2022-11-09
CN111801642A (zh) 2020-10-20

Similar Documents

Publication Publication Date Title
ES2927183T3 (es) Coordinación de la alineación de sistemas de coordenadas utilizados para un dispositivo de realidad generada por ordenador y un dispositivo háptico
CN115623055B (zh) 远程通信方法、远程通信系统和自主移动装置
JP2019522832A (ja) 拡張現実システムを用いた電磁追跡
WO2019155840A1 (ja) 情報処理装置、情報処理方法、およびプログラム
CN112789544A (zh) 图腾在用户交互系统中的融合姿势的基于未融合姿势的漂移校正
KR20130118361A (ko) 사용자의 배향을 추적하기 위한 방법 및 장치
CN103369243A (zh) 拍摄系统及拍摄方法
US11460912B2 (en) System and method related to data fusing
US20240062424A1 (en) Calibration of mobile electronic devices connected to headsets wearable by users
JP6670682B2 (ja) 位置検出方法及び位置検出システム
KR102104846B1 (ko) 촬영 장치, 물체의 거동 계측 장치, 촬영 제어 방법 및 물체의 거동 계측 방법
US20240210678A1 (en) Head-mounted display apparatus and operating method thereof
JP6670681B2 (ja) 位置検出方法及び位置検出システム
EP4016253A1 (en) System and method related to data fusing
EP3832435A1 (en) Motion tracking system and method
JP2025139636A (ja) キャリブレーション装置、及びキャリブレーション方法
EP4016252A1 (en) System and method related to motion tracking
JP2022096723A (ja) モーション追跡に関係するシステム及び方法
JP2017181341A (ja) 電子機器、測位方法及びプログラム
JP2022096724A (ja) データ融合に関係するシステム及び方法
CN120660054A (zh) 一种虚拟现实系统以及在其中实施的方法
JP2021089691A (ja) 動作追跡システム及び動作追跡方法
BR112021009393B1 (pt) Dispositivo eletrônico móvel, método para realizar operações através de um processador de um dispositivo eletrônico móvel, e, meio legível por computador não transitório
KR20170122591A (ko) 군사 작전용 명령 및 의사 전달 시스템 및 방법