proyecto de robots - udesc - cct · resolver la cinemática directa del manipulador de 6 dof con...
TRANSCRIPT
11.1
Control y programación de robots
11. 11. Solución cinemática inversa y directa de Solución cinemática inversa y directa de robots serialesrobots seriales
11.2
El alumno, tras recibir y estudiar esta clase, debe ser capaz de:
Comprender el modelado de la cinemática directa e inversa de los robots seriales y sus limitaciones
11.3
Definición de las cinemáticasDefinición de las cinemáticas
11.4
11.5
Grados de libertad de un mecanismo
Asumiendo pares binarios (juntas que soportan dos eslabones), los grados de libertad (F) de un mecanismo están gobernados por la ecuación
F = λ (n - 1) –
Donde:
F = Grados de libertad del mecanismon = numero de eslabones del mecanismo j = numero de juntas (articulaciones binarias)ci = numero de restricciones impuestas por la junta
fi = grados de libertada permitidos por la junta
λ = grados de libertad del espacio en el cual trabaja el mecanismo
j
ii 1
c=¥
11.6
criterio de Grubler's :
F = λ (n - j - 1) +
Ejemplo – robot rotacional de 6 ejes (ABB IRB 4400):
Refiriéndonos al a figura y de acuerdo a la anterior ecuación:
F = 6 (7 - 1) - 6 (5) = 6 “como era esperado”
o por la ecuación de Grubler's :
F = 6(7 – 6 –1) + 6 (1) = 6 “como era esperado”
Criterio de Grubler’s
j
ii 1
f=¥
11.7
Grados de libertad redundantes
Los grados de libertad redundantes pueden generar grados de libertad pasivos, los cuales deben ser restado de la ecuación de Grubler's, para tener:
F = λ (n - j - 1) - - fp
Un grado de libertad pasivo ayuda a un eslabón intermedio a rotar libremente alrededor de un eje definido por las dos juntas
Un grado de libertad pasivo no puede transmitir par.
j
ii 1
f=¥
11.8
Problemas de la cinemática de robots
Redundancia Mas grados de libertad que los que se necesitan
para resolver el posicionamiento de un robot Grados de libertad redundantes para evadir obstáculos Múltiples soluciones
Fijar soluciones de acuerdo a la aplicación Fijar soluciones por métodos geométricos que
optimizan restricciones Singularidades
Las singularidades de un mecanismo pueden reflejar comportamientos que dan como resultado: la reducción de la cadena cinemática o la ganancia de
grados de libertad sin control el atascamiento del mecanismo
11.9
Singularidad de borde
Singularidad por el alineamiento de las juntas 4 y 6
Singularidades típicas
La relación esférica de las juntas pierde movilidad al caer sobre el eje de giro
11.10
Análisis de posición: Soluciones cinemáticasAnálisis de posición: Soluciones cinemáticas
La solución cinemática directa La cinemática directa de un robot consiste en hallar la posición y
orientación del efector final a partir de los ángulos o desplazamientos de cada una de las articulaciones
La cinemática directa puede ser calculada la partir de la lectura de los sensores de posición de las articulaciones
Base
Efector final ?
?
1θ
2θ
3θ
f( )=xθrr
11.11
Análisis de posición: Soluciones cinemáticasAnálisis de posición: Soluciones cinemáticas
La solución cinemática inversa La cinemática
1 1 2 2 3 3
1 1 2 2 3 3
x l cos( ) l cos( ) l cos( )
y l sin( ) l sin( ) l sin( )
θ θ θθ θ θ
= + += + +
Base
Efector final (x, y, z)1 = ?θ
2 = ?θ
3 = ?θ
1f ( )−=θ xr r
l1l2
l3
11.12
Análisis de posición: Soluciones cinemáticasAnálisis de posición: Soluciones cinemáticas
La solución cinemática inversa
1 1 2 2 3 3
1 1 2 2 3 3
x l cos( ) l cos( ) l cos( )
y l sin( ) l sin( ) l sin( )
θ θ θθ θ θ
= + += + +
Base
Efector final (x, y, z)1 = ?θ
2 = ?θ
3 = ?θ
1f ( )−=θ xr r
l1l2
l3
Numero de ecuaciones : 2
Numero de variables : 3
Posible numero infinito de soluciones !
11.13
Análisis de posición: RedundanciaAnálisis de posición: Redundancia
DOF del mecanismo > DOF del efector final
Nuestro ejemplo
DOF mecanismo = 3 DOF efector final = 2
1 1 2 2 3 3
1 1 2 2 3 3
x l cos( ) l cos( ) l cos( )
y l sin( ) l sin( ) l sin( )
θ θ θθ θ θ
= + += + +
11.14
Definición de las trasformaciones cinemáticasDefinición de las trasformaciones cinemáticas
11.15
Solución cinemática directaSolución cinemática directa
11.16
Cinemática directaCinemática directa
11.17
Cinematica directa por matrices de transformaciónCinematica directa por matrices de transformación
Tabla de parámetros de D-H
Orientación de la muñeca
Posición
11.18
Ejercicio practico: Cinemática directa con Ejercicio practico: Cinemática directa con matlabmatlab
Eslabón θ idi ai α i
1 θ1+π/2 l1 0 -π/2
2 θ2-π/2 0 a2 0
3 θ3+π 0 0 π/2
4 θ4l4 0 −π/2
5 θ50 0 π/2
6 θ6l6 0 0
Resolver la cinemática directa del manipulador de 6 dof con matlab
11.19
Ejemplo: Robot serial 6 DOFEjemplo: Robot serial 6 DOF
% DIRECTKINEMATIC6 Direct Kinematic.% A06 = DIRECTKINEMATIC6(Q) devuelve la matriz de transformación del% primer sistema de coordenadas al último en función del vector Q % de variables articulares.%% See also DENAVIT.function A06 = directkinematic6(q)% Parámetros Denavit-Hartenberg del robotteta = q;d = [0.315 0 0 0.5 0 0.08];a = [0 0.45 0 0 0 0];alfa = [-pi/2 0 pi/2 -pi/2 pi/2 0];% Matrices de transformación homogénea entre sistemas de coordenadas consecutivosA01 = denavit(teta(1), d(1), a(1), alfa(1));A12 = denavit(teta(2), d(2), a(2), alfa(2));A23 = denavit(teta(3), d(3), a(3), alfa(3));A34 = denavit(teta(4), d(4), a(4), alfa(4));A45 = denavit(teta(5), d(5), a(5), alfa(5));A56 = denavit(teta(6), d(6), a(6), alfa(6));% Matriz de transformación del primer al último sistema de coordenadasA06 = A01 * A12 * A23 * A34 * A45 * A56;
11.20
Ejemplo: Robot serial 6 DOFEjemplo: Robot serial 6 DOF
» q=zeros(6,1)
q =
0
0
0
0
0
0
» T=directkinematic6(q)
T =
1.0000 0 0 0.4500
0 1.0000 0 0
0 0 1.0000 0.8950
0 0 0 1.0000
11.21
Cinemática inversaCinemática inversa
11.22
Solución cinemática inversaSolución cinemática inversa
11.23
Cinemática inversa de un robot serialCinemática inversa de un robot serial
La cinemática inversa consiste en hallar los valores de las coordenadas articulares del robot conocida la posición y orientación del extremo del robot.
A pesar de que en la literatura se pueden encontrar diversos métodos genéricos para la resolución de la cinemática inversa que pueden ser implementados en computadora, suele ser habitual la resolución por medio de métodos geométricos.
La mayor parte de los robots suelen tener cadenas cinemáticas relativamente sencillas, que facilitan la utilización de los métodos geométricos.
11.24
Cinemática inversa de un robot serialCinemática inversa de un robot serial
Para muchos robots, si se consideran sólo los tres primeros grados de libertad, se tiene una estructura planar, una hoja que gira. Este hecho facilita la resolución del problema.
Asimismo los últimos tres grados de libertad suelen usarse para la orientación de la herramienta, lo cual permite una resolución geométrica desacoplada de la posición de la muñeca del robot y de la orientación de la herramienta.
11.25
Cinemática inversa de un robot serialCinemática inversa de un robot serial
11.26
Resolución por método geométrico, caso-1Resolución por método geométrico, caso-1
11.27
Resolución por método geométrico, caso-1Resolución por método geométrico, caso-1
11.28
Resolución cinemática inversa por matrices de Resolución cinemática inversa por matrices de transformacióntransformación
11.29
Resolución por matrices de transformaciónResolución por matrices de transformación
11.30
Resolución por matrices de transformaciónResolución por matrices de transformación
11.31
Ejercicio practico: Cinemática con matlabEjercicio practico: Cinemática con matlab
Simular el desplazamiento de un robot de 6 dof en línea recta, dados el puntos de partida p1(x, y, z) y de llegada p2(x, 2, z).
p1
p2
11.32
Ejercicio practico: Cinemática con matlabEjercicio practico: Cinemática con matlab
simular la cinemática inversa de un manipulador de 6 dof utilizando herramientas de matlab
1. Construir la tabla de parámetros de D-H.
2. Defina para este robot una de las dos opciones para el hombro y una de las dos opciones para la muñeca
3. Edite el script: inversekinematic6(T, codo, muñeca); y cambie los valores de la tabla de D-H por los del robot 6 DOF
4. Estudie detenidamente los scripts planifica6(p1, p2, n, s, a, CODO, MUNECA, NPUNTOS).m y inversekinematic6(T, codo, muneca).m
5. Realice las simulación
11.33
Ejercicio practico: Cinemática inversa con matlabEjercicio practico: Cinemática inversa con matlab
Eslabón θ idi ai α i
1 θ1+π/2 l1 0 -π/2
2 θ2-π/2 0 a2 0
3 θ3+π 0 0 π/2
4 θ4l4 0 −π/2
5 θ50 0 π/2
6 θ6l6 0 0
Modelo del robot en base a D-H
11.34
Ejercicio practico, cinemática inversa con matlabEjercicio practico, cinemática inversa con matlab
11.35
Revisión: Funciones de matlabRevisión: Funciones de matlab
Código en Matlab. La función PLANIFICA6(P1,P2,N,S,A,CODO,MUÑECA, NPUNTOS) calcula la matriz de coordenadas articulares utilizada para graficar el movimiento del robot.
% PLANIFICA6 Planificación de trayectorias% MAT_Q = PLANIFICA6(P1, P2, N, S, A, CODO, MUNECA, NPUNTOS) realiza % una planificación de trayectoria en línea recta desde la coordenada% cartesiana P1 hasta la P2, de manera que la mano del manipulador % posee la orientación expresada por [N S A]. CODO = 1 indica codo del % robot arriba, es decir, que la articulación 3 se sitúa por encima de % la articulación 2, mientras que CODO = -1 indica codo abajo, es decir % que la articulación 2 se sitúa por encima de la 3. MUNECA = 1 indica que % la muñeca del robot se sitúa por debajo de la coordenada cartesiana, % mientras que MUNECA = -1 significa que la muñeca se sitúa por arriba.% NPUNTOS indica el número de puntos en los que se divide la trayectoria.% En MAT_Q se devuelve las coordenadas articulares, almacenadas por% columnas, correspondientes a cada uno de los puntos cartesianos en los % que se divide la trayectoria. MAT_Q es una matriz de NPUNTOS + 2 columnas % y 6 filas. %% See also INVERSEKINEMATIC6.
11.36
Revisión: Funciones de matlabRevisión: Funciones de matlab
function mat_q = planifica6(p1, p2, n, s, a, codo, muneca, npuntos)% Cálculo del vector unitariou = p2-p1;mu = sqrt(u(1)^2+u(2)^2+u(3)^2);u = (1/mu)*u;% Cálculo de la distancia entre puntosd = mu/(npuntos+1);for i=0:(npuntos+1) % Cálculo de la posición cartesiana actual de la mano del manipulador
p = p1+(i*d)*u; T = [n s a p]; % Cálculo de las coordenadas articulares q = inversekinematic6(T,codo,muneca); mat_q(:,i+1) = q;end