funciones comandos en matlab

13
FUNCIONES DE LOS COMANDOS EN MATLAB Primera Parte: Cada grupo de trabajo, diseñará un cuadro en el que relacionen cada uno delos comandos utilizados en esta segunda unidad en el programa de SCILAB (ó MATLAB), especificando la sintaxis y finalidad de cada uno, además de mantener una constante comunicación con todos sus compañeros del grupo. Instrucciones relacionadas con la cinemática COMANDO SINTAXIS FINALIDAD Sym s=sym(A) Construye un objeto s de clase 'sym' de A. Si el argumento de entrada es un string, el resultado es un número simbólico o variable. Symple r=simple s Simplificación algebraica de la expresión s radsimp radsimp: cos(x)+sin(x) Método de simplificación combine combine('hello',8^,[110 101 100],'blue') Form matrix from individual vectors and matrices diary diary off= suspende la sesion Save text of Matlab session. fkine T=simple ( fkine (dh,q) ) Calcular la cinemática directa de un robot manipulador Dh dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ] Contener los parámetros de Denavit Hartenberg del manipulador diff2tr t = diff2tr(d) Convertir un vector de movimiento diferencial en la correspondiente transformación homogénea Ikine T=fkine(dh,q) Ikine devuelve los valores de las variables articulares necesarios para que el efector final

Upload: johnelectronica

Post on 04-Aug-2015

152 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Funciones Comandos en Matlab

FUNCIONES DE LOS COMANDOS EN MATLAB

Primera Parte:

Cada grupo de trabajo, diseñará un cuadro en el que relacionen cada uno delos comandos utilizados en esta segunda unidad en el programa de SCILAB (ó MA-TLAB), especificando la sintaxis y finalidad de cada uno, además de mantener una constante comunicación con todos sus compañeros del grupo.

Instrucciones relacionadas con la cinemáticaCOMANDO SINTAXIS FINALIDAD

Sym s=sym(A) Construye un objeto s de clase 'sym' de A. Si el argumento de entrada es un string, el resultado es un número sim-bólico o variable.

Symple r=simple s Simplificación algebraica de la expre-sión s

radsimp radsimp: cos(x)+sin(x) Método de simplificacióncombine combine('hello',8^,[110 101 100],'blue') Form matrix from individual vectors

and matricesdiary diary off= suspende la sesion Save text of Matlab session. fkine T=simple ( fkine (dh,q) ) Calcular la cinemática directa de un

robot manipuladorDh dh = [ 0 0 t1 0 0 ; 0 l1 t2 0 0 ; 0 l2 t3 0 0 ] Contener los parámetros de Denavit

Hartenberg del manipuladordiff2tr t = diff2tr(d) Convertir un vector de movimiento di-

ferencial en la correspondiente trans-formación homogénea

Ikine T=fkine(dh,q) Ikine devuelve los valores de las varia-bles articulares necesarios para que el efector final del manipulador tenga la posición y orientación dadas por la transformación T.

jacobO >> J = simple ( jacob0 (dh, q) ) Calcular el Jacobiano del manipulador expresado en el sistema de referencia base

jacobN >> J = simple ( jacobn (dh , q )) Calcular el Jacobiano expresado en el sistema de coordenadas del efector fi-nal

Linkstrans T1=linktrans(dhp560(:.1),t1); %trans 1-0T2=linktrans(dhp560(:.2),t2); %trans 2-1

T=T1*T2; ejem

Calcular las matrices de transforma-ción a partir de los parámetros de De-navit Hartenberg

Numcols xData = zeros(500,1);ejem[numRows, numCols] = size(xData);

Calcular el número de columnas de una matriz

Page 2: Funciones Comandos en Matlab

jxData = javaArray('java.lang.Double',numRows,nu-mCols);

Numrows Calcular el número de filas de una ma-triz

Plotbot plotbot (dh, q) Representar gráficamente el manipu-lador

tr2diff Y = diff(X,n,dim) Convertir una transformación en un vector de movimiento diferencial y calcular la diferencia entre dos trans-formaciones

tr2jac dt = tr2jac (t) * d calcular la matriz que permite pasar un vector de velocidades cartesianas de un cuadro de referencia a otro dis-tinto

Velprop z = simple (velprop (dh, q, qd, v0, w0 ) ) Calcular el vector de velocidades en el espacio cartesiano expresado en el sis-tema de coordenadas del cuadro {n}.

Instrucciones que habitualmente se emplean para realizar cálculos relacionados con la dinámica de los brazos manipuladores

COMANDO SINTAXIS FINALIDADcorioli V = coriolis (dyn, q, qd ) calcular el par correspondiente a los

términos centrífugos y de coriolisdyn e = diff(y´)./h´; ejem

dy0=1;dyn=1;

g = diff([dy0; e; dyn]);g = xxxx

Contener los parámetros cine máticos y dinámicos del manipulador

fdyn fdyn (dyn, 0, 10, 'taucap5', [0 0]',[ 0 0]', [0 9.810] permite integrar la dinámica directa para obtener las trayectorias articula-res

friction 1/sqrt(friction) = 2*log10((eD/3.7)+(5.74/Reyolds)*(1/sqrt(friction))); ejem

calcular el par correspondiente a las fricciones según un cierto modelo

gravity G = gravity ( dyn, q, grav ) Calcular el par correspondiente al tér-mino gravitatorio.

inertia M = inertia ( dyn, q) calcular la matriz de masas del mani-pulador

rne tau = rne(robot, q, qd, qdd) calcular el modelo completo del mani-pulador mediante el método recursivo de Newton-Euler

Page 3: Funciones Comandos en Matlab

SEGUNDA PARTE:

EJEMPLOS UTILIZANDO LA HERRAMIENTA COMPUTACIONALSCILAB Ó MATLAB

EL COMANDO PLOTBOTAspectos importantes:

PLOTBOT Representa gráficamente el manipuladorPLOTBOT(DH, Q)PLOTBOT(DH, Q, OPT)

Esta función construye una representación gráfica del robot, a partir de los pará-metros cinemáticas contenidos en DH y de los valores de las variables articulares (Q) que se le pasen. Se trata de una representación gráfica simple en la que cada enlace se modela mediante un paralelepípedo de color cián. El sistema de coorde-nadas asociado al efector final se representa en color verde, mientras que los sis-temas de coordenadas asociados a cada una de las articulaciones intermedias se representan en color rojo.

Si el parámetro Q es una matriz que representa una trayectoria en el espacio de las variables articulares (es decir, que contiene en cada fila el conjunto de varia-bles articulares del robot), entonces el resultado es una animación del robot si-guiendo dicha trayectoria.

Page 4: Funciones Comandos en Matlab

Trayectorias de un manipulador

Desplazamiento, velocidad y aceleración vs tiempo

EJEMPLO

lo primero que se debe tener presente es que el método numérico empleado para obtener el modelo inverso no siempre converge. habrá regiones del espacio en las que el algoritmo no convergerá aunque dichas regiones pertenezcan al espacio alcanzable, lo cual representa una limitación importante. en la figura 3.1 están representados los puntos del área [0.7]x[0.7] en los que no hay convergencia para una tolerancia de 10^-6 y un numero de iteraciones igual a 1000 ( el barrido del área se ha efectuado de 0.1 en 0.1). la estimación inicial del vector de variables articulares para el calculo del modelo inverso en los puntos de dicha área será [0 0 0].

es posible elegir un trayectoria de la región donde hay convergencia para comprobar como el manipulador se mueve por ella. una posible trayectoria seria un arco de circunferencia de radio igual a 5 m.

Page 5: Funciones Comandos en Matlab

Las órdenes que se muestran a continuación, se utilizan para calcular el valor que deben tener las variables articulares para cada punto del arco de circunferencia anteriormente mencionado:

Page 6: Funciones Comandos en Matlab
Page 7: Funciones Comandos en Matlab

>> clear all>> t1=0; t2=0; t3=0; % Estos valores de t1, t2 y t3 son irrelevantes>> l1=4; l2=3;>> % Se crea la matriz dh con los parámetros del manipulador>> dh = [0 0 t1 0 0; 0 l1 t2 0 0; 0 l2 t3 0 0];>> % Se establecen la tolerancia y el número máximo de iteraciones>> stol=1e-6; ilimit=1000;>> % Se introduce la trayectoria (arco de radio 5) y la orientación (0 grados) deseadas>> x=[0:0.2:5];>> y=sqrt(25-x.^2);>> phi=zeros(1,length(x));>> % Se crea la trayectoria de transformaciones>> for k=1:length(x) TG(:,:,k) = [cos(phi(k)) -sin(phi(k)) 0 x(k); sin(phi(k)) cos(phi(k)) 0 y(k); 0 0 1 0; 0 0 1 0; end>> % Se calcula el modelo inverso para cada uno de los puntos de la trayectoria usando un vector>> % inicial q0=[0 0 0] y una máscara [1 1 0 0 0 1]>> q=ikine(dh,stol,ilimit,TG,[0 0 0],[1 1 0 0 0 1])

q =

14.7807 -32.9867 18.2061 14.7407 -32.9867 18.2461 14.7006 -32.9867 18.2861 14.6604 -32.9867 18.3263 14.6200 -32.9867 18.3667 14.5793 -32.9867 18.4074 14.5383 -32.9867 18.4484 14.4969 -32.9867 18.4898 14.4549 -32.9867 18.5318 14.4124 -32.9867 18.5743 14.3692 -32.9867 18.6176 14.3251 -32.9867 18.6617 14.2800 -32.9867 18.7067 14.2338 -32.9867 18.7529 14.1863 -32.9867 18.8004 14.1372 -32.9867 18.8496 14.0862 -32.9867 18.9006 14.0329 -32.9867 18.9538

Page 8: Funciones Comandos en Matlab

13.9769 -32.9867 19.0099 13.9174 -32.9867 19.0694 13.8534 -32.9867 19.1334 13.7834 -32.9867 19.2033 13.7048 -32.9867 19.2819 13.6126 -32.9867 19.3741 13.4937 -32.9867 19.4931 13.2099 -32.9867 19.7769

>> % Se representa gráficamente el manipulador mientras recorre la trayectoria>> plotbot(dh,q,'lfdw')>>

>> clear all>> t1=0; t2=0; t3=0;>> I1=4; I2=3;>> dh = [0 0 t1 0 0; 0 I1 t2 0 0; 0 I2 t3 0 0];>> stol=1e-6; ilimit=1000;>> x=[0:0.2:5];>> y=sqrt(25-x.^2);>> phi=zeros(1,length(x));>> TG=[];>> for k=1:length(x) T=[cos(phi(k)) -sin(phi(k)) 0 x(k); sin(phi(k)) cos(phi(k)) 0 y(k); 0 0 1 0; 0 0 0 1]; TG=[TG;T(:)'];end

Page 9: Funciones Comandos en Matlab

CONCLUSIONES

Se identificaron los comandos utilizados en el programa Matlab para la

cinemática del robot.

Se identificaron las instrucciones que son utilizadas en los cálculos

relacionados con la dinámica de los brazos manipuladores.

Se aplican estos comandos para agilizar el aprendizaje de ellos en la

cinemática del robot.

Page 10: Funciones Comandos en Matlab

BIBLIOGRAFÍA

Modulo Robótica Avanzada” JAIRO PERTUZ CAMPO “ (Acreditador), Bo-gotá; Versión actualizada a 2009

Modelos Cinemáticas de Robots, extraído el 06 de Mayo de; http://www.marcombo.com/Descargas/8426713130-ROBOTICA/HEMERO/manualpdf/cap3.pdf

MATLAB + ROBOTICA, JAVIER ALEJANDRO JORGE extraído el 06 de Mayo de; http://www.geocities.ws/javierbrk/matlab-robotica.pdf

Page 11: Funciones Comandos en Matlab