Está en la página 1de 35

MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS

Andrs J aramillo Botero


1
Tabla de Contenido
1. MOVIMIENTO ESPACIAL DE CUERPOS RGIDOS................................... 4
1.1. TRANSFORMACIN ESPACIAL DE CUERPOS RGIDOS ................................. 4
1.1. MATRICES DE ROTACIN......................................................................... 8
1.1.1. Matrices de Rotacin Bsicas ...........................................................8
1.1.2. Rotaciones Compuestas..................................................................11
1.1.3. Rotacin Sobre un Eje Arbitrario ....................................................12
1.1.3.1. ngulo y Eje de Rotacin Equivalente..................................................................15
1.1.4. Operadores de Rotacin con ngulos de Euler y Cuaternios.............18
1.1.5. Cuaternios .....................................................................................19
1.1.5.1. Propiedades de los Cuaternios ...............................................................................20
1.1.6. Interpretacin Geomtrica de las Matrices de Rotacin....................22
1.2. MATRICES DE TRANSFORMACIN HOMOGNEAS .................................... 22
1.2.1. Transformaciones de Perspectiva....................................................23
1.2.2. La Transformacin de Escalado......................................................25
2. ALGORITMOS.......................................................................................... 26
Algoritmo 1: Clculo de Matrices de rotacin bsicas (Rx,Ry,Rz) ........................................27
Algoritmo 2: Clculo de la matriz de transformacin translacional bsica (Txyz).................27
Algoritmo 3: Clculo de la matriz de rotacin bsica sobre un eje arbitrario r en ............27
Algoritmo 4: Clculo de los rangos articulares de un robot manipulador (Joint_range)........28
Algoritmo 5: Clculo de los parmetros de Denavit-Hartenberg para una articulacin de un
robot manipulador (DH_param) ..........................................................................................28
Algoritmo 6: Clculo de la transformada homognea de una articulacin i en un robot
manipulador (linktran)..........................................................................................................29
Algoritmo 7: Clculo de lacinemticadirectade un robot manipulador (fkine) ...................29
Algoritmo 8: Clculo de una transformacin diferencial de dos transformadas homogneas
representado en un vector seisdimensional (tr2diff)..............................................................29
Algoritmo 9: Jacobiano de un robot manipulador con respecto al sistema de coordenadas del
efector final (jacobian)..........................................................................................................30
Algoritmo 10: Jacobiano de un robot manipulador con respecto al sistemade coordenadas de
referencia(jacob_world).......................................................................................................30
Algoritmo 11: Clculo de la pseudo-inversa de una matriz (pseudo_inv).............................30
Algoritmo 12: Clculo de la cinemtica inversa de un robot manipulador por mtodo iterativo
utilizando el jacobiano y la pseudoinversa (ikine)..................................................................31
REFERENCIAS................................................................................................. 32
GLOSARIO DE TRMINOS............................................................................. 34
INDICE............................................................................................................. 35
2
Lista de Ejemplos
EJEMPLO 1 ROTACIN BSICA SOBRE UN EJE PRINCIPAL ................................................................11
EJEMPLO 2 ROTACIN COMPUESTA....................................................................................................12
EJEMPLO 3 ROTACIN SOBRE UN EJE ARBITRARIO...........................................................................14
EJEMPLO 4 DETERMINACIN DEL EJE Y NGULO DE ROTACIN EQUIVALENTES A PARTIR DE
UNA MATRIZ DE TRANSFORMACIN HOMOGNEA DADA.........................................................17
EJEMPLO 5 ROTACIONES EMPLEANDO CUATERNIOS........................................................................20
EJEMPLO 6 COMPOSICIN DE ROTACIONES CON TRASLACIONES.....................................................21
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
3
Lista de Figuras
FIGURA 1 ROTACIONES BSICAS RESPECTO DE LOS EJES X, Y, Z......................................................8
FIGURA 2 MATRIZ DE ROTACIN BSICA, R
X,
, A PARTIR DE PROYECCIN DE VECTORES
UNITARIOS......................................................................................................................................10
FIGURA 3 ROTACIN RESPECTO DE UN EJE ARBITRARIO R..................................................................13
FIGURA 4 REPRESENTACIN GRFICA DE LOS NGULOS DE EULER (CONVENCIN X) ...............18
FIGURA 5 TRANSFORMACIN DE PERSPECTIVA.................................................................................23
4
1. Movimiento Espacial de Cuerpos Rgidos
Un brazo manipulador puede modelarse como un sistema articulado de
cuerpos rgidos
1
. La localizacin de cada cuerpo rgido, ligado al
manipulador o dentro de su entorno de trabajo (V.gr. una pieza a recoger),
se describe completamente por su posicin y orientacin en el espacio.
Para representar la relacin espacial entre los cuerpos que componen un
manipulador y los objetos con que ste interacta se definen operadores
matemticos de posicin y orientacin.
En este captulo se presentan las herramientas ms comunes,
principalmente derivadas del lgebra lineal y de la teora de tornillos, para la
representacin de la ubicacin y relacin espacial de cuerpos. Estas tcnicas
sern de utilidad para la solucin de problemas relacionados con el
movimiento de los manipuladores, a discutir en captulos posteriores.
Los elementos de la teora de tornillo se remontan al trabajo de Chasles y
Poinsot a principios del siglo diecinueve (1800s). Chasles prob que un
cuerpo rgido puede moverse desde una posicin cualquiera a otra por
medio de un movimiento consistente de una rotacin alrededor de una lnea
recta seguido de una traslacin paralela a la misma lnea. Este movimiento
se denomina movimientodetornillo. Poinsot descubri que cualquier sistema
de fuerzas actuando sobre un cuerpo rgido puede ser reemplazado por una
nica fuerza aplicada a lo largo de una lnea, combinada con un torque
alrededor de la misma lnea. A esta fuerza se le denomina un wrench.
Este captulo presentar herramientas matemticas bsicas como la matriz
de rotacin, los ngulos de Euler y el cuaternio unitario. Estos sirven para
describir la orientacin del efector final del robot manipulador que,
conjuntamente con la posicin pueden ser expresados en funcin de las
variables de articulacin para determinar la solucin a los problemas
cinemticos del manipulador.
1.1. Transformacin Espacial de Cuerpos Rgidos
El movimiento de un cuerpo rgido en el espacio euclidiano se describe
dando la localizacin de una partcula del mismo en cada instante de
tiempo, en relacin con un sistema de coordenadas inercial cartesiano.
Especficamente, se escoge un conjunto de tres ejes ortonormales y se
especifica la localizacin de cada partcula del cuerpo rgido utilizando la
terna ( )
3
, , x yz , donde cada coordenada expresa la proyeccin de la
ubicacin de la partcula sobre cada eje. Una trayectoria de cualquier
partcula del cuerpo rgido se representa por medio de una curva
parametrizada en tiempo ( ) ( ) ( ) ( ) ( )
3
, , p t x t y t z t .

1
Se entiende, idealmente, como cuerpo rgido aquel que no se deforma. En trminos ms
formales, es una coleccin de partculas organizadas de tal manera que la distancia entre stas
permanece fija, independiente de los movimientos o fuerzas ejercidas sobre el conjunto.
MOVIMIENTOS ESPACIAL DE CUERPOS RGIDOS
Andrs J aramillo Botero
5
1.1.1. Descripcin de una posicin
Figura 1 Posicin yorientacin deun cuerporgido
Una vez definido un sistema de coordenadas inercial de referencia se
localiza cualquier punto respecto de este por medio de un vector de
posicin de dimensin 3x1. Los componentes numricos de estos vectores
indican la proyeccin del vector a lo largo de los ejes principales del sistema
de referencia.
La posicin puede ser representada por las coordenadas de un punto
arbitrario en el espacio. Asumiendo un sistema de coordenadas de
referencia Oxyz y un punto arbitrario O' fijado a un cuerpo rgido, como se
muestra en la Figura 1. Entonces la posicin de dicho punto respecto del
sistema de coordenadas de referencia est dada por el vector columna
1
1
1
1
]
'
'
'
O
O
O
x
y
z
(0.1)
1.1.2. Descripcin de una orientacin
Para describir la orientacin de un cuerpo en el espacio se asignar un
sistema de coordenadas ligado al cuerpo y luego se describir la relacin
entre dicho sistema de coordenadas y el sistema de coordenadas de
referencia.
Una manera de describir el sistema de coordenadas ligado al cuerpo, es
escribiendo los vectores unitarios de sus ejes principales en trminos del
sistema de coordenadas de referencia. En otras palabras, proyectando cada
vector unitario del sistema de coordenadas ligado al cuerpo sobre cada uno
de los ejes principales del sistema de referencia, resultando en un vector
unitario de dimensin 3x1 para cada eje del sistema de coordenadas ligado
6
al cuerpo. De manera conveniente se pueden apilar juntos los tres vectores
unitarios resultantes como las columnas de una matriz de dimensin 3x3.
Esta matriz se denomina matriz derotacin porque describe la relacin de
orientacin entre un sistema de coordenadas relativo a otro (en este caso de
referencia). Asumiendo, como se muestra en la Figura 1, un sistema de
coordenadas de referencia dado por Oxyz, un sistema de coordenadas,
ligado a un cuerpo en movimiento, dado por O'x'y'z' y los vectores unitarios
u, v y wapuntando en la direccin de los ejes coordenados x', y' y z',
respectivamente. La matriz de rotacin que expresa la orientacin del
sistema O'x'y'z' con respecto del sistema Oxyz es,
[ ]
1
1

1
1
]
11 12 13
' ' ' ' 21 22 23
31 32 33
Oxyz
O x y z
r r r
R u v w r r r
r r r
(0.2)
Dado que los componentes de cualquier vector unitario son simplemente
sus proyecciones sobre las direcciones unitarias del sistema de referencia
empleado, cada uno de estos puede escribirse como el producto punto de
un par de vectores unitarios. Es por ello que los componentes de una
matriz de rotacin son referidos frecuentemente como cosenosdedireccin -
por definicin el producto punto de dos vectores unitarios resulta en el
coseno del ngulo entre estos. Es decir,
( )
1 2
v v cos a (0.3)
donde,
1
v y
2
v son vectores unitarios

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,

' ' ' '


' ' ' '
O x y z Oxyz T
Oxyz O x y z
R R (0.5)
Esto sugiere que la inversa de una matriz de rotacin es igual a su
traspuesta,


' ' ' ' 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
O x y z Oxyz T
Oxyz O x y z
R R I (0.6)
donde
3 3
I corresponde a la matriz de identidad

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,

Puvw en este caso observamos


que ix iu ya que no cambian despus de la rotacin.



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

Para comprobar que la secuencia es importante verificamos a continuacin


como cambia el resultado si no se tuviese en cuenta la no-conmutabilidad
en la multiplicacin de matrices
R
xu
80grd
.
( ) R
zw
35grd
.
( )
.
R
xu
15grd
.
( )
.
R
yv
30grd
.
( )
.
0.635
0.58
0.51
0.554
0.117
0.824
0.538
0.806
0.247

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

12 conjuntos de ngulos de Euler


Rotacin 1 Rotacin 2 Rotacin 3
X

Tabla 1 Representacin derotacionescon losngulosdeEuler


Las convenciones resaltadas por sombreado se conocen respectivamente
como convencin RPY (Roll-Pitch-Yaw), convencin X y convenciones Y
(las rotaciones intermedias se dan sobre los ejes mencionados).




+
1
1
+
1
1
]
, , , z y x
c c c s s s c c s c s s
R R R s c s s s c c s s c c s
s c s c c
(0.32)





1
1
+
1
1
]
, ', ', z x z
c c s c s s c c c s s s
R R R s c c c s c c c s s c s
s s s c c
(0.33)





1
1
+ +
1
1
]
, ', ', z y z
s s c c c c c s s c c s
R R R c s s c c s c s c c s s
s c s s c
(0.34)
1.1.5. Cuaternios
Uno de los problemas en el uso de los ngulos de Euler es que conducen a
singularidades cuando el movimiento angular se acerca a 0
0
o a180
0
. Es
factible, empleando cuaternios y lgebra de cuaternios evitar dichas
singularidades. Los cuaternios, definidos por Hamilton [HAM1843],
20
pueden ser empleados para representar transformaciones de giros y
orientaciones. Un cuaternio est constituido por cuatro componentes
variables ( )
0 1 2 3
, , , , q q q q que representan sus coordenadas en una base
{ } , , , h i j k . El cuaternio se constituye de un trmino escalar, h, y tres que
conforman una parte vectorial, { } , , i j k . De este modo un cuaternio puede
representarse como:
( ) ( )
0 1 2 3
, , , , Q q q q q s v (0.35)
1.1.5.1. Propiedades de los Cuaternios
El conjugado de
*
Q Q se define mantiendo el signo de se invirtiendo
el de v.
( ) ( )
*
0 1 2 3
, , , , Q q q q q s v (0.36)
El producto de dos cuaternios
1 2
Q Q est dado por,
( ) ( ) ( ) + +
3 1 2 1 1 2 2 1 2 1 2 1 2 1 2 2 1
, , , Q Q Q s v s v ss vv v v sv s v (0.37)
Es de notar que el producto entre cuaterniosno es generalmente
conmutativo.
La suma de dos cuaternios +
1 2
Q Q se define como,
( ) ( ) ( ) + + + +
3 1 2 1 1 2 2 1 2 1 2
, , , Q Q Q s v s v s s v v (0.38)
El producto por un escalar
2 1
Q aQ se define como,
( ) ( )
2 1 1 1 1 1
, , Q aQ a s v as av (0.39)
La norma Q est dada por,
( )
+ + +
* 2 2 2 2
0 1 2 3
Q Q q q q q h (0.40)
Consecuentemente el inverso para un Q no nulo se define por,

*
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

representa la distancia de imagen y


varia de acuerdo con la distancia del objeto, y. Si dibujamos puntos en un
plano perpendicular al eje ylocalizado en y

(como el plano de filmacin de


una cmara), se forma entonces una imagen en perspectiva.
Un rayo que pase por el centro del lente no se desva, por lo tanto, se puede
escribir,
'
'
z z
y y
(0.55)
'
'
x x
y y
(0.56)
Un rayo pasante y paralelo al lente pasa a travs del punto focal f, por lo
tanto,
'
'
z z
f y f

+
(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

También podría gustarte