MatLab - Robotics

download MatLab - Robotics

of 63

Transcript of MatLab - Robotics

  • 8/17/2019 MatLab - Robotics

    1/63

    DRA. SHLOMI NEREIDA CALDERÓN VALDEZ

  • 8/17/2019 MatLab - Robotics

    2/63

    Nombre Símbolo Grados de Libertad Superficie Común

    Rotacional R 1 Cilindro

    Prismática P 1 Prisma

    Helicoidal H 1 Tornillo

    Cilíndrica C 2 Cilindro

    Esférica S 3 Esfera

    Planar L 3 Plano

  • 8/17/2019 MatLab - Robotics

    3/63

    Las operaciones que podemos realizar con matrices y vectores son diversas . Las más comunes son:

    • Producto de una matriz por un vector

    >> y=A*x

    • Trasposición de un vector o de una matriz

    >> z=x'>> B=B'

    • Producto escalar de vectores

    >> z=x'*y

    • Producto elemento a elemento (Hadamar)

    >> z=x.*y

    • Determinante de una matriz

    >> det(A)

    • Inversa de una matriz

    >> inv(A)

  • 8/17/2019 MatLab - Robotics

    4/63

    • Estas matrices son utilizadas para describir la localización desólidos en un espacio n-dimensional, expresando las relacionesentre corderas cartesianas. La gran innovación que introdujeronestas matrices es que permiten representar en una única matriz

    la posición y la orientación del cuerpo

    R- matriz de rotaciónp- matriz de traslaciónf- matriz de perspectivaw- matriz de escaldoEs importante notar que el producto de estas matrices en general no esconmutativo

    3 3 3 1

    1 3 1 1

     x x

     x x

    R PT 

    f R

  • 8/17/2019 MatLab - Robotics

    5/63

    • Mediante las coordenadas homogéneas podemos representarde manera conjunta la posición y la orientación (localización).Partiendo de las coordenadas homogéneas, ingresamos alconcepto de matriz de transformación homogénea.

    • TRASLACION: Se trata de representar la posición y orientaciónde un sistema girado y trasladado O'UVW con respecto a unsistema fijo de referencia OXYZ.

  • 8/17/2019 MatLab - Robotics

    6/63

    • Un vector trasladado es de la forma =  + +. Lamatriz homogénea de traslación es:

    T(p)= [1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1], la cual se

    denomina matriz básica de traslación.

  • 8/17/2019 MatLab - Robotics

    7/63

    • Un vector cualquiera r, representado en el sistema O'UVW,tendrá como componentes del vector con respecto al sistemaOXYZ:

    [rx ry rz 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]*[ru rv rw1]'= [ru+px;rv+py;rw+pz+1] (1)

    Y a su vez, un vector rx, y, z desplazado según T tendrá comocomponentes r'x, y, z:

    [r'x r'y r'z 1]'=[1 0 0 px;0 1 0 py;0 0 1 pz;0 0 0 1]* [rx ry rz1]=[rx+px;ry+py;rz+pz;1] (2)

  • 8/17/2019 MatLab - Robotics

    8/63

    1. Según la figura, en el sistema O'UVW esta trasladado unvector p(6, 3,8) con respecto al sistema OXYZ. Calcular lascoordenadas (rx, ry, rz) del vector r cuyas coordenadas conrespecto al sistema O'UVW son ruvw (2, 7,3).

  • 8/17/2019 MatLab - Robotics

    9/63

    SOLUCIÓN

    >> Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];

    >> ruvw=[-2 7 3 1]';

    >> rxyz=Tp*ruvw

    rxyz =

    410

    11

    1

  • 8/17/2019 MatLab - Robotics

    10/63

    • Calcular el vector r'xyz resultante de trasladar al vectorrxyz(4,4,11)según la transformación T(p) con p(6,3,8)

  • 8/17/2019 MatLab - Robotics

    11/63

    >> Tp=[1 0 0 6;0 1 0 3; 0 0 1 8;0 0 0 1];

    >> rxyz=[4 4 11 1]';

    >> r1xyz=Tp*rxyz

    r1xyz =

    10

    719

    1

  • 8/17/2019 MatLab - Robotics

    12/63

    • En esta situación corresponde definir tres matrices homogéneasbásicas según se realice ésta de acuerdo a cada uno de lostres ejes coordenados OX, OY y OZ del sistema de referenciaOXYZ:

    % T(x,a)=[1 0 0 0;0 cosa -sena 0;0 sena cosa 0;0 0 0 1], (I)

    % T(y,b)=[cosb 0 senb 0;0 1 0 0;-senb 0 cosb 0;0 0 0 1], (II)

    % T(z,c)=[cosc -senc 0 0;senc cosc 0 0;0 0 1 0;0 0 0 1], (III)

  • 8/17/2019 MatLab - Robotics

    13/63

    • Un vector cualquiera r, representado en el sistema giradoO'UVW por ruvw, tendrá como componentes (rx, ry, rz) en elsistema OXYZ las siguientes:

    [rx ry rz 1]'=T[ru rv rw 1]' (IV)

    Y a su vez un vector rxyz rotado según T vendrá expresado

    por r'x,y,z según:

    [r'x r'y r'z 1]'=T[rx ry rz 1]' (V)

  • 8/17/2019 MatLab - Robotics

    14/63

    • La traslación y la rotación son transformaciones que se realizanen relación a un sistema de referencia

  • 8/17/2019 MatLab - Robotics

    15/63

    • Se trata de realizar primero una rotación sobre uno de los ejes delsistema OXYZ seguida de una traslación, las matrices homogéneasserán las que a continuación se expresan:

    • Rotación de un ángulo a sobre el eje OX seguido de una traslaciónde vector pxyz

    % T((x,a),p)= [1 0 0 px;0 cosa sena py;0 sena cosa pz;0 0 0 1] (VI)

    % T((y,b),p)= [cosb 0 senb px;0 1 0 py;senb 0 cosb pz;0 0 0 1] (VII)

    % T((z,c),p)= [cosc senc 0 px;senc cosc 0 py;0 0 1 pz;0 0 0 1] (VII)

  • 8/17/2019 MatLab - Robotics

    16/63

    • Según la figura adjunta, el sistema 0UVW se encuentra girado-90 grados alrededor del eje OZ con respecto al sistemaOXYZ. Calcular las coordenadas del vector rxyz siruvw=[4,8,12]'

  • 8/17/2019 MatLab - Robotics

    17/63

    • Procedemos a ingresar los valores inicialmente para construir lamatriz T(z,c), ecuación (III).

    Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1], y luego construimos lamatriz ruvw utilizando la información entregada [ru rv rw 1]'=ruvw=[4,8,12,1]'.

    Luego aplicamos [rx ry rz 1]'=T[ru rv rw 1]' , ecuacion (IV)

  • 8/17/2019 MatLab - Robotics

    18/63

    >> Tzc=[0 1 0 0;1 0 0 0;0 0 1 0;0 0 0 1]

    Tzc =

    0 1 0 0

    1 0 0 0

    0 0 1 0

    0 0 0 1

    >> ruvw=[4,8,12,1]'

    ruvw =

    4

    8

    12

    1>> rxyz=Tzc*ruvw

    rxyz =

    8

    4

    12

    1

  • 8/17/2019 MatLab - Robotics

    19/63

    >> t1=rotz(-pi/2)

    t1 =

    0.0000 1.0000 0 0

    -1.0000 0.0000 0 0

    0 0 1.0000 0

    0 0 0 1.0000>> ruvw=[4 8 12 1]'

    ruvw =

    4

    8

    12

    1

    >> rxyz=t1*ruvw

    rxyz =

    8.0000

    -4.0000

    12.0000

  • 8/17/2019 MatLab - Robotics

    20/63

    • Un sistema OUVW ha sido girado 90 grados alrededor del ejeOX y posteriormente trasladado un vector p(8,-4,12) conrespecto al sistema OXYZ (figura adjunta). Calcular lascoordenadas (rx,ry,rz) del vector r con coordenadas ruvw(-3,4,-

    11).

  • 8/17/2019 MatLab - Robotics

    21/63

    • Procedemos a ingresar los valores inicialmente para construir lamatriz T(z,c),ecuación (III).

    Procedemos a utilizar la ecuación [rx ry rz 1]'=T[ru rv rw 1]'ecuación (IV).

    • En donde, la matriz de transformación,

    T((x,a),p)= [1 0 0 px;0 cosa  – sena py;0 sena cosa pz;0 0 0 1](VI)

  • 8/17/2019 MatLab - Robotics

    22/63

    Queda así:

    Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1]

    Txa =

    1 0 0 80 0 1 4

    0 1 0 12

    0 0 0 1

    [ru rv rw 1]'= ruvw=[-3,4, -11,1]'% Ahora ya podemos aplicar [rx ry rz 1]'=T[ru rv rw 1]' ,ecuación (IV).

  • 8/17/2019 MatLab - Robotics

    23/63

    >> Txa=[1 0 0 8;0 0 -1 -4;0 1 0 12;0 0 0 1]

    Txa =

    1 0 0 8

    0 0 -1 -4

    0 1 0 12

    0 0 0 1

    >> ruvw=[-3,4, -11,1]'

    ruvw =

    -3

    4

    -11

    1>> rxyz=Txa*ruvw

    rxyz =

    5

    7

    16

    1

  • 8/17/2019 MatLab - Robotics

    24/63

    Se trata de realizar primero una traslación seguida de una rotación sobre losejes coordenados del sistema OXYZ. Las matrices homogéneas resultantes sonlas siguientes:

    Traslación del vector px, y, z seguida de rotación de un ángulo a sobre el ejeOX. T(p,(x,a))= [1 0 0 px; 0 cosa sena pycosa-pzsena; 0 sena cosapysena+pzcosa;0 0 0 1] (I)

    Traslación del vector px, y, z seguida de rotación de un ángulo b sobre el ejeOY. T(p,(y,b))= [cosb 0 senb pxcosb+pzsenb;0 1 0 py; senb 0 cosb

    pzcosb+pxsenb; 0 0 0 1] (II).

    Traslación del vector px, y, z seguida de rotación de un ángulo c sobre el ejeOZ. T(p,(z,c))=[cosc senc 0 pxcosc-pysenc;senc cosc 0 pxsenc+pycosc;0 0 1 pz;00 0 1] (III).

  • 8/17/2019 MatLab - Robotics

    25/63

    • Cuando en las componentes de un vector es posible larealización de un escalado, podemos aplicar las matriceshomogéneas. Para lograr esto, es suficiente emplear una matrizdel tipo: T=[a 0 0 0;0 b 0 0;0 0 c 0; 0 0 0 1].

    • El caso típico es transformar el vector r(x, y, z) en el vector r(ax, by, cz). Si se trata de hacer un escalado global de las trescomponentes, tenemos el recurso apropiado con la matriz T=[1

    0 0 0;0 1 0 0;0 0 1 0;0 0 0 s].

  • 8/17/2019 MatLab - Robotics

    26/63

    Para crear una traslación pura se utiliza la función “transl” >> transl(0.5, 0.0, 0.0)

    • Para crear una matriz de rotación se utiliza “rote” donde «e» es el

    eje de rotación, y el ángulo como siempre en mathlab, se indica enradianes, pudiéndose utilizar la constante pi.

    >> roty(pi/2)

    • Para crear una matriz de transformación homogénea de rotación:

    >> trotx(-pi/2)

    • Para crear una combinación de ellos simplemente se multiplican lasmatrices

    t = transl(0.5, 0.0, 0.0) * trotx(-pi/2)

  • 8/17/2019 MatLab - Robotics

    27/63

    tr = trotx(.2)*troty(.3)*transl(1,2,3)

    trplot(tr)

    11.5

    22.5

    3

    0.5

    1

    1.5

    2

    2.5

    2

    2.5

    3

    3.5

    4

    X

    X

    Z

    Y

    Y

           Z

  • 8/17/2019 MatLab - Robotics

    28/63

    • Un sistema OUVW ha sido trasladado un vector p(8,-12,-4) conrespecto al sistema OXYZ y girado 90 grados alrededor deleje OX (figura adjunta). Calcular las coordenadas (rx,ry,rz)delvector r de coordenadas ruvw (-3,4,11).

  • 8/17/2019 MatLab - Robotics

    29/63

    Procedemos a ingresar los valores inicialmente para construir lamatriz T(p,(x,a)), ecuación (I).

    Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1]

    Y luego construimos la matriz

    [ru rv rw 1]'= ruvw=[3,4, 11,1]'

    Ahora ya podemos aplicar[rx ry rz 1]'=T[ru rv rw 1]'

  • 8/17/2019 MatLab - Robotics

    30/63

    >> Tpxa=[1 0 0 8;0 0 -1 -12; 0 1 0 -4; 0 0 0 1]

    Tpxa =

    1 0 0 8

    0 0 -1 -12

    0 1 0 -4

    0 0 0 1

    >> Tpxa*ruvw

    ans =

    11

    -23

    0

    1

  • 8/17/2019 MatLab - Robotics

    31/63

  • 8/17/2019 MatLab - Robotics

    32/63

    • Se quiere obtener la matriz de transformación que representaal sistema O'UVW obtenido a partir del sistema OXYZmediante un giro de ángulo de -90 grados alrededor del ejeOX, de una traslación de vector p(x, y, z) , (5,5,10) y un giro de

    90 grados sobre el eje OZ.

  • 8/17/2019 MatLab - Robotics

    33/63

    >> Tp=[1 0 0 5;0 1 0 5;0 0 1 10;0 0 0 1]

    Tp =

    1 0 0 5

    0 1 0 5

    0 0 1 10

    0 0 0 1>> rotz(pi/2),rotx(-pi/2)

    ans =

    0.0000 -1.0000 0 0

    1.0000 0.0000 0 0

    0 0 1.0000 0

    0 0 0 1.0000

    ans =

    1.0000 0 0 0

    0 0.0000 1.0000 0

    0 -1.0000 0.0000 0

    0 0 0 1.0000

  • 8/17/2019 MatLab - Robotics

    34/63

    >> T=rotz(pi/2)*Tp*rotx(pi/2)

    T =

    0.0000 -0.0000 1.0000 -5.0000

    1.0000 0.0000 -0.0000 5.0000

    0 1.0000 0.0000 10.0000

    0 0 0 1.0000

  • 8/17/2019 MatLab - Robotics

    35/63

    T=r2t(rotz(pi/2))*transl(5,5,10)*r2t(rotx(-pi/2))

    T =

    0.0000 -0.0000 -1.0000 -5.00001.0000 0.0000 0.0000 5.0000

    0 -1.0000 0.0000 10.0000

    0 0 0 1.0000

  • 8/17/2019 MatLab - Robotics

    36/63

    Utilizando las funciones de la Toolbox de Matlab:

    1. Dar la matriz de transformación de una translación de 6unidades en el eje X, -3 unidades en el eje Y y 8 unidades en

    el eje Z.

    2. Dar la matriz de transformación de una rotación de 0º en X,0º en Y y  – 90º en Z.

    3. Dar la matriz de transformación de un sistema que se hadesplazado 6 unidades en X, ha rotado 45º en Y y -90º en Z

  • 8/17/2019 MatLab - Robotics

    37/63

    • El espacio de trabajo del robot debe ser cuidadosamenteestudiado para definir el volumen justo de trabajo del robot

    • En un robot de seis grados de libertad rotacional, las primerastres barras son las que aportan la mayor dinámica debido a supeso.

    • En un robot de seis grados de libertad, las tres primerasarticulaciones del robot deben dar las condiciones de posición ylas tres últimas articulaciones del extremo del robot debenconcentrar en un punto de la mano, los tres grados de libertadde orientación.

  • 8/17/2019 MatLab - Robotics

    38/63

    • El problema cinemático directo consiste en determinar laposición y orientación del final del extremo del robot a partirde las articulaciones y parámetros geométricos del robot.

  • 8/17/2019 MatLab - Robotics

    39/63

    1 1 2 1 2

    1 1 2 1 2

    cos cos x l l q q

    y l sen l sen q q

     

     

  • 8/17/2019 MatLab - Robotics

    40/63

     

    >> L1=1>> L2=1>> th1=0:(pi/2)/20:pi/2>> th2=0:(pi/2)/20:pi/2>> px=L1*cos(th1)+L2*cos(th1+th2)>> py=L1*sin(th1)+L2*sin(th1+th2)

    >> plot(px,py)

  • 8/17/2019 MatLab - Robotics

    41/63

    function valor_a_retornar=nombre_de_funcion(parametros,...)function p=pcd(L1,L2,th1,th2)

    px=L1*cos(th1)+L2*cos(th1+th2);

    py=L1*sin(th1)+L2*sin(th1+th2);

    p=[px; py]

    donde p es la variable que se retorna, y pcd es el nombre de lafunción seguido de los argumentos. La variable p contiene en la primerafila la secuencia de coordenadas X, y en la segunda las Y. La función

    debe escribirse en un fichero de texto separado cuyo nombre debe serel de la función seguido de la extensión .m (pcd.m).

    >> p=pcd(L1,L2,th1,th2);

    >> plot(p(1,:),p(2,:))

  • 8/17/2019 MatLab - Robotics

    42/63

    GRAFICA DE LA CONFIGURACIÓN ESPACIAL DEL ROBOT

    Se ha dibujado exclusivamente la trayectoria descrita por el EF,pero no el robot. Dada una configuración espacial (por ejemplo,

    θ1  = 30 , θ2  = 60), puede obtenerse un gráfico del robotmediante:

    >> th1=30*pi/180;

    >> th2=60*pi/180;>> p=pcd(L1,L2,th1,th2);

    >> robotgraph(L1,th1,p);

  • 8/17/2019 MatLab - Robotics

    43/63

    «robotgraph» será la función que dibuja el robot en pantalla. Para desarrollaresta funcion, debe tenerse en cuenta que el robot se compone de dos segmentoslineales: el primero entre los puntos (0;0) y (cos θ1; sin θ1), y el segundo entre esteúltimo punto y la posición del EF p = (px; py).

    Para trazar el robot, bastará con realizar un plot en el que las variables

    independiente y dependiente son dos vectores conteniendo las coordenadas X e Y,respectivamente, de los tres puntos mencionados.

    Una posible implementación de la función es la siguiente:

    function robotgraph (L1,th1,p)

    x=[0 L1*cos(th1) p(1)];y=[0 L1*sin(th1) p(2)];plot(x,y)axis([-2 2 -2 2]);El comando axis asegura que en sucesivos plots se conservan los rangos X e Y de lagrafica.

  • 8/17/2019 MatLab - Robotics

    44/63

  • 8/17/2019 MatLab - Robotics

    45/63

    • Eslabón 1:a1 = 350 mmd1= 460.5 mmα1 = 0 

    θ1 = θ1 {variable, rotación}•

    Eslabón 2:a2 = 250 mmd2= ‐85.5 mmα2= 0 

    θ2 = θ2 {variable, rotación}• Eslabón 3:

    a3 = 0 mmd3= d3 {variable, prismática}α3 = 0 

    θ3 = 0 

  • 8/17/2019 MatLab - Robotics

    46/63

    L1=link([0, 0.350, 0, 0.4605,0]);

    L2=link([0, 0.250, 0, ‐0.0855,0]);

    L3=link([0, 0, 0, 0,1]);

    srx=robot({L1 L2 L3});srx.name='SRX‐611';

    srx.manuf='Sony';

    plot(srx,[0 0 0]);

    -1-0.5

    00.5

    1

    -1

    -0.5

    0

    0.5

    1

    -1

    -0.5

    0

    0.5

    1

    XY

           Z

     SRX 611

    xy z

  • 8/17/2019 MatLab - Robotics

    47/63

     

    UNIÓN ai  alfai  di  tetai 

    1 1 0 0 q1 

    2 1 0 0 q2 

  • 8/17/2019 MatLab - Robotics

    48/63

    >> L{1}=link([0 1 0 0 0]);

    >> L{2}=link([0 1 0 0 0]);

    >> r=robot(L,'D2')

    r =

    D2 (2 axis, RR)

    grav = [0.00 0.00 9.81] standard D&H parameters

    alpha A theta DR/P

    0.000000 1.000000 0.000000 0.000000 R  (std)

    0.000000 1.000000 0.000000 0.000000 R  (std)

    >> plot(r, [0 0])

  • 8/17/2019 MatLab - Robotics

    49/63

    -2

    -1

    0

    1

    2

    -2

    -1

    0

    1

    2-2

    -1

    0

    1

    2

    XY

           Z

     D2

    xy z

  • 8/17/2019 MatLab - Robotics

    50/63

    • link especifica que la convención estándar de D&H será usada(ésta es por defecto)

    • Los parámetros de link deben suministrarse (el cual es diferenteal orden de las columnas de la tabla de arriba). El quintoargumento, sigma, es una bandera que indica si la unión esrotativa (sigma es cero) o prismática (sigma diferente de cero).

    • Los objetos de link se pasan como un arreglo a la funciónrobot() la cual crea un objeto robot el cual se pasa a muchasde las otras funciones de la caja de herramientas.

  • 8/17/2019 MatLab - Robotics

    51/63

  • 8/17/2019 MatLab - Robotics

    52/63

    UNIÓN Teta d a alfa

    1 q1 l1 0 0

    2 90 d2 0 90

    3 0 d3 0 0

    4 q4 l4 0 0

  • 8/17/2019 MatLab - Robotics

    53/63

  • 8/17/2019 MatLab - Robotics

    54/63

    • Una vez creado el robot se realiza la solución completa alproblema cinemático directo con la función fkine: Para unascoordenadas de las articulaciones de cero, tenemos:

    q1=[0 0 0 0];

    q2=[0 1 1 0];

    T1f=fkine(rob,q1);

    T2f=fkine(rob,q2); 

  • 8/17/2019 MatLab - Robotics

    55/63

  • 8/17/2019 MatLab - Robotics

    56/63

    • La función DENAVIT realiza los cálculos anteriores devolviendo la matriz detransformación homogénea

    % DENAVIT Matriz de transformación homogénea.% DH = DENAVIT(TETA, D, A, ALFA) devuelve la matriz de transformación% homogénea 4 x 4 a partir de los parámetros de Denavit-Hartenberg% D, ALFA, A y TETA.%% See also DIRECTKINEMATIC.

    function dh=denavit(teta, d, a, alfa)

    dh=[cos(teta) -cos(alfa)*sin(teta) sin(alfa)*sin(teta) a*cos(teta);sin(teta) cos(alfa)*cos(teta) -sin(alfa)*cos(teta) a*sin(teta);0 sin(alfa) cos(alfa) d;0 0 0 1];

  • 8/17/2019 MatLab - Robotics

    57/63

     

  • 8/17/2019 MatLab - Robotics

    58/63

    PARÁMETROS D - H

    UNIÓN Teta d a alfa

    1 q1 l1 0 0

    2 0 d2 -a2 -90

    3 0 d3 0 0

    4 q4 l4 0 0

  • 8/17/2019 MatLab - Robotics

    59/63

    • Código fuente de la función DIRECTKINEMATIC para el robotcilíndrico de 4 grados de libertad.

    • Debe notarse que el vector de coordenadas articulares Qrepresenta los 4 grados de libertad del robot, 2 rotacionales y2 prismáticas y se introduce en los parámetros D-H comovariables.

  • 8/17/2019 MatLab - Robotics

    60/63

    % DIRECTKINEMATIC4 Direct Kinematic.% A04 = DIRECTKINEMATIC4(Q) devuelve la matriz de transformación del

    % primer sistema de coordenadas al último en función del vector Q

    % de variables articulares.

    function A04 = directkinematic4(q)

    % Parámetros Denavit-Hartenberg del robot

    teta = [q(1) 0 0 q(4)];d = [0.4 q(2) q(3) 0.2 ];

    a = [0 -0.1 0 0 ];

    alfa = [0 -pi/2 0 0 ];

    % Matrices de transformación homogénea entre sistemas de coordenadas consecutivos

    A01 = 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));

    % Matriz de transformación del primer al último sistema de coordenadas

    A04 = A01 * A12 * A23 * A34;

  • 8/17/2019 MatLab - Robotics

    61/63

     

  • 8/17/2019 MatLab - Robotics

    62/63

    PARÁMETROS D - H

    UNIÓN Teta d a alfa

    1 q1+90 l1 0 -90

    2 q2-90 0 a2 0

    3 q3+180 0 0 90

    4 q4 l4 0 -90

    5 q5 0 0 90

    6 q6 l6 0 0

  • 8/17/2019 MatLab - Robotics

    63/63

    % DIRECTKINEMATIC6 Direct Kinematic.% A06 = DIRECTKINEMATIC6(Q) devuelve la matriz de transformación del primer sistema de coordenadas alúltimo en función del vector Q de variables articulares.

    function A06 = directkinematic6(q)

    % Parámetros Denavit-Hartenberg del robot

    teta = q;

    d = [0.315 0 0 0.5 0 0.08];a = [0 0.45 0 0 0 0];

    alfa = [-pi/2 0 pi/2 -pi/2 pi/2 0];

    % Matrices de transformación homogénea entre sistemas de coordenadas consecutivos

    A01 = 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

    A06 = A01 * A12 * A23 * A34 * A45 * A56;