Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Tema 3 -
Cinemática Directa de Robots
Manipuladores (II)
Prof. Oscar E. Ramos, Ph.D.
1. Convención de Denavit-Hartenberg
2
Convención de Denavit-Hartenberg
• Abreviación: Denavit-Hartenberg = DH
• Describe la cinemática directa usando de 4 parámetros por cada
articulación: θi, di, ai, αi
• Ejemplo:
y3 x3
z3 Parámetros DH
x2 Artic. i di θi ai αi
y5 x4
z5 1 450 180°+q1 -150 90°
y4 y2 z2
x5 z4 2 0 90°+q2 600 0
3 0 180°+q3 -200 90°
z6 y6 4 640 180°+q4 0 90°
x6 5 0 180°+q5 0 90°
x1 z1 6 0 q6 0 0
y1 z0 [distancias en mm]
Robot Fanuc M-10iA
x0 y0
3
Convención de Denavit-Hartenberg
• Procedimiento:
1. Determinar 1 sistema de referencia por cada articulación (basado en unas reglas)
2. Determinar 4 parámetros (θi, di, ai, αi) que describen la posición y orientación
entre cada dos sistemas de referencia (basado en unas reglas)
4
Convención de Denavit-Hartenberg
• Existen 2 convenciones:
- DH estándar
• Es la convención más utilizada (se utilizará aquí)
• Asigna sistemas de referencia al final de cada eslabón
- DH modificado
• Fue introducida por J.J. Craig (Introduction to Robotics, Mechanics and Control, 1986)
• Asigna sistemas de referencia al inicio de cada eslabón
1. Convención de Denavit-Hartenberg
6
Convención de Denavit-Hartenberg
(1) Asignación de Sistemas de Referencia
• Origen del sistema {i}: localizar el origen del sistema {i} en la intersección de
zi & zi-1, o en la intersección de zi con la normal común entre zi & zi-1
• Eje xi: asignar xi en dirección de zi-1 x zi. Si son paralelos, asignar xi a lo largo de
la normal común entre zi-1 & zi
• Sistema del efector final {n}: xn debe ser ortogonal a zn-1 e intersectarlo
7
Convención de Denavit-Hartenberg
(1) Asignación de Sistemas de Referencia
articulación articulación
articulación
2 (q2) i+1 (qi+1)
n (qn)
articulación
1 (q1)
articulación
eslabón 0 i (qi) efector
(base) final
q3
z0 q2
q1 y0
origen
arbitrario
x0
arbitrario
9
Convención de Denavit-Hartenberg
(1) Asignación de Sistemas de Referencia
• Eje zi: (de 1 a n-1) alinear zi con el eje de movimiento de la articulación i+1
q3
z0 q2 z2
q1 y0 z1
x0
normal
una normal entre z1 y z2
entre z0 y z1
10
Convención de Denavit-Hartenberg
(1) Asignación de Sistemas de Referencia
• Eje xi: (de 1 a n-1) asignar xi en dirección de zi-1 x zi. Si (zi-1 & zi) son paralelos,
asignar xi a lo largo de la normal común entre zi-1 & zi (usualmente apuntando “hacia”
el efector final)
• Eje yi: (de 1 a n-1) asignar yi para completar el sistema coordenado (según la regla
de la mano derecha)
q3
z0 q2
q1 y0 y2
z1 y1
z2
x0 x1 x2
q3 z3
z0 q2 x3
q1 y0 y2
z1 y1
z2 y3
x0 x1 x2 n=3
12
Temas
1. Convención de Denavit-Hartenberg
13
Convención de Denavit-Hartenberg
(2) Asignación de Parámetros DH
Parámetros de la articulación
• Ángulo de la articulación (θi): ángulo de rotación del eje xi-1 al eje xi alrededor
del eje zi-1
→ Es la variable articular si la articulación i es de revolución
• Longitud del eslabón (ai): distancia desde la intersección entre el eje zi-1 y el
eje xi hacia el origen del sistema {i} a lo largo del eje xi
• Ángulo de giro del eslabón (αi): ángulo de rotación del eje zi-1 al eje zi
alrededor del eje xi
14
Convención de Denavit-Hartenberg
(2) Asignación de Parámetros DH
articulación articulación
qi-1 qi articulación
eslabón i-1 qi+1
eslabón i
zi
zi-1
xi-1 xi
Parámetros de la articulación
• di: distancia del origen de {i-1} a la [intersección de zi-1 con xi] a lo largo de zi-1
• θi: ángulo de rotación de xi-1 a xi alrededor de zi-1
articulación articulación
qi-1 articulación
qi qi+1
eslabón i-1
eslabón i
articulación articulación
qi-1 articulación
qi qi+1
zi
zi-1
xi-1 xi
Resumen
• di: distancia del origen de {i-1} a la [intersección de zi-1] con xi a lo largo de zi-1
• θi: ángulo de rotación de xi-1 a xi alrededor de zi-1
• ai: distancia de [la intersección de zi-1 con xi] al origen de {i} a lo largo de xi
• αi: ángulo de zi-1 a zi alrededor de xi
17
Convención de Denavit-Hartenberg
(2) Asignación de Parámetros DH
Ejemplo
q3 z3
z0 q2 x3
q1 y0 y2
z1 y1
z2 y3
x0 x1 x2
l1 l2
Artic. i di θi ai αi
1 0 q1 l1 0°
2 0 180°+q2 -l2 90°
3 l3 180°+q3 0 0°
di: distancia del origen de {i-1} a [la intersección de zi-1 con xi] a lo largo de zi-1
θi: ángulo de rotación de xi-1 a xi alrededor de zi-1
ai: distancia de [la intersección de zi-1 con xi] al origen de {i} a lo largo de xi
αi: ángulo de zi-1 a zi alrededor de xi
18
Convención de Denavit-Hartenberg
(2) Asignación de Parámetros DH
Ejemplo
q3 z3
z0 q2 x3
q1 y0 y2
z1 y1
z2 y3
x0 x1 x2
l1 l2
Nota:
Artic. i di θi ai αi Artic. i di θi ai αi Home
1 0 q1 l1 0° A veces 1 0 q1 l1 0° 0°
2 0 180°+q2 -l2 90° escrito como 2 0 q2 -l2 90° 180°
3 l3 180°+q3 0 0° 3 l3 q3 0 0° 180°
1. Convención de Denavit-Hartenberg
20
Convención de Denavit-Hartenberg
(3) Transformación Homogénea
1 0 0 ai
0 cos sin i 0 Siempre
G
Ti ( i , ai ) Traslxi (ai )Trot xi ( i ) i
constante
0 sin i cos i 0
0 0 0 1
Nota: si primero se traslada y luego se rota, el resultado es el mismo 22
Convención de Denavit-Hartenberg
(3) Transformación Homogénea
cos i sin i 0 0 1 0 0 ai
sin cos i 0 0 0 cos i sin i 0
i 1
Ti (i , di , i , ai ) i
0 0 1 di 0 sin i cos i 0
0 0 0 1 0 0 0 1
0 sin i cos i di
0 0 0 1
• Resultado final
- Una vez calculado cada i-1Ti (para todo i = 1, 2,…, n), se pueden multiplicar
(producto de transformaciones homogéneas)
0
Tn 0 T1 1T2 n2
Tn 1 n 1Tn
• Implementación
- Para robots con pocos grados de libertad se puede obtener 0Tn de manera
simbólica (“ecuaciones”)
- Para robots con varios grados de libertad se suele realizar los cálculos de
modo numérico (matriz por matriz, y luego se multiplica)
24
Convención de Denavit-Hartenberg
(3) Transformación Homogénea
Ejemplo
z3
q3
z0 x3
q2 y2
q1 y0 z1 y1
Artic. i di θi ai αi z2 y3
1 0 q1 l1 0 x0 x1 x2
l1 l2
2 0 180+q2 -l2 90
3 l3 180+q3 0 0
0 0 1 0
0 0 0 1
cos 180 q2 0 sin 180 q2 l2 cos 180 q2 cos q2 0 sin q2 l2 cos q2
sin 180 q2 0 cos 180 q2 l2 sin 180 q2 sin q2 0 cos q2 l2 sin q2
1
T2
0 1 0 0 0 1 0 0
0 0 0 1 0 0 0 1
25
Convención de Denavit-Hartenberg
(3) Transformación Homogénea
Ejemplo
z3
q3
z0 x3
q2 y2
q1 y0 z1 y1
Artic. i di θi ai αi z2 y3
1 0 q1 l1 0 x0 x1 x2
l1 l2
2 0 180+q2 -l2 90
3 l3 180+q3 0 0
26
Convención de Denavit-Hartenberg
(3) Transformación Homogénea
Ejemplo
z3
q3
z0 x3
q2 y2
q1 y0 z1 y1
Artic. i di θi ai αi z2 y3
1 0 q1 l1 0 x0 x1 x2
l1 l2
2 0 180+q2 -l2 90
3 l3 180+q3 0 0
1 0 0 l1 1 0 0 l2 1 0 0 0 1 0 0 l2 l1
0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 l3
0
T1 1
T2 2
T3 0
T3
0 0 1 0 0 1 0 0 0 0 1 l3 0 1 0 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
27
Convención de Denavit-Hartenberg
Ilustración
https://youtu.be/rA9tm0gTln8
28
Temas
1. Convención de Denavit-Hartenberg
29
Ejemplo 1: DH de un Robot SCARA
1. Sistemas de referencia
q3
q2
q1 q4
l2 l3
y0
x0
30
Ejemplo 1: DH de un Robot SCARA
1. Sistemas de referencia
q3
q2
q1 q4
l2 l3
z1 x1 • Eje zi: zi en eje de articulación i+1
y1
z2 y2 • Origen del sistema {i}:
a) Intersección de zi & zi-1, o
x2 b) Intersección de zi con normal entre zi & zi-1
(Si zi & zi-1 paralelos: normal arbitraria)
z3 l4
y3
l1 • Eje xi: en dirección de zi-1 x zi. Si (zi-1 & zi)
z0 paralelos, xi en su normal común
x3
• Eje yi: asignar yi para completar el sistema
y0 coordenado (según la regla de la mano
x0
derecha)
31
Ejemplo 1: DH de un Robot SCARA
1. Sistemas de referencia
q3
q2
q1 q4
l2 l3
z1 x1
y1
• Sistema del efector final {n}:
z2 y2 - xn ortogonal a zn-1 e intersectarlo (origen al
final de la cadena)
x2
- zn en dirección de zn-1 hacia afuera
- yn completa el sistema
z3 l4
y3
l1
z0 x3
y0 x4
x0
y4
z4
32
Ejemplo 1: DH de un Robot SCARA
2. Parámetros DH
q3
q2
q1 q4
l2 l3 Artic. i di θi ai αi
z1 x1 1 l1 180°+q1 l2 0°
y1
z2 2 0 -90°+q2 l3 0°
y2
3 -l4+q3 0° 0 0°
x2 4 0 90°+q4 0 180°
z3 l4
y3
l1
z0 x3 di: distancia de {i-1} a [intersección de zi-1 con xi]
en zi-1
y0 x4 θi: ángulo de xi-1 a xi alrededor de zi-1
x0
y4 ai: distancia de [intersección de zi-1 con xi] a {i}
z4 en xi
αi: ángulo de zi-1 a zi alrededor de xi
33
Ejemplo 1: DH de un Robot SCARA
Artic. i di θi ai αi
1 l1 180°+q1 l2 0°
2 0 -90°+q2 l3 0°
3 -l4+q3 0° 0 0°
4 0 90°+q4 0 180°
34
Ejemplo 1: DH de un Robot SCARA
0
T4 0 T1 1T2 2 T3 3 T4 l2 l3
1 l1 180+q1 l2 0 1 l1 q1 l2 0 180°
2 0 -90+q2 l3 0 2 0 q2 l3 0 -90°
3 -l4+q3 0 0 0 3 q3 0 0 0 -l4
4 0 90+q4 0 180 4 0 q4 0 180 90°
import sympy as sp
Función que obtiene la transf.
homogénea dados parámetros DH def Tdh(d, theta, a, alpha): # completar
# Variables simbólicas
q1, q2, q3, q4 = sp.symbols("q1 q2 q3 q4")
l1, l2, l3, l4 = sp.symbols("l1 l2 l3 l4")
# Transformaciones homogéneas
Uso de variables simbólicas para el T01 = Tdh(l1, sp.pi+q1, l2, 0)
cálculo de cada transformación T12 = Tdh(0,-sp.pi/2+q2, l3, 0)
homogénea. T23 = Tdh(-l4+q3, 0, 0, 0)
T34 = Tdh(0, sp.pi/2+q4, 0, sp.pi)
37
Ejemplo 1: DH de un Robot SCARA
# Longitudes iniciales
l1=1; l2=1; l3=1; l4=0.5;
l2 l3
z1 x1
y1
z2 y2
x2
z3
y3 l4
l1
z0 x3
y0 x4
x0
y4
z4
39
Temas
1. Convención de Denavit-Hartenberg
40
Ejemplo 2: DH del Robot Fanuc M-10iA
41
Ejemplo 2: DH del Robot Fanuc M-10iA
640
200
600
150
z0 z0 450
y0 x0
x0
z5 640
z3
z3
200
z5
z2
z4
600
150
z1
z0 z0 450
y0 x0
x0
- Eje zi
- Origen del sistema {i} 44
Ejemplo 2: DH del Robot Fanuc M-10iA
1. Sistemas de referencia
z5 640
z3 x3 y 3 x5
x4
y4 z3 x3
x2
x4 x2 200
y5
z5 y4 y2
y2 z2
x5 z4
600
x1 150
z1 x1
y1 y1
z0 z0 450
y0 x0
x0
- Eje xi
- Eje yi 45
Ejemplo 2: DH del Robot Fanuc M-10iA
1. Sistemas de referencia
z5 640
z3 x3 y 3 x5
x4
y4 z3 x3
x2
x4 x2 200
y5 z6
z5 y4 y2
y2 z2 x6
x5 z4
600
z6 y6
x6 x1 150
z1 x1
y1 y1
z0 z0 450
y0 x0
x0
640
z3 x3 y 3 z5
x4
x2 x5 y4 z3 x3
y5 x4 x2 200
z5 y4 z6
y2 z2 y2
x5 z4 x6
z6 y6 600
x6 x1
150
z1 x1
y1 z0 y1
z0 450
x0 y0 x0
47
Ejemplo 2: DH del Robot Fanuc M-10iA
3. Matrices de Transformación Homogénea
Artic. i di θi ai αi Artic. i di θi ai αi
1 450 180°+q1 -150 90° 4 640 180°+q4 0 90°
2 0 90°+q2 600 0° 5 0 180°+q5 0 90°
3 0 180°+q3 -200 90° 6 0 q6 0 0°
0 1 0 450 0 1 0 640
0 0 0 1 0 0 0 1
0 0 1 0 0 1 0 0
0 0 0 1 0 0 0 1
0 1 0 0 0 0 1 0
0 0 0 1 0 0 0 1
48
Ejemplo 2: DH del Robot Fanuc M-10iA
3. Matrices de Transformación Homogénea
49
Ejemplo 2: DH del Robot Fanuc M-10iA
# Variables simbólicas
q1, q2, q3, q4, q5, q6 = sp.symbols("q1 q2 q3
q4, q5, q6")
# Transformaciones homogéneas
T01 = Tdh(450, sp.pi+q1, -150, sp.pi/2);
Uso de variables simbólicas T12 = Tdh( 0, q2+sp.pi/2, 600, 0);
para el cálculo de cada T23 = Tdh( 0, q3+sp.pi, -200, sp.pi/2);
transformación homogénea. T34 = Tdh(640, q4+sp.pi, 0, sp.pi/2);
T45 = Tdh( 0, q5+sp.pi, 0, sp.pi/2);
T56 = Tdh( 0, q6, 0, 0);
50
Ejemplo 2: DH del Robot Fanuc M-10iA
z3 x3 y 3
x2
y5 x4
z5 y4 y2 z2
x5 z4
z6 y6
x6 x1
z1
y1 z0
x0 y0
52
Referencias
53
Denavit-Hartenberg Modificado
ci si 0 ai 1
i 1 c s ci1 ci si1 di si1
Modificado: Ti i1 i
s s si1 ci ci1 di ci1
i1 i
0 0 0 1
55
Ejemplo 1: DH de un Robot SCARA
% Longitudes iniciales
l1=1; l2=1; l3=1; l4=0.5;
Se usa parámetros DH
% Definicion del robot usando DH (th,d,a,alfa,P/R)
sin incluir configuración
L(1)=Link([0, l1, l2, 0, 0]);
inicial (la variable angular
L(2)=Link([0, 0, l3, 0, 0]);
q se inicia a 0)
L(3)=Link([0, 0, 0, 0, 1]);
L(4)=Link([0, 0, 0, pi, 0]); Al definir el eslabón P/R indica :
% Creacion del robot 0 = articulación de revolución
scara = SerialLink(L, 'name', 'scara'); 1 = articulación de prismática
http://petercorke.com/wordpress/toolboxes/robotics-toolbox 56
Ejemplo 1: DH de un Robot SCARA
l2 l3
l4
l1
z0
y0 x4
x0
y4
z4
57
Ejemplo 2: DH del Robot Fanuc M-10iA
58
Ejemplo 2: DH del Robot Fanuc M-10iA
% Visualizacion
fanuc.plot([pi pi/2 pi pi pi 0]);
http://petercorke.com/wordpress/toolboxes/robotics-toolbox 59
Ejemplo 2: DH del Robot Fanuc M-10iA
z6 y6
x6
z0
x0 y0
60