Vous êtes sur la page 1sur 12

UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II

03/08/2015

INGENIERÍA ELECTRÓNICA

“DISEÑO E IMPLENTACION DE UN BRAZO ROBOTICO DE 3 GRADOS


DE LIBERTAD PARA DESPLAZAMIENTO EN LOS 3 PLANOS”

Cajamarca Jorge
jcajamarca@est.ups.edu.ec
Portilla Alexis
aportilla@est.ups.edu.ec
Valladares Pedro
pvalladares@est.ups.edu.ec
Velasco Salazar Andrés Fernando
avelaco@est.ups.edu.ec
Vergara Zurita Darwin Alexander
dvergara@est.ups.edu.ec

RESUMEN: En presente documento se detalla la implementación y diseñode un brazo robótico con


3GDL, el cual permitirá el desplazamiento en los 3 planos x, y, z, mediante una interfaz creada por
un arduino y la PC lo cual permitirá controlar al brazo para que se desplace a un punto configurado
por el usuario desde la PC una vez dadas las coordenadas en x, y, z.

PALABRAS CLAVE: Encoder, Servomotor, brazo robótico

1 INTRODUCCIÓN

Los robots a nivel tecnológico son los más utilizados en la industria debido a sus
funcionalidades y practicidad en los procesos de manufactura, gracias al nivel de trabajo y tiempo de
producción que alcanzan se ha incrementado la implementación a nivel mundial permitiendo al ser
humano preocuparse de labores con más raciocinio como gestión de la producción o proyección de
ventas, debido a estas razones se tienen una amplia gama de categorías y funcionalidades a nivel
mundial.

El robot que se caracterizará en el presente informe 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. A este componente se lo puede usar para diferentes tareas como trabajos de
soldadura, ensamblaje de piezas, etc. En este informe al ser el primer contacto con el hardware se
detallara los componentes y herramientas necesarias para el uso correcto del robot fijo.

2 OJETIVOS

OBJETIVO GENERAL

 Diseñar e implementar un robot fijo con 3 grados de libertad, mediante la utilización de 3


motores para el control del desplazamiento mediante un arduino el cual genera una interfaz
con la PC, para colocar la posición desde la PC y el robot se desplace a dicho punto
específico moviendo sus junturas.

OBJETIVOS ESPECIFICOS

1
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

 Utilizar un arduino para el control del motor y la interfaz desde el arduino hacia la PC
mediante comandos de programación para que el brazo llegue al punto específico.

 Diseñar los 3 eslabones de acuerdo a las medidas y acoplar los motores para su
desplazamiento.

 Simular en matlab el diseño creado del robot fijo, para realizar su respectivo análisis del
comportamiento y verificación de resultados.

3 MARCO TEÓRICO

3.1 ROBOT MANIPULADOR

Entre los robots considerados de más utilidad en la actualidad se encuentran los robots industriales
o manipuladores. Existen ciertas dificultades a la hora de establecer una definición formal de lo
que es un robot industrial. La primera de ellas surge de la diferencia conceptual entre el mercado
japonés y el euro-americano de lo que es un robot y lo que es un manipulador. Así, mientras que
para los japoneses un robot industrial es cualquier dispositivo mecánico dotado de articulaciones
móviles destinado a la manipulación, el mercado occidental es más restrictivo, exigiendo una mayor
complejidad, sobre todo en lo relativo al control.

Figura 1. Robot manipulador


Manipulador: mecanismo formado generalmente por elementos en serie, articulados entre sí,
destinado al agarre y desplazamiento de objetos. Es multifuncional y puede ser gobernado
directamente por un operador humano o mediante dispositivo lógico.

Robot: manipulador automático servo-controlado, reprogramable, polivalente, capaz de posicionar y


orientar piezas, útiles o dispositivos especiales, siguiendo trayectoria variables reprogramables, para
la ejecución de tareas variadas. Normalmente tiene la forma de uno o varios brazos terminados en
una muñeca. Su unidad de control incluye un dispositivo de memoria y ocasionalmente de
percepción del entorno. Normalmente su uso es el de realizar una tarea de manera cíclica,
pudiéndose adaptar a otra sin cambios permanentes en su material.

3.2 Estructura de los robots industriales

Un manipulador robótico consta de una secuencia de elementos estructurales rígidos, denominados


enlaces o eslabones, conectados entre sí mediante juntas oarticulaciones, que permiten el
movimiento relativo de cada dos eslabones consecutivos.

2
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

Figura 2. Elementos estructurales de un robot industrial

Una articulación puede ser:


Lineal (deslizante, traslacional o prismática), si un eslabón desliza sobre un eje solidario al eslabón
anterior.
Rotacional, en caso de que un eslabón gire en torno a un eje solidario al eslabón anterior.

Figura 3.Distintos tipos de articulaciones de un robot: a) lineal, b) rotacionales

El conjunto de eslabones y articulaciones se denomina cadena cinemática. Se dice que una cadena
cinemática es abierta si cada eslabón se conecta mediante articulaciones exclusivamente al anterior y
al siguiente, exceptuando el primero, que se suele fijar a un soporte, y el último, cuyo extremo final
queda libre. A éste se puede conectar un elemento terminal o actuador final: una herramienta
especial que permite al robot de uso general realizar una aplicación particular, que debe diseñarse
específicamente para dicha aplicación: una herramienta de sujeción, de soldadura, de pintura, etc. El
punto más significativo del elemento terminal se denomina punto terminal (PT). En el caso de una
pinza, el punto terminal vendría a ser el centro de sujeción de la misma.
A los manipuladores robóticos se les suele denominar también brazos de robot por la analogía que
se puede establecer, en muchos casos, con las extremidades superiores del cuerpo humano.

Figura 4. Semejanza de un brazo manipulador con la anatomía humana

3
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

Se denomina grado de libertad (g.d.l.) a cada una de las coordenadas independientes que son
necesarias para describir el estado del sistema mecánico del robot (posición y orientación en el
espacio de sus elementos). Normalmente, en cadenas cinemáticas abiertas, cada par eslabón-
articulación tiene un solo grado de libertad, ya sea de rotación o de traslación. Pero una articulación
podría tener dos o más g.d.l. que operan sobre ejes que se cortan entre sí.

3.3 PARAMETRIZACIÓN DENAVIT-HARTENBERG PARA ROBOTS

El estudio de los parámetros Denavit-Hartenberg (DH) forma parte de todo curso básico sobre
robótica, ya que son un estándar a la hora de describir la geometría de un brazo o manipulador
robótico. Se usan para resolver de forma trivial el problema de la cinemática directa, y como punto
inicial para plantear el más complejo de cinemática inversa.

FIGURA 5. Numero de junturas y eslabones del robot


Como es normal que cueste algo de trabajo visualizar en 3D todos los ejes, direcciones, y distancias
implicadas en el proceso, he liberado el código fuente de la aplicación gráfica que se muestra en el
vídeo. Se puede emplear como guía/calculadora para comprobar si se han realizado bien problemas
de este tipo, así como herramienta docente en clase.

Los pasos del algoritmo genérico para la obtención de los parámetros DH se detallan a continuación:

1. Numerar los eslabones: se llamará “0” a la “tierra”, o base fija donde se ancla el robot. “1” el
primer eslabón móvil, etc.
2. Numerar las articulaciones: La “1” será el primer grado de libertad, y “n” el último.
3. Localizar el eje de cada articulación: Para pares de revolución, será el eje de giro. Para
prismáticos será el eje a lo largo del cuál se mueve el eslabón.
4. Ejes Z: Empezamos a colocar los sistemas XYZ. Situamos los en los ejes de las
articulaciones i, con i=1,…,n. Es decir, va sobre el eje de la 1ª articulación, va sobre el eje
del 2º grado de libertad, etc.
5. Sistema de coordenadas 0: Se sitúa el punto origen en cualquier punto a lo largo de . La
orientación de e puede ser arbitraria, siempre que se respete evidentemente que XYZ sea
un sistema dextrógiro.
6. Resto de sistemas: Para el resto de sistemas i=1,…,N-1, colocar el punto origen en la
intersección de con la normal común a y . En caso de cortarse los dos ejes Z, colocarlo
en ese punto de corte. En caso de ser paralelos, colocarlo en algún punto de la articulación i+1.

4
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

7. Ejes X: Cada va en la dirección de la normal común a y , en la dirección de


hacia .
8. Ejes Y: Una vez situados los ejes Z y X, los Y tienen su direcciones determianadas por la
restricción de formar un XYZ dextrógiro.
9. Sistema del extremo del robot: El n-ésimo sistema XYZ se coloca en el extremo del robot
(herramienta), con su eje Z paralelo a y X e Y en cualquier dirección válida.
10. Ángulos teta: Cada es el ángulo desde hasta girando alrededor de .
11. Distancias d: Cada es la distancia desde el sistema XYZ i-1 hasta la intersección de las
normales común de hacia , a lo largo de .
12. Distancias a: Cada es la longitud de dicha normal común.
13. Ángulos alfa: Ángulo que hay que rotar para llegar a , rotando alrededor de .
14. Matrices individuales: Cada eslabón define una matriz de transformación:

15. Transformación total: La matriz de transformación total que relaciona la base del robot con su
herramienta es la encadenación (multiplicación) de todas esas matrices:

Dicha matriz T permite resolver completamente el problema de cinemática directo en robots


manipuladores, ya que dando valores concretos a cada uno de los grados de libertad del robot,
obtenemos la posición y orientación 3D de la herramienta en el extremo del brazo.

4 MATERIALES

 PC
 Arduino 1
 1 motor con caja de reducción y Encoder
 2 servomotores
 Acrílico
 Tubo PVC

5 DESARROLLO

5.1 Desarrollo del prototipo de brazo robótico

El brazo está constituido por 3 eslabones los cuales se desarrollaron con materiales fáciles de
adquirir, como es el acrílico y tubo PVC, a continuación en la figura 6 se muestra un prototipo del
brazo a construir, con los materiales ya mencionados, las dimensiones de los eslabones son las
siguientes:
 Eslabón 1: 30cm
 Eslabón 2: 20cm
 Eslabón 3: 15cm

5
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

El controlador encargado de realizar el control de los movimientos del brazo se lo realizara mediante
la placa ARDUINO 1 y la interfaz se la desarrollara con la ventana de comunicación serial del
propio software de programación de arduino.

0
FIGURA 6. Prototipo del brazo robótico, con su número de eslabones

En la figura 7 se muestra el material utilizado para la construcción del brazo, los eslabones 2 y 3 se
utilizo acrílico para su fabricación

FIGURA 7. Acrílico utilizado para los eslabones

El eslabón 1 y la base del brazo se utilizo tubo PVC y madera para su construcción en la figura 8 se
muestra el ensamblaje de la base del brazo

FIGURA 8. Base y eslabón 1 del brazo robot

A continuación se muestra en la figura 9 el prototipo finalizado del brazo y listo para realizar el
desarrollo del control del mismo

6
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

FIGURA 10. Prototipo finalizado

5.2 DESARROLLO DEL CIRCUITO DE CONTROL DEL BRAZO Y CONTROL DE


MOVIMIENTO

Como ya se menciono el circuito de control se utilizo la placa de desarrollo ARDUINO 1, el cual


consta de un microprocesador ATMEGA 328P, este chip de la familia AVR 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.

FIGURA 11. Arduino 1

Los motores utilizados para la acción de movimiento de cada eslabón son 3, dos servomotores y un
motor DC con caja de reducción, los servomotores son los encargados de mover los eslabones 2 y 3
de 0 a 90 grados, el motor DC ubicado en la base mueve el eslavo 1 los 360 grados. En la figura 12
se muestra el motor de la base del brazo.

7
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

FIGURA 12. Motor utilizado en la base

FIGURA 13. Servos utilizados para el control de movimiento del brazo.

5.3 SOFTWARE Y DERARROLLO MATEMATICO PARA EL MOVIMEINTO DEL


BRAZO

Se utilizo cinemática inversa, mediante los parámetros de DENAVIT-HARTEMBERG, para


encontrar las ecuaciones que describen el ángulo que debe moverse cada eslabón para que el punto
final alcance la posición deseada. En la tabla numero 1 se muestra los parámetros que describen la
cinemática inversa del brazo robot.

θ d a α
1 Θ1 30 0 90º
2 Θ2 0 20 0
3 Θ3 0 15 0
TABLA 1. Parámetros DH del brazo robot.
Descrita la tabla de parámetros se puede obtener las ecuaciones para θ de cada eslabón, a
continuación se mostrara las ecuaciones que se introducirán al microcontrolador para el control de
movimiento de cada eslabón

Ecuación 1, para θ1:


Y
θ1 = tan−1
X

Ecuación 2, para θ2:

Z − 30
θ2 = sin−1 ( )
15

Ecuación 3, para θ3:

−X Y Z − 30
θ3 = tan−1 − tan−1 ( ) − sin−1 ( )
Y X 15

Donde X, Y, Z, es el punto en eje de coordenadas deseado a donde debe llegar el brazo

8
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

Obtenidas las ecuaciones se procede a realizar el algoritmo de programación, para el control del
movimiento del brazo, la cual se mostrara en ANEXOS.
6 RESULTADOS

Se utiliza la ventana de comunicación serial del ID de ARDUINO para ingresar el punto deseado a
llegar del brazo.

FIGURA 14. Interfaz utilizada para el control de movimiento del brazo.

Como se muestra en la figura 14, se ingresaron las coordenadas para que el brazo llegue a ese punto,
las cuales son:
X=10
Y=20
Z=45
Los valores de los ángulos los cuales debe moverse cada eslabón son los siguientes:
θ1 = 63.43º
θ2 = 90º
θ3 = 180º
Dado estos puntos se observa en la figura 15 que el brazo ha llegado a la posición deseada,
comprobando que funciona correctamente el control del brazo

FIGURA 15. Posición alcanzada por el brazo robot

9
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

Se realizo la comprobación de los resultados obtenidos por medio del software de MATLAB, donde
se ingresaron las mismas coordenadas y se observo que el brazo modelado en Matlab alcanza la
misma posición.

FIGURA 16. Brazo simulado por medio de software Matlab

7 CONCLUSIONES

La cinemática directa y el algoritmo DENAVIT HARTENBERG resultan una pieza importante


para el Modelamiento de un robot, pues este algoritmo alberga todas las condiciones para la
generación del robot en el espacio, además de entregar información de posición y orientación
respecto a un sistema de referencia

 Es importante conocer los comandos que posee el COSIROP para realizar la programación
de una manera más factible, ya que 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 que el brazo realice el


dibujo ya que de esta manera se puede evitar colisiones con partes externas al brazo, otra
manera de controlar la velocidad del brazo es en la programación con el comando SPD 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 Z para que al momento de realizar el


dibujo no exista mucha fricción tanto con el esfero y la hoja de papel, para que al dibujar el
brazo no tenga mucha complicación y no pueda romper la hoja o en el peor de los casos el
esfero.
8 REFERENCIAS

[1] A. Martínez, “Software para el modelamiento, simulación y programación de aplicaciones


robotizadas”, Marzo-2009 [En Línea], Disponible en:
http://repositorio.ute.edu.ec/bitstream/123456789/15101/1/52100_1.pdf

10
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

[2] W. López, “Programming Software for Mitsubishi Industrial Robots”, Enero-2005 [En Línea],
Disponible en:
http://industrial.utp.edu.co/laboratorios/manufactura-_exible/componentes-de-la-celda/robot-
mitsubishi-rv-2aj.pdf

[3] A. Valencia, “Introducción a la programación Melfa Basic IV”, Mayo – 2007, [En línea]
Disponible en:
http://isa.umh.es/asignaturas/rvc/programacion_MELFA_IV.pdf

ANEXOS

 Programación realizada en ARDUINO


#include <Servo.h> void loop()
Servo servo1; {
Servo servo2; while(m==0)
// base del robot {
int long encoder0PinA = 3; //pin 3 aurduino uno servo1.write(90);
int long encoder0PinB = 4; //pin 4 aurduino uno servo2.write(90);
int motor1 = 10; Serial.println("Ingrese las coordenadas X,Y,Z");
int motor11 = 11; m=1;
int pedro=0; }
int long encoder0Pos = 0; if (Serial.available() > 2) {
int encoder0PinALast = LOW;
int nn = LOW; x= Serial.parseInt();
float grados=0; x1=1.0*x;
// fin de la base del robot Serial.print("X= ");
double rad; Serial.println(x1);
int resp; n++;
int x=0; while(n==1){
int y=0; if (Serial.available() > 2) {
int z=0; y= Serial.parseInt();
int n=0; y1=1.0*y;
int m=0; Serial.print("Y= ");
double x1,y1,z1; Serial.println(y1);
double teta11,teta22,teta33; n++;
int x2; while(n==2)
double teta1,teta2,teta3; {
void setup() if (Serial.available() > 2 ) {
{ Serial.begin(115200); z= Serial.parseInt();
// base del robot z1=1.0*z;
pinMode (encoder0PinA,INPUT); Serial.print("Z= ");
pinMode (encoder0PinB,INPUT); Serial.println(z1);
//motor n++;
pinMode(motor1, OUTPUT); while(n==3)
pinMode(motor11, OUTPUT); {
// fin de la base del robot teta1=atan(y1/x1);
Serial.println("UNIVERSIDAD POLITECNICA SALESIANA"); teta2=asin((z1-30)/15);
Serial.println("BRAZO ROBÓTICO"); teta3=(atan(-(x1/y1)))-(atan(y1/x1))-(asin((z1-30)/15));
Serial.println("D-H MODIFICADO"); teta11=(teta1*180)/3.1416;
servo1.attach(5); teta22=abs((teta2*180)/3.1416);
servo1.write(90); teta33=abs((teta3*180)/3.1416);
servo2.attach(6); Serial.print("Angulo 1= ");
servo2.write(90); Serial.println(teta11);
} Serial.print("Angulo 2= ");
Serial.println(teta22);

11
UNIVERSIDAD POLITÉCNICA SALESIANA ELECTIVA II
03/08/2015

Serial.print("Angulo 3= "); if(pedro >0 && pedro <= 360){


Serial.println(teta33); digitalWrite(motor1, HIGH);
n++; digitalWrite(motor11, LOW);
while(n==4) Serial.println("positivo");
{ }
servo1.write(teta22); //angulo negativo
servo2.write(teta33); if(pedro <0 && pedro >= -360){
pedro=teta11; digitalWrite(motor1, LOW);
Serial.println("DESEA IMGRESAR OTROS VALORES"); digitalWrite(motor11, HIGH);
Serial.println("Ingrese 1 para SI y 2 para NO"); Serial.println("negativo");
n++; }
while(n==5)
{ if (Serial.available() > 0 ) {
nn = digitalRead(encoder0PinA);
if ((encoder0PinALast == LOW) && (nn == HIGH)) { resp=Serial.parseInt();
if (digitalRead(encoder0PinB) == LOW) { if(resp == 1)
encoder0Pos--; {
grados = ((encoder0Pos*360/570)); n=0;
if (encoder0Pos == -570){(encoder0Pos = 0);} m=0;
} Serial.println(n);
else { }
encoder0Pos++; if(resp == 2)
grados = ((encoder0Pos*360/575)); {
if (encoder0Pos == 575){(encoder0Pos = 0);} Serial.println("GRACIAS");
} n=6;
grados; while(n==6)
Serial.print ("GRADOS = "); {}
Serial.println (grados); }
}
if(grados == pedro){ }
encoder0Pos=0; }
digitalWrite(motor1, LOW); }
digitalWrite(motor11, LOW); }
Serial.print ("GRADOS = "); }
Serial.println (grados); }
} }
} delay(50);
encoder0PinALast = nn; }
//angulo positivo }

12

Vous aimerez peut-être aussi