SciELO - Scientific Electronic Library Online

 
 número17Analisis ambiental de bolsas de transporte de mercancías en la ciudad de SaltaEstudio de la ganancia de humedad de la yerba mate durante el estacionamiento índice de autoresíndice de materiabúsqueda de artículos
Home Pagelista alfabética de revistas  

Servicios Personalizados

Revista

Articulo

Indicadores

  • No hay articulos citadosCitado por SciELO

Links relacionados

  • No hay articulos similaresSimilares en SciELO

Compartir


Revista de Ciencia y Tecnología

versión On-line ISSN 1851-7587

Rev. cienc. tecnol.  no.17 Posadas ene./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.

REFERENCIAS

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

Creative Commons License Todo el contenido de esta revista, excepto dónde está identificado, está bajo una Licencia Creative Commons