11
Robot Angular Con Matlab Luis Alfredo Moctezuma

Robot angular en matlab

Embed Size (px)

Citation preview

Page 1: Robot angular en matlab

Robot AngularCon Matlab

Luis Alfredo Moctezuma

Page 2: Robot angular en matlab

Introducción

● Este ejemplo de la construcción de un robot angular no considera conocimientos básicos sobre morfologías, matrices etc. Solo hace uso de ellas considerando que quien las sigue ya tiene estos conocimientos.

Page 3: Robot angular en matlab

● Diseñar una forma con varios botones en matlab ejecutando el comando >guide en la terminal. Debe quedar algo parecido a la siguiente imagen

Page 4: Robot angular en matlab

● Lo primero que se debe hacer es localizar la función “_OpeningFcn” del proyecto y agregar el siguiente código

handles.output = hObject;

global alfa beta theta;

alfa=0; beta=0; theta=0;

dibuja;

set(gcf,'toolbar','figure')

guidata(hObject, handles);

Page 5: Robot angular en matlab

● En el callback de cada botón:

● El botón “<<” para el ángulo alfa debe disminuir en ciertos grados, por ejemplo:

– global alfa; alfa=alfa-5; dibuja;

● El botón “>>” para el ángulo alfa debe aumentar en ciertos grados, por ejemplo:

– global alfa; alfa=alfa+5; dibuja;

● Este mismo procedimiento se debe hacer para el ángulo beta y theta.

Page 6: Robot angular en matlab

● En este ejemplo solo se actualizan los valores de los angulos y luego se llama a la clase “dibuja”.

● De aqui en adelante el código que se use debe ir dentro de el script “dibuja”

Page 7: Robot angular en matlab

● Primero se deben tener las variables de los angulos

global alfa beta theta;

● Luego se deben declarar las matrices de rotación para cada uno de los ángulos

Rotx=

1 0 0 00 cosd (alfa) −sind (alfa) 00 sind (alfa) cosd (alfa) 00 0 0 1

Roty=

cosd(beta) 0 sind (beta) 00 1 0 0

sind (beta) 0 cosd (beta) 00 0 0 1

Rotz=

cosd(theta) −sind (theta) 0 0sind (theta) cosd( theta) 0 0

0 0 1 00 0 0 1

Page 8: Robot angular en matlab

● Luego las matrices de rotación necesarias

● Esto significa que el primer eslabón del manipulador mide 5 , el segundo 3 y el último eslabón 5. Se pueden representar de muchas maneras, por ejemplo como uun vector columna, sin embargo como se muestra a continuación; si se representan como matrices se disminuye la complejidad de las multiplicaciones y es más fácil de interpretar.

trasP1=

1 0 0 00 1 0 00 0 1 50 0 0 1

trasP2=

1 0 0 00 1 0 00 0 1 30 0 0 1

trasP3=

1 0 0 00 1 0 00 0 1 50 0 0 1

Page 9: Robot angular en matlab

p1=Rotz*trasP1;

p2=p1*Roty*trasP2;

p3=p2*Rotx*trasP3;

● Ahora se deben seguir las multiplicaciones de las matrices de rotación de acuerdo a la cinemática y morfología del robot angular.

– El primer eslabón rota theta grados en z;

– El segundo eslabón rota beta grados en y, pero tambien está afectado por lo que haya rotado los eslabones que lo preceden en la cadena cinemática.

– El tercero rota alfa grados en x y tambien está afectado por las rotaciones anteriores.

Page 10: Robot angular en matlab

● Por último se debe gráficar.

hold of

plot3(p1(1,4),p1(2,4),p1(3,4),'ro')

line([0 p1(1,4)],[0 p1(2,4)],[0 p1(3,4)],'color','r','LineWidth',10)

line([p1(1,4) p2(1,4)],[p1(2,4) p2(2,4)],[p1(3,4) p2(3,4)],'color','b','LineWidth',5)

line([p2(1,4) p3(1,4)],[p2(2,4) p3(2,4)],[p2(3,4) p3(3,4)],'color','r','LineWidth',7)

axis([-15 15 -15 15 0 15]),grid on, xlabel('x'),ylabel('y'),zlabel('z')

● El origen de este robot de morfología angular se consideró el origen [0,0,0], sin embargo este puede ser modificado facilmente. Además cualquier otra configuración puede cambiarse fácilmente solo modificando el orden de las multiplicaciones de las matrices.

● En este ejemplo, las restricciónes necesarias para cada caso deben ser agregadas y falta agregar la cinemática inversa.

Page 11: Robot angular en matlab

● Si aún después de esto hay dudas, pueden consultar el ejemplo de esta pequeña presentación en:https://github.com/luisalfredomoctezuma/rAngularMatlab