• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,793
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
7

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DISEÑO Y CONSTRUCCIÓN DE UN ROBOT MÓVIL EXPLORADOR, MEDIANTE LA PROGRAMACIÓN DE UNA HANDHELD COMPUTER PALM. DANIEL DOMÍNGUEZ MARÍN. UNIVERSIDAD MILITAR NUEVA GRANADA. FACULTAD DE INGENIERÍA. PROGRAMA DE INGENIERÍA MECATRÓNICA. BOGOTÁ. 2005.
  • 2. DISEÑO Y CONSTRUCCIÓN DE UN ROBOT MÓVIL EXPLORADOR, MEDIANTE LA PROGRAMACIÓN DE UNA HANDHELD COMPUTER PALM. DANIEL DOMÍNGUEZ MARÍN. Trabajo de grado presentado como requisito parcial para optar al título de Ingeniero en Mecatrónica. DIRECTOR: Ing. OSCAR AVILÉS. UNIVERSIDAD MILITAR NUEVA GRANADA. FACULTAD DE INGENIERÍA. PROGRAMA DE INGENIERÍA MECATRÓNICA. BOGOTÁ. 2005.
  • 3. A mis padres; “el Matemático” Darío y “la Física” Mariela, artífices de este gran sueño, con toda mi admiración y cariño. Daniel.
  • 4. AGRADECIMIENTOS El autor desea expresar su más sincero agradecimiento al Dr. Néstor Sepúlveda, decano de la Facultad de Ingeniería de la Universidad Militar Nueva Granada, por su apoyo incondicional en el transcurso de la carrera. De igual manera quiere agradecer de manera muy especial al Ingeniero Oscar Avilés, director del proyecto, por toda su paciencia y confiabilidad en la realización del mismo. A los profesores de la facultad de Ingeniería Mecatrónica, por su aporte de conocimiento y experiencia. A mis amigos, engranaje fundamental de la carrera, quienes siempre me apoyaron en los tiempos difíciles. Finalmente, de manera especial, a mi hermana Lorena, por su soporte técnico en la visualización del proyecto.
  • 5. Nota de aceptación El Trabajo de Grado, titulado “Diseño y Construcción de un robot móvil explorador, mediante la programación de una Handheld Computer Palm”, elaborado por el estudiante Daniel Domínguez Marín, como requisito para optar al titulo de Ingeniero en Mecatrónica, fue aprobado por el Jurado Calificador. _____________________________ Ing. Jorge Aponte Presidente del Jurado _____________________________ Ing. Ricardo Castillo Jurado _____________________________ Ing. Nelson Velasco Jurado Bogotá D.C. Diciembre 7 de 2005
  • 6. TABLA DE CONTENIDO Pág. 1 INTRODUCCIÓN 1. ANTECEDENTES 4 1.1 ROBÓTICA MÓVIL 4 1.2 PALM 6 1.4 INTERFAZ ENTRE PDA Y ROBOTS MÓVILES 7 2. DISEÑO MECÁNICO Y CONSTRUCCIÓN DEL ROBOT MÓVIL 9 2.1 CONSIDERACIONES DE DISEÑO 9 2.2 DISEÑO VIRTUAL 12 2.3 PROTOTIPO REAL 14 3. DISEÑO DE CONTROL, ELECTRÓNICA Y COMUNICACIÓN 17 3.1 CONTROL DEL ROBOT 17 3.2 CONFIGURACIÓN DEL PIC 21 3.3 ETAPA DE CONTROL DE SENSORES 22 3.4 ETAPA DE POTENCIA 24 3.5 COMUNICACIÓN 25 4. PROGRAMACIÓN DE LA PALM 27 4.1 ESTRUCTURA DE LA PROGRAMACIÓN PALM OS 27 4.2 REQUISITOS KIT DE DESARROLLO DE SOFTWARE 28 4.2.1 Palm SDK 28 4.2.2 PRC-Tools 28 4.2.3 PilRC 28 4.2.4 Palm OS Emulator 28 4.3 PROTOCOLOS DE COMUNICACIÓN EN PALM OS 29 4.3.1 Serial Manager 31
  • 7. 4.3.2 Connection Manager 31 4.3.3 Serial Link Protocol 31 4.3.4 Serial Link Manager 31 4.4 SOFWARE DEL ROBOT MÓVIL 32 4.4.1 Programación de las ventanas interactivas 32 4.4.2 Programación de los protocolos de comunicación 34 5. PRUEBAS Y RESULTADOS 35 6. CONCLUSIONES 37 7. RECOMENDACIONES GENERALES 38 REFERENCIAS BIBLIOGRÁFICAS 40 ANEXOS A. Planos Mecánicos B. Planos Electrónicos C. Código Fuente Firmware PIC D. Código Fuente Programas en Palm E. Tabla de Propiedades del Acrílico F. Especificación PIC16F87X G. Especificaciones de Sensores H. Especificación de Motores y Batería I. Especificación de Palm m100
  • 8. LISTA DE TABLAS Pág. Tabla 1. Reglas del robot 19 Tabla 2. Características electro-ópticas de los sensores 22 Tabla 3. Arquitectura de comunicaciones del serial manager 31 Tabla 4. Eventos para interacción de ventanas 33
  • 9. LISTA DE FIGURAS Pág. 1. Robot Uranus desarrollado por la Carnegie Mellon University 5 2. Robot Sojourner desarrollado por la NASA 5 3. Palm Pilot 1000 6 4. Robot Palm de pelea desarrollado por la Penn State Abington University 7 5. Robot Palm de navegación desarrollado por la Penn State Abington University 7 6. Robot Palm de navegación desarrollado por la Carnegie Mellon University 8 7. Locomoción del Robot 9 8. Movimientos de locomoción del robot móvil 11 9. Propuesta diseño funcional en Maya 12 10. Diseño render en Maya 13 11. Diseño en SolidEdge 14 12. Prototipo Real Construido 16 13. Niveles de la arquitectura de control 17 14. Control de velocidad y desplazamiento lateral 18 15. Interacción de elementos del robot móvil 20 16. Diagrama de conexión de configuración del PIC 21 17. Diagrama interno del sensor 23 18. Ubicación y medición de los sensores 23 19. Conexión de sensores al PIC 23 20. Conexión de driver a motores 24 21. Conexión del IC 7805 24
  • 10. 22. Conexión Serial 25 23. Diagrama de Bloques del Programa de la Interfaz 26 24. Palm Os Emulator 29 25. Arquitectura de la comunicación en Palm Os 30 26. Ventanas que contiene el software de robot móvil explorador 32
  • 11. LISTA DE ECUACIONES Pág. Ecuación 1. Modelo cinemático para el robot 10 Ecuación 2. Vector de estado para el robot 10 Ecuación 3. Modelo de seguimiento de postura del robot 18 Ecuación 4. Modelo de seguimiento en el tiempo del robot 18
  • 12. RESUMEN El objetivo principal de este proyecto es el diseño y construcción un robot móvil explorador, mediante la programación de una handheld computer Palm. El proyecto se desarrolló básicamente en tres etapas fundamentales: la primera es la construcción física del robot móvil en conjunto con la electrónica de funcionamiento; la segunda es la programación del robot móvil en el software de la Handheld Computer Palm para realizar dos tipos de recorridos, uno en un ambiente definido y otro en un amiente aleatorio; y el tercero es la interacción entre la Palm y el robot móvil, utilizando protocolos de comunicación seriales para transmitir datos desde el puerto de la Palm, hasta el microcontrolador que recibe las instrucciones. El aporte más significativo que se logra con este proyecto es el hecho de aprovechar las nuevas afinidades en productos que ofrece el mercado tecnológico; en este caso, una Handheld Computer de marca Palm para su interacción con un robot móvil; lo cual demostró la eficiencia en transmisión y recolección de datos móviles, que son las tendencias con mayor aplicación en la actualidad. Así mismo se dejó abierta la posibilidad de mejorar el sistema de comunicación para trabajos de investigación en USB, Bluetooth y wireless para Palm más avanzadas.
  • 13. INTRODUCCIÓN Los robots móviles están experimentando un crecimiento avanzado impulsado por los adelantos en computación, sensores, electrónica y software. Estos nuevos avances responden a la necesidad de un constante desarrollo y novedad en las diversas aplicaciones que tienden a reemplazar el mercado para mejorar funciones en procesamiento de datos, velocidad de transmisión y capacidad de almacenamiento en memoria para una mejor interactividad de los robots móviles con su entorno. Es así, como se encuentran nuevas formas de ordenadores, que están desarrollando toda una nueva industria y comienzan a reemplazar a los PC y Laptops, que en funcionalidad parecen iguales, pero en costo y tamaño son la nueva mejora tecnológica. Estos nuevos ordenadores son conocidos como Handheld Computers o PDA (Personal Digital Assistant), siendo “Palm” la marca más conocida en el mercado; y son computadores de bajo costo, que tienen la capacidad de proveer un amplio rango para aplicaciones de software móvil y juegan un papel importante en el desarrollo de comunicación serial, USB, infrarrojo (IR), radio frecuencia (RF), Bluetooth y wireless. Este proyecto pretende aprovechar todas estas nuevas tendencias en software móvil, protocolos de comunicación serial e interacción de estos PDA, para mejorar las aplicaciones en robótica móvil, llevando así este campo de estudio a un nivel más novedoso, al igual que presentando las nuevas características en programación para software móvil. Los objetivos planteados para el desarrollo del proyecto se plantean a continuación:
  • 14. OBJETIVO GENERAL. Diseñar y construir un robot móvil explorador, mediante la programación de una Handheld Computer Palm. OBJETIVOS ESPECÍFICOS. • Diseñar y construir un robot móvil con sistema de movimiento por ruedas con tracción independiente en cada una. • Programar una Handheld Computer Palm para realizar la interfaz con el robot móvil. • Programar la Handheld Computer Palm con un programa de exploración inteligente e independiente para que el robot móvil realice la exploración en un terreno indefinido. • Predefinir un programa de exploración entre la Handheld Computer Palm y el robot móvil para realizar una tarea determinada. • Diseñar y programar una interfaz interactiva de fácil manejo para el usuario, que permita seleccionar el programa de exploración del robot móvil. El documento aquí presentado en calidad de informe final consta de siete partes, donde se explica detalladamente la estructura de todo el proyecto. En la primera parte se presentan los antecedentes; donde se da una breve reseña de la robótica móvil, la PDA Palm y los prototipos desarrollados de interacción entre PDA y robots, introduciéndonos así en la segunda parte del documento que consta del diseño mecánico del robot; donde se especifican las características del robot móvil a diseñar, visualizándolo virtualmente antes de su construcción. La tercera parte consiste en el diseño de control, electrónica y comunicación; donde se describen la configuración del PIC, la comunicación y las etapas de control y potencia.
  • 15. La cuarta parte del documento describe la manera de programar la Palm; donde se especifica detalladamente la forma de programación de un PDA y el tipo de software y emuladores que se necesitan. En la última parte se muestran los resultados obtenidos a manera de experiencia en cuanto a las pruebas del robot en distintas condiciones de entornos en ambientes regulares, analizando así el comportamiento del mismo de manera práctica en visualización real y evasión de obstáculos. Finalmente, en las conclusiones se analizan las mejoras y aportes del proyecto a la robótica y al manejo de la tecnología. Sobre tales enunciados se apoyan las recomendaciones generales que aparecen en el capítulo sexto.
  • 16. 1. ANTECEDENTES 1.1 ROBÓTICA MÓVIL El desarrollo de robots móviles responde a la necesidad de extender el campo de aplicación de la Robótica, restringido inicialmente al alcance de una estructura mecánica anclada en uno de sus extremos. Se trata también de incrementar la autonomía limitando todo lo posible la intervención humana. Desde el punto de vista de la autonomía, los robots móviles tienen como precedentes los dispositivos electromecánicos, tales como los denominados quot;micro-mousequot;, creados desde los años treinta para desarrollar funciones inteligentes como descubrir caminos en laberintos. Estos trabajos de investigación no guardan una relación directa con los vehículos autónomos que comenzaron a aplicarse desde los años sesenta en la industria, siendo guiados por cables bajo el suelo o mediante sensores ópticos para seguir líneas trazadas en la planta. En los años setenta se vuelve a trabajar en el desarrollo de robots móviles dotados de una mayor autonomía. Sin embargo, el desarrollo tecnológico todavía no era el suficiente para lograr la navegación autónoma de forma eficiente. En los años ochenta el incremento espectacular de la capacidad computacional y el desarrollo de nuevos sensores, mecanismos y sistemas de control, permite aumentar la autonomía. En esta década cabe mencionar los desarrollos de robots móviles, tanto para interiores como para navegación exterior. [1] Aquí se trata que el robot tenga la suficiente inteligencia como para reaccionar y tomar decisiones basándose en observaciones de su entorno, sin suponer que este entorno es perfectamente conocido. La autonomía de un robot móvil se basa en el sistema de navegación automática. En estos sistemas se incluyen tareas de planificación, percepción y control. En los robots móviles, el problema de la planificación, en el caso más general, puede descomponerse en planificación
  • 17. global de la misión, de la ruta, de la trayectoria y, finalmente, evitar obstáculos no esperados. [1, 2] Existen numerosos métodos de planificación de caminos para robots móviles que se basan en hipótesis simplificadoras; entorno conocido y estático, robots omnidireccionales, con movimiento lento y ejecución perfecta de trayectoria. Además es necesario tener en cuenta que el control del vehículo requiere disponer de medidas de su posición y orientación, a intervalos suficientemente cortos. La técnica más simple consiste en la utilización de la odometría a partir de las medidas suministradas por los sensores situados en los ejes de movimiento, típicamente codificadores ópticos. El sistema de percepción de un robot móvil o vehículo autónomo tiene un triple objetivo; permitir una navegación segura, detectando y localizando obstáculos y situaciones peligrosas en general, modelar el entorno construyendo un mapa o representación de dicho entorno (fundamentalmente geométrica), y estimar la posición del vehículo de forma precisa. [2] De esta forma, es necesario considerar la velocidad del robot, la precisión, el alcance, la posibilidad de interpretación errónea de datos y la propia estructura de la representación del entorno. [3] Figura 1. Robot Uranus desarrollado por la Figura 2. Robot Sojourner desarrollado por la Carnegie Mellon University. NASA. (Foto tomada de (Foto tomada de http://www.ri.cmu.edu/labs/lab_12.html) http://www.mars.jpl.nasa.gov/MPF/rover/sojourner.html)
  • 18. 1.3 PALM El primer PDA de la historia se remonta al NEWTON de Apple Computer, esta era una agenda electrónica que funcionaba con un lápiz stylus con el cual se escribía en pantalla y se reconocía. No tuvo mucho éxito por su costo y tamaño. Luego se lanzaron las PILOT 1000 y PILOT 5000, estas Handheld no poseían BackLight, solo contaban con una memoria de 250kb y 512kb respectivamente. Para este momento las PILOT no fueron muy famosas. Luego se lanzo al mercado la nueva línea de PalmPilot la cual estaba compuesta por los modelos Personal (500kb) y Professional (1mb y TCP/IP), a partir de estas el mundo conoció el verdadero poder de un PDA. [5] Las ventajas primordiales de las PalmPilot en relación a la competencia fue su sistema operativo de muy fácil uso (Palm OS), su pequeño tamaño, su ligero peso, larga duración de baterías, el poder escribir en la pantalla sin necesidad de un teclado y algo muy importante que no tenían las agendas personales, comunicación directa con su computadora personal (HotSync Technology), en el caso de la PalmPilot Professinal esta se sincronizaba directamente con el programa de correo electrónico para luego poder leer y escribir nuevos mensajes, esto era algo que ninguna agenda electrónica en el mercado podía hacer. Por esto en Estados Unidos se vendieron más de un millón de ejemplares. [6] Figura 3. Palm Pilot 1000. (Foto tomada de http://www.palm.com/us/products/palmpilot)
  • 19. 1.4 INTERFAZ ENTRE PDA Y ROBOTS MÓVILES Los proyectos de interfaz entre robots móviles y Handheld Computers comenzaron en 1999 en Penn State Abington University en Estados Unidos, como integración de las áreas de Ingeniería en Computadores y Ciencias de la Información. El proyecto en esa época era limitante según la funcionalidad de la Palm, que contaba con un software PocketC de OrbWorks y comunicación serial. Diversos prototipos se diseñaron como investigación y competencia para el diseño de robots autónomos, basados en tecnología de software móvil. [7] Figura 4. Robot Palm de pelea desarrollado por Figura 5. Robot Palm de navegación la Penn State Abington University. desarrollado por la Penn State Abington (Imagen tomada de AVANZATO. R, “HandHeld University. Computers in the Classroom and Laboratory. (Imagen tomada de AVANZATO. R, “HandHeld Computers in Education Journal”) Computers in the Classroom and Laboratory. Computers in Education Journal”) En el 2001 la empresa Acroname Inc. Robotics, desarrolló un prototipo de robot móvil al cual se le podía acoplar una PalmPilot mediante puerto serial, desarrollando el software conjuntamente con el Instituto de Robótica de la Carnegie Mellon University en Estados Unidos. Los investigadores del Carnegie Mellon University, se basaron en el área de entretenimiento para desarrollar el robot de fácil acople para el control desde la handheld. [8]
  • 20. Figura 6. Robot Palm de navegación desarrollado por la Carnegie Mellon University. (Foto tomada de http://www.cs.cmu.edu/~pprk/) Actualmente, los institutos de robótica de varias Universidades alrededor del mundo, desarrollan software para robots, cuyas aplicaciones dependen generalmente del modelo de Handheld Computer que estén utilizando. La aplicación con mayor énfasis de estudio, que está en estos momentos envolviendo empresas e institutos de robótica de varias universidades del mundo, es la conectividad Bluetooth en dispositivos móviles para robots como el Sony Aibo que esta siendo controlado desde un teléfono celular. [9] Así mismo, se están haciendo pruebas de integración entre dispositivos hardware y PDA para mejorar las capacidades de interacción en proyectos universitarios como oportunidades y experiencias en educación, en las áreas de ingeniería en las Universidades de Estados Unidos.
  • 21. 2. DISEÑO MECÁNICO Y CONSTRUCCIÓN DEL ROBOT MÓVIL 2.1 CONSIDERACIONES DE DISEÑO El sistema de locomoción utilizado para el robot, es de tipo triciclo clásico, aquí la rueda loca delantera sirve para estabilidad y el eje trasero, con dos ruedas permite que estas se muevan libremente para generar la propulsión del móvil. Figura 7. Locomoción del robot. (Imagen tomada de OLLERO A., “ROBÓTICA. Manipuladores y Robots Móviles”, Ed. Alfaomega. ) El robot puede ir en línea recta, girar sobre sí mismo y trazar curvas. Un problema importante es cómo resolver el equilibrio del robot, para lo que hay que buscarle un apoyo adicional a las dos ruedas ya existentes, esto se consigue mediante una rueda de apoyo añadida en el diseño. Otra consideración a hacer para el mismo es cómo conseguir que el robot se mueva recto, para esto, sus ruedas tienen que girar a la misma velocidad. Esto quiere decir que la velocidad debe ser controlada dinámicamente, o sea, debe existir un medio de control para cambiar la velocidad del motor mientras el robot avanza. De esta manera la simplicidad del diseño queda minimizada por la complejidad del sistema de control de la velocidad; no obstante la reducción de la complejidad mecánica es compensada por una mejora en los sistemas de la electrónica y del software, frecuentemente una elección más barata y fiable.
  • 22. El diseño de triciclo genera buena estabilidad y es mecánicamente más simple. En general en este diseño las ruedas direccionales no son motrices, y no es necesario controlar la velocidad de las ruedas para que el robot se mantenga recto. El modelo cinemático del robot se describe de la forma: z´= B( z)u [1]. Modelo cinemático para el robot Siendo z un vector de variables de estado cuyo número de componentes depende de la configuración y u el vector de velocidades de control. Dicha configuración está caracterizada por el par (δm, δd) siendo δm el grado de movilidad, y δd el grado de direccionamiento. El grado de direccionamiento está determinado por el número de ruedas direccionales. Para este caso δd=1. De esta forma, el robot está caracterizado por el par (1, 1). Si se considera la morfología del triciclo, en relación con un sistema global de coordenadas, el robot puede estar en cualquier posición especificado por dos coordenadas (x, y); y apuntando en una dirección especificada por una tercera coordenada, el ángulo Φ. Estos tres grados de libertad (x, y, Φ) nos dan la distancia y el ángulo entre el sistema de coordenadas global, y una referencia local en el robot. Con la consideración anterior, el vector de estado z, para el robot móvil esta dado por la siguiente ecuación: z = [xyφδ d ] T [2]. Vector de estado para el robot Así mismo, se tuvo en cuenta que para el tipo de configuración triciclo, se generan restricciones cinemáticas no-holonómicas, debido a que los grados de libertad están acoplados. Las restricciones no-holonómicas no reducen la dimensión del espacio de configuración del robot, pero si reducen la dimensión del espacio de movimientos diferenciales posibles. Así mismo restringen la geometría de los posibles caminos libres entre dos configuraciones.
  • 23. Para generar el movimiento y giro del robot, se tienen en cuenta las velocidades relativas de los motores, con lo que se aprecian los siguientes tipos de movimientos, donde la flecha grande indica que hay una mayor velocidad: Figura 8. Movimientos de locomoción del robot móvil Para tener en cuenta las implementaciones básicas del diseño se planteó un sistema de tracción independiente en las dos ruedas traseras y que estas fuesen todo terreno, con lo que se aseguró que el robot móvil fuera rápido y fuerte en terrenos planos poco regulares. Como material del chasis del robot móvil se utilizó el acrílico, que es un material que permite reflejar luminosidad, es transparente, es termo formable y permite hacer variación de tonos en vinilo, esto era preciso para manejar el aspecto de contrastes para el exterior del robot.
  • 24. 2.2 DISEÑO VIRTUAL Para la construcción del robot móvil, se tomaron como aspectos importantes las herramientas de diseño tanto CAD como CAE. De esta manera, se desarrolló un modelo virtual, para determinar y evaluar de una manera rápida y confiable todas las características importantes del robot móvil. Como primera instancia, se manejó Maya v.7.0 para visualizar el diseño en general del prototipo, se pudieron diseñar aspectos importantes tales como curvaturas, visualización de colores, delimitación espacial y contornos geométricos del diseño. Básicamente con esta herramienta, se diseñó el robot móvil para que cumpliese con unos aspectos de estética y funcionalidad a la vez, permitiendo así fijar unas pautas para que su construcción fuese más fácil y rápida de realizar. Así pues se estimo el tamaño completo del robot, la ubicación de la Palm y los espacios para ubicar los motores, sensores y demás partes que componen el robot. A continuación se muestran los primeros estudios de diseño del modelo virtual en Maya: Figura 9. Propuesta diseño funcional en Maya Así mismo se hicieron pruebas de render utilizando Maya mental ray, el cual es un motor de rendering basado en algoritmos de trazado de rayos (ray tracing) que
  • 25. básicamente implementa métodos de iluminación basados en el comportamiento real de la luz sobre diferentes materiales como en este caso el acrílico. Figura 10. Diseño render en Maya Este fue el proceso inicial de diseño, donde se intentó visualizar todo el prototipo antes de su construcción. A partir de este diseño, se comenzó la implementación de la construcción y el concepto del modelo a desarrollar. Después de visualizar el prototipo como tal, se manejó SolidEdge v.12.0 en el cual se diseño el modelo en escala real y se dimensionó para la construcción de las piezas que componen el chasis del robot móvil. Estas dimensiones se hicieron de acuerdo a la proporcionalidad de las llantas, de los motores y de las baterías, para conservar un modelo estético. Finalmente se realizaron ajustes de diseño con respecto al primer modelo virtual. (Ver anexo A) A continuación se muestra el modelo virtual; de lo que después será el prototipo real:
  • 26. Figura 10. Diseño en SolidEdge 2.3 PROTOTIPO REAL Después de haber realizado todo el estudio pertinente a la visualización del prototipo a construir, se implemento de una manera rápida y confiable la construcción del chasis del robot móvil. La delimitación espacial y los materiales se hicieron de acuerdo a todos los aspectos virtuales manejados con anterioridad. El principal objetivo en la construcción del robot, era el de dejarlo lo más liviano posible, para evitar problemas en relación peso/potencia, y así implementar un robot que se moviera velozmente en terreno recto uniforme y pudiera dar las vueltas de manera rápida. El robot se construyó en su totalidad en acrílico de 3mm de calibre, lo que garantizó que para su funcionamiento no tuviera problemas en cuanto al peso del material; además los acrílicos pueden estar expuestos a la intemperie por largos períodos de tiempo y no demuestran cambios significativos en color o propiedades
  • 27. físicas. En caso de una colisión del robot con un objeto, la resistencia es de 0.2 a 0.5 Libra-pie/pulgada, lo que es apropiado para evitar deformaciones, su dureza es similar a la de los metales no ferrosos como el cobre y el latón. También tiene buenas propiedades aislantes y resistencia al paso de corriente, lo que evita cortos con el circuito. La temperatura de deflexión varía de 72 a 100 grados centígrados con una temperatura de servicio típica de 80 grados centígrados, lo que permite el proceso de termo formado para la cabina; además permite un acabado de alto brillo o con texturas. (Ver Anexo E). Finalmente es de fácil pulido y maquinado, lo que permitió un trabajo sin mayores complicaciones para la construcción del chasis. Para la escogencia de los motores, se tuvo en cuenta una buena relación de torque, ya que las ruedas se escogieron todo terreno para mejorar el agarre y el avance en lugares lisos con un poco de irregularidad; por lo cual se buscó una implementación de motores livianos y pequeños, para seguir con el objetivo de un vehículo de poco peso, pero de buen torque y velocidad. Dentro de las opciones que ofrecía el mercado, se decidió utilizar motores maxon, cuyo peso es de 4.1g, siendo uno de los más livianos del mercado, pero con buena velocidad y buen torque en relación con el movimiento esperado por el robot. (Ver Anexo H). Teniendo en cuenta también, la relación del peso total del vehículo y la corriente que consumía el mismo, se implementaron 2 baterías recargables de 6V con un peso total de 0.3kg cada una. Estas baterías tienen una autonomía de 1.2AH y se utilizaron básicamente para generar el máximo voltaje permitido para los motores, es decir 12V y permitir ser recargables cada vez que se requieran. (Ver Anexo H). A continuación se muestra el prototipo final del robot móvil explorador con todas las características que se habían implementado con anterioridad en los modelos virtuales.
  • 28. Se puede apreciar que siempre se respetó la estética del mismo y sus características principales como la cabina de la Palm y su curvatura, que se construyeron con base a los planos virtuales desarrollados en SolidEdge, se recrearon de una manera precisa. Figura 11. Prototipo Real Construido El robot cumplió con los objetivos de diseño planteados, su peso no supero 1kg, con lo cual se permitió que el mismo pudiera andar y voltear de manera rápida. La estructura física no cambió mucho en el proceso de construcción. Así pues se facilitó la fabricación mecánica del prototipo con las herramientas de diseño virtual, del concepto a presentar.
  • 29. 3. DISEÑO DE CONTROL, ELECTRÓNICA Y COMUNICACIÓN 3.1 CONTROL DEL ROBOT Para que el robot móvil ejecute movimientos de forma autónoma previamente planificados o de forma apropiada a la percepción del entorno, es necesario establecer un diseño de arquitectura según reacciones, que deben estar en niveles de jerarquía para la realización de las acciones. Figura 13. Niveles de la arquitectura de control El robot móvil debe considerar la percepción de su ambiente mediante sensores y debe responder o actuar mediante sus efectores o motores. Para evaluar la medición del desempeño en el robot, se aplica como principal criterio la velocidad en el cambio de desplazamiento al encontrar un obstáculo y su rápida respuesta al cambiar de camino. Para establecer la dirección y la velocidad del robot se generan los parámetros de programación a los motores, que hacen que el robot tome en cada instante la dirección apropiada y tenga una propulsión diferencial.
  • 30. La posición del vehículo esta dada por x, y; φ es orientación, γ es la curvatura y ν la velocidad. El control de velocidad y desplazamiento lateral se muestra a continuación: Figura 14. Control de velocidad y desplazamiento lateral En el control de movimientos del robot, el objetivo es que ejecute de forma autónoma movimientos previamente planificados o los que permiten reaccionar de forma apropiada a la percepción del entorno. Se considera exclusivamente el control de movimientos en el plano. Este problema puede formularse como la obtención de leyes de control que permitan estabilizar el vehículo sobre un punto de trabajo (condiciones nominales de funcionamiento), anulando el efecto de las perturbaciones (problema de regulación), o bien hacer que el vehículo siga de forma autónoma una trayectoria de referencia. En este segundo caso, se distingue entre seguimiento de postura, en el cual se debe seguir la trayectoria en el tiempo de una postura de referencia, constituida por la posición y la orientación, o bien sólo el seguimiento en el tiempo de una posición de referencia. ρ ref = (x, y, f) ref Ecuación 3 . Modelo de seguimiento de postura del robot ρ ref = (x, y) ref Ecuación 4 . Modelo de seguimiento en el tiempo del robot
  • 31. En general, la arquitectura pone al alcance del programa las percepciones obtenidas mediante los sensores, lo ejecuta y alimenta al motor con las acciones elegidas por el programa conforme estas se van generando. Para esto, se estructuró en la Handheld Computer Palm un programa que permite implementar el mapeo del robot para pasar de percepciones a acciones. Así mismo para la implementación del control del robot móvil, se analizó de manera precisa, las percepciones y acciones que intervendrían, las medidas de desempeño a evaluar y el tipo de ambiente en el que funcionaría el robot móvil. Estos parámetros se muestran a continuación: 1. Percepción y acción: Sensores que perciben y motores que definen desplazamiento dependiendo de la medición de los sensores. 2. Medidas de desempeño: Velocidad en respuesta al cambio de desplazamiento al encontrar un obstáculo. 3. Tipo de ambiente: Entorno de terreno liso uniforme. La tabla de percepción y acción que define el funcionamiento del robot móvil esta dada a continuación: Sensor s0 Sensor s1 Sensor s2 Motor 1 Motor 2 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1R/1 1R/0 1 1 1 1R/1 1R/0 Tabla 1. Reglas del robot
  • 32. En la tabla de reglas anterior, el (1) implica que se esta realizando la acción, es decir, que el sensor esta midiendo o esta en movimiento el motor, mientras que (0), indica que no hay medición de proximidad, ni movimiento en el motor. Así pues, las etapas para el control electrónico del robot móvil, son básicamente la interacción de los sensores con el medio, mediante la detección de objetos; la instrucción de velocidad y desplazamiento dado por el PIC a los motores y la toma de decisiones autónoma del robot mediante la Palm vía serial, que definirá finalmente la trayectoria a seguir del robot móvil. El diagrama de flujo de funcionamiento del proyecto se muestra a continuación: Protocolos de PIC Sensores PALM Comunicación Serial Manager Instrucciones Motores Figura 15. Interacción de elementos del robot móvil Las partes electrónicas que se utilizaron a grandes rasgos fueron; sensores de proximidad Sharp GP2D12 debido a su fácil implementación en la conversión A/D (ver anexo G), moto reductores maxon DC de buen torque, livianos y pequeños y dos baterías recargables (ver anexo H), un driver L293 de buen amperaje, un PIC 16F877 (ver anexo F), un circuito integrado max232 para la conexión serial para la interfaz de comunicación y una Handheld Computer Palm m100. (Ver anexo J).
  • 33. 3.2 CONFIGURACIÓN PIC Para la realización del proyecto, se utilizó un PIC16F877 de Microchip, con el cual se comunica el robot con la Palm vía serial. La configuración del PIC utiliza el conversor A/D para convertir la medición de los datos de los sensores, también se utiliza el módulo de PWM para controlar la velocidad de los motores. Básicamente se controla la comunicación del control de instrucciones de la Handheld, enviando y actualizando los datos de los registros del microcontrolador, y este a la vez, permite la interacción con las reglas definidas en la Palm. Los datos de las instrucciones de la Palm pueden ser enviados tipo char o tipo int. En el primer caso se define el dato de manera hex, y se le envía la longitud del mismo para saber su equivalente y leerlo en el PIC de manera int. Los valores para establecer el control de la Palm y el PIC están dados por los siguientes datos: 2 y 3 motores, 11,12 y 13 sensores, 6, 9 sentido de giro. La conexión de estos módulos se muestra a continuación: Figura 16. Diagrama de conexión de configuración del PIC
  • 34. 3.3 ETAPA DE CONTROL DE SENSORES Los sensores permiten la adquisición de la información necesaria para el control del robot suministrando una medida de distancia, indicando si existe o no un objeto próximo en el rango de recorrido característico del sensor. Para la detección de objetos, se emplearon sensores ópticos en los que el emisor y el receptor se montan sobre el robot detectándose la presencia del objeto por la reflexión de la luz. Los sensores de referencia Sharp GP2D12, son sensores de proximidad que manejan el reflejo de distancia de la luz y los convierten a voltaje, este es un sensor medidor de distancias por infrarrojos que indica mediante una salida analógica la distancia medida. La tensión de salida varía de forma no lineal cuando se detecta un objeto en una distancia entre 10 y 80 cm. La salida esta disponible de forma continua y su valor es actualizado cada 32ms. Esta se conecta a la entrada de un conversor análogo/digital el cual convierte la distancia en un número que puede ser usado por el microprocesador. La salida también puede ser usada directamente en un circuito analógico. Hay que tener en cuenta que la salida no es lineal. El sensor utiliza solo una línea de salida para comunicarse con el PIC este toma un voltaje de referencia que se fija con la medición del sensor y cuando se detecte un objeto cercano, el PIC le dará la instrucción al robot para que cambie de dirección. A continuación se muestran las características principales y el diagrama de funcionamiento de los sensores. Tabla 2. Características electro-ópticas de los sensores
  • 35. Figura 17. Diagrama interno del sensor Así mismo, la ubicación de los sensores en el robot móvil le permite a este tener un rango de medición de aproximadamente 180º. Cada uno de los sensores busca la reflexión de su señal cuando esta se refleja sobre el objeto a casi 80cm de distancia, enviándole mediciones al PIC constantemente, para que este convierta esa señal de reflexión en el voltaje de referencia definido. El proceso de medición se visualiza a continuación: Figura 18. Ubicación y medición de los sensores A continuación se muestra la conexión de los sensores al PIC (ver anexo B): Figura 19. Conexión de sensores al PIC
  • 36. 3.4 ETAPA DE POTENCIA Básicamente, la idea del circuito electrónico, es manejar la corriente de la batería por medio de un driver para que los motores funcionen a su máxima capacidad y el robot pueda ser lo más rápido posible. El chip L293A es un driver diseñado para proporcionar corriente a mecanismos impulsores bidireccionales de hasta 1Amp. con voltajes entre 4,5V y 36V con una capacidad máxima de disipación de potencia de 5W. La configuración del driver, esta hecha para manejar al menos dos motores, cada uno de los cuales esta conectado de forma independiente y permite el desplazamiento del robot. A continuación se muestra el circuito de la etapa de potencia del driver y motores (ver anexo B): Figura 20. Conexión de driver a motores Así mismo al utilizar una batería de 12V, se necesitará regular el voltaje para que el PIC y los sensores reciban solo 5V, por lo que se utilizará integrado 7805, conectado de la siguiente manera (ver anexo B): Figura 21. Conexión del IC 7805
  • 37. 3.5 COMUNICACIÓN Para realizar la interfaz de comunicación entre la Palm y el PIC, se utilizaron protocolos de comunicación RS-232, que designan una norma para el intercambio serie de datos binarios. Para esta conexión, se utiliza un circuito integrado MAX232 que cambia los niveles TTL a los del estándar RS-232 cuando se hace una transmisión, y cambia los niveles RS-232 a TTL cuando se tiene una recepción. El circuito de conexión entre el PIC y el MAX232, se muestra a continuación: Figura 22 . Conexión Serial A continuación se muestran los diagramas de bloques básicos de la programación entre el PIC y la Palm, el firmware de estos (ver anexo C y D) es el programa que representan los siguientes diagramas:
  • 38. Figura 23. Diagrama de Bloques del Programa de la Interfaz
  • 39. 4. PROGRAMACIÓN DE LA PALM 4.1 ESTRUCTURA DE PROGRAMACIÓN PALM OS La programación en Palm OS es básicamente de un hilo sencillo o simple, o de acciones evento y suceso. Solamente un programa corre a la vez. Para construir una aplicación en Palm OS, se deben tener en cuenta las siguientes estructuras de programación: • Cada aplicación tiene una función PilotMain que es el equivalente a la función main en los programas de C. Para inicializar la aplicación, el sistema llama al PilotMain y envía el código de inicio. Este código permite especificar que la función de la aplicación es activa y muestra la interfaz con el usuario. El único propósito de la función PilotMain es recibir el inicio de los códigos y responder a estos. • Palm OS es un evento basado en sistemas de operación, es por esto que las aplicaciones contienen un evento de lazo o loop; así mismo este evento responde únicamente a un inicio normal. • Muchas de las aplicaciones Palm OS contienen una interfaz con el usuario hechas por forms o ventanas de visualización. La interfaz con el usuario puede contener objetos predefinidos o elementos clásicos. • Todas las aplicaciones deben utilizar la memoria y la información de manejo proveídas por el sistema. • Finalmente el implemento en la presentación de aplicaciones se conocerán como funciones de Palm OS, esto consiste en el manejo de varios grupos de funciones que trabajan unidas para implementar una aplicación.
  • 40. Como regla todas las funciones que pertenecen a una aplicación deben tener el mismo prefijo para implementar un trabajo conjunto en ciertos aspectos de funcionalidad. 4.2 REQUISITOS KIT DE DESARROLLO DE SOFTWARE Para compilar las aplicaciones en Palm se necesitan básicamente de las siguientes herramientas de desarrollo: 4.2.1 Palm SDK Palm Source Software Development Kits, provee archivos de cabecera, herramientas, documentación y archivos de extensión. Este software esta disponible online: http://www.palmos.com/dev/dl/dl_sdks/ 4.2.2 PRC-Tools El PRC-Tool es un paquete de colección de herramientas con soporte para programación en C y C++ para Palm OS. Este consiste de compiladores, códigos de ensamble y documentación para aplicaciones ejecutables en archivos de extensión .prc. Esta herramienta de aplicación esta disponible online: http://prc-tools.sourceforge.net/ 4.2.3 PilRC PilRC es un recurso de compilación de Palm. Este toma un archivo de entrada que contiene código fuente de la Palm y lo convierte en un recurso binario como archivo de salida en una extensión .prc. Este recurso esta disponible online: http://sourceforge.net/projects/pilrc/ 4.2.4 Palm OS Emulator El Palm OS Emulator es el sistema operativo más popular para probar aplicaciones de handhelds. Este es un software que emula el hardware disponible en varias versiones de PDA Palm y crea ambientes de prueba virtuales.
  • 41. En particular, este emula dispositivos de 68K y corre imágenes ROM a través de Palm OS 4.x. Para emular en el dispositivo, se necesita la última versión del emulador correspondiente a la Palm real. Las versiones actualizadas del Palm OS Emulator están disponibles online: http://www.palmos.com/dev/tools/emulator/ A continuación se muestran el emulador, de una versión copilot v.3.5. Figura 24. Palm Os Emulator 4.3 PROTOCOLOS DE COMUNICACIÓN EN PALM OS La arquitectura para la comunicación en el sistema operativo Palm Os provee una alta presentación en capacidades de niveles en I/O byte, un confiable transporte de datos, un manejo de conexión y marcación directa a modems. El sistema de puertos para Palm Os, permite usar las siguientes señales externas, que conforman un sistema UART (Universal Asynchronous Receiver and Transmitter):
  • 42. • SG (signal ground) • TD (transmit data) • RD (receive data) • CTS (clear to send) • RTS (request to send) A continuación se explican las diferentes partes que componen el sistema de esta arquitectura, en donde se encuentran los siguientes aspectos: • Serial Manager; describe el hardware del puerto serial • Connection Manager; permite acceder a aplicaciones de conexión del panel de preferencias. • Serial Link Protocol; permite enviar y recibir datos. • Serial Link Manager; implementación del serial link protocol de Palm Os. Figura 25. Arquitectura de la comunicación en Palm Os. (Imagen tomada de http://www.palmos.com )
  • 43. 4.3.1 Serial Manager Es la estructura principal del sistema de comunicaciones en Palm Os, permite la interacción del puerto con protocolos de señales RS232, USB, IR y provee un I/O con byte serial desde y hacia el hardware de manejo, permitiendo así un uso flexible en aplicaciones. Tabla 3. Arquitectura de comunicaciones del serial manager (Tabla tomada de http://www.palmos.com ) 4.3.2 Connection Manager Permite acceder, añadir y borrar perfiles accedidos en el panel de conexión de preferencias. Además permite la negociación y el intercambio de negociación básica con comunicación de software externo. Se pueden conectar aplicaciones seriales, USB, IR, Bluetooth y Wireless. 4.3.3 Serial Link Protocol El SLP provee un eficiente mecanismo de envió y recepción de datos para generar las implementaciones de comunicación. Maneja los mas altos niveles de protocolos, especifica el tipo de aplicación, la fuente, el destino y la transacción de la ID de la información de la estructura integral de su manejo. 4.3.4 Serial Link Manager El serial link manager es la implementación del serial link protocol. Provee los mecanismos de manejo de múltiples conexiones de clientes y el envió y recepción de información de manera síncrona y asíncrona.
  • 44. 4.4 SOFTWARE DEL ROBOT MÓVIL Dentro de los programas en los que se pueden desarrollar aplicaciones de software móvil, se encuentra una amplia gama de distribuidores en el mercado, en los que se puede programar utilizando código de C o C++ como por ejemplo en Codewarrior y BuilderX; o de lenguaje Java como por ejemplo JBuilder o Waba. Básicamente la manera de programar en cualquiera de estos lenguajes es por medio de archivos con extensiones *.cpp (para código de funciones), *.h (para archivos de cabecera), *.rcp y/o *.rsrc (para archivos de forma). Así mismo se deben contar con las utilidades de estructura de programación en Palm Os mencionadas al inicio de este capítulo. 4.4.1 Programación de las ventanas interactivas Para la programación del software del robot móvil, se utilizó el programa de Metrowerks Codewarrior v.9.0, que permite implementar programación en C++. Así mismo se utilizó la herramienta de PilRC Designer para el diseño de la interfaz gráfica del software. Con esta herramienta se manejaron “buttons” para interacción, “forms” para visualización, “Aboutforms” para ayudas, y otras interacciones de interfaz de manejo de utilidad para el manejo del robot móvil. A continuación se muestra un esquema de interacción entre las “forms” y sus funciones principales: Figura 26. Ventanas que contiene el software de robot móvil explorador
  • 45. Las funciones principales de los eventos que permiten la interacción entre las ventanas y el manejo de los mismos se muestra en la siguiente tabla: Sender Event Meaning Action Form frmLoadEvent Form has been loaded FrmSetActiveForm(FrmInitForm(e.data.frmLoad.formID)) manager Form frmOpenEvent Form has been opened FrmDrawForm(...) manager Control ctlSelectEvent User tapped control if (e.data.ctlSelect.controlID == Next) ... if (e.data.ctlSelect.controlID == Exit) ... Control ctlRepeatEvent User tapped control and if (e.data.ctlRepeat.controlID == Form3Minus) maintained stylus on ... control if (e.data.ctlRepeat.controlID == Form3Plus) ... Tabla 3. Eventos para interacción de ventanas Dentro de la programación de las reglas del robot móvil, se relacionan los datos que recibe el PIC de la medición de distancia de los sensores y con base a estos datos se asignaban los valores para la rapidez de giro de los motores, permitiendo así el giro para esquivar los obstáculos. Estas reglas están dadas por el siguiente algoritmo: Inicio if (botón==1) { Pedir dato de sensores Esperar dato Recibir dato de sensores if (regla sensor) { Valor de datos actualizado Enviar dato a motor Esperar dato sensor else if (otras reglas sensor) {… } } } Fin
  • 46. 4.4.2 Programación de protocolos de comunicación serial manager Para realizar la comunicación entre la Palm y el robot, se necesitan básicamente cinco instrucciones que están provistas en el serial manager, estos comandos garantizan la comunicación vía serial, y están dados por las siguientes instrucciones: • Abrir el Puerto; esta instrucción garantiza que el puerto queda habilitado cuando se inicia la aplicación. Prototipo: Err SrmOpen (UInt32 port, UInt32 baud, UInt16 *newPortIdP) Formato: SrmOpen(serPortCradlePort, 9600, &portId); • Enviar Información; esta instrucción permite el envío de los datos por el puerto cuando se activa la bandera que contiene la informacón a ser enviada. Prototipo: UInt32 SrmSend(UInt16 portId,const void *bufP, UInt32 count, Err *errP) Formato: SrmSend(portId, ptrdato, 1 , &err); • Esperar actualización; esta instrucción es útil para esperar a que la información por el puerto sea actualizada después de haber sido enviada. Prototipo: Err SrmSendWait (UInt16 portId) Formato: SrmSendWait (portId); • Recibir Información; esta instrucción permite recibir y visualizar los datos de llegada que manda el PIC hacia la Palm. Prototipo: UInt32 SrmReceive (UInt16 portId, void *rcvBufP,UInt32 count, Int32 timeout, Err *errP) Formato: SrmReceive(portId,ptr,1,10, &err); WinDrawChars(ptr,1, 123, 22); • Cerrar el puerto; cierra el puerto al finalizar la aplicación. SrmClose (portId);
  • 47. 5. PRUEBAS Y RESULTADOS Las pruebas realizadas al robot móvil se hicieron en cuanto al funcionamiento y optimización del mismo en terrenos lisos regulares y abiertos. En esta clase de terrenos, el comportamiento del robot fue excelente, ya que su velocidad de movimiento y reacción al encontrar obstáculos fue lo esperado. Al probarlo en espacios reducidos, no se aprovecha muy bien la ventaja de velocidad máxima que puede desarrollar el robot, pero su medida de desempeño es la esperada igualmente en cuanto a la evasión de obstáculos. En cuanto al realizar las pruebas de la morfología del robot, se pudo apreciar que no se tuvo la posibilidad de posicionar y orientar el robot en cualquier lugar sobre el plano, es decir, sin considerar de donde arranca, si le damos (x, y, Φ), el robot debe poder moverse a esa posición. Sin embargo, hay un problema, para alcanzar estos tres grados de libertad, el robot sólo puede controlar dos parámetros: la dirección, ángulo (a), y la distancia total recorrida, (S). Esto quiere decir que la orientación del robot y su posición están ligadas y para girar tiene que moverse hacia adelante o hacia atrás. El robot no puede ir directamente de una posición y orientación a otra, incluso aún cuando no haya nada en su camino. Para alcanzar una posición y orientación deseadas simultáneamente, el robot tiene que seguir algún camino, posiblemente complejo. Los detalles de ese camino se complican más con la presencia de obstáculos, razón por la cual el desplazamiento en línea recta es difícil; sin embargo, basando el robot en los diseños diferencial o sincronizado puede, al girar sobre sí mismo, desacoplar efectivamente su posición de su orientación, solucionando estos inconvenientes.
  • 48. Al realizar la programación en la Handheld Computer Palm m100, se apreció que debido al modelo y año de fabricación (año 2000) su memoria ram reducida es de 16MB, por lo cual el procesamiento de datos para código fuente extenso, es demasiado lento para procesar, por lo que muchos aspectos de desarrollo de algoritmos fueron omitidos. Si se hubiese contado con una Palm de más actualización como las de hoy en día, de memoria ram de 2GB, se podría deducir que cualquier clase de algoritmo programado hubiese sido de rápida implementación en respuesta. La respuesta en tiempo real para el robot con su ambiente, es excelente, ya que no tiene problemas de colisiones con obstáculos encontrados a último momento, esto demuestra que el algoritmo y las reglas implementadas en el mismo, fueron bien diseñadas. Finalmente el resultado mas notable que tuvo el proyecto, fue el de poder desarrollar una primera plataforma de interacción entre robots y dispositivos móviles, lo que es satisfactorio pensando en lo novedoso de la tecnología utilizada.
  • 49. 6. CONCLUSIONES La interfaz entre los robots móviles y las Handhelds Computers está tomando un crecimiento cada vez mayor, debido a la gran variedad de aplicaciones que ofrecen estos computadores de mano. La mayor aplicabilidad que se le dio a la Palm para este proyecto fue la de utilizar sus protocolos de comunicación serial, para demostrar su eficiencia en el momento de enviar y capturar datos, con lo que se pudo apreciar la ventaja de programar un software móvil que resulta de gran utilidad en la recolección de las mediciones de los sensores en el robot, que además le permitió a éste tener un sistema de memoria mayor a uno operado únicamente con un solo microcontrolador PIC. Así mismo se pudo ver la importancia que tiene el sistema de comunicación entre el PIC y la Palm, con lo que se facilitó y mejoró la aplicación del robot, ya que podía realizar varias funciones con el mismo microcontrolador, sin necesidad de alterar su sistema de hardware cambiando el PIC por uno que realizara una única función específica; esto en cuanto a los dos tipos de ambientes que se le programaron al robot. La programación de software móvil es de gran utilidad, ya que no se necesita tener una toma de corriente para conectar y mantener en funcionamiento a la Palm con el robot móvil, lo que es una desventaja a la hora de comparar la interfaz con un computador PC, que limita el rango de acciones del robot. También se comprobó que dentro de las formas de interacción entre robots, comunicación y computadores PC, las Handheld Computer pueden cumplir el mismo objetivo que los PC tradicionales, sin afectar para nada la integridad de
  • 50. funcionamiento del robot, con lo que la única desventaja hasta el momento es la visualización reducida en su pantalla. Se logró innovar en el mundo de la programación móvil con la interacción de las ventanas y botones en el programa, permitiendo así la interfaz amigable entre el usuario y el software de la Palm, con lo que se adentra a la exploración de nuevos tipos de software para programar más dispositivos móviles como celulares entre otros. En cuanto al procesamiento de datos, se pudo establecer que debido a que las Handheld Computer Palm son relativamente nuevas en uso de aplicaciones a hardware externos, el avance en sus microprocesadores en un futuro, ayudará a realizar de una manera más rápida su operabilidad con otra clase de dispositivos. Los dispositivos móviles permiten mejorar las oportunidades para educación con aparatos personales, lo que será de gran experiencia para las futuras formas de interfaz con robots. Finalmente queda abierta la posibilidad de comunicar las nuevas Palm con conectividad Bluetooth y wireless y sistema operativo Microsoft mobile, con los nuevos microcontroladores PIC-USB, para explorar los avances de la tecnología en estos campos, que básicamente radicarán en la velocidad de transmisión de datos y mejoramiento en visualización de pantalla.
  • 51. 7. RECOMENDACIONES GENERALES Al realizar aplicaciones de comunicación con la Palm, se debe tener en cuenta que el consumo de baterías es mayor que realizando cualquier otra aplicación. Por tal motivo se recomienda que se finalice el programa si no está en uso para evitar el desgaste innecesario de las pilas. Es importante no forzar el evento del pen stylus de la Palm, para evitar cualquier tipo de loop innecesario cuando se esté ejecutando el programa. Así mismo se debe pulsar el botón de exit en el programa del robot para cerrar el puerto, y no salir de la aplicación con algún botón de pantalla predefinido de la Palm. Si ocurre esto, se debe pulsar el botón de reset en la parte posterior de la Palm, para cerrar el puerto y volver a las condiciones iniciales. Finalmente, el autor aclara como discernimiento general, que en el momento de haber finalizado este proyecto, la empresa Palm Inc. y Microsoft Inc. firmaron un acuerdo para proveer el sistema operativo de Microsoft Mobile a las Palm de nueva generación como la Treo, con lo cual el autor desconoce el futuro del sistema operativo Palm Os, o como se programará en los nuevos dispositivos móviles.
  • 52. REFERENCIAS BIBLIOGRÁFICAS [1] OLLERO A., “ROBÓTICA. Manipuladores y Robots Móviles”, Ed. Alfaomega. [2] DELGADO A., “Inteligencia Artificial y Minirobots”, Ed. Ecoe. [3] Links Robotics. Online http://robotica.udl.es/links/robotica.htm [4] O´Reilly Network. Online: http://safari.oreilly.com/?XmlId=1-56592-856-3.htm [5] Palm Inc. Online: http://www.palm.com [6] AVANZATO. R, “HandHeld Computers in the Classroom and Laboratory. Computers in Education Journal”. [7] BEHNKE S., MULLER J., SCHREIBER M. “Using Handheld Computers to Control Humanoid Robots”. [8] Acroname Inc. Online: http://www.acroname.com [9] Sony Aibo. Online: http://www.sony.net/Products/aibo.htm [10] Palm Pilot Robot Kit. Online: http://www.cs.cmu.edu/~pprk/ [11] RUSSELL S., NORVIG P., “Inteligencia Artificial. Un Enfoque Moderno”. Ed. PrenticeHall. [12] Microchip Inc. Online: http://www.microchip.com
  • 53. [13] STADLER W., “Analytical Robotics and Mechatronics”. Ed. McGrawHill. [14] MCKEEHAN J., RHODES N., “Palm OS Programming: The Developer's Guide 2nd Edition”. Ed O'Reilly. [15] Metrowerks, “CodeWarrior for Palm OS”, Metrowerks Corporation. [16] FOSTER L., “Palm Os Programming Bible”, Ed. IDG Books Worlwide. [17] Palm OS® Programmer's Companion. Online: http://www.palmos.com [18] PalmSource, “Palm OS Programmer's Companion. Vol. I y Vol. II”. [19] PalmSource “Palm OS ® Programmer’s API Reference. Palm OS ® 68K SDK”. [20] Palm Tutorial. Online: http://www.canadiancontent.net [21] Borland Inc. Online: http://www.borland.com [22] Microsoft-Palm. Online: http://www.microsoft.com/presspass/press/2005/sep05/09-26MobilityPR.mspx