Sei sulla pagina 1di 21

Gua de laboratorio 1-Sistemas de control III

(Entrega jueves 31 de Agosto)


VISTA PREVIA

Investigar la morfologa de los robots

Comprender los tipos de articulacin y los grados de libertad

MARCO TERICO

Estructura de Robots Manipuladores

Ollero [1] plantea que los robots manipuladores son esencialmente brazos articulados. Un
manipulador industrial convencional es una cadena cinemtica abierta formada por un conjunto de
eslabones o elementos de la cadena interrelacionados mediante articulaciones o pares cinemticos.
Las articulaciones permiten el movimiento relativo entre los sucesivos eslabones.

Tipos de articulaciones

La articulacin de rotacin suministra un grado de libertad consistente en una rotacin alrededor del
eje de la articulacin. La articulacin prismtica brinda un grado de libertad en una traslacin a lo
largo del eje de la articulacin. La articulacin cilndrica existen dos grados de libertad: una rotacin
y una traslacin. La articulacin planar est caracterizada por el movimiento de desplazamiento en
un plano con dos grados de libertad. Por ltimo, la articulacin esfrica combina tres giros en tres
direcciones perpendiculares en el espacio.

Guide de Matlab

En Matlab se pueden crear interfaces grficas con la herramienta Guide. Al usar Guide se obtienen
dos archivos:
- Archivo .fig que contiene la descripcin de los componentes que contiene la interfaz
- Un archivo .m que contiene las funciones y los controles de la interfaz as como el callback

Para crear una interfaz grfica se ejecuta el men principal File -> New -> GUI (Ver figura 1)

Figura 1. Creacin de un GUIDE

All seleccione Blank GUI(Default) y de clic en OK. Se crear el entorno de trabajo que se presenta
en la Figura 2.
Figura 2. Entorno de trabajo del GUIDE

En el entorno de trabajo se encuentran dos barras de herramientas hacia la izquierda se ubican


aquellas que permiten personalizar la interfaz grfica. En la tabla 1 se presenta la descripcin de
cada elemento.

Tabla 1. Descripcin de los elementos del GUI


Smbolo Elemento
Select. Permite seleccionar un elemento para moverlo manualmente a una
nueva posicin.
Push Button. Crea un botn que al dar clic con el puntero del ratn sobre l crea
una accin.
Slider. Barra deslizante para representar un valor. El usuario mueve la barra
presionando el botn del mouse y arrastrndola. La posicin de la barra indica
un valor numrico.
Radio Button. Crea un botn circular

Check Box. Indica el estado de una opcin o atributo

Edit Text. Texto editable. Permite al usuario teclear una cadena de entrada.

Static Text. Crea un string de texto en una caja. Puede mostrar smbolos,
mensajes o incluso valores numricos.
Pop-up Menu. Muestra un men desplegable.

Listbox. Cajas de lista. Muestra una lista de artculos y permite al usuario


seleccionar uno o ms artculos.
Toggle Button. Crea un botn que al dar clic se selecciona el estado on y si se
vuelve a oprimir se selecciona el estado off
Table. Crea una tabla

Axes. Crea una rea para grficas


Panel. Agrupa botones y los muestra con un ttulo que los unifica

Button Group. Permite exclusividad de seleccin con los radio button

ActiveX Control. Permite crear un control tipo activex para objetos, grficos,
entre otros.

Cada uno de los elementos del GUI tiene un conjunto de opciones que podemos acceder con doble
clic sobre l. Las opciones se encuentran en el inspector:uicontrol de cada elemento. (Ver figura 3)

Figura 3. Inspector: uicontrol

Al hacer clic derecho en el elemento ubicado en el rea de diseo, una de las opciones ms
importantes es View Callbacks, la cual, al ejecutarla, abre el archivo .m asociado a nuestro diseo y
nos posiciona en la parte del programa que corresponde a la subrutina que se ejecutar cuando se
realice una determinada accin sobre el elemento que estamos editando.

Por ejemplo, al ejecutar View Callbacks>>Callbacks en el Slider, nos ubicaremos en la parte del
programa:

function slider1_Callback(hObject, eventdata, handles)


% hObject handle to slider1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

Ejemplo para crear un texto esttico

Una vez creado el entorno de trabajo arrastre el smbolo y sitelo en la ubicacin deseada.
Para cambiar el texto de doble clic sobre l para que emerja el inspector de propiedades uicontrol.
En la tabla 2 se presentan las principales propiedades y la accin que permite realizar cada una.

Tabla 2. Propiedades del inspector


Propiedad Accin
BackgroundColor Cambia el color de fondo
FontAngle Cambia el texto a cursiva (oblique o italic)
FontSize Cambia el tamao del texto
FontWeight Cambia el texto a negrilla (bold)
ForegroundColor Cambia el color del texto
HorizontalAlignment Centrar el texto (center)
A la derecha (right)
A la izquierda (left)
String Cambiar el texto por el introducido por el
usuario

En el siguiente ejemplo el texto introducido es EJEMPLO, se modific el color a violeta, se coloc


el tamao a 12, en negrilla y color de fondo azul. El inspector se observa en la figura 4 y el
resultado en la figura 5.

Figura 4. Inspector uicontrol de text1


Figura 5. Texto esttico

Ejemplo para crear un botn y que se visualice un texto esttico

Una vez creado el entorno de trabajo arrastre los smbolos y . Sitelos en la ubicacin
deseada. Vaya al inspector de propiedades uicontrol del Push Button y cambie el nombre del botn
por Botn prueba. Enseguida de clic derecho y seleccione View Callbacks y ah vaya al cdigo
Callbacks se abrir el archivo .m y lo ubicar en la funcin Callback del botn all digite el siguiente
texto:

texto='Hola mundo' %carga el texto en la variable texto


set(handles.text2,'string',texto) %Escribe el texto en text2

En esta funcin al oprimir el botn asigna un texto con la funcin set en un texto esttico que este
caso corresponde al text2 porque ya se haba creado un primer texto esttico en el primer ejemplo.
El nombre puede cambiarse en la propiedad Tag del texto esttico. Los nombres que escriba en las
funciones siempre deben corresponder a los asignados en el Tag de cada elemento.

Al dar clic sobre el smbolo de la barra de herramientas superior, corre la interfaz grfica y
puede observar el resultado como se muestra en la figura 6.

Figura 6. Valor del botn visualizado en el texto esttico

Ejemplo para mostrar un grfico en un campo Axes al oprimir un botn

En el entorno de trabajo arrastre los smbolos y a la posicin deseada. En la funcin


Callback del Push Botton copie el siguiente cdigo. La respuesta al ejecutar el programa se presenta
en la figura 7.

function pushbutton1_Callback(hObject, eventdata, handles)


% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

h = plot3(0,0,0)
p = get(h,'Parent')
hold on
xlim(p,'manual');
xlim(p,[-1 1]) %Define el lmite del eje x que se observar en la grfica
ylim(p,'manual');
ylim(p,[-1 1])%Define el lmite del eje y que se observar en la grfica
zlim(p,'manual');
zlim(p,[-1 1])%Define el lmite del eje z que se observar en la grfica
axis vis3d
grid on
rotate3d
r=0.5
t=linspace(0,2*pi,50); %Crea un vector de tiempo
x=r*sin(t) %crea vector en x
y=r*cos(t) %crea vector en y
z=zeros(1,50) %crea vector en z
fill3(x,y,z,'r'); %Crea un crculo en el plano xy
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')

Figura 7. Grafico al oprimir un botn

Superficies en el espacio

En Matlab vienen programados algunos comandos para generar superficies


sphere (n) en donde n es el nmero de puntos en los que queda dividido el ecuador de la esfera.
cylinder(R,n) genera un cilindro de revolucin de radio R, donde n es el nmero de puntos de la
circunferencia de la base del cilindro. El cilindro que se dibuja est ubicado en el punto 0,0,0.

Para modificar el origen de ubicacin de los comandos se puede definir una matriz [x,y,z] que permite
definir el punto de origen (x0,y0,z0) , el radio r y la altura h (para el caso del cilindro). Para esto los
ejes se encuentran parametrizados de la siguiente manera:

x=x0+rx
y=y0+ry
z=z0+hz Este comando aplica para el cilindro
z=z0+rz Este comando aplica para la esfera

Grficas en Matlab

Comandos para graficar


plot(x,y) dibuja el vector x en relacin al vector y
semilogx(x,y) realiza un diagrama con eje x log10 y eje y lineal
semilogy(x,y) realiza un diagrama con eje x lineal y eje y log 10
loglog(x,y) realiza un diagrama con los dos ejes log10
plot3(x,y,z) genera una grfica en las variables x,y,z.
area() similar plot(), pero rellenando en ordenadas de 0 a y.
grid agrega rejilla en el grfico
patch se emplea para dibujar polgonos en dos o tres dimensiones, que pueden estar rellenos de un
color constante o variable
mesh(x,y,z)
rotate3d permite girar la superficie con el ratn
colormap permite cambiar el color prefijado

[X,Y]=meshgrid(x,y) Crea una malla a partir de vectores


Grfica de la malla construida sobre la superficie Z(X,Y):mesh(X,Y,Z), meshc(X,Y,Z) dibuja
adems lneas de nivel en el plano z=0
surf(X,Y,Z), surfc(X,Y,Z) grafica la superficie z(x,y)
pcolor(Z) dibuja proyeccin con sombras de color sobre el plano (la gama de colores est en
consonancia con las variaciones de Z)
contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las lneas de nivel de una superficie para los
valores dados en v. Para etiquetar las lneas, primero cs=contour (Z) para saber los valores del
contorno y luego clabel(cs) o directamente clabel (cs,v)
xlim(p,[x0,x1]) define el lmite en el que se graficar el eje x desde x0 hasta x1
ylim(p,[y0,y1]) define el lmite en el que se graficar el eje y desde y0 hasta y1
zlim(p,[z0,z1])define el lmite en el que se graficar el eje z desde z0 hasta z1
rotate3d rota la figura de manera interactiva utilizando el ratn sobre la figura
hold on Mantiene en la ventana grfica los dibujos anteriores
hold off Deja de mantener los dibujos anteriores en la figura
alpha(c) donde c es un nmero perteneciente a (0; 1) (se consigue mayor transparencia en la grfica
tomando c ms cercano a 0).

Funciones para aadir ttulos a la grfica


title(titulo) aade un ttulo al dibujo.
xlabel(texto) aade una etiqueta al eje de abscisas. Con xlabel off desaparece. Lo mismo
ylabel(texto) o zlabel(texto)
text(x,y,texto) introduce texto en el lugar especificado por las coordenadas x e y. Si x e y son
vectores, el texto se repite por cada par de elementos.

Tipos de lneas
line ([x0,x1],[y0,y1],[z0,z1],linestyle,S,color,S,LineWidth,#) define una lnea que va desde
el punto (x0,y0,z0) hasta el punto (x1,y1,z1) LineWidth permite definir el tamao de la lnea y se
debe colocar el tamao deseado reemplazado en donde est el smbolo de #. Con el comando
linestyle se puede seleccionar el estilo y con color el color de la lnea. Para esto se debe utilizar
los caracteres definidos a continuacin:

plot(X,Y, 'S'), en donde S corresponde a los siguientes caracteres:

Carcter Color
y Amarillo
m Magenta
c Cyan
r Rojo
g Verde
b Azul
w Blanco
k Negro
none Transparente
Carcter Formato
. Punto
o Crculo
x Marca x
+ Ms
- Slido
* Estrella
: Puntos
-. Guin y punto
-- Guiones

Comando Patch en Matlab

El comando patch(X,Y,Z,C) crea un polgono con coordenadas en 3 dimensiones. El polgono tiene


vrtices y cada uno tiene unas coordenadas en x,y,z. Dentro del comando deben colocarse las
respectivas coordenadas de X de cada vrtice dentro de un vector y de la misma manera se realiza
con Y y Z. El comando C corresponde al color deseado del polgono.

Ejemplo para crear una cara rectangular sobre el plano xy con el comando Patch

h = plot3(0,0,0)
p = get(h,'Parent')
hold on
xlim(p,'manual');
xlim(p,[-2 2]) %Define el lmite del eje x que se observar en la grfica
ylim(p,'manual');
ylim(p,[-2 2])%Define el lmite del eje y que se observar en la grfica
zlim(p,'manual');
zlim(p,[-2 2])%Define el lmite del eje z que se observar en la grfica
axis vis3d
grid on
rotate3d
patch([0 0 1 1],[0 0.5 0.5 0],[1 1 1 1],'g')
xlabel('Eje x')
ylabel('Eje y')
zlabel('Eje z')

Figura 8. Ejemplo comando patch

Posicin y orientacin en el plano

Suponiendo un sistema de coordenadas de referencia fijo al que se designar como sistema {A}. La
posicin con respecto a este sistema se representar mediante un vector de posicin AP (Ver figura
9), cuyas componentes se presentan en la ecuacin 1.
YA
(A)

Py

XA Px

Figura 9. Vector de coordenadas en el plano. Fuente propia


=[ ] (1)

Este sistema tiene como vectores unitarios ,

Considerando otro sistema de coordenadas con vectores unitarios , (ver figura 10). La direccin
del vector forma un ngulo con el vector .

(B)
YB
YA
(A)
XB

XA
Figura 10. Localizacin de un objeto en posicin y orientacin. Fuente propia

Si se expresan los vectores unitarios del sistema {B} en el {A} se escribir


. Estos vectores
se presentan en la ecuacin 2, que se conoce como matriz de rotacin.

11 12

= [
]=[ ] = [ 22 ] = [ ] (2)
21

Suponiendo que el sistema {B} tiene sus vectores de direccin coincidentes con los del {A} (ver figura
11). Por lo tanto, las coordenadas de un punto cualquiera del plano en los dos sistemas estn
relacionados mediante la ecuacin 3. Estas componentes de los vectores pueden sumarse por estar
estos vectores en la misma direccin y corresponden a la transformacin de traslacin del sistema
de coordenadas.
(B)
YB
YA
(A)
XB

XA
Figura 11. Cambio de sistemas de referencia en el espacio. Fuente propia


= +


= +


= [
]

Suponiendo que el sistema {B} coincide con el origen de {A} pero la orientacin es diferente (ver
figura 12). En este caso las coordenadas expresadas en el sistema {A} en funcin de as de {B} estn
dadas por la ecuacin 4.

(A)
YA
XB

(B)
YB

XA
Figura 12. Rotacin del sistema de coordenadas. Fuente propia


=

=

La ecuacin 4 puede escribirse como se muestra en la ecuacin 5.





= = [ ]

Posicin y orientacin en el espacio


En robtica resulta imprescindible poder representar posiciones y orientaciones en el espacio. Sea

el vector de posicin en un sistema {A} (Ver figura 13), el cual se describe por la ecuacin 6.

(A)

ZA

YA
XA

Figura 13. Posicin en el espacio. Fuente propia



= [ ] (6)

En donde px,py y pz son las coordenadas.

La orientacin de un cuerpo se describe mediante el sistema de coordenadas {B}. Para representar


{B} con respecto a {A} entonces se escribir . La matriz de rotacin sera 7.

11 12 13

{ } = [ ] = [ ] = [21 22 23 ] (7)
31 32 33

La localizacin (posicin y orientacin) en el espacio se determina mediante cuatro vectores de tres


elementos, formando tres de ellos la matriz de rotacin del sistema {B} que se mueve solidario al
slido rgido con respecto a un sistema de referencia {A}, y el cuarto la posicin del origen
del sistema {B} solidario al cuerpo expresada en el sistema de referencia {A} (ver figura 14).

(B)

(A)

ZA

YA
XA

Figura 14. Cambio de sistemas de referencia en el espacio. Fuente propia



= +

La rotacin puede expresarse mediante




= 1 = = [ ] =
[ ] (8)

(B)

ZB
(A)

ZA YB
XB

YA
XA

Figura 15. Cambio de sistemas de referencia en el espacio. Fuente propia

Suponiendo que los orgenes de {A} y {B} son coincidentes, puede escribirse como aparece en la
ecuacin 9.


= (9)

Rotacin en el espacio

La matriz de rotacin define la orientacin de un sistema con respecto a otro sistema de referencia.
Esta matriz recibe el nombre de matriz de cosenos directores y es ortonormal, es decir que la inversa
es igual a la traspuesta.

= [ ] = + +

= [ ] = + +



[ ] = [ ]


= [ ] (10)

Rotacin en el eje x
Figura 16. Rotacin en el eje x. Fuente propia

1 0 0
(, ) = [0 ] (11)
0

Rotacin en el eje y

Figura 17. Rotacin en el eje y. Fuente propia

0
(, ) = [ 0 1 0 ] (12)
0

Rotacin en el eje z
Figura 18. Rotacin en el eje z. Fuente propia

0
(, ) = [ 0] (13)
0 0 1

Para representar varias rotaciones se premultiplican las matrices de derecha a izquierda en el orden
que se realicen las rotaciones. El producto de las matrices no es conmutativo

Ejemplo:

Representar una matriz de rotacin en donde se realice una rotacin con un ngulo en el eje x,
luego una rotacin con un ngulo sobre el eje z y finalmente una rotacin con un ngulo en el
eje y.

0 0 1 0 0
= (, )(, )(, ) = [ 0 1 0 ] [ 0] [0 ] (14)
0 0 0 1 0

+
= [ ] (15)
+

Matrices de transformacin homognea

La representacin mediante coordenadas homogneas de la localizacin de slidos en un espacio


n-dimensional se realiza a travs de coordenadas de un espacio (n+1)- dimensional. Es decir, un
espacio n-dimensional se encuentra representado en coordenadas homogneas por (n+1)
dimensiones, de tal forma que un vector p(x,y,z) vendr representado por p(wx,wy,wz,w) donde w
tiene un valor arbitrario y representa un factor de escala. Un vector p=ai+bj+ck donde i,j, y k son los
vectores unitarios de los ejes OX,OY y OZ del sistema de referencia OXYZ se representa en
coordenadas homogneas mediante el vector columna.


=[ ]=[ ]=[ ]

1

Los vectores nulos se representan como [0,0,0,n]T

Donde n es no-nulo. Los vectores de la forma [1,b,c,0]T sirven para representar direcciones, pues
representan vectores de longitud infinita.

La matriz de transformacin homognea T es una matriz de dimensin 4x4 que representa la


transformacin de un vector de coordenadas homogneas de un sistema de coordenadas a otro.


(33) (31)
= [ ]=[ ]
(13) (11)

Considerando la perspectiva nula y el escalado global unitario, la matriz T resulta de la siguiente


forma:

(31)
= [ (33) ]=[ ]
000 1 0 1

Traslacin

En el sistema OUVW si el vector P=pxi+pyj+pzk con respecto al sistema OXYZ. La matriz T ser una
matriz homognea de traslacin

1 0 0
0
() = [0 1 ]
0 0 1
0 0 0 1

1 0 0 +
0 +
[ ] = [0 1 ][ ] = [ ]
0 0 1 +
1 0 0 0 1 1 1

Transformacin homognea compuesta


En la posicin inicial, el marco B en movimiento y el marco fijo A son coincidentes. Por lo tanto T =
1 es una matriz de identidad. Rotacin y traslacin alrededor de los ejes de coordenadas de un
marco fijo son los resultados de una premultiplicacin de las dos matrices. Rotacin y traslacin
alrededor de los ejes de coordenadas de un marco que se mueve son los resultados de una
postmultiplicacin de las dos matrices

Matrices en Matlab

Definir una matriz


A=[1 5 3; 4 3 2;3 2 7] %Definir la matriz. Para las columnas se utiliza el espacio en blanco como
separador y el punto y coma para las filas.

En Matlab se pueden ingresar valores de manera simblica de tal manera que el cdigo se escriba
de manera general y luego puedan reemplazarse los valores simblicos por numricos. Para dejar
un valor como simblico se definen al inicio del cdigo con el comando syms y luego los nombres
de los valores que se dejarn simblicos.

Operaciones con matrices

A' % Traspuesta de una matriz


inv(A) %Inversa de una matriz
trace (A) % Traza de una matriz
rank (A) % Rango de una matriz
det(A) % Determinante de una matriz

Funciones de Matlab para matrices

sum(v) suma los elementos de un vector


prod(v) producto de los elementos de un vector
dot(v,w) producto escalar de vectores
cross(v,w) producto vectorial de vectores
mean(v) hace la media
diff(v) vector cuyos elementos son la resta de los elementos de v
[y,k]=max(v) valor mximo de las componentes de un vector (k indica la posicin), min (v) valor
mnimo. El valor mximo de una matriz M se obtendra como max(max(M)) y el mnimo
min(min(M))
[n,m]=size(M) te da el nmero de filas y columnas
Matriz inversa: B=inv(M), rango: rank(M)
diag(M): Obtencin de la diagonal de una matriz
sum(diag(M)) calcula la traza de la matriz A
diag(M,k) busca la k-sima diagonal
norm(M) norma de una matriz (mximo de los valores absolutos de los elementos de A
flipud (M) reordena la matriz, haciendo la simtrica respecto de un eje horizontal
fliplr(M) reordena la matriz, haciendo la simtrica respecto de un eje vertical
[V, landa]=eig(M) da una matriz diagonal landa con los autovalores y otra V cuyas columnas son
los autovectores de M

Matrices especiales

A=ones(3) %Matriz 3x3 iniciada con unos


A=ones(3,5) %martiz 3x5 iniciada con unos
A=zeros(4,5) %matriz 4x5 iniciada con ceros
A=eye(5) %matriz identidad 5x5

Linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2


logspace(d1,d2,n) genera un vector con n valores espaciados logartmicamente entre 10^d1 y
10^d2. Si d2 es pi1, los puntos se generan entre 10^d1 y pi
rand(3) forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin uniforme, de tamao
(3x3)
magic(4) crea una matriz (4x4) con los nmeros 1, 2, ... 4*4, con la propiedad de que todas las
filas y columnas suman lo mismo

Productos matriciales y escalares:

y=A*x % producto del vector x con la matriz A


z=x'*y % producto escalar de la traspuesta de x por y
w=x.*y % producto del vector x y del vector y

Extraer submatrices o elementos de una matriz:


Estructura
Matriz(fila,columna)

A(1) % extrae el elemento de la matriz A de la fila 1 y columna 1


A(1,2) % extrae el elemento de la matriz A de la fila 1 y columna 2
A(2:3,1:2) %extrae una submatriz que encierra las filas desde 2 hasta 3 y las columnas desde 1
hasta 2
A(2:3,:) %obtiene una submatriz que incluye las dos ltimas filas (todas las columnas)
A(:,1) %extrae la primera columna

Programacin:
Se pueden construir vectores matrices mediante programacin

Estructura para generar un vector


Vector=[valor_inicial:incremento:valor_final]

B=1:2:13 %Genera un vector B con una secuencia de nmeros que comienza en 1


incrementndose en 2 hasta llegar a 13.

Funciones set() y get()

Matlab dispone de las funciones set y get para consultar y cambiar el valor de las propiedades de un
objeto. Las propiedades de un objeto pueden ser cambiadas o modificadas (salvo que sean readonly)
con el comando set (id,propiedad,valor). Por ejemplo:

li2= line([0,0],[0,0],[0,10],'Color','k') %crea una lnea de color negro


set(li2,'color','r') % cambia el color de la lnea a color rojo.

Ejemplo para mostrar un grfico en un campo Axes y cambiar un parmetro de entrada a


travs del slider.

En el entorno de trabajo arrastre el smbolo a la posicin deseada. En la funcin Callback del


Slider1 creado en el ejemplo anterior copie el cdigo presentado como ejemplo en la gua 4 del
laboratorio. Y coloque como lmite del ngulo el valor recibido en el Slider. El cdigo debe quedar
como se presenta a continuacin. La respuesta al ejecutar el programa se presenta en la figura 7.

function slider1_Callback(hObject, eventdata, handles)


% hObject handle to slider1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'Value') returns position of slider


% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
valor=get(hObject,'value') %carga el dato ingresado en la variable valor
set(handles.text2,'string',valor) %Escribe el valor en text2
h = plot3(0,0,0)
axis vis3d
grid on

punto0.x = 0
punto0.y = 0
punto0.z = 0
punto1.x = 0
punto1.y = 0
punto1.z = 1

eslabon1=
line([punto0.x,punto1.x],[punto0.y,punto1.y],[punto0.z,punto1.z],'Color','b','LineWidth',
4); %Dibujar eslabn
pause(0.5);

for theta1 =0:1:valor %Cambio el ngulo theta desde 0 hasta el valor ingresado en el
Slider con un intervalo de 1
[punto0,punto1] = punto(theta1)

set(eslabon1,'ZData',[punto0.z,punto1.z],'YData',[punto0.y,punto1.y],'XData',[punto0.x,pu
nto1.x]) %Redibujar el eslabn
hold on;
plot3(punto1.x,punto1.y,punto1.z,'or'); %Dibujar la trayectoria color rojo formato o
pause(0.1);
end

hold off %apago hold on para que cuando ingrese un nuevo valor en el slider borre la
grfica y trace una nueva

Figura 19. Grfico en un axes modificado por un slider

Ejemplo para capturar un dato desde un edit, almacenarlo en una variable y crear una funcin
para pasar el valor del edit

Para crear una funcin dentro del programa vaya al final del cdigo y all coloque la palabra
reservada function y el nombre que usted desee. Si el objetivo de la funcin es recibir algn
parmetro capturado desde la interfaz (slider o edit), usted debe colocar dentro de un parntesis
handles que es el identificador de los datos recibidos. El cdigo debe quedar similar al siguiente:

function movimiento(handles)

Este ejemplo ilustra como recibir un dato desde un edit y enviarlo a la funcin movimiento creada
anteriormente para luego almacenarlo en una variable. En el entorno de trabajo arrastre el smbolo

a la posicin deseada. En la funcin Callback del Edit1 ingrese el siguiente cdigo:


valor=get(hObject,'String') %carga el dato ingresado en la variable valor
movimiento(handles) %llama la funcin movimiento y enva a travs de handles el
dato.

En la funcin movimiento debe incluir el siguiente cdigo para recibir el dato enviado desde el
Callback del Edit1:

function movimiento(handles)
Valor1=str2double(get(handles.edit1,'String'))%Recibe el dato del edit1, lo
convierte de texto a nmero y lo almacena en una variable llamada Valor1.

De manera similar se colocara el dato recibido desde un slider. La nica diferencia es que no hay
que convertirlo a nmero. El cdigo podra ser el siguiente:

Valor2=(get(handles.slider1,'value'))%recibe el dato del slider1.

Procedimiento:

1. Con la herramienta Guide de Matlab cree una interfaz grfica que contenga lo siguiente:
a. Un texto esttico que tenga como ttulo Morfologa de un Robot Industrial.
b. Tres botones cada uno al ser oprimido mostrar un dibujo en un axes y su respectiva
definicin (en un texto esttico). Las grficas y las definiciones deben corresponder a:
Articulacin rotativa, Articulacin prismtica y Eslabn con efector. El resultado debe ser
similar al que se muestra en la figura 20. Las articulaciones debe dibujarlas con su respectiva
simbologa, es decir un cilindro para articulaciones rotativas y un cubo para articulaciones
prismticas. El efector similar al dibujo de la figura 9.

Figura 20 . Interfaz grfica

2. Cree una interfaz de usuario en donde se visualice en un plano x-y la rotacin y desplazamiento
de un sistema de referencia {B} respecto a otro sistema de referencia fijo {A}. El sistema {B}
tambin podr rotar y desplazarse simultneamente respecto a {A}. El usuario podr manipular
tales localizaciones de {B} mediante el uso de sliders.
3. Cree una interfaz grfica en donde ingrese tres datos de posiciones Px,Py,Pz (3 Edit Text) y 3
sliders para ingresar el ngulo de rotacin (Rotacin en x,y y z) y un axes para visualizar el
movimiento. Los datos ingresados de posiciones corresponden a una traslacin. El movimiento
que debe generarse es Rotacin en x, Traslacin, Rotacin en y, Rotacin en Z. Cada Slider debe
permitir ingresar un ngulo entre 0 y 360. El resultado esperado se presenta en la figura 1.

Figura 1. Resultado esperado. Fuente propia

Entregables
1. Sustente al docente cada una de los simulaciones realizadas
2. Realice un informe en formato IEEE en donde se evidencie el desarrollo de la gua un tem
con las respuestas a las siguientes preguntas:
a. Qu es una articulacin, qu tipos de articulaciones existen y qu diferencia hay entre
ellas?
b. Qu es un eslabn y qu tipos de eslabones existen?
c. Qu es el efector final?
d. Una matriz de transformacin homognea est compuesta por cuatro matrices, cules
son estas matrices?
e. Calcule la matriz de transformacin homognea final en un sistema OUVW al que se le
realiza una rotacin de 13 en el eje z, luego se realice una traslacin de (3,6,-10) y
finalmente se realiza una rotacin de 46 en el eje x con respecto a un sistema OXYZ.
f. Qu diferentes hay entre posmultiplicar y premultiplicar matrices de transformacin
homognea?

Bibliografa recomendada
[1] Lung-Wen Tsai. Robot analysis: the mechanics of serial and parallel manipulators Wiley- IEEE,
1999
[2] Siciliano, Bruno; Sciavicco, Lorenzo ; Villani, Luigi ; Oriolo, Giuseppe. Robotics Editorial:
Springer Verlag - Estados Unidos. ISBN: 1846286417.
[3] Craig, J. Introduction to robotics. Adisson Wesley.
[4] Ollero, A. Robtica manipuladores y robots mviles. Alfaomega Marcombo.
[5] Spong, Mark W. y Vidyasagar, M. Robot Dynamics and Control. John Wiley & Sons, 1989.
[6] Fu, K.S.; Gonzlez, R.C. y Lee, C. S. G. Robtica: Control, Deteccin, Visin e Inteligencia.Ed.
Mc Graw Hill, 1988.

Potrebbero piacerti anche