Beruflich Dokumente
Kultur Dokumente
y Control de Robots
Marco A. Pérez Cisneros
Erik V. Cuevas Jimenez
MARCAS COMERCIALES. Las designaciones utilizadas por las empresas para distinguir sus productos
(hardware, software, sistemas operativos, etc.) suelen ser marcas registradas. RA-MA ha intentado a lo largo de
este libro distinguir las marcas comerciales de los términos descriptivos, siguiendo el estilo que utiliza el
fabricante, sin intención de infringir la marca y sólo en beneficio del propietario de la misma. Los datos de los
ejemplos y pantallas son ficticios a no ser que se especifique lo contrario.
RA-MA es marca comercial registrada.
Se ha puesto el máximo empeño en ofrecer al lector una información completa y precisa. Sin embargo, RA-MA
Editorial no asume ninguna responsabilidad derivada de su uso ni tampoco de cualquier violación de patentes ni
otros derechos de terceras partes que pudieran ocurrir. Esta publicación tiene por objeto proporcionar unos
conocimientos precisos y acreditados sobre el tema tratado. Su venta no supone para el editor ninguna forma de
asistencia legal, administrativa o de ningún otro tipo. En caso de precisarse asesoría legal u otra forma de ayuda
experta, deben buscarse los servicios de un profesional competente.
Reservados todos los derechos de publicación en cualquier idioma.
Según lo dispuesto en el Código Penal vigente ninguna parte de este libro puede ser reproducida, grabada en
sistema de almacenamiento o transmitida en forma alguna ni por cualquier procedimiento, ya sea electrónico,
mecánico, reprográfico, magnético o cualquier otro sin autorización previa y por escrito de RA-MA; su contenido
está protegido por la Ley vigente que establece penas de prisión y/o multas a quienes, intencionadamente,
reprodujeren o plagiaren, en todo o en parte, una obra literaria, artística o científica.
Editado por:
RA-MA Editorial
Calle Jarama, 3A, Polígono Industrial Igarsa
28860 PARACUELLOS DE JARAMA, Madrid
Teléfono: 91 658 42 80
Fax: 91 662 81 39
Correo electrónico: editorial@ra-ma.com
Internet: www.ra-ma.es y www.ra-ma.com
ISBN: 978-84-7897-XXX-X
Depósito Legal: M-XXXXX-2009
Autoedición: Autores
Diseño Portada: Antonio García Tomé
Impresión: Closas-Orcoyen
Impreso en España
ÍNDICE
A través de los años han existido numerosas herramientas matemáticas para llevar
a cabo esta tarea. Si bien, una descripción exhaustiva de estas técnicas escapa al
propósito de este libro, se incluyen aquellas que por su aceptación y madurez son
eficientemente utilizadas en la solución de múltiples problemas en el manejo de
robots. Algunas otras herramientas solo se revisan ofreciendo referencias donde el
lector pueda revisarlos con mayor profundidad.
2.1.2 Notación
En esta sección se propone definir una notación concisa y comprensible que será
utilizada a través de todo este libro. La importancia de esta sección es fundamental
para esta obra, dado que el desarrollo actual de la robótica implica la integración de
conceptos que emergen de distintas áreas como la visión computacional, la teoría
de control continuo y discreto, la teoría de sistemas en tiempo real, el
procesamiento digital de señales, etc. Es muy frecuente que la introducción de
conceptos derivados de distintas teorías tambien implica el uso de su propia
notación, generando confusión en especial cuando el número de definiciones que
participan en la solución de un problema se incrementa.
En primera instancia, en este libro, las letras minúsculas se usan para denotar
cantidades escalares (ver por ejemplo: a, b, c ), mientras que las variables
expresadas en negritas representarán vectores (ejemplo: x, y, z ) y las letras
mayúsculas en negritas representan matrices (ejemplo: A, J, H ). Los valores
estimados se representan por el arco circunflejo sobre la letra (ejemplo: xˆ, yˆ , zˆ ) y
los valores deseados se identifican por medio del asterisco como sigue: x* , y* , z* .
Eje X Eje Z
k
i
Eje Y
p tx i t y j tz k (1.1)
i
p [t x , t y , t z ] j (1.2)
k
Eje Z
p
4
W
2 7 Eje Y
Eje X
Una técnica muy aceptada en los sistemas roboticos, consiste en fijar un eje
coordenado a cada objeto que participa en el entorno de un robot. Por ejemplo, se
coloca el eje coordenado base (denominado en este texto como W), y otros ejes
coordenados (M, C) que se asignan a otros objetos de interes (mesa, cubo), tal
como lo muestra la Figura 2.3.1.
CZ
MZ
CY
C
MX
M
MX MY
WZ
W
WY
WX
nx ox ax
w
R e n o a ny oy a y (1.3)
nz oz az
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 19
ex (n)
E
ey (o)
ez (a)
Figura 2.3.2 Antigua convención para asignar los ejes coordenados al actuador final
de un robot (end-effector). Dicho acuerdo ha dado origen a los nombres de cada una
de las columnas de la matriz de rotación: n,o,a
De forma práctica podemos afirmar que cada una de las columnas de la matriz de
rotación, expresa la posición relativa de cada uno de los nuevos ejes coordenados
E : E x, E y, E z con respecto del sistema coordenado base W : w x, w y, w z , como
se observa en la Figura 2.3.3.
20 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
EX
WZ
E
EY
t EZ
W WY 5
5 WX
13
Figura 2.3.3 Relacion geométrica entre los ejes coordenados W y E que puede
expresarse por medio de la matriz de rotación WRE.
Dado que la representación en el espacio Euclidiano se fundamenta en el reflejo de
distancias en las direcciones de los tres vectores unitarios i, j,k , puede deducirse
que cada columna de la matriz de rotación refiere a la posición de cada uno de los
ejes “rotados” con respecto a los ejes del sistema coordenado base W.
Esta condición puede parecer muy particular, pero a medida que el lector
profundice sus conocimientos en robotica, se sorprenderá de la frecuencia con que
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 21
este caso se presenta, lo que confiere mucho valor a este sencillo método. En
primer lugar, volvamos a definir los dos postulados base de este método:
Con referencia al primer postulado, observe la Figura 2.3.4, cada eje del eje
coordenado M se encuentra apuntando a la misma dirección de los ejes
coorespondientes en el sistema W. Por ejemplo, el eje MX apunta en la misma
dirección que el eje WX.
MZ
M
MY
MX
WZ
W WY
WX
Figura 2.3.4 Al revisar la orientación entre los ejes de sistema coordenado M y los del
sistema coordenado W, se observa que cada eje apunta en la misma dirección.
22 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
1 ox ax
W
R M 0 oy a y (1.4)
0 oz az
1 0 ax
W
R M 0 1 a y (1.5)
0 0 az
Finalmente, el “nuevo” eje MZ apunta hacia el original eje WZ, es decir, hacia la
componente k [0,0,1]T , por lo que completando W R M tenemos:
1 0 0
W
R M 0 1 0 (1.6)
0 0 1
1 ox ax
W
R E 0 oy a y (1.7)
0 oz az
Del mismo modo, el “nuevo” eje EY esta apuntando hacia la orientación del eje
original WY, por lo que la segunda columna se define de forma similar al caso de la
Ecuación (1.5) como sigue:
1 0 ax
W
R E 0 1 a y (1.8)
0 0 az
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 23
Finalmente el “nuevo” eje EZ se dirige hacia el negativo del eje WZ original, por lo
que la columna correspondiente se define como:
1 0 0
W
R E 0 1 0 (1.9)
0 0 -1
nx ox ax
w
R e ny oy a y n o a (1.10)
nz oz az
Considerando que cada uno de los ejes se encuentra a 90 grados con respecto de los
otros dos, es posible utilizar el producto punto entre dos vectores para obtener
algunos resultados muy útiles sobre la naturaleza de las columnas.
nT o = 0 oT a = 0 aT n = 0 (1.11)
24 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
Así mismo, si utilizamos el producto punto entre el vector del eje y si mismo
(utilizando el valor transpuesto), el resultado es igual a uno, que significa que el eje
se “refleja” totalmente sobre si mismo, generando una propiedad muy útil:
nT n = 1 oT o = 1 aT a = 1 (1.12)
Dado que el producto punto de un eje contra si mismo (misma columna) es igual a
1, y el producto punto entre columnas es igual a cero, es posible deducir una
propiedad muy importante de la matriz de rotación:
RT R I (1.13)
nx ny nz nx ox a x n T n n T o n T a 1 0 0
ox oy oz ny oy a y o T n oTo o T a 0 1 0 (1.14)
ax
ay az nz oz az a T n a To aTa 0 0 1
Este resultado da principio a una propiedad de las más utilizadas en robotica. Del
algebra matricial sabemos que si el resultado de multiplicar dos matrices es la
unidad (matriz unitaria), se trata de la multiplicación de una matriz por su matriz
inversa. De esta forma, se demuestra que para el caso de la Matriz de Rotación, su
inversa puede calcularse directamente de su transpuesta, lo que permitirá agilizar el
algebra entre matrices de rotación, como sigue:
RT R 1 (1.15)
Es importante recordar que esta propiedad se hace posible gracias a que la matriz
de rotación esta representando un sistema ortonormal, es decir, representa la
orientación espacial de ejes coordenados que se encuentran a 90 grados uno con
respecto del otro y que además tienen una magnitud igual a uno. Esta última
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 25
propiedad, conocida como magnitud unitaria, puede verificarse por medio del
cálculo de la Norma Euclidiana. Esta es una operación matematica que suma el
cuadrado de los componentes de un vector. Si aplicamos este operador a cada
columna de la matriz de rotación se obtendrá (tomando la columna n como
ejemplo) que cada columna genera una norma unitaria como sigue:
z
j'
W
o y j
x
i i'
Por ejemplo, en la Figura 2.3.6 pueden observarse que la nueva coordenada con
respecto al eje X es el Cos θ, mientras que la nueva coordenada con respecto del
eje Y es el Sen θ. Con respecto al eje Z, la nueva coordenada es 0, ya que por la
naturaleza del giro, el movimiento se realiza exclusivamente sobre el plano X-Y.
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 27
y
x
Cos θ
i Sen θ i'
Figura 2.3.6 Calculo de las coordenadas del nuevo eje i’ con respecto de las
direcciones de los ejes X, Y. La coordenada en Z es cero ya que el movimiento se
realiza exclusivamente en el plano X-Y.
Puede aplicarse el mismo razonamiento para la posición del nuevo eje j’, que
tendrá como nueva posición con respecto del eje X al -Sen θ, esto en virtud de que
la nueva coordenada se situa hacia el sentido negativo de dicho eje. La nueva
coordenada con respecto del eje Y será el Cos θ, mientras que la nueva posición
con respecto del eje Z seguirá siendo 0 al no existir movimiento en el plano X-Y.
z j'
Cos θ
-Sen θ
y j
x
Figura 2.3.7 Cálculo de las coordenadas del nuevo eje j’ con respecto de las
direcciones de los ejes X y Y.
De esta forma, utilizando la nomenclatura vectorial podemos concluir que las
coordenadas de los “nuevos” ejes i’, j’ y k’ después de la rotación son:
cos sen 0
i' sen j' cos k' 0 (1.17)
0 0 1
28 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
cos sen 0
R z ( ) sen cos 0 (1.18)
0 0 1
Notese que la variable θ que puede tomar cualquier valor angular en la matriz de la
Ecuación (1.18). En este texto, dicho valor angular generalmente será considerado
en el rango –π ≤ θ ≤ π.
De igual forma pueden obtenerse las expresiones para las rotaciones sobre los ejes
X y Y, quedando de la siguiente forma:
1 0 0
R x ( ) 0 cos sen (1.19)
0 sen cos
cos 0 sen
R y ( ) 0 1 0 (1.20)
sen 0 cos
Mismo caso sucede para la matriz de rotación sobre el eje X. La primera columna
n=[1,0,0]T representa que dicho eje permanece orientado totalmente hacia la
dirección del eje X. En el caso de la rotación sobre el eje Y, la segunda columna
puede fácilmente identificarse como o=[0,1,0]T. Precisamente este hecho nos
permite identificar rápidamente cada una de las matrices de rotación, simplemente
definidas por la columna que no sufre cambios en su orientación y presenta valores
de 1 y 0.
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 29
1 0 0
R x (45 ) 0 0.5 0.866 (1.21)
0 0.866 0.5
Este es el comando para calcular la matriz para una rotación sobre el eje X con un
valor dado por la variable ángulo. Aplicando dicho comando al ejemplo de la
expresión (1.21) considerando que θ=60º, se tiene:
rotacion_x =
1.0000 0 0
0 0.5000 -0.8660
0 0.8660 0.5000
30 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
Notese que el angulo tiene que definirse en radianes. Una forma muy practica
convertir entre grados y radianes (que será muy frecuente en este libro) es utilizar
la conversión entre 180º y π radianes que corresponda dependiendo de cual es la
unidad que finalmente se requiere.
( )
valor radianes = grados (1.22)
180
(180)
valor grados = radianes
(1.23)
rotacion_y =
0.6428 0 0.7660
0 1.0000 0
-0.7660 0 0.6428
En el ejemplo, la función roty genera la matriz para una rotación sobre el eje Y de
50 grados.
nx ox ax tx
n oy ay t y
W
TE y
nz oz az tz (1.24)
0 0 0 1
W RE W
tE
W
TE (2.1.25)
0 1
1 0 5
0
0 1 0 13
W
TE
0 0 1 5 (1.26)
0 0 0 1
El ejemplo más simple ocurre cuando existe un punto definido con respecto de un
eje coordenado dado (E) y se requiere conocer dicho punto pero definido con
respecto de un sistema coordenado base (W). Este es un ejemplo recurrente entre
muchos procedimientos de modelado en robotica. Vease por ejemplo la Figura
2.4.1, donde se muestra un nuevo sistema coordenado E y su relación geometrica
con respecto del sistema coordenado W.
EX
E EY 7
WZ EZ
1 1
Ep
wp
W
WX
WY 10 5
4
Figura 2.4.1 Ejemplo de la relación entre dos ejes coordenados. El punto ep=[7,1,1]T
debe ser definido con respecto al eje coordenado base W, dando origen a wp.
Dicha relación geométrica se expresa perfectamente a través de una HT. En este
caso, vamos a tomar este ejemplo como ejercicio para posteriormente continuar
con la discusión de la transformación entre ejes coordenados.
nx ox ax 4
n oy ay 10
W
TE y
nz oz az 5 (1.27)
0 0 0 1
© RA-MA CAPÍTULO 2. MODELADO DEL ENTORNO Y LOS MOVIMIENTOS EN EL ESPACIO 33
-1 ox ax 4
0 o ay 10
W
TE y
0 oz az 5 (1.28)
0 0 0 1
De la misma forma, el nuevo eje EY apunta a la misma orientación del eje WY, por
lo que la segunda columna viene definida por [0,1,0]T, como sigue:
1 0 ax 4
0 1 ay 10
W
TE
0 0 az 5 (1.29)
0 0 0 1
Finalmente, el nuevo eje EZ apunta hacia el sentido negativo del eje WZ del sistema
base, por lo que la ultima columna de la matriz de rotación se define como:
1 0 04
0 1 0 10
W
TE
0 0 -1 5 (1.30)
0 0 0 1
Esta última expresión define completamente la matriz HT que relaciona los ejes
coordenados W y E, por lo que ahora es posible concebir operaciones geométricas
entre ambos ejes coordenados como se discute a continuación.
1
E
p 7 (1.31)
1
Esta última expresión puede leerse como que el punto Ep multiplicado por la
relación geométrica WTE, transforma dicho punto con respecto al sistema
coordenado W, resultando Wp. Notese la congruencia entre las referencias que se
encierran en círculos en la Ecuación (1.32), que indican que dicha conversión
puede llevarse a cabo. Dicha expresión genera las siguientes multiplicaciones
matriciales:
1 0 4 1
0
0 1 0 10 7
W
p
0 0 -1 5 1
0 0 0 1 1
(1.33)
5
17
W
p
4
1
ht_giro_x =
1.0000 0 0 0
0 0.8660 -0.5000 0
0 0.5000 0.8660 0
0 0 0 1.0000
ht_giro_y =
0.8660 0 0.5000 0
0 1.0000 0 0
-0.5000 0 0.8660 0
0 0 0 1.0000
36 INTRODUCCION AL MODELADO Y CONTROL DE ROBOTS © RA-MA
ht_giro_z =
0.1736 -0.9848 0 0
0.9848 0.1736 0 0
0 0 1.0000 0
0 0 0 1.0000
Por otro lado, otro recurso muy importante para la simulación y graficación de la
transformada homogena en Matlab© es el Visual Servoing Toolbox que también
provee una colección de comandos. Enn particular, este paquete es muy útil para la
graficación de ejes coordenados en el espacio de trabajo del robot. En este toolbox
las transformadas homogéneas son tratadas como una clase, es decir, como objetos
independientes cuyas características pueden ser personalizadas según los
requerimientos. El comando que genera un objeto tipo HT puede funcionar con
distintos argumentos como se enumera a continuación:
>> w = ht
w =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
>> plot(w)
Eje X
Eje Y
Eje Z
0.1
0.08
0.06
Eje Z
0.04
0.02
0
0.15
0.1 0.15
0.05 0.1
0.05
0 0
Eje Y -0.05 -0.05
Eje X
ht_rotx =
1 0 0 0
0 0.86603 -0.5 0
0 0.5 0.86603 0
0 0 0 1
ht_roty =
0.86603 0 0.5 0
0 1 0 0
-0.5 0 0.86603 0
0 0 0 1
ht_rotz =
0.17361 -0.98481 0 0
0.98481 0.17361 0 0
0 0 1 0
0 0 0 1
0.25 0.25
0.2 0.2
0.15 0.15
Eje Z
Eje Z
0.1 0.1
0.05 0.05
0 0
0.2 0.2
0.15 0.15
0.1 0.15 0.1 0.15
0.05 0.1 0.05 0.1
0.05 0.05
0 0
0 0
Eje Y -0.05 -0.05 Eje X Eje Y -0.05 -0.05 Eje X
Figura 2.4.3 Definición de un cuerpo geométrico con respecto del eje coordenado base
W. En este caso se utiliza un poliedro pirámidal para representar el plano de la
imagen de una cámara y su distancia focal, todo sobre el sistema base W.
El listado siguiente nos presenta la generación del eje coordenado base W a partir
del comando ht, como sigue:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% TRANSFORMACIÓN DE PUNTOS EN MATLAB.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Marco Pérez, Erik Cuevas, Daniel Zaldivar,
% Versión: 08/04/2010
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
e_punto =
-1
7
1
1
wTe =
-1 0 0 4
0 1 0 10
0 0 -1 5
0 0 0 1
w_punto =
5
17
4
1
En el listado siguiente, se presentan los comandos necesarios para graficar los ejes
coordenados del problema de transformación de puntos que se discutió en la
sección anterior.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% GRAFICACIÓN DE DOS SISTEMAS COORDENADOS.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Marco Pérez, Erik Cuevas, Daniel Zaldivar,
% Versión: 09/04/2010
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3
E
Eje Z
1 BASE
0
0
2
4
6 0
8
2
10
12 4
Eje Y Eje X
Figura 2.4.4 Representación de la relación geométrica entre dos ejes coordenados que
resulta de la transformada homogena WTE.
La transformada homogénea será una herramienta fundamental para el modelado
de estructuras roboticas que será estudiado a detalle dentro de la Cinematica de
Robots. Antes de finalizar nuestro estudio de la descripción geométrica del entorno
de un robot, es muy importante la definición de algunos conceptos como la
descripción de cuerpo rigido, los angulos de Euler, la descripción de angulo y eje
así como los movimientos “roll-pitch-yaw” que son comúnmente citados en
trabajos relacionados a la robotica.