You are on page 1of 18

CINEMÁTICA

Modelar la cinemática de un manipulador equivale a describir matemáticamente el operador


K que relaciona las coordinadas de las articulaciones, q(t) ∈ n, con la posición y
orientación del elemento terminal, p(t) ∈ m,

p(t) = K(q(t)) K : n −→ m

Encontrar la relación inversa se conoce como “problema cinemático inverso”.

dinámica cinemática
u q p
D K

Descripción de la posición
 
Sea î0, ĵ0, k̂0 la base de versores linealmente independientes que define el sistema
x0, y0, z0.
La posición de un punto P0 está dada por

⎡ ⎤ ⎡ ⎤ ⎡ ⎤
⎢ p0x ⎥
⎢ ⎥
⎢ p

0 · î0 ⎥⎥ ⎢⎢ |p0| cos θx ⎥⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
p0 = ⎢⎢⎢ p0y ⎥⎥⎥ = ⎢⎢⎢ p0 · ĵ0 ⎥⎥⎥⎥ = ⎢⎢⎢ |p0| cos θy ⎥⎥⎥

⎣ ⎦ ⎣ ⎦
p0z ⎣
p0 · k̂0

|p0| cos θz

donde p0 = p0xî0 + p0y ĵ0 + p0z k̂0 y cos θx, cos θy y cos θz son los cosenos directores de p0.
Descripción de la orientación

Sea un sistema de coordenadas


x1, y1, z1 fijo con respecto a un objeto rı́gido y definido
por los versores î1, ĵ1, k̂1 .

Ası́:
p = p0 = p0xî0 + p0y ĵ0 + p0z k̂0 en el sistema {0}
p = p1 = p1xî1 + p1y ĵ1 + p1z k̂1 en el sistema {1}
como p0 y p1 son representaciones del mismo vector p en distintos sistemas de coordenadas
se tiene que
p0xî0 + p0y ĵ0 + p0z k̂0 = p1xî1 + p1y ĵ1 + p1z k̂1

De
p0xî0 + p0y ĵ0 + p0z k̂0 = p1xî1 + p1y ĵ1 + p1z k̂1

asumiendo que las bases son ortonormales y multiplicando escalarmente por î0, ĵ0 y k̂0
respectivamente
p0x = p0 · î0 = p1 · î0 = p1xî1 · î0 + p1y ĵ1 · î0 + p1z k̂1 · î0
p0y = p0 · ĵ0 = p1 · ĵ0 = p1xî1 · ĵ0 + p1y ĵ1 · ĵ0 + p1z k̂1 · ĵ0
p0z = p0 · k̂0 = p1 · k̂0 = p1xî1 · k̂0 + p1y ĵ1 · k̂0 + p1z k̂1 · k̂0

que en forma matricial es


p0 = R10p1
donde
⎡ ⎤
î1 · î0 ĵ1 · î0 k̂1 · î0 ⎥⎥


⎢ ⎥
1
R0 = î1 · ĵ0 ĵ1 · ĵ0 k̂1 · ĵ0 ⎥⎥⎥⎥




⎣ ⎦
î1 · k̂0 ĵ1 · k̂0 k̂1 · k̂0

R10 representa la matriz de transformación de las coordenadas de p con respecto a


x1, y1, z1 a las coordenadas con respecto a x0, y0, z0
De igual modo, si
p0xî0 + p0y ĵ0 + p0z k̂0 = p1xî1 + p1y ĵ1 + p1z k̂1

se multiplica escalarmente por î1, ĵ1 y k̂1 respectivamente, se tiene


p1x = p1 · î1 = p0 · î1 = p0xî0 · î1 + p0y ĵ0 · î1 + p0z k̂0 · î1
p1y = p1 · ĵ1 = p0 · ĵ1 = p0xî0 · ĵ1 + p0y ĵ0 · ĵ1 + p0z k̂0 · ĵ1
p1z = p1 · k̂1 = p0 · k̂1 = p0xî0 · k̂1 + p0y ĵ0 · k̂1 + p0z k̂0 · k̂1

que en forma matricial es


p1 = R01p0

donde ⎡ ⎤
î0 · î1 ĵ0 · î1 k̂0 · î1 ⎥⎥


⎢ ⎥
0
R1 = î0 · ĵ1 ĵ0 · ĵ1 k̂0 · ĵ1 ⎥⎥⎥⎥




⎣ ⎦
î0 · k̂1 ĵ0 · k̂1 k̂0 · k̂1

R01 representa la matriz de transformación de las coordenadas de p con respecto a


x0, y0, z0 a las coordenadas con respecto a x1, y1, z1, es decir la inversa de R10.

• Dado que el producto escalar es commutativo, se tiene que



−1
T
R01 = R10 = R10

• Cuando la inversa es igual a la transpuesta la matriz se llama ortonormal


• Una
propiedad

de esta matriz es que los vectores columnas son de módulo unitario y
1
det R0 = ±1.
• Si se consideran

sólo

sistemas coordenados acordes con la regla de la mano derecha
1
entonces det R0 = +1, y a este tipo de matrices se le denomina “matrices
de rotación”.
• El conjunto de todas las matrices de rotación de 3 × 3 suele representarse como SO(3)
(Special Orthogonal Group).
• Puede apreciarse que las columnas de R01 dan las componentes de î1 ĵ1 y k̂1 en el
sistema {0}, respectivamente.
• Como î1 ĵ1 y k̂1 son vectores unitarios sus componentes indican sus cosenos directores;
ası́, R01 indica la orientación del sistema {1} con respecto al sistema {0}.
Otra interpretación importante de una matriz de rotación R ∈ SO(3) es la de un operador
de tranformación de vectores dentro de un mismo sistema de coordenadas.

q0 = Rp0

Interpretaciones de una matriz de rotación

• Transformación de las coordenadas de un punto de un sistema de referencia a otro.

• Orientación de un sistema de coordenadas móvil con respecto a uno fijo.

• Operador que transforma un vector en otro referidos ambos al mismo sistema de


coordenadas.
Si una rotación se realiza con respecto a un eje coordenado se denomina básica.

⎡ ⎤ ⎡ ⎤ ⎡ ⎤


1 0 0 ⎥



Cθ 0 Sθ ⎥



Cθ −Sθ 0 ⎥⎥
R01 = Rx,θ ⎢
= 0 Cθ −Sθ




⎥ R01 = Ry,θ =⎢

⎢ 0 1 0 ⎥

⎥ R01 = Rz,θ = Sθ Cθ 0 ⎥⎥⎥



⎣ ⎦ ⎣ ⎦ ⎣ ⎦
0 Sθ Cθ −Sθ 0 Cθ 0 0 1

Composición de rotaciones

Considerense tres sistemas de coordenades {0}, {1} y {2}.


La representación de un vector p puede pasarse de un sistema a otro, como por ejemplo:

p0 = R10p1
p0 = R20p2
p1 = R21p2

reemplazando la última en la primera

p0 = R10 R21p2

de donde se desprende

R20 = R10R21
Este resultado puede generalizarse para cualquier número de rotaciones como
⎡ ⎤
îk · îq ĵk · îq k̂k · îq ⎥⎥


⎢ ⎥
Rq = îk · ĵq ĵk · ĵq k̂k · ĵq ⎥⎥⎥⎥ = Rq+1
k ⎢



q+2 k
q Rq+1 ...Rk−1
⎣ ⎦
îk · k̂q ĵk · k̂q k̂k · k̂q

Para buscar la transformación inversa:

(Rkq )−1 = (Rkq )T = Rk−1 k−2 q q


k Rk−1 ...Rq+1 = Rk

Debe recordarse que la multiplicación de matrices no es conmutativa! R10R21 = R21R10


⇒ el orden de los productos es muy importante!

Interpretación del orden de las rotaciones


Dada una rotación en Rx,φ, si se quiere una segunda rotación en Rz,ψ entonces:
• Si se multiplica a derecha: R02 = Rx,φRz,ψ ⇒ la rotación se hace según los ejes actuales:

• Si se multiplica a izquierda: R02 = Rz,ψ Rx,φ ⇒ la rotación se hace según los ejes fijos:
Parametrización de la orientación

Angulos de Euler

Una orientación cualquiera se describe en términos de tres ángulos denominados ángulos


de Euler (φ, θ, ψ), correspondientes a las tres rotaciones sucesivas siguientes:
1) rotación φ alrededor del eje z (Rz,φ)
2) rotación θ alrededor del eje y (Ry,θ )
3) rotación ψ alrededor del eje z (Rz,ψ )
⎡ ⎤⎡ ⎤⎡ ⎤
Cφ −Sφ 0 ⎥⎥ ⎢⎢ Cθ 0 Sθ ⎥⎥ ⎢⎢ Cψ −Sψ 0 ⎥⎥


⎢ ⎥⎢ ⎥⎢ ⎥
R = Rz,φRy,θ Rz,ψ = Sφ Cφ 0 ⎥⎥⎥ ⎢⎢⎢ 0 1 0 ⎥⎥⎥ ⎢⎢⎢ Sψ Cψ 0 ⎥⎥⎥ =



⎣ ⎦⎣ ⎦⎣ ⎦
0 0 1 −Sθ 0 Cθ 0 0 1
⎡ ⎤
CφCθ Cψ − SφSψ −CφCθ Sψ − SφCψ CφSθ ⎥⎥


⎢ ⎥
= SφCθ Cψ − CφSψ −SφCθ Sψ + CφCψ SφSθ ⎥⎥⎥



⎣ ⎦
−Sθ Cψ −Sθ Sψ Cθ

Angulos de Euler

1) rotación φ alrededor del eje z (Rz,φ)


2) rotación θ alrededor del eje y (Ry,θ )
3) rotación ψ alrededor del eje z (Rz,ψ )
Ángulos “Roll, Pitch and Yaw”

Una rotación tambien se puede especificar como tres rotaciones sucesivas alrededor de los
ejes del sistema de referencia en un orden determinado: x − y − z.
Yaw: ángulo ψ alrededor de x
Pitch: ángulo θ alrededor de y
Roll: ángulo φ alrededor de z
⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤

Cφ −Sφ 0 ⎥⎢
C θ 0 Sθ ⎥⎢
1 0 0 ⎥ ⎢
CφCθ −Sφ Cψ + CφSθ Sψ SφSψ + CφSθ Cψ ⎥
⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥
R = Rz,φRy,θ Rx,ψ = ⎢

Sφ C φ 0 ⎥⎢
⎦⎣
0 1 0 ⎥⎢
⎦⎣
0 Cψ −Sψ ⎥

= ⎢

SφCθ CφCψ + Sφ Sθ Sψ −CφSψ + SφSθ Cψ ⎥

0 0 1 −Sθ 0 Cθ 0 Sψ C ψ −Sθ C θ Sψ Cθ Cψ

Representación eje-ángulo

Cualquier movimiento de rotación puede ser descrito mediante una única matriz de
rotación, Rk̂,θ , que indica un giro de un ángulo θ respecto a un cierto eje definido por k̂.

Dado θ y k̂ resulta (con k̂ = [kx ky kz ]T y Zθ = 1 − cos θ):


⎡ ⎤


kx2 Zθ + Cθ kxky Zθ − kz Sθ kxkz Zθ + ky Sθ ⎥⎥
= kxky Zθ + kz Sθ ky2Zθ + Cθ ky kz Zθ − kxSθ ⎥⎥⎥
⎢ ⎥

Rk̂,θ ⎢

⎣ ⎦
kxkz Zθ − ky Sθ ky kz Zθ + kxSθ kz2Zθ + Cθ
Dada una matriz de rotación R compuesta por elementos rij , el eje y ángulo de rotación
quedan definidos por
⎛ ⎞ ⎛ ⎞
T r(R) − 1 ⎟⎟


r + r22 + r33 − 1 ⎟
⎜ 11
θ = arccos ⎝ ⎠ = arccos ⎝ ⎠
2 2
⎡ ⎤
r32 + r23 ⎥⎥

1 ⎢



k̂ = r13 + r31 ⎥⎥⎥


2 sin θ ⎣ ⎦
r21 + r12

• Para cada solución Rk̂,θ existe otra R−k̂,−θ .


• Para θ muy pequeño el eje no queda definido.
Transformaciones Homogéneas
El objetivo es representar un movimiento genérico (traslación y rotación) mediante un
único operador.
Sean dos sistemas de referencia {0} y {1}.

p0 = R 10p1 + d10

Si hay tres sistemas {0}, {1} y {2}:

p0 = R 10p1 + d10


p1 = R 2p2 + d2
1 1

la composición de las dos transformaciones da


p0 = R 10 R 21p2 + R 10d21 + d10

que debe ser del tipo


p0 = R 20p2 + d20

por lo que
R 20 = R 10 R 21
d20 = d10 + R 10d21

que pueden expreserse en forma matricial como


⎡ ⎤⎡ ⎤ ⎡ ⎤

⎢ R 10 d10 ⎥⎥⎥ ⎢⎢⎢ R 21 d21 ⎥⎥⎥ ⎢⎢⎢ R 10 R 21 d10 + R 10d21 ⎥⎥⎥
0T 1 ⎦ ⎣ 0T 1 ⎦ = ⎣ 0T

⎣ ⎦
1
con 0T = [0 0 0]
Estas matrices son de la forma
⎡ ⎤
R d ⎥

H =  T ⎥⎥⎦


⎣ ; R ∈ SO(3)
0 1

Dado que R es ortogonal ⎡ ⎤


⎢ RT − R T d ⎥⎥⎥
H−1 = ⎢


0T ⎦
1
Las transformaciones descritas por este tipo de matriz se denominan transformaciones
homogéneas.
Para utilizar esta transformaciones como un operador de multiplicación a los vectores que
definen la posición de un punto se les agrega una cuarta componente de la forma
⎡ ⎤
p ⎥⎥⎢
P = ⎦


1

Ası́:
⎡ ⎤ ⎡ ⎤⎡ ⎤

 ⎢
0 ⎥⎥ ⎢⎢ R 10 d10 ⎥⎥ ⎢⎢ p1 ⎥⎥
⎢ p 1
P0 = ⎣ ⎦ = ⎢⎣  T ⎥⎣
⎦ ⎦ = H0 P1
1 0 1 1

Transformaciones homogéneas básicas

⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1⎢

0 0 a ⎥⎥ 1 ⎢

0 0 0 ⎥⎥ 1⎢

0 0 0 ⎥⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
0⎢


1 0 0 ⎥⎥⎥ 0 ⎢


1 0 b ⎥⎥⎥ 0⎢


1 0 0 ⎥⎥⎥
Tx,a = ⎢

⎥ Ty,b = ⎢ ⎥ Tz,c = ⎢ ⎥
0⎢

0 1 0 ⎥⎥⎥ 0 ⎢


0 1 0 ⎥⎥⎥ 0⎢


0 1 c ⎥⎥⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦
0 0 0 1 0 0 0 1 0 0 0 1

⎡ ⎤ ⎡ ⎤ ⎡ ⎤


1 0 0 0 ⎥⎥ cφ


0 sφ 0 ⎥⎥ cθ −sθ 0 0 ⎥⎥


⎢ ⎥ ⎢ ⎥ ⎢ ⎥



0 cα −sα 0 ⎥⎥⎥ 0⎢


1 0 0 ⎥⎥⎥ sθ cθ 0 0 ⎥⎥⎥



Rx,α =
⎢ ⎥ Ry,φ = ⎢ ⎥ Rz,θ = ⎢ ⎥



0 sα cα 0 ⎥⎥⎥ −sφ



0 cφ 0 ⎥⎥⎥ ⎢
0 0 1 0 ⎥⎥⎥


⎣ ⎦ ⎣ ⎦ ⎣ ⎦
0 0 0 1 0 0 0 1 0 0 0 1
Transformación homogénea general

⎡ ⎤
nx⎢

sx ax dx ⎥⎥ ⎡ ⎤
⎢ ⎥
n ⎢
⎢ sy ay dy ⎥⎥⎥ ⎢⎢ n s a d ⎥⎥
Rx,α = y ⎢


⎥ = ⎣ ⎦
nz⎢

sz az dz ⎥⎥⎥ 0 0 0 1
⎣ ⎦
0 0 0 1
con
n = [nx ny nz ]T dirección de x1 en el sistema {O}
s = [sx sy sz ]T dirección de y1 en el sistema {O}
a = [ax ay az ]T dirección de z1 en el sistema {O}
d = [dx dy dz ]T localización del origen del sistema {1} expresado en el sistema {O}

Cinemática de un manipulador

• Un manipulador es una cadena cinemática articulada


• cada articulación tiene un grado de libertad
(si tiene n gdl se modela como n articulaciones de un gdl)
Problema cinemático directo

Dados los valores de las articulaciones encontrar la posición y orientación del elemento
terminal

Problema cinemático inverso

Dadas la posición y orientación del elemento termina encontrar los los valores de las
articulaciones

Representación de Denavit-Hartenberg
Representación sistemática del movimiento de una articulación mediante 4 parámetros:
Para describir el elemento:

• ai longitud del elemento (medida según una lı́nea perpendicular a los dos ejes)
• αi ángulo de torsión del elemento (medida según el sentido de las agujas del reloj entre
el eje i − 1 y el i)

Para describir la posición relativa de la articulación:

• di link offset
• θi ángulo entre elementos adyacentes
Tres parámetros son fijos y uno depende de la articulación:
prismatica di
de revolucion θi
Convenciones:
a0 = an = 0
α0 = αn = 0

Asignación de sistemas coordinados para cada articulación

• eje zi coincidente con eje articulación i


• el origen situado en la intersección del eje i con la lı́nea de medición de ai
• eje xi apuntando a lo largo de ai en dirección a la articulación i+1 desde la articulación i
(si ai = 0 se elige xi normal al plano definido por zi y zi+1
• eje yi tal que el sistema coordenado sea dextrógiro
La elección del sistema {0} es arbitraria pero por simplicidad se acuerda:

• eje z0 coincidente con eje articulación 1 tal que los sistemas {0} y {1} coincidan
cuando la variable de articulación 1 sea cero

Ası́ resulta a0 = α0 = 0 y
articulación prismática =⇒ d1 = 0
articulación de revolución =⇒ θ1 = 0

Para la elección del sistema {n} se acuerda:

• Articulación de rotación
=⇒ xn alineado con xn−1 cuando θn = 0 y el origen del sistema tal que dn = 0.

• Articulación de prismática
=⇒ xn tal que θn = 0 y el origen del sistema en la intersección del eje de la
articulación n con xn−1 cuando dn = 0.

Ejemplo (3 gdl de rotación):


Ejemplo (2 gdl de rotación y uno prismático):

Las condiciones son generales pero pueden cumplirse con diferentes sistemas:

• la definición de zi puede hacerse en dos sentidos


• cuando ai = 0 (los ejes de dos articulaciones se intersectan) existen dos sentidos para
el eje xi

Ejemplo:
Matriz de transformación entre los sistemas de coordenadas n y n − 1

Se utilizan unos sistemas de coordenadas auxiliares {P }, {Q}, {R}


• {R} difiere de {i − 1} sólo en una rotación αi−1 alrededor de xi−1
• {Q} difiere de {R} sólo en una traslación ai−1 a lo largo de xi−1
• {P } difiere de {Q} sólo en una rotación θi alrededor de zi
• {i} difiere de {P } sólo en una traslación di a lo largo de zi

Para pasar un vector descrito en {i} al sistema {i − 1}:

i−1 i−1 R Q P i
P = R T QT P T i T P
con
⎡ ⎤


1 0 0 0 ⎥⎥
⎢ ⎥
i−1



0 Cαi−1 −Sαi−1 0 ⎥⎥⎥
R T = Rot(xi−1, αi−1) = ⎢




0 Sαi−1 Cαi−1 0 ⎥⎥⎥
⎣ ⎦
0 0 0 1
⎡ ⎤
⎢ 1 0 0 ai−1 ⎥
⎢ ⎥
⎢ ⎥
⎢ 0 1 0 0 ⎥
R ⎢ ⎥
⎢ ⎥
QT = T rans(xi−1, ai−1) = ⎢⎢ ⎥

⎢ 0 0 1 0 ⎥
⎢ ⎥
⎣ ⎦
0 0 0 1
⎡ ⎤
⎢ Cθi −Sθi 0 0 ⎥
⎢ ⎥
⎢ ⎥
⎢ Sθi Cθi 0 0 ⎥
Q ⎢ ⎥
⎢ ⎥
PT = Rot(zi, θi) = ⎢⎢ ⎥



0 0 1 0 ⎥

⎣ ⎦
0 0 0 1
⎡ ⎤
⎢ 1 0 0 0 ⎥
⎢ ⎥
⎢ ⎥
⎢ 0 1 0 0 ⎥
P ⎢ ⎥
⎢ ⎥
i T = T rans(zi, di) = ⎢⎢ ⎥

⎢ 0 0 1 di ⎥
⎢ ⎥
⎣ ⎦
0 0 0 1
Es decir,

i−1 i−1 i
P = i T P

con

⎡ ⎤


Cθi −Sθi 0 ai−1 ⎥⎥
⎢ ⎥
i−1 i−1 R Q P



SθiCαi−1 CθiCαi−1 −Sαi−1 −Sαi−1di ⎥⎥⎥
i T = R T QT P T i T = ⎢

SθiSαi−1 CθiSαi−1 Cαi−1 Cαi−1di ⎥⎥⎥



⎣ ⎦
0 0 0 1

Componiendo las matrices para cada articulación de un manipulador

0 0 1 2 n−1
nT = 1T 2T 3T ... n T

=⇒ dadas las posiciones de las articulaciones se puede saber la relación entre el sistema
de coordenadas base y el extremo del robot.

.
Ejemplo PUMA: