Cinemática de los manipuladores Robótica
Introducción Cinemática: Estudio del movimiento sin considerar las fuerzas que lo producen Propiedades geométricas y temporales Posición, velocidad, aceleración, derivadas superiores de la posición, etc. Cinemática de los manipuladores: Propiedades geométricas y temporales del movimiento.
Aspecto a resolver Problema: A partir de los parámetros geométricos del manipulador. Especificar: Posición y orientación del manipulador. Solución: Definir sistemas de referencia en el manipulador y objetos del entorno siguiendo la Notación de Denavit-Hartenberg (1955).
Los términos enlace/articulación Articulación: Conexión de dos cuerpos rígidos caracterizados por el movimiento de un sólido sobre otro. Grado de libertad: Circular o prismático Enlace: Cuerpo rígido que une dos ejes articulares adyacentes del manipulador. Posee muchos atributos: Peso, material, inercia,etc.
Parámetros de un enlace Eje articular: Línea en el espacio alrededor de la cual el enlace i rota referido al enlace i-1 Longitud del enlace (a i-1 ): Distancia entre los ejes articulares i e i-1 Número de líneas que definen la longitud: Ejes paralelos: Ejes no paralelos: 1 Signo: positivo Ángulo del enlace ( α i-1 ): Ángulo medido entre los ejes articulares i e i-1. Proyección sobre plano Signo: Regla de la mano derecha perpendicular común
Ejemplo de parámetros 1.- Se colocan los ejes articulares 2.- Longitud del enlace: 7 3.- Ángulo del enlace: 45 0 Plano Longitud del enlace
Variables articulares Desplazamiento del enlace (d i ): Distancia medida a lo largo del eje de la articulación i desde el punto donde a i-1 intersecta el eje hasta el punto donde a i intersecta el eje. d i es variable si la articulación es prismática d i posee signo Ángulo de la articulación (θ i ): Ángulo entre las perpendiculares comunes a i-1 y a i medido sobre el eje del enlace i. θ i es variable si la articulación es de rotación θ i posee signo definido por la regla de la mano derecha
Definición de Sistemas de Referencia: Enlaces primero y último Sistema de referencia {0}: Sistema que se adjunta a la base del robot. No se mueve. El Sistema de referencia {1} coincide con la base. Enlace(i) a 0 y a n α 0 y α n d i θ i Prismática (d i ) 0 1 y n 0 0 Rotacional (0) θ n
Definición de Sistemas de Referencia: Enlaces intermedios Origen del sistema de referencia { i }: Se ubica en el punto creado por la perpendicular de a i y el eje articular i. Z ) i Eje Z: El eje del sistema de referencia { i } se hará coincidir con el eje articular i. Eje X: El eje X ) i se hace coincidir con la distancia a i desde la articulación i hacia i+1. Eje Y: Se define a partir del eje X ) i, tomando como referencia la regla de la mano derecha. Y ) i 1 Z ) i X ) i
Procedimiento general para la definición de sistemas de referencia 1. Identificar los ejes articulares: De los pasos 2 a 5 utilice dos ejes consecutivos i e i-1. 2. Identifique la perpendicular común: Identifique la línea que se intersecta, perpendicularmente, al eje articular i. Defina el sistema de referencia sobre el punto de intersección. 3. Asigne el eje Z ) i al eje articular i. 4. Asigne el eje X ) ia la perpendicular común que definió el origen del sistema de referencia i. 5. Termine de asignar el sistema de referencia, definiendo el eje Y ) i según la ley de la mano derecha. 6. Haga coincidir los sistemas de referencia {0} y {1} cuando la primera variable articular sea cero.
Significado de los parámetros de Denavit-Hartenberg Los parámetros de DH tienen el siguiente significado: a El parámetro i es la distancia entre Z ) i y Z ) medida i 1 a lo largo de. El parámetro α es el ángulo entre y referido a X ) i. El parámetro d i es la distancia de X ) a X ) i 1 i medida a lo largo de Z ). El parámetro es el ángulo entre y referido a Z ) i. a i i X ) i i θ i i 1 Z ) Z ) i 1 Nota: es la única magnitud positiva, las demás tienen signo. X ) i X ) i
Transformación homogénea Es el resultado de de un enlace Al definir tres sistemas de referencia Intermedios {R}, {Q} y {P}, se tiene: {R} difiere de i-1 en la rotación α i 1 {Q} difiere de {R} por la traslación a i 1 {P} difiere de {Q} por la rotación {i} difiere de {P} por la traslación θ i d i
Transformación homogénea de un enlace (II) Un punto definido en el sistema de referencia {i} proyectado en el sistema de referencia {i-1} responde a La transformación del sistema de referencia {i} en {i-1} responde a
Transformación homogénea de un enlace (III) Matriz DH
Concatenar transformaciones homogéneas de enlaces Definir el sistema de referencia de los enlaces Definir los parámetros DH de cada enlace Calcular la matriz de transformación de cada enlace Relacionar el sistema {N} sobre el sistema {0} Transformación resultante de todos los enlaces Después de medir la posición, usando sensores, de los enlaces; se calcula la posición del efector final
Ejemplo RRR (3R)
Ejemplo RRR (II) Identificar el eje de las articulaciones Identificar la perpendicular común entre los ejes de las articulaciones Asignar el eje en los ejes articulares Z ) i Z ) 3 ) ) Z 0 Z 1 Z ) 2
Ejemplo RRR (III) Asignar el eje en la perpendicular común. X ) i Utilizando la regla de la mano derecha, asignar el eje. Y ) i
Ejemplo RRR (IV) i α i-1 a i-1 d i θ i 1 0 0 0 θ 1 2 0 L 1 0 θ 2 3 0 L 2 0 θ 3
Ejemplo RRR (V) i α i-1 a i-1 d i θ i 1 0 0 0 θ 1 2 0 L 1 0 θ 2 3 0 L 2 0 θ 3
Ejemplo RRR (Final) 0 P= 0 3 T 3 P
Ejemplo RPR 1.- Identificar el eje de las articulaciones 2.- Identificar la perpendicular común al eje de las articulaciones: Ninguna
Ejemplo RPR (II) Si los ejes Z ) Asignar el eje Z ) i se intersectan, ubicar X ) i de forma que sea i normal al plano que contenga en los ejes articulares los dos ejes, considere además que la variable articular {i} proyectada en {i-1} sea cero en el origen
Ejemplo RPR (III) Y ) i Completar el sistema de referencia colocando aplicando la regla de la mano derecha
Ejemplo RPR (IV) Parámetros DH i α i-1 a i-1 d i θ i 1 0 0 0 θ 1 2 90 0 0 d 2 0 3 0 0 L 2 θ 3
Ejemplo RPR (Final) i α i-1 a i-1 d i θ i 1 0 0 0 θ 1 2 90 0 0 d 2 0 3 0 0 L 2 θ 3 0 P= 0 3 T 3 P
Puma 560-6R
Asignación del sistema de referencia 1 Posición del robot cuando todas las variables articulares son cero. Hacer coincidir los sistemas de referencia {0} y {1}. Asignar el eje Z ) 1 en el primer eje articular. Asignar el eje X ) a la perpendicular común al eje Z ) 11. Si los ejes se intersectan, asignar X ) 1 a la normal del plano conteniendo los dos ejes. Completar el sistema de coordenadas asignando Y ) 1 por la regla de la mano derecha Y ) 2
Asignación del sistema de referencia 2 Asignar el eje Z ) 2 en el segundo eje articular. 2 3 Asignar el eje X ) 2 a la perpendicular común a los ejes articulares 2 y 3. Completar el sistema de coordenadas asignando Y ) 2 por la regla de la mano derecha
Asignación del sistema de referencia 3 Asignar el eje Z ) 3 en el tercer eje articular. 3 Asignar el eje X ) 3 a la perpendicular común a los ejes articulares 3 y 4 o normal al plano. 4 Completar el sistema asignando por la regla de la mano derecha Y ) 3
Asignación del sistema de referencia 4 Asignar el eje Z ) 4 en el cuarto eje articular. Asignar el eje X ) 4 a la perpendicular común a los ejes articulares 4 y 5 o normal al plano. Completar el sistema asignando Y ) 4 por la regla de la mano derecha
Asignación del sistema de referencia 5 Asignar el eje Z ) 5 en el quinto eje articular. Asignar el eje X ) 5 a la perpendicular común a los ejes articulares 4 y 5 o normal al plano. Completar el sistema asignando por la Y ) 5 regla de la mano derecha
Asignación del sistema de referencia 6 {N} Asignar el eje Z ) 6 en el sexto eje articular. Seleccione libremente el eje X ) 6 considerando que sean cero la mayor cantidad de parámetros DH. Completar el sistema asignando por la Y ) 6 regla de la mano derecha
Parámetros DH
Transformaciones de los enlaces
Toolbox Robótica Peter I. Corke >> puma560 >> plot(560,qz) >> drivebot(p560) Simulador PUMA 560
Sistemas de referencias con nombres estándar
Cinemática directa Cinemática directa: Se conocen las variables articulares de una cadena de enlaces de un brazo articulado Cálculo sencillo (multiplicación matricial) 0 0 N Una única solución: P= T P N
Cinemática inversa Cinemática inversa: Problema difícil de resolver: Obtener los valores de las variables articulares para que el órgano terminal tenga una determinada posición y orientación Se deben resolver un conjunto de ecuaciones algebraicas no lineales simultáneas Problemas fundamentales: Ecuaciones no lineales (sen, cos en matrices de rotación) Existen múltiples soluciones Es posible que no exista una solución Singularidades.
Espacio alcanzable Cartesiano Espacio alcanzable: Volumen del espacio que el robot puede alcanzar con al menos una orientación Cilíndrico Scara Esférico Antropomórfico
Existencia de múltiple soluciones Deben atenderse las múltiples soluciones: Elección que minimice los movimientos desde la posición actual Concepto de solución más Cercana Mover los eslabones de menor peso Considerar obstáculos (evitar colisiones) Obstáculo
Método de resolución Manipulador resoluble: Existe un algoritmo que permite determinar todas las soluciones del modelo inverso (variables articulares) asociadas a una determinada posición y orientación. Teóricamente es resoluble: todo sistema R y P con 6 grados de libertad. Métodos numéricos iterativos: lentitud. Se prefieren expresiones analíticas (soluciones cerradas): Métodos algebraicos Métodos geométricos
Porqué la cinemática inversa? Métodos de programación: Programación por guiado: Desplazamiento del efector final para que se alcancen las configuraciones deseadas, registrándose los valores (digitalización de posiciones). Programación textual: Programa de ordenador donde existen órdenes para especificar los movimientos del robot, acceder a información de sensores, etc.
Cinemática directa vs inversa Cinemática directa Conocidos: Ángulos articulares y geometría de los eslabones Determinar: Posición y orientación del elemento terminal referido a la base B 0 f ( θ ) = HT = NT {Herramienta} Cinemática inversa Conocidos: Posición y orientación del elemento terminal referido a la base Determinar: Ángulos articulares y geometría de los eslabones para alcanzar la orientación y posición de la herramienta θ = f 1 B H 1 N ( T) = f ( 0T) {Base}
Número de soluciones Se desea: Posicionar el elemento terminal en un punto del plano Número de GDL del manipulador = Número de GDL que requiere la tarea Dos soluciones Número de GDL del manipulador > Número de GDL que requiere la tarea Infinitas soluciones
Tipos de solución Solución: Conjunto de variables articulares que permiten posicionar el elemento terminal en una determinada posición y orientación No existen algoritmos generales de solución al problema de cinemática inversa Tipos de solución: Soluciones cerradas: Solución algebraica: Ecuaciones no lineales trigonométricas Solución geométrica: Conjunto de subproblemas geométricos en el plano Soluciones numéricas (iterativas): No aplicables en tiempo real
Ejemplo de solución geométrica (I) Se conoce: Geometría del manipulador Punto objetivo: Posición (x e y) y orientación del elemento terminal en el espacio Problema: Determinar las variables articulares ( θ ) θ1 θ 2 3 y θ θ x
Algunas identidades trigonométricas Ley de los cosenos para un triángulo general Suma de ángulos: Identidades: cos( θ ) = cos( θ ) cos( pi θ ) = cos( pi + θ )
Ejemplo de solución geométrica (II) La orientación del último eslabón es la suma de las variables articulares θ = θ + 1 + θ 2 θ 3 y θ θ x
Ejemplo de solución geométrica (III) Cálculo de : θ 2 Aplicando la ley de los cosenos: Debido a que Resulta:
Ejemplo de solución geométrica (IV) Se debe verificar la solución del algoritmo, el cual debe cumplir: Espacio alcanzable Espacio alcanzable Intervalo de la solución θ 2
Ejemplo de solución geométrica (V) Si se definen dos ángulos se cumple θ 1 = β ψ El ángulo se calcula: sen( β ) = x β 2 y + y Y aplicando ley de los cosenos 2
Ejemplo de solución geométrica (VI) Finalmente θ 3 = θ θ1 θ 2 y θ θ x
Control basado en cinemática inversa (I) Sección de código de la función invsurf.m: Condiciones iniciales: l1 = 10; l2 = 7; point = 21; r = linspace(l1-l2, l1+l2, point); theta = linspace(0, 2*pi, 2*point); for i = 1:length(r), for j = 1:length(theta), xx = r(i)*cos(theta(j)); Cinemática directa yy = r(i)*sin(theta(j)); c2 = (xx^2 + yy^2 - l1^2 - l2^2)/(2*l1*l2); c2 = min(max(c2, -1), 1); s2 = sqrt(1 - c2^2); th2(i, j) = atan2(s2, c2); k1 = l1 + l2*c2; k2 = l2*s2; th1(i, j) = atan2(yy, xx) - atan2(k2, k1); end end
Control basado en cinemática inversa (II) Resultado de ejecutar la función invsurf.m:
Control basado en cinemática inversa (III) y θ 1 θ 2 θ 1 θ 2 x Modelo del brazo articulado de dos grados de libertad x y
Control basado en cinemática inversa (IV) θ 1 θ 2 Modelo del brazo articulado de dos grados de libertad x y x d Modelo inverso del brazo articulado y d
Control basado en cinemática Matrices inversas invkine1 x1 y1 ; θ11 x 2 y2 ; θ.. x n y n ; θ1 12 n invkine2 x1 y1 ; θ 21 x2 y2 ; θ.. x n y n ; θ 2 22 n inversa (V) for i = 1:length(x), for j = 1:length(y), xx = x(i); yy = y(j); c2 = (xx^2 + yy^2 - l1^2 - l2^2)/(2*l1*l2); s2 = sqrt(1 - c2^2); th2(i, j) = atan2(s2, c2); k1 = l1 + l2*c2; k2 = l2*s2; th1(i, j) = atan2(yy, xx) - atan2(k2, k1); if abs(c2) < 1; data1(data_n, :) = [xx yy th1(i, j)]; data2(data_n, :) = [xx yy th2(i, j)]; data_n = data_n + 1; end end end invkine1 = data1(1:data_n, :); invkine2 = data2(1:data_n, :);
Control basado en cinemática inversa (VI) Obtención del modelo inverso Sistema borroso 1: fismat1 [fismat1, error1] = anfis(invkine1, 3, [50, 0, 0.2]); writefis(fismat1, 'invkine1.fis'); % WRITEFIS (FISMAT,'filename') Sistema borroso 2: fismat2 [fismat2, error2] = anfis(invkine2, 3, [50, 0, 0.2]); writefis(fismat2, 'invkine2.fis'); 1 f θ1 = ( x, y) 1 f θ 2 = ( x, y)
Control basado en cinemática inversa (VI) En el programa invkine.m: fismat1 = readfis('invkine1'); fismat2 = readfis('invkine2'); θ 1 θ 2 Modelo del brazo articulado de dos grados de libertad x y x d theta1 = evalfis([x, y], fismat1); y d theta2 = evalfis([x, y], fismat2);
Control basado en cinemática inversa (VII) Resultado de ejecutar invkine.m: