ES2886527T3 - Procedimiento de control de un robot deformable, módulo y programa informático asociados - Google Patents
Procedimiento de control de un robot deformable, módulo y programa informático asociados Download PDFInfo
- Publication number
- ES2886527T3 ES2886527T3 ES14702297T ES14702297T ES2886527T3 ES 2886527 T3 ES2886527 T3 ES 2886527T3 ES 14702297 T ES14702297 T ES 14702297T ES 14702297 T ES14702297 T ES 14702297T ES 2886527 T3 ES2886527 T3 ES 2886527T3
- Authority
- ES
- Spain
- Prior art keywords
- robot
- vector
- matrix
- nodes
- line
- 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
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/1607—Calculation of inertia, jacobian matrixes and inverses
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J15/00—Gripping heads and other end effectors
- B25J15/08—Gripping heads and other end effectors having finger members
- B25J15/12—Gripping heads and other end effectors having finger members with flexible finger members
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J18/00—Arms
- B25J18/06—Arms flexible
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/0006—Exoskeletons, i.e. resembling a human figure
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1635—Programme controls characterised by the control loop flexible-arm control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/35—Nc in input of data, input till input file format
- G05B2219/35017—Finite elements analysis, finite elements method FEM
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40305—Exoskeleton, human robot interaction, extenders
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/45—Nc applications
- G05B2219/45117—Medical, radio surgery manipulator
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S901/00—Robots
- Y10S901/02—Arm motion controller
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Automation & Control Theory (AREA)
- Operations Research (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Orthopedic Medicine & Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Manipulator (AREA)
- Complex Calculations (AREA)
Abstract
Procedimiento para controlar un robot (1) que incluye al menos una parte deformable por un conjunto de activadores (2) implementado por ordenador, debiendo seguir cada punto de un conjunto de puntos (3), llamados punto o puntos efectores, del robot, una trayectoria determinada, estando definido el robot por un modelo de nodos y una matriz K que define una variación de las fuerzas internas del robot en cada nodo en función de la variación de posición de los nodos, estando caracterizado el procedimiento por que, para determinar el control destinado a cada activador durante un iésimo paso de cálculo de control: i/ se actualizan los valores de la matriz K en función de la posición actual de los nodos del robot; ii/ se determinan los valores actuales de la matriz jacobiana J de un vector δ(x), donde x es un vector de posición de los nodos y el vector δ(x) relativo al desplazamiento de cada activador controlado con vistas a un movimiento del robot (1) e incluye al menos un subconjunto de línea o líneas relativas a cada punto efector y que indica las coordenadas de las desviaciones entre la posición de dicho punto efector y su trayectoria determinada, y al menos un subconjunto de línea o líneas que indican la desplazamiento de cada activador, se determina Δx verificando: - K. Δx = p + f(xi-1), donde Δx representa una variación del vector x, el vector p representa las fuerzas externas que se ejercen sobre el robot, K es la matriz actualizada en la etapa i/, xi-1 es el vector de posición actual de los nodos y f(xi-1) es el vector de las fuerzas internas que se ejercen sobre el robot en su posición actual, se calcula xlibre = xi-1 + Δx así como los valores del vector δ(xlibre); iii/ se calculan los valores de la matriz W = J. K-1. JT, donde K-1 es la matriz inversa de K y JT es la matriz transpuesta de J; y iv/ se resuelve la ecuación δ = W. λ + δ0, para determinar los valores de los vectores δ y λ en dicho iésimo paso de cálculo, donde λ es un vector que incluye, para cada línea del vector δ relativo a un punto efector, una línea que incluye un valor nulo y, para cada línea del vector δ relativo a un activador, una línea que incluye un valor de esfuerzo ejercido por el activador correspondiente al desplazamiento indicado, y δ0 es un vector igual a δ(xlibre); y v/ se deduce el comando destinado a cada activador en función al menos de los valores determinados en la etapa iv/ del vector δ o λ.
Description
DESCRIPCIÓN
Procedimiento de control de un robot deformable, módulo y programa informático asociados
La presente invención se refiere a un procedimiento para controlar un robot que comprende al menos una parte deformable por un conjunto de activadores, debiendo seguir cada punto de un conjunto de punto o puntos llamados punto o puntos efectores, del robot, una trayectoria determinada, estando definido el robot por un modelo de nodos y una matriz K que define una variación de las fuerzas internas del robot en cada nodo en función de la variación de posición de los nodos.
Como recordatorio, un activador es un componente del robot que proporciona un esfuerzo, en forma de una fuerza y/o una presión y/o un par, cuya intensidad es función de un comando que recibe.
Los comandos «clásicos» para el control de un robot se basan, generalmente, en un modelado de la cinemática entre el o los activadores del robot y al menos un punto del robot al que se desea aplicar un movimiento determinado, que se llama punto efector del robot.
Este modelado es relativamente fácil de obtener si la cinemática corresponde a una cadena articular: el robot se compone entonces de segmentos rígidos sobre los que se colocan articulaciones (a menudo consideradas como «perfectas»), y eventualmente codificadores para poder medir los movimientos relativos de estos segmentos. El comando calcula la configuración del robot a partir de un cálculo relativamente sencillo, a menudo analítico, que se puede realizar en tiempo real.
Los robots flexibles o deformables existentes, es decir, que incluyen al menos una parte de material flexible o deformable, son particularmente adecuados para evolucionar en entornos frágiles, por ejemplo, el cuerpo humano para robótica quirúrgica. También son más robustos (mejor resistencia al impacto) y pueden ser más fáciles de fabricar (especialmente por impresión en 3D).
La mayoría de los robots flexibles o deformables que se utilizan realmente están limitados a un pequeño número de grados de libertad, por ejemplo, los robots que incluyen una pinza flexible, que se utilizan para la micro manipulación. En estas condiciones, la cinemática sigue siendo relativamente sencilla y puede, simplemente, medirse o calcularse previamente.
Sin embargo, a diferencia de los robots rígidos, el número de grados de libertad de los robots flexibles puede ser infinito, pudiendo colocarse activadores en una infinidad de puntos y luego ser controlados para permitir en cada punto efector seguir el movimiento determinado asociado con él. Pero los trabajos en robots de accionamiento múltiple flexibles o deformables tropiezan con el problema de su control, en particular debido al elevado número de grados de libertad de accionamiento.
Por otra parte, los métodos por elementos finitos o FEM (en inglés «Finite Element Method») se utilizan para modelar robots flexibles cuando, conociendo los comandos o esfuerzos aplicados a un robot flexible, se busca determinar el comportamiento de este robot flexible. El documento de C. Duriez, «Real-time haptic simulation of medical procedures involving deformations and device-tissue interactions» ("Simulación háptica en tiempo real de procedimientos médicos que implican deformaciones e interacciones de dispositivo-tejido"), Tesis de Habilitación 2013, describe un procedimiento FEM de simulación háptica en tiempo real de la deformación de un tejido mediante la acción de un robot flexible.
Incluso si el cálculo de la deformación por un modelo FEM se puede hacer en tiempo real, la dificultad desde el punto de vista del control es obtener el valor del accionamiento que va a generar la deformación deseada, este un tipo de inversión del modelo que por tanto es necesario.
Ahora bien, el uso del FEM para resolver el problema inverso no se ha podido implementar hasta ahora porque los tiempos de cálculo generalmente necesarios son prohibitivos.
La presente invención pretende contribuir a paliar algunos de estos problemas encontrados en la gestión de activadores de robots deformables, proponiendo una técnica ventajosa basada en una inversión optimizada del modelo FEM en tiempo real.
A este efecto, según un primer aspecto, la invención propone un procedimiento tal como se define en la reivindicación 1.
Tal procedimiento permite gestionar robots deformables, particularmente en el caso en el que varios activadores permiten gestionar la deformación de al menos una parte, compuesta de un material flexible, del robot, con el fin de crear un movimiento deseado en uno o varios puntos efectores terminales, reduciendo al mismo tiempo considerablemente la carga computacional requerida para la gestión de los activadores.
En modos de realización, el procedimiento de control de un robot según la invención incluye además una o más de las siguientes características:
- el vector 5 incluye además al menos un subconjunto de línea o líneas que indica un desplazamiento de un punto del robot sometido a restricciones externas al robot, y el vector A incluye además un subconjunto correspondiente de línea o
líneas que indican los valores de fuerzas ejercidas por las restricciones externas al robot correspondientes al desplazamiento indicado;
- la posición correspondiente a la trayectoria determinada de un punto efector se resta de la posición del punto efector determinada por interpolación, asociada con coeficientes de interpolación respectivos, de la posición de un conjunto de dicho nodo o nodos para obtener el subconjunto de líneas del vector 5(x) relativas al efector, y según el cual, en dicho mismo subconjunto de líneas de la matriz jacobiana J, los valores de las columnas que corresponden a dichos nodos, son función de dichos coeficientes de interpolación;
- un punto de fijación de un activador es una interpolación de nodo o nodos asociados cada uno con un coeficiente de interpolación distinto de cero, y al menos una línea de la matriz J se determina en función de la dirección de accionamiento de dicho activador, siendo nulo cada término de dicha línea excepto los de las columnas de dicho nodo o de dichos nodos;
- en la etapa iv/ la ecuación 5 = W.A 60 se resuelve mediante un algoritmo iterativo del tipo Gauss-Seidel, integrando las restricciones vinculadas con las direcciones de accionamiento, a los límites de tope y/o a un esfuerzo máximo ejercido por al menos un activador, y/o características de restricciones externas al robot.
Según un segundo aspecto, la presente invención propone un programa informático tal como se define en la reivindicación 6.
Según un tercer aspecto, la presente invención propone un módulo de control tal como se define en la reivindicación 7. Estas características y ventajas de la invención aparecerán al leer la descripción que sigue, dada únicamente a modo de ejemplo, y realizada con referencia a los dibujos adjuntos, en los que:
La Figura 1 representa esquemáticamente un robot deformable de accionamiento múltiple en un modo de realización de la invención;
la Figura 2 es un diagrama de flujo de etapas de un procedimiento en un modo de realización de la invención;
la Figura 3 representa un vector 5;
la Figura 4 incluye dos secciones 4a y 4b, que representan un robot deformable sometido a accionamientos.
La Figura 1 representa un robot 1 que incluye una estructura de material deformable, por ejemplo, de silicona flexible. La invención propone un procedimiento de control del robot 1, iterando un conjunto 100 de etapas mostrado en la Figura 2.
En el caso considerado, el robot 1 es un robot en 3 dimensiones (3D), móvil en 3D, en un espacio asociado con un marco de referencia, llamado Ref, asociado a un punto de origen O y con 3 ejes X, Y, Z .
El robot 1 incluye un número p de activadores 2, lo que confiere una deformación al robot. El número p es arbitrario y se elige, en el ejemplo considerado, igual a ocho.
El accionamiento 1 relativo a un activador puede ser de naturaleza diversa y puede comprender, por ejemplo:
- una rotación o una traslación de una parte de la estructura del robot mediante una conexión a un motor eléctrico, eventualmente equipado con un reductor, y/o
- un movimiento obtenido por tracción de un cable unido a la estructura, por un lado, y a un motor equipado con una polea por el otro, y/o
- una o más bolsas elásticas dentro de la estructura que permiten un accionamiento por aire comprimido o hidráulico, y/o
- un accionamiento múltiple distribuido, por posicionamiento sobre la estructura de un gran número de activadores (por ejemplo, piezoeléctricos o por polímeros electroactivos o por material con memoria de forma, etc.), que crean una deformación local de la estructura del robot.
El esfuerzo aplicado por el activador a la estructura del robot puede comprender una fuerza, una presión y/o un par. Por otra parte, el robot incluye además m puntos 3 del robot 1, denominados punto o puntos efectores del robot, a los que se impone una trayectoria respectiva.
El número m es arbitrario y se elige, en el caso considerado, igual a tres.
Así, el punto efector Peffjj = 1 a m, debe estar ubicado en una posición impuesta, correspondiente a un punto Pimpj, en un iésimo paso de iteración del procedimiento de control del robot. Su trayectoria impuesta se puede modificar en cualquier
momento, en particular en el marco de una aplicación en tiempo real.
En un modo de realización, el entorno de movilidad del robot 1 incluye un número n de obstáculos 4. El número n es arbitrario y se elige en el caso considerado igual a dos. Estos obstáculos pueden ser estáticos (es decir, que no se mueven en el marco de referencia) o dinámicos, con un comportamiento conocido.
Se dispone de un modelo de interacción mecánica entre los obstáculos 4 y el robot 1, que es por ejemplo del tipo contacto, conexión deslizante, soporte plano, etc. Este modelado se utilizará en particular para adaptar el control del robot en función de los obstáculos.
El robot deformable 1 está definido por un modelo que comprende un conjunto de nodos y por una matriz tangente K asociada, denominada matriz de rigidez, definiendo las fuerzas internas en cada nodo en función de las posiciones de los nodos, que permiten el modelado de las deformaciones, en particular, no-lineales, del robot.
En el presente caso, el robot 1 es modelado por un modelo de elementos finitos o FEM, asociada con una malla de N nodos (véase en particular C. Felippa, « A systematic approach to the element-independent corotacional dynamics of finite elements » (“Un enfoque sistemático a la dinámica rotacional simultánea, independiente de elemento de elementos finitos”), Informe Técnico, Centro de Estructuras Aeroespaciales, 2000).
En su lugar se puede utilizar cualquier otro método que permita definir un modelo físico de la deformación del robot 1, por ejemplo, una formulación de tipo «sin malla», un método de Galerkine, un método XFEM, etc. Sin embargo, el uso de dicho método no forma parte de la invención reivindicada.
Según la invención, con referencia a la Figura 2, se implementa un procedimiento iterativo 100 para determinar al final de cada paso de iteración, el contenido del comando de cada activador del robot 1 permitiendo que los puntos efectores sigan al máximo las trayectorias deseadas, teniendo en cuenta los obstáculos.
En un modo de realización, se implementa este procedimiento iterativo 100 mediante un módulo de control del robot 1.
Este módulo de control del robot comprende una memoria y un microprocesador. Los datos, por ejemplo, que definen el modelo FEM, las trayectorias de los efectores y los obstáculos, así como las instrucciones de software, se almacenan en esta memoria.
Y las etapas del procedimiento 100 tal como se ha descrito en las reivindicaciones independientes 1 y 7 son implementadas por el módulo de control del robot, cuando las instrucciones de software almacenadas en la memoria se ejecutan en el microprocesador.
Así, en un iésimo paso de iteración del procedimiento 100 en un modo de realización de la invención, se implementan las etapas 101 a 105 siguientes.
Sea x, el vector que comprende las coordenadas de los N puntos. Se denominará xn el vector que comprende las coordenadas actuales de los N puntos que definen el robot, al final de la implementación de los accionamientos determinados durante la iteración i-1 del procedimiento 100.
Así, en una etapa 101, se considera este vector xi-1 de valores conocidos, que define la posición del robot 1 tal como se obtuvo al final de la iteración i-1 de procedimiento 100, habiendo sido medidas las coordenadas (determinación en bucle cerrado), o estimadas (determinación en bucle abierto) a partir del modelo y de los accionamientos determinados en la iteración i-1.
El vector xi comprenderá de la misma manera las coordenadas de los N puntos que definen el robot al final de la iteración actual i del procedimiento 100, una vez que se hayan implementado los accionamientos que se determinarán durante esta iteración i.
Se determina la posición actual de los n obstáculos, la posición actual de los p activadores, así como la posición impuesta Pimpj deseada para cada uno de los m puntos efectores.
Un grado de libertad es una posible movilidad (autorizada o no) en el espacio considerado. Cada nodo del robot tiene un cierto número de grados de libertad (por ejemplo, traslación según uno a tres ejes ortogonales y/o rotaciones según uno o más ejes). El número total de grados de libertad de un objeto deformable es por tanto el número de grados de libertad por nodo *N.
El concepto de grado de libertad también se aplica para los puntos efectores y para los activadores, así como las conexiones mecánicas, o restricciones, vinculadas a los obstáculos.
Para un punto efector, se trata del número de movilidades controladas (por ejemplo, si se controla la posición de un punto efector, hay 3 grados de libertad, por lo tanto 3 líneas que corresponden a este punto efector en 5- por el contrario, si se controlan 3 orientaciones además, eso hace 6 grados de libertad en total en 5 para este punto efector).
Para cada activador, en general, no hay más que un grado de libertad (por ejemplo, una traslación o una rotación). Sin
embargo, pueden existir activadores combinados (una traslación una rotación). En este caso, el activador tendrá 2 grados de libertad.
Para cada obstáculo, se considera el número de grados de libertad suprimidos: por ejemplo, un punto en un plano no está restringido más que según una dirección (los otras dos permanecen libres), por lo tanto, la restricción tiene 1 grado de libertad. Por el contrario, restringir un punto para que siga una línea o una curva requiere una restricción con 2 grados de libertad. Para conexiones más complejas, incluidas traslación y rotación se pueden llegar a suprimir hasta 6 grados de libertad.
Se considera ahora el vector 5(x), una función no lineal del vector x.
5 incluye líneas relativas a los puntos efectores que indicarán, para cada punto efector considerado sucesivamente al final de la iteración i, las coordenadas de la desviación entre el punto de la trayectoria impuesta por este punto efector y la posición de este punto efector al final de iteración i.
En el caso considerado, para cada punto efector, existe una línea en 5 por grado de libertad del punto efector.
Los puntos efectores se consideran como puntos interpolados a partir de la posición de los N nodos dada por xi.
Con m puntos efectores, se necesitarán 3*m líneas en 5 para controlar la posición de estos dos puntos efectores con 3 grados de libertad cada uno en traslación con respecto a los ejes X, Y, Z, o 6*m líneas para controlar la posición y la orientación de estos m puntos efectores con 6 grados de libertad cada una.
El vector 5(x) comprende a continuación líneas que indicarán, para cada activador considerado sucesivamente, el desplazamiento de la zona accionada en la dirección de accionamiento en función de la posición de los nodos interpolando la zona accionada y la posible modificación de la dirección del accionamiento (de hecho, cuando la estructura del robot se deforma y se tira de una zona con un cable, la dirección del cable cambia).
Se observará que cuando el activador es de tipo neumático o hidráulico, el desplazamiento de la zona accionada indica una variación de volumen.
En el caso considerado, para cada activador hay una línea en 5 por grado de libertad de accionamiento.
El vector 5(x) comprende finalmente líneas que indicarán, para cada obstáculo considerado sucesivamente, la restricción asociada con el obstáculo en la zona afectada del robot (por ejemplo, el desplazamiento de un punto del robot sometido a este obstáculo como interpolación de la posición de los N nodos dada por xi).
En el caso considerado, para cada obstáculo, existe una línea en 5 por grado de libertad posiblemente suprimido por el obstáculo. Por ejemplo, un contacto de un punto con un plano puede suprimir un grado de libertad en el sentido normal al plano si el punto considerado toca el plano (si no, no suprime nada): se dirá en este caso que la restricción es activa y suprime un grado de libertad; si no, no suprime nada.
El vector 5(x) es por tanto una función del espacio RN hacia el espacio RM, donde M es igual a la suma de los grados de libertad acumulados de los m puntos efectores, de los grados de libertad acumulados de los p activadores y de los grados de libertad acumulados de los n obstáculos.
Se considera ahora la matriz J, que es la matriz jacobiana, con respecto a x, del vector 5(x).
Esta matriz J permite así escribir una variación del vector 5(x) en función de una variación del vector x de forma lineal:
A 5 (x) = J. Ax ecuación (1)
Las variaciones consideradas son, por ejemplo, aquellas entre las iteraciones i-1 e i; por tanto, Ax = x i, xn. Así, los valores en A5 relativos a los activadores indican los movimientos de los activadores durante esta variación Ax, es decir, entre las iteraciones i-1 e i.
Se considera además el vector A(x), del mismo tamaño M que el vector 5, correspondiendo cada línea de A a una línea de 5. Así, la línea n°k de 5 se refiere al mismo grado de libertad del mismo punto efector o del mismo activador o del mismo obstáculo, que el referido por la línea n°k de A.
En A, todas las líneas correspondientes a los puntos efectores tienen un valor nulo.
En cada línea para la que en 5, se indicará un desplazamiento del activador, aparecerá en A la intensidad del esfuerzo (fuerza, presión, par) correspondiente ejercido por el activador sobre el robot 1.
En cada línea para la que en 5, se indica una restricción de obstáculo, aparecerá en A la intensidad del esfuerzo correspondiente ejercido por el obstáculo sobre el robot 1 correspondiente al grado de libertad considerado en esta línea. Los tratamientos realizados durante la iteración i del procedimiento 100 permitirán determinar los valores de los vectores 5 y A, y de ese modo conocer los valores de accionamiento a ordenar a los activadores.
Los valores tomados por la matriz J son ahora determinados.
Se considera que J es constante durante una iteración.
Las variaciones de 5 durante una iteración son determinadas por la ecuación (1).
Esta matriz J incluye un número M de líneas igual al número de líneas de 5, y un número de columnas igual a 3N en el caso considerado (6N en el caso en que se consideren 6 grados de libertad para los nodos).
Así, la línea n°k de J se refiere al mismo grado de libertad del mismo punto efector o del mismo activador o del mismo obstáculo, que aquel al que se refiere la línea n°k de 5.
Así, a cada línea de 5 relativa a un grado de libertad de un punto efector corresponde una línea en la matriz jacobiana J.
Si el punto efector es un nodo del modelo, entonces la línea de la matriz J que está asociada con él para un grado de libertad dado, es decir, según el eje X, Y o Z, se rellena con 0 excepto para la coordenada relativa a este eje, (o aún según una rotación rX, rY, rZ alrededor del eje según un eje X, Y o Z) del nodo en esta línea para este nodo, donde el valor es 1.
Si el punto efector no corresponde a un nodo, sino a un punto situado en un elemento de la malla entre varios nodos, es decir, que resulta de una función de interpolación de estos nodos, se utiliza esta función de interpolación para construir las líneas de la matriz J relativas a este punto efector (véase en particular C. Duriez, C. Guebert, M. Marchai, S. Cotin, y L. Grisoni, « Interactive simulation of flexible needle insertions base on constraint models » (“Simulación interactiva de inserciones de agujas flexibles basadas en modelos de restricción”), International Conference on Medical Image Computing and Computer Assisted Intervention (“Conferencia Internacional sobre Cálculo de Imagen Médica e Intervención Asistida por Ordenador”), Londres, Reino Unido, 2009, págs. 291-299; http://hal.inria.fr/inria-00540334). Para cada línea correspondiente a un grado de libertad respectivo, existe entonces un valor distinto de cero solo al nivel de estos nodos y los valores utilizados corresponden al peso asociado a este nodo en la función de interpolación.
Igualmente, a cada línea de 5 relativa a un grado de libertad de un activador o de un obstáculo corresponde una línea en la matriz jacobiana J.
Por ejemplo, si el activador elegido es un cable, la dirección d en la que tira el cable (correspondiente a la dirección de desplazamiento de este activador, es decir, o aún al grado de libertad del cable), se almacena en esta línea de la matriz. J, eligiendo las columnas que corresponden al nodo o a los nodos sobre los que el cable está conectado.
Si se deriva una línea de 5 correspondiente al desplazamiento de un cable en la dirección de accionamiento y a un punto de accionamiento en la estructura del robot, entonces se obtiene en la matriz J en la línea correspondiente a este punto de accionamiento para la dirección de accionamiento:
- 0 para todas las columnas correspondientes a nodos que no interpolan directamente el punto de accionamiento.
- valores distintos de cero para todas las columnas que corresponden a nodos que interpolan directamente el punto de accionamiento. En cada una de las columnas según X, Y Z de un nodo, se encuentra la dirección (unitaria) de accionamiento multiplicada por el peso del nodo en la interpolación.
Por ejemplo :
=> si el punto P de accionamiento resulta de la siguiente interpolación: P = a.Na + p.Nb + y Nc donde Na, Nb y Nc son las posiciones respectivas, en (O, X, Y, Z) en el presente caso de tres de los N nodos, y a, p y y son los pesos de la interpolación con la norma de a, p y y comprendidos entre 0 y 1 y la suma de a, p y y es igual a 1.
entonces la línea correspondiente de J = [00 ... 0 a*dx a*dy a*dz 00 .... 0 p*dx p*dy p*dz 00 0 Y*dx Y*dy Y*dz 00 ...0],
donde a*dx respectivamente a*dy respectivamente a*dz es el término de la fila considerada en la columna relativa al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Na ; p*dx, respectivamente p*dy, respectivamente p*dz es el término de la columna relativa al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Nb y z*dx, z*dy, z*dz es el término en la columna relativa al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Nc
Para un activador bajo presión, se seleccionan elementos de malla, por ejemplo, triángulos, que se inflan o desinflan con la presión. Si la presión es uniforme en la cavidad, todos los triángulos en cuestión contribuyen a la misma fila en la
matriz J utilizando la normal al triángulo, así como una ponderación proporcional al área del triángulo. Al nivel de la construcción de J, eso corresponde a una forma clásica de imponer una restricción de presión en un modelo de elementos finitos. En este caso, la línea de 5 correspondiente a este activador contiene un valor del volumen de la cavidad al nivel de la línea correspondiente a la restricción, y la línea correspondiente de A contendrá el valor de la presión utilizada.
Así, de manera general, un punto de fijación de un activador es una interpolación de nodo o nodos asociados cada uno con un coeficiente de interpolación distinto de cero, y la dirección de desplazamiento del activador se indica en una línea de la matriz J, siendo cada término de dicha línea nulo excepto de los de dicho nodo o de dichos nodos.
Para las interacciones del robot con los obstáculos del entorno externo, se pueden usar diferentes tipos de restricciones tales como las descritas en los artículos tales como « Interactive simulation of flexible needle insertions based on constraint models » mencionado anteriormente para simular la inserción del robot en una medio deformable, o I. Peterlik, M. Nouicer, C. Duriez, S. Cotin y A. Kheddar, « Constraint based haptic rendering of multirate compliant mechanisms » (“Representación háptica basada en restricciones de mecanismos que cumplen con múltiples velocidades”), EEE Trans. Haptics, vol. 4, no. 3, págs. 175-187, julio. 2011, http://dx.doi.org/10.1109/TOH.2011.41 para un formalismo más genérico, comprendido en respuesta a una colisión.
Para un obstáculo, como se indicó anteriormente, cada línea relativa al obstáculo del vector 5 corresponde a un grado de libertad posiblemente suprimido por el obstáculo.
Por ejemplo, en el caso de un contacto punto/plano, el valor indicado en 5 para esta línea mide la distancia del punto al plano: si este valor de 5 es positivo, la restricción se desactiva, si el valor resulta negativo, la restricción se activa para reducirse a un valor igual a 0.
Asimismo, para un obstáculo, cada línea correspondiente de la matriz J corresponde al movimiento del grado o de los grados de libertad eventualmente suprimidos por el obstáculo en función del movimiento de los nodos.
Para el mismo ejemplo del contacto punto/plano, para construir la línea considerada de J, se va a basarse en 2 informaciones:
- la interpolación del movimiento del punto P: (por ejemplo) P = a.Na + p.Nb + y Nc donde Na, Nb y Nc son las posiciones respectivas de tres de los N nodos, y a, p y y son los pesos de la interpolación con la norma de a, p y y entre 0 y 1 y la suma de a, p y y es igual a 1
n,
la dirección normal al plano indicado por el vector unitario n n- "y
V*
Entonces la línea correspondiente de J = [00 ... 0 a*nx a*ny a*nz 00 .... 0 p*nx p*ny p*nz 00 ....0 Y*nx Y*ny Y*nz 00 ... 0], donde a*nx respectivamente a*ny respectivamente a*nz es el término de la línea considerada, en la columna relativa al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Na; p*nx, respectivamente p*ny, respectivamente p*nz es el término de la columna correspondiente al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Nb y z*nx, z*ny z*nz es el término en la columna relativa al eje X, respectivamente Y, respectivamente Z del nodo considerado de posición Nc
Cualquiera que sea el método de determinación, la matriz jacobiana J, una vez construida, se llena en gran medida con valores nulos. Por lo tanto, se la puede almacenar utilizando un formato de matriz dispersa.
Para tener en cuenta las grandes transformaciones del robot deformable, generadas por los comandos, el modelo de elementos finitos utilizado es no lineal.
Por el contrario, en cada iteración i se efectúa una linealización de este modelo, que permite el cálculo de una matriz tangente K(x) = df/dx.
Si se usa un modelo dinámico de elementos finitos, se usará un método de integración implícito o semi-implícito que requiere el cálculo de la matriz tangente del modelo no lineal.
En el caso considerado, se utiliza un modelo estático de elementos finitos, que calcula el vector f de las fuerzas internas en función del vector de posición x de los nodos.
En una etapa 102, los valores de la matriz tangente K de rigidez, que define las fuerzas internas en cada nodo en función de las posiciones de los N nodos, se actualizan en función de las d posiciones actuales xi-1 determinadas de estos N nodos.
La matriz K así actualizada se denomina K(xn).
En el caso considerado, el tamaño de K es 3N*3N.
Luego, se calcula una linealización de las fuerzas internas sobre la base de la posición x¡-i de los nodos:
f(xi) = f(xi-i) K(x-i).Ax (ecuación 2)
con Ax = x¡, x¡-i .
Para establecer el equilibrio estático (la suma de las fuerzas externas e internas al robot 1 es igual a cero en el conjunto de los nodos) en la iteración i actual, se desemboca en la ecuación:
-K(xi-i). Ax = p f(xi-i) JT A (ecuación 3)
donde el vector p representa las fuerzas externas conocidas, incluida, por ejemplo, la gravedad, y JT A reúne las contribuciones de todas las restricciones consideradas según la invención (es decir, las relativas a los puntos efectores, activadores e interacciones mecánicas con el entorno externo).
La matriz J es la calculada en la etapa 10i y los valores actuales del vector A han de ser determinados.
Se calcula entonces la configuración libre del robot 1, correspondiente a la resolución de la ecuación 3 del modelo del robot con el vector A igual al vector nulo.
La posición correspondiente así determinada es Xlibre = x¡-i Axlibre.
La matriz K es muy dispersa. Para resolver el sistema formado por esta matriz, se puede utilizar un gradiente conjugado y un método directo con factorización, por ejemplo, de tipo LDLT.
Por ejemplo, para una malla de robot 1 compuesta por 1000 nodos y 3000 elementos tetraédricos, es posible obtener una tasa de refresco de 60 Hz, que es compatible con el control en tiempo real de un robot.
Para utilizar mallas más complejas, la factorización LDLT puede ser desincronizada y se puede utilizar la técnica llamada de «deformación» (véase por ejemplo H. Courtecuisse, J. Allard, C. Duriez, y S. Cotin, « Preconditioner-based contact response and application to cataract surgery » (“Respuesta de contacto basada en acondicionador previo y aplicación a la cirugía de cataratas”), Medical Image Computing and Computer-Assisted intervention (MICCAI) (“Imagen Médica, Cálculo e intervención Asistida por ordenador”), 2011, http://www.lifl.fr/~courtecu/).
A partir de esta posición resultante Xlibre (que correspondería a la ausencia de accionamiento y de obstáculo) y de la ecuación 1, se determina el valor del vector 5l¡bre = 5 (xlibre) = J. Axlibre.
En esta etapa 102 se actualizan los valores de la matriz K en función de la posición actual de los nodos del robot y del modelo de deformación elegido: modelo FEM u otro modelo basado en la física. En efecto, si se han elegido un modelo dinámico y un esquema de integración temporal implícita, K también contiene una linealización de las fuerzas de inercia en una suma ponderada con la linealización de las fuerzas internas: la ponderación depende entonces del esquema de integración y del paso del tiempo elegido. En todos los casos, se supone que se utiliza un solo valor de K por paso de cálculo del comando.
En una etapa 103, se calcula una matriz W, llamada de cumplimiento reducido, que permite trabajar en un espacio de dimensión reducida, con W = J.K-1 JT, donde J es la matriz determinada en la etapa 101, JT es su matriz transpuesta y K-1 es la inversa de la K matriz obtenida en la etapa 102.
A partir del cálculo de la configuración libre tal como se describió anteriormente, se obtiene una nueva formulación que describe la variación del vector 5:
5 = W. A 5libre (ecuación 4)
La puesta en forma de la determinación de los comandos del robot 1 en la forma de la ecuación (4) muestra que el tamaño del sistema a resolver corresponde al tamaño de la matriz W, que es igual a M, el tamaño del vector 5, es decir la suma del número de grados de libertad de los puntos efectores, de los activadores y de los obstáculos. En otras palabras, para un robot controlado en posición sobre dos puntos efectores (correspondientes en total a 6 grados de libertad), por 10 activadores (correspondientes en total a 10 grados de libertad) con 5 puntos de contacto (correspondientes en total a 5 grados de la libertad), se llega a un sistema de tamaño 21. Mientras que, en la técnica anterior, los tamaños de los sistemas a resolver corresponden al tamaño del vector x, es decir, al número N de nodos utilizados por el modelo de elementos finitos multiplicado por el número de grados de libertad por nodo, lo que, para mallas de tamaño medio, utilizables en tiempo real, corresponde a sistemas con un tamaño situado entre 1000 y 3000.
Para permitir un cálculo eficiente de la inversa de K, se pueden utilizar ciertos métodos de factorización en tiempo real para las mallas de tamaño reducido (aproximadamente 300 nodos con 3 grados de libertad). Para las estructuras de robots lineales y cuya matriz K puede ponerse en forma de una matriz de bloques tri-diagonal, el cálculo se puede hacer con un solucionador dedicado como en C. Duriez, S. Cotin, J. Lenoir, y PF Neumann, « New approaches to catheter navigation for interventional radiology simulation » (“Nuevos enfoques a la navegación por catéter para simulación de radiología intervencionista”), Computer Aided Surgery, (“Cirugía Asistida por Ordenador”) vol. 11, págs. 300-308, 2006.
En general, se puede utilizar una muy buena aproximación de la matriz W utilizando el método descrito en el artículo mencionado anteriormente « Preconditioner-based contact response and application to cataract surgery », que se basa en un algoritmo adaptado a una unidad de tratamiento gráfico GPU (« Graphic Processor Unit » en inglés).
Al usar la matriz de cumplimiento W = [wrj]r,j, pse puede conocer el acoplamiento mecánico entre un punto efector r y un punto activador j de la estructura. Más precisamente, se puede tener una estimación del desplazamiento Aór creado sobre un punto efector r sobre un grado de libertad (correspondiente a una variación de la diferencia entre la posición actual del punto efector y su posición deseada sobre este grado de libertad), almacenado en la línea r de la matriz J) en función del esfuerzo Aj (fuerza, presión o par) aplicado por el activador j, sobre la estructura y cuya dirección de la restricción se almacena en la línea j de la matriz J: se obtiene: Aór = w rj Aj .
Para simplificar, este punto efector asociado con la línea r de la matriz J se denomina «efector r» y este activador asociado con la línea j de la matriz J «el activador j».
La conexión cinemática entre la posición del activador j y la posición del efector r es proporcionada por Aór = Aój . wrj / wu, donde Aój es una variación de posición del activador j (en la dirección de accionamiento) y Aór es una variación de posición del efector r. Si el efector tiene varios grados de libertad, Aór y wrj tienen tantas filas como grados de libertad. Otro activador, asociado a la línea k de la matriz J y denominado en lo sucesivo «el activador k» también puede influir en el desplazamiento del activador j, y viceversa.
Este acoplamiento mecánico también se puede conocer con ayuda de la matriz W: la variación correspondiente de desplazamiento, sobre el grado de libertad del activador j, es Aój = wjk Ak = Aók.wjk / wkk.
Las Figuras 4a y 4b ilustran estas conexiones cinemáticas, y muestran la manera en la que un accionamiento (Aj , ój) del activador j a lo largo de la dirección j puede ser controlado con el fin de imponer un desplazamiento Aór sobre el efector terminal r (Figura 4a). Otro accionamiento (Ak, ók) del activador k a lo largo de la dirección k puede crear un desplazamiento no deseado Aój sobre el activador j (Figura 4b).
En una etapa 104, los comandos de accionamiento van a ser determinados en función de la matriz W, del conocimiento de la posición xi-1 de los puntos efectores y de su trayectoria deseada al final de la iteración i, de la posición de los activadores y del conjunto de las restricciones vinculadas con el entorno.
Considerados los términos ór(xi) de las résimas líneas del vector ó relativas a los puntos efectores (siendo r en el ejemplo considerado igual a 3*m=3*2), indicando las distancias entre sus posiciones real y deseada según las diferentes direcciones X, Y, Z del espacio, el objetivo del algoritmo detallado a continuación es identificar una posición (que corresponde a un esfuerzo de accionamiento) sobre los activadores (almacenada en las líneas de ó para la posición de accionamiento y en las líneas de A para el esfuerzo de accionamiento) de modo que el robot se deforme para llegar a ór(xi)=0.
Entre los algoritmos que se pueden utilizar para efectuar este cálculo, aquí se elige un solucionador iterativo del tipo Gauss-Seidel. Las iteraciones de este algoritmo se detienen una vez que la solución se estabiliza, resultando entonces la variación entre dos iteraciones de la solución determinada inferior a un umbral fijado.
En cada iteración « it », el algoritmo actualiza, una por una, las contribuciones Aj de los activadores j, mientras congela las contribuciones Ak de los otros activadores en su valor actual, para tener en cuenta el acoplamiento entre los activadores, sobre la base de esta ecuación:
donde ój es el término de la línea del vector ó relativo al activador j, Akit es el término de la línea del vector A relativa al activador k tal como se determina en la iteración it-1, p es el número de activadores, ólibrej es el término de la línea del vector ólibre relativo al activador j.
Como se utiliza un algoritmo de tipo Gauss-Seidel, cuando se efectúa una actualización local del activador j, las contribuciones congeladas de las acciones 0, ..., j-1 provienen de la iteración actual it, mientras que las contribuciones congeladas de los activadores j, ... , p, provienen de la iteración anterior it-1. La actualización local del activador j da una nueva contribución Ajit, y una nueva posición del punto efector ór según la dirección r, se actualiza utilizando:
ór + = wrj (Ajit - Ajit-1) = wrjAAj ,
donde AAj representa la variación del esfuerzo Aj ejercido por el activador j después de la actualización local del activador j.
Así, durante la actualización del activador j, es posible evaluar cómo el activador puede o no reducir el valor de ór.
Cuando se efectúa esta actualización en 3D, r es tomado sucesivamente igual a X, Y, Z para un punto efector
considerado, dando así sucesivamente los valores 5x, 5y, 5z.
Al imponer la variación de Aj , se crea un movimiento en este punto efector:
donde wXj, respectivamente wYj, respectivamente wZj son los términos de la matriz W en la línea asociada con el punto efector considerado para la dirección X, respectivamente Y, respectivamente Z y con la columna asociada con el accionador j.
W Xj
Se llama 5* al vector y se llama w* al vector L
En cada iteración y en cada paso sobre un activador j, por lo tanto, se busca reducir la distancia entre la posición actual y la posición deseada para el punto efector considerado, medida por 5*. Pero el activador j no crea movimiento en el punto efector más que en la dirección dada por el vector w*.
En consecuencia, se busca un nuevo valor de AAj tal que:
Este valor se obtiene utilizando:
AAj = -(wXj A5x + wYj A5y + wZj A5Z)/llw.jll2 ecuación (6)
donde A5x , A5y y A5z representan respectivamente la variación de 5x , 5y y 5z .
La ecuación 6 permite determinar la variación del esfuerzo ejercido por un activador para corregir mejor la diferencia entre las posiciones real y deseada de un punto efector.
Dado este nuevo valor de AAj , se puede actualizar Aj¡t y la posición 5j del activador j utilizando la ecuación (5).
Si la posición actualizada del activador j excede un tope que se ha asociado con el activador j o si el valor Aj del esfuerzo de accionamiento del activador j excede las capacidades del activador, se limita el accionamiento entonces para cumplir con estas restricciones.
Se ha descrito anteriormente la consideración de las restricciones vinculadas a los activadores. Para tener en cuenta las colisiones consigo mismo del robot, contactos u otras restricciones con el entorno, basta para ello añadir una línea en el sistema considerado para cada restricción suplementaria. En cada iteración it, una vez que se hayan actualizado las restricciones vinculadas a los activadores, se actualizan las líneas correspondientes a estas otras restricciones. Para una restricción de contacto, se impone, por ejemplo, la ley de Signorini: sobre un contacto j, primero se calcula 5j¡t utilizando la ecuación (5). Luego, se calcula AAj = - 5j¡t /wj¡. Luego, si y solo si Aj¡t < 0, se refuerza la restricción unilateral imponiendo Ajit= 0. Otros tipos de restricciones, por ejemplo, la inserción de agujas, se pueden calcular con otros tipos de ecuaciones (véase en particular el documento « Interactive simulation of flexible needle insertions based on constraint models » ya citado.
Una vez que el algoritmo ha convergido, se obtiene un vector A que da las contribuciones a realizar por los activadores teniendo en cuenta las restricciones de obstáculos, y el vector 5 correspondiente.
El algoritmo de Gauss-Seidel que permite realizar un control con accionamiento redundante es solo uno de los algoritmos que se pueden utilizar. Se pueden usar otros algoritmos para determinar un esfuerzo/presión a aplicar a los activadores para obtener la trayectoria deseada de los puntos efectores.
En una etapa 105, los comandos que indican las contribuciones a proporcionar por los activadores se suministran a estos últimos, implementando entonces los activadores su respectivo comando. Si se controla el activador en posición, el comando depende del valor en cada línea de 5 asociada con el activador. Si el activador está controlado en esfuerzo, el comando es función del valor en cada línea de A asociada con el activador.
Las coordenadas de los N nodos del robot 1 en la configuración resultante de estos accionamientos se determinan, por ejemplo, mediante mediciones, y luego se almacenan en el vector xi.
En otro modo de realización, las coordenadas de los N nodos del robot 1 en la configuración resultante de estos accionamientos se determinan utilizando:
x i = x libre + K 1JTÁ.
La presente invención permite en tiempo real el control de un robot deformable por un conjunto de activadores que permiten obtener una trayectoria deseada de al menos un efector terminal del robot, gracias en particular a la utilización de un método de elementos finitos, y, esto incluso cuando este conjunto de activadores incluye una gran cantidad de activadores.
En un modo de realización, se reagrupan en la matriz las líneas relativas a las zonas de accionamiento compatibles (es decir, que crean desplazamientos similares en un efector terminal) para simplificar el cálculo del control en tiempo real.
En el caso considerado, la determinación de los comandos tenía en cuenta la presencia de obstáculos presentes alrededor del robot. Sin embargo, la invención se puede implementar sin tener en cuenta obstáculos. En este caso, las matrices y vectores considerados no incluyen líneas relativas a los obstáculos.
En el caso considerado, el robot deformable incluía una estructura en 3 dimensiones (3D) deformable. No obstante, la invención es aplicable a cualquier geometría 1D, 2D o 3D de un robot deformable según cualquier número de dimensiones. Por ejemplo, el robot puede corresponder a una estructura en 1D, por ejemplo, de tipo tubo flexible accionado o una estructura 2D, por ejemplo, una envolvente de poco grosor accionada.
Se observará que en la ecuación (4), se utiliza ó libre como valor de referencia para el vector. En otros modos de realización, se podrían tener en cuenta los vectores 5 y Á calculados en la iteración anterior y determinar de forma predictiva los valores de estos vectores para la iteración actual utilizando ecuaciones 3 y 4, como se ha presentado en las secciones 3.2 y 3.4 del artículo de Peterlik, I.; Nouicer, M.; Duriez, C.; Cotin, S. & Kheddar, « A. Constraint-Based Haptic Rendering of Multirate Compliant » IEEE Trans. Haptics, IEEE Computer Society Press, 2011,4, 175-187.
Así, según la invención, se puede tener en cuenta cualquier tipo de restricción, externa (obstáculos ...), o interna al robot (parada de los activadores por ejemplo, una rigidización local, o por el contrario, una relajación de cierta partes de la estructura que pueden estar constituidas de un material cuyas propiedades mecánicas son controlables), contactos internos (activos: un activador crea contacto entre dos partes de la estructura, o pasivo: la deformación creada por los contactos internos a la estructura) pueden ser utilizados para optimizar la eficiencia de la estructura. Es el cálculo de la matriz de cumplimiento reducida según la invención, integrando líneas relativas a estas limitaciones, lo que permite gestionar la modificación del comportamiento de la estructura.
El modelo de interacción mecánica entre un obstáculo 4 y el robot 1 se utiliza para la construcción del vector 5 (y, por tanto, en consecuencia, para la matriz J y la matriz W). También se utiliza en el algoritmo que calcula las posiciones del robot en la etapa 105.
Las aplicaciones de la invención son muy amplias y el espectro de utilización engloba en particular el de la robótica, por ejemplo, en los siguientes campos.
- Robótica quirúrgica o en medio frágil: un robot flexible tiene varias ventajas. En primer lugar, se puede realizar «de una sola pieza», lo que evita el uso de material no compatible con la formación de imágenes. Además, en cirugía, una de las restricciones es que el robot no debe dañar al paciente: por lo tanto, es interesante tener un robot capaz de deformarse cuando entra en contacto con la anatomía del paciente.
- Robótica médica: para la creación de órtesis funcional (cibertesis), es ventajoso no tener un exoesqueleto robótico rígido, particularmente incómodo porque la cinemática de las articulaciones es difícil de seguir para las órtesis articuladas. El enfoque propuesto permite utilizar exoesqueletos flexibles que se adaptan a la morfología del paciente y que optimizan el accionamiento según la anatomía y la situación.
- Exoesqueletos: por las mismas razones que las mencionadas anteriormente, puede resultar ventajoso utilizar un exoesqueleto flexible.
- Robótica bio-mimética: para la creación de robots próximos a la anatomía humana o animal, es interesante poder gestionar estructuras deformables para mimetizar el papel de los músculos.
En un modo de realización, el robot puede incluir al menos una parte rígida y al menos una parte deformable: por ejemplo, el robot puede incluir un brazo rígido y una aguja flexible sostenida por el brazo rígido, teniendo el robot que insertar la aguja en tejidos blandos.
Claims (11)
1. Procedimiento para controlar un robot (1) que incluye al menos una parte deformable por un conjunto de activadores (2) implementado por ordenador, debiendo seguir cada punto de un conjunto de puntos (3), llamados punto o puntos efectores, del robot, una trayectoria determinada, estando definido el robot por un modelo de nodos y una matriz K que define una variación de las fuerzas internas del robot en cada nodo en función de la variación de posición de los nodos, estando caracterizado el procedimiento por que, para determinar el control destinado a cada activador durante un iésimo paso de cálculo de control:
i/ se actualizan los valores de la matriz K en función de la posición actual de los nodos del robot;
ii/ se determinan los valores actuales de la matriz jacobiana J de un vector 5(x), donde x es un vector de posición de los nodos y el vector 5(x) relativo al desplazamiento de cada activador controlado con vistas a un movimiento del robot (1) e incluye al menos un subconjunto de línea o líneas relativas a cada punto efector y que indica las coordenadas de las desviaciones entre la posición de dicho punto efector y su trayectoria determinada, y al menos un subconjunto de línea o líneas que indican la desplazamiento de cada activador, se determina Ax verificando: - K. Ax = p f(xi-1), donde Ax representa una variación del vector x, el vector p representa las fuerzas externas que se ejercen sobre el robot, K es la matriz actualizada en la etapa i/, xm es el vector de posición actual de los nodos y f(xn) es el vector de las fuerzas internas que se ejercen sobre el robot en su posición actual, se calcula xlibre = xm + Ax así como los valores del vector 5(xlibre);
iii/ se calculan los valores de la matriz W = J. K-1. JT, donde K-1 es la matriz inversa de K y JT es la matriz transpuesta de J; y
iv/ se resuelve la ecuación 5 = W. A 60, para determinar los valores de los vectores 5 y A en dicho iésimo paso de cálculo, donde A es un vector que incluye, para cada línea del vector 5 relativo a un punto efector, una línea que incluye un valor nulo y, para cada línea del vector 5 relativo a un activador, una línea que incluye un valor de esfuerzo ejercido por el activador correspondiente al desplazamiento indicado, y 60 es un vector igual a 6(xlibre); y
v/ se deduce el comando destinado a cada activador en función al menos de los valores determinados en la etapa iv/ del vector 5 o A.
2. Procedimiento de control de un robot (1) según la reivindicación 1, según el cual el vector 5 incluye además al menos un subconjunto de líneas que indican un desplazamiento de un punto (4) del robot sujeto a restricciones externas al robot, y el vector A incluye además un subconjunto correspondiente de línea o líneas que indican valores de fuerzas ejercidas por las restricciones externas al robot correspondientes al desplazamiento indicado.
3. Procedimiento de control de un robot (1) según la reivindicación 1 o 2, según el cual la posición correspondiente a la trayectoria determinada de un punto efector se resta de la posición del punto efector determinada por interpolación, asociada con coeficientes de interpolación respectivos, de la posición de un conjunto de dicho o dichos nodos para obtener el subconjunto de líneas del vector 5(x) relativas al efector, y según el cual, en dicho mismo subconjunto de líneas de la matriz jacobiana J, los valores en las columnas que corresponden a dichos nodos, son función de dichos coeficientes de interpolación.
4. Procedimiento de control de un robot (1) según una de las reivindicaciones anteriores, según el cual un punto de fijación de un activador (2) es una interpolación de nodo o nodos asociados cada uno con un coeficiente de interpolación distinto de cero, y al menos una línea de la matriz J se determina en función de una dirección de accionamiento del activador, siendo cada término de dicha línea nulo con la excepción de los de las columnas de dicho nodo o de dichos nodos.
5. Procedimiento de control de un robot (1) según una cualquiera de las reivindicaciones anteriores, según el cual, en la etapa iii/, la ecuación 5 = W. A 50 se resuelve mediante un algoritmo iterativo de tipo Gauss-Seidel, que integra las restricciones vinculadas a las direcciones de accionamiento, a los límites de parada y/o a un esfuerzo máximo ejercido por al menos un activador, y/o las características de las restricciones externas al robot.
6. Programa informático para controlar un robot (1) que incluye al menos una parte deformable por un conjunto de activadores (2), debiendo seguir cada punto de un conjunto o puntos (3), denominado punto o puntos efectores del robot, una trayectoria determinada, estando definido el robot por un modelo de nodos y una matriz K que define una variación de las fuerzas internas del robot en cada nodo en función de la variación de posición de los nodos, incluyendo dicho programa instrucciones para implementar las etapas de un procedimiento según una de las reivindicaciones 1 a 6 durante la ejecución del programa por medios de tratamiento, para determinar el comando destinado a cada activador en un iésimo paso de cálculo de comando.
7. Módulo de control de un robot (1) que incluye al menos una parte deformable por un conjunto de activadores (2), debiendo seguir cada punto de un conjunto de puntos (3), llamados punto o puntos efectores, del robot, una trayectoria determinada, estando definido el robot por un modelo de nodos y una matriz K que define una variación de las fuerzas internas del robot en cada nodo en función de la variación de posición de los nodos, estando caracterizado el módulo de control por que es adaptado, después de la determinación del comando previsto para cada activador en un iésimo paso de
cálculo de comando, a actualizar los valores de la matriz K en función de la posición actual de los nodos del robot, y luego para determinar los valores actuales de la matriz jacobiana J de un vector 5(x), donde x es un vector de posición de los nodos y el vector 5(x) relativo al desplazamiento de cada activador controlado en vista de un movimiento del robot (1) e incluye al menos un subconjunto de línea o líneas relativas a cada punto efector y que indican las coordenadas de las desviaciones entre la posición de dicho punto efector y su trayectoria determinada, y al menos un subconjunto de línea o líneas que indican el desplazamiento de cada activador, para determinar Ax verificando: - K.Ax = p f(xi -1), donde Ax representa una variación del vector x, el vector p representa las fuerzas externas que se ejercen sobre el robot, K es la matriz actualizada, xn es el vector de posición actual de los nodos y f(xn) es el vector de las fuerzas internas que se ejercen sobre el robot en su posición actual, para calcular Xlibre = xn Ax, luego para calcular los valores del vector Ó(xlibre);
estando adaptado dicho módulo de control para calcular los valores de la matriz W = J.K-1.JT, donde K-1 es la matriz inversa de K y JT es la matriz transpuesta de J, y para resolver la ecuación 5 = W.A 60, determinando los valores de los vectores 5 y A en dicho iésimo paso de cálculo, donde A es un vector que incluye, para cada línea del vector 5 relativo a un punto efector, una línea que incluye un valor nulo y, para cada línea del vector 5 relativo a un activador, una línea que incluye un valor de esfuerzo ejercido por el activador correspondiente al desplazamiento indicado, y 50 es igual a 5(xlibre); y
estando adaptado dicho módulo de control para deducir el comando destinado a cada activador en función al menos de dichos valores determinados del vector 5 o A.
8. Módulo de control de un robot (1) según la reivindicación 7, adaptado para determinar un vector 5 que incluye además al menos un subconjunto de línea o líneas que indican un desplazamiento de un punto (4) del robot sujeto a restricciones externas al robot, y un vector A que incluye además un subconjunto correspondiente de línea o líneas que indican valores de fuerzas ejercidas por las restricciones externas al robot correspondientes al desplazamiento indicado.
9. Módulo de control de un robot (1) según la reivindicación 7 u 8, adaptado para restar la posición correspondiente a la trayectoria determinada de un punto efector, de la posición del punto efector determinada por interpolación, asociada a los respectivos coeficientes de interpolación, de la posición de un conjunto de dicho o dichos nodos para obtener el subconjunto de líneas del vector 5(x) relativas al efector, y adaptado para determinar, en dicho mismo subconjunto de líneas de la matriz jacobiana J, los valores en las columnas que corresponden a dichos nodos, en función de dichos coeficientes de interpolación.
10. Módulo de control de un robot (1) según una de las reivindicaciones 7 a 9, adaptado para determinar un punto de fijación de un activador (2) como una interpolación de nodo o nodos asociados cada uno con un coeficiente de interpolación distinto de cero, y para determinar al menos una línea de la matriz J en función de una dirección de accionamiento de dicho activador, siendo nulo cada término de dicha línea a excepción de los de las columnas de dicho nodo o de dichos nodos.
11. Módulo de control de un robot (1) según una cualquiera de las reivindicaciones 7 a 10, adaptado para resolver la ecuación 5 = W.A 50 por un algoritmo iterativo de tipo Gauss-Seidel, integrando en él las restricciones vinculadas a las direcciones de accionamiento, a los límites de tope y/o a un esfuerzo máximo de al menos un activador, y/o de las características de las restricciones externas al robot.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1351106A FR3002047B1 (fr) | 2013-02-08 | 2013-02-08 | Procede de commande d'un robot deformable, module et programme d'ordinateur associes |
PCT/EP2014/052169 WO2014122134A1 (fr) | 2013-02-08 | 2014-02-04 | Procédé de commande d'un robot déformable, module et programme d'ordinateur associés |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2886527T3 true ES2886527T3 (es) | 2021-12-20 |
Family
ID=48570248
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES14702297T Active ES2886527T3 (es) | 2013-02-08 | 2014-02-04 | Procedimiento de control de un robot deformable, módulo y programa informático asociados |
Country Status (6)
Country | Link |
---|---|
US (1) | US9701013B2 (es) |
EP (1) | EP2954429B1 (es) |
JP (1) | JP6382226B2 (es) |
ES (1) | ES2886527T3 (es) |
FR (1) | FR3002047B1 (es) |
WO (1) | WO2014122134A1 (es) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6576125B2 (ja) * | 2015-07-02 | 2019-09-18 | キヤノン株式会社 | シミュレーション方法及びシミュレーション装置 |
CN110722563A (zh) * | 2019-10-29 | 2020-01-24 | 南京南邮信息产业技术研究院有限公司 | 一种变刚度软体机器人的建模方法 |
CN112936226B (zh) * | 2021-01-29 | 2023-09-05 | 清华大学 | 并混联机器人末端笛卡尔空间的刚度建模方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2578310B2 (ja) * | 1993-10-19 | 1997-02-05 | 三菱重工業株式会社 | 多関節ロボットの制御方法 |
JPH10333723A (ja) * | 1997-05-28 | 1998-12-18 | Nec Corp | 多自由度マニピュレータの位置決め装置及び位置決め方法並びにそれを実行するためのプログラムを格納した記録媒体 |
US8004229B2 (en) * | 2005-05-19 | 2011-08-23 | Intuitive Surgical Operations, Inc. | Software center and highly configurable robotic systems for surgery and other uses |
US7390309B2 (en) * | 2002-09-23 | 2008-06-24 | Honda Motor Co., Ltd. | Human assist system using gravity compensation control system and method using multiple feasibility parameters |
US7859540B2 (en) * | 2005-12-22 | 2010-12-28 | Honda Motor Co., Ltd. | Reconstruction, retargetting, tracking, and estimation of motion for articulated systems |
US8924021B2 (en) * | 2006-04-27 | 2014-12-30 | Honda Motor Co., Ltd. | Control of robots from human motion descriptors |
US8620473B2 (en) * | 2007-06-13 | 2013-12-31 | Intuitive Surgical Operations, Inc. | Medical robotic system with coupled control modes |
JP2009032189A (ja) * | 2007-07-30 | 2009-02-12 | Toyota Motor Corp | ロボットの動作経路生成装置 |
JP5349478B2 (ja) * | 2007-08-28 | 2013-11-20 | ザ ユニバーシティー オブ サリー | 逆運動学 |
JP5506823B2 (ja) * | 2009-12-28 | 2014-05-28 | 本田技研工業株式会社 | ロボットの制御装置 |
JP5506618B2 (ja) * | 2009-12-28 | 2014-05-28 | 本田技研工業株式会社 | ロボットの制御装置 |
EP2422935B1 (en) * | 2010-08-31 | 2015-02-25 | Kabushiki Kaisha Yaskawa Denki | Robot, robot system, robot control device, and state determining method |
JP5306313B2 (ja) * | 2010-12-20 | 2013-10-02 | 株式会社東芝 | ロボット制御装置 |
US8670869B2 (en) * | 2011-05-25 | 2014-03-11 | Honda Motor Co., Ltd. | Robot controller |
US8504208B2 (en) * | 2011-05-25 | 2013-08-06 | Honda Motor Co., Ltd. | Mobile object controller and floor surface estimator |
US10027952B2 (en) * | 2011-08-04 | 2018-07-17 | Trx Systems, Inc. | Mapping and tracking system with features in three-dimensional space |
US9539726B2 (en) * | 2012-04-20 | 2017-01-10 | Vanderbilt University | Systems and methods for safe compliant insertion and hybrid force/motion telemanipulation of continuum robots |
WO2014043702A1 (en) * | 2012-09-17 | 2014-03-20 | Rethink Robotics, Inc. | Constraining robotic manipulators with redundant degrees of freedom |
US9481086B2 (en) * | 2015-02-18 | 2016-11-01 | Disney Enterprises, Inc. | Control method for floating-base robots including generating feasible motions using time warping |
-
2013
- 2013-02-08 FR FR1351106A patent/FR3002047B1/fr active Active
-
2014
- 2014-02-04 ES ES14702297T patent/ES2886527T3/es active Active
- 2014-02-04 EP EP14702297.4A patent/EP2954429B1/fr active Active
- 2014-02-04 WO PCT/EP2014/052169 patent/WO2014122134A1/fr active Application Filing
- 2014-02-04 US US14/766,731 patent/US9701013B2/en active Active
- 2014-02-04 JP JP2015556471A patent/JP6382226B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
EP2954429A1 (fr) | 2015-12-16 |
US9701013B2 (en) | 2017-07-11 |
FR3002047B1 (fr) | 2015-02-27 |
JP6382226B2 (ja) | 2018-08-29 |
EP2954429B1 (fr) | 2021-06-09 |
US20150360367A1 (en) | 2015-12-17 |
JP2016513021A (ja) | 2016-05-12 |
FR3002047A1 (fr) | 2014-08-15 |
WO2014122134A1 (fr) | 2014-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Coevoet et al. | Software toolkit for modeling, simulation, and control of soft robots | |
Coevoet et al. | Optimization-based inverse model of soft robots with contact handling | |
Alqumsan et al. | Robust control of continuum robots using Cosserat rod theory | |
US10737398B2 (en) | Continuum devices and control methods thereof | |
Chen et al. | Design and modeling of a soft robotic surface with hyperelastic material | |
Gayle et al. | Path planning for deformable robots in complex environments | |
ES2886527T3 (es) | Procedimiento de control de un robot deformable, módulo y programa informático asociados | |
EP2363794B1 (en) | Systems and methods for simulations utilizing a virtual coupling | |
Sreenivasan et al. | A real-time algorithm for simulation of flexible objects and hyper-redundant manipulators | |
WO2017220844A1 (es) | Método de manejo de un sistema robótico para cirugía mínimamente invasiva | |
Lee et al. | FEM-based soft robotic control framework for intracavitary navigation | |
Goksel et al. | 3D needle-tissue interaction simulation for prostate brachytherapy | |
Jiajia et al. | A novel inverse kinematics algorithm using the Kepler oval for continuum robots | |
Mishra et al. | Fractional-order Bouc-wen hysteresis model for pneumatically actuated continuum manipulator | |
Caasenbrood et al. | Dynamic modeling of hyper-elastic soft robots using spatial curves | |
Lindenroth et al. | Intrinsic force sensing capabilities in compliant robots comprising hydraulic actuation | |
Shabana et al. | Relative orientation constraints in the nonlinear large displacement analysis: application to soft materials | |
Sarkar et al. | A soft bending-type actuator using hyper-elastic materials: Development, analysis and characterization | |
Sun et al. | Design of bionic prosthetic fingers using 3d topology optimization | |
Chikhaoui et al. | Modeling and control strategies for flexible devices | |
Xu et al. | A meshless framework for bevel-tip flexible needle insertion through soft tissue | |
Pachouri et al. | Design and modeling of a planar-to-spatial tendon-driven continuum manipulator subjected to uncertain forces | |
CN110532661B (zh) | 一种多材料机械手 | |
Jeon et al. | Shape prediction algorithm for flexible endoscope | |
Elkeran et al. | A transient FEA-based methodology for designing soft surgical manipulators |