Beruflich Dokumente
Kultur Dokumente
Marzo 2012
Sistema de Coordenadas
La manipulacin de piezas requiere el
movimiento espacial de su extremo.
Es necesario conocer su posicin y
orientacin de sta con respecto a la
base del robot.
Es necesario contar con herramientas
que realicen este trabajo.
Existe una teora general para la
localizacin de objetos en el espacio que
puede aplicarse a otras reas, estas son:
Sistemas de coordenadas: Cartesiano,
cilndrico, esfrico
Matrices de transformaciones: Traslacin y
rotacin. Mtodo de Denavit- Hartenberg.
Cuaternios.
Coordenadas Cartesianas
Se trabaja en un
sistema coordenado
OXYZ.
Cualquier punto a
est expresado por
las componentes
(x,y,z).
Este punto tiene
asociado un vector
p(x,y,z).
Cilndrico
Se trabaja en un
sistema coordenado
OXYZ.
Se utilizan
coordenadas polares
p(r, ,z)
r es la distancia del
origen O al extremo
del vector p.
es el ngulo que forma
el vetor p con el eje
OX.
z representa la
proyeccin sobre el eje
OZ
Esfrico
El vector p(r, ) es el
extremo del punto a.
R es la distancia del
origen hasta el extremo
de p
es el ngulo formado por
la proyeccin del vector p
sobre el plano =XY
es el ngulo formado por
el vector p con el eje OZ
Ejemplo
Sea el vector en coordenadas cartesianas [2,3,5], encontrar su
representacin en coordenadas cilndricas y esfricas
Representacin de la Orientacin
Adems de la posicin es necesario definir la
orientacin con respecto al sistema de
referencia.
La orientacin en un espacio tridimensional,
viene definida por tres grados de libertad,
linealmente independientes.
Normalmente se usan 2 sistemas de referencia.
Si se tiene 2 sistemas de referencia OXY y
OUV, con el mismo origen, pero rotado un
ngulo
Cada vector del sistema de referencia es y
deben ser equivalentes.
Con una matriz de rotacin R se define la
orientacin de OUV con respecto a OXY
Matriz de rotacin
Sea el sistema de coordenadas
OXY y OUV
Vectores unitarios:
Como
Entonces
Matriz de rotacin
La matriz de rotacin esta dada por:
Para robtica
Solucin:
Traslacin y Rotacin
Es la matriz homogenes que se consigue despus de trasladar
y posteriormente rotar con respecto a uno de los ejes fijos.
La matriz de transformaciones homognea esta dada por:
Traslacin y Rotacin
Rotacin y Traslacin
Es el resultado de rotar con respecto a un eje fijo y posteriormente
trasladar.
Son 3 las matrices de transformacin homognea. Con respecto al eje z
es:
Ejemplos de Matlab (Rotaciones)
%Programa que validar operaciones de rotacin 6/Abril/2010
clear; close P1=P2;
%Genera un cuadro con rotaciones P2=rotz(pi/2)*P1;
P1=[1.1;1.1;2;1]; X=[P1(1),P2(1)];Y=[P1(2),P2(2)]; Z=[P1(3),P2(3)];
P2=rotz(pi/2)*P1; L4=line(X,Y,Z,'Color','c','LineWidth',4)
X=[P1(1),P2(1)];Y=[P1(2),P2(2)]; Z=[P1(3),P2(3)]; pause
L1=line(X,Y,Z,'Color','r','LineWidth',4) %Modifica un objeto
xlabel('x'); ylabel('y'); zlabel('z') Z=get(L4,'zdata');
view(3) Z=Z+1;
grid set(L4,'zdata',Z)
pause pause
P1=P2; Z=Z-1;
P2=rotz(pi/2)*P1; set(L4,'zdata',Z)
X=[P1(1),P2(1)];Y=[P1(2),P2(2)]; Z=[P1(3),P2(3)]; %Objeto Cuadro. Lo manipula
L2=line(X,Y,Z,'Color','g','LineWidth',4) Cuadro=[L1;L2;L3;L4];
Pause manipulaObjeto(Cuadro,rotz(pi/4));
P1=P2; for r=0:pi/10:2*pi
P2=rotz(pi/2)*P1; manipulaObjeto(Cuadro,rotz(r));
X=[P1(1),P2(1)];Y=[P1(2),P2(2)]; Z=[P1(3),P2(3)]; end
L3=line(X,Y,Z,'Color','b','LineWidth',4)
pause
Funcin: manipulaObjeto
function Objeto = manipulaObjeto(Dato1,Transfor)
%Transfor=rotz(pi/4);
%Dato1=Cuadro
N=size(Dato1);
for i=1:N
Li=Dato1(i);
Xi=get(Li,'xdata');
Yi=get(Li,'ydata');
Zi=get(Li,'zdata');
Pi1=[Xi(1);Yi(1);Zi(1);1];
Pi2=[Xi(2);Yi(2);Zi(2);1];
Pi1=Transfor*Pi1;
Pi2=Transfor*Pi2;
Xi=[Pi1(1);Pi2(1)];
Yi=[Pi1(2);Pi2(2)];
Zi=[Pi1(3);Pi2(3)];
set(Li,'xdata',Xi, 'ydata',Yi,'zdata',Zi);
pause(0.2)
end
Objeto=1;
Curvas paramtricas y lnea recta
%Este Programa genera la lnea recta y un circulo P1=[1;2;3];
%4 de Mayo 2010 P2=-P1;
clear; close N=100;
dt=1/N
N=50;
i=1;
dt=4*pi/(N);
Close
i=1; for t=0:dt:1
for t=0:dt:4*pi temp=(P2-P1)*t+P1;
X(i)=cos(t); X2(i)=temp(1);
Y(i)=sin(t); Y2(i)=temp(2);
Tiempo(i)=t; Z2(i)=temp(3);
i=i+1; Tiempo2(i)=t;
subplot(3,1,1), plot(Tiempo,X) i=i+1;
subplot(2,2,1), plot(Tiempo2,X2)
grid
grid
Subplot(3,1,2), plot(Tiempo,Y)
subplot(2,2,2), plot(Tiempo2,Y2)
grid grid
Subplot(3,1,3), plot(X,Y) subplot(2,2,3), plot(Tiempo2,Z2)
grid grid
pause(0.1) subplot(2,2,4), plot3(X2,Y2,Z2)
end grid
pause pause(0.1)
end
Ejemplo de Aplicacin
Solucin por Matrices de Rotacin y
Traslacin
Toolbox de Robtica
Provee varias funciones que son utiles en robtica
incluyendo cinemtica, dinmica y generacin de
trayectoria
Suministra objetos en Matlab que permite generar
y manipular cualquier cadena serial de eslabones
encapsulados en funciones de Matlab
El toolbox tambin tiene funciones para manipular
y convertir tipos de datos vectoriales,
transformaciones homogneas y cuaterniones para
representar la posicin y orientacin en 3
dimensiones
Tiene un manual de ayuda en PDF con las sus
funciones
Fue desarrollado por Peter I. Corke, investigador
de Queensland Center for Advanced Technologies
en Australia
Instalacin del Toolbox
El toolbox viene en una carpeta llamada robot
Copiarale en la carpeta de toolbox de matlab:
C:\Archivos de programa\MATLAB\R2009a\toolbox\robot
Dar de lata la carpeta en el Matlab.
Dentro de Matlab ir a: FileSet Path
Seleccionar: La carpeta de robot que esta en la trayectoria
especificada
Presionar el boton: Add Folder
Queda listor
Para probar que ha quedado bien instalado dar en la lnea de
comandos: >> rotx(0)
No debe marcar errores y regresa una matriz de 4x4
Funciones del Toolbox
Funciones del Toolbox
Rotacin en X Traslacin
>> rotx(pi/2) >> transl([1 2 3])
ans = ans =
1.0000 0 0 0 1 0 0 1
0 0.0000 -1.0000 0 0 1 0 2
0 1.0000 0.0000 0 0 0 1 3
0 0 0 1.0000 0 0 0 1
>> >>
Funciones del Toolbox
Funciones del Toolbox
Generacin de un Robot
>> L1=link([0 1 0 0 0],'standard');
>> L2=link([0 1 0 0 0], 'standard');
>> r=robot({L1 L2});
>> L1=link([0 1 0 0 0],'standard');
>> L2=link([0 1 0 0 0], 'standard'); 2
>> r=robot({L1 L2})
1
r= yz x
0
Z
noname
noname (2 axis, RR)
-1
grav = [0.00 0.00 9.81]
standard D&H parameters
-2
2
alpha A 1 2
theta D 0 1
R/P -1
0
-1
0.000000 1.000000 0.000000 0.000000 Y -2 -2
X
R (std)
0.000000 1.000000 0.000000 0.000000
R (std)
CreaLinea(P1,P2,Color,An
%Transform=rotz(pi/4);
for i=1:3
cho)
for j=1:4
La=Cubo(j,i);
X=[P1(1),P2(1)];
Xa=get(La,'xdata');Ya=get(La,'ydata');Za=get(La,'zdata');
P1=[Xa(1),Ya(1),Za(1),1]';
Y=[P1(2),P2(2)];
P2=[Xa(2),Ya(2),Za(2),1]';
P1=Transform*P1; P2=Transform*P2;
Z=[P1(3),P2(3)];
Xa=[P1(1),P2(1)];Ya=[P1(2),P2(2)];Za=[P1(3),P2(3)];
Linea=line(X,Y,Z,'Color', set(La,'xdata',Xa,'ydata',Ya,'zdata',Za);
%pause(0.1)
Color,'LineWidth',Ancho) end
end
Cinemtica
La cinemica del robot estudia el
movimiento con respecto a un sistema de
referencia
Existen 2 problemas fundamentales,
cinemtica directa e inversa.
La cinemtica directa consiste en determinar
la posicin y orientacin del extremo final
del robot en funcin de las coordenadas
articulares
La cinemtica inversa determina las
coordenadas articulares en funcin de la
posicin final del robot.
Cinemtica
Resolucin del problema cinemtico
directo
Mtodo de Denavit Hartenberg (D-H)
Permite el paso de un eslabn al siguiente mediante 4
matrices de transformacin bsicas, que dependen
exclusivamente de las caractersticas constructivas del
robot.
Las transformaciones bsicas que relacionan el sistema de
referencia del elemento i con el sistema i-1 son:
Rotacin alrededor del eje
Traslacin a lo largo del eje
Traslacin a lo largo de
Rotacin alrededor del eje
Mtodo de Denavit Hartenberg (D-H)
Mtodo de Denavit Hartenberg (D-H)
Algoritmo de Denavit Hartenberg I.
1. Numerar los eslabones comenzando con 1 (primer eslabn mvil de la
cadena) y acabando con n (ltimo eslabn mvil). Se numera como eslabn 0
a la base fija del robot.
2. Numerar cada articulacin comenzando por 1 (la correspondiente al primer
grado de libertad) y acabando en n.
3. Localizar el eje de cada articulacin. Si sta es rotativa, el eje ser su propio
eje de giro. Si es prismtica, ser el eje a lo largo del cual se produce el
desplazamiento.
4. Para i de 0 a n-1 situar el eje Zi sobre el eje de la articulacin i+1.
5. Situar el origen del sistema de la base {S0} en cualquier punto del eje Z0. Los
ejes X0 e Y0 se situarn de modo que formen un sistema dextrgiro con Z0.
6. Para i de 1 a n-1, situar el sistema {Si} (solidario al eslabn i) en la
interseccin del eje Zi con la lnea normal comn a Zi-1 y Zi. Si ambos ejes se
cortasen se situara {Si} en el punto de corte. Si fuesen paralelos {Si} se
situara en la articulacin i+1.
7. Para i de 1 a a n-1, situar Xi en la lnea normal comn a Zi-1 y Zi.
Algoritmo de Denavit Hartenberg I.
8. Para i de 1 a n-1, situar Yi de modo que formen un sistema dextrgiro con Xi y Zi
9. Situar el sistema {Sn} en el extremo del robot de modo que Zn coincida con la
direccin de Zn-1 y Xn sea normal a Zn-1 y Zn.
10. Obtener como el ngulo que hay que girar en torno a Zi-1 para que Xi-1 y Xi queden
paralelos.
11. Obtener como la distancia medida a lo largo del eje Zi-1, que habra que desplazar {Si-
1} para que Xi y Xi-1 quedasen alineados.
12. Obtener como la distancia medida a lo largo de Xi, que ahora coincidira con Xi-1,
que habra que desplazar el nuevo {Si-1} para que su origen coincidiese con { Si }.
13. Obtener como el ngulo que habra que girar en torno a Xi, que ahora coincidira
con Xi-1, para que el nuevo { Si-1} coincidiese totalmente con { Si}
14. Obtener las matrices de transformacin
15. Obtener la matriz de transformacin que relaciona el sistema de la base con el del
extremo del robot:
16. La matriz T define la orientacin (matriz de rotacin) y posicin (matriz de
traslacin) del extremo referidas a la base en funcin de las n coordenadas articulares.
Los 4 parmetros de D-H dependen nicamente de las caractersticas geomtricas de cada eslabn
y de las articulaciones que le unen con el anterior y el siguiente.
Representacin en Matlab D-H
La herramienta de robot para Matlab
permite definir un robot usando la
notacin D-H.
Representacin en Matlab D-H
Representacin en Matlab D-H
Robot de 2 Grados de Libertad
Robot de 2 Grados de Libertad
Robot de 2 Grados de Libertad
Parmetros D-H Robot Scara
Parmetros D-H Robot Scara
Parmetros D-H Robot Scara
Robot Antropomorfico
Prueba del Robot Antropomrfico
%Este ejemplo hace que el robot antropomorfico genere un cuadrado y lo for t=0:pi/20:2*pi
%recorra de ida y vuelta clf
%26/Mayo/09 x(k)=xo+radio*cos(t-pi/2);
clear; close; y(k)=yo+radio*sin(t-pi/2); z(k)=zo;
Long=[50,50,50];0 P0=[x(k),y(k),z(k)];
r=generaAntropo(Long); Q=CinversaAntropo(P0,Long);
q1=0; q2=0; q3=0; plot(r,Q);
plot(r,[0,0,0]); hold on
xo=40; yo=-40; zo=60; radio=50; plot3(x,y,z)
i=1; pause(0.1)
Puntos=[0,0,0;xo,yo,zo;40,-90,60]; k=k+1;
M=size(Puntos); end
k=1; P1=[x(k-1),y(k-1),z(k-1)]; P2=[0,0,0];
N=20 Pxy=Traylinea(P1,P2,N);
for i=1:M(1)-1 for j=1:N+1
N=30; clf
P1=Puntos(i,:); P2=Puntos(i+1,:); x(k)=Pxy(j,1); y(k)=Pxy(j,2); z(k)=Pxy(j,3);
Pxy=Traylinea(P1,P2,N); P0=Pxy(j,:);
for j=1:N+1 Q=CinversaAntropo(P0,Long);
clf plot(r,Q);
x(k)=Pxy(j,1); y(k)=Pxy(j,2); z(k)=Pxy(j,3); hold on
P0=Pxy(j,:); plot3(x,y,z)
Q=CinversaAntropo(P0,Long); pause(0.1)
plot(r,Q); k=k+1;
hold on end
plot3(x,y,z)
pause(0.1)
k=k+1;
end
end
Prueba del Robot Antropomrfico
clear; close;
l1=1;l2=1,l3=1;
Long=[l1,l2,l3];
r=generaAntropo(Long);
plot(r,[0,0,0]);
i=1;
q1=atan2(y,x);
q2=gama-alfa;
q3=acos((c^2-l2^2-l3^2)/(2*l2*l3));
Q=[q1,q2,q3];