El objetivo principal del proyecto fue diseñar y construir un robot móvil explorador controlado mediante una computadora portátil Palm. El proyecto involucró tres etapas: 1) el diseño mecánico y construcción del robot móvil, 2) la programación del robot en el software de la Palm para realizar recorridos definidos y aleatorios, y 3) la interacción entre la Palm y el robot utilizando protocolos de comunicación serial para transmitir instrucciones desde la Palm al microcontrolador del robot. El proyecto demostró la viabilidad de utilizar
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:
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