Alumna: Inmaculada Casanova González Tutor: Prof. D. Pedro J. Casanova Peláez Dpto: Ingeniería Electrónica y Automática
Junio, 2018
DISEÑO DE UN BRAZO
ROBÓTICO FABRICABLE
MEDIANTE IMPRESORA 3D
UNIVERSIDAD DE JAÉN Escuela Politécnica Superior de Jaén
Trabajo Fin de Grado
Esc
uela
Pol
itécn
ica
Sup
erio
r de
Jaé
n
Universidad de Jaén Escuela Politécnica Superior de Jaén
Departamento de Ingeniería Electrónica y Automática
Don Pedro J. Casanova Peláez, tutor del Proyecto Fin de Carrera titulado: Diseño de un brazo robótico fabricable mediante impresora 3D, que presenta Doña Inmaculada Casanova González, autoriza su presentación para defensa y evaluación en la Escuela Politécnica Superior de Jaén.
Jaén, Junio de 2018
La alumna: El tutor:
Inmaculada Casanova González Pedro J. Casanova Peláez
A mi director de TFG, que ha sido como un padre para mí.
A mi madre, que nos ha aguantado a los dos en casa.
Y a Rocío, que en cuanto lo supo huyó a Granada.
Índice RESUMEN ............................................................................................................................. 11
ABSTRACT ............................................................................................................................ 13
1. INTRODUCCIÓN ............................................................................................................ 17
1.1. Brazos robóticos ...................................................................................................... 17
1.1.1. Elementos o sistemas de un robot industrial .................................................... 18
1.1.2. Características básicas de un robot industrial .................................................. 23
1.2. Impresión 3D ............................................................................................................ 24
1.2.1. Impresoras 3D cartesianas y movimiento RepRap .......................................... 25
1.2.2. Proceso de impresión 3D por deposición fundida ............................................ 26
1.2.3. Parámetros de impresión .................................................................................. 28
1.2.4. Software de laminado ....................................................................................... 29
2. DISEÑO MECÁNICO DEL BRAZO ROBÓTICO ............................................................ 33
2.1. Especificaciones del brazo robótico ......................................................................... 33
2.2. Selección de actuadores .......................................................................................... 34
2.3. Diseño de piezas ..................................................................................................... 39
2.3.1. Base .................................................................................................................. 40
2.3.2. Hombro ............................................................................................................. 40
2.3.3. Brazo ................................................................................................................ 41
2.3.4. Antebrazo ......................................................................................................... 42
2.3.5. Muñeca: muñecas A y B ................................................................................... 43
2.3.6. Soporte de la pinza ........................................................................................... 44
2.3.7. Pinza: pinzas A y B ........................................................................................... 44
2.4. Fabricación de piezas .............................................................................................. 45
2.5. Montaje .................................................................................................................... 46
2.5.1. Montaje base-hombro ....................................................................................... 46
2.5.2. Montaje antebrazo ............................................................................................ 47
2.5.3. Montaje soporte-pinzas .................................................................................... 48
2.5.4. Montaje brazo ................................................................................................... 48
2.5.5. Montaje muñeca ............................................................................................... 49
2.5.6. Montaje elemento terminal ............................................................................... 50
2.5.7. Cableado .......................................................................................................... 50
3. ANÁLISIS CINEMÁTICO ................................................................................................ 55
3.1. Cinemática directa ................................................................................................... 55
3.2. Cinemática inversa .................................................................................................. 60
3.3. Par máximo .............................................................................................................. 67
4. SISTEMA DE CONTROL ................................................................................................ 73
4.1. Requerimientos y selección del sistema .................................................................. 73
4.2. Hardware y conexiones ........................................................................................... 74
4.3. Software y funcionamiento ....................................................................................... 81
5. CONCLUSIONES ........................................................................................................... 91
Bibliografía ............................................................................................................................. 95
Anexo 1: Código Fuente ......................................................................................................... 99
Anexo 2: Lista de materiales ................................................................................................ 109
Anexo 3: Diseño de la caja que aloja el sistema de control ................................................. 113
Anexo 4: Galería fotográfica ................................................................................................. 119
Anexo 5: Planos ................................................................................................................... 125
Índice de ilustraciones
Ilustración 1: Ejemplos de robots industriales ........................................................................ 17
Ilustración 2: Configuración del brazo robótico ...................................................................... 18
Ilustración 3: Morfología de un brazo robótico ....................................................................... 19
Ilustración 4: Componentes del extrusor ................................................................................ 25
Ilustración 5: Impresora 3D RepRap utilizada en este trabajo ............................................... 26
Ilustración 6: Esquema de una impresora 3D cartesiana, elementos principales y ejes ....... 27
Ilustración 7: Diagrama de bloques del sistema de control del accionamiento ...................... 34
Ilustración 8: Servomotores utilizados .................................................................................... 35
Ilustración 9: Señal PWM para posicionamiento del servomotor en diversos ángulos. ......... 36
Ilustración 10: Esquema de los servomotores acotados ........................................................ 37
Ilustración 11: Detalle de la corona dentada .......................................................................... 38
Ilustración 12: Dimensiones de las palas utilizadas ............................................................... 39
Ilustración 13: Base ................................................................................................................ 40
Ilustración 14: Hombro ........................................................................................................... 40
Ilustración 15: Brazo ............................................................................................................... 41
Ilustración 16: Antebrazo ........................................................................................................ 42
Ilustración 17: Muñeca ........................................................................................................... 43
Ilustración 18: Soporte de la pinza ......................................................................................... 44
Ilustración 19: Pinzas ............................................................................................................. 45
Ilustración 20: Montaje base-hombro ..................................................................................... 47
Ilustración 21: Montaje antebrazo .......................................................................................... 47
Ilustración 22: Montaje soporte-pinzas ................................................................................... 48
Ilustración 23: Montaje brazo ................................................................................................. 49
Ilustración 24: Montaje muñeca ............................................................................................. 49
Ilustración 25: Montaje elemento terminal .............................................................................. 50
Ilustración 26: Brazo robótico montado .................................................................................. 51
Ilustración 27: Brazo robótico montado .................................................................................. 51
Ilustración 28: Eslabones y articulaciones del brazo robótico ................................................ 57
Ilustración 29: Sistemas de referencia ................................................................................... 57
Ilustración 30: Cadena cinemática del brazo robótico para una posición dada ..................... 63
Ilustración 31: Cadena cinemática del robot con ángulos y coordenadas articulares ............ 64
Ilustración 32: Disposición de máximo par resistente ............................................................ 67
Ilustración 33: Distribución de pines de la placa Arduino UNO .............................................. 74
Ilustración 34: Placa Arduino UNO r3 .................................................................................... 75
Ilustración 35: Fuente de alimentación externa ...................................................................... 75
Ilustración 36: Servomotores .................................................................................................. 76
Ilustración 37: Potenciómetro ................................................................................................. 76
Ilustración 38: LEDs ............................................................................................................... 77
Ilustración 39: Pulsador .......................................................................................................... 77
Ilustración 40: Módulo de comunicación Bluetooth HC-06 ..................................................... 77
Ilustración 41: Shield de prototipos ........................................................................................ 78
Ilustración 42: Esquema de conexión .................................................................................... 79
Ilustración 43: Diagrama del shield de prototipos .................................................................. 80
Ilustración 44: Fotografía del sistema de control .................................................................... 80
Ilustración 45: Sistema de control, vista superior ................................................................... 81
Ilustración 46: Ordinograma de posicionamiento ................................................................... 82
Ilustración 47: Aplicación de control Bluetooth ....................................................................... 86
Ilustración 48: Parte inferior de la caja ................................................................................. 113
Ilustración 49: Parte superior de la caja ............................................................................... 114
Ilustración 50: Botones ......................................................................................................... 114
Ilustración 51: Montaje de la caja ......................................................................................... 115
Ilustración 52: Caja cerrada ................................................................................................. 115
Ilustración 53: Fotografía de la caja ..................................................................................... 116
Ilustración 54: Brazo robótico en la posición de inicio .......................................................... 119
Ilustración 55: Proceso de montaje ...................................................................................... 120
Ilustración 56: Vista del sistema electrónico ........................................................................ 121
Ilustración 57: Brazo robótico en diferentes posiciones ....................................................... 122
Índice de tablas
Tabla 1: Tipos de articulaciones ............................................................................................. 20
Tabla 2: Tipos de estructuras ................................................................................................. 21
Tabla 3: Características de los microservomotores utilizados ............................................... 37
Tabla 4: Valor de la constante k para los 3 servomotores ..................................................... 38
Tabla 5: Parámetros del material y de impresión ................................................................... 45
Tabla 6: Características de las piezas impresas .................................................................... 46
Tabla 7: Parámetros de Denavit-Hartenberg ......................................................................... 58
Tabla 8: Peso de cada pieza .................................................................................................. 67
Tabla 9: Cálculo del par resistente en el hombro ................................................................... 68
Tabla 10: Cálculo del par resistente en el codo ..................................................................... 69
Tabla 11: Características Arduino UNO r3 ............................................................................. 74
Tabla 12: Asignación de pines ............................................................................................... 78
Tabla 13: Comandos .............................................................................................................. 85
Tabla 14: Función de los botones de la aplicación ................................................................ 87
Tabla 15: Lista de materiales ............................................................................................... 109
Tabla 16: Lista de planos ..................................................................................................... 125
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
11 Escuela Politécnica Superior de Jaén
RESUMEN
Este trabajo consiste en el diseño de un brazo robótico de 5 grados de libertad,
desarrollando los modelos CAD de las piezas para su fabricación mediante
impresora 3D utilizando la tecnología de modelado por deposición fundida (FDM) y
sirviéndose de servomotores de bajo coste para su movimiento.
Quiere probarse la viabilidad de este método de fabricación, fabricación
mediante impresora 3D, para obtener un manipulador robótico garantizando ciertas
prestaciones, en este caso, que pueda desplazar piezas pequeñas dentro de su
zona de trabajo.
Previo al proceso de obtención del brazo robótico, se introducen principios
teóricos necesarios para entender los conceptos básicos en los que se basa este
trabajo. Posteriormente se desarrolla el trabajo en cuatro fases hasta lograr el
objetivo perseguido. La primera trata del diseño de las piezas que conformarán el
robot, realizado por ordenador mediante un programa CAD. La segunda consiste en
la fabricación de las piezas diseñadas utilizando una impresora 3D de bajo coste, así
como del ensamblaje de las mismas. En la tercera se realiza el estudio cinemático
del robot, necesario para proceder a la cuarta y última fase, basada en el sistema de
control del brazo, con el que se conseguirá que el brazo realice tareas útiles.
Finalmente, habiendo analizado los resultados obtenidos, se establecerán las
conclusiones a las que se llegan en este proyecto.
Cabe destacar que el objetivo de este trabajo no es la obtención de un
manipulador robótico con prestaciones industriales, sino una primera aproximación a
un diseño con elementos de bajo coste para determinar la viabilidad de la tecnología
FDM en este tipo de diseños.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
13 Escuela Politécnica Superior de Jaén
ABSTRACT
This project consists on the desing of a robotic arm with 5 degrees of freedom,
developing the CAD models of the pieces for its manufacture by 3D printer using the
technology of Fussed Deposition Modelling (FDM) and employing low cost
servomotors for its movement.
It is looked to prove the viability of this manufacturing method, to obtain a
robotic manipulator guaranteeing certain features, in this case, the ability of moving
small pieces within its work area.
Prior to the process of obtaining the robotic arm, theorical pinciples are
introduced in order to understand basic concepts on which this project is based.
Subsequently, the project is developed in four phases to achieve the objective
pursued. First one deals with the design of the pieces that will make up the robot,
made by computer through a CAD program. Second one consist on the manufacture
of the designed parts using a low cost 3D printer, as well as the assembly of the
robot. In the third one, the kinematic study of the manipulator is conducted, which is
necessary to proceed to the fourth and last phase, based on the control system of
the robotic arm which will allow the arm to perform useful tasks. Finally, having
analyzed the results obtained, the conclusions reached in this projects will be
established.
It should be note that the objective of this project is not to obtain a robotic
manipulator with industrials features, but a first approximation to a design with low
cost elements to determine the viability of the FDM technology in this type of designs.
1. INTRODUCCIÓN
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
17 Escuela Politécnica Superior de Jaén
1. INTRODUCCIÓN
La Asociación Internacional de Estándares (ISO) define robot industrial como:
“Manipulador multifuncional reprogramable con varios grados de libertad, capaz de
manipular materias, piezas, herramientas o dispositivos especiales según
trayectorias variables programadas para realizar tareas diversas”.
Ilustración 1: Ejemplos de robots industriales
Este trabajo consiste en el diseño y fabricación de un brazo robótico mediante
impresión 3D, por lo que se introducirán a continuación algunos conceptos sobre
este tipo de manipuladores robóticos, que son sistemas mecánicos multifuncionales
con un sistema de control que puede ser manual, de secuencia fija o de secuencia
variable. Posteriormente se hará una introducción a la tecnología y funcionamiento
de las impresoras 3D.
1.1. Brazos robóticos
Un robot industrial se diferencia con respecto a otras máquinas
fundamentalmente en su capacidad de adaptación a diferentes trabajos, dentro de
unas limitaciones. Estas limitaciones vendrán impuestas por dos factores: los
elementos o sistemas que conforman al robot y sus parámetros característicos.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
18 Escuela Politécnica Superior de Jaén
El primer factor se refiere a las partes que constituyen el robot. En un
manipulador robótico industrial se distinguen los siguientes sistemas o partes
fundamentales (Ilustración 2): brazo o manipulador, elemento terminal o mano,
sistemas motrices o actuadores, sistema de control y sistema de percepción.
Ilustración 2: Configuración del brazo robótico
El segundo factor se refiere al conjunto de características básicas que poseen
los robots (características comunes a todos ellos), donde se pueden citar: capacidad
de carga, grados de libertad, espacio de trabajo, precisión, velocidad y
programabilidad.
Ambos factores determinarán las características y aplicaciones del robot, por lo
que son de vital importancia a la hora de diseñarlo.
1.1.1. Elementos o sistemas de un robot industrial
Manipulador
El manipulador lo constituye la estructura mecánica del robot, exceptuando el
elemento terminal. Es un mecanismo compuesto generalmente por elementos en
serie, articulados o deslizantes entre sí, cuyo objetivo es el agarre y desplazamiento
de objetos con diversos grados de libertad. Es multifuncional y puede ser mandado
directamente por un operador humano o por cualquier sistema lógico. Debido a su
parecido morfológico y funcional, en la mayoría de los diseños, con el brazo
humano, recibe también el nombre de “brazo” robótico.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
19 Escuela Politécnica Superior de Jaén
El manipulador está formado por varios elementos rígidos, denominados
enlaces o eslabones, relacionados entre sí por uniones que permiten su movimiento
relativo, denominadas juntas o articulaciones.
Al conjunto de eslabones y articulaciones se le llama 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.
Por analogía con el cuerpo humano, a los elementos rígidos del manipulador,
normalmente 3, se le denominan: cuerpo, brazo y antebrazo; y a las articulaciones:
hombro, codo, muñeca y mano. Como se muestra en la Ilustración 3.
Ilustración 3: Morfología de un brazo robótico
Existen diferentes tipos de articulaciones, que se caracterizan por el
movimiento que permiten entre los elementos que enlazan. Se pueden distinguir las
nombradas en la Tabla 1.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
20 Escuela Politécnica Superior de Jaén
Esquema Articulación Grados de libertad
Rotacional 1
Prismática 1
Cilíndrica 2
Planar 2
Esférica 3
De tornillo 2
Tabla 1: Tipos de articulaciones
La combinación y distribución de las diferentes articulaciones a lo largo de la
cadena cinemática que forma el manipulador llevará a una configuración
determinada del mismo. Existen cuatro estructuras fundamentales: cartesiana,
cilíndrica, esférica y articulada. Las cuales corresponden con los sistemas de
coordenadas cartesianas, cilíndricas, esféricas y angulares o de revolución (Tabla
2).
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
21 Escuela Politécnica Superior de Jaén
Esquema Estructura
Estructura cartesiana
Estructura cilíndrica
Estructura polar
Estructura angular
Tabla 2: Tipos de estructuras
Sin embargo, hoy en día se utilizan otras estructuras especiales como por
ejemplo la estructura Scara, mezcla de estructura cilíndrica y articulada, y la
estructura Pendular, que consiste en una estructura esférica suspendida.
Elemento terminal
El elemento terminal es el dispositivo que se acopla al último eslabón del
manipulador (la muñeca) y permite al brazo realizar la labor deseada. Es un
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
22 Escuela Politécnica Superior de Jaén
dispositivo especial que permite al robot de uso general realizar una aplicación
particular, por lo que deber ser diseñado específicamente para dicha aplicación.
Existen dos tipos principales de elementos terminales:
o Manos: se utilizan para agarrar un objeto, normalmente la pieza de trabajo, y
sujetarlo durante el ciclo de trabajo del robot. Según el método de sujeción que
utilicen pueden ser manos de sujeción a presión, por enganche, por contacto,
entre otros. Además de las pinzas, existen otros dispositivos como ventosas,
pinzas magnéticas, adhesivas, cucharas, ganchos, en etc.
o Herramientas: se utilizan en aplicaciones donde el robot tenga que realizar
alguna operación sobre la pieza de trabajo, como soldadura por puntos,
soldadura por arco, pintura por pulverización, operaciones de taladrado… en
todos los casos una herramienta particular está unida a la muñeca del robot para
poder realizar la operación.
Sistemas motrices
Los sistemas motrices son todos los elementos que intervienen en la
generación del movimiento del manipulador.
Se denominan elementos motrices o actuadores a los dispositivos que
producen y controlan el movimiento de las articulaciones. Se suelen clasificar según
el tipo de energía que empleen en elementos motrices neumáticos, hidráulicos y
eléctricos.
Se utilizan actuadores de diferentes tipos según la velocidad y capacidad de
carga deseada, por ejemplo para grandes cargas son útiles los actuadores
hidráulicos mientras que los neumáticos permiten mayores velocidades. No
obstante, por su facilidad de control y conexionado así como por su fiabilidad, los
más utilizados son los motores eléctricos en sus distintas variantes (de corriente
continua o alterna, paso a paso, etc.).
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
23 Escuela Politécnica Superior de Jaén
Sistema de control
El sistema de control de un robot industrial es el que permite colocar al brazo
robot en la posición y orientación deseada, por tanto determinará cómo lleva a cabo
su trabajo.
Se pueden clasificar los sistemas de control en función del tipo de sensores
que utilicen. Un primer tipo será aquel que carece de sensores, denominado control
en lazo abierto. En el segundo se encuentran aquellos que poseen sensores
propioreceptivos que permiten determinar el estado del manipulador, llamado
sistema de control en lazo cerrado con realimentación interna. Por último, hay robots
que cuentan además con sensores externoreceptivos que permiten al robot recibir
información de su entorno, lo que se conoce como sistema de control en lazo
cerrado con realimentación del entorno.
El sistema de control debe gobernar la actuación del robot, sus sistemas
motrices, para alcanzar las sucesivas posiciones que indique el programa contando
con la información de sus sensores.
Sistema de percepción
El sistema de percepción está constituido por un conjunto de elementos que
permiten al robot conocer algún parámetro interno a él o de su entorno. Teniendo
esto en cuenta, como se ha dicho antes, se diferencian dos tipos de sistemas de
percepción: de parámetros internos (propioreceptivos) y de parámetros externos
(externoreceptivos)
Serían sensores propioreceptivos por ejemplo los transductores de posición,
velocidad y aceleración de los eslabones y articulaciones del brazo; mientras que se
consideran sensores externoreceptivos los que miden resultados del proceso que
realiza el robot como por ejemplo un sensor de presencia de la pieza a manipular o
una cámara para control de la calidad del acabado.
1.1.2. Características básicas de un robot industrial
Existe un conjunto de características, comunes a todos los robots, que
determinan si un robot es adecuado o no para una aplicación concreta.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
24 Escuela Politécnica Superior de Jaén
Capacidad de carga: peso máximo que el robot puede manipular. Viene
determinada por la configuración y construcción del manipulador y el sistema
motriz. Debe especificarse en la posición más débil del brazo.
Grados de libertad: número de parámetros que es preciso conocer para
determinar la posición del robot, es decir, los movimientos básicos
independientes que posicionan a los elementos de un robot en el espacio.
Espacio de trabajo: conjunto de puntos en los que puede situarse el elemento
terminal del robot.
Precisión: vendrá en función de la resolución espacial, la exactitud y la
repetitividad. La primera se define como el incremento más pequeño de
movimiento en el que el robot puede dividir su volumen de trabajo; la segunda se
refiere a la capacidad del robot para situar el extremo de su muñeca en un punto
de destino concreto; la tercera está relacionada con la capacidad del robot para
situar su muñeca en un punto que se hubiera “enseñado” con anterioridad al
robot.
Velocidad: rapidez con la que el robot puede realizar un ciclo de trabajo
determinado. La determinación de la velocidad óptima dependerá de factores
como: la exactitud con la que debe situarse la muñeca, el peso de la pieza que
se manipula y la distancia a recorrer.
Programabilidad: posibilidades de programación del robot. Viene determinada
por el sistema de control del mismo.
1.2. Impresión 3D
La impresión 3D o fabricación aditiva (también conocida por sus siglas en
inglés, AM –Additive Manufacturing) es un proceso por el cual un modelo 3D es
convertido en un objeto físico mediante la adición capa por capa de material. Con los
años, varias tecnologías de impresión 3D se han desarrollado en la industria con la
característica común de crear un modelo físico capa por capa. Dentro de estas
tecnologías, una de las técnicas de más relevancia y posiblemente la más conocida
sea la denominada modelado por deposición fundida o FDM (por sus siglas en
inglés, Fused Deposition Modelling). Esta consiste en la extrusión de material
fundido, a través de una boquilla, para imprimir en 3D sucesivas secciones
transversales de un objeto capa a capa hasta que sea completado. Se suele
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
25 Escuela Politécnica Superior de Jaén
emplear para generar geometrías complejas y piezas funcionales, como prototipos,
piezas de producción de pequeño volumen, etc. A continuación se muestran los
componentes de un extrusor (Ilustración 4).
Ilustración 4: Componentes del extrusor
1.2.1. Impresoras 3D cartesianas y movimiento RepRap
La impresora que se va a utilizar para este trabajo utiliza la impresión por
material fundido, FDM, pero además se puede clasificar por el tipo de coordenadas
que utiliza para mover el extrusor y por su ámbito de uso.
En este trabajo se utilizará una impresora cartesiana. Las impresoras 3D
cartesianas son el tipo de impresoras más común en el mercado. Reciben este
nombre debido a que utilizan el sistema de coordenadas cartesiano para el
movimiento. Se basan en tener un espacio de impresión cuadrado o rectangular y en
mover el extrusor de filamento en los 3 ejes cartesianos: X, Y y Z. Por lo general, un
motor se encarga de mover la base (eje Y), otro de mover el extrusor en horizontal
(eje X) y dos motores mueven todo el mecanismo que compone el eje X arriba y
abajo (eje Z), para cubrir los 3 ejes. Un quinto motor se aloja en el extrusor, y se
encarga de la alimentación de material en forma de filamento para que, una vez
fundido, salga un fino hilo por la boquilla.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
26 Escuela Politécnica Superior de Jaén
Además, la impresora utilizada es una RepRap (Ilustración 5), las cuales se
caracterizan por ser de uso doméstico. Las impresoras RepRap son impresoras
económicas, fáciles de construir, autorreplicables (una vez construidas pueden
imprimir piezas para construir otra igual) y de código abierto, el cual puede ser
modificado, mejorado, creado, etc. por cualquier usuario.
Ilustración 5: Impresora 3D RepRap utilizada en este trabajo
1.2.2. Proceso de impresión 3D por deposición fundida
Como se ha mencionado previamente, la técnica de modelado por deposición
fundida es de las más extendidas en impresión 3D y es la que usa la impresora
escogida. Esta se basa en 3 elementos principales: una cama o base de impresión
en la que se imprime la pieza, una bobina de filamento que sirve como material de
impresión y un extrusor (Ilustración 6).
Todo comienza con el diseño del objeto que se desea imprimir utilizando un
software CAD (como Catia, Solidworks, Tinkercad, entre otros). El archivo
conteniendo el modelo 3D resultante, en su mayoría en formato STL (Standar
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
27 Escuela Politécnica Superior de Jaén
Triangle Language), se divide en varias capas utilizando un software de laminado
denominado “slicer” (como Cura, Makerware o Repetier) en el que es posible
seleccionar los distintos parámetros de impresión. Este software generará un fichero
que contendrá las instrucciones para la impresora en lenguaje GCODE. Hecho esto,
se puede iniciar la impresión. Primero la máquina se calentará hasta alcanzar la
temperatura de trabajo, que dependerá del material que se utilice. Entre los
materiales de impresión 3D más comúnmente usados en la deposición por fusión se
encuentran el PLA y el ABS, ambos polímeros termoplásticos. Una vez alcanzada la
temperatura de trabajo, se extruye un filamento de material sobre la plataforma a
través de una boquilla que se mueve a lo largo de 3 ejes X, Y y Z. En el
funcionamiento habitual, la altura en el eje Z permanece constante mientras se
rellena una capa de material desplazando la boquilla en los ejes X e Y. Terminada la
capa, se eleva la boquilla en el eje Z una altura igual al espesor de capa
especificado y, moviéndose de nuevo en los ejes X e Y, imprime la siguiente capa.
Realiza el mismo proceso con las capas sucesivas hasta que el objeto está
terminado.
Ilustración 6: Esquema de una impresora 3D cartesiana, elementos principales y ejes
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
28 Escuela Politécnica Superior de Jaén
1.2.3. Parámetros de impresión
Algo muy importante para la obtención de piezas 3D con calidad son los
parámetros de impresión, los cuales se deben ajustar a cada material, a cada pieza,
e incluso al modelo de impresora. Configurar adecuadamente estos parámetros es
crucial para obtener las características deseadas para la pieza diseñada.
Velocidad de impresión: la velocidad a la que se imprimirá la pieza. Cuanto
más rápida sea la impresión, peor acabado se conseguirá, por lo que hay que
ajustar el valor en función de la calidad que se desee obtener. También hay que
tener en cuenta que a mayor velocidad de impresión, mayor ha de ser la
temperatura para que el material pueda fundir y mantener la tasa de deposición.
Temperatura de impresión: es la temperatura a la que se extruye el plástico.
Dependerá del material utilizado. Por regla general a mayor temperatura de
impresión se podrá imprimir a mayor velocidad sin disminuir la calidad, pero la
temperatura es un parámetro que no se puede subir todo lo que se quiera ya que
una temperatura muy alta podría causar deformaciones en la pieza y goteo de
material durante la impresión. Normalmente el fabricante del material proporciona
el rango de temperaturas en las que se debe trabajar, pero será el usuario quién
tendrá que hallar la temperatura idónea para el material y la impresora que esté
usando.
Temperatura de la cama: la base de impresión en la mayoría de impresoras es
calefactable, de ahí que reciba el nombre de cama caliente. Este tipo de camas
sirve para mantener el plástico ya depositado adherido a la superficie. Este
parámetro es especialmente importante cuando se imprime con ABS o nylon.
Diámetro de la boquilla: este parámetro está ligado a la calidad de la pieza,
limitándola. La boquilla por la que sale el filamento tiene un diámetro concreto,
por debajo de ese valor la impresora no podrá imprimir. Por tanto, a la hora de
diseñar hay que tener en cuenta que la impresora no será capaz de imprimir
detalles por debajo del diámetro de la boquilla.
Altura de capa: define el espesor de cada capa en el eje Z. A menor altura de
capa, más definición tendrá la pieza, pero más tiempo tardará la impresión
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
29 Escuela Politécnica Superior de Jaén
Densidad de relleno: indica el relleno que va a tener la figura. El relleno
repercute directamente en el tiempo de impresión y en la resistencia de la pieza,
por ello dependerá de las características mecánicas que se quieran conseguir.
Soportes: será necesario añadir soportes si alguna parte de la pieza impresa no
se encuentra apoyada sobre la capa anterior (está en el aire).
Superficie de adhesión: base destinada a ampliar la superficie de contacto en la
primera capa de la pieza, ayudándola a mantenerse pegada a la plataforma. Si
determinada pieza lo necesitara, se puede elegir entre dos tipos, conocidos como
“brim” y “raft”. El primero añade una serie de perímetros extra en la primera capa
y el segundo es una capa base cuadriculada sobre la cual se imprimirá la pieza.
Aunque existen configuraciones más avanzadas, estos son los parámetros
principales que hay que tener en cuenta al utilizar la impresora. La elección tomada
en este punto será decisiva para obtener los resultados esperados, por eso uno de
los mayores hándicaps al imprimir piezas en 3D es ajustar los parámetros a las
necesidades de la pieza diseñada.
1.2.4. Software de laminado
Como se mencionó anteriormente, una vez obtenido el archivo con el modelo
3D del objeto diseñado es necesario utilizar un software “slicer” que divide el modelo
3D en capas y genera las instrucciones que seguirá la impresora. Estas
instrucciones vendrán en lenguaje GCODE, y contendrán la información de los
puntos del espacio (en coordenadas x,y,z) donde debe haber material y el orden
correcto de ejecución de esos puntos para que la fabricación sea posible.
Entre los numerosos programas de laminado que existen, se ha elegido Cura
para este proyecto. Cura es un software de código abierto, fácil de usar y que
permite administrar las configuraciones de impresión 3D más importantes en una
interfaz clara. Con este software se convertirá el archivo STL, que contiene el
modelo 3D, en GCODE, que es el lenguaje de las impresoras 3D.
2. DISEÑO MECÁNICO DEL
BRAZO ROBÓTICO
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
33 Escuela Politécnica Superior de Jaén
2. DISEÑO MECÁNICO DEL BRAZO ROBÓTICO
En este capítulo se hablará del proceso de diseño del brazo robótico. En primer
lugar se definieron los requerimientos que debe cumplir el robot. A continuación se
eligieron los actuadores que mejor se adecuaban a la aplicación deseada. En base a
esta selección y teniendo en cuenta el proceso de fabricación (fabricación mediante
impresión 3D), se han diseñado los elementos del brazo. Tras haber finalizado el
diseño de las piezas, se ha procedido a su fabricación, siendo en este punto de vital
importancia la elección de los parámetros de impresión. Por último se ha realizado el
montaje del robot.
2.1. Especificaciones del brazo robótico
Una fase fundamental en el proceso de diseño es definir qué se quiere
conseguir con el objeto a diseñar. Solo una vez planteados los objetivos que se
desean cumplir, se podrá elegir entre las múltiples opciones existentes la que mejor
se adapta a la aplicación perseguida. Todo esto sin olvidarse nunca de las
limitaciones que pueda haber, impuestas por múltiples factores como el coste, el
proceso de fabricación, el material con el que se trabaja, la tecnología disponible,
etc.
En este trabajo se quiere obtener un brazo robótico capaz de manipular piezas
pequeñas desplazándolas (mediante rotación y traslación) dentro de su zona de
trabajo. Para lograr esto se ha decidido que el robot sea un brazo manipulador de
configuración angular, con 5 grados de libertad, articulaciones rotacionales y un
elemento terminal en forma de pinza.
Además se persigue que el brazo sea fabricado mediante impresora 3D. Este
aspecto debe tenerse en cuenta en todo el proceso de diseño de las piezas que
conforman el robot, ya que trae consigo una serie de condicionantes como son: las
dimensiones del espacio de impresión, la fabricabilidad de las piezas, las
características del material utilizado…
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
34 Escuela Politécnica Superior de Jaén
2.2. Selección de actuadores
Para un correcto posicionamiento de cada una de las articulaciones es
necesario disponer de un par motor adecuado y una velocidad angular no
excesivamente alta. Los elementos motrices más adecuados para esta aplicación
son los motores eléctricos de corriente continua e imán permanente ya que pueden
encontrarse de pequeño tamaño y son fáciles de controlar. Sin embargo, el tipo de
motor mencionado ofrece mejores prestaciones a elevadas velocidades de giro por
lo que se hace necesario el uso de un mecanismo reductor de velocidad, a base de
engranajes, que a su vez aumente el par disponible.
Obviamente es necesario disponer de un sensor para la medida del ángulo del
eje de salida del reductor para posicionar de forma precisa cada articulación; esta
medida se realiza mediante un potenciómetro acoplado a dicho eje cuya resistencia
será proporcional al ángulo girado.
Finalmente deberá realizarse un control sobre el giro del motor que lleve el eje
de salida a la posición deseada y lo mantenga en ella; este control se realiza
mediante un sistema electrónico.
En la Ilustración 7 se muestra el diagrama de bloques de este sistema: el
ángulo del eje es medido mediante el potenciómetro. La medida se compara con la
referencia obteniéndose una señal de error que es usada por el regulador para
modificar la cantidad de actuación y por tanto la velocidad de giro del motor. El giro
del motor provoca a través del reductor una variación en el ángulo del eje de salida
que es continuamente medido para mantenerlo en la posición deseada.
Ilustración 7: Diagrama de bloques del sistema de control del accionamiento
2.2.1. Servomotores
Se entiende por servomotor la unión de un motor eléctrico con un reductor
mecánico, un sistema de medida del ángulo de giro del eje de salida de potencia y
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
35 Escuela Politécnica Superior de Jaén
un sistema de control que reciba el ángulo deseado y lleve el eje a dicha posición
manteniéndolo en la misma incluso en presencia de perturbaciones externas
(variaciones del par resistente).
Los servomotores son ampliamente utilizados ya que incorporan todos los
elementos necesarios para poder realizar un correcto posicionamiento angular
existiendo en el mercado una gran gama de tamaños y pares motores. En este
trabajo se han utilizado pequeños servomotores habituales en radiocontrol.
A continuación se describe el modo de operación de los conocidos como
“microservos”, que son servomotores de pequeña potencia y tamaño. En el
accionamiento del brazo robótico han sido utilizados tres modelos diferentes de
tamaño similar pero con pares motores crecientes para vencer los diferentes pares
resistentes de cada articulación. Antes de enumerar las características de cada uno
de ellos, se realizará una exposición de cómo se utiliza un servomotor de este tipo.
Ilustración 8: Servomotores utilizados
El servomotor es un elemento muy compacto que incluye en la misma caja el
motor, el reductor, el potenciómetro de medida y el circuito electrónico de control.
Recibe del exterior mediante sólo tres hilos la tensión de alimentación (VCC y GND)
y una señal de control o referencia por la que se le indica la posición deseada en el
eje de salida. Entrega el par motor por el eje de salida terminado en una corona
dentada para acoplarle la pieza a mover. La caja que incorpora todos los elementos
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
36 Escuela Politécnica Superior de Jaén
del servomotor está preparada para una sujeción sencilla, mediante tornillos, a la
parte fija de la estructura. En la Ilustración 8 se muestran los microservos utilizados.
El circuito electrónico de control está preparado para recibir la referencia de
posición deseada en el eje mediante una señal cuadrada de amplitud entre 0V y 5V
de 50Hz de frecuencia (20ms de periodo) modulada en anchura de pulso (PWM). En
la modulación PWM se genera una señal cuadrada periódica donde la frecuencia se
mantiene constante y varía el tiempo dentro del periodo total en el que la señal vale
5V ( ) y 0V ( ).
En los servomotores se hace corresponder un tiempo de pulso ( ), de
duración determinada al ángulo de giro central ( 0), de habitualmente 1500µs.
Tiempos de pulso inferiores giran el eje en sentido horario (mirando desde arriba),
obteniendo posiciones angulares negativas; y tiempos de pulso superiores giran el
eje en sentido antihorario. De esta forma, para un servomotor con un ángulo total de
giro , un valor mínimo del tiempo de pulso ( ) posicionará el eje en un
ángulo /2; y un valor máximo de tiempo de pulso ( ) posicionará
el eje en un ángulo /2. Los valores límite tanto de tiempos de pulso
como de ángulos de giro dependen de los diversos fabricantes y modelos. En la
Ilustración 9 se muestra la forma de onda de la señal PWM para diferentes
posiciones deseadas en el eje.
Ilustración 9: Señal PWM para posicionamiento del servomotor en diversos ángulos.
Se puede establecer la relación entre el tiempo del pulso ( ) y el ángulo de
giro ( ) según la expresión:
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
37 Escuela Politécnica Superior de Jaén
∙
2.2.2. Características de los servomotores utilizados
En el brazo robótico que se diseñará es necesario un total de seis
servomotores para las diferentes articulaciones que lo constituyen y la pinza final. Se
han elegido microservomotores de la marca TowerPro de tres tipos diferentes en
función del par necesario: en las articulaciones de la unión del cuerpo y hombro se
utilizará el modelo de alto par (tipo 1), en el codo y la muñeca un par intermedio (tipo
2) y las de giro y apertura de la pinza las de bajo par pero mayor ángulo total (tipo 3).
En la Tabla 3 se muestran las características principales de estos servomotores
a la tensión de alimentación mínima: 4,8V (estos servomotores pueden trabajar con
tensiones entre 4,8V y 6,6V). Tanto el par como la velocidad aumentan con la
tensión de alimentación; como la utilizada en este trabajo es de 5V, los valores de
par y velocidad serán ligeramente superiores a los mostrados en la Tabla 3. Las
dimensiones de los servomotores, necesarias para el diseño de las piezas, se
muestran en la Ilustración 10.
Ilustración 10: Esquema de los servomotores acotados
Tipo-Modelo Par Velocidad Ángulo Masa Dimensiones (mm) (Ilustración 10)
A B C D E F
T1-MG92B 3,1kg·cm 0,13s/60º 150º 16 g 34 23 23 12 32 20
T2-MG91 2,2kg·cm 0,13s/60º 150º 16 g 34 23 23 12 32 20
T3-MG90S 1,8kg·cm 0,10s/60º 180º 13 g 33 23 22 12 33 19
Tabla 3: Características de los microservomotores utilizados
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
38 Escuela Politécnica Superior de Jaén
El valor de la constante deberá ajustarse experimentalmente para obtener la
mayor precisión posible en el posicionamiento del brazo ya que el fabricante no
facilita ninguno de los datos. Los valores obtenidos en la prueba de los servomotores
se muestran en la Tabla 4 y a partir de ellos se determina este valor. Hay que indicar
que, aunque los ángulos totales no son de 180º para los tres tipos, tanto el valor de
para la posición central del eje como la relación entre éste y el ángulo son
iguales. Por tanto el valor de para un ángulo dado será igual en los tres tipos
respetando los valores mínimo y máximo de los ángulos, es decir, la constante
indicada anteriormente es igual para los tres tipos.
Tipo-Modelo
T1-MG92B 150º 750 µs 1500µs 2250 µs 10º/s
T2-MG91 150º 750 µs 1500µs 2250 µs 10º/s
T3-MG90S 180º 600µs 1500µs 2400µs 10º/s
Tabla 4: Valor de la constante k para los 3 servomotores
Ilustración 11: Detalle de la corona dentada
La salida del movimiento del servomotor se produce a través de una corona
dentada (como la mostrada en la Ilustración 11) a la que se debe acoplar una
especie de pala o brazo para transmitir el movimiento. En la Ilustración 12 se
muestran las dimensiones de dichas palas, que serán necesarias para el diseño de
las diferentes piezas del brazo robótico.
Debido a que la corona dispone de 20 dientes, cada acoplamiento tendrá un
error angular de hasta ±9º por lo que aunque se busque que se forme un ángulo
determinado entre los eslabones del brazo, cuando todos los servomotores estén en
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
39 Escuela Politécnica Superior de Jaén
su posición cero, la exactitud de este ángulo sólo se conseguirá mediante un
proceso de ajuste o calibración mediante el software de control.
Ilustración 12: Dimensiones de las palas utilizadas
2.3. Diseño de piezas
Como se ha dicho anteriormente, el diseño de las piezas está intrínsecamente
ligado a dos factores determinantes: los actuadores elegidos y el proceso de
fabricación por impresión 3D.
En este apartado se describen las piezas diseñadas, explicando las
peculiaridades de cada una y su funcionalidad. Las cotas exactas y las vistas
normalizadas pueden verse en los planos incluidos en el anexo de planos. Todas las
uniones del robot van atornilladas. Los tornillos utilizados son autorroscantes de
diferentes diámetros, debiendo indicarse que el diámetro de los agujeros preparados
para ellos se ha obtenido tras varias pruebas de impresión ya que, aunque pueden
definirse con medidas exactas, al realizarse la impresión de círculos mediante
aproximaciones poligonales los diámetros interiores son siempre inferiores a los
previstos.
Todas las piezas han sido diseñadas utilizando el programa CATIA V5 y los
planos normalizados se han realizado con AutoCAD 2016.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
40 Escuela Politécnica Superior de Jaén
2.3.1. Base
La base o cuerpo será el primer elemento del brazo (eslabón 0). Consta de una
hendidura donde irá la pala del servo, así como de un canal que se utilizará para
poner bolas de Níquel que sirvan de apoyo para la siguiente pieza, minimizando el
rozamiento. Cuenta con una hendidura en la parte frontal de modo que permita
pasar todos los cables por ella, y facilitar la movilidad de la pieza. Además se le han
hecho 4 agujeros pasantes, uno en cada esquina, para poder sujetar el robot a la
superficie de trabajo mediante tornillos.
Ilustración 13: Base
2.3.2. Hombro
El hombro constituirá la siguiente pieza (eslabón 1). Cuenta con dos
hendiduras para servos; en la inferior irá el servo que conecta el hombro con la base
(articulación 1) y en la lateral, el que conecta el hombro con el brazo (articulación 2).
Además, se le ha hecho un agujero pasante por el que se introducirán los cables.
Ilustración 14: Hombro
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
41 Escuela Politécnica Superior de Jaén
2.3.3. Brazo
Ilustración 15: Brazo
El brazo lo conforman dos piezas idénticas. Como en los elementos anteriores,
cada una cuenta con una hendidura donde irá la pala del servomotor que mueve la
articulación, así como un soporte cilíndrico que hace de eje de giro y mantiene la
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
42 Escuela Politécnica Superior de Jaén
pieza alineada con el eje del servo. Además, cada pieza tiene un saliente y una
cavidad que servirán para encajarlas entre sí. Se han realizado unos agujeros en los
salientes para pasar los cables y al mismo tiempo aligerar el eslabón. Tanto la
cavidad como el saliente tienen dos perforaciones pensadas para que, una vez
ensambladas, se atornillen ambas partes. Ambas piezas unidas constituyen el
eslabón 2 de la cadena cinemática con las articulaciones 2 y 3 en sus extremos.
2.3.4. Antebrazo
Ilustración 16: Antebrazo
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
43 Escuela Politécnica Superior de Jaén
La morfología del antebrazo coincide en muchos aspectos con la del brazo:
consta de dos piezas idénticas que se unen encajando el saliente de una, en la
cavidad de la otra; con hendiduras donde se acoplan los servos que cuentan con
agujeros para atornillar sus aletas; y agujeros en los salientes por donde irá el
cableado. Otra vez se han realizado perforaciones tanto en la cavidad como en el
saliente para poder atornillar la unión una vez ensamblada. Además se ha añadido
el detalle de las iniciales como elemento estético y de personalización del robot.
Ambas piezas unidas constituyen el eslabón 3 de la cadena cinemática con las
articulaciones 3 y 4 en sus extremos.
2.3.5. Muñeca: muñecas A y B
Ilustración 17: Muñeca
La muñeca también estará constituida por dos elementos que se ensamblan
entre sí. En esta ocasión las piezas no serán idénticas, aunque tendrán elementos
comunes. Ambas piezas tienen un saliente cuadrado y un hueco de la misma forma,
con perforaciones tales que al ser montadas las partes, se pueda atornillar la unión.
Además, a estos salientes se les ha hecho una hendidura rectangular con un
agujero, lo que servirá para apoyar las aletas de uno de los servos y atornillarlas. En
cuanto a las diferencias, la muñeca A cuenta con una hendidura con forma de pala y
un saliente rectangular con un agujero grande por donde pasarán los cables;
mientras que la muñeca B cuenta con un soporte cilíndrico que hace de eje de giro
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
44 Escuela Politécnica Superior de Jaén
alineado con el del servomotor que mueve la articulación y una cavidad donde irá
encajado el saliente rectangular de la muñeca A.
Ambas piezas unidas constituyen el eslabón 4 de la cadena cinemática con las
articulaciones 4 y 5 en sus extremos.
2.3.6. Soporte de la pinza
El soporte de la pinza, a pesar de ser la pieza más pequeña del brazo, ha sido
el elemento más complejo de imprimir, por su morfología. Cuenta con una hendidura
en forma de pala, por la cual irá conectado el servo de la muñeca (articulación 5).
Otro servo irá atornillado en la parte posterior, donde se le han hecho a la pieza
unas incisiones con las dimensiones de las aletas del mismo. Además dispone de un
saliente que servirá de apoyo para la pinza que no vaya conectada al servo.
Ilustración 18: Soporte de la pinza
Esta pieza no constituye parte de la cadena cinemática sino que se considera
parte de la herramienta que porta el brazo robótico.
2.3.7. Pinza: pinzas A y B
Por último se diseñó el elemento terminal, con forma de pinza para que el robot
cumpliera con la aplicación deseada: manipular piezas pequeñas desplazándolas de
un punto a otro dentro de su espacio de trabajo. Aunque solo una de las pinzas irá
conectada al servo, ambas cuentan con una hendidura con forma de pala para
facilitar la sujeción y por razones estéticas de simetría. La pinza que vaya conectada
al servo transmitirá el movimiento a la otra mediante la unión diseñada con forma de
engranaje. Ambas piezas terminan con una cara plana, para facilitar el agarre de
objetos pequeños.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
45 Escuela Politécnica Superior de Jaén
Ilustración 19: Pinzas
2.4. Fabricación de piezas
El paso siguiente al diseño de las piezas es la fabricación de las mismas.
Previo a la puesta en marcha de la impresora, hay que definir los parámetros de
impresión de cada elemento. Estos serán las instrucciones que seguirá la máquina a
la hora de imprimir la pieza.
En este caso se han utilizado los mismos parámetros para todas las piezas, tal
y como se muestran en la Tabla 5, ya que todas se han hecho con el mismo
filamento y no existen partes que requieran una calidad especial o un acabado
determinado.
Parámetros del material
Material PLA
Diámetro hilo 1,75mm
Diámetro boquilla 0,4mm
Parámetros de impresión
Espesor de capa 0,1mm
Espesor lateral 0,8mm
Espesor primera y última capa 0,8mm
Velocidad de impresión 50mm/s
Temperatura cama 60ºC
Temperatura extrusor 210ºC
Relleno 20%
Tabla 5: Parámetros del material y de impresión
Donde sí se han encontrado diferencias es en el uso de soportes. Todas las
piezas fueron diseñadas para que pudieran ser impresas sin la necesidad de usar
apoyos pero, como se mencionó anteriormente, la morfología del soporte de la pinza
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
46 Escuela Politécnica Superior de Jaén
hizo que fuera necesario el uso de un soporte. Aun así se buscó la posición óptima
para la cual el soporte fuera el mínimo necesario y fácil de quitar.
En la Tabla 6 se muestran los datos de tipo de soporte, tiempo y material según
la pieza impresa.
Pieza Soporte Tiempo (h) Material (m) Material (g)
Base - 2:44 5,62 17
Hombro - 3:16 7,41 22
Brazo - 2:44 5,38 16
Antebrazo - 2:28 4,79 14
Muñeca A - 2:05 4,17 12
Muñeca B - 1:56 3,55 11
Soporte “Everywhere” 0:42 1,45 4
Pinza A - 0:27 0,83 2
Pinza B - 0:27 0,83 2
Tabla 6: Características de las piezas impresas
2.5. Montaje
Fabricadas las piezas se procede al montaje del robot. A continuación se
muestra paso a paso el ensamblaje de cada parte; primero se ha hecho el montaje
de eslabones que eran de alguna manera independientes al resto del robot (se
podían ensamblar sin necesidad de que los otros estuvieran ya montados) y luego el
montaje de las piezas que conectaban las anteriores entre sí (no podían unirse hasta
que las anteriores estuvieran ya listas).
2.5.1. Montaje base-hombro
La base va unida al hombro mediante un servo. Por un lado se atornilla una
pala doble a la cavidad de la parte posterior de la base y por otro se atornillan dos
servos al hombro: uno en la parte inferior y otro en el lateral. Además se distribuirán
bolas de Níquel por el canal de la base para que el rozamiento entre ambas piezas
cuando el hombro gire sea mínimo. Tras esto, se conecta el servo de la parte inferior
con la pala y se atornilla esta última al eje del servo, quedando fija esta unión.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
47 Escuela Politécnica Superior de Jaén
Ilustración 20: Montaje base-hombro
2.5.2. Montaje antebrazo
Ilustración 21: Montaje antebrazo
El antebrazo del robot consiste en la unión de la pieza antebrazo con otra
idéntica pero puesta al otro hilo. A cada pieza se le atornilla un servo en la hendidura
diseñada con este fin. Hecho esto, se ensamblan ambas partes de manera que el
saliente de una encaje en la cavidad de la otra. Luego se introducen tornillos desde
la parte exterior para que la unión saliente-cavidad quede fija.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
48 Escuela Politécnica Superior de Jaén
2.5.3. Montaje soporte-pinzas
En este montaje se unirán ambas pinzas con el soporte. Por un lado se
atornilla una pala simple a cada pinza. Por otro, se conectan al soporte dos servos:
uno se atornilla por las aletas en las hendiduras de la parte posterior del soporte; el
otro se atornilla a una pala doble que previamente ha sido colocada y atornillada en
la cavidad del soporte con la misma forma. Por último se atornillan, la pala de la
pinza A al eje del servo situado en la parte posterior del soporte y la pala de la pinza
B al saliente diseñado para que dicha pinza se apoye y no quede en el aire. En este
paso es importante que el servo esté en su posición intermedia (0º) y las pinzas
queden perfectamente cerradas.
Ilustración 22: Montaje soporte-pinzas
2.5.4. Montaje brazo
El brazo del robot unirá el hombro con el antebrazo. Se atornilla a cada pieza
del brazo una pala doble. La pala de una pieza irá conectada al servo del hombro y
la de la otra pieza, al servo del antebrazo. Atornillada cada pala con el eje de su
servo, se unen las dos piezas brazo, encajando el saliente de una en la cavidad de
la otra y viceversa. Hecho esto se atornilla desde el exterior para fijar la unión.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
49 Escuela Politécnica Superior de Jaén
Ilustración 23: Montaje brazo
2.5.5. Montaje muñeca
Ilustración 24: Montaje muñeca
El siguiente paso será el montaje de la muñeca. Primero se acoplará a la
muñeca A una pala doble. Hecho esto se atornillará la pala doble al eje del servo del
antebrazo, con lo que quedarán unidas la muñeca A y el mismo. Para terminar de
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
50 Escuela Politécnica Superior de Jaén
montar este eslabón solo faltará encajar la muñeca A, ya fijada al antebrazo, con la
muñeca B, mediante los salientes y huecos diseñados con este fin. Por último se
atornillarán todas las uniones saliente-cavidad, de manera que la estructura quede
sujeta.
2.5.6. Montaje elemento terminal
El último paso del montaje será conectar el elemento terminal con el resto del
brazo robótico. Para ello solo habrá que introducir el elemento final desde abajo,
colocar las aletas del servo en las hendiduras de la muñeca y atornillarlas.
Ilustración 25: Montaje elemento terminal
2.5.7. Cableado
Terminado el montaje mecánico, se procede a acomodar el cableado de los
servomotores. Los cables quedan recogidos gracias a los agujeros pasantes
previstos en el diseño de las piezas para este fin. Todo el conjunto de cables sale
por la base y se prolonga hasta llegar a la caja de control (anexo III). En la
Ilustración 26 y la Ilustración 27 se muestran fotografías del brazo robótico
completamente montado.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
51 Escuela Politécnica Superior de Jaén
Ilustración 26: Brazo robótico montado
Ilustración 27: Brazo robótico montado
3. ANÁLISIS CINEMÁTICO
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
55 Escuela Politécnica Superior de Jaén
3. ANÁLISIS CINEMÁTICO
En este capítulo se plantea y resuelve la cinemática directa e inversa del brazo
robótico. El conocimiento de la cinemática del robot será fundamental para llevarlo a
las posiciones deseadas de forma que pueda realizar tareas útiles. Posteriormente
se calculará el par máximo necesario para el movimiento del robot.
3.1. Cinemática directa
El problema cinemático directo consiste en determinar cuál es la posición y
orientación del extremo final del robot, con respecto a un sistema de coordenadas
que se toma como referencia, conocidos los valores de las articulaciones y los
parámetros geométricos del robot.
En general, un robot de n grados de libertad está formado por n eslabones
unidos por n articulaciones, de forma que cada par articulación-eslabón constituye
un grado de libertad. A cada eslabón se le puede asociar un sistema de referencia
solidario a él y, utilizando matrices de transformación homogéneas, es posible
representar las rotaciones y traslaciones relativas entre los distintos eslabones que
componen el robot.
Se denominará a la matriz de transformación homogénea que representa
la posición y orientación relativa entre los sistemas asociados a dos eslabones
consecutivos del robot. Mientras que será la matriz de transformación que
relaciona la posición y orientación del extremo final del robot respecto al sistema fijo
situado en la base del mismo y será la resultante del producto de las matrices
con desde 1 hasta .
∙ ∙ ∙ …∙
Para describir la relación que existe entre dos sistemas de referencia
asociados a eslabones se utiliza la representación Denavit-Hartenberg (D-H). Esta
representación permite pasar de un sistema de coordenadas a otro mediante 4
transformaciones básicas que dependen solo de las características geométricas del
eslabón.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
56 Escuela Politécnica Superior de Jaén
Dichas transformaciones básicas consisten en una sucesión de rotaciones y
traslaciones que permiten relacionar el sistema de referencia del elemento con el
sistema del elemento 1. Las transformaciones en cuestión son las siguientes:
Rotación alrededor del eje un ángulo
Traslación a lo largo del eje una distancia
Traslación a lo largo del eje una distancia
Rotación alrededor del eje un ángulo
Conociendo los valores de , , , , denominados parámetros D-H del
eslabón , la matriz de trasformación que relaciona los sistemas de referencia es la
siguiente:
, ∙ 0,0, ∙ , 0,0 ∙ ,
Desarrollando esta expresión se obtiene:
cos cos ∙ sin sin ∙ sin ∙ cossin cos ∙ cos sin ∙ cos ∙ sin0 sin cos0 0 0 1
3.1.1. Cinemática directa del brazo robótico
En este apartado se aplicarán los fundamentos teóricos vistos anteriormente
para resolver el problema cinemático directo del brazo robótico estudiado.
Primero se identificarán los eslabones y las articulaciones que forman la
cadena cinemática del robot. Como se puede ver en la Ilustración 28, el manipulador
tiene 5 eslabones y 5 articulaciones, por tanto contará con 5 grados de libertad. Se
numerarán los eslabones y las articulaciones comenzando en 1 y acabando en 5. En
el caso de los eslabones, habrá un eslabón 0 que coincidirá con la base fija del
robot.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
57 Escuela Politécnica Superior de Jaén
Ilustración 28: Eslabones y articulaciones del brazo robótico
Ilustración 29: Sistemas de referencia
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
58 Escuela Politécnica Superior de Jaén
Cabe destacar que en este análisis no se tiene en cuenta el elemento terminal
(pinzas A y B), ya que aunque se abre y cierra para poder agarrar objetos, este
movimiento no se considera un grado de libertad del robot.
Conocidos y habiendo numerado los eslabones y las articulaciones del robot,
se identificarán los sistemas de referencia solidarios a cada eslabón siguiendo el
criterio de la regla de la mano derecha (Ilustración 29).
Asignados los sistemas de referencia a cada eslabón, se calcularán los
parámetros de Denavit-Hartenberg, los cuales son necesarios para construir las
matrices de transformación y tienen el siguiente significado:
es el ángulo entre y referido al eje
es la distancia entre y medida a lo largo del eje
es la distancia entre y medida a lo largo del eje
es el ángulo entre y referido al eje
Teniendo esto en cuenta y siguiendo las indicaciones de la Ilustración 29,
hallamos los valores de dichos parámetros (Tabla 7).
Articulación θ d a α
1 θ1 44 0 90
2 θ2 + 90 0 100 180
3 θ3 + 90 0 88 180
4 θ4 0 5,5 90
5 θ5 124 0 0
Tabla 7: Parámetros de Denavit-Hartenberg
Una vez obtenidos los parámetros D-H, el cálculo de las relaciones entre los
enlaces consecutivos del robot es inmediato, ya que vienen dadas por las matrices
que se calculan según la expresión general obtenida en el apartado anterior.
cos 0 sin 0sin 0 cos 00 1 0 440 0 0 1
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
59 Escuela Politécnica Superior de Jaén
sin cos 0 100 ∙ sincos sin 0 100 ∙ cos0 0 1 00 0 0 1
sin cos 0 88 ∙ sincos sin 0 88 ∙ cos0 0 1 00 0 0 1
cos 0 sin 5,5 ∙ cossin 0 cos 5,5 ∙ sin0 1 0 00 0 0 1
cos sin 0 0sin cos 0 00 0 1 1240 0 0 1
Por último se obtendrá la matriz de transformación como producto de todas
las anteriores.
∙ ∙ ∙ ∙
Esta matriz nos proporcionará la posición y orientación del extremo referido a la
base a partir de las coordenadas articulares , , , , .
Se muestra a continuación el código del programa escrito para MATLAB que
realiza estos cálculos:
%Cinemática directa del brazo robótico %Constantes del robot d1=44; d2=0; d3=0; d4=0; d5=124; a1=0; a2=100; a3=88; a4=5.5; a5=0; alfa1=pi/2; alfa2=pi; alfa3=pi; alfa4=pi/2; alfa5=0; teta1_0=0; teta2_0=pi/2;
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
60 Escuela Politécnica Superior de Jaén
teta3_0=pi/2; teta4_0=0; teta5_0=0; %Variables de entrada teta1=input('Introduce el ángulo teta 1: '); teta2=input('Introduce el ángulo teta 2: '); teta3=input('Introduce el ángulo teta 3: '); teta4=input('Introduce el ángulo teta 4: '); teta5=input('Introduce el ángulo teta 5: '); teta1=teta1*pi/180+teta1_0; teta2=teta2*pi/180+teta2_0; teta3=teta3*pi/180+teta3_0; teta4=teta4*pi/180+teta4_0; teta5=teta5*pi/180+teta5_0; %Matrices A A1=[cos(teta1) -cos(alfa1)*sin(teta1) sin(alfa1)*sin(teta1) a1*cos(teta1)]; A1=[A1; sin(teta1) cos(alfa1)*cos(teta1) -sin(alfa1)*cos(teta1) a1*sin(teta1)]; A1=[A1; 0 sin(alfa1) cos(alfa1) d1]; A1=[A1; 0 0 0 1]; A2=[cos(teta2) -cos(alfa2)*sin(teta2) sin(alfa2)*sin(teta2) a2*cos(teta2)]; A2=[A2; sin(teta2) cos(alfa2)*cos(teta2) -sin(alfa2)*cos(teta2) a2*sin(teta2)]; A2=[A2; 0 sin(alfa2) cos(alfa2) d2]; A2=[A2; 0 0 0 1]; A3=[cos(teta3) -cos(alfa3)*sin(teta3) sin(alfa3)*sin(teta3) a3*cos(teta3)]; A3=[A3; sin(teta3) cos(alfa3)*cos(teta3) -sin(alfa3)*cos(teta3) a3*sin(teta3)]; A3=[A3; 0 sin(alfa3) cos(alfa3) d3]; A3=[A3; 0 0 0 1]; A4=[cos(teta4) -cos(alfa4)*sin(teta4) sin(alfa4)*sin(teta4) a4*cos(teta4)]; A4=[A4; sin(teta4) cos(alfa4)*cos(teta4) -sin(alfa4)*cos(teta4) a4*sin(teta4)]; A4=[A4; 0 sin(alfa4) cos(alfa4) d4]; A4=[A4; 0 0 0 1]; A5=[cos(teta5) -cos(alfa5)*sin(teta5) sin(alfa5)*sin(teta5) a5*cos(teta5)]; A5=[A5; sin(teta5) cos(alfa5)*cos(teta5) -sin(alfa5)*cos(teta5) a5*sin(teta5)]; A5=[A5; 0 sin(alfa5) cos(alfa5) d5]; A5=[A5; 0 0 0 1]; %Matriz T T=A1*A2*A3*A4*A5; %Presentación de resultados disp(['P5x: ', num2str(T(1,4))]); disp(['P5y: ', num2str(T(2,4))]); disp(['P5z: ', num2str(T(3,4))]);
3.2. Cinemática inversa
El problema cinemático inverso consiste en encontrar los valores que deben
adoptar las coordenadas articulares del robot , , , … , para que su extremo se
posicione y oriente según determinada localización espacial. Al contrario que el
problema cinemático directo, el cálculo de la cinemática inversa no es sencillo ya
que consiste en la resolución de una serie de ecuaciones (generalmente no lineales)
fuertemente dependientes de la configuración del robot, además de existir diferentes
soluciones que resuelven el problema.
Existen procedimientos genéricos susceptibles de ser programados para la
resolución de la cinemática inversa. Sin embargo, el principal inconveniente de estos
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
61 Escuela Politécnica Superior de Jaén
procedimientos es que son métodos numéricos iterativos, que no siempre garantizan
tener la solución en tiempo real. De esta manera, a la hora de resolver el problema
cinemático inverso es mucho más adecuado encontrar una solución cerrada, es
decir, encontrar una relación matemática explícita de la forma:
, , , , , ; 1, … ,
Para conseguir esto, existen 3 métodos principales:
Métodos geométricos: consisten en la utilización de las relaciones
trigonométricas y la resolución de los triángulos formados por los elementos y
articulaciones del robot. Este procedimiento es adecuado para robots de pocos
grados de libertad o para el caso en que, por simplificaciones, se consideren solo
los primeros grados de libertad.
Resolución a partir de las matrices de transformación homogénea: trata de
hallar el modelo cinemático inverso de un robot a partir del conocimiento de su
modelo directo. Es decir, conocidas las relaciones que expresan el valor de la
posición y orientación del extremo del robot en función de sus coordenadas
articulares, obtener por manipulación de aquellas las relaciones inversas. En la
práctica esta tarea no es trivial, resultando en muchas ocasiones tan compleja
que obliga a desecharla.
Desacoplamiento cinemático: este método permite, para determinados tipos de
robots, resolver los primeros grados de libertad, dedicados al posicionamiento, de
una manera independiente a la resolución de los últimos grados de libertad,
dedicados a la orientación. Este método es típico en robots de 6 grados de
libertad, donde los tres primeros están destinados a posicionar el brazo y los 3
últimos, a orientar la herramienta.
De esta forma, se seleccionará el método más apropiado teniendo en cuenta
las características del robot a estudiar (grados de libertad, geometría, posibles
simplificaciones…) para obtener el modelo cinemático inverso del mismo.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
62 Escuela Politécnica Superior de Jaén
3.2.1. Cinemática inversa del brazo robótico
En este apartado se obtendrá el modelo cinemático inverso del manipulador
robótico estudiado llevando a la práctica los fundamentos teóricos vistos
anteriormente.
Previo a la selección y aplicación de uno de los procedimientos conocidos para
resolver el problema cinemático inverso, hace falta detenerse a analizar las
singularidades del robot en cuestión, ya que de estas dependerá la elección de un
método u otro, así como las simplificaciones que se puedan hacer.
En este caso, el brazo robótico cuenta con 5 grados de libertad, de los cuales 3
son coplanarios. Esta característica facilitará la obtención de relaciones
trigonométricas que permitan relacionar varias coordenadas articulares del robot.
Además, el último grado de libertad no será relevante en la obtención del modelo
cinemático inverso, ya que el giro de la pinza no modifica la posición final del
extremo de la herramienta. Teniendo esto en cuenta se estudian los métodos
existentes para proceder a la selección del más conveniente.
Primero se descarta el método de las matrices de transformación homogénea,
ya que daría lugar a complejos sistemas de ecuaciones no lineales, posiblemente
con soluciones múltiples. Considerando la existencia de 3 articulaciones coplanarias,
se plantea el método geométrico como el más adecuado. Parece claro que este
procedimiento es el más factible para el robot estudiado, tanto por esta característica
geométrica como por el hecho de que, como se ha dicho antes, en el problema
cinemático inverso se prescindirá del último grado de libertad. Se procederá
entonces a obtener la cinemática inversa a partir de las coordenadas del elemento
terminal junto con el ángulo de ataque de la herramienta, definiéndose este ángulo
como el que forma la herramienta con la vertical.
En la Ilustración 30 se plantea la cadena cinemática del brazo para una
posición dada.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
63 Escuela Politécnica Superior de Jaén
Ilustración 30: Cadena cinemática del brazo robótico para una posición dada
En la Ilustración 31 se puede ver con más detalle las coordenadas articulares
del robot y los ángulos que se utilizarán para realizar los cálculos geométricos
Se parte del extremo de la pinza, , , , y de su ángulo de
ataque, , que es la única orientación que hay que tener en cuenta puesto que la
herramienta es coplanaria con todos los demás eslabones y que su giro, , no
afecta a las coordenadas de . A partir de estos datos se podrá determinar el
ángulo :
arctan
Y con él las coordenadas del punto , , :
∙ cos ∙ cos ∙ sin ∙ cos∙ cos ∙ sin ∙ sin ∙ cos
∙ sin cos
Obtenidas las coordenadas del punto , se podrán hallar los ángulos y
mediante relaciones geométricas.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
64 Escuela Politécnica Superior de Jaén
Ilustración 31: Cadena cinemática del robot con ángulos y coordenadas articulares
Para hallar el ángulo aplicaremos el teorema del coseno en el triángulo
formado por , , :
2 ∙ ∙ ∙ cos 180 90 2 ∙ ∙ ∙ sin
En esta expresión se conocen todos los datos excepto , que se obtiene del
triángulo , , mediante el teorema de Pitágoras:
Siendo
Habiendo calculado , será:
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
65 Escuela Politécnica Superior de Jaén
arcsin2 ∙ ∙
Para calcular se utilizarán los ángulos y , que se relacionan con el
primero de la forma:
90
Se aplica el teorema del seno para deducir el ángulo :
sin sin 180 90 cos
arcsin∙ cos
Mientras que se obtiene de la tangente:
tan
No obstante, se tendrá en cuenta el signo de la coordenada , ya que si
esta fuera negativa indicaría un ángulo mayor de 90º y la tangente sería negativa;
entonces:
arctan ∙ sgn
Despejando y sustituyendo:
90 arctan ∙ sgn arcsin∙ cos
90
Cabe destacar que la forma de obtener los ángulos y varía según sea la
configuración del brazo codo arriba o codo abajo. En este caso se han hallado
ambos ángulos analizando la geometría del brazo con una configuración codo arriba,
ya que por la disposición del robot estudiado la otra configuración carece de interés.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
66 Escuela Politécnica Superior de Jaén
Por último, se obtendrá el ángulo para cumplir con el ángulo de ataque
dado:
90 90 90 90
Y despejando:
Como se ha dicho, el ángulo no interviene en el posicionamiento del
extremo de la pinza, solo determina la orientación de la misma sobre el ángulo de
ataque. Un valor de 0º coloca la pinza de forma que su apertura y cierre se producen
perpendicularmente al ángulo ; ángulos positivos la orientan hacia los valores
negativos de y viceversa.
Se muestra a continuación el código del programa escrito para MATLAB que
realiza estos cálculos:
%Cinemática inversa del brazo robótico %Constantes del robot L1=44; L2=100; L3=88; L4=5.5; L5=65+59; %Variables de entrada P5x=input('Introduce la coordenada P5x: '); P5y=input('Introduce la coordenada P5y: '); P5z=input('Introduce la coordenada P5z: '); delta=input('Introduce el ángulo de ataque:'); %Cálculo de las coordenadas articulares delta=delta*pi/180; teta1=atan(P5y/P5x); P3x=P5x-L4*cos(delta)*cos(teta1)-L5*sin(delta)*cos(teta1); P3y=P5y-L4*cos(delta)*sin(teta1)-L5*sin(delta)*sin(teta1); P3z=P5z-L4*sin(delta)+L5*cos(delta); r=sqrt(P3x^2+P3y^2); s=P3z-L1; t=sqrt(r^2+s^2); teta3=asin((L2^2+L3^2-t^2)/(2*L2*L3)); beta=asin(L3*cos(teta3)/t); alfa=atan(s/r)*sign(P3x)+acos(sign(P3x)); teta2=alfa+beta-pi/2; teta4=teta3-teta2+delta; %Presentación de resultados disp(['teta 1: ', num2str(teta1*180/pi)]); disp(['teta 2: ', num2str(teta2*180/pi)]); disp(['teta 3: ', num2str(teta3*180/pi)]); disp(['teta 4: ', num2str(teta4*180/pi)]);
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
67 Escuela Politécnica Superior de Jaén
3.3. Par máximo
Se calculará el par que deben aportar los servomotores para mover el brazo en
las condiciones más desfavorables. La configuración que ofrece un mayor par
resistente será aquella en la que el brazo, el antebrazo y la muñeca estén alineados
horizontalmente y se gire la articulación del hombro, como se muestra en la
Ilustración 32.
Ilustración 32: Disposición de máximo par resistente
Cabe decir que para la realización de los cálculos se han asumido las siguientes
simplificaciones: el peso de las piezas se encuentra concentrado en su centro
geométrico y el peso de los servos se concentra en el punto donde está la
articulación. Partiendo de estas premisas se hallará el par resistente y la carga
máxima que puede mover el brazo en la configuración planteada.
A continuación se muestran en la Tabla 8 el peso de cada una de las piezas, que
será necesario para calcular el par máximo.
Pieza m (kg)
Servo tipo 2 0,016
Servo tipo 3 0,013
Brazo 0,016
Antebrazo 0,014
Muñeca A 0,012
Muñeca B 0,011
Soporte 0,004
Pinza A 0,002
Pinza B 0,002
Tabla 8: Peso de cada pieza
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
68 Escuela Politécnica Superior de Jaén
Como se muestra en la Ilustración 32, hay 8 puntos en los cuales se concentra
una determinada masa que crea un momento en el punto de origen, establecido en
la unión del hombro con el brazo. La sumatoria de esos momentos dará el par
resistente que se desea obtener. En la Tabla 9 se resuelve el par en cada punto, a
excepción del par en el extremo de la pinza (P8) ya que este dependerá de la carga
que el brazo tenga que desplazar.
Punto d(cm) m(kg) Par (kg·cm)
P1 5 2·mbrazo = 0,032 0,16
P2 10 mservo T2 = 0,016 0,16
P3 14,4 2·mantebrazo = 0,028 0,4032
P4 18,8 mservo T2 = 0,016 0,3008
P5 22,05 mmuñeca A + mmuñeca B = 0,023 0,50715
P6 25,3 2·mservo T3 + msoporte = 0,03 0,759
P7 27,8 mpinza A + mpinza B = 0,004 0,1112
P8 30,3 mcarga -
2,40135
Tabla 9: Cálculo del par resistente en el hombro
El par máximo disponible en el servo de la articulación del hombro (servo tipo 1)
se empleará en vencer el par resistente, calculado en la Tabla 9, y el resto podrá
utilizarse en mover una carga. Se hallará el peso máximo que puede tener dicha
carga mediante los cálculos siguientes:
⇒
3,1 2,40135 0,69865
⇒
0,6986530,3
0,02306
Así, la carga que podrá desplazar el brazo en estas condiciones será como
máximo de unos 23g. En la práctica, el brazo no adoptará la configuración
estudiada, por lo que podrá desplazar objetos de mayor masa que la obtenida.
Cabría preguntarse si es posible el movimiento de la articulación del codo ya que,
aunque el par resistente para ella es menor, el servo utilizado es del tipo 2 con
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
69 Escuela Politécnica Superior de Jaén
menor par disponible. Realizando los mismos cálculos comprobamos que la
situación es más favorable que la anterior:
Punto d(cm) m(kg) Par (kg·cm)
P3 4,4 2·mantebrazo = 0,028 0,1232
P4 8,8 mservo T2 = 0,016 0,1408
P5 12,05 mmuñeca A + mmuñeca B = 0,023 0,27715
P6 15,3 2·mservo T3 + msoporte = 0,03 0,459
P7 17,8 mpinza A + mpinza B = 0,004 0,0712
P8 20,3 mcarga -
1,07135
Tabla 10: Cálculo del par resistente en el codo
El par máximo disponible en el servo de la articulación del codo (servo tipo 2) se
empleará en vencer el par resistente, calculado en la Tabla 10, y el resto podrá
utilizarse en mover una carga. Se hallará el peso máximo que puede tener dicha
carga mediante los cálculos siguientes:
⇒
2,2 1,07135 1,12865
⇒
1,1286520,3
0,0556
El peso que puede mover la articulación del codo es de 55g, superior al que
puede mover el hombro por lo que queda comprobado que el caso más desfavorable
era el estudiado inicialmente.
4. SISTEMA DE CONTROL
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
73 Escuela Politécnica Superior de Jaén
4. SISTEMA DE CONTROL
En este capítulo se describe el sistema de control del brazo robótico. Se han
establecido los requerimientos para poder seleccionar la mejor plataforma donde
desarrollar el hardware y el software que llevarán a cabo el control del manipulador.
4.1. Requerimientos y selección del sistema
El sistema de control está implementado como un programa que debe
ejecutarse sobre una plataforma adecuada. Se plantean las necesidades o
requerimientos del mismo para elegir la mejor plataforma.
En este caso los objetivos a alcanzar serán los siguientes:
Movimiento: mediante el control de los 6 servomotores del brazo robótico, se
desea poder girar las articulaciones para llevar al robot a la posición deseada.
Calibración: se quiere poder ajustar los ángulos iniciales del brazo, estableciendo
la posición cero del mismo.
Almacenamiento: además de poder llevar al robot a una posición determinada, se
busca que el sistema pueda memorizar posiciones para generar secuencias de
movimientos que constituyan tareas.
Control remoto: tanto desde un PC conectado por cable como de forma
inalámbrica, se enviarán comandos para realizar todas estas acciones.
Definidas estas premisas, lo siguiente será seleccionar un sistema que permita
satisfacerlas. Se ha elegido la plataforma Arduino, que es una plataforma de
creación de prototipos de código abierto basada en software y hardware libre y fácil
de usar.
El software consiste en un entorno de desarrollo integrado gratuito y sencillo,
de manera que no es necesario tener grandes conocimientos de informática y
electrónica para su uso ya que dispone de numerosas librerías, también de código
abierto, que facilitan el uso de muchos dispositivos hardware para infinidad de
funciones (Bluetooth, wifi, servomotores…).
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
74 Escuela Politécnica Superior de Jaén
En cuanto al hardware, el sistema escogido ha sido la placa Arduino UNO r3,
principalmente por ser económica y porque sus características se ajustan a las
necesidades de este proyecto. En la Tabla 11 se detallan dichas características.
Arduino UNO r3
Microcontrolador ATmega328
Tensión de funcionamiento 5V
Entradas/salidas digitales 14
Entradas analógicas 6
Memoria FLASH 32kB
SRAM 2kB
EEPROM 1kB
Velocidad de reloj 16MHz
Tabla 11: Características Arduino UNO r3
Como se verá en el siguiente apartado, la cantidad de pines de entrada y salida
disponibles (Ilustración 33) es suficiente para la todos los elementos que hay que
conectar.
Ilustración 33: Distribución de pines de la placa Arduino UNO
4.2. Hardware y conexiones
En este apartado se mostrarán las conexiones realizadas entre la placa
Arduino y los diferentes elementos utilizados. Antes de presentar el esquema de
conexión, se hará una breve descripción de estos elementos:
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
75 Escuela Politécnica Superior de Jaén
Placa Arduino UNO r3: como se ha dicho anteriormente, se utilizará esta placa
como sistema de control. A ella se conectarán el resto de los elementos,
concretamente a sus pines de entrada/salida digitales y analógicos; y ella se
conectará al PC mediante un puerto USB.
Ilustración 34: Placa Arduino UNO r3
Fuente de alimentación externa: aportará la potencia necesaria ya que con la
conexión habitual de Arduino al puerto USB no se dispone de potencia suficiente
para los servomotores. Se conecta a la placa a través del conector de
alimentación y se incluyen condensadores electrolíticos para mejorar la calidad
de la misma.
Ilustración 35: Fuente de alimentación externa
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
76 Escuela Politécnica Superior de Jaén
Servomotores: se dispone de un total de 6 servomotores (de 3 tipos diferentes,
como ya se había comentado), uno por cada articulación del manipulador. El
funcionamiento de los mismos se ha descrito en el capítulo 2. Su señal de control
estará conectada a 6 salidas digitales de Arduino, mientras que sus líneas de
alimentación (0V y 5V) se conectarán a los puntos con la misma tensión de la
placa. En la Ilustración 36 se muestran, de izquierda a derecha según su par
máximo, los servos nombrados como tipo 3, tipo 2 y tipo 1.
Ilustración 36: Servomotores
Potenciómetros: se usarán 6 potenciómetros (o resistencias variables) de 10kΩ,
uno para posicionar cada servomotor, que serán utilizados en el modo manual
para calibrar la posición cero del robot. Cada potenciómetro está configurado
como un divisor de tensión entregando por su punto medio un valor analógico
entre 0V y 5V; dicho punto medio va conectado a una entrada analógica de
Arduino.
Ilustración 37: Potenciómetro
LEDs: se conectarán 6 LEDs, uno por cada potenciómetro, que indicarán en el
modo manual cuándo los potenciómetros están en la posición 0. En el modo
normal servirán para informar de diferentes situaciones. Cada LED estará
conectado por su ánodo a una salida digital y por su cátodo a 0V a través de una
resistencia en serie de 1kΩ para limitar la corriente.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
77 Escuela Politécnica Superior de Jaén
Pulsador: se utilizará para poder entrar al modo manual o de calibración. Es
necesario conectarlo a una entrada digital, pero por no disponer de más pines de
entrada/salida, la función será compartida con el PIN de uno de los LED.
Ilustración 39: Pulsador
Módulo de comunicación Bluetooth HC-06: este módulo hará posible el control
inalámbrico del brazo robótico, por ejemplo desde un teléfono móvil. Irá
conectado a los pines de transmisión y de recepción de Arduino, además de
necesitar los puntos de alimentación a 0V y 5V.
Ilustración 40: Módulo de comunicación Bluetooth HC-06
Shield de prototipos para Arduino: el shield, o placa de circuito modular, se
montará encima del Arduino y permitirá alojar todos los elementos mencionados
anteriormente. Esta placa es un circuito impreso con perforaciones disponibles
para la inserción y soldadura de componentes electrónicos.
Ilustración 38: LEDs
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
78 Escuela Politécnica Superior de Jaén
Ilustración 41: Shield de prototipos
A continuación, en la Tabla 12, se muestra la asignación de pines de la placa.
Pin Elemento
0 TX Bluetooth
1 RX Bluetooth
2 Servo 6
3 Servo 5
4 Servo 4
5 Servo 3
6 Servo 2
7 Servo 1
8 LED 6 – Pulsador
9 LED 5
10 LED 4
11 LED 3
12 LED 2
13 LED 1
A0 Potenciómetro 6
A1 Potenciómetro 5
A2 Potenciómetro 4
A3 Potenciómetro 3
A4 Potenciómetro 2
A5 Potenciómetro 1
Tabla 12: Asignación de pines
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
79 Escuela Politécnica Superior de Jaén
Por último, en la Ilustración 42 se muestra el esquema de conexión completo.
Ilustración 42: Esquema de conexión
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
80 Escuela Politécnica Superior de Jaén
Ilustración 43: Diagrama del shield de prototipos
En la Ilustración 43 se muestra un diagrama con la disposición de componentes
sobre el shield de prototipos y en la Ilustración 44 y la Ilustración 45 varias
fotografías de todo el sistema de control terminado.
Ilustración 44: Fotografía del sistema de control
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
81 Escuela Politécnica Superior de Jaén
Ilustración 45: Sistema de control, vista superior
4.3. Software y funcionamiento
En este apartado se describe la forma en la que el software es capaz de
realizar las diferentes tareas que permiten tanto el movimiento manual como
automático del brazo robótico.
Posicionamiento
Para el manejo de los servomotores que mueven las articulaciones se utilizará
la librería “servo” de Arduino. Con esta librería se pueden definir todos los objetos de
tipo “servo” necesarios, asociando cada uno de ellos a un pin de salida por el que se
generará la señal de control de dicho servomotor indicando los valores de í y
á expresados en microsegundos (servo.attach(pin,min,max)). Para posicionar
un servomotor basta con asignar al objeto “servo” correspondiente el valor,
expresado en microsegundos, del tiempo que la señal debe permanecer a nivel alto
(servo.writeMicroseconds(uS)).
Debido a que los servomotores utilizados están preparados para realizar
posicionamientos muy rápidos, si se enviara al servomotor directamente la señal
correspondiente al ángulo deseado, el movimiento sería tan rápido que
desestabilizaría todo el brazo. Por este motivo para pasar desde una posición a otra
en determinada articulación lo que hace el programa es incrementar o decrementar
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
82 Escuela Politécnica Superior de Jaén
en 1µs el tiempo de la señal PWM desde el valor actual hasta el valor deseado
en intervalos de 20ms. Por ejemplo, si el ángulo actual de determinada articulación
es de 0º y se corresponden a 1500 y se desea girar hasta 45º que
corresponde aproximadamente a 1965 , el programa va cambiando
sucesivamente, a intervalos de 20ms, el valor de desde 1500 hasta 1965
tardando, por tanto, 9,3s en girar los 45º. El valor temporal de 20ms entre cambios
es necesario ya que es el periodo de la señal PWM y tiempos inferiores no serían
efectivos. Si el movimiento se hace demasiado lento se pueden realizar los
incrementos de en intervalos de hasta 9µs (3µs resulta bastante efectivo)
mediante el comando adecuado.
El algoritmo que realiza el posicionamiento (ver función Move(servo) en el código
fuente) se puede ver representado en el ordinograma de la Ilustración 46.
Ilustración 46: Ordinograma de posicionamiento
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
83 Escuela Politécnica Superior de Jaén
Calibración
Como se comentó en el capítulo 2 la posición correspondiente a 0º en cada
una de las articulaciones no se puede ajustar mecánicamente debido a la propia
corona dentada por la que el servo entrega el movimiento de giro de su eje. También
existen otros factores que hacen que el ángulo 0 de determinadas articulaciones no
deba corresponderse con el ángulo 0 del servomotor correspondiente, para permitir
ángulos mayores en los giros positivos o negativos. Todo esto hace que se deba
disponer de un mecanismo de calibración manual de este ángulo inicial o ángulo
cero. La calibración se realizará mediante los potenciómetros disponibles.
Para realizar la calibración hay que entrar en el modo manual. Esto se
consigue manteniendo pulsado el pulsador de forma que, mientras que se inicializa
el sistema, se encenderá el LED naranja y cuando se suelte el pulsador se apagará
este LED y se posicionará el brazo en la posición cero. Con el sistema sin calibrar el
brazo se posicionará según los ángulos que los servomotores identifican como 0º.
Cada uno de los potenciómetros permite el giro de una articulación en todo su
recorrido, pero, puesto que los potenciómetros pueden no apuntar inicialmente al
valor 0, es necesario girarlos hasta que apunten a dicho valor. Para ello cada uno de
los 6 LEDs permanecerá encendido mientras la posición del potenciómetro no
corresponda con la del servomotor (ver función WaitZero() en el código fuente);
cuando los 6 LEDs se apaguen empezará el verdadero modo manual donde cada
articulación gira siguiendo su potenciómetro correspondiente. Para ello el programa,
cuando está en este modo, lee continuamente el valor de las entradas analógicas
(ver función LeeADC(pot) en el código fuente) y ajusta los ángulos de las
articulaciones a dichos valores (los movimientos se realizan poco a poco, tal y como
se ha explicado en el apartado anterior). Una vez ajustada la que será la posición
cero o inicial de todas las articulaciones, los valores angulares se almacenarán,
pulsando el botón de modo, en la memoria no volátil de Arduino y se entrará en el
modo de funcionamiento normal.
La librería EEPROM permite la lectura y escritura de valores en los 1024
bytes de memoria no volátil disponibles. Las librería define el objeto EEPROM y
funciones utilizadas son la de escritura (EEPROM.write(dir,dat)) y la de lectura
(dat=EEPROM.read(dir)).
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
84 Escuela Politécnica Superior de Jaén
Se trabajará en bloques de 8 bytes representando cada uno de ellos los seis
valores angulares de una determinada posición del brazo (se dejan 2 bytes sin
utilizar por si fueran necesarios para alguna otra función). Así la posición inicial o
cero se almacenará a partir de la dirección 0 de la memoria y corresponde, por tanto,
a los valores de calibración del brazo. El resto de bloques de 8 bytes, hasta el
bloque 99, se usarán para almacenar posiciones del brazo que permitan realizar
secuencias de forma automática (ver apartado siguiente).
Almacenamiento
Para la ejecución de tareas complejas con el brazo robótico es necesario ir
llevándolo a posiciones sucesivas cuyo conjunto constituya la tarea completa a
realizar. El proceso de definición de una tarea consiste por tanto en almacenar esas
sucesivas posiciones en el orden en que deben producirse. Para ello se fijarán las
coordenadas articulares de una determinada posición y se almacenarán en la
memoria no volátil. Posteriormente se llevará el brazo robótico a la siguiente
ubicación y esta será almacenada a continuación de la anterior en la misma
memoria.
Cada una de las posiciones se almacena como se ha dicho antes, utilizando
las funciones de la librería EEPROM, ocupando 6 bytes de uno de los bloques de 8
bytes desde el 1 (que ocupa la dirección 8 hasta la 15 de la memoria) hasta el
bloque 99. Aunque la capacidad de memoria permite almacenar más de 100
posiciones se ha limitado a este valor para no consumir todo el espacio por si fuera
necesario para futuras ampliaciones.
Al inicio del programa se busca el primer bloque libre a partir del cual se
introducirán las siguientes posiciones. Cada vez que se desea almacenar una
posición nueva se ocupará el primer bloque libre y se incrementará el contador de
posiciones; además de borrarse, por si estuviera ocupado, el bloque siguiente.
También es posible borrar la última posición introducida y en ese caso se
decrementará el contador de posiciones.
La ejecución de una secuencia desde su inicio de forma automática empieza
por la posición 1 y termina cuando se encuentre el primer bloque vacío.
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
85 Escuela Politécnica Superior de Jaén
Comunicación
Excepto cuando el brazo está en modo manual o de calibración, todo el manejo
debe realizarse a través del puerto serie, ya sea por cable o de forma inalámbrica.
Dicha comunicación se basa en comandos sencillos para realizar cada una de las
acciones. En la Tabla 13 se muestran los comandos disponibles.
Comando Función
Axxxx Mueve el servomotor 1 al ángulo xxxx (-180…+180)
Bxxxx Mueve el servomotor 2 al ángulo xxxx (-180…+180)
Cxxxx Mueve el servomotor 3 al ángulo xxxx (-180…+180)
Dxxxx Mueve el servomotor 4 al ángulo xxxx (-180…+180)
Exxxx Mueve el servomotor 5 al ángulo xxxx (-180…+180)
Fxxxx Mueve el servomotor 6 al ángulo xxxx (-180…+180)
A+/A- Incrementa/decrementa el ángulo del servomotor 1 un grado
B+/B- Incrementa/decrementa el ángulo del servomotor 2 un grado
C+/C- Incrementa/decrementa el ángulo del servomotor 3 un grado
D+/D- Incrementa/decrementa el ángulo del servomotor 4 un grado
E+/E- Incrementa/decrementa el ángulo del servomotor 5 un grado
F+/F- Incrementa/decrementa el ángulo del servomotor 6 un grado
Tn Establece el número µs entre movimientos (1…9)
T+/T- Incrementa/decrementa el número µs entre movimientos
T Muestra el número µs entre movimientos
P Almacena posición actual en el primer bloque libre
w Borra la última posición almacenada
W Borra todas las posiciones almacenadas
S Ejecuta la secuencia almacenada desde la primera posición hasta el final
o Abre la pinza completamente
m Cierra la pinza a la posición intermendia
c Cierra la pinza completamente
L Gira la pinza a la izquierda
C Gira la pinza al centro
R Gira la pinza a la derecha
* Muestra la posición actual (ángulos de los 6 servomotores)
r Muestra calibración (ángulos de los 6 servomotores en la posición cero)
Z Borra información de calibración y posiciones almacenadas
# Lleva el brazo a la posición 0
$ Para el movimiento
% Desconecta servomotores
@ Reinicia el sistema
Tabla 13: Comandos
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
86 Escuela Politécnica Superior de Jaén
En la función LeeSerial() en el código fuente se puede ver cómo el programa
realiza cada una de estas acciones según los caracteres que vayan recibiéndose por
el puerto de comunicaciones. Básicamente se almacenan los caracteres recibidos en
un buffer hasta que se reciba un código se final de línea; en ese momento, según el
número de caracteres recibidos, se realiza la comprobación del comando contenido
en el buffer y se actúa en consecuencia.
Puesto que las líneas de transmisión y recepción del módulo Bluetooth están
conectadas a las líneas de transmisión y recepción de Arduino, todos los comandos
disponibles por el puerto serie lo están también de forma inalámbrica a través de la
conexión Bluetooth.
Para el manejo remoto con cualquier teléfono móvil con sistema operativo
Android o IOS se puede utilizar alguna de las aplicaciones genéricas configurables
de comunicación Bluetooth. En este caso, se ha descargado la aplicación “Bluetooth
serial controller” para Android, que dispone de un conjunto de botones
personalizables por el usuario; para cada uno se establece el texto que aparece en
el botón, el comando que se envía al pulsarlo y el tiempo de repetición entre envíos
sucesivos cuando permanece pulsado. Los botones se han configurado para cada
uno de los movimientos de las articulaciones, giro, apertura y cierre de la pinza,
puesta a cero, grabación y ejecución de secuencias, etc. En la Ilustración 47 se
muestra una captura de la pantalla principal de la aplicación.
Ilustración 47: Aplicación de control Bluetooth
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
87 Escuela Politécnica Superior de Jaén
En la Tabla 14 se muestra la lista de funciones de los de botones disponibles en la aplicación según la configuración establecida para manejar el brazo robótico.
Botón Función
A+/A- Giro de la base
B+/B- Giro del hombro
C+/C- Giro del codo
D+/D- Giro de la muñeca
L Giro de la pinza a la izquierda
C Giro de la pinza al centro
R Giro de la pinza a la derecha
CL Cierra la pinza
MID Cierra la pinza sin apretar
OP Abre la pinza
T+/T- Incrementa/decrementa velocidad
POS Añade posición actual en la secuencia
SEC Ejecuta secuencia desde el principio
CLR Borra última posición de la secuencia
PAR Para todos los movimientos
INF Muestra ángulos actuales
ZER Lleva a la posición inicial
STP Deshabilita servomotores
RST Reinicia el sistema
Tabla 14: Función de los botones de la aplicación
5. CONCLUSIONES
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
91 Escuela Politécnica Superior de Jaén
5. CONCLUSIONES
En este capítulo se analizarán los resultados obtenidos una vez terminado el
proyecto propuesto.
Lo primero a destacar es que se ha alcanzado la meta deseada, que era poder
diseñar, fabricar y poner en funcionamiento un brazo robótico hecho mediante una
impresora 3D doméstica. Con esto se comprueba que el método de fabricación
escogido, el de impresión 3D, permite a cualquier usuario realizar pequeños
proyectos sin que suponga un coste elevado y pudiendo utilizar herramientas de
código libre, como son Cura o Arduino. Este último ha sido fundamental en la
dotación de movilidad al brazo, ya que ha permitido automatizar sus movimientos
con componentes electrónicos económicos y sin tener grandes conocimientos de
informática.
No obstante, se han encontrado algunas limitaciones durante la realización del
trabajo. La primera de ellas viene ligada al tipo de impresora 3D que se ha utilizado.
Esta, al ser un modelo de bajo coste, implica restricciones de tamaño, ya que el
espacio de impresión es pequeño, así como de calidad, debido a que el propio
usuario es el que tiene que calibrar y ajustar la máquina.
También se han encontrado limitaciones relacionadas con los actuadores
utilizados para mover el brazo robótico. Los servomotores elegidos, si bien son muy
económicos, tienen un movimiento brusco que hace que en la trayectoria del robot
se produzcan pequeños saltos y vibraciones. En este caso, en el que la tarea a
realizar por el manipulador era simplemente desplazar objetos pequeños de un
punto a otro, esto no ha supuesto un gran obstáculo, pero lo sería si se buscase
una aplicación más delicada, o en la que el robot tuviera un espacio de trabajo
reducido o de difícil acceso.
A pesar de los inconvenientes encontrados, este trabajo ha sido fructífero, no
solo porque se ha cumplido el objetivo propuesto, sino también porque en el proceso
de realización se han adquirido conocimientos de diversas materias como mecánica,
fabricación, electrónica y programación, cuya combinación ha dado lugar a un
trabajo multidisciplinar.
BIBLIOGRAFÍA
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
95 Escuela Politécnica Superior de Jaén
Bibliografía
Alciatore, D. et al. (2007). Introducción a la mecatrónica y los sistemas de medición. McGraw-Hill
Baena, F. et al. (1992). Robótica Industrial. Cámara de Comercio e Industria de Jaén.
Barrientos, A. (2007). Fundamentos de robótica. McGraw-Hill
Beer, F. et al. (1962). Mecánica vectorial para ingenieros: dinámica. McGraw-Hill
Groover, M. (1997). Fundamentos de manufactura moderna. McGraw-Hill
Torrente, O. (2013). Arduino. Curso práctico de formación.Libros RC.
Arduino – Servo https://www.arduino.cc/en/Reference/Servo [Consultado junio 2018]
Cómo funciona la impresión 3D http://atlas3dstudio.com/2016/04/14/como-funciona-la-impresion-
3d/ [Consultado junio 2018]
Impresión 3D paso a paso http://wiki.ikaslab.org/index.php/Impresi%C3%B3n_3D_paso_a_paso/ [Consultado junio 2018]
Módulo Bluetooth HC-06 https://www.prometec.net/bt-hc06/ [Consultado junio 2018]
3Dnatives https://www.3dnatives.com/es/ [Consultado junio 2018]
Arduino. https://www.arduino.cc/ [Consultado junio 2018]
Cura https://ultimaker.com/en/products/ultimaker-cura-software [Consultado junio 2018]
Tinkercad. https://www.tinkercad.com/ [Consultado junio 2018]
Towerpro http://www.towerpro.com.tw/ [Consultado junio 2018]
RepRap. https://reprap.org/ [Consultado junio 2018]
Anexo 1: Código Fuente
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
99 Escuela Politécnica Superior de Jaén
Anexo 1: Código Fuente
Se incluye a continuación el código fuente completo del sketch de Arduino que implementa el sistema de control del brazo robótico.
#include <EEPROM.h> #include <Servo.h> // Constantes // Asignacion de pines #define LED_MOVE 13 #define LED_MANUAL 11 #define LED_AUTO 10 #define LED_STOP 9 #define IN_MANUAL 8 // Limites calculo pulsos servos (0...180) => (-90...+90) #define MIN_PULSE 600 #define MAX_PULSE 2400 // Limites pulsos servos E,F (0...180) => (-90...+90) #define MIN_PULSE_EF 600 #define MAX_PULSE_EF 2400 // Limites pulsos servos A, B, C, D (15...165) => (-75...+75) #define MIN_PULSE_ABCD 750 #define MAX_PULSE_ABCD 2250 // Retardeo movimientos (periodo PWM) #define MS_DELAY 20 // Incremento microsegundos #define US_STEP 3 // Incremento comandos +/- #define US_DELTA 10 // Variables globales // Variables para controlar los servos Servo servoMotor[6]; // Angulos iniciales 79,84,128,125,90,30 unsigned short inivalue[6]=90,90,90,90,90,90; // Microsegundos actuales unsigned int actvalueus[6]; // Microsegundos destino unsigned int newvalueus[6]; // Buffer puerto serie char Data[16]=""; // Puntero buffer serie int ptrData=0; // Contador de posiciones en secuencias short Secuencia=0; // Ultima posicion ocupada short LastPos; // Modo manual bool Manual; // Modo parada bool Stop=LOW; // Mostrar informacion de angulos bool prnInfo=true; // uSeconds a incrementar int usStep=US_STEP; // Funcion de reset void(* Reset) (void) = 0; // Funcion setup void setup() short i; // Mira si EEPROM esta o no inicializada // Si lo esta lee angulos inicialies y si no los inicializa if(EEPROM.read(0)==0xFF) BorraEEPROM(0,1024); for(i=0;i<6;i++) EEPROM.write(i,inivalue[i]);
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
100 Escuela Politécnica Superior de Jaén
LastPos=0; else for(i=0;i<6;i++) inivalue[i]=EEPROM.read(i); for(i=1;i<100;i++) if(EEPROM.read(8*i)==0xFF) break; LastPos=--i; // Inicializa puero serie a 115200 baudios Serial.begin(115200); // Configura pines de E/S for(i=8;i<=13;i++) pinMode(i,OUTPUT); digitalWrite(i,LOW); pinMode(IN_MANUAL,INPUT_PULLUP); // Detecta modo manual Manual=!digitalRead(IN_MANUAL); if(Manual) usStep=1; digitalWrite(LED_MANUAL,HIGH); Serial.println("Suelte"); while(!digitalRead(IN_MANUAL)) digitalWrite(LED_MANUAL,LOW); // Inicializa servos pinMode(IN_MANUAL,OUTPUT); digitalWrite(IN_MANUAL,LOW); for(i=5;i>=0;i--) newvalueus[i]=CalcuSeconds(i,inivalue[i],0); actvalueus[i]=newvalueus[i]; servoMotor[i].attach(7-i,MIN_PULSE,MAX_PULSE); servoMotor[i].writeMicroseconds(actvalueus[i]); digitalWrite(i+8,HIGH); delay(500); digitalWrite(i+8,LOW); // En modo manual espera hasta que los potenciometros se ajusten al cero if(Manual) WaitZero(); digitalWrite(LED_MANUAL,Manual); digitalWrite(LED_AUTO,!Manual); digitalWrite(LED_STOP,LOW); pinMode(IN_MANUAL,INPUT_PULLUP); printAngulos(); // Para los servos void StopServos() short i; Stop=HIGH; for (i=0;i<6;i++) servoMotor[i].detach(); digitalWrite(LED_STOP,HIGH); digitalWrite(LED_AUTO,LOW); digitalWrite(LED_MANUAL,LOW); // Mueve servos void Move(int servo) short i; if(newvalueus[servo]!=actvalueus[servo]) digitalWrite(LED_MOVE,HIGH); if(newvalueus[servo]>actvalueus[servo])
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
101 Escuela Politécnica Superior de Jaén
actvalueus[servo]+=usStep; if(actvalueus[servo]>newvalueus[servo]) actvalueus[servo]=newvalueus[servo]; else actvalueus[servo]-=usStep; if(actvalueus[servo]<newvalueus[servo]) actvalueus[servo]=newvalueus[servo]; actvalueus[servo]=CalcuSeconds(servo,0,actvalueus[servo]); servoMotor[servo].writeMicroseconds(actvalueus[servo]); for (i=0;i<6;i++) if(newvalueus[i]!=actvalueus[i]) break; if(i==6) printAngulos(); if(Secuencia) if(++Secuencia==100) Secuencia=0; else LoadPos(Secuencia); if(!Secuencia) Serial.println("Final Secuencia"); else Serial.print("Pos: "); Serial.println(Secuencia); digitalWrite(LED_MOVE,LOW); // Espera a que los potenciometros coincidan con el angulo inicial void WaitZero() short i, value, cnt=0; Serial.println("Ajuste ceros"); while (cnt!=6) cnt=0; for(i=0;i<6;i++) if(i<4) value = map(analogRead(5-i),0,1023,15,165); value=180-value; else value = map(analogRead(5-i),0,1023,0,180); if(abs(value-inivalue[i])>2) digital0Write(8+i,HIGH); else digitalWrite(8+i,LOW); cnt++; delay(1000); Serial.println("Ceros ajustados"); // Lee ADC de los potenciometros y calcula tON de los servos void LeeADC(int pot) unsigned short value; if(pot<4) value = map(analogRead(5-pot),0,1023,165,15);
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
102 Escuela Politécnica Superior de Jaén
else value = map(analogRead(5-pot),0,1023,0,180); if(abs(value-servoMotor[pot].read())>=2) newvalueus[pot]=CalcuSeconds(pot,value,0); // Lee puerto serie y procesa comandos void LeeSerial() char ch; short i, servo, value; while (Serial.available()>0) Data[ptrData]=Serial.read(); if(Data[ptrData]!=' ') if(Data[ptrData]==13 || Data[ptrData]==10) Data[ptrData]=0; value=atoi(Data+1); if(!Stop) switch (ptrData) case 1: switch (Data[0]) case 'o': // Abre pinza completamente newvalueus[5]=CalcuSeconds(5,inivalue[5]+90,0); break; case 'm': // Cierra pinza (posicion media) newvalueus[5]=CalcuSeconds(5,inivalue[5],0); break; case 'c': // Cierra pinza completamente newvalueus[5]=CalcuSeconds(5,inivalue[5]-90,0); break; case 'L': // Gira pinza a la izquierda newvalueus[4]=CalcuSeconds(4,inivalue[4]+90,0); break; case 'C': // Gira pinza al centro newvalueus[4]=CalcuSeconds(4,inivalue[4],0); break; case 'R': // Gira pinza al derecha newvalueus[4]=CalcuSeconds(4,inivalue[4]-90,0); break; case '*': // Muestra posicion actual prnInfo=true; printAngulos(); break; case 't': // Muestra incremento entre movimientos case 'T': printusStep(); break; case 'r': // Muestra informacion de calibracion ViewPos(0); break; case 'Z': // Borra informacion de calibracion y posiciones BorraEEPROM(0,1024); break; case 'P': // Salva posicion actual e incrementa posicion if(LastPos<99) SavePos(++LastPos); ClearPos(LastPos+1); Serial.print("Saved: "); Serial.println(LastPos); break; case 'w': // Borra ultima posicion y decrementa posicion if (LastPos>0) ClearPos(LastPos);
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
103 Escuela Politécnica Superior de Jaén
Serial.print("Clear: "); Serial.println(LastPos--); break; case 'W': // Borra todas las posiciones BorraEEPROM(8,1016); break; case 'S': // Empieza secuencia desde el inicio Secuencia=1; LoadPos(Secuencia); if(Secuencia!=0) Serial.print("Pos: "); Serial.println(Secuencia); break; case '#': // Va a cero Secuencia=0; LoadPos(0); break; case '$': // Stop Secuencia=0; for(i=0;i<6;i++) newvalueus[i]=actvalueus[i]; break; case '%': // Off StopServos(); break; case '@': // Reset Reset(); break; break; case 2: // Posiciona angulo a mas o menos 1 grado // A+, A-, B+, B-, C+. C-, D+, D-, E+, E-, F+, F- // Modifica tiempo entre movimientos (Tn, T+, T-) if(Data[0]=='T' || Data[0]=='t') if(value) usStep=value; else value=1; switch(Data[1]) case '+': if(++usStep==10) usStep=9; break; case '-': if(--usStep==0) usStep=1; break; default: value=0; if(value) printusStep(); break; else servo=Data[0]>0x60 ? servo=Data[0]-0x61 : servo=Data[0]-0x41; if(servo>=0 && servo<=5) if(Data[1]=='+' || Data[1]=='-') switch(Data[1]) case '+':
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
104 Escuela Politécnica Superior de Jaén
if(servo==1 || servo==3) newvalueus[servo]-=US_DELTA; else newvalueus[servo]+=US_DELTA; break; case '-': if(servo==1 || servo==3) newvalueus[servo]+=US_DELTA; else newvalueus[servo]-=US_DELTA; break; prnInfo=false; newvalueus[servo]=CalcuSeconds(servo,0,newvalueus[servo]); break; case 3: // Comandos relativos a la gestion de posiciones if(value && value<100) // Salva posicion actual Pxx (01...99) if(Data[0]=='p' || Data[0]=='P') SavePos(value); break; // Recupera y mueve a la posicion Lxx (01...99) if(Data[0]=='l' || Data[0]=='L') LoadPos(value); break; // Muestra posicion Vxx (01...99) if(Data[0]=='v' || Data[0]=='V') ViewPos(value); break; // Borra posicion Wxx (01...99) if(Data[0]=='w' || Data[0]=='W') ClearPos(value); break; // Ejecuta secuencia a partir de posicion Sxx (01...99) if(Data[0]=='s' || Data[0]=='S') Secuencia=value; LoadPos(Secuencia); if(Secuencia!=0) Serial.print("Pos: "); Serial.println(Secuencia); break; case 4: // Posiciona angulo a un valor (-180 ... +180) case 5: // Axxxx, Bxxxx, Cxxxx, Dxxxx, Exxxx, Fxxxx servo=Data[0]>0x60 ? servo=Data[0]-0x61 : servo=Data[0]-0x41; if(servo>=0 && servo<=5) if(value>=-180 && value<=180) value+=90; if(servo==1 || servo==3) value=180-value; value=value+inivalue[servo]-90; prnInfo=true;
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
105 Escuela Politécnica Superior de Jaén
newvalueus[servo]=CalcuSeconds(servo,value,0); break; else // En modo STOP solo admite reset if(ptrData==1 && Data[0]=='@') Reset(); ptrData=0; else ++ptrData&=0xF; // Calcula microsegundos a partir del angulo unsigned int CalcuSeconds(short servo, short angle, int uSeconds) if(!uSeconds) uSeconds=map(angle,0,180,MIN_PULSE,MAX_PULSE); return (servo<4 ? constrain(uSeconds,MIN_PULSE_ABCD,MAX_PULSE_ABCD) : constrain(uSeconds,MIN_PULSE_EF,MAX_PULSE_EF)); // Borra bloque de momoria EEPROM void BorraEEPROM(int ini, int n) int dir; for(dir=ini;dir<ini+n;dir++) EEPROM.write(dir,0xFF); // Guarda angulos de una posicion void SavePos(short pos) int dir; short i; dir=8*pos; for(i=0;i<6;i++) EEPROM.write(dir+i,servoMotor[i].read()); // Recupera angulos de una posicion void LoadPos(short pos) int dir; short i; dir=8*pos; if(EEPROM.read(dir)!=0xFF) for(i=0;i<6;i++) newvalueus[i]=CalcuSeconds(i,EEPROM.read(dir+i),0); else Secuencia=0; // Borra una posicion void ClearPos(short pos) BorraEEPROM(8*pos,8); // Muestra angulos de una posicion por puerto serie void ViewPos(short pos) int dir; short i; dir=8*pos; for(i=0;i<8;i++) Serial.print(EEPROM.read(dir+i)); if(i<7) Serial.print(" "); else Serial.println(""); // Imprime incremento entre movimientos void printusStep()
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
106 Escuela Politécnica Superior de Jaén
Serial.print("T="); Serial.println(usStep); // Imprime angulos actuales void printAngulos() short i; int value; if(!prnInfo) prnInfo=true; return; for(i=0;i<6;i++) value=servoMotor[i].read()-inivalue[i]; if(i==1 || i==3) value=-value; Serial.print(value); if(i<5) Serial.print(" "); else Serial.println(""); // Bucle principal del programa void loop() short i,j; for(i=0;i<6;i++) if(!digitalRead(IN_MANUAL)) if(Manual) Manual=LOW; digitalWrite(LED_MANUAL,Manual); digitalWrite(LED_AUTO,!Manual); for(j=0;j<6;j++) inivalue[j]=servoMotor[j].read(); EEPROM.write(j,inivalue[j]); Serial.println("Valores salvados"); while(!digitalRead(IN_MANUAL)) printAngulos(); else if (!Stop) StopServos(); if(Manual) LeeADC(i); else LeeSerial(); if(!Stop) Move(i); delay(MS_DELAY);
Anexo 2: Lista de materiales
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
109 Escuela Politécnica Superior de Jaén
Anexo 2: Lista de materiales
Se incluye una lista de materiales con precios orientativos. Esta lista no pretende ser un presupuesto del prototipo desarrollado sino una orientación sobre el bajo coste de los componentes utilizados.
Descripción Cantidad Precio
Rollo de filamento PLA de 1.75mm (1 kg) 1 15,00€
Servomotor TowerPro MG90S 2 2,00 €
Servomotor TowerPro MG91 2 4,50 €
Servomotor TowerPro MG92B 2 5,00 €
Fuente de alimentación 5V 2A 1 4,00 €
Placa Arduino UNO r3 1 6,00€
Placa Shield de prototipos 1 6,00€
Placa 6 LED 1 1,00€
Módulo BlueTooth HC-06 1 4,00€
Potenciómetro 10kΩ 6 0,15€
Pulsador 1 0,10€
Tabla 15: Lista de materiales
Anexo 3: Diseño de la caja que aloja el sistema de control
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
113 Escuela Politécnica Superior de Jaén
Anexo 3: Diseño de la caja que aloja el sistema de control
La caja que aloja el sistema de control, es decir, la placa Arduino con el shield de prototipos donde se han montado todos los componentes necesarios, ha sido diseñada con una aplicación online: Tinkercad. Esta aplicación es muy sencilla de manejar pero permite el diseño de piezas de cierta complejidad y está orientada a la impresión de las mismas mediante técnicas FDM. No obstante tiene la limitación de que, aunque entrega los archivos STL necesarios para el software de laminado, no permite la generación de planos acotados.
Se ha elegido esta aplicación para el diseño de la caja para probar sus posibilidades y los resultados han sido bastante satisfactorios.
La caja diseñada consta de una envoltura formada por dos piezas atornillables que encierran la circuitería electrónica. Ambas se han diseñado con perforaciones que permiten el acceso a los conectores y el paso de los cables de los servomotores. También se han dispuesto agujeros para acceder a los potenciómetros y pulsadores de control y se han diseñado las piezas necesarias para manipularlos desde el exterior.
Se presentarán a continuación algunas capturas de pantalla de la caja diseñada mediante esta aplicación.
En la Ilustración 48 y la Ilustración 49 se muestran las dos piezas que conforman la caja. Además de los orificios comentados anteriormente, la parte superior de la caja tiene grabados números y letras que indican el potenciómetro o el pulsador al que corresponde cada botón.
Ilustración 48: Parte inferior de la caja
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
114 Escuela Politécnica Superior de Jaén
Ilustración 49: Parte superior de la caja
Como ya se ha mencionado, los pulsadores y los potenciómetros quedan en el
interior de la caja, por lo que se han diseñado unas piezas que permiten el manejo
de los mismos desde el exterior (Ilustración 50).
Ilustración 50: Botones
A continuación se muestra el montaje de la caja (Ilustración 51), así como
algunas vistas de la caja ya cerrada (Ilustración 52).
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
115 Escuela Politécnica Superior de Jaén
Ilustración 51: Montaje de la caja
Ilustración 52: Caja cerrada
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
116 Escuela Politécnica Superior de Jaén
Por último, se incluye una fotografía de la caja ya terminada y con el sistema de
control conectado al robot (Ilustración 53).
Ilustración 53: Fotografía de la caja
Anexo 4: Galería fotográfica
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
119 Escuela Politécnica Superior de Jaén
Anexo 4: Galería fotográfica
El brazo robótico junto con la caja que aloja el sistema de control han sido fijados a una base de metacrilato para que sea más sencillo su transporte y manejo. Se mostrarán a continuación, a título ilustrativo, algunas fotografías del conjunto terminado.
Ilustración 54: Brazo robótico en la posición de inicio
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
120 Escuela Politécnica Superior de Jaén
Ilustración 55: Proceso de montaje
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
121 Escuela Politécnica Superior de Jaén
Ilustración 56: Vista del sistema electrónico
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
122 Escuela Politécnica Superior de Jaén
Ilustración 57: Brazo robótico en diferentes posiciones
Anexo 5: Planos
Inmaculada Casanova González Diseño de un brazo robótico fabricable mediante impresora 3D
125 Escuela Politécnica Superior de Jaén
Anexo 5: Planos
Se incluyen a continuación los planos de todas las piezas diseñadas. En la Tabla 16 se muestra la lista de todos ellos.
Plano Descripción
1 Plano de conjunto
2 Despiece 1.1 – Base
3 Despiece 1.2 – Hombro
4 Despiece 1.3 – Brazo
5 Despiece 1.4 – Antebrazo
6 Despiece 1.5 – Muñeca A
7 Despiece 1.6 – Muñeca B
8 Despiece 1.7 – Soporte
9 Despiece 1.8 – Pinza A
10 Despiece 1.9 – Pinza B
Tabla 16: Lista de planos
Top Related