crea robot con matlab
DESCRIPTION
goodTRANSCRIPT
1
M.Sc. Ricardo Rodríguez Bustinza
Creación de un Robot con MATLAB
Vamos a tomar un ejemplo simple de un manipulador planar de dos eslabones (ver Figura) el cual tiene los siguientes parámetros (estándar) de eslabones de Denavit‐Hartenberg.
Donde hemos puesto la longitud de los eslabones en 1. Ahora podemos crear un par de objetos de eslabón:
path(path,'C:\Documents and Settings\Mis documentos\MATLAB\robot71'); L{1}=link([0 1 0 0 0]); % L = % 0.000000 1.000000 0.000000 0.000000 R L{2}=link([0 1 0 0 0]); % L2 = % 0.000000 1.000000 0.000000 0.000000 R r=robot(L,'D2') % r = % % noname (2 axis, RR) % grav = [0.00 0.00 9.81] standard D&H parameters % alpha A theta D R/P % 0.000000 1.000000 0.000000 0.000000 R % 0.000000 1.000000 0.000000 0.000000 R plot(r, [0 0])
2
M.Sc. Ricardo Rodríguez Bustinza
Las primeras líneas crean los objetos de eslabones, uno por cada eslabón del robot. Note el segundo argumento de link el cual especifica que la convención estándar de D&H será usada (ésta es por defecto). Los argumentos del objeto de eslabones pueden encontrarse de >> help link LINK create a new LINK object A LINK object holds all information related to a robot link such as kinematics of the joint, rigid-body inertial parameters, motor and transmission parameters. LINK LINK(link) Create a default link, or a clone of the passed link. A = LINK(q) Compute the link transform matrix for the link, given the joint variable q. LINK([alpha A theta D sigma]) LINK(DH_ROW) create from row of legacy DH matrix LINK(DYN_ROW) create from row of legacy DYN matrix
3
M.Sc. Ricardo Rodríguez Bustinza
La cual muestra el orden en que los parámetros de link deben suministrarse (el cual es diferente al orden de las columnas de la tabla de arriba). El quinto argumento, sigma, es una bandera que indica si la unión es rotativa (sigma es cero) o prismática (sigma diferente de cero). Los objetos de link se pasan como un arreglo a la función robot() la cual crea un objeto robot el cual se pasa a muchas de las otras funciones de la caja de herramientas. Problema de la Cinemática Directa Encuentre la solución completa del problema mediante la cinemática directa para un robot cilíndrico de la figura.
Solución En primer lugar se localizan los sistemas de referencia de cada una de las articulaciones del robot figura. Posteriormente se determinan los parámetros de Denavit‐ Hartenberg del robot, con los que se construye la siguiente tabla.
4
M.Sc. Ricardo Rodríguez Bustinza
% alpha a theta d R/P L1 = link([0 0 0 1 0]); D2 = link([pi/2 0 pi/2 1 1]); D3 = link([0 0 0 1 1]); L4 = link([0 0 0 1 0]); rob = robot({L1 D2 D3 L4},'ROBCIL') plot(rob, [0 0 0 0]) view(-19,68)
Una vez creado el robot se realiza la solución completa al problema cinemático directo con la función fkine: Para unas coordenadas de las articulaciones de cero, tenemos: % Cinematica Directa q1=[0 0 0 0]; q2=[0 1 1 0]; T1f=fkine(rob,q1); % T1 = % 0.0000 -0.0000 1.0000 1.0000 % 1.0000 0.0000 -0.0000 -0.0000 % 0 1.0000 0.0000 1.0000 % 0 0 0 1.0000 T2f=fkine(rob,q2); % T2 =
5
M.Sc. Ricardo Rodríguez Bustinza
% 0.0000 -0.0000 1.0000 2.0000 % 1.0000 0.0000 -0.0000 -0.0000 % 0 1.0000 0.0000 2.0000 % 0 0 0 1.0000
Usaremos el Toolbox de Matemática Simbólica para manipular el movimiento de las articulaciones del robot cilíndrico. syms q1 q2 d2 d3 real l1=0.5; q1=0; T01=[cos(q1) -sin(q1) 0 0 sin(q1) cos(q1) 0 0 0 0 1 l1 0 0 0 1]; d2=1; T12=[0 0 1 0 1 0 0 0 0 1 0 d2 0 0 0 1]; d3=1.5; T23=[1 0 0 0 0 1 0 0 0 0 1 d3 0 0 0 1]; l4=1; q4=0; T34=[cos(q4) -sin(q4) 0 0 sin(q4) cos(q4) 0 0 0 0 1 l4 0 0 0 1]; T04=T01*T12*T23*T34;
6
M.Sc. Ricardo Rodríguez Bustinza
Otros movimientos del robot cilíndrico
Problema de la Cinemática Inversa Para encontrar la solución al problema cinemático inverso se usa la función ikine aunque la solución se lleva un tiempo inaceptable para controlar robots reales. Por ejemplo: Usando el robot creado en el numeral anterior obtenemos la solución: Para las coordenadas de las articulaciones q = [‐pi/4 0.5 0.5 pi/3] se obtiene la siguiente matriz de transformación: T = fkine(rob,[-pi/4 0.5 0.5 pi/3]); % T = % 0.3536 -0.6124 0.7071 1.0607 % 0.3536 -0.6124 -0.7071 -1.0607 % 0.8660 0.5000 0.0000 1.5000 % 0 0 0 1.0000 qi = ikine(rob,T,[0 0 0 0],[1 1 1 1 0 0]); % CI Art 1 2 3 4 DOF % qi = % -0.7854 0.5000 0.5000 1.0472 qi_grad=qi*180/pi % qi_grad = % -45.0000 28.6479 28.6479 60.0000
Note que coinciden con las coordenadas de las articulaciones originales. Una solución no siempre es posible, por ejemplo si la transformación describe un punto fuera del alcance del manipulador. También la solución no es necesariamente única y hay singularidades en las cuales el manipulador pierde grados de libertad y las coordenadas de las articulaciones llegan a ser linealmente dependientes.
7
M.Sc. Ricardo Rodríguez Bustinza
Ejercicio Considere el manipulador RRR de la Figura
Obteniendo los parámetros DH
Hallando la cinemática directa 0T4 del manipulador desde las ecuaciones DH.
Es usual realizar las multiplicaciones de las transformaciones, ya que posteriormente necesitaremos de estos resultados en las submatrices que se forman para obtener los Jacobianos.
8
M.Sc. Ricardo Rodríguez Bustinza
Para hallar el Jacobiano básico para este Manipulador. Para Xp usamos la posición del efector final expresado en el frame {0} que es la última columna de 0T4
Para hallar el Jacobiano 1Jv la matriz de posición del jacobiano expresado en el frame {1} es:
9
M.Sc. Ricardo Rodríguez Bustinza
Usando la matriz hallada anterioemente, determinaremos las singularidades (con respecto a la velocidda lineal) del manipulador. Para ello se requiere hallar θ1, θ2, y θ3 que es la matriz singular. Esto se realiza cuando el determinante es cero.
Las singularidades ocurren cuando:
La primera cantidad (2C2+C23=0) es la distancia entre el punto del efector final y el eje z1. Cuando la distancia es cero, la juntura 1 no tiene efecto sobre la velocidad en el efector final. Entonces solo las junturas 2 y 3 pueden afectar las velocidades comunes a la rotación, el efector final no puede moverse en la dirección de y1. Cuando S3=0, puede tomar θ3 =180° o θ3=0, en este caso es imposible que el efector final se mueva en la dirección x4. Para cada singularidad podemos interpretar la limitación de movimiento:
10
M.Sc. Ricardo Rodríguez Bustinza