ES2359239T3 - Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno. - Google Patents

Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno. Download PDF

Info

Publication number
ES2359239T3
ES2359239T3 ES04292230T ES04292230T ES2359239T3 ES 2359239 T3 ES2359239 T3 ES 2359239T3 ES 04292230 T ES04292230 T ES 04292230T ES 04292230 T ES04292230 T ES 04292230T ES 2359239 T3 ES2359239 T3 ES 2359239T3
Authority
ES
Spain
Prior art keywords
articulated object
global
articulated
vector
rotation
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
ES04292230T
Other languages
English (en)
Inventor
Bruno Maille
Edouard Ramstein
Patrick Chedmail
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.)
Safran Aircraft Engines SAS
Original Assignee
SNECMA SAS
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 SNECMA SAS filed Critical SNECMA SAS
Application granted granted Critical
Publication of ES2359239T3 publication Critical patent/ES2359239T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Processing Or Creating Images (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Procedimiento de desplazamiento de un objeto articulado virtual (10) según una sucesión de movimientos elementales en un entorno virtual (13), estando referenciado el objeto articulado (10) en este entorno (13) por una posición global, una orientación global y una pluralidad de ángulos de articulación que definen la posición de un conjunto de elementos articulados (11) que componen dicho objeto articulado, según una pluralidad de grados de libertad, procedimiento que incluye las etapas siguientes: - calcular una distancia de interacción entre el objeto articulado (10) y su entorno (13); - extraer de dicha distancia de interacción un primer punto (P1) perteneciente a uno de los elementos (11) del objeto articulado (10) y un segundo punto (P2) perteneciente al entorno (13); - definir un vector de extracción único (V) a partir de dichos primer y segundo puntos (P1, P2); y - alejar el objeto articulado (10) de su entorno (13) según un movimiento definido en función del vector de extracción único (V), movimiento de alejamiento que se realiza según un movimiento de traslación actuando sobre la posición global del objeto articulado, y un movimiento de rotación actuando sobre la orientación global del objeto articulado, y un movimiento de rotación articular actuando al nivel de cada una de las articulaciones que pertenecen a una cadena de articulaciones que preceden al elemento del objeto articulado al cual pertenece dicho primer punto; caracterizado porque el cálculo del movimiento de rotación que actúa sobre la orientación global del objeto articulado (10) incluye las etapas siguientes: - definir un primer vector global (V1g) entre el centro de gravedad (G) del objeto articulado (10) y el origen del vector de extracción (V); - definir un segundo vector global (V2g) entre el centro de gravedad (G) del objeto articulado (10) y el extremo del vector de extracción (V); - calcular un ángulo de rotación global (θg) haciendo coincidir el primer vector global sobre el segundo vector global; - calcular un o los ángulos elementales de rotación global descomponiendo dicho ángulo de rotación global según el o los ejes que definen la orientación global del objeto articulado (10); y - girar el objeto articulado (10) según un o los ángulos proporcionales a dicho o a dichos ángulos elementales de rotación global.

Description

Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno.
Dominio de la invención
La presente invención se refiere al dominio de la simulación del desplazamiento de un objeto articulado virtual en un entorno virtual. En particular, la invención se refiere a la evitación de colisiones entre el objeto articulado y su entorno.
Antecedentes de la invención
En numerosas industrias, tales como la aeronáutica o la espacial, se recurre corrientemente a modelizaciones en realidad virtual. Por ejemplo, se utiliza a menudo un modelo numérico para evaluar las interferencias entre diferentes piezas.
Así mismo, la modelización puede ser utilizada para simular acciones humanas o robóticas en un entorno definido con el fin de visualizar, por ejemplo, los desplazamientos que un técnico o un robot deberá realizar para efectuar estas acciones. Esto es útil para validar y optimizar la accesibilidad a ciertas piezas de un dispositivo, como las de un motor de avión, que requieran inspecciones y mantenimientos regulares.
Así, la facilidad de acceso a los diferentes elementos de un dispositivo puede ser controlada virtualmente a partir de la modelización de estas últimas, gracias a una simulación por medio de un objeto articulado virtual.
Un objeto articulado virtual es un conjunto de datos numéricos que definen un sistema cinemático caracterizado por varios elementos articulados según una pluralidad de grados de libertad.
Así, en un instante dado, el objeto articulado virtual puede estar definido por su posición y orientación en un espacio métrico y por los valores de los grados de libertad de las articulaciones. Estos datos, así como los parámetros que definen el entorno del objeto articulado virtual, pueden ser almacenados en un soporte de datos numéricos.
La utilización de un objeto articulado virtual para este tipo de aplicación existe ya.
En efecto, un ejemplo está dado por el artículo de Chedmail, Damay y Le Roy, titulado "Réalité virtuelle, maquette numérique du produit, outils de distribution et partage de la conception" (Journées Priméca, La Plagne 7-9 de abril de 1.999).
Este artículo propone un método para validar la accesibilidad en el montaje/desmontaje de un objeto en un entorno altamente ocupado y que utiliza un modelo de desplazamiento de dos brazos articulados virtuales en un entorno virtual.
Con el fin de evitar la colisión entre los brazos articulados y el entorno, el método propuesto en el artículo de Chedmail y otros, utiliza el cálculo de un gradiente de una línea de colisión con respecto a los grados de libertad de los brazos articulados.
Los cálculos de los gradientes por diferencia finita necesitan realizar numerosos desplazamientos de cada articulación de los brazos articulados y, para cada desplazamiento, es necesario un cálculo de la longitud de la línea de colisión. Este método es muy lento ya que es muy costoso en tiempo de cálculo.
Otros ejemplos están descritos en el documento de Anderson y otros "Using virtual objects to aid underground storage tank teleoperation" Robotics and automation, conferencia internacional del IEEE de 1.994 en San Diego, CA, EE.UU. y en el documento de Bond y otros, "On-line collision avoidance for the Ranger telerobotic flight experiment" Robotics and automation, conferencia internacional del IEEE de 1.996 en Minneapolis, MN, EE. UU. Estos métodos son también muy costosos en tiempo de cálculo.
Objeto y Resumen de la invención
La presente invención está dirigida a remediar los inconvenientes citados anteriormente proponiendo un procedimiento y un sistema que permiten simular el desplazamiento o la manipulación de un objeto articulado evitando las colisiones de este último con su entorno a la vez que limita el tiempo de cálculo.
Estos objetivos se alcanzan gracias a un procedimiento de desplazamiento de un objeto articulado virtual según una sucesión de movimientos elementales en un entorno virtual, estando referenciado el objeto articulado en este entorno por una posición global, una orientación global y una pluralidad de ángulos de articulación que definen la posición de un conjunto de elementos articulados que componen dicho objeto articulado, según una pluralidad de grados de libertad, procedimiento que incluye las etapas siguientes:
-
calcular una distancia de interacción entre el objeto articulado y su entorno;
-
extraer de dicha distancia de interacción un primer punto perteneciente a uno de los elementos del objeto articulado y un segundo punto perteneciente al entorno;
-
definir un vector de extracción único a partir de dichos primer y segundo puntos; y
-
alejar el objeto articulado de su entorno según un movimiento definido en función del vector de extracción único, movimiento de alejamiento que se realiza según un movimiento de traslación, actuando sobre la posición global del objeto articulado, y un movimiento de rotación, actuando sobre la orientación global del objeto articulado, y un movimiento de rotación articular, actuando al nivel de cada una de las articulaciones que pertenecen a una cadena de articulaciones que preceden al elemento del objeto articulado al cual pertenece dicho primer punto;
\vskip1.000000\baselineskip
incluyendo el cálculo del movimiento de rotación que actúa sobre la orientación global del objeto articulado las etapas siguientes:
-
definir un primer vector global entre el centro de gravedad del objeto articulado y el origen del vector de extracción;
-
definir un segundo vector global entre el centro de gravedad del objeto articulado y el extremo del vector de extracción;
-
calcular un ángulo de rotación global que hace coincidir el primer vector global sobre el segundo vector global;
-
calcular un o los ángulos elementales de rotación global descomponiendo dicho ángulo de rotación global según el o los ejes que definen la orientación global del objeto articulado; y
-
girar el objeto articulado según un o los ángulos proporcionales a dicho o a dichos ángulos elementales de rotación global.
\vskip1.000000\baselineskip
Así, el procedimiento según la invención utiliza un solo cálculo de distancia de interacción para alejar el objeto articulado de su entorno. Esto permite una gran simplicidad y una ganancia de tiempo importante.
El procedimiento según la invención incluye, además, una etapa que determina, después de cada movimiento elemental de dicha sucesión de movimientos elementales, si sobreviene una colisión entre el objeto articulado y su entorno.
Según un primer modo de realización de la invención, la distancia de interacción corresponde a una profundidad de penetración, de suerte que el vector de extracción es igual a las coordenadas del segundo punto menos las del primer punto, permitiendo la profundidad de penetración el desplazamiento del objeto articulado con una colisión limitada y controlada con su entorno.
Según un segundo modo de realización de la invención, la distancia de interacción corresponde a una distancia mínima, de suerte que el vector de extracción es igual a las coordenadas del primer punto menos las del segundo punto, permitiendo la distancia mínima el desplazamiento del objeto articulado sin colisión con su entorno.
El procedimiento incluye, además, una etapa de anulación del último movimiento elemental de dicha sucesión de movimientos elementales cuando sobreviene una colisión entre el objeto articulado y su entorno.
Ventajosamente, dichas etapas de extracción de los primer y segundo puntos de definición del vector de extracción y de alejamiento del objeto articulado, no son ejecutadas cuando no sobreviene una colisión entre el objeto articulado y el entorno.
Según una primera particularidad de la invención, el alejamiento del objeto articulado de su entorno puede ser realizado según un movimiento de traslación proporcional a las componentes del vector de extracción actuando sobre la posición global del objeto articulado.
Según otra particularidad de la invención, el alejamiento del objeto articulado de su entorno se realiza según un movimiento de rotación articular actuando al nivel de cada una de las articulaciones que pertenecen a una cadena de articulaciones que preceden al elemento del objeto articulado al cual pertenece dicho primer punto, actuando el movimiento de rotación articular al nivel de una articulación dada de cada una de dichas articulaciones incluyendo las etapas siguientes:
-
definir un primer vector local entre el centro de articulación de dicha articulación dada y el origen del vector de extracción;
-
definir un segundo vector local entre el centro de articulación de dicha articulación dada y el extremo del vector de extracción;
-
calcular un ángulo de rotación local haciendo coincidir el primer vector local sobre el segundo vector local;
-
calcular un o los ángulos elementales de rotación articular descomponiendo dicho ángulo de rotación local según el o los ejes que definen el o los grados de libertad que corresponden a dicha articulación dada; y
-
girar el elemento articulado al nivel de dicha articulación dada según un o los ángulos proporcionales a dicho o a dichos ángulos elementales de articulación.
\vskip1.000000\baselineskip
El ángulo de rotación global puede ser calculado por medio de un producto vectorial global entre los primer y segundo vectores globales, y el ángulo de rotación local puede ser calculado por medio de un producto vectorial local entre los primer y segundo vectores locales.
El o los ángulos elementales de rotación global pueden ser calculados por medio de un o los productos escalares entre el producto vectorial global y el o los ejes de la orientación global, y el o los ángulos elementales de articulación pueden ser calculados por medio de un o los productos escalares entre el producto vectorial local y el o los ejes de grado de libertad de la articulación dada.
Según un modo particular de la invención, el desplazamiento del objeto articulado puede ser implementado por medio de un agente de atracción que actúa sobre posición global, y/o la orientación global, y/o la pluralidad de grados de libertad del objeto articulado.
El alejamiento del objeto articulado de su entorno puede ser implementado por medio de un agente de deslizamiento que actúa sobre la posición global, y/o la orientación global, y/o la pluralidad de grados de libertad del objeto articulado.
Ventajosamente, el procedimiento incluye, además, una etapa de desplazamiento del objeto articulado en tiempo real por un operador por medio de un agente de operador que actúa sobre la posición y/o la orientación y/o la pluralidad de grados de libertad del objeto articulado.
Según una particularidad de la invención, el objeto articulado puede ser un maniquí virtual que se desplaza sobre un suelo de entorno virtual, estando el maniquí definido por una posición sobre el suelo virtual, una orientación alrededor de un eje vertical perpendicular a dicho suelo y que pasa por el centro de gravedad del maniquí y la pluralidad de ángulos de articulación que define el conjunto de sus elementos articulados.
La invención está dirigida también a un programa informático concebido para implementar el procedimiento descrito aquí arriba cuando es ejecutado por un ordenador.
Breve descripción de los dibujos
Otras particularidades y ventajas del procedimiento y del sistema según la invención se destacarán mejor con la lectura de la descripción hecha a continuación, a título indicativo pero no limitativo, en referencia a los dibujos adjuntos, en los cuales:
- la figura 1 es una vista en perspectiva de los medios materiales implementados en el sistema o procedimiento de la invención;
- la figura 2A ilustra muy esquemáticamente un objeto articulado virtual definido en un espacio métrico según la invención;
- la figura 2B ilustra muy esquemáticamente un maniquí virtual definido en un espacio métrico según la invención;
- la figura 3A ilustra muy esquemáticamente un vector de extracción definido en un modo de distancia mínima según la invención;
- la figura 3B ilustra muy esquemáticamente un vector de extracción definido en un modo de profundidad de penetración según la invención;
- la figura 4 ilustra muy esquemáticamente un movimiento de alejamiento actuando sobre la posición global del objeto articulado según la invención;
- la figura 5 ilustra muy esquemáticamente un movimiento de alejamiento actuando sobre orientación global del objeto articulado según la invención;
\newpage
\global\parskip0.930000\baselineskip
- la figura 6 ilustra muy esquemáticamente un movimiento de alejamiento actuando al nivel de una articulación dada del objeto articulado según la invención;
- la figura 7A es un organigrama que ilustra las etapas principales del desplazamiento del objeto articulado según la invención;
- la figura 7B es una variante de la figura 7A; y
- la figura 8 ilustra muy esquemáticamente una arquitectura de un sistema multiagente utilizado para el desplazamiento del objeto articulado según la invención.
Descripción detallada de modos preferidos de realización
La figura 1 representa un sistema que puede ser utilizado para la modelización del desplazamiento de un objeto articulado. Este sistema comprende una estación de trabajo u ordenador 1 que dispone de buenas capacidades gráficas, utilizado para la ejecución de un programa informático concebido para implementar el procedimiento según la invención.
El ordenador 1 comprende los medios materiales que se encentran habitualmente con este tipo de aparato. Más particularmente, el ordenador comprende una unidad central 2 que ejecuta las secuencias de instrucciones del programa según el procedimiento de la invención, una memoria central 3 que almacena los datos y programas en curso de ejecución, soportes de almacenamiento de datos numéricos (disco duro, CD 4, disquete, ...) que conservan de forma duradera los datos y los programas manipulados, periféricos de entrada (teclado 5, ratón "2D" o "3D" 6, palanca de mando, ...) así como periféricos de salida (pantalla 7, cascos o gafas estereoscópicas, ...) para poder visualizar el desplazamiento de un objeto articulado.
Por supuesto, con el fin de aumentar la capacidad de cálculo, la modelización según la invención puede ser implementada sobre varias estaciones de trabajo funcionando en paralelo.
La figura 2A ilustra muy esquemáticamente un objeto articulado virtual 10 caracterizado por una cadena articulada arborescente. Así, el objeto articulado 10 está definido por un conjunto "de objetos pasivos", es decir elementos 11 unidos entre sí por articulaciones 12, que pueden ser clasificados de forma conocida según varias cadenas de articulaciones.
Una referencia local cuyo origen es el centro de gravedad G del objeto articulado 10 puede ser asociada a este último.
En particular, la referencia local puede incluir un solo eje Z que pasa por el centro de gravedad G del objeto articulado 10.
El objeto articulado 10 evoluciona en un entorno virtual 13 altamente ocupado por un cierto número de objetos u obstáculos 13a, 13b, 13c, 13d que el objeto articulado 10 debe evitar durante su desplazamiento. El objeto articulado 10 así como su entorno están definidos en un espacio métrico (O; x, y, z).
Gracias a este espacio métrico, la posición y la orientación del objeto articulado 10 así como los diferentes objetos 13a, 13b, 13c, 13d de su entorno 13 pueden ser referenciadas de forma simple.
Así, el objeto articulado 10 puede ser referenciado en cada instante en el entorno 13 por una posición global, una orientación global y una pluralidad de ángulos de articulación que definen la posición del conjunto de elementos articulados 11, según una pluralidad de grados de libertad.
En efecto, la posición global del objeto articulado 10 puede ser definida por las coordenadas cartesianas según los ejes x, y, z de su centro de gravedad.
La orientación global puede estar referenciada de forma conocida, por tres ángulos que definen la orientación del eje 7 asociado al objeto articulado con respecto a los ejes x, y, z.
Por supuesto, es necesario también tener en cuenta los parámetros o restricciones impuestos por los límites articulares y por las ligaduras físicas entre los diferentes miembros o elementos 11 de este objeto articulado 10.
Estos datos y variables que definen el objeto articulado 10 así como los parámetros que definen su entorno 13 son almacenados en el soporte de datos numéricos 3 del sistema informático 1.
La figura 2B muestra que, en particular, el objeto articulado puede ser un maniquí virtual 10a que se desplaza sobre un suelo del entorno virtual 13.
En este caso, el maniquí 10a puede estar definido por su posición sobre el suelo virtual, su orientación alrededor de un eje vertical Z1 perpendicular a dicho suelo y que pasa por el centro de gravedad G del maniquí 10a y por una pluralidad de ángulos de articulación que definen el conjunto de sus elementos articulados.
\global\parskip1.000000\baselineskip
De forma conocida, el objeto articulado 10 tal como un maniquí 10a puede ser desplazado en el entorno virtual 13 según una sucesión de movimientos elementales para, por ejemplo, alcanzar un objetivo (dar en un blanco) 13c.
Así, para generar una trayectoria que permita al objeto articulado 10 alcanzar su blanco 13c, es posible actuar sobre la posición global del objeto articulado 10 según un paso predefinido de desplazamiento en posición \Deltap, y/o la orientación global del objeto articulado según un paso predefinido de desplazamiento en orientación \Deltao, y/o la pluralidad de grados de libertad del objeto articulado según un paso predefinido de desplazamiento en articulación \Deltaa.
Esto se traduce en la atracción del objeto articulado 10 hacia su blanco 13c sin consideración de las dimensiones del blanco 13c o de cualquier otro objeto 13a, 13b en el entorno 13.
Con el fin de que el objeto articulado 10 evite las colisiones con su entorno 13, es necesario definir un criterio de colisión. Un criterio tal puede ser definido, de forma conocida para el experto, por el cálculo de una distancia de interacción entre el objeto articulado 10 y su entorno 13 que proporciona igualmente los puntos que realizan esta distancia de interacción.
Se apreciará que la distancia de interacción puede corresponder a una distancia mínima o una profundidad de penetración entre el objeto articulado 10 y su entorno.
En efecto, las figuras 3A y 3B ilustran el reconocimiento de la distancia de interacción entre un elemento del objeto articulado 10 y un objeto 13d que pertenece al entorno.
El ejemplo de la figura 3A ilustra, más particularmente, el criterio de distancia mínima entre el objeto articulado 10 y su entorno y los puntos P1 y P2 que realizan esta distancia mínima.
Por otro lado, el ejemplo de la figura 3B ilustra el criterio de profundidad de penetración entre el objeto articulado 10 y su entorno, que define los puntos P1 y P2 que realizan esta profundidad de penetración.
Así, el cálculo de la distancia de interacción permite extraer un punto P1, designado "primer punto" en lo que sigue de la descripción, que pertenece a uno de los elementos 11 del objeto articulado 10 y otro punto P2, designado "segundo punto" en lo que sigue de la descripción, que pertenece al entorno 13.
Entonces es posible definir a partir de estos primer P1 y segundo P2 puntos, un vector de extracción único V.
Según el modo basado en el cálculo de una distancia mínima (figura 3A), el vector de extracción V es igual a las coordenadas del primer punto P1 menos las del segundo punto P2. Dicho de otra manera, el segundo punto P2 es el origen del vector de extracción V y el primer punto P1 es el extremo del vector de extracción V.
Por contra, según el modo basado en el cálculo de una profundidad de penetración (figura 3B), el vector de extracción V es igual a las coordenadas del segundo punto P2 menos las del primer punto P1. Dicho de otra manera, el primer punto P1 es el origen del vector de extracción V y el segundo punto P2 es el extremo del vector de extracción V.
Finalmente, para evitar una colisión entre el objeto articulado 10 y el entorno 13, este objeto articulado 10 puede ser alejado de su entorno según un movimiento definido en función del vector de extracción único V y actuando sobre la posición global y/o la orientación global y/o los grados de libertad del objeto articulado 10.
Las figuras 4 a 6 ilustran los movimientos de alejamiento del objeto articulado según el modo de distancia mínima, pero por supuesto el principio es el mismo según el modo de profundidad de penetración.
La figura 4 ilustra un movimiento de alejamiento actuando sobre la posición global del objeto articulado.
Así, el alejamiento del objeto articulado 10 de su entorno 13 es realizado según un movimiento de traslación M1 proporcional a las componentes del vector de extracción V que actúa sobre la posición global del objeto articulado, es decir M1 = \lambda \cdot V, siendo \lambda un coeficiente positivo.
En particular, en el ejemplo de un maniquí 10a en el que la posición global está definida en un plano (x, y) entonces no se considera más que la proyección del vector de extracción V sobre este plano.
El movimiento de traslación contribuye así a la evitación de una colisión por un desplazamiento global del objeto articulado 10.
Se apreciará que el vector de extracción único V calculado a partir de una distancia mínima o de una profundidad de penetración puede ser normalizado por el valor del paso de desplazamiento elemental en posición \Deltap, es decir, el movimiento de traslación M1 está dado por la ecuación siguiente:
1
La figura 5 ilustra un movimiento de alejamiento que actúa sobre la orientación global del objeto articulado.
El alejamiento del objeto articulado 10 de su entorno 13 es realizado determinando la rotación a efectuar alrededor de un punto, por ejemplo el centro de gravedad G, que lleva desde el objeto articulado 10 para desplazar el punto de aplicación del vector de extracción V sobre el objeto articulado 10 siguiendo este vector V. Esta rotación es normalizada por el valor del paso de desplazamiento en orientación \Deltao.
En efecto, este movimiento de rotación que actúa sobre la orientación global del objeto articulado 10 puede ser determinada según las etapas que van mas abajo.
Un primer vector V1g, designado "primer vector global" en lo que sigue de la descripción, está definido entre el centro de gravedad G del objeto articulado 10 y el origen del vector de extracción V. Según este ejemplo, el origen del vector de extracción V es el segundo punto P2, pero sería el primer punto P1 en un modo de profundidad de penetración.
De la misma manera, un segundo vector global V2g está definido entre el centro de gravedad G del objeto articulado 10 y el extremo P1 del vector de extracción V.
A continuación, se calcula un ángulo de rotación \thetag, designado "ángulo de rotación global" en lo que sigue de la descripción, haciendo coincidir el primer vector global V1g sobre el segundo vector global V2g. El ángulo de rotación global \thetag puede ser calculado por medio de un producto vectorial, designado en lo que sigue "producto vectorial global" entre los primer V1g y segundo V2g vectores globales. Así, el ángulo de rotación global \thetag está dado por la ecuación siguiente:
2
Este ángulo de rotación global \thetag está descompuesto en el o los ángulos elementales \thetagi de rotación global siguiendo el o los ejes que definen la orientación global del objeto articulado. El o los ángulos elementales \thetagi de rotación global pueden ser calculados por medio de un o los productos escalares entre el producto vectorial global y el o los ejes de la orientación global.
Finalmente, el objeto articulado 10 es girado según un o los ángulos a proporcionales a dicho o dichos ángulos elementales \thetagi de rotación global. En efecto, los ángulos elementales \thetagi de rotación global son normalizados por los valores correspondientes del paso de desplazamiento en orientación \Deltao, es decir, \alpha =\thetagi/\Deltao.
En particular, cuando la orientación global del objeto articulado está definida por un solo eje 7 como en el ejemplo de la figura 2, entonces resulta un solo ángulo elemental normalizado a de rotación global que define el movimiento de rotación del objeto articulado alrededor de este eje Z dado por la ecuación siguiente:
3
La figura 6, ilustra un movimiento de rotación articular que actúa al nivel de grados de libertad del objeto articulado.
Se apreciará que el alejamiento del objeto articulado 10 de su entorno 13 es realizado según un movimiento de rotación articular actuando al nivel de cada una de las articulaciones 12 que pertenecen a una cadena de articulaciones que preceden el elemento 11 del objeto articulado al cual pertenece el primer punto P1 definido aquí anteriormente (véase las figuras 2A y 2B).
A título de ejemplo, si el objeto articulado es un maniquí virtual 10a y si la distancia de interacción entre el maniquí 10a y el entorno 13 está realizada por un primer punto P1 sobre el antebrazo, entonces la cadena de articulaciones corresponde al codo, hombro y clavícula. Dicho de otra manera, el movimiento de rotación articular es calculado para actuar sobre todas las articulaciones 12 del brazo que preceden al antebrazo. Por otro lado, si el primer punto P1 pertenece al brazo, entonces la cadena de articulación incluiría solamente las articulaciones del hombro y de la clavícula. Si el primer punto P1 pertenece a la mano, entonces todas las articulaciones 12 del brazo serían consideradas, es decir, que la cadena de articulación incluiría la muñeca, el codo, el hombro y la clavícula.
Así, para un objeto articulado 10 dado, la cadena de articulación depende del elemento 11 del objeto articulado 10 que incluya al primer punto P1.
En particular, el ejemplo de la figura 6 muestra el movimiento de rotación articular que actúa al nivel de una articulación dada 12a que forma parte de una cadena de articulaciones 12a, 12b y 12c.
En efecto, este movimiento de rotación articular que actúa al nivel de una articulación dada 12a, puede ser determinado según las etapas que van más abajo.
Un primer vector V1l designado "primer vector local" en lo que sigue de la descripción, está definido entre el centro de articulación de dicha articulación dada 12a y el origen P2 del vector de extracción V.
De la misma manera, un segundo vector local V2l está definido entre el centro de articulación de dicha articulación dada 12a y el extremo P1 del vector de extracción V.
A continuación, se calcula un ángulo de rotación \thetal , designado "ángulo de rotación local" en lo que sigue de la descripción, haciendo coincidir el primer vector local V1l sobre el segundo vector local V2l. El ángulo de rotación local \thetal puede ser calculado por medio de un producto vectorial, designado en lo que sigue "producto vectorial local" entre los primer V1l y segundo V2l vectores locales según la fórmula que va abajo:
4
Este ángulo de rotación local \thetal está descompuesto en el o los ángulos elementales \thetali de rotación articular siguiendo el o los ejes Ui que definen el o los grados de libertad que corresponden a dicha articulación dada 12a del objeto articulado 10. Según este ejemplo, la articulación dada 12a incluye dos ejes U1 y U2. El o los ángulos elementales \thetali de rotación articular pueden ser calculados por medio de un o los productos escalares entre el producto vectorial local y el o los ejes Ui de grado de libertad de la articulación dada 12a.
Finalmente, el elemento articulado al nivel de dicha articulación dada es girado según un o los ángulos \alphai proporcionales a dicho o dichos ángulos elementales \thetali de articulación.
En efecto, los ángulos elementales \thetali de articulación son normalizados por los valores correspondientes del paso de desplazamiento en articulación \Deltaa.
El elemento articulado al nivel de dicha articulación dada es girado según un o los ángulos \alphai dados por la fórmula siguiente:
5
Por supuesto, las mismas etapas anteriores deben ser efectuadas para todas las articulaciones 12a, 12b y 12c que componen la cadena de articulaciones considerada.
Así, la utilización de un vector de extracción único V calculado a partir de una distancia mínima o de una profundidad de penetración permite mejorar sensiblemente el procedimiento de evitación de colisión entre el objeto articulado 10 y el entorno 13.
En efecto, la presente invención permite reducir considerablemente el número de cálculos de distancia mínima o de profundidad de penetración, que requieren mucho tiempo de cálculo, con respecto a los cálculos de gradientes de la técnica anterior y sin afectar la precisión de evitación de colisión entre el objeto articulado y el entorno.
La figura 7A es un organigrama que ilustra las etapas principales que modelizan el desplazamiento del objeto articulado evitando las colisiones entre este último y el entorno.
La etapa S0 es una inicialización del organigrama en la que se definen diferentes parámetros. Por ejemplo, se inicializa un contador de cadencia de impulsos o etapas de cálculo de la modelización.
Del mismo modo, los movimientos elementales o paso de desplazamiento en posición \Deltap, en orientación \Deltao y en articulación \Deltaa pueden también ser definidos en la etapa S0. Por ejemplo, se pueden atribuir pasos diferentes según la naturaleza de la articulación 12. Se puede también escoger un paso constante óptimo para todas las articulaciones 12 y a lo largo de toda la trayectoria del objeto articulado 10.
En la etapa S1, se realiza un cálculo de un movimiento elemental del objeto articulado 10.
La etapa S2 es una prueba para determinar si hay colisión o no entre el objeto articulado 10 y el entorno 13. El criterio de colisión depende del valor de la distancia de interacción.
Dicho de otra manera, para el modo basado en la distancia mínima, se puede considerar que una colisión sobreviene si esta distancia mínima es inferior o igual a una distancia mínima umbral que puede ser igual a cero con el fin de permitir el desplazamiento del objeto articulado 10 sin colisión con su entorno 13.
Por contra, para el modo basado en la profundidad de penetración se puede considerar que una colisión sobreviene si esta profundidad es superior o igual a una profundidad de penetración umbral. Así, según la elección de este valor umbral, se puede por un lado, permitir el desplazamiento del objeto articulado 10 sin colisión con su entorno 13 o, por otro lado, permitir el desplazamiento del objeto articulado 10 con una colisión limitada y controlada con su entorno 13. Este último caso permite modelizar una cierta plasticidad cuando el objeto articulado 10 está en contacto con un objeto del entorno 13.
Si no hay colisión según el criterio de la etapa precedente S2, entonces en la etapa S3 se indica, por ejemplo, en la pantalla 7 del ordenador 1, el desplazamiento del objeto articulado 10 calculado en la etapa S1 antes de volver a esta misma etapa S1 para calcular un desplazamiento elemental siguiente.
Así, en la etapa S3, no son ejecutadas las etapas de extracción de los primer y segundo puntos, de definición del vector de extracción y del alejamiento del objeto articulado 10 del entorno 13.
Por contra, si hay colisión, entonces se anula en la etapa S4 el desplazamiento elemental calculado en la etapa S1.
A continuación, en la etapa S5, se calcula el movimiento definido en función del vector de extracción único y actuando sobre la posición global, y/o la orientación global, y/o los grados de libertad del objeto articulado para alejar el objeto articulado 10 de su entorno 13, antes de retornar a la etapa S1.
La figura 7B es una variante de la figura 7A que es válida únicamente en el modo de cálculo que utiliza la profundidad de penetración.
El organigrama de esta figura es el mismo que el de la figura 7A salvo en que la etapa S4 no existe.
Así, cuando hay una colisión en la etapa S2, se pasa directamente a la etapa S5 de alejamiento del objeto articulado 10 de su entorno 13, sin anulación del último desplazamiento elemental, permitiendo así una ligera penetración entre el objeto articulado 10 y su entorno 13.
El desplazamiento del objeto articulado virtual 10 en un entorno virtual 13 puede ser implementado por medio de un sistema "multiagente" o de cualquier otro sistema conocido.
En efecto, la figura 8 ilustra muy esquemáticamente una arquitectura de un sistema multiagente 50 que puede ser utilizada para modelizar el desplazamiento de un objeto articulado 10. Este sistema multiagente 50 está compuesto por un conjunto de elementos activos o agentes 20, 21, 22, 23, 30, 31, 32 y 33 que actúan sobre los objetos pasivos (elementos 11 y articulaciones 12) que componen el objeto articulado 10 en función de su entorno.
Los datos o variables que definen el objeto articulado 10 y su entorno constituyen los datos compartidos 15 a través de los cuales los diferentes agentes interactúan.
La arquitectura del sistema multiagente puede ser organizada en varias etapas o niveles, de forma piramidal, de suerte que los agentes de base contribuyen a las acciones de los que están un nivel más elevado.
En este ejemplo, el sistema multiagente 50 presenta un primer nivel 51 y un segundo nivel 52.
El primer nivel 51 ilustra la acción o la contribución global sobre el objeto articulado 10 e incluye la contribución de un primer agente global 20 y la contribución de un segundo agente global 30 que actúan sobre el objeto articulado 10 a través de los datos compartidos 15.
El primer agente global 20 actúa sobre la posición y orientación globales del objeto articulado 10 y el segundo agente global 30 actúa sobre los grados de libertad internos de articulación 12 del objeto articulado 10.
El segundo nivel 52 ilustra diferentes contribuciones, que emanan de los diferentes tipos de agentes que engendran las contribuciones de los primer y segundo agentes globales 20 y 30 interactuando a través de los datos compartidos 15.
Así, el desplazamiento del objeto articulado 10 puede ser implementado por medio de un agente de atracción que actúa sobre la posición global y/u orientación global y/o la pluralidad de grados de libertad del objeto articulado.
Por otro lado, el alejamiento del objeto articulado de su entorno puede ser implementado por medio de un agente de deslizamiento que actúa sobre la posición global y/u orientación global y/o la pluralidad de grados de libertad del objeto articulado.
Así, el segundo nivel 52 del sistema multiagente 50 puede incluir un agente de deslizamiento repulsivo 21 que actúa sobre la posición y/u orientación global del objeto articulado 10, un agente de atracción global 22 que actúa sobre la posición y/u orientación global del objeto articulado 10, un agente de deslizamiento cinemático 31 que actúa sobre los grados de libertad internos de articulación 12 del objeto articulado 10 y un agente de atracción cinemática 32 que actúa sobre los grados de libertad internos de articulación 12 del objeto articulado 10.
Además, el objeto articulado 10 puede ser desplazado en tiempo real por un operador por medio de un agente de operador que actúa sobre la posición y/o la orientación y/o la pluralidad de grados de libertad del objeto articulado.
Así, el segundo nivel 52 del sistema multiagente 50 puede incluir también un agente de operador global 23 que actúa sobre la posición y/u orientación global del objeto articulado 10, y un agente de operador interno 33 que actúa sobre los grados de libertad internos de articulación 12 del objeto articulado 10.

Claims (15)

1. Procedimiento de desplazamiento de un objeto articulado virtual (10) según una sucesión de movimientos elementales en un entorno virtual (13), estando referenciado el objeto articulado (10) en este entorno (13) por una posición global, una orientación global y una pluralidad de ángulos de articulación que definen la posición de un conjunto de elementos articulados (11) que componen dicho objeto articulado, según una pluralidad de grados de libertad, procedimiento que incluye las etapas siguientes:
-
calcular una distancia de interacción entre el objeto articulado (10) y su entorno (13);
-
extraer de dicha distancia de interacción un primer punto (P1) perteneciente a uno de los elementos (11) del objeto articulado (10) y un segundo punto (P2) perteneciente al entorno (13);
-
definir un vector de extracción único (V) a partir de dichos primer y segundo puntos (P1, P2); y
-
alejar el objeto articulado (10) de su entorno (13) según un movimiento definido en función del vector de extracción único (V), movimiento de alejamiento que se realiza según un movimiento de traslación actuando sobre la posición global del objeto articulado, y un movimiento de rotación actuando sobre la orientación global del objeto articulado, y un movimiento de rotación articular actuando al nivel de cada una de las articulaciones que pertenecen a una cadena de articulaciones que preceden al elemento del objeto articulado al cual pertenece dicho primer punto;
caracterizado porque el cálculo del movimiento de rotación que actúa sobre la orientación global del objeto articulado (10) incluye las etapas siguientes:
-
definir un primer vector global (V1g) entre el centro de gravedad (G) del objeto articulado (10) y el origen del vector de extracción (V);
-
definir un segundo vector global (V2g) entre el centro de gravedad (G) del objeto articulado (10) y el extremo del vector de extracción (V);
-
calcular un ángulo de rotación global (\thetag) haciendo coincidir el primer vector global sobre el segundo vector global;
-
calcular un o los ángulos elementales de rotación global descomponiendo dicho ángulo de rotación global según el o los ejes que definen la orientación global del objeto articulado (10); y
-
girar el objeto articulado (10) según un o los ángulos proporcionales a dicho o a dichos ángulos elementales de rotación global.
\vskip1.000000\baselineskip
2. Procedimiento según la reivindicación 1, caracterizado porque incluye además una etapa que determina, después de cada movimiento elemental de dicha sucesión de movimientos elementales si sobreviene una colisión entre el objeto articulado (10) y su entorno (13).
3. Procedimiento según una cualquiera de las reivindicaciones 1 y 2, caracterizado porque la distancia de interacción corresponde a una profundidad de penetración, de suerte que el vector de extracción (V) es igual a las coordenadas del segundo punto (P2) menos las del primer punto (P1), permitiendo la profundidad de penetración el desplazamiento del objeto articulado (10) con una colisión limitada y controlada con su entorno (13).
4. Procedimiento según una cualquiera de las reivindicaciones 1 y 2, caracterizado porque la distancia de interacción corresponde a una distancia mínima, de suerte que el vector de extracción (V) es igual a las coordenadas del primer punto (P1) menos las del segundo punto (P2), permitiendo la distancia mínima el desplazamiento del objeto articulado (10) sin colisión con su entorno (13).
5. Procedimiento según una cualquiera de las reivindicaciones 1 a 4, caracterizado porque incluye, además, una etapa de anulación del último movimiento elemental de dicha sucesión de movimientos elementales cuando sobreviene una colisión entre el objeto articulado (10) y su entorno (13).
6. Procedimiento según una cualquiera de las reivindicaciones 1 a 4, caracterizado porque dichas etapas de extracción de los primer y segundo puntos (P1, P2), de definición del vector de extracción (V) y de alejamiento del objeto articulado (10), no son ejecutadas cuando no sobreviene una colisión entre el objeto articulado (10) y el entorno (13).
7. Procedimiento según una cualquiera de las reivindicaciones 1 a 5, caracterizado porque el movimiento de traslación es proporcional a las componentes del vector de extracción (V) que actúa sobre la posición global del objeto articulado (10).
8. Procedimiento según una cualquiera de las reivindicaciones 1 a 5, caracterizado porque el movimiento de rotación articular que actúa al nivel una articulación dada (12a) de cada una de las articulaciones que pertenecen a la cadena de articulaciones que preceden al elemento del objeto articulado al cual pertenece dicho primer punto, incluye las etapas siguientes:
-
definir un primer vector local (V1l) entre el centro de articulación de dicha articulación dada (12a) y el origen del vector de extracción (V);
-
definir un segundo vector local (V2l) entre el centro de articulación de dicha articulación dada y el extremo del vector de extracción (V);
-
calcular un ángulo de rotación local (\thetal) haciendo coincidir el primer vector local sobre el segundo vector local;
-
calcular un o los ángulos elementales de rotación articular descomponiendo dicho ángulo de rotación local según el o los ejes que definen el o los grados de libertad que corresponden a dicha articulación dada; y
-
girar el elemento articulado (10) al nivel de dicha articulación dada según un o los ángulos proporcionales a dicho o a dichos ángulos elementales de articulación.
\vskip1.000000\baselineskip
9. Procedimiento según una cualquiera de las reivindicaciones 1 a 8, caracterizado porque el ángulo de rotación global (\thetag) es calculado por medio de un producto vectorial global entre los primer y segundo vectores globales, y el ángulo de rotación local (\thetal) es calculado por medio de un producto vectorial local entre los primer y segundo vectores locales
10. Procedimiento según una cualquiera de las reivindicaciones 1 a 9, caracterizado porque el o los ángulos elementales de rotación global son calculados por medio de un o los productos escalares entre el producto vectorial global y el o lo ejes de la orientación global, y el o los ángulos elementales de articulación son calculados por medio de un o los productos escalares entre el producto vectorial local y el o los ejes de grado de libertad de la articulación dada.
11. Procedimiento según una cualquiera de las reivindicaciones 1 a 10, caracterizado porque el desplazamiento del objeto articulado (10) es implementado por medio de un agente de atracción (22, 32) que actúa sobre la posición global, y/o la orientación global, y/o la pluralidad de grados de libertad del objeto articulado.
12. Procedimiento según una cualquiera de las reivindicaciones 1 a 11, caracterizado porque el alejamiento del objeto articulado de su entorno es implementado por medio de un agente de deslizamiento (21, 31) que actúa sobre la posición global, y/o la orientación global, y/o la pluralidad de grados de libertad del objeto articulado.
13. Procedimiento según una cualquiera de las reivindicaciones 1 a 12, caracterizado porque el procedimiento incluye, además, una etapa de desplazamiento del objeto articulado (10) en tiempo real por un operador por medio de un agente de operador (23, 33) que actúa sobre la posición y/o la orientación y/o la pluralidad de grados del objeto articulado.
14. Procedimiento según una cualquiera de las reivindicaciones 1 a 13, caracterizado porque el objeto articulado (10) es un maniquí virtual (10a) que se desplaza sobre un suelo del entorno virtual, estando el maniquí definido por una posición sobre el suelo virtual, una orientación alrededor de un eje vertical perpendicular a dicho suelo y que pasa por el centro de gravedad del maniquí y la pluralidad de ángulos de articulación que define el conjunto de sus elementos articulados.
15. Programa informático caracterizado porque está concebido para implementar el procedimiento según una cualquiera de las reivindicaciones 1 a 14 cuando es ejecutado por un ordenador (1).
ES04292230T 2003-10-29 2004-09-17 Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno. Active ES2359239T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0312641 2003-10-29
FR0312641A FR2861858B1 (fr) 2003-10-29 2003-10-29 Deplacement d'un objet articule virtuel dans un environnement virtuel en evitant les collisions entre l'objet articule et l'environnement

Publications (1)

Publication Number Publication Date
ES2359239T3 true ES2359239T3 (es) 2011-05-19

Family

ID=34400874

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04292230T Active ES2359239T3 (es) 2003-10-29 2004-09-17 Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno.

Country Status (10)

Country Link
US (1) US7457733B2 (es)
EP (1) EP1528511B1 (es)
JP (1) JP4942924B2 (es)
CN (1) CN100419796C (es)
CA (1) CA2483083C (es)
DE (1) DE602004031185D1 (es)
ES (1) ES2359239T3 (es)
FR (1) FR2861858B1 (es)
RU (1) RU2308764C2 (es)
UA (1) UA85820C2 (es)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467904B2 (en) * 2005-12-22 2013-06-18 Honda Motor Co., Ltd. Reconstruction, retargetting, tracking, and estimation of pose of articulated systems
US8924021B2 (en) * 2006-04-27 2014-12-30 Honda Motor Co., Ltd. Control of robots from human motion descriptors
JP4986543B2 (ja) * 2006-08-31 2012-07-25 キヤノン株式会社 情報処理方法、情報処理装置
WO2009006727A1 (en) * 2007-07-12 2009-01-15 Xtranormal Technologie Inc. Modeling the motion of an articulated object
US8170287B2 (en) * 2007-10-26 2012-05-01 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance
US8396595B2 (en) * 2007-11-01 2013-03-12 Honda Motor Co., Ltd. Real-time self collision and obstacle avoidance using weighting matrix
US9165199B2 (en) * 2007-12-21 2015-10-20 Honda Motor Co., Ltd. Controlled human pose estimation from depth image streams
WO2009086088A1 (en) * 2007-12-21 2009-07-09 Honda Motor Co., Ltd. Controlled human pose estimation from depth image streams
WO2010099035A1 (en) * 2009-02-25 2010-09-02 Honda Motor Co., Ltd. Body feature detection and human pose estimation using inner distance shape contexts
CN101866386B (zh) * 2010-06-25 2012-04-18 杭州维肖软件科技有限公司 一种基于能量平衡的柔性体碰撞处理方法
US20120117514A1 (en) * 2010-11-04 2012-05-10 Microsoft Corporation Three-Dimensional User Interaction
EP2643817A4 (en) 2010-11-26 2017-06-21 Thomson Licensing Method for animating characters, with collision avoidance based on tracing information
US9002099B2 (en) * 2011-09-11 2015-04-07 Apple Inc. Learning-based estimation of hand and finger pose
DE102016102868A1 (de) * 2016-02-18 2017-08-24 Adrian Drewes System zur Darstellung von Objekten in einem virtuellen dreidimensionalen Bildraum
IL264690B (en) 2016-08-11 2022-06-01 Magic Leap Inc Automatic positioning of a virtual object in 3D space
CN106489113B (zh) * 2016-08-30 2019-03-15 北京小米移动软件有限公司 Vr控制的方法、装置及电子设备
WO2021224936A1 (en) * 2020-05-07 2021-11-11 Mimyk Medical Simulations Private Limited Method and system for real-time simulation of elastic body

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61127007A (ja) * 1984-11-26 1986-06-14 Hitachi Ltd ロボツトとワ−クの干渉チエツク方式
US5625577A (en) * 1990-12-25 1997-04-29 Shukyohojin, Kongo Zen Sohonzan Shorinji Computer-implemented motion analysis method using dynamics
JP3053491B2 (ja) * 1992-03-10 2000-06-19 三菱電機株式会社 数値制御方法
JP3464307B2 (ja) * 1995-03-24 2003-11-10 シチズン時計株式会社 Nc旋盤における干渉チェック方法
DE19625409A1 (de) * 1996-06-25 1998-01-08 Siemens Ag Medizinische Anlage
US7472047B2 (en) * 1997-05-12 2008-12-30 Immersion Corporation System and method for constraining a graphical hand from penetrating simulated graphical objects
US6067096A (en) * 1998-03-04 2000-05-23 Nagle; John Method and system for generating realistic collisions in graphical simulations
JPH11353493A (ja) * 1998-06-08 1999-12-24 Hitachi Ltd 階層管理による物体の映像制御装置及び方法
US6853964B1 (en) * 2000-06-30 2005-02-08 Alyn Rockwood System for encoding and manipulating models of objects
US6519860B1 (en) * 2000-10-19 2003-02-18 Sandia Corporation Position feedback control system
US6856319B2 (en) * 2002-06-13 2005-02-15 Microsoft Corporation Interpolation using radial basis functions with application to inverse kinematics
US7168748B2 (en) * 2002-09-26 2007-01-30 Barrett Technology, Inc. Intelligent, self-contained robotic hand
WO2004047008A1 (en) * 2002-11-15 2004-06-03 Esc Entertainment, A California Corporation Reverse-rendering method for digital modeling

Also Published As

Publication number Publication date
RU2004131050A (ru) 2006-04-10
DE602004031185D1 (de) 2011-03-10
JP2005182759A (ja) 2005-07-07
CA2483083C (fr) 2013-12-24
EP1528511B1 (fr) 2011-01-26
CN100419796C (zh) 2008-09-17
UA85820C2 (uk) 2009-03-10
US7457733B2 (en) 2008-11-25
RU2308764C2 (ru) 2007-10-20
JP4942924B2 (ja) 2012-05-30
EP1528511A1 (fr) 2005-05-04
FR2861858B1 (fr) 2014-09-05
CA2483083A1 (fr) 2005-04-29
US20050096889A1 (en) 2005-05-05
FR2861858A1 (fr) 2005-05-06
CN1612168A (zh) 2005-05-04

Similar Documents

Publication Publication Date Title
ES2359239T3 (es) Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones entre el objeto articulado y el entorno.
Žlajpah Simulation in robotics
ES2290648T3 (es) Desplazamiento de un objeto articulado virtual en un entorno virtual evitando las colisiones internas entre los elementos articulados del objeto articulado.
US9449416B2 (en) Animation processing of linked object parts
Borst et al. Realistic virtual grasping
US20090306825A1 (en) Manipulation system and method
Conkur Path planning using potential fields for highly redundant manipulators
Srivatsan et al. On the position kinematic analysis of MaPaMan: A reconfigurable three-degrees-of-freedom spatial parallel manipulator
Yuan et al. A novel approach for forward dynamic analysis of 3-PRS parallel manipulator with consideration of friction effect
JP4267508B2 (ja) 仮想ダミーの人間工学的動きの最適化
Kaushik et al. Imitating human movement using a measure of verticality to animate low degree-of-freedom non-humanoid virtual characters
Kumar et al. Simulation in robotics
Pai et al. Platonic beasts: Spherically symmetric multilimbed robots
Bodily Design optimization and motion planning for pneumatically-actuated manipulators
Huang Forward displacement analysis of a parallel manipulator
Tsai et al. Two-phase optimized inverse kinematics for motion replication of real human models
Khusnutdinov et al. Household objects pick and place task for AR-601M humanoid robot
Usta Comparison of quaternion and euler angle methods for joint angle animation of human figure models
Abdullah et al. Robot arm simulation using 3D software application with 3D modeling, programming and simulation support
Keith et al. Haptic interaction with virtual avatars
US20220226987A1 (en) Robot with an inverse kinematics (ik)-based controller for retargeting input motions
Kovar et al. Laboratory delta robot for mechatronic education purposes
Frutuoso Smart collision avoidance system for a dual-arm manipulator
Dai et al. Kinematics analysis of a 3-dof rotational parallel mechanism
Chan et al. Accelerating Numerical Inverse Kinematics Methods with the Lookup Table