Control y programación de robots 11. Solución cinemática inversa y directa de robots seriales 11.1
El alumno, tras recibir y estudiar esta clase, debe ser capaz de: Comprender el modelado de la cinemática directa e inversa de los robots seriales y sus limitaciones 11.2
Definición de las cinemáticas 11.3
11.4
Grados de libertad de un mecanismo Asumiendo pares binarios (juntas que soportan dos eslabones), los grados de libertad (F) de un mecanismo están gobernados por la ecuación j ci F = λ (n - 1) i =1 Donde: F = Grados de libertad del mecanismo n = numero de eslabones del mecanismo j = numero de juntas (articulaciones binarias) ci = numero de restricciones impuestas por la junta fi = grados de libertada permitidos por la junta λ = grados de libertad del espacio en el cual trabaja el mecanismo 11.5
Criterio de Grubler s criterio de Grubler's : j F = λ (n - j - 1) + f i =1 i Ejemplo robot rotacional de 6 ejes (ABB IRB 44): Refiriéndonos al a figura y de acuerdo a la anterior ecuación: F = 6 (7-1) - 6 (5) = 6 como era esperado o por la ecuación de Grubler's : F = 6(7 6 1) + 6 (1) = 6 como era esperado 11.6
Grados de libertad redundantes Los grados de libertad redundantes pueden generar grados de libertad pasivos, los cuales deben ser restado de la ecuación de Grubler's, para tener: F = λ (n - j - 1) - j f i =1 i - fp Un grado de libertad pasivo ayuda a un eslabón intermedio a rotar libremente alrededor de un eje definido por las dos juntas Un grado de libertad pasivo no puede transmitir par. 11.7
Problemas de la cinemática de robots Redundancia Mas grados de libertad que los que se necesitan para resolver el posicionamiento de un robot Grados de libertad redundantes para evadir obstáculos Múltiples soluciones Fijar soluciones de acuerdo a la aplicación Fijar soluciones por métodos geométricos que optimizan restricciones Singularidades Las singularidades de un mecanismo pueden reflejar comportamientos que dan como resultado: la reducción de la cadena cinemática o la ganancia de grados de libertad sin control el atascamiento del mecanismo 11.8
Singularidad de borde Singularidades típicas Singularidad por el alineamiento de las juntas 4 y 6 La relación esférica de las juntas pierde movilidad al caer sobre el eje de giro 11.9
Análisis de posición: Soluciones cinemáticas La solución cinemática directa La cinemática directa de un robot consiste en hallar la posición y orientación del efector final a partir de los ángulos o desplazamientos de cada una de las articulaciones La cinemática directa puede ser calculada la partir de la lectura de los sensores de posición de las articulaciones θ2 θ1 Base? θ3 Efector final? r r xθ= f( ) 11.1
Análisis de posición: Soluciones cinemáticas La solución cinemática inversa La cinemática θ2 =? l1 θ1 =? Base l2 l3 θ3 =? Efector final (x, y, z) r 1 r θ = f (x) x = l1 cos( θ1 ) + l2 cos( θ 2 ) + l3 cos( θ 3 ) y = l1 sin( θ1 ) + l2 sin( θ 2 ) + l3 sin( θ 3 ) 11.11
Análisis de posición: Soluciones cinemáticas La solución cinemática inversa θ2 =? l1 θ1 =? Base l2 l3 θ3 =? Efector final (x, y, z) r 1 r θ = f (x) x = l1 cos( θ1 ) + l2 cos( θ 2 ) + l3 cos( θ 3 ) y = l1 sin( θ1 ) + l2 sin( θ 2 ) + l3 sin( θ 3 ) Numero de ecuaciones : 2 Numero de variables : 3 Posible numero infinito de soluciones! 11.12
Análisis de posición: Redundancia DOF del mecanismo > DOF del efector final Nuestro ejemplo x = l1 cos( θ1 ) + l2 cos( θ 2 ) + l3 cos( θ 3 ) y = l1 sin( θ1 ) + l2 sin( θ 2 ) + l3 sin( θ 3 ) DOF mecanismo = 3 DOF efector final = 2 11.13
Definición de las trasformaciones cinemáticas 11.14
Solución cinemática directa 11.15
Cinemática directa 11.16
Cinematica directa por matrices de transformación Tabla de parámetros de D-H Posición Orientación de la muñeca 11.17
Ejercicio practico: Cinemática directa con matlab Resolver la cinemática directa del manipulador de 6 dof con matlab Eslabón θi di ai αi 1 θ1+π/2 l1 -π/2 2 θ2-π/2 a2 3 θ3+π π/2 4 θ4 l4 π/2 5 θ5 π/2 6 θ6 l6 11.18
Ejemplo: Robot serial 6 DOF % DIRECTKINEMATIC6 Direct Kinematic. % A6 = DIRECTKINEMATIC6(Q) devuelve la matriz de transformación del % primer sistema de coordenadas al último en función del vector Q % de variables articulares. % % See also DENAVIT. function A6 = directkinematic6(q) % Parámetros Denavit-Hartenberg del robot teta = q; d = [.315.5.8]; a = [.45 ]; alfa = [-pi/2 pi/2 -pi/2 pi/2 ]; % Matrices de transformación homogénea entre sistemas de coordenadas consecutivos A1 = denavit(teta(1), d(1), a(1), alfa(1)); A12 = denavit(teta(2), d(2), a(2), alfa(2)); A23 = denavit(teta(3), d(3), a(3), alfa(3)); A34 = denavit(teta(4), d(4), a(4), alfa(4)); A45 = denavit(teta(5), d(5), a(5), alfa(5)); A56 = denavit(teta(6), d(6), a(6), alfa(6)); % Matriz de transformación del primer al último sistema de coordenadas A6 = A1 * A12 * A23 * A34 * A45 * A56; 11.19
Ejemplo: Robot serial 6 DOF» q=zeros(6,1) q=» T=directkinematic6(q) T= 1..45 1. 1..895 1. 11.2
Cinemática inversa 11.21
Solución cinemática inversa 11.22
Cinemática inversa de un robot serial La cinemática inversa consiste en hallar los valores de las coordenadas articulares del robot conocida la posición y orientación del extremo del robot. A pesar de que en la literatura se pueden encontrar diversos métodos genéricos para la resolución de la cinemática inversa que pueden ser implementados en computadora, suele ser habitual la resolución por medio de métodos geométricos. La mayor parte de los robots suelen tener cadenas cinemáticas relativamente sencillas, que facilitan la utilización de los métodos geométricos. 11.23
Cinemática inversa de un robot serial Para muchos robots, si se consideran sólo los tres primeros grados de libertad, se tiene una estructura planar, una hoja que gira. Este hecho facilita la resolución del problema. Asimismo los últimos tres grados de libertad suelen usarse para la orientación de la herramienta, lo cual permite una resolución geométrica desacoplada de la posición de la muñeca del robot y de la orientación de la herramienta. 11.24
Cinemática inversa de un robot serial 11.25
Resolución por método geométrico, caso-1 11.26
Resolución por método geométrico, caso-1 11.27
Resolución cinemática inversa por matrices de transformación 11.28
Resolución por matrices de transformación 11.29
Resolución por matrices de transformación 11.3
Ejercicio practico: Cinemática con matlab Simular el desplazamiento de un robot de 6 dof en línea recta, dados el puntos de partida p1(x, y, z) y de llegada p2(x, 2, z). p2 p1 11.31
Ejercicio practico: Cinemática con matlab simular la cinemática inversa de un manipulador de 6 dof utilizando herramientas de matlab 1. Construir la tabla de parámetros de D-H. 2. Defina para este robot una de las dos opciones para el hombro y una de las dos opciones para la muñeca 3. Edite el script: inversekinematic6(t, codo, muñeca); y cambie los valores de la tabla de D-H por los del robot 6 DOF 4. Estudie detenidamente los scripts planifica6(p1, p2, n, s, a, CODO, MUNECA, NPUNTOS).m y inversekinematic6(t, codo, muneca).m 5. Realice las simulación 11.32
Ejercicio practico: Cinemática inversa con matlab Modelo del robot en base a D-H Eslabón θi di ai αi 1 θ1+π/2 l1 -π/2 2 θ2-π/2 a2 3 θ3+π π/2 4 θ4 l4 π/2 5 θ5 π/2 6 θ6 l6 11.33
Ejercicio practico, cinemática inversa con matlab 11.34
Revisión: Funciones de matlab Código en Matlab. La función PLANIFICA6(P1,P2,N,S,A,CODO,MUÑECA, NPUNTOS) calcula la matriz de coordenadas articulares utilizada para graficar el movimiento del robot. % % % % % % % % % % % % % % % % % PLANIFICA6 Planificación de trayectorias MAT_Q = PLANIFICA6(P1, P2, N, S, A, CODO, MUNECA, NPUNTOS) realiza una planificación de trayectoria en línea recta desde la coordenada cartesiana P1 hasta la P2, de manera que la mano del manipulador posee la orientación expresada por [N S A]. CODO = 1 indica codo del robot arriba, es decir, que la articulación 3 se sitúa por encima de la articulación 2, mientras que CODO = -1 indica codo abajo, es decir que la articulación 2 se sitúa por encima de la 3. MUNECA = 1 indica que la muñeca del robot se sitúa por debajo de la coordenada cartesiana, mientras que MUNECA = -1 significa que la muñeca se sitúa por arriba. NPUNTOS indica el número de puntos en los que se divide la trayectoria. En MAT_Q se devuelve las coordenadas articulares, almacenadas por columnas, correspondientes a cada uno de los puntos cartesianos en los que se divide la trayectoria. MAT_Q es una matriz de NPUNTOS + 2 columnas y 6 filas. See also INVERSEKINEMATIC6. 11.35
Revisión: Funciones de matlab function mat_q = planifica6(p1, p2, n, s, a, codo, muneca, npuntos) % Cálculo del vector unitario u = p2-p1; mu = sqrt(u(1)^2+u(2)^2+u(3)^2); u = (1/mu)*u; % Cálculo de la distancia entre puntos d = mu/(npuntos+1); for i=:(npuntos+1) % Cálculo de la posición cartesiana actual de la mano del manipulador p = p1+(i*d)*u; T = [n s a p]; % Cálculo de las coordenadas articulares q = inversekinematic6(t,codo,muneca); mat_q(:,i+1) = q; end 11.36