UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
INGENIERÍA ELECTRÓNICA “DISEÑO E IMPLENTACION DE UN BRAZO ROBOTICO DE 3 GRADOS DE LIBERTAD LIBERTAD PARA DESPLAZAMIENTO EN LOS 3 PLANOS” Cajamarca Jor!
[email protected] Por"#$$a A$!%#&
[email protected] 'a$$a(ar!& P!(ro
[email protected] '!$a&co '!$a&co Sa$a)ar A*(r+& ,!r*a*(o
[email protected] '!rara '!rara Z-r#"a Dar.#* A$!%a*(!r
[email protected] documento se detalla la implementación y diseñode un brazo robótico con RESUMEN/ En presente documento se 3GDL, el cual permitir el desplazamiento en los 3 planos !, y, z, mediante una inter"az creada por un arduino y la #$ lo cual permitir controlar al brazo para %ue se desplace a un punto con"igurado por el usuario desde la #$ una vez dadas las coordenadas en !, y, z.
PALABRAS CLA'E& Encoder, Servomotor, brazo robótico 0
INTRODUCCIÓN
Los Los robot robotss a nive nivell tecno tecnoló lógi gico co son los los ms ms util utiliz izad ados os en la indu indust stria ria debi debido do a sus "uncionalidades y practicidad en los procesos de manu"actura, gracias al nivel de trabajo y tiempo de producción %ue alcanzan se 'a incrementado la implementación a nivel n ivel mundial permitiendo al ser 'umano preocuparse preocuparse de labores con ms raciocinio raciocinio como gestión de la producción o proyección proyección de ventas, debido a estas razones se tienen una amplia gama de categor(as y "uncionalidades a nivel mundial. El robot %ue se caracterizar en el presente in"orme es un manipulador, con 3 grados de libertad el cual se mueve a trav)s de un eje de guiado lineal con desplazamiento en los 3 planos para controlar diversas tareas. * este componente se lo puede usar para di"erentes tareas como trabajos de soldadura, ensamblaje de piezas, etc. En este in"orme al ser el primer contacto con el 'ard+are se detallara los componentes y 'erramientas necesarias para el uso correcto del robot "ijo.
1
OJETI'OS
OBJETI'O GENERAL •
Diseñar e implementar un robot "ijo con 3 grados de libertad, mediante la utilización de 3 motores para el control control del desplazamient desplazamientoo mediante un arduino el cual genera una inter"az con la #$, para para colocar colocar la posición posición desde desde la #$ y el robot robot se desplace desplace a dic'o dic'o punto punto espec("ico moviendo sus junturas.
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
OBJETI'OS ESPECI,ICOS •
•
•
3 320
-tilizar un arduino para el control del motor y la inter"az desde el arduino 'acia la #$ mediante comandos de programación para %ue el brazo llegue al punto espec("ico. Diseñar los 3 eslabones de acuerdo a las medidas y acoplar los motores para su desplazamiento. imular en matlab el diseño creado del robot "ijo, para realizar su respectivo anlisis del comportamiento y veri"icación de resultados.
MARCO TEÓRICO ROBOT MANIPULADOR
Entre los robots considerados de ms utilidad en la actualidad se encuentran los roo"& #*(-&"r#a$!& o ma*#4-$a(or!&. E!isten ciertas di"icultades a la 'ora de establecer una de"inición "ormal de lo %ue es un robot industrial. La primera de ellas surge de la di"erencia conceptual entre el mercado japon)s y el euro/americano de lo %ue es un robot y lo %ue es un manipulador. *s(, mientras %ue para los japoneses un robot industrial es cual%uier dispositivo mecnico dotado de articulaciones móviles destinado a la manipulación, el mercado occidental es ms restrictivo, e!igiendo una mayor complejidad, sobre todo en lo relativo al control.
0igura . 1obot manipulador Ma*#4-$a(or& mecanismo "ormado generalmente por elementos en serie, articulados entre s(, destinado al agarre y desplazamiento de objetos. Es multi"uncional y puede ser gobernado directamente por un operador 'umano o mediante dispositivo lógico.
Roo"& manipulador automtico servo/controlado, reprogramable, polivalente, capaz de posicionar y orientar piezas, 2tiles o dispositivos especiales, siguiendo trayectoria variables reprogramables, para la ejecución de tareas variadas. ormalmente tiene la "orma de uno o varios brazos terminados en una muñeca. u unidad de control incluye un dispositivo de memoria y ocasionalmente de percepción del entorno. ormalmente su uso es el de realizar una tarea de manera c(clica, pudi)ndose adaptar a otra sin cambios permanentes en su material. 321
E&"r-c"-ra (! $o& roo"& #*(-&"r#a$!&
-n manipulador robótico consta de una secuencia de elementos estructurales r(gidos, denominados enlaces o !&$ao*!&, conectados entre s( mediante juntas oar"#c-$ac#o*!&, %ue permiten el movimiento relativo de cada dos eslabones consecutivos. 4
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
,#-ra 12 E$!m!*"o& !&"r-c"-ra$!& (! -* roo" #*(-&"r#a$ -na articulación puede ser& L#*!a$ 5deslizante, traslacional o prismtica6, si un eslabón desliza sobre un eje solidario al eslabón anterior. Ro"ac#o*a$, en caso de %ue un eslabón gire en torno a un eje solidario al eslabón anterior.
,#-ra 32D#&"#*"o& "#4o& (! ar"#c-$ac#o*!& (! -* roo"/ a5 $#*!a$6 5 ro"ac#o*a$!& El conjunto de eslabones y articulaciones se denomina ca(!*a c#*!m7"#ca. e dice %ue una cadena cinemtica es abierta si cada eslabón se conecta mediante articulaciones e!clusivamente al anterior y al siguiente, e!ceptuando el primero, %ue se suele "ijar a un soporte, y el 2ltimo, cuyo e!tremo "inal %ueda libre. * )ste se puede conectar un !$!m!*"o "!rm#*a$ o ac"-a(or 8#*a$/ una 'erramienta especial %ue permite al robot de uso general realizar una aplicación particular, %ue debe diseñarse espec("icamente para dic'a aplicación& una 'erramienta de sujeción, de soldadura, de pintura, etc. El punto ms signi"icativo del elemento terminal se denomina 4-*"o "!rm#*a$ 5PT6. En el caso de una pinza, el punto terminal vendr(a a ser el centro de sujeción de la misma. * los manipuladores robóticos se les suele denominar tambi)n ra)o& (! roo" por la analog(a %ue se puede establecer, en muc'os casos, con las e!tremidades superiores del cuerpo 'umano.
,#-ra 92 S!m!ja*)a (! -* ra)o ma*#4-$a(or co* $a a*a"om:a ;-ma*a 3
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
e denomina ra(o (! $#!r"a( 52(2$26 a cada una de las coordenadas independientes %ue son necesarias para describir el estado del sistema mecnico del robot 5posición y orientación en el espacio de sus elementos6. ormalmente, en cadenas cinemticas abiertas, cada par eslabón/ articulación tiene un solo grado de libertad, ya sea de rotación o de traslación. #ero una articulación podr(a tener dos o ms g.d.l. %ue operan sobre ejes %ue se cortan entre s(. 323
PARAMETRIZACIÓN DENA'IT<=ARTENBERG PARA ROBOTS
El estudio de los parmetros Denavit/7artenberg 5D76 "orma parte de todo curso bsico sobre robótica, ya %ue son un estndar a la 'ora de describir la geometr(a de un brazo o manipulador robótico. e usan para resolver de "orma trivial el problema de la cinemtica directa, y como punto inicial para plantear el ms complejo de cinemtica inversa.
08G-1* 9. umero de junturas y eslabones del robot $omo es normal %ue cueste algo de trabajo visualizar en 3D todos los ejes, direcciones, y distancias implicadas en el proceso, 'e liberado el c>(#o 8-!*"! (! $a a4$#cac#>* r78#ca %ue se muestra en el v(deo. e puede emplear como -:a?ca$c-$a(ora para comprobar si se 'an realizado bien problemas de este tipo, as( como ;!rram#!*"a (oc!*"! en clase. Los pasos del algoritmo gen)rico para la obtención de los parmetros D7 se detallan a continuación& . 4. 3. =.
9.
.
N-m!rar $o& !&$ao*!&& se llamar :;< a la :tierra<, o base "ija donde se ancla el robot. :< el primer eslabón móvil, etc. N-m!rar $a& ar"#c-$ac#o*!&& La :< ser el primer grado de libertad, y :n< el 2ltimo. Loca$#)ar !$ !j! (! ca(a ar"#c-$ac#>*& #ara pares de revolución, ser el eje de giro. #ara prismticos ser el eje a lo largo del cul se mueve el eslabón. en los ejes de las Ej!& Z& Empezamos a colocar los sistemas >?. ituamos los articulaciones i, con iA,B,n. Es decir, va sobre el eje de la C articulación, va sobre el eje del 4 grado de libertad, etc. S#&"!ma (! coor(!*a(a& @& e sit2a el punto origen en cual%uier punto a lo largo de . La orientación de e puede ser arbitraria, siempre %ue se respete evidentemente %ue >? sea un sistema de!trógiro. R!&"o (! &"!ma&& #ara el resto de sistemas iA,B,/, colocar el punto origen en la intersección de con la normal com2n a y . En caso de cortarse los dos ejes , colocarlo en ese punto de corte. En caso de ser paralelos, colocarlo en alg2n punto de la articulación iF.
=
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
y , en la dirección Ej!& & $ada va en la dirección de la normal com2n a de 'acia . H. Ej!& & -na vez situados los ejes y >, los ? tienen su direcciones determianadas por la restricción de "ormar un >? de!trógiro. I. S#&"!ma (!$ !%"r!mo (!$ roo"& El n/)simo sistema >? se coloca en el e!tremo del robot 5'erramienta6, con su eje paralelo a y > e ? en cual%uier dirección vlida. ;. 'asta girando alrededor de . *-$o& "!"a& $ada es el ngulo desde . D#&"a*c#a& (& $ada es la distancia desde el sistema >? i/ 'asta la intersección de las normales com2n de 'acia , a lo largo de . 4. D#&"a*c#a& a& $ada es la longitud de dic'a normal com2n. 3. para llegar a , rotando alrededor de . *-$o& a$8a& Jngulo %ue 'ay %ue rotar =. Ma"r#c!& #*(##(-a$!&& $ada eslabón de"ine una matriz de trans"ormación& .
9.
Tra*&8ormac#>* "o"a$& La matriz de trans"ormación total %ue relaciona la base del robot con su 'erramienta es la encadenación 5multiplicación6 de todas esas matrices& Dic'a matriz T permite resolver completamente el problema de c#*!m7"#ca (#r!c"o en robots manipuladores, ya %ue dando valores concretos a cada uno de los grados de libertad del robot, obtenemos la posición y orientación 3D de la 'erramienta en el e!tremo del brazo.
9
MATERIALES
20
#$ *rduino motor con caja de reducción y Encoder 4 servomotores *cr(lico Kubo #$
DESARROLLO D!&arro$$o (!$ 4ro"o"#4o (! ra)o ro>"#co
El brazo est constituido por 3 eslabones los cuales se desarrollaron con materiales "ciles de ad%uirir, como es el acr(lico y tubo #$, a continuación en la "igura se muestra un prototipo del brazo a construir, con los materiales ya mencionados, las dimensiones de los eslabones son las siguientes& 9
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015 • • •
ELECTIVA II
Eslabón & 3;cm Eslabón 4& 4;cm Eslabón 3& 9cm
El controlador encargado de realizar el control de los movimientos del brazo se lo realizara mediante la placa *1D-8M y la inter"az se la desarrollara con la ventana de comunicación serial del propio so"t+are de programación de arduino.
4 3 ; 08G-1* . #rototipo del brazo robótico, con su n2mero de eslabones En la "igura se muestra el material utilizado para la construcción del brazo, los eslabones 4 y 3 se utilizo acr(lico para su "abricación
08G-1* . *cr(lico utilizado para los eslabones El eslabón y la base del brazo se utilizo tubo #$ y madera para su construcción en la "igura H se muestra el ensamblaje de la base del brazo
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
08G-1* H. Nase y eslabón del brazo robot * continuación se muestra en la "igura I el prototipo "inalizado del brazo y listo para realizar el desarrollo del control del mismo
08G-1* ;. #rototipo "inalizado 21
DESARROLLO DEL CIRCUITO DE CONTROL DEL BRAZO CONTROL DE MO'IMIENTO
$omo ya se menciono el circuito de control se utilizo la placa de desarrollo *1D-8M , el cual consta de un microprocesador *KOEG* 34H#, este c'ip de la "amilia *1 es el cerebro del robot, donde mediante un algoritmo de programación, se introduce las ecuaciones para cada motor y se encarga de realizar el control para el movimiento de cada eslabón.
08G-1* . *rduino Los motores utilizados para la acción de movimiento de cada eslabón son 3, dos servomotores y un motor D$ con caja de reducción, los servomotores son los encargados de mover los eslabones 4 y 3 de ; a I; grados, el motor D$ ubicado en la base mueve el eslavo los 3; grados. En la "igura 4 se muestra el motor de la base del brazo.
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
08G-1* 4. Ootor utilizado en la base
08G-1* 3. ervos utilizados para el control de movimiento del brazo.
23 SO,TFARE DERARROLLO MATEMATICO PARA EL MO'IMEINTO DEL BRAZO e utilizo cinemtica inversa, mediante los parmetros de DE*8K/7*1KEONE1G, para encontrar las ecuaciones %ue describen el ngulo %ue debe moverse cada eslabón para %ue el punto "inal alcance la posición deseada. En la tabla numero se muestra los parmetros %ue describen la cinemtica inversa del brazo robot.
( a H P 3; ; I; 0 P4 ; 4; ; 1 P3 ; 9 ; 3 K*NL* . #armetros D7 del brazo robot. Descrita la tabla de parmetros se puede obtener las ecuaciones para de cada eslabón6 a continuación se mostrara las ecuaciones %ue se introducirn al microcontrolador para el control de movimiento de cada eslabón Ecuación , para Q&
H
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015 −1
θ 1= tan
ELECTIVA II
Y X
Ecuación 4, para Q4& θ 2=sin
−1
(
Z −30 15
)
Ecuación 3, para Q3& − X
Y
− ¿ tan
−1
( ) Y
X
−1
−sin −1
θ 3= tan
(
Z −30 15
)
¿
Donde >, ?, , es el punto en eje de coordenadas deseado a donde debe llegar el brazo Mbtenidas las ecuaciones se procede a realizar el algoritmo de programación, para el control del movimiento del brazo, la cual se mostrara en *E>M.
RESULTADOS
e utiliza la ventana de comunicación serial del 8D de *1D-8M para ingresar el punto deseado a llegar del brazo.
08G-1* =. 8nter"az utilizada para el control de movimiento del brazo. $omo se muestra en la "igura =, se ingresaron las coordenadas para %ue el brazo llegue a ese punto, las cuales son& >A; ?A4; A=9 Los valores de los ngulos los cuales debe moverse cada eslabón son los siguientes& I
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
Q A 3.=3 Q4 A I; Q3 A H; Dado estos puntos se observa en la "igura 9 %ue el brazo 'a llegado a la posición deseada, comprobando %ue "unciona correctamente el control del brazo
08G-1* 9. #osición alcanzada por el brazo robot
e realizo la comprobación de los resultados obtenidos por medio del so"t+are de O*KL*N, donde se ingresaron las mismas coordenadas y se observo %ue el brazo modelado en Oatlab alcanza la misma posición.
08G-1* . Nrazo simulado por medio de so"t+are Oatlab
CONCLUSIONES
La cinemtica directa y el algoritmo DE*8K 7*1KENE1G resultan una pieza importante para el Oodelamiento de un robot, pues este algoritmo alberga todas las condiciones para la generación del robot en el espacio, adems de entregar in"ormación de posición y orientación respecto a un sistema de re"erencia
;
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
K
ELECTIVA II
Es importante conocer los comandos %ue posee el $M81M# para realizar la programación de una manera ms "actible, ya %ue de esta manera se puede minimizar las l(neas de código y realizar grandes movimientos del brazo.
Es necesario determinar la velocidad adecuada en el controlador para %ue el brazo realice el dibujo ya %ue de esta manera se puede evitar colisiones con partes e!ternas al brazo, otra manera de controlar la velocidad del brazo es en la programación con el comando #D el cual nos permite controlar la velocidad a la siguiente l(nea de código.
Es importante encontrar un valor en la posición de para %ue al momento de realizar el dibujo no e!ista muc'a "ricción tanto con el es"ero y la 'oja de papel, para %ue al dibujar el brazo no tenga muc'a complicación y no pueda romper la 'oja o en el peor de los casos el es"ero.
RE,ERENCIAS
RS *. Oart(nez, :o"t+are para el modelamiento, simulación y programación de aplicaciones robotizadas<, Oarzo/4;;I REn L(neaS, Disponible en& 'ttp&TTrepositorio.ute.edu.ecTbitstreamT43=9HIT9;TT94;;U.pd" R4S V. López, :#rogramming o"t+are "or Oitsubis'i 8ndustrial 1obots<, Enero/4;;9 REn L(neaS, Disponible en& 'ttp&TTindustrial.utp.edu.coTlaboratoriosTmanu"actura/Ue!ibleTcomponentes/de/la/celdaTrobot/ mitsubis'i/rv/4aj.pd" R3S *. alencia, :8ntroducción a la programación Oel"a Nasic 8<, Oayo W 4;;, REn l(neaS Disponible en& 'ttp&TTisa.um'.esTasignaturasTrvcTprogramacionUOEL0*U8.pd"
ANEOS •
#rogramación realizada en *1D-8M
#include
Servo servo1; Servo servo2; // base del robot int long encoder0PinA = 3; //in 3 aurduino uno int long encoder0Pin! = "; //in " aurduino uno int otor1 = 10; int otor11 = 11; int edro=0; int long encoder0Pos = 0; int encoder0PinA$ast = $%&; int nn = $%&; 'oat grados=0; // (n de la base del robot double rad; int res; int )=0; int *=0; int +=0; int n=0;
int =0; double )1,*1,+1; double teta11,teta22,teta33; int )2; double teta1,teta2,teta3; void setu- Serial.begin-11200; // base del robot inode -encoder0PinA,P45; inode -encoder0Pin!,P45; //otor inode-otor1, %45P45; inode-otor11, %45P45; // (n de la base del robot Serial.rintln-64789S:A: P%$58A SA$8SAA6; Serial.rintln-6!9A% 9%!5%6; Serial.rintln-6:? %:@A:%6; servo1.attach-; servo1.rite-B0;
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
D
ELECTIVA II
servo2.attach-C; servo2.rite-B0;
iG --encoder0PinA$ast == $%& LL -nn == ?K? iG -digital9ead-encoder0Pin! == $%& encoder0Pos; grados = --encoder0PosH3C0/M0; iG -encoder0Pos == M0-encoder0Pos = 0;D D else encoder0PosII; grados = --encoder0PosH3C0/M; iG -encoder0Pos == M-encoder0Pos = 0;D D grados; Serial.rint -6K9A:%S = 6; Serial.rintln -grados;
void loo- hile-==0 servo1.rite-B0; servo2.rite-B0; Serial.rintln-6ngrese las coordenadas E,F,6; =1; D iG -Serial.available- > 2 )= Serial.arsent-; )1=1.0H); Serial.rint-6E= 6; Serial.rintln-)1; nII; hile-n==1 iG -Serial.available- > 2 *= Serial.arsent-; *1=1.0H*; Serial.rint-6F= 6; Serial.rintln-*1; nII; hile-n==2 iG -Serial.available- > 2 += Serial.arsent-; +1=1.0H+; Serial.rint-6= 6; Serial.rintln-+1; nII; hile-n==3 teta1=atan-*1/)1; teta2=asin--+130/1; teta3=-atan--)1/*1-atan-*1/)1-asin--+1 30/1; teta11=-teta1H1J0/3.1"1C; teta22=abs--teta2H1J0/3.1"1C; teta33=abs--teta3H1J0/3.1"1C; Serial.rint-6Angulo 1= 6; Serial.rintln-teta11; Serial.rint-6Angulo 2= 6; Serial.rintln-teta22; Serial.rint-6Angulo 3= 6; Serial.rintln-teta33; nII; hile-n==" servo1.rite-teta22; servo2.rite-teta33; edro=teta11; Serial.rintln-6:8S8A K98SA9 %59%S 7A$%98S6; Serial.rintln-6ngrese 1 ara S * 2 ara %6; nII; hile-n== nn = digital9ead-encoder0PinA;
iG-grados == edro encoder0Pos=0; digital&rite-otor1, $%&; digital&rite-otor11, $%&; Serial.rint -6K9A:%S = 6; Serial.rintln -grados; D D encoder0PinA$ast = nn; //angulo ositivo iG-edro >0 LL edro <= 3C0 digital&rite-otor1, ?K?; digital&rite-otor11, $%&; Serial.rintln-6ositivo6; D //angulo negativo iG-edro <0 LL edro >= 3C0 digital&rite-otor1, $%&; digital&rite-otor11, ?K?; Serial.rintln-6negativo6; D iG -Serial.available- > 0 res=Serial.arsent-; iG-res == 1 n=0; =0; Serial.rintln-n; D iG-res == 2 Serial.rintln-6K9AAS6; n=C; hile-n==C D D D D D D D D D
4
UNIVERSIDAD POLITÉCNICA SALESIANA 03/08/2015
ELECTIVA II
D dela*-0;
D
3
D