Cinemática de los manipuladoresfisica-mecatronica.net/robotica1/C3-Cinematica-de-los-ma... ·...

61
Cinemática de los manipuladores Robótica

Transcript of Cinemática de los manipuladoresfisica-mecatronica.net/robotica1/C3-Cinematica-de-los-ma... ·...

Cinemática de los manipuladores

Robótica

Introducción

• Cinemática: Estudio del movimiento sin considerar las fuerzas que lo producen

Propiedades geométricas y temporales Posición, velocidad, aceleración, derivadas superiores de la posición, etc.

• Cinemática de los manipuladores: Propiedades geométricas y temporales del movimiento.

Aspecto a resolver• Problema:

A partir de los parámetros geométricos del manipulador.

Especificar: Posición y orientacióndel manipulador.

• Solución: Definir sistemas de referenciaen el manipulador y objetos del entorno siguiendo laNotación de Denavit-Hartenberg (1955).

Los términos enlace/articulación

• Articulación: Conexión de doscuerpos rígidos caracterizadospor el movimiento de un sólidosobre otro.

Grado de libertad: Circular o prismático

• Enlace: Cuerpo rígido que une dos ejes articulares adyacentes del manipulador.

Posee muchos atributos: Peso, material, inercia,etc.

Parámetros de un enlace• Eje articular: Línea en el espacio

alrededor de la cual el enlace i rota referido al enlace i-1

• Longitud del enlace (ai-1): Distancia entre los ejes articulares i e i-1Número de líneas que definen la

longitud:Ejes paralelos: Ejes no paralelos: 1Signo: positivo

• Ángulo del enlace ( αi-1): Ángulo medido entre los ejes articulares i e i-1. Proyección sobre plano

Signo: Regla de la mano derecha

∞perpendicular común

Ejemplo de parámetros

1.- Se colocan los ejes articulares

2.- Longitud del enlace: 7

3.- Ángulo del enlace: 450

Plano

Longitud del enlace

Variables articulares• Desplazamiento del enlace (di):

Distancia medida a lo largo del ejede la articulación i desde el punto donde ai-1 intersecta el eje hasta elpunto donde ai intersecta el eje.

di es variable si la articulación esprismáticadi posee signo

• Ángulo de la articulación (θi):Ángulo entre las perpendiculares comunes ai-1 y aimedido sobre el eje del enlace i.

θi es variable si la articulación esde rotaciónθi posee signo definido por la regla de la mano derecha

Definición de Sistemas de Referencia:Enlaces primero y último

• Sistema de referencia {0}: Sistema que se adjunta a la base del robot. No se mueve.

• El Sistema de referencia {1} coincide con la base.

Enlace(i) a0 y an α0 y αn di θi

Prismática (di) 01 y n 0 0 Rotacional (0) θn

Definición de Sistemas de Referencia:Enlaces intermedios

• Origen del sistema de referencia { i }: Se ubica en el punto creado por la perpendicular de ai y el eje articular i.

• Eje Z: El eje del sistema de referencia { i } se hará coincidir con el eje articular i.

• Eje X: El eje se hace coincidir con la distancia ai desde la articulación i hacia i+1.

• Eje Y: Se define a partir del eje , tomando como referencia la regla de la mano derecha.

iX)

iZ)

1−iY)

iZ)

iX)

iX)

Procedimiento general para la definición de sistemas de referencia

1. Identificar los ejes articulares: De los pasos 2 a 5 utilice dos ejes consecutivos i e i-1.

2. Identifique la perpendicular común: Identifique la línea que se intersecta, perpendicularmente, al eje articular i. Defina el sistema de referencia sobre el punto de intersección.

3. Asigne el eje al eje articular i.4. Asigne el eje a la perpendicular común que definió el origen del

sistema de referencia i.5. Termine de asignar el sistema de referencia, definiendo el eje

según la ley de la mano derecha.6. Haga coincidir los sistemas de referencia {0} y {1} cuando la

primera variable articular sea cero.

iZ)

iX)

iY)

Significado de los parámetros de Denavit-Hartenberg

Los parámetros de DH tienen el siguiente significado:El parámetro es la distancia entre y medida a lo largo de . El parámetro es el ángulo entre y referido a

. El parámetro es la distancia de a ´ medida a lo largo de .El parámetro es el ángulo entre y referido a

. Nota: es la única magnitud positiva, las demás tienen

signo.

ia iZ)

1−iZ)

iX)

iα iZ)

1−iZ)

iX)

id iX)

1−iX)

iZ)

iθ 1−iX)

iX)

iZ)

ia

Transformación homogénea de un enlace

Es el resultado de

Al definir tres sistemas de referencia Intermedios {R}, {Q} y {P}, se tiene:

{R} difiere de i-1 en la rotación

{Q} difiere de {R} por la traslación

{P} difiere de {Q} por la rotación

{i} difiere de {P} por la traslación

1−iα

1−ia

id

Transformación homogénea de un enlace (II)

Un punto definido en el sistema de referencia {i} proyectado en elsistema de referencia {i-1}responde a

La transformación del sistema de referencia {i} en {i-1} responde a

Transformación homogénea de un enlace (III)

Matriz DH

Concatenar transformaciones homogéneas de enlaces

• Definir el sistema de referencia de los enlaces• Definir los parámetros DH de cada enlace• Calcular la matriz de transformación de cada enlace• Relacionar el sistema {N} sobre el sistema {0}

• Después de medir la posición, usando sensores, de los enlaces; se calcula la posición del efector final

Transformación resultante de todos los enlaces

Ejemplo RRR (3R)

Ejemplo RRR (II)• Identificar la

perpendicular común entre los ejes de las articulaciones

• Asignar el eje en los ejes articulares

iZ)

10 ZZ))

≡ 2Z)

3Z)

• Identificar el eje de las articulaciones

Ejemplo RRR (III)

• Asignar el eje en la perpendicular común.

iX) • Utilizando la regla de

la mano derecha, asignar el eje .iY

)

Ejemplo RRR (IV)

i αi-1 ai-1 di θi

1 0 0 0 θ1

2 0 L1 0 θ2

3 0 L2 0 θ3

Ejemplo RRR (V)i αi-1 ai-1 di θi

1 0 0 0 θ1

2 0 L1 0 θ2

3 0 L2 0 θ3

Ejemplo RRR (Final)

PTP 303

0 =

Ejemplo RPR

1.- Identificar el eje de las articulaciones

2.- Identificar la perpendicular común al eje de las articulaciones: Ninguna

Ejemplo RPR (II)

• Asignar el eje en los ejes articulares

iZ)

• Si los ejes se intersectan, ubicar de forma que sea normal al plano que contenga los dos ejes, considere además que la variable articular {i} proyectada en {i-1} sea cero en el origen

iZ)

iX)

Ejemplo RPR (III)

iY)• Completar el sistema de

referencia colocando aplicando la regla de la mano derecha

Ejemplo RPR (IV)

Parámetros DH

i αi-1 ai-1 di θi

1 0 0 0 θ1

2 900 0 d2 0

3 0 0 L2 θ3

Ejemplo RPR (Final)i αi-1 ai-1 di θi

1 0 0 0 θ1

2 900 0 d2 0

3 0 0 L2 θ3

PTP 303

0 =

Puma 560-6R

Asignación del sistema de referencia 1

• Posición del robot cuando todas las variables articulares son cero. Hacer coincidir los sistemas de referencia {0} y {1}.

• Asignar el eje en el primer eje articular.

• Asignar el eje a la perpendicular común al eje . Si los ejes se intersectan, asignar a la normal del plano conteniendo los dos ejes.

• Completar el sistema de coordenadas asignando por la regla de la mano derecha

1Z)

1X)

1Z)

1X)

1Y)

2Y)

Asignación del sistemade referencia 2

• Asignar el eje en el segundo eje articular.

• Asignar el eje a la perpendicular común a los ejes articulares 2 y 3.

• Completar el sistema de coordenadas asignando por la regla de la mano derecha

2

32Z)

2X)

2Y)

Asignación del sistemade referencia 3

• Asignar el eje en el tercer eje articular.

• Asignar el eje a la perpendicular común a los ejes articulares 3 y 4 o normal al plano.

• Completar el sistema asignando por la regla de la mano derecha

3

4

3Z)

3X)

3Y)

Asignación del sistemade referencia 4

• Asignar el eje en el cuarto eje articular.

• Asignar el eje a la perpendicular común a los ejes articulares 4 y 5 o normal al plano.

• Completar el sistemaasignando por la regla de la mano derecha

4Z)

4X)

4Y)

Asignación del sistemade referencia 5

• Asignar el eje en el quinto eje articular.

• Asignar el eje a la perpendicular común a los ejes articulares 4 y 5 o normal al plano.

• Completar el sistema asignando por la regla de la mano derecha

5Y)

5X)

5Z)

Asignación del sistemade referencia 6 {N}

• Asignar el eje en el sexto eje articular.

• Seleccione libremente el ejeconsiderando que sean cero la mayor cantidad de parámetros DH.

• Completar el sistema asignando por la regla de la mano derecha

6Z)

6X)

6Y)

Parámetros DH

Transformaciones de los enlaces

Simulador PUMA 560Toolbox RobóticaPeter I. Corke

>> puma560>> plot(560,qz)>> drivebot(p560)

Sistemas de referencias con nombres estándar

Cinemática directa• Cinemática directa:

Se conocen las variables articulares de una cadena de enlaces de un brazo articuladoCálculo sencillo (multiplicación matricial)Una única solución: PTP N

N00 =

Cinemática inversa

• Cinemática inversa:Problema difícil de resolver: Obtener los valores de las variables articulares para que el órgano terminal tenga una determinada posición y orientaciónSe deben resolver un conjunto de ecuaciones algebraicas no lineales simultáneas

Problemas fundamentales:Ecuaciones no lineales (sen, cos en matrices de rotación)Existen múltiples solucionesEs posible que no exista una soluciónSingularidades.

Espacio alcanzable

EsféricoCilíndricoCartesiano

Scara

Espacio alcanzable:Volumen del espacio que el robot puede alcanzar con al menos unaorientación Antropomórfico

Existencia de múltiple soluciones

Deben atenderse las múltiples soluciones:

Elección que minimice los movimientos desde la posiciónactual

Concepto de solución másCercana

Mover los eslabones de menorpeso

Considerar obstáculos (evitarcolisiones)

Obstáculo

Método de resolución• Manipulador resoluble: Existe un algoritmo que

permite determinar todas las soluciones del modelo inverso (variables articulares) asociadas a una determinada posición y orientación.

• Teóricamente es resoluble: todo sistema R y P con 6 grados de libertad.

• Métodos numéricos iterativos: lentitud.• Se prefieren expresiones analíticas (soluciones

cerradas):Métodos algebraicosMétodos geométricos

¿Porqué la cinemática inversa?

• Métodos de programación:Programación por guiado: Desplazamiento del efector final para que se alcancen las configuraciones deseadas, registrándose los valores (digitalización de posiciones).Programación textual: Programa de ordenador donde existen órdenes para especificar los movimientos del robot, acceder a información de sensores, etc.

Cinemática directa vs inversa• Cinemática directa

Conocidos: Ángulos articulares ygeometría de los eslabonesDeterminar: Posición y orientacióndel elemento terminal referido a la base

• Cinemática inversaConocidos: Posición y orientacióndel elemento terminal referido a la baseDeterminar: Ángulos articulares ygeometría de los eslabones para alcanzarla orientación y posición de la herramienta

TTf NBH

0)( ==θ

)()( 011 TfTf NB

H−− ==θ

{Herramienta}

{Base}

Número de soluciones• Se desea: Posicionar el elemento

terminal en un punto del plano

• Número de GDL del manipulador= Número de GDL que requiere la tarea

Dos soluciones

• Número de GDL del manipulador> Número de GDL que requiere la tarea

Infinitas soluciones

Tipos de solución• Solución: Conjunto de variables articulares que permiten

posicionar el elemento terminal en una determinada posición y orientación

• No existen algoritmos generales de solución al problema de cinemática inversa

• Tipos de solución:Soluciones cerradas:

Solución algebraica: Ecuaciones no lineales trigonométricasSolución geométrica: Conjunto de subproblemas geométricos en el plano

Soluciones numéricas (iterativas): No aplicables en tiempo real

Ejemplo de solución geométrica (I)

• Se conoce:Geometría del manipuladorPunto objetivo: Posición (x e y) y orientación del elemento terminal en el espacio

• Problema: Determinar las variables articulares ( )

θ

1θ 2θ 3θ

θ

x

y

Algunas identidades trigonométricas

• Ley de los cosenos para un triángulo general

• Suma de ángulos:

• Identidades: )cos()cos( θθ −=

)cos()cos( θθ +=− pipi

Ejemplo de solución geométrica (II)

• La orientación del último eslabón es la suma de las variables articulares

θ

x

y

θ

321 θθθθ ++=

Ejemplo de solución geométrica (III)

• Cálculo de :

• Aplicando la ley de los cosenos:

• Debido a que

• Resulta:

Ejemplo de solución geométrica (IV)

• Se debe verificar la solución del algoritmo, el cual debe cumplir:

• Espacio alcanzable

• Intervalo de la solución

Espacio alcanzable

Ejemplo de solución geométrica (V)

• Si se definen dos ángulos se cumple

El ángulo se calcula:

Y aplicando ley de los cosenos

ψβθ −=1

22)(

yx

ysen+

β

Ejemplo de solución geométrica (VI)

• Finalmente213 θθθθ −−=

θ

x

y

θ

Control basado en cinemática inversa (I)

Sección de código de la función invsurf.m:

for i = 1:length(r),for j = 1:length(theta),

xx = r(i)*cos(theta(j)); Cinemática directayy = r(i)*sin(theta(j));c2 = (xx^2 + yy^2 - l1^2 - l2^2)/(2*l1*l2);c2 = min(max(c2, -1), 1);s2 = sqrt(1 - c2^2);th2(i, j) = atan2(s2, c2);

k1 = l1 + l2*c2;k2 = l2*s2;th1(i, j) = atan2(yy, xx) - atan2(k2, k1);

endend

Condiciones iniciales:

l1 = 10;l2 = 7;point = 21;

r = linspace(l1-l2, l1+l2, point);theta = linspace(0, 2*pi, 2*point);

Control basado en cinemática inversa (II)

Resultado de ejecutar la función invsurf.m:

Control basado en cinemática inversa (III)

Modelo del brazo articulado de dos grados de libertad

x

y

x

y2θ

x

Control basado en cinemática inversa (IV)

Modelo del brazo articulado de dos grados de libertad

x

y

Modelo inverso del brazo articulado

xd

yd

Control basado en cinemática inversa (V)

for i = 1:length(x),for j = 1:length(y),

xx = x(i);yy = y(j);c2 = (xx^2 + yy^2 - l1^2 - l2^2)/(2*l1*l2);s2 = sqrt(1 - c2^2);th2(i, j) = atan2(s2, c2);k1 = l1 + l2*c2;k2 = l2*s2;th1(i, j) = atan2(yy, xx) - atan2(k2, k1);if abs(c2) < 1;

data1(data_n, :) = [xx yy th1(i, j)];data2(data_n, :) = [xx yy th2(i, j)];data_n = data_n + 1;

endend

endinvkine1 = data1(1:data_n, :);invkine2 = data2(1:data_n, :);

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

nnn yx

yxyx

1

1222

1111

;..

;;

θ

θθ

invkine1

invkine2

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

nnn yx

yxyx

2

2222

2111

;..

;;

θ

θθ

Matrices inversas

Control basado en cinemática inversa (VI)

Obtención del modelo inverso

Sistema borroso 1: fismat1• [fismat1, error1] = anfis(invkine1, 3, [50, 0, 0.2]);• writefis(fismat1, 'invkine1.fis');

% WRITEFIS (FISMAT,'filename')

Sistema borroso 2: fismat2• [fismat2, error2] = anfis(invkine2, 3, [50, 0, 0.2]);• writefis(fismat2, 'invkine2.fis');

),(11 yxf −=θ

),(12 yxf −=θ

Control basado en cinemática inversa (VI)

En el programa invkine.m:fismat1 = readfis('invkine1');fismat2 = readfis('invkine2');

Modelo del brazo articulado de dos grados de libertad

x1θ

theta1 = evalfis([x, y], fismat1);

y

xd

yd

theta2 = evalfis([x, y], fismat2);

Control basado en cinemática inversa (VII)

Resultado de ejecutar invkine.m: