Documentos de Académico
Documentos de Profesional
Documentos de Cultura
- Introducción
- Herramientas matemáticas para localización espacial
Representación de la posición
Representación de la orientación
Representación de la localización: la matriz de transformación
Uso de transformaciones en robótica
Otras representaciones para las localizaciones
- Modelo geométrico directo
- Modelo Geométrico inverso
Definición: problemática de resolución
Métodos de resolución analítica
Enfoque geométrico
Método de la transformación inversa
Método desacoplado posición-orientación
- Modelo cinemático: el jacobiano
Introducción
La cinemática de manipuladores tiene como objetivo el estudio analítico del movimiento del
manipulador (a nivel espacial y de velocidades), sin considerar las fuerzas y momentos que lo
producen.
1. Modelo geométrico directo: conocidos los parámetros geométricos de cada eslabón, y las
coordenadas articulares, ¿cuál será la localización del elemento terminal?
2. Modelo geométrico inverso: conocida la situación deseada del elemento terminal, ¿Es
posible alcanzarla?, y si es así: ¿Cuáles serán las coordenadas articulares? ¿Representan
una configuración única?
Robótica Industrial. CINEMÁTICA
Cinemática de manipuladores
- Introducción
- Herramientas matemáticas para localización espacial
Representación de la posición
Representación de la orientación
Representación de la localización: la matriz de transformación
Uso de transformaciones en robótica
Otras representaciones para las localizaciones
- Modelo geométrico directo
- Modelo Geométrico inverso
Definición: problemática de resolución
Métodos de resolución analítica
Enfoque geométrico
Método de la transformación inversa
Método desacoplado posición-orientación
- Modelo cinemático: el jacobiano
Representación de la Posición
La posición de un punto en el espacio viene dada por el vector de posición
x Y r Y Y
y θ θ
X X X
⎡
⎢ px ⎤⎥ ⎡
⎢ px ' ⎤⎥
p xyz
= ⎢
⎢
p y ⎥⎥ p = ⎢
x' y'z ' ⎢
p y ' ⎥⎥
⎢⎣ pz ⎥⎦ ⎢⎣ pz ' ⎥⎦ Relación entre componentes: p|xyz = R p|x'y'z' (R: matriz de rotación)
Representación de la orientación
Propiedades de las rotaciones:
• R ortonormal
• No conmutativa
• Elemento neutro: I3
⎛1 0 0 ⎞ ⎛ Cθ 0 Sθ ⎞ ⎛ Cθ − Sθ 0⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
Rotaciones básicas: Rot ( x , θ ) = ⎜ 0 Cθ − Sθ ⎟ ; Rot ( y, θ ) = ⎜ 0 1 0 ⎟; Rot ( z, θ ) = ⎜ Sθ Cθ 0⎟
⎜ 0 Sθ Cθ ⎟⎠ ⎜ − Sθ 0 Cθ ⎟⎠ ⎜ 0 1 ⎟⎠
⎝ ⎝ ⎝ 0
z z z
θ ⎛ 1 0 0 ⎞⎛ 0 − 1 0 ⎞ ⎛ 0 − 1 0 ⎞⎛ 1 0 0 ⎞
⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟
θ ⎜ 0 0 − 1⎟⎜ 1 0 0 ⎟ ≠ ⎜ 1 0 0 ⎟⎜ 0 0 − 1⎟
θ θ ⎜ 0 1 0 ⎟⎜ 0 0 1 ⎟ ⎜ 0 0 1 ⎟⎜ 0 1 0 ⎟
θ ⎝ ⎠⎝ ⎠ ⎝ ⎠⎝ ⎠
y y θ y
x x x
Rot (x, 90º) * Rot (z, 90º) <> Rot (z, 90º) * Rot (x, 90º)
Robótica Industrial. CINEMÁTICA
Angulos de EULER (z y’z’’)
z” z”’
z z’ Euler (φ, θ, ψ) = Rot (z”, ψ) * Rot (y’, θ) * Rot (z, φ)
φ
ψ y”’ Expresado desde la referencia original:
θ
y’ y”
Euler (φ, θ, ψ) = Rot (z, φ) * Rot (y, θ) * Rot (z, ψ)
y
Angulos Roll-Pitch-Yaw
z
φ
RPY (φ, θ, ψ) = Rot (z, φ) * Rot (y, θ) * Rot (x, ψ)
θ
⎛ CφCθ CφSθSψ − SφCψ CφSθCψ + SφSψ ⎞
⎜ ⎟
ψ y RPY (φ, θ, ψ) = ⎜ SφCθ SφSθSψ + CφCψ SφSθCψ − CφSψ ⎟
⎜ − Sθ CθSψ CθCψ ⎟
x ⎝ ⎠
θ ⎜⎜ ⎟⎟
⎝ rx rz (1 − Cθ) − ry Sθ ry rz (1 − Cθ) + rx Sθ rz (1 − Cθ) + Cθ ⎠
2
r
y
⎧ (o z − a y ) 2 + ( a x − n z ) 2 + ( n y − o x ) 2
⎪θ = arctan
⎪ nx + o y + a z − 1
⎨
A partir de la matriz de rotación: ⎪ ⎛ oz − a y a x − nz n y − ox ⎞
⎪r = ⎜⎜ 2 Sθ S θ S θ
⎟⎟
⎩ ⎝ 2 2 ⎠
Quaternios
• Utilizados en algunos lenguajes usuales (rapid - ABB)
• Permiten expresar orientación en forma compacta
[ ]
Q = q 0 , q 1 , q 2 , q 3 = [ s, v ]
Propiedades:
• Q = [ s,−v ]
*
[ ] [ ] [
• Q1 + Q2 = s1 , v 1 + s2 , v 2 = s1 + s2 , v 1 + v 2 ]
• aQ = [ as, av ]
[ ]
• Q1 * Q2 = s1s2 − v 1v 2 , v 1 × v 2 + s1v 2 + s2 v 1 no conmutativo
• Q = q02 + q12 + q2 2 + q32
Q*
−1
•
Q =
Q
⎛ 2 1 ⎞
⎜ q0 + q1 − q1q2 − q3q0 q1q3 + q2 q0 ⎟
2
⎜ 2 ⎟
⎜
R = q1q2 + q3q0 q0 + q2 −
2 2 1
q2 q3 − q1q0 ⎟
⎜ ⎟
• Relación con las rotaciones: ⎜
2
⎟
1
⎜ q1q3 − q2 q0 q2 q3 + q1q0 q0 + q3 − ⎟
2 2
⎝ 2⎠
1 1
en sentido inverso: q0 = 2 nx + o y + a z + 1 q1 =
2
nx − o y − a z + 1
1 1
q2 = − nx + o y − a z + 1 q3 = − nx − o y + a z + 1
2 2
⎛ nx ox ax px ⎞ ⎛ px ⎞
⎜ ⎟ ⎜ ⎟
⎜n oy ay py ⎟ ⎜p ⎟
T =⎜ y ⎟ p =⎜ y⎟
n oz az pz ⇒ representación homogénea de la posición: p
⎜ z ⎟ ⎜ z⎟
⎜0 ⎟ ⎜ ⎟
⎝ 0 0 1⎠ ⎝1⎠
x
Uso dual: transformación de coordenadas entre 2 sistemas de referencia (cambio de base)
z’
z y’ ⎛ px ⎞ ⎛ px ' ⎞
p ⎜ ⎟ ⎜ ⎟
⎜ py ⎟ ⎜ py' ⎟
T ⎜p ⎟ = T ⎜p ⎟
x’ ⎜ z⎟ ⎜ z' ⎟
⎜1⎟ ⎜ 1 ⎟
y ⎝ ⎠ ⎝ ⎠
x
Matrices de transformación
Lectura alternativa del uso dual:
z y’
T
x’
y
x
⎛ R p1 ⎞ ⎫
z1 z2
z0 y1 T1 = ⎜⎜ 1
0
⎟⎟ ⎪
⎝ 0 1 ⎠ ⎪→0T *1T = ⎛⎜ R1R2 p1 + R1 p2 ⎞⎟
⎬ ⎜ 0 ⎟
⎛ R2 p2 ⎞⎪
1 1 2
0 T2 ⎝ 1 ⎠
T1
x1 x2
y2 1
T 2 = ⎜
⎜ 0 1 ⎟⎪ ⎟
y0 ⎝ ⎠⎭
• No conmutativa
0
T2
x0
• Asociativa
• Elemento neutro: I4
⎛ R p⎞ ⎛ Rt − Rt p ⎞
⎜ ⎟ −1
⎜ ⎟
Transformación inversa: inversión de la matriz: T = ⎜ 0 1 ⎟ → T = ⎜ 0 ⎟
⎝ ⎠ ⎝ 1 ⎠
Casos particulares:
• Traslaciones (R=I3)
• Rotaciones (p=(0 0 0)t)
⎛ R p ⎞ ⎛ I 3 p ⎞⎛ R 0 ⎞ ⎛ R 0 ⎞⎛ I 3 R t p ⎞
⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜
Separación en rotación y traslación puras: T = ⎜ 0 1 ⎟ = ⎜ 0 1 ⎟⎜ 0 1 ⎟ = ⎜ 0 1 ⎟⎜ 0
⎟⎜ ⎟
⎝ ⎠ ⎝ ⎠⎝ ⎠ ⎝ ⎠⎝ 1 ⎟⎠
Robótica Industrial. CINEMÁTICA
Matrices de transformación
Ejemplos de uso en robótica:
Modelado (estructurado) del entorno del robot
Bloque
Taladro
B
TT A
TM: Situación de la mesa respecto a ABS
M
TB: Situación del bloque respecto a mesa
M B
TB TT: Situación del taladro respecto al bloque
z
Mesa
A
TM
M
TR: Situación del manipulador respecto al mundo
R
TE: Situación del extremo del brazo respecto a la base
E
TH: Situación de la herramienta respecto extremo brazo
M
TO: Situación del objeto respecto al mundo
O
TH: Situación del asidero respecto al objeto
¿Localización absoluta del asidero (MTH)? → MTH = MTR * RTE * ETH = MTO * OTH
¿Situación a la que habrá de llevar la herramienta del robot respecto de su base (RTH)?
→ R
TH = RTE * ETH = (MTR)-1 * MTO * OTH
Robótica Industrial. CINEMÁTICA
Otras representaciones
Expresión de localización a nivel de usuario (internamente se suelen convertir a transformación)
• Compacta (7 elementos)
• Composición complicada
• Compacta (7 elementos)
• Composición sencilla
X = f (q)
q: configuración articular del robot (coordenadas articulares): q = (q1, q2, q3, q4, q5, q6)t
Robótica Industrial. CINEMÁTICA
Modelo geométrico directo
Resolución sistemática (Denavit y Hartemberg, 1955), basada en transformaciones:
Procedimiento en 4 pasos…
1.- Origen Oi en la intersección entre la perpendicular común a Ji y Ji+1 con ésta última.
* Ejes Ji y Ji+1 paralelos: elegir una perpendicular común
* Ejes Ji y Ji+1 se cortan: el punto es el de intersección
* Caso especial: sólidos 0 y herramienta
2.- Versor zi paralelo a Ji+1
3.- Versor xi paralelo a zi-1×zi
4.- Versor yi es el producto vectorial zi×xi
a) Método directo
0 0 1 2 3 4 5
T6 = T1 T2 T3 T4 T5 T6
θi αi ai di
1 θ1 0º 0 l1
2 90º 90º 0 d2
3 0º 0º 0 d3
4 θ4 0º 0 l4
θi αi ai di
1 θ1 -90º 0 l1
2 θ2 0º l2 0
3 θ3 90º 0 0
4 θ4 -90º 0 l3
5 θ5 90º 0 0
6 θ6 0º 0 l4
Stanford arm
q = f -1(X)
Imprescindible en control de robot:
¡Resolución problemática!
• Solución no única
• Configuraciones singulares
• Complejidad algebraica/geométrica
Multiplicidad de soluciones
Ejemplo: robot angular de 6 ejes: 8 diferentes soluciones
Singularidades del brazo (normalmente asociadas a los límites del volumen de trabajo):
10
2
q1
5 0
-2
0 10 20 30
0
Y
t
0.5
-5
0
qd1
-0.5
-10
-1
-1.5
-10 -5 0 5 10 0 10 20 30
X t
Singularidades
Singularidades en muñeca (alineación en Roll-pitch-roll):
• No siempre converge
• Lentitud
- Analíticos:
Enfoques algebráicos:
Resolución geométrica
Basada en la descomposición en adecuadas secciones planas y posterior resolución de
geometrías triangulares
Problemas:
⎧ p x + p y − a1 − a 2
2 2 2 2 a2
⎪q 2 = ± acos q2
⎪ 2a1a2
p x + p y = a1 + a 2 + 2a1a 2 cos q 2 ⇒ ⎨
2 2 2 2
⎛ ⎞
⎪q = atan ⎜ y ⎟ − atan ⎛⎜ a 2 sen q2 ⎞⎟
p
a1
⎪⎩ 1 ⎜p ⎟ ⎜ a + a cos q ⎟
⎝ x⎠ ⎝ 1 2 2 ⎠
q1
⎛ nx ox ax px ⎞
⎜ ⎟
⎜n oy ay py ⎟
0
T6 (q1 , q 2 ,L , q 6 ) = ⎜ y
n oz az pz ⎟
⎜ z ⎟
⎜0 1 ⎟⎠
⎝ 0 0
• Ecuaciones no lineales
• Las expresiones están fuertemente acopladas
V0 = localización U1 q1
V1 = 0T1-1*V0 U2 q2
V2 = 1T2-1*V1 U3 q3
V3 = 2T3-1*V2 U4 q4
V4 = 3T4-1*V3 U5 q5
V5 = 4T5-1*V4 U6 q6
Consejos prácticos:
→ Su posición no depende de θ4 θ5 y θ6
1. Resolución del brazo Punto de partida: la ubicación deseada para la herramienta (TCP):
⎛ nx ox a x p x ⎞
⎜ ⎟
⎜ ny oy a y p y ⎟
loc _ deseada _ TOOL = ⎜
n oz a z p z ⎟
⎜ z ⎟
⎜0 0 0 1⎟
⎝ ⎠
Por otro lado, la posición de la muñeca es función de las 3 primeras variables articulares:
( )
pos _ muñeca = PdT 0T1*1T2 *2 T3 * trasl (0,0, d 4 ) = f ( q1 , q2 , q3 )
Punto de partida:
⎛ nx ox ax ⎞
⎜ ⎟
ori _ deseada _ TOOL = ⎜ n y oy ay ⎟
⎜n oz az ⎟⎠
⎝ z
Planteamiento…
⎛ nx ox ax ⎞
⎜ ⎟
0 0 3 3
( )
R6 = R3 * R6 ⇒ R6 = f (θ 4 ,θ 5 ,θ 6 ) = R3
0 −1
* ⎜ ny oy ay ⎟
9 ecuaciones y 3 incognitas: ¡Despejar!
⎜n oz a z ⎟⎠
⎝ z
Solución (si a 2 + b 2 ≥ c 2 ): b
a cos qi − b sin qi = f
Otro caso habitual: a sin q + b cos q = g qi a
i i
c
⎛ag −b f a f +bg ⎞
Solución: q i = atan 2⎜ 2 , 2 ⎟
⎝ a +b a + b2 ⎠
2
⎛ C1 0 S1 0⎞
⎜ ⎟
⎜S 0 − C1 0⎟
0
T1 = ⎜ 1
0 1 0 l1 ⎟
⎜ ⎟
⎜0 1 ⎟⎠
⎝ 0 0
⎛ C2 0 − S2 0⎞ ⎛1 0 0 0⎞
⎜ ⎟ ⎜ ⎟
⎜S 0 C2 0⎟ ⎜0 1 0 0⎟
1
T2 = ⎜ 2 ; 2
T3 = ⎜
0 −1 0 0⎟ 0 0 1 q3 ⎟
⎜ ⎟ ⎜ ⎟
⎜0 1 ⎟⎠ ⎜0 0 0 1 ⎟⎠
⎝ 0 0 ⎝
Ejemplo
En este caso sólo es de aplicación la 1ª parte del método. Partiríamos de un sistema de 3
ecuaciones y 3 incógnitas:
px
Despejando S2 de la ecuación 1: − q3C1S 2 = p x ⇒ S 2 = −
q3C1
px ⎫
S2 = −
q3C1 ⎪⎪
⇒ q2 = arctan 2(− p x / C1 , p z − l1 )
Considerando ahora la ec. 3 tendremos: C = p z − l1 ⎬⎪
q3 ⎪⎭
2
3ª articulación
p z − l1
Despejando de la ec. 3: q3 =
C2
Ejemplo 2ª fase
2ª fase del método (revisión de Barrientos, pg. 145-146):
Punto de partida:
⎛ C4 0 − S4 ⎞ ⎛ C5 0 S5 ⎞ ⎛ C6 − S6 0⎞
⎜ ⎟ ⎜ ⎟ 5 ⎜ ⎟
3
R4 = ⎜ S 4 0 C4 ⎟; 4
R5 = ⎜ S5 0 − C5 ⎟; R6 = ⎜ S6 C6 0⎟
⎜0 − 1 0 ⎟⎠ ⎜0 0 ⎟⎠ ⎜0 1 ⎟⎠
⎝ ⎝ 1 ⎝ 0
⎛ C 4 C5 C 6 − S 4 S 6 − C4C5 S 6 − S 4C6 C4 S 5 ⎞
⎜ ⎟
R6 = ⎜ S 4C5C6 + C4 S 6
3
− S 4C5 S6 + C4C6 S 4 S5 ⎟
Contribución de la muñeca a la orientación total:
⎜ − S 5C 6 S5 S6 C5 ⎟⎠
⎝
Ejemplo 2ª fase
⎧ C5 = r33
⎪ S S =r
⎪⎪ 4 5 23
⎨ C4 S5 = r13
Ecuaciones seleccionadas: ⎪ S S = r
⎪ 5 6 32
⎪⎩− S5C6 = r31
De la 1ª ecuación:
⎛r r ⎞
Un vez elegida la opción, de las ecs. 2 y 3: θ 4 = atan2⎜⎜ S , S ⎟⎟ válida ∀ config.
23 13
⎝ 5 5 ⎠
⎛r −r ⎞
Y finalmente, de las ecs. 4 y 5: θ 6 = atan2⎜⎜ S , S ⎟⎟ válida ∀ config.
32 31
⎝ 5 5 ⎠
Modelo cinemático: relación entre las velocidades articulares y operacionales: X& = J ( q ) q&
=( v , v , v , w , w , w )= J
t
• Velocidad expresada en la referencia 0: & =0 V
X 0 0 0 0 0 0 0
(q )q&
n x y z x y z n
⎛ 0 Rn 0 ⎞n
⎜ ⎟ J n (q )
Relación entre ambas versiones: J n (q ) =⎜ 0
0
⎝
0
R n ⎟⎠
⎛ 0 Jpos 3 (q ) ⎞
0
J 3 (q ) = ⎜⎜ 0 ⎟
⎟
⎝ Jori 3 (q ) ⎠
0
Diferenciando la parte de posición, obtendremos la 1ª parte de la matriz Jpos 3 (q ) …
⎧ dp x n
∂f x ⎫ ⎛ ∂f x ∂f x ⎞
p
⎪ x = f x ( q K q n ) → v x = = ∑ ∂
q&i ⎪ ⎜ L ⎟
⎜ ∂q1 ∂q n ⎟
1
⎪ dt i = 1 q i ⎪
⎪ dp n ∂f
⎪ ⎜ ∂f ∂f y ⎟
X = f ( q ) ⇒ ⎨ p y = f y ( q1 K qn ) → v y = y = ∑ y q&i ⎬⇒ 0 Jpos n (q ) = ⎜ y L ⎟
⎪ dt i =1 ∂qi ⎪ ⎜ ∂q1 ∂q n ⎟
⎪ dp z n
∂f z ⎪ ⎜ ∂f z ∂f z ⎟
⎪ p z = f z ( q1 K qn ) → vz = dt = ∑ ∂q q&i ⎪ ⎜ ∂q L
∂qn ⎟⎠
⎩ i =1 i ⎭ ⎝ 1
⎛ 0 − wz wy ⎞
dR n
∂R ⎜ ⎟
=∑ q&i = ⎜ wz 0 − wx ⎟R ⇒ 0 Jori n (q )
dt i =1 ∂qi ⎜− w
⎝ y wx 0 ⎟⎠
2. Transformación de esfuerzos entre los 2 espacios (muy útil si interacción con el entorno):
fe = ( f x , f y , f z , τ x , τ y ,τ z ) ; f q = (τ 1 ,τ 2 , τ 3 ,τ 4 , τ 5 ,τ 6 )
t t
⎛ τ1 ⎞ ⎛ fx ⎞
⎜ ⎟ ⎜ ⎟
⎜τ 2 ⎟ ⎜ fy ⎟
⎜τ ⎟ ⎜f ⎟
t n t t n t
fe ⋅ Vn = f q ⋅ q& ⇒ fe ⋅ J n (q )q& = f q ⋅ q& ⇒ ⎜ 3
⎟ = J n (q )⎜ z ⎟
n t
⎜τ 4 ⎟ ⎜τ x ⎟
⎜τ ⎟ ⎜τ ⎟
⎜ 5⎟ ⎜ y⎟
⎜τ ⎟ ⎜τ ⎟
⎝ 6⎠ ⎝ z⎠
3. Obtención numérica del modelo geométrico inverso basado en la matriz jacobiana inversa
Ejemplo de obtención
Robot polar de 3 articulaciones
⎛ C1C 2 − S1 − C1 S 2 − q3C1 S 2 ⎞
⎜ ⎟
⎜S C C1 − S1 S 2 − q3 S1 S 2 ⎟
0
T3 = ⎜ 1 2
S 0 C2 q3C 2 + l1 ⎟
⎜ 2 ⎟
⎜ 0 ⎟
⎝ 0 0 1 ⎠
p x = − q3C1S 2 → vx = q3 S1S 2 q&1 − q3C1C2 q&2 − C1S 2 q&3 ⎫ ⎛ q3 S1S 2 − q3C1C2 − C1S 2 ⎞
⎪ 0 ⎜ ⎟
p y = − q3 S1S 2 → v y = − q3C1S 2 q&1 − q3 S1C2 q&2 − S1S 2 q&3 ⎬⇒ Jpos 3 (q ) = ⎜ − q3C1S 2 − q3 S1C2 − S1S 2 ⎟
p z = q3C2 + l1 → vz = − q3 S 2 q&2 + C2 q&3 ⎪ ⎜ − q3 S 2 C2 ⎟⎠
⎭ ⎝ 0
Ejemplo de obtención
Planteamiento para obtener la relación entre w y q’:
⎛ 0 − wz wy ⎞ ⎛ 0 − wz wy ⎞
⎜ ⎟ ⎜ ⎟
& =⎜ w
R 0 − wx ⎟R ⇒ ⎜ wz 0 − wx ⎟ = R& Rt =
z
⎜− w wx 0 ⎟⎠ ⎜− w wx 0 ⎟⎠
⎝ y ⎝ y
⎛ − S1C2 q&1 − C1S 2 q& 2 − C1q&1 S1S 2 q&1 − C1C2 q& 2 ⎞⎛ C1C2 S1C2 S2 ⎞
⎜ ⎟⎜ ⎟
= ⎜ C1C2 q&1 − S1S 2 q& 2 − S1q&1 − C1S 2 q&1 − S1C2 q& 2 ⎟⎜ − S1 C1 0⎟
⎜ C2 q& 2 − S 2 q& 2 ⎟⎜ − C S − S S C2 ⎟⎠
⎝ 0 ⎠⎝ 1 2 1 2
wx = S1q&2 ⎫ ⎛ 0 S1 0⎞
⎪ 0 ⎜ ⎟
wy = −C1q&2 ⎬⇒ Jori 3 (q ) = ⎜ 0 − C1 0⎟
wz = q&1 ⎪ ⎜1 0 ⎟⎠
⎭ ⎝ 0
Debido a la simplicidad de este robot, algunos valores de la matriz jacobiana (la parte de la
velocidad angular) eran previsibles de manera intuitiva.
Jacobiana inversa
Obtención entre las velocidades articulares a partir de la velocidad del órgano terminal:
−1
• Si m = n, J (q) = J (q)
*
(
• Si m > n, J (q) = J (q) ⋅ J(q)
* t
)
−1
J t (q) pseudoinversa izquierda (solución más plausible)
( −1
)
• Si m < n, J (q) = J (q) ⋅ J(q) ⋅ J (q) pseudoinversa derecha ( q& mínima de entre ∞)
* t t
Obtención problemática:
0 − q3 S 2 C2