Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3 1
con un mismo origen y a el
ngulo entre ellos.
Consecuentemente, los escalares,
ij
r , en (0.2) pueden expresarse de la
siguiente manera,
1
1
1
1
]
' ' ' '
' ' '
' ' '
' ' '
Oxyz
O x y z
x x y x z x
R x y y y z y
x z y z z z
(0.4)
Se identifica cada vector columna de la matriz de rotacin en (0.4), como la
proyeccin de los ejes principales del sistema de coordenadas en
movimiento O'x'y'z' sobre cada uno de los ejes principales del sistema de
referencia Oxyz. Por inspeccin de la ecuacin (0.4) se evidencia que los
vectores fila de la matriz de rotacin equivalen a los vectores unitarios de
oxyz expresados en O'x'y'z'. Entonces, la descripcin del marco Oxyz con
relacin al marco O'x'y'z' est dada por la traspuesta de (0.4). Es decir,
' ' ' ' 1
' ' ' ' ' ' ' '
O x y z Oxyz Oxyz T
Oxyz O x y z O x y z
R R R , hecho que puede
verificarse tericamente del lgebra lineal dado que la inversa de una matriz
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
7
con columnas/ filas ortonormales es igual a su traspuesta. Esto se verifica
fcilmente como,
3 3
.
Como se ver posteriormente, existen otro tipo de representaciones para
describir la orientacin de un cuerpo en el espacio.
1.1.3. Descripcin de un marco
Debido a que la informacin requerida para describir completamente la
ubicacin de la mano (o cualquier otro elemento) de un manipulador debe
incluir necesariamente un trmino de posicin y otro de orientacin,
definimos por conveniencia, una entidad denominada marco que es
simplemente un sistema de coordenadas asociado con cada cuerpo rgido
que permite expresar dicha informacin. El punto dentro del cuerpo que se
escoger en adelante para describir la posicin de un cuerpo ser, tambin
por conveniencia, el origen del sistema de coordenadas ligado a dicho
cuerpo.
Sin embargo comnmente se integran ambas operaciones en un solo
operador. Para ello se utilizan matrices de transformacin homogneas de
4x4 que incluyen operaciones de rotacin y traslacin del sistema de
coordenadas ligado al cuerpo.
Como veremos, una matriz de rotacin de 3x3 no da la posibilidad de
traslacin y escalado, por lo tanto se introduce una cuarta coordenada o
componente al vector de posicin p=(px,py,pz)
T
en un espacio
tridimensional que lo transforma en
)
( , , , )
T
x y z
p wp wp wp w donde
)
p se
expresa en coordenadas homogneas.
x
x
wp
p
w
,
y
y
wp
p
w
,
z
z
wp
p
w
(0.7)
En general la representacin de un vector de n componentes con un vector
de n+1 componentes se llama representacin en coordenadas homogneas.
8
1.1. Matrices de Rotacin
Figura 2 Rotacionesbsicasrespectodelosejesx, y, z
1.1.1. Matrices de Rotacin Bsicas
Suponiendo dos sistemas de coordenadas de orgenes coincidentes, OUVW
y OXYZ, y asumiendo que el sistema OUVW se mueve rotacionalmente
con respecto al sistema de referencia OXYZ. Se define una matriz de
rotacin como un operador que expresa la diferencia de orientacin entre el
sistema de coordenadas en movimiento (OUVW) y el sistema de referencia
fijo (OXYZ). Por simplicidad ilustrativa, suponga la presencia de un
cuerpo slido ligado por uno de sus vrtices al sistema OUVW en
x
y
z
u
w
v
cubo
unitario
Planox-y
wx
z
x
wz
uz
ux
o
o
p
p
x
y
z
u
w
v
cubo
unitario
y
x
uy
vx
vy
ux
u
v
o
o
p
x
y
z
u
w
v y
z
w
v
Plano z-y
cubo
unitario
vy
vz
wz
wy
o
o
p
p
p
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
9
movimiento - es decir, se mueve con el (Figura 2). Representando cualquier
punto del cuerpo como un vector, p, respecto del sistema OUVW, se define
entonces la matriz de rotacin como aquella que opera sobre py transforma
sus coordenadas expresadas en el sistema de coordenadas rotado OUVW
en el sistema de coordenadas de referencia OXYZ.
Nos interesa encontrar una matriz que transforme las coordenadas de un
punto cualquiera p, ligado a un sistema de coordenadas en movimiento
OUVW, a las coordenadas expresadas con respecto al sistema de
coordenadas de OXYZ, despus de que el sistema de coordenadas OUVW
ha sido girado. Es decir, la siguiente transformacin ortogonal (ortonormal
ya que sus componentes son vectores unitarios):
xyz uvw
p Rp (0.8)
Otra posibilidad es la de expresar un punto ligado al sistema de
coordenadas OXYZ en trminos del sistema de coordenadas en
movimiento OUVW. Esta transformacin se expresa de la siguiente
manera,
uvw xyz
p Qp (0.9)
Como los productos escalares son conmutativos,
1 T
Q R R entonces
1
3 3
T
QR R R R R U (donde U es una matriz de identidad de 3x3).
Definicin deloscomponentesdeun vector : puvw = pu iu + pv jv + pw kw donde
pu , pv y pw son las proyecciones de psobre los ejes principales del sistema
de coordenadas OUVW eiu , jv , kw son vectores unitarios sobre los ejes de
OUVW.
Utilizando la definicin del producto escalar, cos a b a b - o
simplemente cos a b cuando a y b son vectores unitarios - y la
ecuacin anterior,
+ + p
x x x u u x v v x w w
p i i i p i j p i k p
+ + p
y y y u u y v v y w w
p j j i p j j p j k p
+ + p
z z z u u y v v z w w
p k k i p k j p k k p
Por propiedad, el producto escalar es conmutativo, es decir a b b a, por
lo tanto reescribiendo las ecuaciones anteriores de forma matricial y
utilizando las identidades relacionadas con la naturaleza peridica del seno y
el coseno para simplificar el valor angular,
( ) ( ) ( ) ( )
( ) ( ) ( ) ( )
+
+
sen sen cos 90 cos 90
cos cos sen 90 sen 90
o o
o o
(0.10)
10
1
1
1
1
]
x u x v x w
y u y v y w
z u z v z w
i i i j i k
R j i j j j k
k i k j k k
(0.11)
Podemos entonces derivar las matrices de rotacin con respecto a cada eje
rotado, de la siguiente manera: Pxyz = Rx,
1 1
1
1
1
1
1
1
]
]
,
1 0 0
0 cos
0 cos
x u x v x w
x y u y v y w
z u z v z w
i i i j i k
R j i j j j k sen
k i k j k k sen
(0.12)
Figura 3 Matriz derotacinbsica, Rx,
, apartir deproyeccindevectoresunitarios
igualmente podemos encontrar,
1 1
1
1
1
1
1
1
]
]
,
cos 0
0 1 0
0 cos
x u x v x w
y y u y v y w
z u z v z w
i i i j i k sen
R j i j j j k
k i k j k k sen
(0.13)
1 1
1
1
1
1
1
1
]
]
,
cos 0
cos 0
0 0 1
x u x v x w
z y u y v y w
z u z v z w
i i i j i k sen
R j i j j j k sen
k i k j k k
(0.14)
Estas son las matrices de rotacin bsicas. Pueden ser multiplicadas entre
si para representar una secuencia de rotacin finita respecto al sistema de
referencia. Pero como la multiplicacin de matrices no conmutan es
importante el orden de realizacin de las rotaciones.
Las matrices representadas en (0.12), (0.13) y (0.14) pueden deducirse
fcilmente a partir de la Figura 2. El componente proyectado de un vector
kz kw =cos
jy kw =-sen jy jv =cos
kz jv =sen
y
x-u
z
v
w
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
11
unitario (de magnitud 1) equivale al coseno o seno del ngulo en cuestin, a
partir de la definicin de los mismos, cara opuesta = 1 cos() ycara adyacente
= 1 sin().
Ejemplo1 Rotacinbsica sobreun ejeprincipal
Suponiendo un punto [ ] 1 2 3
T
oxyz
p expresado con respecto del
sistema OXYZ y asumiendo que el sistema de coordenadas OUVW ha sido
rotado con respecto del eje X un ngulo de 30 grados, el mismo punto
expresado en trminos del sistema de coordenadas OUVW estara dado
por:
0
,30
T
ouvw oxyz
x
p R p
Respuesta:
p
ouvw
1
0
0
0
cos 30grd
.
( )
sen 30grd
.
( )
0
sen 30grd
.
( )
cos 30grd
.
( )
1
2
3
.
p
ouvw
1
3.232
1.598
fin Ejemplo1
1.1.2. Rotaciones Compuestas
Para representar una secuencia finita de rotaciones se pueden multiplicar las
matrices de rotacin bsica entre s, observando cuidadosamente el orden o
secuencia de realizacin de las rotaciones. Este orden es importante dado
que la multiplicacin de matrices no es conmutativa. Cada matriz de
rotacin dentro de la secuencia puede expresar una transformacin
rotacional respecto del sistema de coordenadas de referencia fijo (en los
casos anteriores denominado OXYZ) o respecto de alguno de los ejes del
sistema de coordenadas en movimiento (OUVW). Para obtener un orden
adecuado en la secuencia de multiplicaciones partiendo de la coincidencia
entre ambos sistemas de coordenadas observe las siguientes reglas:
1. Defina una matriz identidad de 3x3 para representar la
coincidencia entre los dos sistemas de coordenadas.
2. Si el sistema de coordenadas en movimiento (OUVW) se
gira respecto de uno de los ejes principales del sistema de
referencia (OXYZ), entonces premultiplicar la matriz de
rotacin previa resultante por la matriz de rotacin bsica
correspondiente a dicho giro.
12
3. Si el sistema de coordenadas en movimiento (OUVW) se
gira respecto de alguno de sus ejes, entonces
postmultiplicar la matriz de rotacin previa resultante por
la matriz de rotacin bsica correspondiente a dicho giro.
Ejemplo2 Rotacincompuesta
Encontrar la matriz de rotacin resultante que representa la siguiente
secuencia de giros:
1. Giro de 80 respecto del eje OX
2. Giro de 35 respecto del eje OZ
3. Giro de 15 respecto del eje OU
4. Giro de 30 respecto del eje OY
R
xu
( )
1
0
0
0
cos ( )
sen ( )
0
sen ( )
cos ( )
R
yv
( )
cos ( )
0
sen ( )
0
1
0
sen ( )
0
cos ( )
R
zw
( )
cos ( )
sen ( )
0
sen ( )
cos ( )
0
0
0
1
R
yv
30grd
.
( ) R
zw
35grd
.
( )
.
R
xu
80grd
.
( )
.
R
xu
15grd
.
( )
.
0.709
0.574
0.41
0.541
0.071
0.838
0.451
0.816
0.361
fin Ejemplo2
1.1.3. Rotacin Sobre un Eje Arbitrario
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
13
En algunos casos se hace necesario representar giros del sistema de
coordenadas en movimiento OUVW sobre ejes arbitrarios. Por ejemplo,
suponiendo que se quiere mover la mano de un robot manipulador sobre
un eje arbitrario dentro de su volumen de trabajo con el propsito de
insertar una tuerca en un tornillo. Se define el eje de giro de rosca del
tornillo como el eje arbitrario y se representa este por medio de un vector
unitario con componentes
( )
, ,
x y z
r r r r que pasa por el mismo origen del
sistema de coordenadas de la mano del robot.
Para derivar la matriz de rotacin compuesta resultante podemos llevar a
coincidencia cualquiera de los ejes principales del sistema de coordenadas
OUVW con el vector r a travs de una secuencia de rotaciones sobre los
ejes principales del sistema de coordenadas OXYZ, luego giraramos con
respecto al mismo eje llevado a coincidencia (o r) el ngulo correspondiente
al giro requerido respecto de r y finalmente regresara a la posicin original
el sistema de coordenadas girado. Matemticamente esto se puede expresar
de la siguiente manera a partir de un ejemplo.
Figura 4 Rotacinrespectodeun ejearbitrarior
El primer paso es definir el eje que se llevar a coincidencia con r.
Arbitrariamente se escoge el eje z (podra ser cualquiera de los otros). De la
Figura 4 Rotacinrespectodeun ejearbitrarior
Figura 4 se deduce que,
( ) ( )
+ +
2 2 2 2
sen cos
y z
y z y z
r r
r r r r
z
y
x
r
ry rx
rz
14
( ) ( )
+
+ + + + + +
2 2
2 2
2 2 2 2 2 2 2 2 2
sen cos
y z
x x
x y z x y z x y z
r r
r r
r
r r r r r r r r r
El siguiente paso es el de definir la secuencia de giros que llevarn a
coincidencia los vectores unitarios de r y OZ.
, , , , , , r x y z y x
R R R R R R
La matriz de rotacin compuesta resultante puede expresarse en trminos
del vector r as,
( )
( )
( )
1
+ +
+
1
1
1
+ +
+ 1
1
1
1
+ +
+
1
1
1
]
2 2 2 2 2
2 3 3
2 2 2 2 2
, 3 2 3
2 2 2 2 2
3 3 2
y z x x y z x z y
x z y x y z y z x
r
x y z x z y y z x
c r r r
r r r V s r r r r r V s r r
r r r
c r r r
r r r V s r r r r r V s r r
R
r r r
c r r r
r r r V s r r r r r V s r r
r r r
Simplificando los trminos diagonales,
2
2
2
2
, 2
2
2
c
1
c
c
x x y z x z y
r x y z y y z x
x z y y z x z
r V r r r V s r r r r V s r r
R r r V s r r r V r r r V s r r
r
r r V s r r r r V s r r r V r
1
+ +
1
1 + +
1
+ +
1
]
(0.15)
Donde ( ) 1 cos V y el vector r no requiere ser expresado como
vector unitario.
Ejemplo3 Rotacinsobreun ejearbitrario
Gire un cuerpo ligado al sistema OUVW 35 respecto de un vector
( ) 1,1,1
oxyz
r
Aplicando la ecuacin (0.15) para un vector r y un ngulo de rotacin de 35
grados,
R
x
35grd
.
r , ( )
0.879
0.391
0.271
0.271
0.879
0.391
0.391
0.271
0.879
fin Ejemplo3
La ecuacin (0.15) representa una transformacin muy til que ser utilizada
posteriormente.
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
15
1.1.3.1. ngulo y Eje de Rotacin Equivalente
Dada una transformacin rotacional arbitraria, se puede utilizar la ecuacin
(0.15) para obtener el eje sobre el cual una rotacin equivalente de se
lleva a cabo. Dada una transformacin rotacional R expresada
simblicamente por los ejes ortogonales en movimiento (vectores columna)
sobre los ejes principales xyz (vectores fila):
1
1
1
1
]
x x x
y y y
z z z
n o a
R n o a
n o a
Igualamos R con
, r
R en la ecuacin (0.15) para encontrar relaciones
trigonomtricas que permitan deducir a partir de funciones seno y
coseno.
1
+ +
1
1
1
1 + +
1
1
1
+ + ] 1
]
2 2
2 2
2
2
2
c
1
c
c
x x y z x z y
x x x
y y y x y z y y z x
z z z
x z y y z x z
r V r r r V s r r r r V s r r
n o a
n o a r r V s r r r V r r r V s r r
r
n o a
r r V s r r r r V s r r r V r
(0.16)
De este procedimiento, y asumiendo una rotacin positiva alrededor del
vector r de tal forma que 0 , encontramos que el ngulo de rotacin
est definido de manera nica como
( ) ( ) ( ) ( )
_
+ + + +
,
2 2 2
z x y
atan2 1 ,
x y z y z x
n o a o a a n n o (0.17)
Este resultado se obtiene a partir de la ecuacin (0.16) sumando los
elementos diagonales para determinar una expresin ( ) cos y de la
diferencia entre los trminos simtricos sobre la diagonal elevados al
cuadrado para determinar la expresin ( ) sen . Es decir,
+ +
2
1
c
2
x y z
n o a
r
(0.18)
( ) ( ) ( )
+ +
2 2 2
z x y 2
1
2
y z x
s o a a n n o
r
(0.19)
Los componentes de r pueden obtenerse de igual manera como
( )
2
z y
x
o a
r
sen
(0.20)
( )
2
x z
y
a n
r
sen
(0.21)
16
( )
2
y x
z
n o
r
sen
(0.22)
Ciertamente, cuando el ngulo de rotacin es muy pequeo, el eje de
rotacin no est fsicamente bien definido debido a la magnitud de los
denominadores y numeradores en las ecuaciones (0.20)-(0.22). Cuando el
ngulo de rotacin se acerca a 180
o
el vector r tampoco est bien definido
debido a la magnitud del seno. Para ngulos mayores de 90
o
se procede de
manera diferente a encontrar el vector r, igualando los elementos diagonales
de la ecuacin (0.16) encontramos el elemento ms grande de r. Se presume
que la matriz de rotacin est normalizada y su determinante es +1/ -1.
( )
( )
( )
cos
1 cos
x
x z y
n
r signo o a (0.23)
( )
( )
( )
cos
1 cos
x
y x z
o
r signo a n (0.24)
( )
( )
( )
cos
1 cos
x
z y x
a
r signo n o (0.25)
Si
x
r es el ms grande,
2
y x
y
x
n o
r
r V
(0.26)
2
x z
z
x
a n
r
r V
(0.27)
Si
y
r es el ms grande,
2
y x
x
y
n o
r
r V
(0.28)
2
z y
z
y
o a
r
r V
(0.29)
Si
z
r es el ms grande,
2
x z
x
z
a n
r
r V
(0.30)
2
z y
y
z
o a
r
r V
(0.31)
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
17
Ejemplo4 Determinacindel ejeynguloderotacinequivalentesa partir deuna matriz detransformacin
homognea dada.
Determine el eje (k) y ngulo de rotacin ( ) equivalentes para la matriz
1
1
1
1
]
,90 ,90
0 0 1
1 0 0
0 1 0
y z
R R
De la ecuacin (0.17) encontramos
_
,
3
2
atan2 120
-1
2
o
Siendo > 90
o
se determina el componente ms grande de k
correspondiente al elemento ms grande de la diagonal.
+
1 1 1
2 2
3
x
k
Entonces
1
3
1
3
y
z
k
k
Es decir,
,90 ,90 ,120
o o o
y z k
R R R donde + +
1 1 1
3 3 3
k i j k
fin Ejemplo4
18
1.1.4. Operadores de Rotacin con ngulos de Euler y Cuaternios
Figura 5 RepresentacingrficadelosngulosdeEuler (convencinx)
Las matrices de rotacin bsicas expresadas por los operadores (0.12),
(0.13) y (0.14) requieren de nueve elementos para describir parcialmente la
orientacin de un cuerpo rgido rotante respecto de un sistema de
coordenadas de referencia. Adems, individualmente no conducen
directamente a un conjunto completo de coordenadas generalizadas.
Tal conjunto de coordenadas generalizadas pueden ser proporcionados por
los denominados ngulos de Euler , y .
Existen mltiples secuencias de rotacin posibles con estos tres ngulos.
En la siguiente tabla se presentan algunas de ellas.
12 conjuntos de ngulos fijos de Euler
Rotacin 1 Rotacin 2 Rotacin 3
X
z,z
1
y
x
x
1
y
1
y
x
x
1
z
2
y
2
y
x
x
1,
x
2
z
2
,z3
y
2
y
3
x
3
z,z
1
z,z
1
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
19
Y
*
1
Q
Q
Q
(0.41)
La composicin de rotaciones utilizando cuaterniones resulta de la
multiplicacin entre cuaternios.
El cuaternio que representa una rotacin de valor sobre un eje r est
dada por,
( )
_
_ _
, , ,
, cos , sen
2 2
Q R r r (0.42)
Ejemplo5 Rotacionesempleandocuaternios
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
21
El cuaternio que representa una rotacin de
0
90 sobre un eje ( ) 4,2, 1 est
dada por,
( )
_
,
0
2 4 2 2 2 2
,90 , , ,
2 2 2 2
Q R r
Para aplicar dicha rotacin sobre otro vector l se evala el producto
( )
*
0, Q l Q .
Rotaciones compuestas pueden expresarse fcilmente por medio del
producto entre cuaternios,
3 2 1
Q Q Q (0.43)
fin Ejemplo5
Ejemplo6 Composicin derotacionescon traslaciones
El resultado de trasladar y luego rotar un sistema est dado por,
( ) ( ) ( ) +
*
0, 0, 0,
oxyz ouvw
r Q r Q p (0.44)
Aplicando primero el giro y despus la traslacin,
( ) ( ) +
*
0, 0,
oxyz ouvw
r Q r p Q (0.45)
fin Ejemplo6
Estas cuatro variables expresadas en trminos de los ngulos de Euler se
denominan cuaternios,
0
cos
2 2
q sen (0.46)
1
2 2
q sen sen (0.47)
+
2
cos
2 2
q sen (0.48)
+
3
cos cos
2 2
q (0.49)
Donde la condicin de normalizacin est dada por,
3
2
0
1
n
n
q (0.50)
La relacin entre los cuaterniosy la matriz de orientacin R est dada por,
22
+
2 2 2
3 ii i j
j i
R q q q (0.51)
+
3
2
ij i j ijk k
R qq qq if i j (0.52)
Donde i=0,1,2.
En forma matricial,
1 + +
1
+ + +
1
1
+ + +
]
2 2 2 2
3 3 3
2 2 2 2
3 3 3
2 2 2 2
3 3 3
2 2 2 2
2 2 2 2
2 2 2 2
x y z x y z x z y
x y z x y z y z x
x z y y z x x y z
q q q q q q qq q q qq
R q q qq q q q q q q qq
q q qq q q qq q q q q
(0.53)
1.1.6. Interpretacin Geomtrica de las Matrices de Rotacin
Cada vector columna es una representacin del vector
unitario del eje rotado expresado en trminos de los
vectores unitarios de los ejes del sistema de referencia, y
cada vector fila es una representacin del vector unitario
de los ejes de referencia expresado en funcin de los
vectores unitarios de los ejes rotados del sistema OUVW.
Como cada fila y columna es una representacin de un
vector unitario, la magnitud de cada una de ellas debera
ser igual a 1. Sistema de coordenadas ortonormal. El
determinante de una matriz de rotacin es +1 para un
sistema dextrogiro (RMD) y -1 para un levogiro (sentido
opuesto a RMD).
Como cada fila es una representacin vectorial de vectores
ortonomales, el producto interno (producto escalar) de
cada fila por cualquier otra fila es igual a cero.
Anlogamente para el producto interno entre columnas.
La inversa de una matriz de rotacin es la traspuesta de si
misma. Esto se deduce a partir de las primeras dos
observaciones anteriores.
1.2. Matrices de Transformacin Homogneas
Las matrices de rotacin nicamente permiten representar cambios de
orientacin entre dos sistemas de coordenadas diferentes. En robtica de
manipuladores es evidente la necesidad de representar cambios
traslacionales, adems de los rotacionales. Para ello se definen las matrices
de transformacin homognea.
Una matriz de transformacin homognea es un operador que soporta
ambas transformaciones de manera integrada y adems escalado y
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
23
perspectiva. Son matrices de 4x4 que transforman un vector expresado en
coordenadas homogneas desde un sistema de coordenadas hasta otro
sistema de coordenadas. Consisten de 4 submatrices.
1
1
]
3 3 3 1
1 3 1 1
x x
x x
Rotacion Posicion
T
perspectiva escalado
(0.54)
La submatriz superior derecha tiene el efecto de trasladar el sistema de
coordenadas OUVW que tiene ejes paralelos al sistema de referencia
OXYZ, pero cuyo origen est en el punto Posicin3x1. La submatriz inferior
izquierda (
1 3
) se emplea para variaciones en la perspectiva visual de los
elementos y la submatriz inferior derecha corresponde a un parmetro de
escalado (ambos empleados en aplicaciones de simulacin y modelado).
1.2.1. Transformaciones de Perspectiva
Figura 6 TransformacindePerspectiva
Suponiendo la imagen formada de un objeto visto a travs de un lente, un
punto del objeto x, y, z se visualiza en las coordenadas x
, y
, z
si el lente
tiene una distancia focal f positiva. y
+
(0.57)
f
x,y,z
x,y,z
y
x
z
24
'
'
x x
f y f
+
(0.58)
Ntese que x, y, y z son negativos y f es positivo. Eliminando y entre las
ecuaciones (0.55) y (0.57) se obtiene,
_
+
,
'
'
z z
f
z y
f
z
(0.59)
y resolviendo por z se obtiene,
'
1
z
z
y f
(0.60)
A partir de las ecuaciones (0.56) y (0.58) se obtiene,
'
1
x
x
y f
(0.61)
Para obtener la distancia y se reescriben las ecuaciones (0.55) y (0.57) de la
siguiente manera,
' '
z y
z y
(0.62)
' '
z f
z y f
+
(0.63)
Por lo tanto,
' '
y f
y y f
+
(0.64)
y
'
1
y
y
y f
(0.65)
La transformacin homognea que produce el mismo efecto es,
1 0 0 0
0 1 0 0
0 0 1 0
1
0 0 1
P
f
1
1
1
1
1
1
1
]
(0.66)
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
25
Dado que cualquier punto + +
i j k
x y z se transforma de la siguiente
manera,
1 0 0 0
0 1 0 0
0 0 1 0
1
0 0 1 1 1
x
x
y
y
z
z
y
f f
1 1
1
1 1
1
1 1
1
1 1
1
1 1
1
1 1
1
]
1 1
] ]
(0.67)
el punto de la imagen x, y, z obtenido dividiendo por el factor de peso
( ) 1 / y f , es
( ) ( ) ( ) 1 / 1 / 1 /
y z x
i j k
y f y f y f
+ +
(0.68)
Una transformada similar a P pero con 1/ f en la posicin 4,1 o 4,3
produce una transformacin en perspectiva a lo largo del eje x o a lo largo
del eje z, respectivamente.
1.2.2. La Transformacin de Escalado
Esta transformacin es til, en modelado y simulacin, para representar
deformaciones. Sin embargo, no son comunes. Para representar escalado
heterogneo a lo largo de cada uno de los ejes principales se empleara la
siguiente transformacin,
0 0 0
0 0 0
0 0 0
0 0 0 1
a
b
T
c
1
1
1
1
1
1
]
(0.69)
Donde, a, b, c representan los factores de escalado en x, y, z
respectivamente. Para escalado homogneo de un objeto por un factor s,
s a b c en (0.69).
26
2. Algoritmos
Se presenta a continuacin el conjunto de funciones que cubren las
soluciones algoritmicas a los diversos problemas propios de la cinemtica
de manipuladores. Se emplea el smbolo como operador de
asignacin y se retorna de la funcin la ltima variable definida.
Funcin Descripcin Argumentos
(entrada:salida)
DH_param(dh_joint,Ang_Dis) Extrae los parmetros
Denavit-Hartenberg (DH)
de una articulacin i
( ) , , , ,
i i i i i
a d . Define
la variable de articulacin
segn su tipo:
Articulacin rotacional
0 y la variable de
articulacin es
i
Articulacin
translacional 1 y la
variable de articulacin
es
i
d
Entrada:
dh_joint = Vector
columna de
parmetros DH
Ang_Dis = Valor de
ngulo ( 0) o
distancia ( 1)
Salida:
( ) , , ,
T
i i i i
a d
Joint_range(joint,q) Verifica que una pose del
manipulador se encuentre
dentro del espacio de
trabajo el mismo.
Entrada:
joint = Vector
columna de
parmetros DH con
rangos de
articulacin
(bajo:alto)
q = Valor de la
variable de
articulacin
linktran(dh_joint,Ang_Dis) Conforma la matriz de
transformada homognea
que relaciona una
articulacin con la
inmediatamente anterior
Idem DH_param
Tabla 2 Relacin deFuncionesen Cinemtica
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
27
Algoritmo 1: Clculo de Matrices de rotacin bsicas (Rx,Ry,Rz)
R
x
( )
1
0
0
0
0
cos ( )
sin ( )
0
0
sin ( )
cos ( )
0
0
0
0
1
,
:
R
y
( )
cos ( )
0
sin ( )
0
0
1
0
0
sin ( )
0
cos ( )
0
0
0
0
1
,
:
R
z
( )
cos ( )
sin ( )
0
0
sin ( )
cos ( )
0
0
0
0
1
0
0
0
0
1
,
:
Algoritmo 2: Clculo de la matriz de transformacin translacional bsica (Txyz)
T x y , z , ( )
1
0
0
0
0
1
0
0
0
0
1
0
x
y
z
1
,
:
Algoritmo 3: Clculo de la matriz de rotacin bsica sobre un eje arbitrario r en
R r , ( )
1
r ( )
2
cos ( ) r
1
( )
2
r
2
( )
2
+
1
]
r
0
( )
2
+
r
0
r
1
1 cos ( ) ( ) sin ( ) r r
2
+
r
0
r
2
1 cos ( ) ( ) sin ( ) r r
1
r
0
r
1
1 cos ( ) ( ) sin ( ) r r
2
cos ( ) r
0 ( )
2
r
2 ( )
2
+
1
]
r
1 ( )
2
+
r
1
r
2
1 cos ( ) ( ) sin ( ) r r
0
+
r
0
r
2
1 cos ( ) ( ) sin ( ) r r
1
+
r
1
r
2
1 cos ( ) ( ) sin ( ) r r
0
cos ( ) r
0 ( )
2
r
1 ( )
2
+
1
]
r
2 ( )
2
+
1
1
1
1
1
]
:
28
Algoritmo 4: Clculo de los rangos articulares de un robot manipulador
(Joint_range)
joint_range joint q , ( ) joint_range_low joint
6
joint_range_high joint
7
1 joint_range_low q joint_range_high if
0 otherwise
:
Algoritmo 5: Clculo de los parmetros de Denavit-Hartenberg para una
articulacin de un robot manipulador (DH_param)
DH_param dh_joint Ang_Dis , ( ) dh_joint
1
a dh_joint
2
n rows dh_joint ( )
Ang_Dis
d dh_joint
4
n 4 if
Ang_Dis
d dh_joint
4
dh_joint
5
0 if
dh_joint
3
d Ang_Dis
otherwise
n 5 if
DH_param a d ( )
T
:
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
29
Algoritmo 6: Clculo de la transformada homognea de una articulacin i en un
robot manipulador (linktran)
linktran dh_joint Ang_Dis , ( ) DH_p DH_param dh_joint Ang_Dis , ( )
DH_p
1
a DH_p
2
DH_p
3
d DH_p
4
r rows dh_joint ( )
A
i
cos ( )
sin ( )
0
0
sin ( ) cos ( )
cos ( ) cos ( )
sin ( )
0
sin ( ) sin ( )
cos ( ) sin ( )
cos ( )
0
a cos ( )
a sin ( )
d
1
,
r 5 if
range_ok joint_range dh_joint Ang_Dis , ( )
A
i
cos ( )
sin ( )
0
0
sin ( ) cos ( )
cos ( ) cos ( )
sin ( )
0
sin ( ) sin ( )
cos ( ) sin ( )
cos ( )
0
a cos ( )
a sin ( )
d
1
,
range_ok 1 if
A 0 otherwise
otherwise
A
i
:
Algoritmo 7: Clculo de la cinemtica directa de un robot manipulador (fkine)
fkine DH_Robot q , ( ) n rows DH_Robot ( )
t identity 4 ( )
t t linktran DH_Robot
T
( )
i
q
i
,
1
]
i 1 n .. for
cols q ( ) 1 ( ) rows q ( ) n ( ) if
t q
T
( )
1
T
tt identity 4 ( )
tt tt linktran DH_Robot
T
( )
i
q
i j ,
,
1
]
i 1 n .. for
t
1 j ,
tt
j 1 cols q ( ) .. for
t
otherwise
:
Algoritmo 8: Clculo de una transformacin diferencial de dos transformadas
homogneas representado en un vector seisdimensional (tr2diff)
30
tr2diff T1 T2 , ( ) a submatrix T1 1 , 3 , 1 , 1 , ( ) submatrix T2 1 , 3 , 1 , 1 , ( )
b submatrix T1 1 , 3 , 2 , 2 , ( ) submatrix T2 1 , 3 , 2 , 2 , ( )
c submatrix T1 1 , 3 , 3 , 3 , ( ) submatrix T2 1 , 3 , 3 , 3 , ( )
abc 0.5 a b + c + ( )
d submatrix T2 1 , 3 , 4 , 4 , ( ) submatrix T1 1 , 3 , 4 , 4 , ( )
d
d
1
d
2
d
3
abc
1
abc
2
abc
3
:
Algoritmo 9: Jacobiano de un robot manipulador con respecto al sistema de
coordenadas del efector final (jacobian)
jacobian DH_Robot q , ( ) n rows DH_Robot ( )
J Zero_Mat 6 1 , ( )
T identity 4 ( )
T linktran DH_Robot
T
( )
i
q
i
,
1
]
T
d
T
1 1 ,
T
2 4 ,
T
2 1 ,
T
1 4 ,
+
T
1 2 ,
T
2 4 ,
T
2 2 ,
T
1 4 ,
+
T
1 3 ,
T
2 4 ,
T
2 3 ,
T
1 4 ,
+
delta T
3 1 ,
T
3 2 ,
T
3 3 ,
( )
T
DH_Robot
i 5 ,
0 if
d T
3 1 ,
T
3 2 ,
T
3 3 ,
( )
T
delta Zero_Mat 3 1 , ( )
otherwise
J augment stack d delta , ( ) J , ( )
i n n 1 , 1 .. for
J submatrix J 1 , 6 , 1 , n , ( )
:
Algoritmo 10: Jacobiano de un robot manipulador con respecto al sistema de
coordenadas de referencia (jacob_world)
jacob_world DH_Robot q , ( ) Jn jacobian DH_Robot q , ( )
Tn fkine DH_Robot q , ( )
J0
Tn
1 1 ,
Tn
2 1 ,
Tn
3 1 ,
0
0
0
Tn
1 2 ,
Tn
2 2 ,
Tn
3 2 ,
0
0
0
Tn
1 3 ,
Tn
2 3 ,
Tn
3 3 ,
0
0
0
0
0
0
Tn
1 1 ,
Tn
2 1 ,
Tn
3 1 ,
0
0
0
Tn
1 2 ,
Tn
2 2 ,
Tn
3 2 ,
0
0
0
Tn
1 3 ,
Tn
2 3 ,
Tn
3 3 ,
,
Jn
:
Algoritmo 11: Clculo de la pseudo-inversa de una matriz (pseudo_inv).
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
31
pseudo_inv A tol , ( ) sa svd A ( )
r rows sa ( )
c cols sa ( )
eps 2.2204
16
U submatrix sa 1 , r c , 1 , c , ( )
V submatrix sa r c 1 + , r , 1 , c , ( )
S svds A ( )
tol rows A ( ) S
1
eps rows A ( ) cols A ( ) > if
tol cols A ( ) S
1
eps otherwise
tol 0 if
f 0
f f 1 + S
j
tol > if
j 1 length S ( ) .. for
x Zero_Mat cols A ( ) rows A ( ) , ( ) f 0 if
ns
i
1
S
i
S
i
0 if
ns
i
0 otherwise
i 1 f .. for
S diag ns ( )
x submatrix V 1 , rows V ( ) , 1 , f , ( ) S submatrix U 1 , rows U ( ) , 1 , f , ( )
T
f 0 > if
x
:
Algoritmo 12: Clculo de la cinemtica inversa de un robot manipulador por
mtodo iterativo utilizando el jacobiano y la pseudoinversa (ikine)
ikine DH_Robot tr , ( ) ilimit 1000
min 0.0001
n rows DH_Robot ( )
q Zero_Mat n 1 , ( )
m Ones_Mat 6 1 , ( )
tcount 0
nm 1
count 0
e Multmatriztr2diff fkine DH_Robot q , ( ) tr , ( ) m , ( )
dq pseudo_inv jacob_world DH_Robot q , ( ) min , ( ) e
q q dq +
nm norme diag dq ( ) ( )
count count 1 +
break count ilimit > if
nm min > while
qt q
T
:
32
Referencias
1. B. Roth, Performance Evaluation of Manipulators from a Kinematic
Viewpoint, Performance Evaluation of Manipulators, National Bureau
of Standards, special publication, 1975.
2. D. Pieper, The Kinematics of Manipulators Under Computer
Control Unpublished Ph.D. thesis, Stanford University, 1968.
3. H.Y., Lee y C.G., Liang, Displacement Analysis of the General Spatial
7-Link 7R Mechanism. Mechanism and Machine Theory, 23, 219-226,
1998.
4. R.G., Selfridge, Analysis of 6-Link Revolute Arms, Mechanism and
Machine Theory, 24 (1), 1-8, 1989.
5. C., Mavroidis, y B., Roth, Structural Parameters Which Reduce the
Number of Manipulator Configurations, Journal of Mechanical
Design, 116, 3-10, 1994.
6. J., Duffy, Analysis of Mechanisms and Manipulators, John Wiley &
Sons, 1980.
7. M., Raghavan y B., Roth, Inverse kinematics of Manipulators Under
Computer Control, Proceedings 2
nd
International Congress for the
Theory of Machines and Mechanisms, Zakopane, Poland. Vol. 2. 159-
168. 1993.
8. R.P., Paul, Robot Manipulators: Mathematics, Programming and
Control, MIT Press, 1981.
9. D.E. Whitney, Resolved Motion Rate Control of Manipulators and
Human Prosthesis, IEEE Transactions on Man-Machine Systems,
10(2), 47-53, 1969.
10. R.M. Murray, Z. Li, y S.S. Sastry, A Mathematical Introduction to
Robotic Manipulation, London: CRC Press, 1994.
S. Y., Nof, Handbook of Industrial Robotics, 2
nd
Ed., John Wiley & Sons, New
York, 1999.
R.C. Dorf, S. Y., Nof, International Encyclopedia of Robotics: Applications and
Automation, Vol. 1-3, John Wiley & Sons, New York, 1988.
K.S. Fu, R.C. Gonzlez y C.S.G. Lee, Robtica: Control, Deteccin, Visin e
Inteligencia, McGraw-Hill, Espaa, 1988.
Barrientos, L.F. Pein, C. Balaguer, R. Aracil, Fundamentos de Robtica,
McGraw-Hill, Espaa, 1998.
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
33
34
Glosario de Trminos
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
35
Indice
M
matriz de rotacin, 6
movimiento de tornillo, 4
R
Robot Stanford, 32
T
Transformaciones Espaciales
ngulos de Euler, 18
Cuaternios, 18, 19, 20, 21
Conjugado de, 20
Inverso de, 20
Norma de, 20
Producto de, 20
Producto por un escalar, 20
Suma de, 20
Matrices de rotacin bsica, 8
Rotacin, 8, 11, 12, 13, 14, 15, 18, 19, 22
V
vector de posicin, 5
W
wrench, 4