Serviços Personalizados
Journal
Artigo
Indicadores
- Citado por SciELO
Links relacionados
- Similares em SciELO
Compartilhar
Revista de Ciencia y Tecnología
versão On-line ISSN 1851-7587
Rev. cienc. tecnol. no.17 Posadas jan./jun. 2012
INGENIERÍA-TECNOLOGÍA-INFORMÁTICA
Desarrollo de un prototipo de robot móvil para la investigación y aplicación de técnicas de inteligencia artificial
Development of a mobile robot prototype for research and application of artificial intelligence techniques
Marcelo J. Marinelli, Enrique C. De Silvestre
1. Facultad de Ciencias Exactas Químicas y Naturales Universidad Nacional de Misiones. Félix de Azara 1552 - Posadas - Misiones
Marcelo Julio Marinelli1
Profesor de Matemática Física y Cosmografía. Magister en Informática y Computación. Profesor Adjunto a cargo de Informática a Básica de las carrereas de Farmacia y Bioquímica y Electromagnetismo y Electrónica del profesorado en Física. Categoría en el Sistema de Incentivos: III. marcelomarinelli@gmail.com
Enrique Cayetano De Silvestre1
Licenciado en Sistemas de Información. Investigador del programa de Investigación en Computación. desilvestre@yahoo.com.ar
Resumen
Este trabajo propone el desarrollo de un prototipo de robot móvil para la investigación de técnicas de Inteligencia Artificial que permita la navegación autónoma en entornos de prueba tipo indoor.
Se diseña un sistema de percepción compuesto por un arreglo de cinco sonares que proveen una detección del entorno, las señales de los sonares son capturadas por el software embebido que mediante técnicas de Inteligencia Artificial determinan las señales de control del sistema motriz.
También, se presentan los diseños de los sistemas de tracción diferencial, con dos servomotores, y de alimentación con un circuito de estabilización de la tensión de las baterías.
Palabras clave: Robots móviles; Sonares; Navegación autónoma; Inteligencia Artificial.
Abstract
This research work proposes the development of a mobile robot prototype through Artificial Intelligence techniques allowing autonomous navigation in indoor type test environments.
In this research work, a perception system composed of five perception sonars array that provides an environment detection system was designed. The sonar signals were captured by the embedded software which determined the control signals from the drive system by means of Artificial Intelligence techniques. The design of the differential drive systems with two servomotors and a supply circuit to assure batteries voltage stabilization are also presented.
Key words: Mobile robot; Sonars; Autonomous navigation; Artificial Intelligence
INTRODUCCIÓN
Las investigaciones realizadas sobre robots, han evolucionado acorde a los requerimientos de la industria y de ámbitos domésticos. De estas investigaciones surgieron las más variadas implementaciones de robots como ser: robots manipuladores, nano robótica, y robots móviles entre otros. [1], [2], [3].
Los robots de detección de entorno pueden formar parte componente de máquinas herramientas o utilizarse como un sistema autónomo para un sinnúmero de aplicaciones. Éstas pueden ser: sistemas guías en ambientes de escasa o nula visibilidad, asistencia a personas con capacidades diferentes, sistemas de exploración de ambientes peligrosos o de poca accesibilidad, elementos de entretenimiento y educativos, tareas subterráneas y marítimas, exploración planetaria, aplicaciones militares, entre otras. [1], [4].
El objetivo de este trabajo es desarrollar un prototipo de robot móvil que permita la investigación y aplicación de técnicas de inteligencia artificial. Este prototipo está compuesto por los siguientes sistemas: a) percepción del entorno, b) dispositivo de tracción, c) sistema embebido, d) sistema de alimentación. Los cuales forman parte de las componentes esenciales de un agente inteligente. Cabe destacar que el sistema embebido permite implementar el software para investigar distintas técnicas de inteligencia artificial.
Materiales y Métodos
Dispositivos de percepción de entorno
Para el sistema de percepción de entorno, se utilizó un arreglo de cinco sonares tipo MaxSonar-EZl [5]. Figura 1.
Figura 1. MaxSonar-EZ1
El diámetro del sensor es de 15,5 mm, por lo que se considera un radio efectivo de 7,75 mm. El sensor Max-Sonar - EZ1 detecta objetos situados entre 0 m y 6,45 m de distancia, proporcionando los datos obtenidos del cálculo de la distancia con una resolución de 2,54 cm.
El sonar MaxSonar-EZl cuenta con la electrónica necesaria y su propio microcontrolador PIC 16F676. La distancia medida por el sensor es proporcionada en tres formatos de salida:
1. Ancho de pulso (PW).
2. Tensión analógica.
3. Salida digital en serie.
Mediante los tres formatos de salida el sensor Max-Sonar-EZ1 se conecta al sistema de control de manera flexible. Las lecturas del sistema sensorial y control de emisión, se realizan a través de los siguientes pines:
TX: Transmisión serie del TOF, en formato RS232 con tensiones de salida de 0 V a 5 V. Se transmiten 5 bytes por cada medida realizada, empieza con el carácter ASCII "R", continua con tres caracteres ASCII con los dígitos de la medida propiamente dicha y comprendido entre 006 y 254 y finaliza con el código de retorno de carro (0x0D). La velocidad es de 9600 baudios, con 8 bits de datos, sin paridad y un bit de parada.
RX: Este pin se utiliza para controlar externamente el inicio de una nueva lectura. Normalmente se encuentra en estado alto (nivel lógico 1) mediante una resistencia "pull-up" interna. En estas condiciones el sonar realiza mediciones de forma continua transmitiendo la distancia. El sistema se detiene cuando se encuentra en estado bajo y se inicia cuando se envía nivel alto (nivel lógico 1).
AN: Salida analógica de tensión comprendida entre 0 V y 2,55 V que representa el valor de la distancia medida. El factor empleado es de 10 mV/pulgada.
PW: Este pin proporciona un pulso de salida cuya duración determina la distancia medida. La distancia se puede calcular usando el factor de 147 ms/pulgada.
La sincronización del MaxSonar-EZ1 requiere 250 ms luego de conectar la alimentación, a partir de este instante, está listo para aceptar la señal RX y si está a nivel alto se ejecuta un ciclo de calibración que dura 49 ms, seguidamente comienzan los ciclos de trabajo. Estos consisten en realizar una medida y transmitir la distancia por los tres métodos disponibles.
Cada ciclo de trabajo dura 49 ms, si se adiciona el tiempo de calibración, de 49 ms, la primera lectura válida ocurrirá luego de 98 ms ~ 100 ms. Un ciclo comienza chequeando el estado en el pin RX, si se encuentra en nivel bajo se da por finalizado ese ciclo, de lo contrario, se transmite una señal ultrasónica de 42 KHz y la señal en el pin PW se pone en alto, cuando se detecta un obstáculo el pin PW se pone en bajo. Si el tiempo en que esta señal permanece en alto es superior a 37,5 ms significa que no se ha detectado ningún obstáculo. Durante los siguientes 4,7 ms se transmite, en serie, el valor de la medida realizada y el resto del tiempo, hasta llegar a los 49 ms que dura el ciclo, se emplea para ajustar la tensión analógica en el pin AN a un valor indicativo de la medida leída.
El sensor cuenta con excelentes características de radiación gracias a que los lóbulos secundarios han sido eliminados por software, reduciendo así la detección de objetos en las llamadas zonas muertas, obteniendo un ángulo de radiación de 36°. Los resultados de las pruebas se muestran en la Figura 2.
Figura 2. Ángulo de visión del sensor en coordenadas polares
Disposición de sonares
A partir de los análisis previos, sobre la presión acústica de las condiciones del entorno en que se la desplaza el robot y la estrategia para reducir la interferencia de los sonares próximos [6], [7], [8], [9], se utilizó una disposición angularmente equiespaciada de los sonares, todos ellos solidarios a una plataforma paralela al plano de desplazamiento del robot, como se puede observar en la Figura 3.
Figura 3. Disposición de sonares
En lo que respecta a los disparos de los sonares, para la generación de un frente de onda a utilizar para la medición del tiempo de vuelo, se recurre a disparos secuenciales alternados para evitar interferencias entre los sonares adyacentes
Dispositivos de tracción
De los actuadores analizados, se considera apropiado utilizar un servomotor para la implementación de la locomoción del prototipo debido a la buena relación tamaño/ torque que poseen. El servo utilizado es el modelo Hextro-nik HX5010 - Twin Bearing Servo, cuyas características se indican en la Tabla 1 y Figura 4.
Tabla 1. Características del servo Hextronik HX5010
Figura 4. Servo Hextronik HX5010
Para poder obtener giros completos, de estos actuadores, se modificaron los engranajes solidarios al eje principal a efectos de eliminar el fin de carrera y permitir que el eje gire 360°.
Sistema embebido
De la búsqueda bibliográfica, en revistas científicas y otras publicaciones referidas a la robótica [10], surgió la adquisición de una plataforma electrónica de hardware libre denominada Arduino [11]. Esta elección se debió a: bajo costo, tamaño reducido, conexión con PC por medio de puerto USB y variada disponibilidad de interfaces de salida. Esta plataforma permite la creación de prototipos basados en software y hardware flexibles. En particular, se adquirió un modelo denominado Seeeduino Mega con base en el microcontrolador Atmega328 perteneciente a una familia de microcontroladores AVR los cuales están compuestos por tecnología RISC y son fabricados por la empresa Atmel.
Características Técnicas de la placa Seeeduino Mega
Voltaje de funcionamiento: 5 V / 3,3 V
Tensión de entrada: 7 V a 12 V
Digital I/O: 14 (6 de los cuales pueden ser utilizados como salidas PWM)
Entradas analógicas: 8
Corriente de la CC para E / S pines: 40 mA
DC pin a 3,3 V: 500 mA
Memoria Flash: 32 kB (de los cuales 2 KB utilizado por el gestor de arranque)
SRAM: 2 KB EEPROM: 1 KB
Frecuencia: 16 MHz
Dimensiones: 68,75 mm x 53,65 mm
Lenguaje de programación
El lenguaje de programación Arduino se basa en Processing/Wiring y el cargador de arranque (boot loader) el cual se encuentra en la memoria EEPROM de la placa. El mismo está disponible para distintas plataformas, como Windows, Linux o Mac OS X [12].
Es posible utilizar otros lenguajes de programación como: Ruby, Python, Java,Flash (mediante ActionScript), C, C++ y Matlab.
La programación de la placa se realizó mediante un entorno de desarrollo integrado denominado ADE (Arduino Development Environment).
Los programas de Inteligencia Artificial (IA), a investigar, se descargan en la memoria flash del microcontrolador mediante una conexión USB entre la PC y el robot. Este entorno contiene un editor de textos para escribir el código, una barra de herramientas y un menú desplegable que permiten cargar ejemplos a la zona de edición, compilarlos y descargarlos a la placa a través del puerto USB. En la parte inferior de la ventana se halla un área de log de errores donde se pueden observar los errores de compilación.
Entre las diferentes funciones del entorno se destaca el monitor de puerto serie que permite ver, en una ventana de texto y en tiempo real, los datos provenientes de la placa.
Sistema de Alimentación
La energía de alimentación de los servos y la placa Seeeduino Mega proviene desde un conjunto de cuatro baterías recargables de 1,2 V cada una dando un total de 4,8 V. Para evitar que los transitorios provocados por el elevado consumo de los servos, en los instantes de arranque y parada, produzcan el reinicio del sistema, se procedió a separar las alimentaciones, mediante filtros pasivos de capacitores electrolíticos y cerámicos, y agregar un regulador de tensión Zener entre la fuente de energía y la placa, a efectos de eliminar posibles picos de tensión.
Componentes
Figura 5. Circuito de alimentación del Prototipo
Discusión de los Resultados
Se ensamblaron las partes montándolas sobre un gabinete plástico, tal como puede apreciarse en la Figura 6. Para las pruebas de funcionamiento se diseñaron distintas experiencias a fin de evaluar y calibrar los sistemas que componen el prototipo.
Figura 6. Prototipo terminado
Calibración de los sonares
Se realizaron diversas pruebas de los sonares con el robot detenido, con el objetivo de estudiar la estabilidad de las lecturas y el efecto de los rebotes del frente de onda provenientes de sonares próximos. Las mediciones se tomaron con un retardo de 10 ms, entre lecturas consecutivas, a efectos de evitar las ondas provenientes de sonares próximos.
Barrido continuo con paredes alejadas 50 cm de cada sonar impar
En esta prueba, se ubicó el robot en forma perpendicular a una pared frontal dispuesta a 50 cm de distancia del sonar S3 (sonar frontal), se agregaron paredes laterales a la misma distancia y perpendiculares a los sonares laterales S1 y S5 respectivamente. Para realizar las mediciones, se dispuso de un sistema de coordenadas polares sobre un afiche alineado con la línea base de los sonares, como muestra la Figura 7.
Figura 7. Posicionamiento del robot móvil para calibrar los sonares a 50 cm de los obstáculos.
Se realizaron 27 lecturas de cada barrido consecutivo y separados 500 ms entre cada medición. En la Tabla 3 se pueden observar los errores porcentuales resultantes de las mediciones realizadas.
Tabla 2. Lista de componentes del circuito de alimentación
Tabla 3 Resultados de los promedios de mediciones de cada sensor comparado con las distancias reales referidas a la Figura 7.
Las Figuras 8 y 9 muestran las fluctuaciones en mediciones generadas por rebotes de sonares próximos.
Figura 8. Calibración de sonares impares
Figura 9. Calibración de sonares pares
Calibración de los servos
En las experiencias prácticas realizadas en el montaje del prototipo y sus posteriores pruebas de respuestas, ante excitaciones PWM, pudo comprobarse que no existía sincronismo adecuado entre los dos servos y se procedió a calibrar, por software, las velocidades de giro de ambos servos como muestra la Tabla 4.
Tabla 4. Calibración de los servos
CONCLUSIONES
En la Tabla 4 se observan valores, en grados, aplicados a los servos para el sentido y velocidad de giro, lo cual se debe a que la calibración se realiza por software.
Las señales de control de los actuadores provienen de los pines de salidas digitales N° 8 y N° 9 de la placa Seeeduino Mega. El software de control de los actuadores utiliza una biblioteca que convierte las señales de modulación por ancho del pulso en señales de control por ángulos en grados. Por este motivo la calibración de los servos se realiza en grados sexagesimales.
Ajustes en la temporización para ángulos de giros del robot
En esta etapa de ajustes, se procedió a calcular el recorrido en [cm] de un giro completo de un rodamiento, posteriormente se registraron reiteradas muestras del tiempo de giro para velocidad rápida y lenta respectivamente, con el objetivo de obtener el tiempo que tarda cada rodamiento en hacer un giro completo en ambas velocidades. Estos tiempos fueron utilizados para el cálculo del retardo necesario en las funciones de giro utilizadas por el sistema de control inteligente. Se tomaron 10 muestras de 10 giros a velocidad rápida y, 10 muestras de 5 giros a velocidad lenta, arrojando los resultados que obran en la Tabla 5.
Tabla 5. Medición del período de giro de los rodamientos
Se construyó un prototipo de robot móvil con las características necesarias para poder desarrollar investigaciones aplicando técnicas de IA. Se diseñó un sistema de precepción constituido por un arreglo de cinco sonares dispuestos en una plaqueta montada sobre el chasis del robot. Este sistema de percepción se ensayó obteniendo un rango de error inferior al 20 %, comprendido en un margen de tolerancia para prototipos de robots móviles.
Finalmente, se desarrolló un sistema de tracción diferencial con dos servos modificados que proveen el impulso y el direccionamiento al prototipo.
1. Baturone, A., Robòtica Manipuladores y robots móviles, Io Ed. España, Alfaomega & Marcombo, 2001. [ Links ]
2. Brooks R., A robust Layered Control System for a Mobile Robot; IEEE Journal of Robotics and Automation 4, N° 6, p. 14 - 23, 1986. [ Links ]
3. Brox M. Gersnoviez A., Sanchez-Solano S., Baturone I., "Controlador Difuso para problemas de Navegación en presencia de obstáculos fijos", XIII Congreso Español de Tecnologías y Lógica Fuzzy, p. 29-34, 2006.
4. Craig J. J., Introducción a la Robotica, 3° Ed., New Jersey, Prentice Hall, 2006.
5. MaxBotix; Hoja de datos MB1010; Disponible en http:// www.maxbotix.com/documents/MB1010_Datasheet. pdf (verificado en Marzo de 2012). [ Links ]
6. Everet R. H., Sensors for Mobile Robots: Theory and Application, Cambridge MA, A. K. Peters LTD., 1995.
7. David J., Cheeke N., Fundamentals and applications of ultrasonic waves, 1° Ed.; Londres, CRC Press, 2002. [ Links ]
8. Kuc R., A Spatial Sampling Criterion for Sonar Obstacle Detection, IEEE Transactions on Pattern Analysis and Machine Intelligence 12; N° 7; p. 686 - 690, 1990.
9. Kinsler L. E., Frey A. R., Coppens A. B., Sanders J. V., Fundamentals of acoustics, 4° Ed. New York Wiley, 2000. [ Links ]
10. Braunl T., Embedded Robotics: Mobile Robot Design and Applications with Embedded Systems, 3° Ed., Australia, Springer, 2008.
11. Arduino, Plataforma de hardware libre, Disponible en http://www.arduino.cc (verificado en Marzo de 2012). [ Links ]
12. Arduino, Software de Arduino, Disponible en http://arduino.cc/es/Main/Software (verificado en Marzo de 2012).
Recibido: 08/03/2012
Aprobado: 18/05/2012