Instituto Polit�cnico Nacional
Instituto Politécnico Nacional
"La Técnica al Servicio de la Patria"

Boletín No. 100
1o. de enero de 2024




ROBOT INDUSTRIAL IMPRESO A ESCALA EN 3D COMO PLATAFORMA EXPERIMENTAL

 

Valentina Islas González1,      Axel Cid Trejo1,     Gonzalo Solano Ruiz1,      José Luis Vera Campos2,      Eduardo Rubio Carpio2,
Noemi Hernández Oliva, Dra.1


Instituto Politécnico Nacional

1 Centro de Estudios Científicos y Tecnológicos No 2 Miguel Bernard
Máquinas con Sistemas Automatizados

2 Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Azcapotzalco
Ingeniería en Robótica Industrial


Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 

Resumen

El avance de la tecnología de impresión en 3D es de interés en el desarrollo de prototipos diseñados a escala, en este sentido, para el ámbito de la robótica resulta una opción factible, debido a que significa una ventaja económica para el desarrollo de prototipos. En el caso de este trabajo, se posee un robot industrial IRB460 de la marca ABB, impreso a escala 1:7 en 3D. Se encuentra trabajando como una planta de experimentación para el análisis de temas de robótica, utilizando un esquema de arquitectura abierta, el cual es controlado por un microcontrolador Arduino Uno R3. Por consiguiente, las diversas pruebas requeridas para la implementación y la programación de este son descritas en orden de ejecución de cada una. Estas pruebas se desarrollaron sin carga y con carga. Finalmente, se tiene la planta puesta a punto como un esquema en lazo abierto desde el cual se encuentra programada una secuencia de movimientos establecida, sin embargo, a futuro puede desarrollarse la programación de una tarea específica y poner el sistema en lazo cerrado.

 

 

I. Introducción

La robótica es un área en continuo estudio y con constantes cambios, además de que representa parte de la automatización en la industria. Sin embargo, en la contraparte académica es complicado combinar la teoría con la practica debido a que no siempre es posible contar con un robot industrial. En este sentido, el avance de la tecnología en el desarrollo de prototipos a bajo costo y disponibles al alcance de cualquier interesado han tomado relevancia. Algunos trabajos de interés para el desarrollo de este proyecto son las que se presentan a continuación. En (Raudmäe et. al., 2023) se presenta una plataforma integrada por un robot móvil omnidireccional basada en programación con ROS (Robot Operating System) utilizada en la educación y la investigación. En (Parwen et. al., 2022) se diseña y valida un robot trepador vertical para curvas impreso en 3D utilizando ROS. En (Tiansong et. al., 2019) diseñaron un robot de sobremesa a bajo coste basado en la tecnología de impresión 3D. El diseño de una herramienta didáctica para el estudio de la robótica y el control por medio de una aplicación móvil es propuesta en desarrollo a un grupo piloto por (Peñaloza et. al., 2022). Por otro lado, trabajos como los de (Franciscone C., 2018), han tomado mayor visibilidad, puesto que permite de forma libre acceder a los archivos para la impresión 3D del robot industrial IRB460 de (ABB, 2022) a escala 1:7, siendo una opción rápida y efectiva de implementar en cualquier laboratorio, puesto que con esta versión es posible trabajar temas de robótica con múltiples posibilidades. En el presente trabajo se tiene este robot impreso, el cual será puesto a punto a través del desarrollo de pruebas de software de hardware de los diferentes sistemas que lo integran, puesto que para el desarrollo del proyecto de investigación se requiere tener una planta (la cual corresponde con el robot) con arquitectura abierta para poder realizar cambios en la programación y el ajuste de algún componente. La organización del documento es la siguiente: en la sección 2 se describen las características del robot impreso y sus diferentes componentes que lo integran; en la Sección 3 se muestra el desarrollo de la programación en Arduino para la puesta en marcha del robot; en la sección 4 se realizan pruebas de validación y se analizan los resultados obtenidos; finalmente, en la sección 5 se exponen las conclusiones y trabajos a futuro.

II. Descripción del robot impreso en 3D

Como ya se ha mencionado, el robot con el que se cuenta ha sido impreso en 3D con el material PLA, la escala con respecto al real es 1:7, aunque adicionalmente en este caso se requirió imprimir la base versión 2 que esta ajustada para trabajar de forma práctica con el prototipo, ya que el real en este punto es diferente además de que requiere un proceso de cimentación y anclaje al piso. En la Figura 1 se muestra el prototipo.

 

Figura 1. Prototipo de robot impreso en 3D.

 

De esta Figura 1, también se puede apreciar el sistema de movimiento del robot, el cual está integrado por un servomotor para cada uno de los eslabones del robot, en el presente trabajo se utilizaron del modelo MG996R en la base, el eslabón 2 y el eslabón 3, mientras que para la muñeca se tiene uno de modelo SG90, todos estos tienen una frecuencia de trabajo de 50 Hz y una alimentación de 6 VCD, el controlador es una tarjeta Arduino UNO desde la cual se envían las posiciones a las cuales se colocaran cada uno de los eslabones. Sin embargo, se incluyó el driver PCA9685 como etapa de potencia entre el Arduino y los servomotores, dado que la demanda total de corriente de estos supera el valor máximo soportado en los pines del microcontrolador, con este driver además es posible conectar hasta 16 servomotores en la misma placa. Se utilizó una fuente de alimentación de 5 VCD y 10 A la cual proporciona el voltaje suficiente a todo el circuito electrónico.

 

III. Ensamble y programación del robot

Una vez seleccionados los diferentes dispositivos y componentes se procedió al ensamblaje del robot, de igual forma en (Franciscone C., 2018) se tiene un manual descriptivo del procedimiento de forma general, sin embargo, los ajustes y la puesta en marcha depende del usuario final. En la Figura 2 se muestra el diagrama de conexiones realizado en Fritzing, especificando los pines de configuración para el Arduino, el driver y los servomotores.

 

Figura 2. Diagrama de conexiones en Frtitzing.

 

En la Figura 3 se presenta el diagrama de flujo codificado en la IDE de Arduino, de forma general lo que se hizo es lo siguiente:

  • Utiliza la librería "Wire.h" de Arduino para comunicarse a través del protocolo I2C. En la función setup(), se inicia la comunicación I2C y la comunicación serial para mostrar información. La función loop() escanea direcciones de dispositivos I2C (1 a 127) para encontrar dispositivos conectados, mostrando las direcciones en formato hexadecimal. Si no se encuentran dispositivos, se muestra un mensaje indicando la ausencia de dispositivos I2C. Incluye un retardo de 5 segundos al final de cada escaneo para ajustar el tiempo si es necesario.
  • Para poner a los servomotores a 0, se utilizó el pin 9 utilizando la librería "Servo.h". En la función setup(), inicia la comunicación serial y configura el pin 9 como el pin del servo.En la función loop(), mueve el servomotor a 0 grados y hay un retardo de 2 segundos.
  • Después, utilizando una tarjeta de expansión PCA9685 Servo Driver y la librería "Adafruit_PWMServoDriver.h" para controlar varios servomotores. En la función setup(), inicia los servomotores y establece la frecuencia del PWM para los servos. En la función loop(), ejecuta movimientos predefinidos en varios servos conectados a diferentes pines, moviéndolos a ángulos de 0, 90 y 180 grados, con pausas de 2 segundos entre cada movimiento. Utiliza una función personalizada (setServo()) para mapear ángulos a valores de ancho de pulso (duty cycle) y mover los servos a posiciones específicas.

 

Figura 2. Diagrama de flujo del programa desarrollado en la IDE de Arduino.

 

IV. Pruebas de validación y análisis de resultados

Con el objetivo de poner en funcionamiento los servomotores, se instaló la aplicación de Arduino IDE, la cual permite emplear el microcontrolador Arduino UNO, el primer programa codificado consistió en verificar que el servomotor trabajara correctamente y su correspondiente calibración, para la prueba se utilizó una alimentación a 5VCD y el pin 9 se habilito como el correspondiente para él envió de datos, este mismo programa fue empleado para cada uno, estas corresponden con dos aspectos básicos que son la calibración adecuada y las pruebas sin carga. Con la nueva configuración, es decir con el driver PCA9685, fue posible verificar un funcionamiento adecuado para los servomotores sin carga ya que su movimiento es más estable tanto en las pruebas sin carga como con carga. Sin embargo, se tuvieron algunas dificultades debido a que el amperaje no era el suficiente para el valor de corriente total, por lo que, se realizó el cambio de la fuente de alimentación por una con las siguientes características 5 VCD y 10 A, con esto se logró estabilizar cada uno de los servomotores, los cuales se conectaron en los servomotores SG90 de una manera correcta utilizando los pines del driver PCA9685 0,1 y 2. Después, se hizo la prueba para el servomotor MG996R en las mismas condiciones. Quedando como configuración final para las conexiones físicas los siguientes pines del driver 0,3,4 y 7. Finalmente, se procedió a colocar los servomotores en el robot, para realzar las pruebas con carga obteniéndose un movimiento más suave y estable.

V. Conclusiones

Es posible el replicar un robot industrial a escala utilizando la tecnología de impresión 3D y utilizarla como una propuesta de prototipo accesible para cualquier interesado en la robótica, ya que es posible por un lado replicar un modelo conocido y por el otro implementarse como una plataforma de arquitectura abierta en la cual el usuario final pueda reprogramar al robot o inclusive cambiar el controlador, modelo de servomotores, driver. Además, la puesta en marcha del robot puede utilizarse con estudiantes que inician en cursos de robótica básica hasta quienes se encuentran en cursos avanzados dado que tienen a su disposición una plataforma de validación de leyes de control. Finalmente, como trabajo a futuro se tienen múltiples opciones desde cambiar algún dispositivo, cerrar el lazo de control, programar controladores de tipo PID, proponer pruebas del tipo de “Hardware-In-the-Loop”, debido a que no se requiere de la planta real, es decir el robot industrial para realizar toda la experimentación.

Referencias y recursos electrónicos

  1. ABB (2022). IRB 460. Recuperado: enero 2022, de https://new.abb.com/products/robotics/es/robots-industriales/irb-460.

  2. Franciscone, C. (2018). Eezyrobots, eeyzbotarm mk2. Recuperado: febrero 2022, de http://www.eezyrobots.it/eba_mk2.html.

  3. Parween, R., Wen, T. Y., y Elara, M. R. (2022). Design and validation of a 3D printed vertical climbing robot for curved surface.Materials Today: Proceedings. 70 (2022), 666–672.

  4. Peñaloza Mendoza, G. R., García González, M. Ángel, Carreón Silva, L. M., y Campos Hernández, A. (2022). Herramienta didáctica de enseñanza de la programación de sistemas robóticos. Pädi Boletín Científico De Ciencias Básicas E Ingenierías Del ICBI, 10(Especial4), 208-213. https://doi.org/10.29057/icbi.v10iEspecial4.9347

  5. Raudmäe R., Schumann S., Vunder, V., Oidekivi, M., Nigol, M. K., Valner, R., Masnavi, H., Singh, A. K., Aabloo, A., y Kruusamäe, K. (2023). ROBOTONT – Open-source and ROS-supported omnidirectional mobile robot for education and research. HardwareX,14(2023), e00436.

  6. Tiansong, L., Feng, G., y Yilong, Y. (2019). Design of Low-cost Desktop Robot Based on 3D Printing Technology and Open-source Control System. 2019 IEEE 3rd Information Technology, Networking, Electronic and Automation Control Conference (ITNEC), Chengdu, China, 2019, 739-742.