SlideShare une entreprise Scribd logo
1  sur  53
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.
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.
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.
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.
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
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
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
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
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
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
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
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.
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:
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.
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.
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
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)
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)
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]
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.
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.
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.
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.
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
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:
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
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.
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.
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.
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
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
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).
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
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
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
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
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:
Figura 23. Diagrama de Bloques del Programa de la Interfaz
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.
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.
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):
•   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 )
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.
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
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
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);
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.
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.
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
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.
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.
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
[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

Contenu connexe

En vedette (13)

Mejorando Scrum, un Sprint a la vez
Mejorando Scrum, un Sprint a la vezMejorando Scrum, un Sprint a la vez
Mejorando Scrum, un Sprint a la vez
 
Simulateur Robot Khepera (2007) - Français
Simulateur Robot Khepera (2007) - FrançaisSimulateur Robot Khepera (2007) - Français
Simulateur Robot Khepera (2007) - Français
 
i-azul Slide (2009)
i-azul Slide (2009)i-azul Slide (2009)
i-azul Slide (2009)
 
Agile Bug Fixing (Zero Bug Policy)
Agile Bug Fixing (Zero Bug Policy) Agile Bug Fixing (Zero Bug Policy)
Agile Bug Fixing (Zero Bug Policy)
 
Proyecto De Grado (2005) - Español
Proyecto De Grado (2005) - EspañolProyecto De Grado (2005) - Español
Proyecto De Grado (2005) - Español
 
Sensores de luz y movimiento
Sensores de luz y movimientoSensores de luz y movimiento
Sensores de luz y movimiento
 
Proyecto de investigación
Proyecto de investigaciónProyecto de investigación
Proyecto de investigación
 
Planteo de ecuaciones 2 d0
Planteo de ecuaciones 2 d0Planteo de ecuaciones 2 d0
Planteo de ecuaciones 2 d0
 
Formula general
Formula generalFormula general
Formula general
 
JUSTIFICACION Y DELIMITACION DE LA INVESTIGACION
JUSTIFICACION Y DELIMITACION DE LA INVESTIGACIONJUSTIFICACION Y DELIMITACION DE LA INVESTIGACION
JUSTIFICACION Y DELIMITACION DE LA INVESTIGACION
 
Robot Laberinto Raven
Robot Laberinto RavenRobot Laberinto Raven
Robot Laberinto Raven
 
Robot Laberinto Shocobot
Robot Laberinto ShocobotRobot Laberinto Shocobot
Robot Laberinto Shocobot
 
Cómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShareCómo descargar presentaciones desde SlideShare
Cómo descargar presentaciones desde SlideShare
 

Similaire à Proyecto De Grado (2005) - Español

Aplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAndrés Rincón Pacheco
 
presentacion.pdf
presentacion.pdfpresentacion.pdf
presentacion.pdfemygut1
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfceranobrian52
 
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...Hollman Enciso
 
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaPresentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaProyecto Red Eureka
 
Administracion de proyectos de software
Administracion de proyectos de softwareAdministracion de proyectos de software
Administracion de proyectos de softwareRaúl Galván
 
Presentacion del curso de robotica
Presentacion del curso de roboticaPresentacion del curso de robotica
Presentacion del curso de roboticaHugo Alexander
 
Presentacion del curso de robotica
Presentacion del curso de roboticaPresentacion del curso de robotica
Presentacion del curso de roboticaHugo Alexander
 
Programación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosiropProgramación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosiropJose Antonio Velasquez Costa
 
Construyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilConstruyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilSoftware Guru
 
Construyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilConstruyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilSoftware Guru
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesguofee
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesguofee
 
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...SANTIAGO PABLO ALBERTO
 

Similaire à Proyecto De Grado (2005) - Español (20)

Aplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2MEAplicaciones moviles empresariales con Servicios Web y J2ME
Aplicaciones moviles empresariales con Servicios Web y J2ME
 
Técnicas Digitales II
Técnicas Digitales IITécnicas Digitales II
Técnicas Digitales II
 
presentacion.pdf
presentacion.pdfpresentacion.pdf
presentacion.pdf
 
Proyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdfProyecto final facultad de ingeniería.pdf
Proyecto final facultad de ingeniería.pdf
 
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...
IMPLEMENTACÍON DE UN PROTOTIPO DE RED WMAN UTILIZANDO TOPOLOGÍA MESH PARA EL ...
 
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaPresentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
 
Administracion de proyectos de software
Administracion de proyectos de softwareAdministracion de proyectos de software
Administracion de proyectos de software
 
Presentacion del curso de robotica
Presentacion del curso de roboticaPresentacion del curso de robotica
Presentacion del curso de robotica
 
Presentacion del curso de robotica
Presentacion del curso de roboticaPresentacion del curso de robotica
Presentacion del curso de robotica
 
computacion ubicua.PDF
computacion ubicua.PDFcomputacion ubicua.PDF
computacion ubicua.PDF
 
Digitales ii 2012
Digitales ii 2012Digitales ii 2012
Digitales ii 2012
 
Programación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosiropProgramación del robot mitsubishi con el software cosirop
Programación del robot mitsubishi con el software cosirop
 
Completo
CompletoCompleto
Completo
 
Construyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilConstruyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvil
 
Construyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvilConstruyendo la nueva app social, local y móvil
Construyendo la nueva app social, local y móvil
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionales
 
Pfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionalesPfc prototipo electrónico para la valoración de amplificadores operacionales
Pfc prototipo electrónico para la valoración de amplificadores operacionales
 
Robot Arm Mni Kuka
Robot Arm Mni Kuka Robot Arm Mni Kuka
Robot Arm Mni Kuka
 
Señales con arduino y DAC
Señales con arduino y DACSeñales con arduino y DAC
Señales con arduino y DAC
 
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
Microcontroladores: Desarrollo de plataforma interactiva para la demostración...
 

Dernier

Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 

Dernier (20)

Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 

Proyecto De Grado (2005) - Español

  • 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