Professional Documents
Culture Documents
Robotica I - Cinematica - V2018
Robotica I - Cinematica - V2018
ROBÓTICA I
❑MODELADO CINEMÁTICO
JCC
ROBÓTICA I 30-Abr.-18 -- 0
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 1
1
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 3
3
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 4
4
UCSM-PPIMMEM
r = l2 cos q2 + l3 cos(q2 + q3 )
z = l1 + l2 sen q2 + l3 sen(q2 + q3 )
x = r cos q1
y = r sen q1
[noa] = Rotz (q1 ) Roty (−q2 − q3 ) Rotx( / 2)
ROBÓTICA I 30-Abr.-18 -- 5
5
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 6
6
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 8
8
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 9
9
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 10
10
UCSM-PPIMMEM
Parámetros de Denavit-Hartenberg
➢ qi: Es el ángulo que forman los ejes xi-1 y xi medido en un plano perpendicular al eje zi-1, utilizando
la regla de la mano derecha. Se trata de un parámetro variable en articulaciones giratorias.
➢ di: Es la distancia a lo largo del eje zi-1 desde el origen del sistema de coordenadas (i-1)-ésimo hasta
la intersección del eje zi-1 con el eje xi. Se trata de un parámetro variable en articulaciones prismáticas.
➢ ai: Es la distancia a lo largo del eje xi que va desde la intersección del eje zi-1 con el eje xi hasta el
origen del sistema i-ésimo, en el caso de articulaciones giratorias. En el caso de articulaciones
prismáticas, se calcula como la distancia más corta entre los ejes zi-1 y zi.
➢ ai: Es el ángulo de separación del eje zi-1 y el eje zi, medido en un plano perpendicular al eje xi,
utilizando la regla de la mano derecha.
ROBÓTICA I 30-Abr.-18 -- 11
11
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 12
12
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 13
13
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 14
14
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 15
15
UCSM-PPIMMEM
d3 l4
d2
l1
Robot cilíndrico 4 gdl Representación esquemática
ROBÓTICA I 30-Abr.-18 -- 16
16
UCSM-PPIMMEM
Ejemplo: DH1-DH2-DH3
• D-H 1.- Numerar los eslabones
comenzando con 1 (primer eslabón móvil
de la cadena) y acabando con n (último
eslabón móvil). Se numerará como 1 2
eslabón 0 a la base fija del robot.
(cuadrados) 2
3
• D-H 2.- Numerar cada articulación
3 4
comenzando por 1 (la correspondiente al 3
4
n (círculos sombreados) 1
2
ROBÓTICA I 17 30-Abr.-18 -- 17
UCSM-PPIMMEM
Ejemplo: DH4
ROBÓTICA I 18 30-Abr.-18 -- 18
UCSM-PPIMMEM
Ejemplo: DH5
3 4 Z3 4
3
4
1
2
Z0
X0
ROBÓTICA I 19 30-Abr.-18 -- 19
UCSM-PPIMMEM
Ejemplo: DH6
• D-H 6.- Para i de 1 a n-1, situar el
1 2
sistema {Si} (solidario al eslabón i)
en la intersección del eje zi con la
línea normal común a zi-1 y zi. Si d3 l4
ambos ejes se cortasen se 2
situaría {Si} en el punto de corte. Z2 Z3 3
Si fuesen paralelos {Si} se situaría
en la articulación i+1 3 4 4
3
d2
– Z1 : Z0 y Z1 paralelos. Situar S1 4
1 Z1
(solidario a [1]) en ②
2
– Z2 : Z1 y Z2 se cortan. Situar S2
(solidario a [2]) en punto de corte
– Z3 : Z2 y Z3 paralelos. Situar S3 1 Obsérvese que
(solidario a [3]) en ④
l1
•Z1 no sube con
Z0
X0 [2]
•Z3 no gira con [4]
ROBÓTICA I 20 30-Abr.-18 -- 20
UCSM-PPIMMEM
Ejemplo: DH8
• D-H 7.- Situar xi en la línea normal
d3 l4
común a zi-1 y zi
• D-H 8.- Situar yi de modo que X2 X3
forme un sistema dextrógiro con xi
y zi . Z2 Z3
d2
Z1
X1
– X1: Z0 y Z1 colineales. Se sitúa X1
en el Plano horizontal,
coincidiendo con X0 cuando q1=0
– X2: Z1 y Z2 perpendiculares. Se
l1
sitúa X2 en la dirección de Z1⊗Z2
Z0
(producto vectorial) X0
Por legibilidad no
– X3: Z2 y Z3 colineales. Se sitúa X3
en el Plano vertical perpendicular se representan los
al dibujo. ejes Y
ROBÓTICA I 21 30-Abr.-18 -- 21
UCSM-PPIMMEM
Ejemplo: DH9
• D-H 9.- Situar el sistema {Sn}
d3 l4
en el extremo del robot de
modo que zn coincida con la X2 X3 X4
dirección de zn-1 y xn sea
Z2 Z3 Z4
normal a zn-1 y zn
d2
– Z4 en la misma dirección que Z1
X1
Z3
– X4: Z3 y Z4 colineales. Se sitúa
X4 en el Plano vertical
l1
perpendicular al dibujo, de
modo que coincida con X3 Z0
cuando q4=0 X0
ROBÓTICA I 22 30-Abr.-18 -- 22
UCSM-PPIMMEM
Z2 Z3 Z4
d2
Z1 Y1
X1
l1
Z0 Y0
X0
ROBÓTICA I 23 30-Abr.-18 -- 23
UCSM-PPIMMEM
Ejemplo: DH10-DH11-DH12-DH13
D-H 10.- Obtener θi como el ángulo que hay
que girar en torno a zi-1 para que xi-1 y xi
queden paralelos.
d3 D-H 11.- Obtener di como la distancia, medida
l4 a lo largo de z-1i, que habría que desplazar
Y2 Y3 Y4 {Si-1} para que xi y xi-1 quedasen alineados.
X2 X3 X4 DH 12.- Obtener ai como la distancia medida
a lo largo de xi (que ahora coincidiría con xi-1)
Z2 Z3 Z4 que habría que desplazar el nuevo {Si-1} para
d2 que su origen coincidiese con {Si}.
Z1 Y1 DH 13.- Obtener αi como el ángulo que habría
X1 que girar entorno a xi (que ahora coincidiría
con xi-1), para que el nuevo {Si-1} coincidiese
Articulación q d con {Si}.a
totalmente α
1 q1 l1 0 0
l1
Z0 Y0 2 90º d2 0 90º
X0 3 0 d3 0 0
4 q4 l4 0 0
ROBÓTICA I 30-Abr.-18 -- 24
24
UCSM-PPIMMEM
0 Sa i Ca i di
0 0 0 1
C1 − S1 0 0 0 0 1 0
S C1 0 0 1 0 0 0
0
A1 = 1 1
A2 =
0 0 1 l1 0 1 0 d2
0 0 0 1 0 0 0 1
1 0 0 0 C4 − S4 0 0
0 1 0 0 S C4 0 0
2
A3 = 3
A4 = 4
0 0 1 d3 0 0 1 l4
0 0 0 1 0 0 0 1
ROBÓTICA I 30-Abr.-18 -- 25
25
UCSM-PPIMMEM
Ejemplo: DH15-DH16
• DH 15.- Obtener la matriz de transformación entre la base y el extremo del robot T
= 0A1 1A2 ... n-1A .
n
ROBÓTICA I 30-Abr.-18 -- 26
26
UCSM-PPIMMEM
C1 0 − S1 0 C 2 0 S2 0
S 0 C1 0 S 0 − C2 0
A1 = A2 =
0 1 1 2
0 −1 0 0 0 1 0 l1
0 0 0 1 0 0 0 1
S3 0 − C3 − l2 S3 C4 0 − S4 0
− C 0 − S3 l2C3 S 0 C4 0
A3 = A4 =
2 3 3 4
0 1 0 0 0 −1 0 l3
0 0 0 1 0 0 0 1
C5 0 S5 0 C6 − S6 0 0
S 0 − C5 0 S C6 0 0
A5 = A6 =
4 5 5 6
0 1 0 0 0 0 1 l4
0 0 0 1 0 0 0 1
ROBÓTICA I 30-Abr.-18 -- 27
27
UCSM-PPIMMEM
nz oz az pz
0 0 0 1
n x = ( C1 C2 S3 + S1C3 )( C4C5C6 − S4 S6 ) + C1S2 ( S4C5C6 + C4 S6 ) + ( − C1C2C3 + S1S3 ) S5C6
n y = ( − S1C2 S3 + S1C3 )( C4C5C6 − S4 S6 ) + S1S2 ( S4C5C6 + C4 S6 ) + ( − S1C2C3 − C1S3 ) S5C6
n z = ( − S2 S3 )( C4C5C6 − S4 S6 ) + C2 ( S4C5C6 + C4 S6 ) + S2C3S5C6
ox = ( C1 C2 S3 + S1C3 )( − C4C5C6 − S4 S6 ) + C1S2 ( − S4C5C6 + C4 S6 ) + ( − C1C2C3 + S1S3 )( − S5C6 )
oy = ( − S1C2 S3 + S1C3 )( − C4C5C6 − S4 S6 ) + S1S2 ( − S4C5C6 + C4 S6 ) + ( − S1C2C3 − C1S3 )( − S5C6 )
oz = ( − S2 S3 ) ( − C4C5C6 − S4 S6 ) + C2 ( − S4C5C6 + C4 S6 ) + S2C3 ( − S5C6 )
px = ( C1 C2 S3 + S1C3 )( l4C4 S5 ) + C1S2 ( l4 S4 S5 ) + ( C1 C2C3 + S1S3 )( − l4C5 + l3 ) +
(− l C C S − l S C − l S )
2 1 2 3 2 1 3 1 1
py = ( − S C S − C C )( l C S ) + S S ( l S S ) + ( − C C C − C S )( − l C
1 2 3 1 3 4 4 5 1 2 4 4 5 1 2 3 1 3 4 5 + l3 ) +
(− l S C S − l C C + l C )
2 1 2 3 2 1 3 1 1
pz = ( - S S )( l C C ) + C ( l S S ) + S C ( − l C + l ) + l S S
2 3 4 4 5 2 4 4 5 2 3 4 5 3 2 2 3
ROBÓTICA I 30-Abr.-18 -- 28
28
UCSM-PPIMMEM
Resultado de trasladar
según pi y rotar según Qi
ROBÓTICA I 30-Abr.-18 -- 30
30
UCSM-PPIMMEM
Modelo cinemático mediante
cuaternios
con
ROBÓTICA I 30-Abr.-18 -- 31
31
UCSM-PPIMMEM
Modelo cinemático mediante
cuaternios
Operando con cuaternios se tiene
ˆ ,0,0,Sˆ ) R
R 0 = Q1Q2Q3Q4 R 4 = Q1234 R 4 = (C124 124 4
ROBÓTICA I 30-Abr.-18 -- 32
32
UCSM-PPIMMEM
ˆ
= (0,l3C ˆ ˆ ˆ z = a 0z = l1 − q3
1122 + l 2 C11 ,l3S1122 + l 2S11 ,l1 − q 3 )
ROBÓTICA I 30-Abr.-18 -- 33
33
UCSM-PPIMMEM
Cinemática Inversa
(x,y)
Objetivo: encontrar los ?
q2
valores que deben adoptar
las coordenadas articulares
del robot (q1, …, qn) para ?
q1
que su extremo se
posicione y oriente según
una determinada
localización espacial [noap]
ROBÓTICA I 30-Abr.-18 -- 34
34
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 35
35
UCSM-PPIMMEM
Problemas de la Cinemática
Inversa
• No siempre existe solución cerrada
• Posible solución múltiple
• Dificultad analítica si se busca una
solución cerrada
• Problemas de convergencia y mínimos
locales si se usa método iterativo
ROBÓTICA I 30-Abr.-18 -- 36
36
UCSM-PPIMMEM
Soluciones múltiples
• Unas coordenadas en el
espacio de la tarea, pueden
corresponder a varias
coordenadas articulares
• Se deben evitar cambios
bruscos de configuración
Dificultad analítica
Sistema de 12 ecuaciones no lineales con n incógnitas
Directo:
q1,..q6 datos
nx,…px incógnitas
n x = ( C1 C2 S3 + S1C3 )( C4C5C6 − S4 S6 ) + C1S2 ( S4C5C6 + C4 S6 ) + ( − C1C2C3 + S1S3 ) S5C6
n y = ( − S1C2 S3 + S1C3 )( C4C5C6 − S4 S6 ) + S1S2 ( S4C5C6 + C4 S6 ) + ( − S1C2C3 − C1S3 ) S5C6
n z = ( − S2 S3 )( C4C5C6 − S4 S6 ) + C2 ( S4C5C6 + C4 S6 ) + S2C3S5C6
ox = ( C1 C2 S3 + S1C3 )( − C4C5C6 − S4 S6 ) + C1S2 ( − S4C5C6 + C4 S6 ) + ( − C1C2C3 + S1S3 )( − S5C6 )
oy = ( − S1C2 S3 + S1C3 )( − C4C5C6 − S4 S6 ) + S1S2 ( − S4C5C6 + C4 S6 ) + ( − S1C2C3 − C1S3 )( − S5C6 )
oz = ( − S2 S3 ) ( − C4C5C6 − S4 S6 ) + C2 ( − S4C5C6 + C4 S6 ) + S2C3 ( − S5C6 )
px = ( C1 C2 S3 + S1C3 )( l4C4 S5 ) + C1S2 ( l4 S4 S5 ) + ( C1 C2C3 + S1S3 )( − l4C5 + l3 ) +
(− l C C S − l S C − l S )
2 1 2 3 2 1 3 1 1
py = ( − S C S − C C )( l C S ) + S S ( l S S ) + ( − C C C − C S )( − l C + l ) +
1 2 3 1 3 4 4 5 1 2 4 4 5 1 2 3 1 3 4 5 3
(− l S C S − l C C + l C )
2 1 2 3 2 1 3 1 1
pz = ( - S S )( l C C ) + C ( l S S ) + S C ( − l C + l ) + l S S
2 3 4 4 5 2 4 4 5 2 3 4 5 3 2 2 3
Inverso:
q1,..q6 incógnitas
nx,…px datos
ROBÓTICA I 30-Abr.-18 -- 39
39
UCSM-PPIMMEM
r 2 = px2 + py2
r 2 + pz2 = l 22 + l32 + 2l 2l3cos q 3
px2 + py2 + pz2 − l 22 − l32
cos q 3 =
2l 2l3
sen q 3 = 1 − cos2 q 3
Solución Doble
1 − cos2q
q3 = arctg
3
cos q3
px2 + py2 + pz2 − l 22 − l32
con cos q3 =
2l 2l3
ROBÓTICA I 30-Abr.-18 -- 40
40
UCSM-PPIMMEM
q2 = − a
pz p
= arctg = arctg z
r p2 + p2
x y
l3 sen q3
a = arctg
l 2 + l3 cos q3
p l3 sen q 3
q2 = arctg z − arctg
p2 + p2 l + l cos q3
x y 2 3
Solución Doble
ROBÓTICA I 30-Abr.-18 -- 41
41
UCSM-PPIMMEM
py = ( − S C S − C C )( l C S ) + S S ( l S S ) + ( − C C C − C S )( − l C
1 2 3 1 3 4 4 5 1 2 4 4 5 1 2 3 1 3 4 5 + l3 ) +
(− l S C S − l C C + l C )
2 1 2 3 2 1 3 1 1
pz = ( - S S )( l C C ) + C ( l S S ) + S C ( − l C + l ) + l S S
2 3 4 4 5 2 4 4 5 2 3 4 5 3 2 2 3
q1,..q6 incógnitas
nx,…px datos
ROBÓTICA I 30-Abr.-18 -- 43
43
UCSM-PPIMMEM
Artic. q d a a
1 q1 l1 0 90º
2 q2 0 0 -90º
3 0 q3 0 0
C1 0 S1 0 C2 0 − S2 0 1 0 0 0
S 0 − C 0 S 0 C2 0 0 1 0 0
A1 = A2 = A3 =
0 1 1 1 2 2
0 1 0 l1 0 −1 0 0 0 0 1 q3
0 0 0 1 0 0 0 1 0 0 0 1
C1C2 − S1 − C1S2 0 C1C2 − S1 − C1S2 − q3C1S2
S C C1 − S1S2 0 S C C1 − S1S2 − q3S1S2
A2 = T= A3 =
0 1 2 0 1 2
S2 0 C2 l1 S2 0 C2 q3C2 + l1
0 0 0 1 0 0 0 1
1. Obtener el MCD
ROBÓTICA I 30-Abr.-18 -- 44
44
UCSM-PPIMMEM
2. Aislar q1 C1 S1 0 0 nx ox a x p x
0 1 − l1 ny oy ay py
( A1 ) T3 = A 2 A3 = S −0C
0 −1 0 1 2
0 0 nz oz az pz
=
1 1
T= 0 A11 A 2 2 A3
0 0 0 1 0 0 0 1
( 0
A1 ) T=1A 2 2 A3
−1
C 2 0 − S2 01 0 0 0 C 2 0 − S2 − S2 q3
S 0 1 0 0 S2 0 C 2 C 2 q3
( 1
A2 )
−1 0
( A1 ) T= 2 A3
−1
= 2 0 C 2 0 =
0 − 1 0 0 0 0 1 q3 0 − 1 0 0
0 0 0 1 0 0 0 1 0 0 0 1
Elemento 3,4 py py
S1p x − C1p y = 0 tan(q1 ) = q1 = arctan
px px
ROBÓTICA I 30-Abr.-18 -- 45
45
UCSM-PPIMMEM
( 1
A2 )
−1 0
( A1 ) T= 2 A3
−1
C2C1 C2 S1 S 2 − l1S 2 nx ox ax p x 1 0 0 0
−S C 0 0 n o ay p y 0 1 0 0
1 1 y y
=
− S 2C1 − S 2 S1 C2 − C2l1 nz oz az p z 0 0 1 q3
0 0 0 1 0 0 0 1 0 0 0 1
px2 + py2
q2 = arctan
l1 − pz
Elementos 1,4 y 3,4 q3 = C2 ( pz − l1 ) − S2 px2 + py2
ROBÓTICA I 30-Abr.-18 -- 46
46
UCSM-PPIMMEM
Desacoplo cinemático
• Los procedimientos anteriores son complejos, o inutilizables,
cuando el número de grados de libertad es elevado.
• El desacoplamiento cinemático trata de dividir el problema de
6 gdl en 2 de 3 gdl
• Es aplicable cuando los 3 últimos grados de libertad se cortan
en un punto
Y6
X6
Z6
Punto de corte
de los 3 gdl
ROBÓTICA I 47 30-Abr.-18 -- 47
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 48
48
UCSM-PPIMMEM
ROBÓTICA I 49 30-Abr.-18 -- 49
UCSM-PPIMMEM
Desacoplo cinemático (III)
Conocemos Pr, queremos conocer Pm
Modelo diferencial
• Establece la relación entre las velocidades
de las articulaciones, con las velocidades del
extremo del robot.
• Es utilizado por el sistema de control del
robot para establecer qué velocidades debe
imprimir a cada articulación (a través de sus
respectivos actuadores) para conseguir que
el extremo desarrolle una trayectoria
temporal concreta.
• El modelo diferencial queda concretado en la
denominada matriz Jacobiana.
ROBÓTICA I 30-Abr.-18 -- 51
51
UCSM-PPIMMEM
Observación previa
• En general la matriz Jacobiana es la matriz de derivadas
parciales de un sistema de ecuaciones de varias variables
• En robótica se tomarán las ecuaciones las que definen el
modelo cinemático (Relación entre (q1,q2,…,qn) y ( x, y, z,
φ,θ,ψ) . El modelo diferencial relacionaría, mediante la matriz
Jacobiana, las derivadas temporales de ambos vectores.
• Pero también puede interesar conocer las velocidades de
traslación y rotación del extremo (vx,vy,vz, wx,wy,wz) respecto
de un sistema de coordenadas, en función de las velocidades
articulares.
• Se puede por ello hablar de diferentes tipos de Jacobianas
(analítica, geométrica). Se usará una u otra según interés
ROBÓTICA I 30-Abr.-18 -- 52
52
UCSM-PPIMMEM
Jacobiana analítica
?
(x, y)
Establece la relación entre las
velocidades (o incrementos) de q 2?
(q1,q2,…,qn) y ( x, y, z, φ,θ,ψ)
q?
1
Velocidades Velocidades de la
articulares localización del
(q1 , q 2 , q3 , q 4 , q 5 , q 6 ) extremo del robot
(x, y, z, ,q , )
Jacobiana analítica inversa
ROBÓTICA I 53 30-Abr.-18 -- 53
UCSM-PPIMMEM
f
n
f y
n
fz
n
= xq
x i =
y i
q
z = i
q
1 qi 1 qi 1 qi
n
fa n
f n
f
a =
qi =
i
q =
i
q
1 qi 1 qi 1 qi
ROBÓTICA I 30-Abr.-18 -- 54
54
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 55
55
UCSM-PPIMMEM
Jacobiana geométrica
Establece la relación entre
(q1 ,q2 ,q3 ,q4 ,q5 ,q6 ) y (vx , v y , vz , w x , w y , w z )
ROBÓTICA I 56 30-Abr.-18 -- 56
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 57
57
UCSM-PPIMMEM
Obtención numérica de la
Jacobiana geométrica
0
0 ni
0 0
oi 0
ai pi
0 zi = 0 Ai (1: 3,3)
Ai =
0 0 0 1 i
pn = 0 An (1: 3,4) - 0 Ai (1: 3,4)
0 zi-1 × i-1pn
gdl de
rotación
0
zi-1
J = [J1 | J2 |.....| Jn ] con Ji =
0
zi-1
gdl de
traslación
0
ROBÓTICA I
58 30-Abr.-18 -- 58
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 59
59
UCSM-PPIMMEM
Jacobiana Inversa
Permite obtener las velocidades articulares, a
partir de las velocidades en el espacio de la
tareas
x vx
q1 y q1 v
y
z vz
= Ja ; = J
−1 −1
wx
q wy
qn qn
wz
ROBÓTICA I 30-Abr.-18 -- 60
60
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 61
61
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 62
62
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 63
63
UCSM-PPIMMEM
Configuraciones Singulares
ROBÓTICA I 30-Abr.-18 -- 64
64
UCSM-PPIMMEM
• Cerca de la singularidad
elevada velocidad, giros
bruscos,…
• En la singularidad posible
colapso del robot
• Ejemplo:
– Singularidad robot PUMA
560
ROBÓTICA I 66 30-Abr.-18 -- 66
UCSM-PPIMMEM
ROBÓTICA I 30-Abr.-18 -- 67
67