ABB IRB 140 CR Por: Francisco José Lara Guerrero Abraham Ruiz Gómez

Preview:

Citation preview

ABB IRB 140 CR

Por:

Francisco José Lara Guerrero

Abraham Ruiz Gómez

ABB IRB 140

Robot rotacional de 6 gdl Diseñado especificamente para

aplicaciones industriales Adaptibilidad Posibilidad de comunicarse con

sistemas externos CLEAN ROOM IP 67

NECESIDADES

Introducir robot industrial en aplicaciones médicas

Intervenir quirujircamente una rodilla inmobilizada

SUPONEMOS

Infiltración de rodilla superficial sin

prismatica Rodilla inmobilizada

Robot debe interactuar con una mesa de trabajo donde se situarán las herramientas

¿Por qué IRB 140 CR?

Estructuralmente• Peso “reducido” 98kg• Dimensiones reducidas• Espacio de trabajo amplio• Bajo nivel sonoro <70dB• Consumo reducido <0.44kw a max vel• Baja repetitibilidad 0.03mm• Gran capacidad de carga

¿Por qué IRB 140 CR?

Seguridad• Diseño robusto • Sistema basado en doble circuito

de control• Selección de operación manual o

automática• Doble seta de emergencia

¿Por qué IRB 140 CR?

Otros aspectosOtros aspectos• Fácil de analizar• Control robusto• Rápida respuesta• Sistema flexible• Programación sencilla

Análisis Representación de D-H

Análisis Parametros D-H del robt IRB140CR

Articulación d a

1 1+/2 352mm 70mm +/2

2 2+/2 0 360mm 0

3 3 0 0 +/2

4 4 380mm 0 -/2

5 5 0 0 +/2

6 6 65mm 0 0

Análisis Cinemático

Cinemática directa Algoritmo de

Denavit-Hartenberg

Cinemática inversa Método goemétrico

Análisis Dinámico

Dinámica directa Método de Walker-Orin

Dinámica inversa Método de Newton-Euler

Análisis Dinámico

Distribución de masas:

Análisis Dinámico

Cálculo de la Matriz de Inercia

R

Ix1= Iy + M L2= ¼ M (R2 + 1/3 H2) + M L2

Iy1= Iz + M L2= 1/2 M R2 + M L2 Iz1= Ix + M L2=¼ M (R2 + 1/3 H2) + M L2

Ix1 0 0 1.659 0 0 [I1] = 0 Iy1 0 = 0 1.341 0 0 0 Iz1 0 0 1.66

Análisis Dinámico

Matrizes de inercia I1=[0.0191 0 0;0 0.0191 0;0 0 0.0068]; I2=[0.0031 0 0;0 0.0484 0;0 0 0.0484]; I3=zeros(3,3); I4=[0.0606 0 0;0 0.0053 0;0 0 0.0606]; I5=zeros(3,3); I6=[0.0022 0 0;0 0.0022 0;0 0 0.0014];

Análisis Dinámico

Comprobación:>> q=rand (6,1);>> qp=rand (6,1);>> qpp=rand(6,1);>> m7=3;>> iext= 0.05*eye(3);>> tau=newtoneuler6(q,qp, qpp, 9.8,m7, iext)tau = 0.4470 -82.4079 -34.2172 0.9083 -2.6426 0.0118

>> acel=walkerorin6(q,qp,tau,m7,iext)acel = 0.1389 0.2028 0.1987 0.6038 0.2722 0.1988>> qppqpp = 0.1389 0.2028 0.1987 0.6038 0.2722 0.1988

SELECCIÓN DE SERVOACCIONAMIENTO

S

Partimos de la peor posición:

q=(0 Π/2 -Π/2 0 0 0 )

SELECCIÓN DE SERVOACCIONAMIENTO

S

SELECCIÓN DE SERVOACCIONAMIENTO

S Curvas de pares obtenidas

SELECCIÓN DE SERVOACCIONAMIENTO

S

Articulación 1 2 3 4 5 6

pico (Nm)

x 1.5

0.190.285

1.62.4

0.781.17

0.0390.0585

0.0390.0585

0.0390.0585

nominal (Nm)

x 1.5

0.1080.162

0.040.06

0.0120.018

0.00060.0009

0.00060.0009

0.00060.0009

Reductora con

motor a 5000rpm

1/500 1/500 1/150 1/150 1/75 1/63

Resultados

SELECCIÓN DE SERVOACCIONAMIENTO

S

Articulación Nombre Motor R() L(mH) KT(NM/A) Kv(V/rad/s) Imáx(A)

1 DA23GBB 0.8 0.93 0.058 0.058 18.5

2 DA34HBB 1.6 1.36 0.176 0.176 23.7

3 DA34FBB 0.7 1.01 0.112 0.112 21.8

4 DB17CDB 6.9 1.28 0.035 0.035 3.6

5 DB17CDB 6.9 1.28 0.035 0.035 3.6

6 DB17CDB 6.9 1.28 0.035 0.035 3.6

Comentar que los motores aquí calculados no son reproducción exacta de los servos que incorpora la familia de robots de ABB (AC). En nuestro caso hemos calculado una aproximación con motores DC brushless para poder diseñar y simular un tipo de controlador que haga que el sistema se comporte con la máxima robustez.

SINTONIZADO DE MOTORES

• Con las características del motor de cada articulación

SINTONIZADO DE MOTORES

SINTONIZADO DE MOTORES

Articulación PID Reductor

1 P=100 500

2 P=200 500

3 P=200 D=3 150

4 P=15 D=0.7

150

5 P=20 I=10 D=0.7

75

6 P100 D=2.5 63

SIMULACIÓN

PROGRAMACIÓN

• Paleta de programación

• Controladora

PC

Targetas E/S

Selector de manual/auto

PROGRAMACIÓN

%%% VERSION:1 lANGUAJE:ENGLISH %%% MODULE infiltra PERS tooldata pinza := [TRUE,[[0,0,0],[1,0,0,0]],[5,[9,0,9],[1,0,0,0],0.01,0.01,0.01]]; !Defino todas las herramientas que voy a utilizar más la pinza??! PERS tooldata pinzalapiz := [TRUE,[[0,0,0],[1,0,0,0]],[5.1,[9,0,9],[1,0,0,0],0.01,0.01,0.01]]; PERS tooldata pinzajeringa := [TRUE,[[0,0,0],[1,0,0,0]],[5.1,[9,0,9],[1,0,0,0],0.01,0.01,0.01]]; CONST robtarget P0 := [[],[],[],[]]; CONST robtarget P1 := [[],[],[],[]]; CONST robtarget P2 := [[],[],[],[]]; CONST robtarget P3 := [[],[],[],[]]; CONST robtarget P3 := [[],[],[],[]]; CONST robtarget P4 := [[],[],[],[]]; CONST robtarget P5 := [[],[],[],[]]; CONST robtarget P6 := [[],[],[],[]]; CONST robtarget P7 := [[],[],[],[]]; CONST robtarget P8 := [[],[],[],[]]; CONST robtarget P9 := [[],[],[],[]]; CONST robtarget P9 := [[],[],[],[]];

CONST robtarget P9 :=[[],[],[],[]];

CONST robtarget P10 :=[[],[],[],[]];

...PROC main()

MOVEL P0, v100, z50, pinza;MOVEL P10, v50, z10, pinza;MOVEL MES1, V40, z7.5, pinzalapiz;SET do15;WAITTIME 1;MOVEL P0, V50, z10, pinzalapiz;MOVEC P1, P2, v100, z50, pinzalapiz;MOVEL P3, v60, z10, pinzalapiz;MOVEL P4, V40, z7.5, pinzalapiz;MOVEL P5, V20, z5, pinzalapiz;MOVEL P4, V40, z7.5, pinzalapiz;MOVEL P3, v60, z10, pinzalapiz;MOVEL P7, V40, z7.5, pinzalapiz MOVEL P8, V20, z5, pinzalapiz;MOVEL P7, V40, z7.5, pinzalapiz;MOVEL P3, V60, z10, pinzalapiz;MOVEL P2, V100, z50, pinzalapiz;MOVEc P1, P0, V100, z50, pinzalapiz;MOVEL P10, V50, z10, pinzalapiz;MOVEL MES1, V40, z7.5, pinzalapiz;RESET dO1.5;WAITTIME 1;MOVEL P10, V50, z30, pinza;MOVEL P11, V50, z30, pinza;

PROGRAMA

PROGRAMACIÓN MOVEL MES2, V40, z7.5, pinza; SET dO 1.5; WAITTIME 1; MOVEL P11, V50, z30, pinzajeringa; MOVEL P0, V50, z10, pinzajeringa??; MOVEC P1, P2, v100, z50, pinzajeringa; MOVEL P3, v60, z10, pinzajeringa; MOVEL P4, V40, z5, pinzajeringa; MOVEL P5, V20, fine, pinzajeringa; MOVEL P6, V5, fine, pinzajeringa; !Ahora deberiamos infiltrar la rodilla del paciente con la jeringa

electroneumática, pero como la defino??! !WAITTIME o IF infiltardo = 1 THEN!!aplicar lo mismo si ubieramos

sensores en la pinza de amarre! MOVEL P5, V5, fine, pinzajeringa; MOVEL P4, V40, z5, pinzajeringa; MOVEL P3, v60, z10, pinzajeringa; MOVEL P7, V40, z5, pinzajeringa; MOVEL P8, V20, fine, pinzajeringa; MOVEL P9, v5, fine, pinzajeringa; !Ahora deberiamos infiltrar la rodilla del paciente con la jeringa

electroneumática, pero como la defino??! !WAITTIME o IF infiltardo = 1 THEN!!aplicar lo mismo si tubieramos

sensores en la pinza de amarre! MOVEL P8, V5, fine, pinzajeringa; MOVEL P7, V40, z5, pinzajeringa; MOVEL P3, V60, z10, pinzajeringa; MOVEL P2, V100, z50, pinzajeringa; MOVEc P1, P0, V100, z50, pinzajeringa; MOVEL P11, V50, z10, pinzajeringa; MOVEL MES2, V40, z7.5, pinzalapiz; RESET d01.5; WAITTIME 1; MOVEL P11, V50, z30, pinza; MOVEL P12, V50, z30, pinza; MOVEL MES3, V40, z7.5, pinza; SET dO 1.5; WAITTIME 1;

MOVEL P0, V50, z50, pinza;MOVEC P1, P2, v100, z50, pinza;MOVEL P3, v60, z10, pinza;MOVEL P4, V40, z7.5, pinza;MOVEL P5, V20, z5, pinza;MOVEL P4, V40, z7.5, pinza;MOVEL P3, v60, z10, pinza;MOVEL P7, V40, z7.5, pinza;MOVEL P8, V20, z5, pinza;MOVEL P7, V40, z7.5, pinza;MOVEL P3, V60, z10, pinza;MOVEL P2, V100, z50, pinza;MOVEc P1, P0, V100, z50, pinza;ENDPROCENDMODULE

ASPECTOS DEL ANÁLISIS A COMENTAR

Uso o no de prismática como última articulación.

Singularidades Las evitamos con MoveL y MoveC + espacio de trabajo limitado

Espacio de trabajo limitado a zona de intervención seguridad ante posibles fallos

Acción integral en el PID Simulación 4 articulación

THE END

Para más información consultar

www.abb.com

Recommended