Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Tema 4 -
Cinemática Directa de Robots
Manipuladores (I)
Prof. Oscar E. Ramos, Ph.D.
1. Introducción
2
Cinemática de Robots Manipuladores
{n}
qi+1
3
Cinemática de Robots Manipuladores
x f (q)
Cinemática
Espacio directa Espacio
articular Cartesiano
q (q1 , , qn ) x ( x, y , z , , , )
Cinemática
inversa
q f 1 (x)
- Cinemática directa
Dada una configuración articular, determina la posición/orientación de alguna
parte del robot (ejm. efector final)
- Cinemática inversa
Determina la configuración articular necesaria para alcanzar una posición /
orientación de alguna parte del robot
4
Cinemática de Robots Manipuladores
p,R = ?
q1
Vector articular: q x f (q)
q2
8
Cinemática Directa
• De manera genérica: configuración de cada articulación
x f (q)
• Punto operacional x
- Se suele representar con respecto a la base
x3
• Función f (de cinemática directa)
- Es diferente para diferentes x
- Es (casi siempre) una función altamente
no lineal
- Usualmente se expresa usando una
transformación homogénea (posición y x1 x2
orientación)
Robot Baxter
9
Cinemática Directa
Para una Cadena Cinemática Abierta
1 {2}
{1}
T2
{n 1}
0
T1 n 1
Tn
{0}
Base Efector
final {n}
10
Cinemática Directa
Sistema de Referencia del Efector Final
• En general:
- Asignan sistemas de referencia a los eslabones (no necesariamente a cada uno)
- Relacionan el sistema {i} con respecto al sistema {i-1}
- Aplican composición de transformaciones para obtener el sistema del efector
final con respecto a la base
12
Cinemática Directa
Métodos
• Métodos Geométricos
- Asignan sistemas de referencia arbitrarios (por inspección)
- Las relaciones entre sistemas de referencia son diferentes (arbitrarias) : no hay
una matriz de transformación homogénea general
- Ejemplos:
• Métodos de análisis geométrico
• Producto de exponenciales (PoE)
• Métodos Sistemáticos
- Asignan sistemas de referencia usando ciertas reglas
- Las relaciones entre sistemas se describen con parámetros (basados en reglas)
- Se obtiene transformaciones genéricas (similares) entre sistemas de referencia
- Ejemplos:
• Denavit-Hartenberg (DH)
• Hayati-Roberts
• Khalil-Kleinfinger, etc.
13
Temas
1. Introducción
14
Método de Análisis Geométrico
Introducción
• Procedimiento
1. Asignar sistemas de referencia arbitrarios a cada eslabón (que se muevan
junto con el eslabón) → El movimiento suele ser alrededor del eje z o en el eje z
• Notas
- Al final se puede añadir un sistema de referencia “estándar” al efector final
- Los pasos 1 y 2 se pueden realizar eslabón por eslabón (primero para eslabón
1, luego para eslabón 2, …)
15
Método de Análisis Geométrico
Ejemplo 2D: Robot R-R
ŷ {e}
Procedimiento:
l2 1. Asignar sistemas de referencia
(que se muevan con cada eslabón)
{1} q2
l1 2. Relacionar un sistema con el
q1 anterior (0T1 y 1Te)
{0}
x̂
ŷ {e}
Procedimiento:
l2 1. Asignar sistemas de referencia
(que se muevan con cada eslabón)
{1} q2
l1 2. Relacionar un sistema con el
q1 anterior (0T1 y 1Te)
{0}
x̂
Procedimiento:
3. Multiplicar para obtener la matriz de transformación final 0Te
0
Te 0 T1 1Te
cos(q1 ) sin(q1 ) 0 l1 cos(q1 ) cos(q2 ) sin(q2 ) 0 l2 cos(q2 )
sin(q ) cos(q ) 0 l1 sin(q1 ) sin(q2 ) cos(q2 ) 0 l2 sin(q2 )
0
Te 1 1
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
0 0 1 0
0 0 0 1
1. Introducción
19
Método Geométrico: Robot SCARA
• SCARA:
- Selective Compliant Assembly (Articulated) Robot Arm
- Es un “tipo” de robot: varios fabricantes
https://youtu.be/IRDJnwFDq88 https://youtu.be/97KX-j8Onu0
20
Método Geométrico: Robot SCARA
21
Método Geométrico: Robot SCARA
1 0 0 0 c1 s1 0 0
l4
0
1 0 0 s
1 c1 0 0 l1
0 0 1 l1 0 0 1 0 z0
0 0 0 1 0 0 0 1
y0
c1 s1 0 0 x0
s c1 0 0
0
T1 1
0 0 1 l1
Asignación arbitraria de
0 0 0 1
sistemas de referencia
Dado que la traslación y la rotación es con respecto al
mismo eje, se tiene: Traslz (l1 )Trot z ( q1 ) Trot z (q1 )Trasl z (l1 )
22
Método Geométrico: Robot SCARA
l4
1 0 0 l2 s2 c2 0 0
0 1 0 0 c s2 0 0
l1
2 z0
0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1
y0
x0
s2 c2 0 l2
c s2 0 0
1
T2 2
0 0 1 0 Asignación arbitraria de
0 0 0 1 sistemas de referencia
z4 x4 l4
4. Llevar {3} a {4} y4
l1
z0
- Desplazar {3} una distancia -l4+q3 a lo largo
del eje z3
y0
- Luego, girar un ángulo 90°+q4 alrededor de z x0
llegando a {4}
s4 c4 0 0
Asignación arbitraria de
c s4 0 0
3 sistemas de referencia
T4 Traslz (l4 q3 )Trot z (90 q4 ) 4
0 0 1 q3 l4
0 0 0 1
24
Método Geométrico: Robot SCARA
0
T4 0 T1 1T2 2 T3 3 T4 y1
z1
x1 x2
z3 y3
x3
c1 s1 0 0 s2 c2 0 l2 1 0 0 l3 s4 c4 0 0
s c1 0 0 c2 0 0 0 1 0 0 c4 0 z4 x4
0
T4 1
s2 s4 0 l4
0 0 1 l1 0 0 1 0 0 0 1 0 0 0 1 q3 l4 y4
l1
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 z0
25
Método Geométrico: Robot SCARA
Opcionalmente:
q2 q3
Se puede usar la convención del efector final
q1 l3 q4
(ejes n = x, o = y, a = z) para el sistema {e} l2 z2 y2
- Girar {4} 180° alrededor de x4 z1 z3
x1 x2 y3
y1
1 0 0 0 1 0 0 0 x3
0 cos(180) sin(180) 0 0 1 0 0
4
Te
0 sin(180) cos(180) 0 0 0 1 0 z4
x4 l4
0 0 0 1 0 0 0 1 y4
l1
z0
- Cinemática directa:
y0 xe
0
Te T4 Te
0 4 x0
ye
ze
c124 s124 0 l3 s12 l2 c1
s c124 0 l3c12 l2 s1
0
Te 124
0 0 1 l1 l4 q3 Verificar el resultado cuando los
ángulos son cero
0 0 0 1
26
Método Geométrico: Robot SCARA
def sTrotx(ang):
T = sp.Matrix([[1, 0,0,0],
Función para rotar [0, sp.cos(ang),-sp.sin(ang),0],
alrededor de x [0, sp.sin(ang), sp.cos(ang),0],
[0, 0, 0, 1]])
return T
def sTrotz(ang):
T = sp.Matrix([[sp.cos(ang),-sp.sin(ang),0,0],
Función para rotar [sp.sin(ang), sp.cos(ang),0,0],
alrededor de z [0,0,1,0],
[0,0,0,1]])
return T
27
Método Geométrico: Robot SCARA
T4e = sTrotx(sp.pi)
Convención para el
efector final T0e = sp.simplify(T04*T4e)
T0e
29
Método Geométrico: Robot SCARA
syms q1 q2 q3 q4 l1 l2 l3 pi
% Transformaciones con respecto al sistema anterior
T01 = Trasl(0,0,l1)*Trotz(pi+q1);
Transformaciones T12 = simplify( Trasl(l2,0,0)*Trotz(-pi/2+q2) );
homogéneas y su T23 = trasl(l3,0,0);
producto T34 = simplify( Trasl(0,0,-l4+q3)*Trotz(pi/2+q4) );
% Transformación del eslabón 4 con respecto a la base (0)
T04 = simplify(T01*T12*T23*T34);
T4e = Trotx(pi);
Usando la convención
% Transformación del efector final con respecto a la base (0)
del efector final
T0e = simplify(T04*T4e);
30