You are on page 1of 188

Benemrita Universidad Autnoma

de Puebla
Facultad de Ciencias de la Electrnica
Diseo y Construccin de un Robot Mvil
Autnomo contra Incendios
Tesis presentada
por
Jos Miguel Snchez Bautista
para obtener el ttulo de:
Licenciado en Electrnica
Asesor externo:
M.C. W. Fermin Guerrero Snchez
Asesor interno:
M.C. Jaime Cid Monjaraz
Puebla, Pue. Junio de 2003
c 2003
ii
Dedicatorias
Dedico este trabajo a mis padres Jos Miguel Snchez Reyes y Rosa Ma.
Josena Bautista Gonzlez, por el amor, la comprensin y el apoyo incondicional
que siempre me han brindado, pero ante todo por los valores e ideales que me han
inculcado. Los admiro mucho porque siempre ponen todo su empeo para salir
adelante y son un gran ejemplo de responsabilidad y dedicacin.
A mis hermanos Alejandro, Laura y Lalo, por ser mis compaeros y amigos
en el transcurso de nuestras vidas, con su apoyo y sus consejos me ayudaron
a superar los momentos difciles de mi carrera, quienes me han contagiado esa
alegra y energa que los caracteriza (realmente les deseo lo mejor en todo lo que se
propongan).
Dedico tambin este trabajo a mis abuelitos Facundo (Q.E.P.D.), Gabina, Juan
y Chelita por su gran amor y cario que siempre me han brindado.
iii
Agradecimientos
Agradezo a Dios por permitirme terminar mis estudios, gozando con la
presencia de mi familia.
Agradezco la atencin, dedicacin y participacin de mis asesores, M.C.
Jaime Cid Monjaraz y M.C. W. Fermin Guerrero Snchez. Un agradecimiento
especial al Dr. Vladimir Alexandrov por su valiosa asesora en el transcurso de
este trabajo.
Agradezco a mis amigos integrantes del proyecto Robocatepetl (Jos Fermi
Guerrero Castellanos, Gabriel Morales Ramrez y Jos Pedro Snchez Santana)
quienes conjuntamente construimos el robot mvil y compartimos experiencias
muy agradables durante el desarrollo del proyecto.
Agradezco a mis tos quienes me han apoyado a lo largo de mi vida .
Agradezco a todos mis amigos por todas esas horas de convivencia que son
invaluables y por todas las horas de discusin sin las cuales habra sido imposible
el conocimiento.
Agradezco con todo respeto y admiracin a mis maestros quienes
contribuyeron a mi formacin.
Agradezco a la Fundacin Telmex por el apoyo econmico durante mis
estudios universitarios.
iv
Contenido
Resumen visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Captulo 1 Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Robots mviles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Robots autnomos y telerrobtica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Panorama general de la robtica mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.1 Aplicacin de la robtica mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Morfologa de los robots mviles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.1 Ackerman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4.2 Triciclo clsico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.3 Direccionamiento diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5 Arquitectura de robots mviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.6 Organizacin de la tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Captulo 2 Modelacin Matemtica de Robots Mviles . . . . . . . . . . . . . . . 27
2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.1.1 Representacin matemtica de robots mviles. . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 Modelos cinemticos de robots mviles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.1 Hiptesis bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
v
Contents vi
2.2.2 Restricciones cinemticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Ecuaciones de movimiento del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.1 Modelo jacobiano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.3.2 Modelos de diferentes conguraciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.3.3 Estimacin de la posicin y orientacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.4 Control de movimientos de vehculos autnomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.5 Seguimiento de caminos explcitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.6 Seguimiento de caminos empleando mtodos geomtricos . . . . . . . . . . . . . . . . . . . . 54
2.6.1 Seguimiento mediante persecucin pura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7 Aplicacin de la teora de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7.1 Controlabilidad y estabilizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7.2 Seguimiento de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.7.2.1 Trayectorias de referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.7.2.2 Ley de control lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.7.3 Seguimiento de caminos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.7.3.1 Planteamiento del problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.7.3.2 Ley de control lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Captulo 3 Arquitecturas para control de robots . . . . . . . . . . . . . . . . . . . . . . . 74
3.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
3.2 Requerimientos generales de la arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.1 Diseo funcional de la arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2.2 Gestin de ejecucin e implantacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.3 Arquitectura general del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Contents vii
Captulo 4 Hardware del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.2 Mecnica del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
4.2.1 Componentes mecnicos del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2.1.1 Chasis del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.2.1.2 Motor con sistema de engranaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.2.1.3 Ruedas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.2.1.4 Motor elevador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.2.1.5 Ventilador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.3 Electrnica del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.3.1 Conversin Analgico-Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.3.1.1 Seales Analgicas y Seales Digitales . . . . . . . . . . . . . . . . . . . . . . . . . 89
4.3.1.2 Muestreo de seales analgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
4.3.1.3 Cuanticacin de seal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.3.1.4 Convertidor Analgico-Digital del microcontrolador . . . . . . . . . . . . 93
4.3.2 Modulacin de ancho de pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.3.2.1 Control de Velocidad de un Motor DC. . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.3.3 Componentes electrnicos del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.3.3.1 Microcontrolador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.3.3.2 Puente H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
4.3.3.3 Bateras. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3.4 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.3.4.1 Sensor de proximidad de luz infrarroja . . . . . . . . . . . . . . . . . . . . . . . . 103
4.3.4.2 Sensor pyroelctrico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Contents viii
4.3.4.3 Sensores de posicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.3.4.4 Sensor reector (optosensor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Captulo 5 Software del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.1 Navegacin Autnoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.1.2 Teora del giro de radio cero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.1.3 Condiciones del entorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
5.2 Programa principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2.1 Inicializacin de las variables y conguracin del microcontrolador . . . 118
5.3 Algoritmo de navegacin autnoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.3.1 Subrutina para medir distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.3.2 Subrutina seguimiento de pared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.3.3 Subrutina Checar enfrente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.3.4 Subrutina Checar izquierda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4 Algoritmo para encontrar la vela y apagarla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.4.1 Subrutina de servicio de interrupcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.2 Subrutina bsqueda de la vela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.4.3 Subrutina apagar la vela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Captulo 6 Pruebas computacionales y resultados experimentales . . 141
6.1 Simulacin computacional del modelo de direccionamiento diferencial . . . . . . . 141
6.2 Pruebas experimentales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.2.1 Pruebas durante la navegacin autnoma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.2.2 Aplicacin encontrar la vela. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Contents ix
Captulo 7 Conclusiones y recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
7.2 Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Apndice A- Dibujo en tres dimensiones del robot mvil. . . . . . . . . . . . . . 160
Apndice B- Dimensiones del robot mvil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Apndice C- Tabla de conversin de voltaje de sensores IR a
distancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Apndice D- Cdigo del programa principal en lenguaje
ensamblador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Resumen visual
1
Resumen
En los ltimos aos se han logrado grandes avances con los robots mviles
autnomos, desde aspiradoras automticas hasta vehculos de transporte autnomos, la
potencial utilidad de los robots que tienen la habilidad de la navegacin autnoma hace
que la investigacin en esta rea sea un interesente campo. El presente trabajo presenta la
investigacin realizada en el diseo y construccin de un robot mvil autnomo de bajo
costo, se presenta el diseo del programa encargado de la navegacin autnoma y de la
aplicacin que desempea este robot mvil, que consiste en encontrar y apagar el inicio
de un incendio (representado por una vela). El robot mvil es probado bajo techo en una
maqueta de 2.4 por 2.4 metros. Las caractersticas de construccin del robot mvil como
de la maqueta y las condiciones para llevar a cabo la aplicacin se tomarn de las bases
del concurso Fire-Fighting Home Robot que organiza el Trinity College en la ciudad de
Hartford, Connecticut, USA.
2
Captulo 1
Introduccin
1.1 Antecedentes
Hoy en da, existen diversas investigaciones que se han realizado en el rea de robots
moviles. Estos trabajos se han realizado tanto en el extranjero [6] [7] [8] [12] [14] [20] [19]
[22] [23], as como Universidades y Centros de Investigacin Nacionales [11] [25] [28] [29]
[30]. En particular alumnos del Dr. Alexandrov han realizado trabajos relacionados a los
robots mviles en esta Universidad [1] [27], como en el pasado Coloquio de tesis realizado
el 2 de Junio del presente, donde el M. en C. Jos Eligio Moiss Gutirrez A. (Profesor
de la Facultad de Ciencias de la Electrnica) present la Tesis Estrategias de las pruebas
maximin para la calidad de la estabilizacin robusta donde realiz Pruebas de exactitud
de estabilizacin de robots mviles en el Captulo 4 [16].
1.2 Robots mviles
El desarrollo de robots mviles responde a la necesidad de extender el campo de aplicacin
de la Robtica, restringido inicialmente al alcance de una estructura mecnica anclada en
uno de sus extremos. Se trata tambin de incrementar la autonoma limitando todo lo
posible la intervencin humana [26].
3
1.2 Robots mviles 4
Desde el punto de vista de la autonoma, los robots mviles tienen como precedentes
los dispositivos electromecnicos, tales como los denominados micro-mouse, creados
desde los aos treinta para desarrollar funciones inteligentes tales como descubrir caminos
en laberintos. Cabe destacar la tortuga de Walter, presentada en 1948, que poda reaccionar
ante la presencia de obstculos, subir pendientes y, cuando la alimentacin comenzaba a
ser insuciente, dirigirse hacia una posicin de recarga.
Estos trabajos de investigacin no guardan una relacin directa con los vehculos
autnomos que comenzaron a aplicarse desde los aos sesenta en la industria, siendo
guiados por cables bajo el suelo o mediante sensores pticos para seguir lneas trazadas
en la planta. Estas aplicaciones, hoy da comunes en muchos procesos de fabricacin, se
caracterizan por un entorno fuertemente estructurado para facilitar la automatizacin.
En los aos setenta se vuelve a trabajar en el desarrollo de robots mviles dotados
de una mayor autonoma. La mayor parte de las experiencias se desarrollan empleando
plataformas que soportan sistemas de visin. Sin embargo el desarrollo tecnolgico todava
no era el suciente para lograr la navegacin autnoma en forma eciente. En los aos
ochenta el incremento espectacular de la capacidad computacional y el desarrollo de nuevos
sensores, mecanismos y sistemas de control, permite aumentar la autonoma. En esta
dcada cabe mencionar los desarrollos de robots mviles, tanto para interiores como para
navegacin exterior, realizados en la Carnegie Mellon University (Pittsburgh, EE.UU.).
Se trata de que el robot tenga la suciente inteligencia como para reaccionar y tomar
decisiones basndose en observaciones de su entorno, sin suponer que este entorno es
perfectamente conocido.
1.2 Robots mviles 5
La autonoma de un robot mvil se basa en el sistema de navegacin automtica. En
estos sistemas se incluyen tareas de planicacin, percepcin y control.
En los robots mviles, el problema de la planicacin, en el caso ms general, puede
descomponerse en planicacin global de la misin, de la ruta, de la trayectoria nalmente,
evitar obstculos no esperados.
En un robot para interiores, la misin podra consistir en determinar a qu habitacin
hay que desplazarse, mientras que la ruta establecera el camino desde la posicin inicial
a una posicin en la habitacin, deniendo puntos intermedios de paso. El vehculo puede
desviarse de la ruta debido a la acumulacin de imprevisiones mecnica y de control.
Existen numerosos mtodos de planicacin de caminos para robots mviles que se
basan en hiptesis simplicadoras: entorno conocido y esttico, robots omnidireccionales,
con movimiento lento y ejecucin perfecta de trayectoria. En particular, hay muchos
mtodos que buscan caminos libres de obstculos, que minimizan la distancia recorrida
en un entorno modelado mediante polgonos. En otros casos, se modela el espacio libre
tratando de encontrar caminos por el centro del mismo. Para facilitar la bsqueda existen
tcnicas de descomposicin del espacio en celdas, utilizacin de restricciones de varios
niveles de resolucin y bsqueda jerarquizada que permiten hacer ms eciente el proceso
con vistas a su aplicacin en tiempo real.
La planicacin de la trayectoria puede realizarse tambin de forma dinmica,
considerando la posicin actual del vehculo y los puntos intermedios de paso denidos
en la planicacin de la ruta. La trayectoria se corrige debido a acontecimientos no
considerados. La denicin de la trayectoria debe tener en cuenta las caractersticas
1.2 Robots mviles 6
cinemticas del vehculo. Por ejemplo, en vehculos con ruedas y traccin convencional,
interesa denir trayectorias de curvatura continua que puedan ejecutarse con el menor error
posible.
Adems de las caractersticas geomtricas y cinemticas, puede ser necesario tener
en cuenta modelos dinmicos de comportamiento del vehculo contemplando la interaccin
vehculo-terreno. Por otra parte, puede plantearse tambin el problema de la planicacin
de la velocidad teniendo en cuenta las caractersticas del terreno y del camino que se
pretende seguir.
Una vez realizada la planicacin de la trayectoria, es necesario planicar
movimientos concretos y controlar dichos movimientos para mantener al vehculo en la
trayectoria planicada. De esta forma, se plantea el problema del seguimiento de caminos,
que para vehculos con ruedas se concreta en determinar el ngulo de direccin teniendo
en cuenta la posicin y orientacin actual del vehculo con respecto a la trayectoria que
debe seguir. Asimismo, es necesario resolver el problema del control y regulacin de la
velocidad del vehculo.
Convienen mencionar tambin los mtodos que permiten la integracin de la
planicacin con el control del vehculo. Entre stos cabe mencionar el de los campos
potenciales [7] [14] [28]. La idea consiste en determinar la resultante de fuerzas que atraen
el robot hacia el objetivo y que lo repelen de los obstculos.
En cualquier caso, el problema del control automtico preciso de un vehculo con
ruedas puede resultar ms complejo que el de los manipuladores debido a la presencia de
restricciones no holnomas. Los bucles de control se plantean tanto en el espacio de las
1.2 Robots mviles 7
variables articulares como en coordenadas del mundo, y las ecuaciones de movimiento
son complejas, si se considera la interaccin con el terreno. Mientras en manipuladores
es relativamente fcil el clculo y medida de los pares y fuerzas que se ejercen sobre
la estructura mecnica, la determinacin de estos pares en vehculos con ruedas es muy
difcil. En la actualidad se emplean fundamentalmente mtodos geomtricos y modelos
cinemticos simplicados. No obstante, la consideracin de aspectos dinmicos es
necesaria cuando la velocidad es alta.
Ntese tambin que el control del vehculo requiere disponer de medidas de su
posicin y orientacin, a intervalos sucientemente cortos. La tcnica ms simple consiste
en la utilizacin de la odometra a partir de las medidas suministradas por los sensores
situados en los ejes de movimiento, tpicamente codicadores pticos. Sin embargo, la
acumulacin de error puede ser muy grande. Se emplean tambin sistemas de navegacin
inercial incluyendo girscopos y acelermetros, aunque estos sistemas tambin acumulan
error, especialmente en la determinacin de la posicin empleando los acelermetros.
No obstante, la combinacin de las tcnicas odomtricas con la medida de los ngulos
de orientacin puede dar buenos resultados en intervalos de tiempo y distancia viajada
sucientemente pequeos.
La correccin de la inevitable acumulacin de error hace necesario el empleo de
otros sensores. Con este n, en aplicaciones de exteriores, en las que las distancias que
recorre el vehculo autnomo son considerables, se emplean sistemas de posicionamiento
global mediante satlites. Asimismo, la incertidumbre de la posicin se reduce a intervalos
sucientemente grandes empleando el sistema de percepcin. En particular, suelen
1.2 Robots mviles 8
emplearse marcas especiales cuya deteccin permite estimar con precisin la posicin del
robot. En entornos no estructurados, con ausencia de marcas especiales, la estimacin de
la posicin mediante el sistema de percepcin es notablemente ms compleja.
El sistema de percepcin de un robot mvil o vehculo autnomo tiene un triple
objetivo: permitir una navegacin segura, detectando y localizando obstculos y situaciones
peligrosas en general, modelar el entorno construyendo un mapa o representacin de
dicho entorno (fundamentalmente geomtrico), y estimar la posicin del vehculo de forma
precisa. Asimismo, el sistema de percepcin de estos robots puede aplicarse no slo para
navegar sino tambin para aplicaciones tales como el control de un manipulador situado en
el robot.
Para el diseo de estos sistemas de percepcin deben tenerse en cuenta diferentes
criterios, algunos de los cuales son conictivos entre s. De esta forma, es necesario
considerar la velocidad del robot, la precisin, el alcance, la posibilidad de interpretacin
errnea de datos y la propia estructura de la representacin del entorno.
En muchas aplicaciones se requiere tener en cuenta diversas condiciones de
navegacin con requerimientos de percepcin diferentes. De esta forma, puede ser
necesario estimar de forma muy precisa, aunque relativamente lenta, la posicin del robot
y, a la vez, detectar obstculos lo sucientemente rpido, aunque no se necesite una gran
precisin en su localizacin.
Existen tambin arquitecturas en las que el sistema de percepcin se encuentra
integrado en el controlador de forma que, en entornos estructurados, es posible estimar
1.2 Robots mviles 9
de forma muy rpida la posicin para navegar a alta velocidad. Asimismo, se han aplicado
redes neuronales para generar el ngulo de direccin a partir del sistema de percepcin.
Conviene mencionar tambin el inters del empleo de tcnicas de procesamiento en
paralelo para el tratamiento de imgenes en el guiado autnomo de vehculos. Con respecto
a los sensores especcos, adems de las caractersticas de precisin, rango, e inmunidad
a la variacin de condiciones del entorno, es necesario tener en cuenta su robustez ante
vibraciones y otros efectos originados por el vehculo y el entorno, su tamao, consumo,
seguridad de funcionamiento y desgaste.
Las cmaras de vdeo tienen la ventaja de su amplia difusin y precio, su carcter
pasivo (no se emite energa sobre el entorno) y que no es necesario, en principio, el
empleo de dispositivos mecnicos para la captacin de la imagen. Las desventajas son
los requerimientos computacionales, la sensibilidad a las condiciones de iluminacin, y los
problemas de calibracin y abilidad.
La percepcin activa mediante lser es un mtodo alternativo que ha cobrado una
importante signicacin en robots mviles. Se utilizan dispositivos mecnicos y pticos
de barrido en el espacio obtenindose imgenes de distancia y reectancia a las supercies
intersectadas por el haz.
Los sensores de ultrasonido son econmicos y simples para la navegacin. Se basan
en la determinacin del denominado tiempo de vuelo de un pulso de sonido (entre 30
kHz y 1 MHz). Sin embargo, la inuencia de las condiciones ambientales puede ser
signicativa, debiendo corregirse mediante una calibracin adecuada. Por otra parte, la
relacin seal/ruido es normalmente muy inferior a la de los otros sensores, lo que puede
1.2 Robots mviles 10
hacer necesario el empleo de mltiples frecuencias y tcnicas de ltrado y tratamiento de
la incertidumbre de mayor complejidad computacional. Asimismo, la resolucin lateral es
mala, existiendo para evitarlo tcnicas de enfoque mediante lentes acsticas o transmisores
curvos.
1.2.1 Robots autnomos y telerrobtica
De acuerdo con su grado de autonoma, los robots pueden clasicarse en teleoperados, de
funcionamiento repetitivo y autnomos o inteligentes.
En los robots teleoperados las tareas de percepcin del entorno, planicacin y
manipulacin compleja son realizadas por humanos. Es decir, el operador acta en tiempo
real cerrando un bucle de control de alto nivel. Los sistemas evolucionados suministran
al operador realimentacin sensorial del entorno (imgenes, fuerzas, distancias). En
manipulacin se emplean brazos y manos antropomrcos con controladores automticos
que reproducen los movimientos del operador. Alternativamente, el operador mueve una
rplica a escala del manipulador, reproducindose los movimientos en ste.
Estos robots son interesantes para trabajos en una localizacin remota (acceso difcil,
medios contaminados o peligrosos), en tareas difciles de automatizar y en entornos no
estructurados, tales como las que se realizan en la construccin o en el mantenimiento de
lneas elctricas.
Las mayores dicultades radican en las limitaciones del hombre en la capacidad de
procesamiento numrico y precisin y, sobre todo, en el acoplamiento y coordinacin entre
el hombre y robot. En algunas aplicaciones, el retraso de transmisin de informacin
1.2 Robots mviles 11
juega tambin un papel importante y su consideracin resulta fundamental en el diseo
del sistema de control. El diseo de la interfase hombre-mquina suele ser crtico. La
investigacin actual se dirige a hacer recaer en el operador nicamente las tareas que
requieren toma de decisiones en funcin de informacin sensorial, experiencia, y habilidad.
No obstante, existen limitaciones por el ancho de banda de la transmisin y, eventualmente,
por la complejidad de la tarea del operador.
Los robots de funcionamiento repetitivo son la mayor parte de los que se emplean
en cadenas de produccin industrial. Trabajan normalmente en tareas predecibles e
invariantes, con una limitada percepcin del entorno. Son precisos, de alta repetibilidad
y relativamente rpidos; incrementan la productividad ahorrando al hombre trabajos
repetitivos y, eventualmente, muy penosos o incluso peligrosos.
Los robots autnomos o inteligentes son los ms evolucionados desde el punto de
vista del procesamiento de informacin. Son mquinas capaces de percibir, modelar
el entorno, planicar y actuar para alcanzar objetivos sin la intervencin, o con una
intervencin muy pequea, de supervisores humanos. Pueden trabajar en entornos poco
estructurados y dinmicos, realizando acciones en respuesta a contingencias variadas en
dicho entorno.
Durante las ltimas dcadas se han realizado importantes esfuerzos en la aplicacin
de tcnicas de Inteligencia Articial. Se han empleado mtodos simblicos de tratamiento
de la informacin basados en modelos geomtricos del entorno. Las dicultades
surgen por la elevada capacidad de procesamiento requerida para tratar en tiempo real
problemas sucientemente signicativos para muchas aplicaciones y, sobre todo, por
1.2 Robots mviles 12
la propia incertidumbre de la informacin del entorno. De esta forma, se resuelven
problemas basados en un modelo previo del entorno cuyas soluciones slo son vlidas
si el modelo corresponde exactamente a la realidad. La tcnica obvia de reducir esta
incertidumbre consiste en incrementar la informacin que se dispone de dicho entorno
mediante realimentacin sensorial. Existen mtodos que permiten intercalar la formulacin
y ejecucin de planes con la captacin de la informacin necesaria para asegurar que el
modelo que se utiliza para la planicacin sea lo sucientemente able. Las limitaciones
vienen impuestas por el sistema de percepcin y por la propia arquitectura del sistema de
informacin y control del robot.
Desde el punto de vista de la planicacin, existen diferentes arquitecturas diseadas
teniendo en cuenta especicaciones sobre el tiempo que tiene el sistema para responder y
la disponibilidad de informacin potencialmente interesante.
La solucin se sita normalmente entre dos extremos, en uno de los cuales est la
planicacin puramente estratgica. En este caso, se supone que la situacin en la que
va a ejecutarse el plan puede ser predecida de forma sucientemente precisa durante la
planicacin. En el otro extremo se sita la planicacin puramente reactiva en la que se
supone que el entorno es incierto, buscndose la mayor exibilidad posible para reaccionar
en cualquier instante lo sucientemente rpido a las discrepancias entre el modelo actual y
la realidad observada en el entorno.
El problema puede plantearse tambin en trminos de un compromiso entre eciencia
y exibilidad. En efecto, las arquitecturas diseadas para conseguir la mayor exibilidad
ante cualquier eventualidad del entorno son mucho menos ecientes que las que utilizan
1.3 Panorama general de la robtica mvil 13
criterios de decisin basados en modelos del entorno sucientemente precisos sin tener
demasiado en cuenta la posibilidad de generalizar el comportamiento. En este punto
conviene poner de maniesto el inters de las arquitecturas con capacidad de aprendizaje
que combinan la planicacin estratgica, basada en tcnicas de bsqueda, con la
planicacin puramente reactiva.
1.3 Panorama general de la robtica mvil
El campo de la robtica mvil se est convirtiendo en uno de los ms interesantes en los
ltimos tiempos. La navegacin autnoma ha sido, y es, un campo de investigacin muy
activo en las ultimas dcadas, con importantes avances que han permitido la integracin de
robots mviles en el mbito industrial e incluso en el domstico, que si bien se encuentra
en su fase inicial presenta buenas perspectivas. Esto presenta un campo de aplicaciones
bastante amplio en la navegacin de robots mviles autnomos para realizar diferentes
tareas, desde aspiradoras automticas hasta vehculos de transporte autnomos, la potencial
utilidad de los robots que tienen la habilidad de la navegacin autnoma hace que la
investigacin en esta rea sea un interesente campo.
La mayora de la investigacin actual con robots mviles est concentrada en
ambientes de interiores con una estructura uniforme de pasillos y cuartos. Este es el
nico ambiente que ha producido resultados satisfactorios, ya que los ambientes bajo techo
son convenientes para la percepcin de un robot autnomo, la cual est limitada por las
capacidades de sus sensores. La habilidad de navegar con xito en ambiente bajo techo se
ha logrado, en un sentido limitado, pero con el costo de un hardware caro.
1.3 Panorama general de la robtica mvil 14
1.3.1 Aplicacin de la robtica mvil
El uso de robots mviles est justicado en aplicaciones en las que se realizan tareas
molestas o peligrosas para el ser humano. Entre ellas el transporte de material peligroso,
excavaciones mineras, localizacin de minas en campos de guerra o inspeccin de plantas
nucleares son ejemplos donde un robot mvil puede desarrollar su labor y evitar exponer la
vida del ser humano. Otro grupo de aplicaciones donde este tipo de robots desempea
una actuacin importante es el de labores de vigilancia o inspeccin. Asimismo en
aplicaciones de teleoperacin, donde existe un retraso sensible en las comunicaciones,
resulta interesante el uso de vehculos con cierto grado de autonoma, como en la
exploracin espacial.
Una aplicacin especca para un robot mvil, es el control de incendios. Combatir
el fuego ha sido una preocupacin de la humanidad, y hoy en da podemos hacer uso de
los robots para llevar a cabo la aplicacin de controlar y extinguir el fuego. La etapa en la
cual se puede controlar un incendio es al inicio del mismo. Si al inicio de un incendio se
activa un robot mvil que tiene la tarea programada de buscar donde se produjo el fuego
mediante una tcnica de navegacin autnoma, el robot encontrar el inicio del incendio
para nalmente extinguirlo, evitando as que el incendio continue en una etapa en la cual
no se pueda controlar. Esta aplicacin es sumamente importante ya que por el hecho de
no controlar los incendios en una etapa inicial, estos han generado grandes prdidas, tanto
econmicas como humanas en el transcurso de la humanidad. En particular la Direccin
de Bomberos del Estado de Puebla prest sus servicios para controlar 1854 incendios tanto
en casas, fbricas y gasolineras durante el ao 2002.
1.4 Morfologa de los robots mviles 15
La actividad de controlar incendios en la vida real, es sumamente peligrosa y
compleja, por lo cual nuestro propsito es simular este fenmeno de manera controlada e
implementar en un robot mvil autnomo la tarea de desplazarse a travs de una maqueta,
encontrar un incendio y apagarlo. Ya que el objetivo del presente trabajo es el avance
de la robtica mvil y no necesariamente el de las tcnicas de extincin de incendios, el
incendio ser representado por una vela y la tcnica para apagarla ser soplndole aire con
un ventilador, a pesar de que ste no es un mtodo muy prctico para apagar un fuego en
la vida real. Lo que se intenta es simular una situacin real en la que un robot desempea
la funcin de detector y extintor de incendios en un recinto. La vela presenta el foco del
incendio que se ha iniciado en el lugar y que el robot deber encontrar y extinguir. Esta tarea
tiene la intencin de simular la operacin de funcionamiento de un robot en un incendio
en el mundo real, con el objetivo de implementar en un futuro mtodos ms avanzados de
proteccin, lo cual permitir una mayor seguridad de la vida humana.
1.4 Morfologa de los robots mviles
Los robots mviles que son considerados en esta seccin son los que se desplazan
con ruedas. Los robots mviles con ruedas son la solucin ms simple y eciente
para conseguir la movilidad en terrenos sucientemente duros y libres de obstculos,
permitiendo conseguir velocidades relativamente altas en comparacin a otros medios de
movilidad como la locomocin mediante patas.
1.4 Morfologa de los robots mviles 16
Como limitacin ms signicativa cabe mencionar el deslizamiento en la impulsin.
Dependiendo de las caractersticas del terreno pueden presentarse tambin deslizamientos
y vibraciones. La locomocin mediante ruedas es poco eciente en terrenos blandos.
Por otra parte, excepto en conguraciones muy especiales, no es posible alterar
internamente el margen de estabilidad para adaptarse a la conguracin del terreno, lo
que limita de forma importante los caminos aceptables del soporte.
Los robots mviles emplean diferentes tipos de locomocin mediante ruedas que
les coneren caractersticas y propiedades diferentes respecto a la eciencia energtica,
dimensiones, y maniobrabilidad. La mayor maniobrabilidad se consigue en vehculos
omnidireccionales. Un vehculo omnidireccional en el plano es capaz de trasladarse
simultnea e independiente en cada eje del sistema de coordenadas y rotar segn el eje
perpendicular.
A continuacin se comentan brevemente las caractersticas ms signicativas de los
sistemas de locomocin ms comunes en robots mviles.
1.4.1 Ackerman
Es el utilizado en vehculos de cuatro ruedas convencionales. De hecho, los
vehculos robticos para exteriores resultan normalmente de la modicacin de vehculos
convencionales tales como automviles o incluso vehculos ms pesados. Este sistema
de locomocin se ilustra en la gura (1.1). La rueda delantera interior gira un ngulo
ligeramente superior a la exterior (
1
>
0
) para eliminar el deslizamiento. Las
prolongaciones de los ejes de las dos ruedas delanteras intersectan en un punto sobre la
1.4 Morfologa de los robots mviles 17
prolongacin del eje de las ruedas traseras. El lugar de los puntos trazados sobre el suelo
por los centros de los neumticos son circunferencias concntricas con centro el eje de
rotacin P
1
en la gura (1.1). Si no se tienen en cuenta las fuerzas centrfugas, los vectores
de velocidad instantnea son tangentes a estas curvas.
l
b

0
1
Y
X
P
1
Figura 1.1.- Sistema Ackerman
1.4.2 Triciclo clsico
Este sistema de locomocin se ilustra en la gura (1.2). La rueda delantera sirve tanto para
la traccin como para el direccionamiento. El eje trasero, con dos ruedas laterales, es pasivo
y sus ruedas se mueven libremente. La maniobrabilidad es mayor que en la conguracin
anterior pero puede presentar problemas de estabilidad en terrenos difciles. El centro de
gravedad tiende a desplazarse cuando el vehculo se desplaza por una pendiente, causando
la prdida de traccin.
1.4.3 Direccionamiento diferencial
El direccionamiento del robot viene dado por la diferencia de velocidades de las ruedas
laterales [13]. La traccin se consigue tambin con estas mismas ruedas. Adicionalmente
1.4 Morfologa de los robots mviles 18
l
b
Y
X
Figura 1.2.- Locomocin de triciclo clsico
existen una o ms ruedas para soporte. En la gura (1.3) se ilustra el sistema de locomocin
diferencial, esta conguracin es la ms frecuente en robots para interiores.
Figura 1.3.- Locomocin con direccionamiento diferencial en dos ruedas laterales. El sistema emplea cuatro
ruedas de castor no actuadas para soporte de la plataforma.
Las principales caractersticas de un robot diferencial son :
Contar con dos ruedas laterales, las cuales proporcionan el sistema de direc-
cionamiento y la traccin del robot mvil.
Contar con una o ms ruedas de soporte.
Tener 3 grados de libertad.
1.4 Morfologa de los robots mviles 19
Es holonmico, el cual puede ser tratado como un punto sin masa que se puede
mover en cualquier direccin.
Esta conguracin permite al robot girar en su sitio con respecto al eje vertical para
maniobrar en reas congestionadas. Las velocidades de las ruedas son monitoreadas por
encoders pticos sujetos al eje de estructura.
El desplazamiento del robot D a lo largo de una trayectoria est dado por la ecuacin:
D =
D
i
+D
d
2
(1.1)
donde:
D = desplazamiento del robot
D
i
= desplazamiento de la rueda izquierda
D
d
= desplazamiento de la rueda derecha
Similarmente, la velocidad del robot V est dado por la ecuacin:
V =
V
i
+V
d
2
(1.2)
donde:
V = Velocidad del robot
V
i
= Velocidad de la rueda izquierda
V
d
= Velocidad de la rueda derecha
Rerindose a la gura (1.4), el arco D
i
representa una porcin de la circunferencia
de un crculo de radio d +b:
C
i
= 2(d +b) (1.3)
donde:
1.4 Morfologa de los robots mviles 20
d b
D
i
D
d
Figura 1.4.- Arcos D
i
y D
d
son trazados por las ruedas izquierda y derecha respectivamente
C
i
= circunferencia del crculo trazado por la rueda izquierda
d = distancia entre las ruedas
b = radio de giro interno
Adems, la relacin:
D
i
C
i
=

2
implica: C
i
=
2D
i

(1.4)
Combinando las ecuaciones anteriores y despejando :
=
D
i
d +b
(1.5)
Del mismo modo, el arco menor D
d
representa una porcin de la circunferencia de
un crculo de radio b:
C
d
= 2b (1.6)
donde:
C
d
= circunferencia del crculo trazado por la rueda derecha
Y la relacin
D
d
C
d
=

2
implica: C
d
=
2D
d

(1.7)
1.4 Morfologa de los robots mviles 21
Combinando las ecuaciones y resolviendo para b:
b =
D
d

(1.8)
Sustituyendo esta expresin para b en las expresiones anteriores para :
=
D
i
d +
D
r

=
D
i
D
d
d
(1.9)
Note que esta expresin para el cambio de orientacin en el vehculo es una funcin
del desplazamiento de las ruedas de direccin izquierda y derecha y es completamente
independiente de la trayectoria tomada. Sin embargo, la variable d en el denominador,
representa una fuente de error signicativa, debido a la incertidumbre asociada con el punto
efectivo de contacto de las ruedas como se ilustra en la gura (1.5).
d
W W
Figura 1.5.- La incertidumbre en el punto efectivo de contacto entre la llanta y el suelo introduce una
ambigedad 2W en la separacin de las ruedas d.
La suposicin que la distancia de separacin de las ruedas d es solamente de
centro a centro, es inadecuado. Irregularidades no planas en la supercie del suelo
combinadas con las variaciones del desgaste de las huellas de las ruedas y la elasticidad
del deslizamiento del punto efectivo de contacto conllevan a afectar perjudicialmente la
direccin del vehculo.
1.4 Morfologa de los robots mviles 22
Re
Rn
Figura 1.6.- Debido a la conformidad de la llanta, el radio efectivo Re es menor al radio nominal Rn.
Rerindose ahora a la gura (1.6), el desplazamiento de la rueda D
i
es dado por la
ecuacin:
D
i
= R
ei
(1.10)
donde:
= rotacin de la rueda (radianes)
R
ei
= radio efectivo de la rueda izquierda.
Expresando en trminos de conteo de encoders, esto implica:
D
i
=
2N
i
C
t
R
ei
(1.11)
donde:
N
i
= nmero de pulsos del encoder izquierdo
C
t
= pulsos del encoder por cada revolucin de la rueda
Similarmente, para la rueda derecha:
D
d
=
2N
d
C
t
R
er
(1.12)
1.4 Morfologa de los robots mviles 23
donde:
N
d
= nmero de pulsos del encoder derecho
C
t
= pulsos del encoder por cada revolucin de la rueda
R
ed
= radio efectivo de la rueda derecha.
El controlador de direccionamiento intentar hacer que el robot viaje en una lnea
recta asumiendo que N
i
y N
d
son iguales. Ntese, sin embargo, que el radio efectivo de la
rueda es una funcin de la elasticidad de la llanta y el peso del robot y debe ser determinado
empricamente. En realidad, R
ei
puede no ser igual a R
ed
.
O
C
R
R
movimiento
Escaln
C
h
O
D
h
D
m
R-h
h
w
h
R
Figura 1.7.- Desplazamiento diferencial en la distancia horizontal medida.
Ignorando esta situacin momentneamente por motivos de simplicidad,
consideremos ahora un rueda no elstica de radio R navegando por un escaln de altura
h como irregularidad, como se muestra en la gura (1.7). En el ascenso del escaln, la
rueda gira basndose en C al punto O
0
. El encoder de la rueda en tanto mide una rotacin
efectiva correspondiente al movimiento del eje a travs de la trayectoria O-O
0
, para una
distancia percibida D
m
. Sin embargo, la verdadera distancia horizontal viaja es solo D
h
.
1.5 Arquitectura de robots mviles 24
creando un error lineal de magnitud D
m
D
h
. En el caso de una abolladura transversal,
un error similar ser ocasionado al descender del otro lado del punto C
0
mientras la rueda
desciende con una distancia idntica h al regresar al nivel del suelo. Este desplazamiento
diferencial entre la rueda de direccin izquierda y derecha resulta en un cambio instantneo
de direccin (al atravesar al otro lado de la abolladura) igual a:
= 2
D
m
D
h
d
(1.13)
donde
D
m
= medida de la distancia viajada
D
h
= distancia horizontal real viajada
d = distancia de separacin entre las ruedas.
Un efecto similar es observado cuando se cruza una hendidura en la supercie del
suelo, con una cada vertical h
0
determinada por la relacin del dimetro de la rueda con
el ancho de la hendidura. Abolladuras y hendiduras en el suelo pueden causar errores no
sistemticos que adversamente afecten el desempeo del robot.
Otra fuente de error comn son los inevitables resbalones entre la llanta y la supercie
del suelo debido a la concentracin de grasa o aceite, derramamiento de lquidos, una
excesiva aceleracin o desaceleracin o inclusive un impacto del vehculo.
1.5 Arquitectura de robots mviles
Existen diversas arquitecturas de robot mviles, donde las principales son:
1.6 Organizacin de la tesis 25
Arquitectura deliberativa: La cual est basada en el esquema sensa-planea-actua
donde las acciones del robot se basan en un modelo o mapa del ambiente previamente
conocido y mediante el uso de sensores se compara la informacin del ambiente con el
mapa para tomar decisiones.
Arquitectura reactiva: Esta arquitectura est basada en la conexin directa entre
la percepcin y la accin sin la necesidad de un modelo del mundo. Normalmente se
considera una serie de niveles de comportamiento que realizan diferentes comportamientos
en forma paralela como se muestra en la gura (1.8)
Figura 1.8.- Arquitectura basa en comportamiento
En este trabajo los sensores estn conectados a una unidad central de proceso, y en
base a la informacin que estos sensores proporcionan, el comportamiento del robot mvil
cambia para controlar a los actuadores, como se muestra en la gura (1.9). El modo de
funcionamiento de los sensores, actuadores y el procesamiento de la informacin de la
unidad central de proceso se describir en los siguientes captulos.
1.6 Organizacin de la tesis 26
Sensor IR de
distancia
Motores
Unidad Central de Proceso
Encoders
Elevador vent.
Optosensores
Pyroelctrico
S
e
n
s
o
r
e
s
A
c
t
u
a
d
o
r
e
s
Ventilador
Figura 1.9.- Figura conexin entre sensores, unidad central de proceso y actuadores.
1.6 Organizacin de la tesis
La organizacin de la tesis consiste en 6 captulos estructurados de la forma siguiente:
el segundo captulo presenta la modelacin matemtica de una clase de robots mviles
y el anlisis respectivo de sus parmetros cinemticos, el tercer captulo se presenta
el diseo funcional y la implantacin de la arquitectura para control de robots. El
cuarto captulo describe todo lo relacionado con el hardware (mecnica y electrnica) del
robot mvil, mientras que el quinto captulo presenta el software (programa) del robot
mvil. Finalmente el sexto captulo presenta las pruebas computacionales y los resultados
experimentales que se realizaron y en el sptimo captulo se presentan las conclusiones
y las mejoras que se pueden realizar al presente trabajo. En el Apndice A se muestra
un modelado en tres dimensiones en AutoCAD del robot mvil y en el Apndice B se
muestran las dimensiones del mismo modelado. En el Apndice C se encuentra la tabla de
conversin entre el voltaje de los sensores IR y la distancia que miden. Finalmente en el
Apndice D se muestra el cdigo del programa principal en lenguaje ensamblador.
Captulo 2
Modelacin Matemtica de Robots Mviles
2.1 Introduccin
Un robot es un dispositivo verstil por ejemplo, un brazo manipulador, un vehculo con
ruedas o piernas, una plataforma de vuelo libre (o una combinacin de stos) equipado con
actuadores y sensores sobre el control de un sistema de cmputo. Opera en un espacio
de trabajo en el mundo real. Este espacio de trabajo es poblado por objetos fsicos y est
sujeto a las leyes fsicas de la naturaleza [27].
El robot realiza tareas ejecutando movimientos en el espacio de trabajo. As, la
operacin del robot se puede resumir en: planicacin del movimiento para alcanzar la
tarea encomendada.
Una planeacin de movimiento especica un movimiento a ser ejecutado por el
robot. Por ejemplo, una ruta especca una secuencia continua de conguraciones que
el robot podra atravesar hacia la conguracin objetivo. La tarea bsica del controlador de
tiempo real es hacer que el robot ejecute la planicacin del movimiento, siguiendo la ruta
generada.
Supongamos que el plan de movimiento es una ruta libre . La tarea del controlador
es transformar en fuerzas que sern ejecutados por los actuadores del robot. Tpicamente,
esta transformacin es dividida en dos pasos. El primer paso, llamado la generacin de
trayectoria, consiste en decidir sobre el perl de velocidad a travs de la ruta. Ello puede
27
2.1 Introduccin 28
realizarse a prior a la ejecucin del movimiento. El segundo paso, llamado el seguimiento
de la trayectoria, consiste en calcular las fuerzas que sern ejecutadas por los actuadores
en cada tiempo para realizar el movimiento deseado. El proceso de seguimiento de
trayectoria puede usar la ecuacin dinmica del robot -la ecuacin expresa que las fuerzas
aplicadas a los actuadores es igual a la resultante de las fuerzas varias actuando sobre el
robot durante el movimiento, esto es, las fuerzas gravitacional, inercial, centrfuga y de
Coriolis- para computar las fuerzas que tienen que ser liberadas por cada actuador. Debido
a las perturbaciones varias, el sensado es necesario para determinar la desviacin entre el
estado deseado y el estado actual del robot. Mientras el movimiento est inicindose para
ejecutarse, el controlador computa las fuerzas de los actuadores, el cual tiende a eliminar
esta desviacin en una razn, la cual, tpicamente est entre el rango de 10 y 1000 Hz. [18]
Es claro, entonces, que la planicacin del movimiento requiere de un algoritmo
de control de primer nivel, segundo nivel o tercer nivel, dependiendo de la actividad o
misin encomendada al robot. Por lo cual, se debe encontrar el modelo matemtico que
describa el comportamiento del robot mvil en su espacio de trabajo, no sin antes tener un
conocimiento general de cmo podemos representar al robot en un espacio adecuado. En
las siguientes secciones se presentan, las deniciones para la formalizacin de los robots
mviles, y el desarrollo de la obtencin del modelo matemtico de los robots mviles de
cierta clase o caractersticas fsicas.
2.1 Introduccin 29
2.1.1 Representacin matemtica de robots mviles
El proceso de informacin desde el procesamiento de los datos de medicin hasta el control
actuador se denomina control del sistema. Se usar la denominacin sistema dinmico
controlable (SDC) para un objeto mvil, a un sistema de control y elementos terminales
(sensores y actuadores), conectados segn se muestra en la siguiente gura (2.1) [27].

Objeto en Movimiento
Sistema
Sensorial
Sistema de Control
Sistema
Motor
Figura 2.1.- Diagrama a bloques del sistema dinmico controlable
En un SDC tienen lugar dos procesos: el movimiento del objeto controlable y el
proceso de informacin de control. El proceso de informacin incluye la obtencin de
datos de los sistemas de medicin, su procesamiento y la subsecuente formacin de fuerzas
y torques. La relacin descrita entre el movimiento del objeto, las fuerzas y torques de
control se conoce como ciclo de retroalimentacin.
As, la representacin matemtica del Sistema Dinmico Controlable, se da por un
conjunto de ecuaciones diferenciales con inclusiones funcionales de la forma

Y = F(Y, u, t)
z = (Y ) + (t)
u W =

u() KC, |u(t)|

<
s
, t [t
0
, t
1
)

2.1 Introduccin 30
Donde F es una funcin dos veces continuamente diferenciable, y Y es un vector
de n x1 que contiene las coordenadas del sistema, W es un conjunto funcional que abarca
las restricciones del control, donde KC es el conjunto de funciones vectoriales continuas
por tramos,

<
s
es un conjunto convexo cerrado de valores posibles del control de
retroalimentacin, <
s
es el espacio euclideano s-dimensional del control. Como u
s
W,
se tiene que 0 . Aqu z es el dato de medicin, (x) es una funcin de x, que se
determina por el constructor del sistema de medicin y (t) es el error instrumental
1
de
dicho sistema.
Un valor particular del vector de estado es tambin llamado un punto porque
corresponde a un punto en el espacio de estado. Una solucin Y (t) de la ecuacin
usualmente corresponde a una curva en el espacio de estado cuando t vara de cero
a innito. Esta curva es conocida como trayectoria de estado o una trayectoria del
sistema. El vector de estado contiene todas las variables que intervienen en el sistema,
y precisamente la solucin presenta el comportamiento del sistema, esto es, cada entrada
del vector o cada variable del sistema es una funcin propia de su comportamiento. Si la
variable correspondiente nos da informacin de la posicin, podemos gracar y observar la
historia de su comportamiento, para ciertas condicionales iniciales.
De esta forma, se darn algunas deniciones importantes que describen a un robot
mvil como un objeto matemtico.
1
El error instrumental depende particularmente de los sensores que se implementen en el sistema.
2.1 Introduccin 31
Denicin 1: Un robot mvil A es un objeto rigido movindose en un espacio
Euclideano W, llamado el espacio de trabajo, representado como R
N
, con N = 2 o 3.
Sea B
1
, ..., B
q
objetos rgidos jos distribuido en W. Los B
i
0
s
son llamados obstculos.
Denicin 2: Sea el robot A, en cierta posicin y orientacin, descrito como un
subconjunto compacto (cerrado y acotado) de W = R
N
, con N = 2 o 3 y los obstculos
B
1
, ..., B
q
subconjuntos cerrados de W. Sea F
A
y F
W
los sistemas cartesianos de A y W,
respectivamente. F
A
es un sistema en movimiento y F
W
es un sistema jo o inercial. Por
denicin A es rgido, cualquier punto a de A tiene una posicin y orientacin ja con
respecto a F
A
. Pero la posicin de a en W depende de la posicin y orientacin de F
A
relativo a F
W
. De esta manera los B
i
0
s
son tanto rgidos como jos en W, y cualquier punto
de B
i
, para todo i {1,...,q} tiene una posicin ja con respecto a F
W
Denicin 3: Una conguracin q de A es una especicacin de todas las variables
de estado del sistema dinmico, de las cuales podemos conocer la posicin T y orientacin
de F
A
, respecto a F
W
. El espacio de conguracin de A es el espacio C de todas
las conguraciones de A. Una conguracin nica en C, seleccionada arbitrariamente, es
llamada la conguracin de referencia de A. Es denotado por 0.
El subconjunto de W ocupado por A en la conguracin q es denotado por A(q).
Un punto a de A es denotado por a(q) en W cuando A est en la conguracin de q. As,
para cualesquiera dos conguraciones q y q, a(q) y a(q) son el mismo punto en A, pero
en general no coinciden en W. Mas generalmente, si z es una caracterstica geomtrica
(por ejemplo, un punto, un vector, un conjunto de puntos) en A, z(q) denota la misma
caracterstica en W cuando A est en la conguracin q.
2.2 Modelos cinemticos de robots mviles 32
De manera general, los algoritmos de inteligencia articial, que se concentran en
resolver problemas de planicacin, navegacin y control, requieren nicamente que la
conguracin del robot se d solamente mediante la posicin y orientacin en su espacio
de trabajo [21]. Por lo tanto el espacio de conguraciones es de dimensin 3 (dado por la
posicin en x, la posicin en y, y la orientacin).
2.2 Modelos cinemticos de robots mviles
2.2.1 Hiptesis bsicas
Para el desarrollo de los modelos cinemticos de robots mviles se adoptan las siguientes
hiptesis simplicadoras: [26]
El robot se mueve sobre una supercie plana
Los ejes de guiado son perpendiculares al suelo.
Se supone que las ruedas se mueven con rodadura pura, es decir, el deslizamiento es
despreciable en el periodo de control.
El robot no tiene partes exibles.
Durante un perido de tiempo sucientemente pequeo en el que se mantiene
constante la consigna de direccin, el vehculo se mover en un punto al siguiente a
lo largo de un arco de circunferencia.
2.2 Modelos cinemticos de robots mviles 33
El robot se comporta como un slido rgido, de forma que si existen partes mviles
(ruedas de direccin), stas se situarn en la posicin adecuada mediante el sistema
de control.
2.2.2 Restricciones cinemticas
Sea p = [p
1
...p
r
]
T
un vector de las variables necesarias para determinar completamente la
posicin y orientacin de todas las partes de un sistema fsico. Cuando se utilizan estas
variables para describir un movimiento, es necesario tener en cuenta que las variables
pueden no ser independientes. As, por ejemplo, en el movimiento del pndulo simple
con una varilla que se ilustra en la gura (2.2), existe un nico grado de libertad el ngulo
y las coordenadas (x, y) de la masa del extremo de la varilla deben cumplir la restriccin
x
2
+y
2
l
2
= 0 (2.1)
siendo l la longitud de la varilla del pndulo
x
y
l
l
Figura 2.2.- Pndulo simple
2.2 Modelos cinemticos de robots mviles 34
En general es posible formular restricciones del tipo:
G
k
(p, p0, t) = 0; k = 1,...,s (2.2)
es decir, se deben satisfacer s restricciones o ecuaciones en las variables p, sus derivadas p
0
y posiblemente, el tiempo t.
Para que se cumpla una restriccin debe haber una fuerza que obligue a ello, tal como
la tensin de la varilla del pndulo. En general estas fuerzas pueden plantear problemas
complejos ya que no son conocidas previamente y dependen del movimiento. En algunos
casos el problema se resuelve eliminando las variables redundantes, quedndose con un
conjunto mnimo de variables p = [p
1
...p
n
]
T
, n < r y prescindiendo de las fuerzas. Sin
embargo, esto no es siempre posible o deseable.
Las restricciones pueden ser holnomas o no holnomas. Las holnomas son
aquellas en las que no intervienen las velocidades; es decir, tiene la forma:
G
k
(p, t) = 0; k = 1,...,s (2.3)
Las no holnomas dependen de las velocidades. Para que una restriccin sea no
holnoma se exige adems que no sea integrable; es decir, que no se deduzca por derivacin
total con respecto al tiempo de una holnoma.
En los modelos cinemticos de numerosos robots mviles existen relaciones no
holnomas entre las coordenadas en el espacio de los actuadores y las coordenadas en
el espacio cartesiano.
Considrese el movimiento de la rueda de radio r en una dimensin tal como el
que se ilustra en la gura (2.3). Se representa mediante

X (en lugar de i, j, k) el vector
2.2 Modelos cinemticos de robots mviles 35
de orientacin. La variable del actuador podra ser el giro y la variables en el espacio
cartesiano la x que indica el espacio recorrido. Las dos variables obedecen a la condicin
de rodadura
x0 = c
0
(2.4)
que depende de las velocidades, pero puede deducirse por derivacin de la restriccin
holnoma
x c = constante (2.5)
Por consiguiente, en este caso, no existen restricciones no holnomas. Ntese que se
necesita una nica coordenada (x o ) y existe tambin un grado de libertad.
c
X
Figura 2.3.- Restricciones no holnomas.- Movimiento de rueda en una direccin
Sin embargo, si se estudia el movimiento de la rueda en el plano. tal como se
muestra en la gura (2.4), aparecen restricciones no holnomas. En efecto, considrese
el movimiento de la rueda de forma que el dimetro correspondiente al punto de contacto
con el suelo est siempre en posicin vertical. En este caso, pueden emplearse cuatro
coordenadas para especicar completamente la posicin y orientacin de la rueda: las
coordenadas (x, y) del punto de contacto, el ngulo entre la vertical y un radio de
referencia, el cual indica cunto ha girado el disco, y el ngulo de orientacin de la
2.2 Modelos cinemticos de robots mviles 36
rueda. La condicin de rodadura sin deslizamiento introduce dos restricciones, ya que el
espacio que el punto de contacto recorre sobre el borde de la rueda es igual al que recorre
en el plano. Por consiguiente, proyectando la velocidad del punto de contacto en el plano,
paralela y perpendicularmente al disco, se obtiene:
x
0
sin +y
0
cos =
0
c (2.6)
x
0
cos +y
0
sin = 0 (2.7)
X
Y
Z
c
Figura 2.4.- Restricciones no holnomas.- Movimiento de rueda en plano.
Estas dos restricciones no son integrables (no se pueden obtener como las derivadas
de dos condiciones holnomas), por lo tanto, no se pueden obtener relaciones funcionales
entre las variables (x, y, , ) a partir de las ecuaciones (2.6) y (2.7). Dados unos valores
(x
0
, y
0
,
0
,
0
), haciendo rodar la rueda sin deslizar y girndola alrededor del eje vertical, es
posible llegar a cualquier otra conguracin ((x
f
, y
f
,
f
,
f
), lo cual implica que no existe
una relacin funcional entre estos valores. Sin embargo, las direcciones de movimiento
deben satisfacer las ecuaciones anteriores, y por tanto, el camino no puede ser cualquiera.
2.2 Modelos cinemticos de robots mviles 37
En la prctica, existen diferentes tipos de rueda cuya consideracin tiene una notable
inuencia en el modelo cinemtico del vehculo. As, cabe distinguir entre cuatro tipos
de ruedas. Las ruedas jas slo pueden rotar sobre su eje (ngulo en la gura (2.4)).
Las ruedas de direccionamiento se caracterizan por la rotacin alrededor del eje vertical
(ngulo en la gura (2.4)). Las ruedas de soporte tambin son orientables respecto al
vehculo, pero el eje vertical de rotacin no pasa por el centro de la rueda. Finalmente,
las denominadas ruedas suecas permiten variar la direccin de la velocidad del punto de
contacto con relacin al plano de la rueda (el vector velocidad puede tener un ngulo con
respecto a la tangente).
Considrese un sistema de referencia {G} y un sistema {L} con centro en el punto de
guiado del vehculo y eje

Y
L
en la direccin del eje longitudinal del vehculo (gura (2.5)).
X
G
Y
G
{G}
{L} Y
L
X
L
x
y
Figura 2.5.- Cambio de sistema de referencia en navegacin de robots mviles
Supngase que el vehculo se desplaza en un intervalo de control segn un arco
de circunferencia, tal como se muestra en la gura (2.6). Esta suposicin es vlida para
intervalos de control sucientemente pequeos.
2.3 Ecuaciones de movimiento del robot mvil 38
X
L
Y
L
y
x
R
s
Figura 2.6.- Crculo osculador
La velocidad lineal del vehculo viene dada por
v =
s
t
(2.8)
y la velocidad angular por:
=

t
(2.9)
siendo s y respectivamente el espacio recorrido por el punto de guiado del vehculo
y su cambio de orientacin durante el intervalo de control t.
La longitud s del arco recorrido por el robot en t viene dada por:
s = R (2.10)
siendo R el radio de giro o radio de la circunferencia que describe el punto de guiado.
La curvatura se dene como la inversa del radio de giro:
=
1
R
=

s
(2.11)
2.3 Ecuaciones de movimiento del robot mvil 39
2.3 Ecuaciones de movimiento del robot mvil
Las ecuaciones de movimiento en el sistema {L} de la gura (2.6) en la posicin inicial
son:
L
(x) = (RRcos()) (2.12)
L
(y) = Rsin() (2.13)
Si la orientacin inicial del vehculo con respecto al sistema {G} es de , el
movimiento en el sistema {G} se determina rotando :
x = R[cos() 1] cos() Rsin() sin() (2.14)
y = R[cos() 1] sin() +Rsin() cos() (2.15)
Suponiendo que el intervalo de control es sucientemente pequeo, tambin lo ser
el cambio de orientacin con lo cual se tendr que
cos() = 1 (2.16)
sin() = (2.17)
Sustituyendo en las anteriores ecuaciones se tiene que
x = Rsin() (2.18)
y = Rcos() (2.19)
y teniendo en cuenta (2.10)
x = s sin() (2.20)
y = s cos() (2.21)
2.3 Ecuaciones de movimiento del robot mvil 40
Dividiendo ambas ecuaciones por t, teniendo en cuenta (2.8) y haciendo tender t
a cero se llega a:
x
0
= v sin (2.22)
y
0
= v cos (2.23)
ecuaciones a las que puede aadirse la que se obtiene a partir de la (2.9)

0
= (2.24)
la cual proporciona la variacin de la orientacin.
Ntese que en el modelo anterior no se considera el ngulo de direccionamiento de
las ruedas, variables que se utilizan en diversas conguraciones de robots mviles. Estos
ngulos se emplean en modelos tales como el de la bicicleta que en la gura (2.7).
Rd
Rt
Figura 2.7.- Modelo de la bicicleta. Rd rueda delantera, Rt rueda trasera.
El ngulo de direccionamiento es el que forma el eje longitudinal del vehculo con
la rueda delantera, la cual se supone direccionable.
2.3 Ecuaciones de movimiento del robot mvil 41
2.3.1 Modelo jacobiano
Sea p el vector que representa un punto en el espacio de n coordenadas generalizadas y q
el vector de m variables de actuacin, siendo n > m. Sean p
0
y q
0
las derivadas temporales
correspondientes. En lo que sigue, por omisin, se considera que las variables se expresan
en el sistema de referencia global {G}. El modelo directo es
p
0
= J(p)q
0
(2.25)
siendo J(p)el jacobiano. Este jacobiano puede escribirse en la forma
p
0
= f(p) +
m
X
i=1
g(p)
i
q
0
i
(2.26)
siendo f y g funciones vectoriales analticas.
Si p = [x y ]
T
es el vector con las coordenadas globales del punto de gua del
vehculo y la orientacin, las ecuaciones (2.22), (2.23) y (2.24) pueden expresarse en la
forma (2.26) con f(p) = 0; m = 2 como
p
0
=
_
_
sin
cos
0
_
_
v +
_
_
0
0
1
_
_
(2.27)
siendo v la velocidad lineal del vehculo y w la angular.
Las ecuaciones (2.27) pueden expresarse tambin en la forma del modelo (2.25)
como:
_
_
x
0
y
0

0
_
_
=
_
_
sin 0
cos 0
0 1
_
_

(2.28)
siendo q
0
= [v ]
T
el vector de variables de entrada.
2.3 Ecuaciones de movimiento del robot mvil 42
Combinando las dos primeras ecuaciones de (2.28) es posible obtener la siguiente
restriccin independiente de v :
xcos +y
0
sin = 0 (2.29)
que constituye la restriccin no holnoma del movimiento (2.7), segn la cual el vehculo
debe moverse en cada instante segn la direccin de su eje longitudinal de simetra
tan =
x
0
y
0
(2.30)
En efecto, teniendo en cuenta (2.7), la posicin (x, y) y la orientacin del vehculo
no son independientes.
El modelo inverso, involucra la inversa del jacobiano. Para resolverlo de una forma
general sera necesario invertir el jacobiano. Cuando el jacobiano no es cuadrado, es
necesario emplear la seudoinversa. Multiplicando ambos miembros de (2.25) por J
T
y
despejando q
0
se obtiene:
q
0
= {[J(p)]
T
J(p)}
1
[J(p)]
T
p
0
(2.31)
As, para el modelo (2.28) se obtiene:

=

sin cos 0
0 0 1

_
_
x
0
y
0

0
_
_
(2.32)
de la primera se deduce
v = x
0
sin +y
0
cos (2.33)
que coincide con la ecuacin (2.6).
2.3 Ecuaciones de movimiento del robot mvil 43
Por otro lado es necesario comprender las diferentes morfologas de los robots
mviles, las cuales se presentan a continuacin.
2.3.2 Modelos de diferentes conguraciones
En la gura (2.8) se muestran cuatro conguraciones diferentes de robots mviles. Las
coordenadas (x, y) suministran la posicin del robot con respecto a las coordenadas
globales y el ngulo su orientacin con respecto a un eje paralelo al

Y .
a) Sncrona b) Diferencial
b
v
i
(x, y)
v
d
d) Configuracin Ackerman c) Triciclo clsico
b
R
l
b
l
1/
(x, y)
(x, y)
(x, y)
Figura 2.8.- Conguraciones de robots mviles
2.3 Ecuaciones de movimiento del robot mvil 44
La conguracin de la gura (2.8a) es la denominada sncrona o synchro-drive en
la cual existen transmisiones que permiten orientar las tres ruedas simultneamente con una
velocidad angular y hacer que el vehculo se desplace con una velocidad lineal v. En esta
conguracin el modelo viene dado por las ecuaciones (2.27) o (2.28).
Ntese que para especicar la conguracin hay que indicar los valores de las tres
variables (x, y, ). Se tiene una restriccin no holnoma y dos grados de libertad.
En la gura (2.8b) se representa la locomocin con guiado diferencial, tal como
la del robot mvil del presente trabajo. En este caso, las variables de control son las
velocidades de las ruedas laterales. Sean
i
y
d
, las velocidades de giro de las ruedas
izquierda y derecha, respectivamente. Si el radio de la rueda es c, las velocidades lineales
correspondientes son v
i
=
i
c y v
d
=
d
c. En este caso, la velocidad lineal y la velocidad
angular correspondientes en el modelo (2.26) vienen dadas por:
v =
v
d
+v
i
2
=
(
d
+
i
)c
2
(2.34)
=
v
d
v
i
b
=
(
d

i
)c
b
(2.35)
siendo b la va del vehculo (distancia que separa las dos ruedas centrales). Por
consiguiente, se especican la velocidad lineal v y angular w del vehculo, las velocidades
de giro que hay que aplicar a las ruedas izquierda y derecha son:

i
=
v (b/2)
c
(2.36)

d
=
v + (b/2)
c
(2.37)
2.3 Ecuaciones de movimiento del robot mvil 45
Sustituyendo (2.34) y (2.35), el modelo (2.27) puede expresarse en funcin de estas
variables de control como:
_
_
x
0
y
0

0
_
_
=
_
_
(c sin )/2
(c cos )/2
c/b
_
_

i
+
_
_
(c sin )/2
(c cos )/2
c/b
_
_

d
(2.38)
=
_
_
(c sin )/2 (c sin )/2)
(c cos )/2 (c cos )/2)
c/b c/b
_
_

(2.39)
El esquema de la gura (2.8c) representa el triciclo convencional, en el cual la
rueda delantera se utiliza tanto para la orientacin como para la traccin. En este caso
las variables de control suelen tomar como el ngulo de direccin de la rueda delantera
(o su velocidad angular

) y la velocidad de giro de la misma rueda


t
(o su velocidad
lineal correspondiente v
t
= c
t
). Se supondr que el punto de gua (x, y) est en el centro
del eje trasero.
Las velocidades lineal v y angular del vehculo que corresponden a las entradas en
el modelo (2.27) son respectivamente
v = v
t
cos = c
t
cos (2.40)
y

0
=

(2.41)
Asimismo, el ngulo de orientacin del vehculo vara segn:

0
=
c
t
l
sin =
v
t
l
sin (2.42)
2.3 Ecuaciones de movimiento del robot mvil 46
Por consiguiente, sustituyendo en (2.27), se obtiene el siguiente modelo en funcin
de las velocidades de control v
t
y

.
_

_
x
0
y
0

0
_

_
=
_

_
sin cos
cos cos
(sin )/l
0
_

_
v
t
+
_

_
0
0
0
1
_

=
_

_
sin cos 0
cos cos 0
(sin)/l 0
0 1
_

v
t

(2.43)
Obsrvese tamben que, conocidas las velocidades deseadas lineal v y angular , las
variables de control y
t
pueden obtenerse mediante:
= arctan

l
R

= arctan

l
v

(2.44)

t
=
v
t
c
=

v
2
+
2
l
2
c
(2.45)
En efecto, obsrvese como la relacin entre la velocidad de traslacin y la de rotacin
es el radio de giro R. Asimismo, R = 1/ siendo la curvatura.
El triciclo puede representarse tambin mediante el denominado modelo de la
bicicleta que se ilustra en la gura (2.7). En este modelo se adoptan las expresiones (2.22)
y (2.23). Con respecto a la orientacin, se tiene en cuenta la denicin de la curvatura
(2.11) de donde se obtiene la ecuacin
0
= v. Por tanto, las ecuaciones son:
x
0
= v sin
y
0
= v cos (2.46)

0
= v
siendo la curvatura, que puede obtenerse en funcin del ngulo de direccionamiento
mediante = (tan)/l.
2.3 Ecuaciones de movimiento del robot mvil 47
En general, si se emplea el modelo de la bicicleta, para obtener los modelos inversos
puede aplicarse la expresin (2.31), donde el jacobiano viene dado por las correspondientes
ecuaciones del modelo directo: (2.39) para el guiado diferencial y (2.43) para el triciclo.
Considrese ahora un vehculo de cuatro ruedas con sistema de locomocin con
conguracin Ackerman, tal como el que se representa en la gura (2.8d). Se supone
que el centro de gravedad del vehculo (origen del sistema de referencia local {L} est
situado en la mitad del eje de las ruedas de traccin (ruedas traseras). El vehculo puede
representarse tambin segn el modelo de la bicicleta, siendo = (tan )/l con el
ngulo de direccionamiento. Sin embargo, en general no existen expresiones explcitas
de la cinemtica inversa de la conguracin Ackerman, debiendo aplicarse la integracin
numrica. Hay que tener en cuenta que la velocidad real de las cuatro ruedas es diferente
y, por consiguiente, el clculo de la velocidad del centro de gravedad del vehculo a partir
de la velocidad de una rueda da lugar a errores. Asimismo, el radio de curvatura tampoco
puede medirse de forma directa a partir de la curvatura de las ruedas directrices ya que
cada una de ellas se mueve segn un arco de diferente radio. Por ltimo hay que sealar
que efectos tales como la deformacin de los neumticos hacen que la orientacin de la
rueda de direccin no sea la prevista.
La conguracin del triciclo y de la locomocin Ackerman pueden representarse de
forma ms o menos simplicada mediante el modelo de la bicicleta y tiene dos grados de
libertad.
2.4 Control de movimientos de vehculos autnomos 48
2.3.3 Estimacin de la posicin y orientacin
La estimacin de la posicin y orientacin de los robots mviles hace necesaria la
integracin de las ecuaciones de los modelos presentados en la seccin (2.3.1) y (2.3.2).
As, en el modelo (2.28), conociendo la posicin y orientacin inicial p
0
= [x
0
y
0

0
]
T
, la integracin dara:
_
_
x
y

_
_
=
_
_
x
0
y
0

0
_
_
+
_
_
R
t
0
v sin d
R
t
0
v cos d
R
t
0
d
_
_
(2.47)
De igual forma, en el caso de direccionamiento diferencial, se tiene:
_
_
x
y

_
_
=
_
_
x
0
y
0

0
_
_
+
_
_
R
t
0

c sin
2
(
d
+
i
) d
R
t
0

c cos
2
(
d
+
i
) d
R
t
0
c
b
(
d
+
i
) d
_
_
(2.48)
En el caso del modelo del triciclo se aplican las ecuaciones:
v = c
t
cos (2.49)
_
_
x
y

_
_
=
_
_
x
0
y
0

0
_
_
+
_
_
R
t
0
v sin d
R
t
0
v cos d
R
t
0
vt sin
l
d
_
_
(2.50)
No obstante, cabe sealar que la estimacin de la posicin mediante las expresiones
anteriores es una aproximacin vlida slo para periodos de tiempo sucientemente
pequeos, ya que en caso contrario se produce una acumulacin de error debido a
inevitables deslizamientos y otros efectos provocados por comportamientos dinmicos,
relacionados fundamentalmente con la interaccin entre el vehculo y el terreno, que no
estn contemplados en el modelo.
2.4 Control de movimientos de vehculos autnomos 49
2.4 Control de movimientos de vehculos autnomos
El objetivo es que el vehculo ejecute de forma autnoma movimientos previamente
planicados o los que permiten reaccionar de forma apropiada a la percepcin del entorno.
En esta seccin se considera exclusivamente el control de movimientos en el plano.
El problema del control de vehculos autnomos ha sido estudiado en teora de
control. Este problema puede formularse como la obtencin de leyes de control que
permitan estabilizar el vehculo sobre un punto de trabajo (condiciones nominales de
funcionamiento), anulando el efecto de las perturbaciones (problema de regulacin), o
bien hacer que el vehculo siga de forma autnoma 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
ref
= (x, y, ), constituida por
la posicin y la orientacin, o bien slo el seguimiento en el tiempo de una posicin de
referencia
ref
= (x, y)
ref
En el problema de seguimiento se pretende que el error
ref
(t) (t) tienda a cero
manteniendo acotadas las seales de control.
Ntese que en el problema del seguimiento de
ref
(t) se involucra tanto el control
de la direccin como el de la velocidad del vehculo autnomo. Este problema se presenta,
por ejemplo, cuando se pretende seguir a otro mvil, determinndose
ref
(t)0 mediante el
sistema de percepcin. Es posible tambin plantearse un problema similar al del control de
un manipulador robtico intentando seguir una trayectoria temporal. Sin embargo, cuando
se pretende seguir un camino previamente denido sin considerar la velocidad, se involucra
exclusivamente el control de la direccin.
2.4 Control de movimientos de vehculos autnomos 50
Las caractersticas del robot mvil son importantes. As, las tcnicas para controlar
pequeos robots omnidireccionales son diferentes de las utilizadas para controlar vehculos
automviles convencionales adaptados para su funcionamiento autnomo.
En la gura (2.9) se muestra un esquema de control de vehculos autnomos en el que
se identican dos bucles. El de la izquierda es el del control de la direccin del vehculo.
Se trata de generar las consignas a los actuadores que hacen que el vehculo tome en cada
instante la direccin apropiada. El bucle de la derecha es el de control de velocidad. En
este caso, se trata de generar la consigna a los actuadores que realizan la propulsin del
vehculo.
Generacin consigna
direccin
Servo de direccin
Dinmica lateral
Generacin consigna
velocidad
Servo de velocidad
Dinmica longitudinal
x, y, , x, y, , , v
Figura 2.9.- Control de velocidad y desplazamiento lateral. La posicin del vehculo viene dada por x,y; es
la orientacin, la curvatura y v la velocidad
En este punto conviene mencionar que, empleando vehculos convencionales con
locomocin tipo triciclo convencional o Ackerman, los bucles de control estn fuertemente
acoplados.
2.5 Seguimiento de caminos explcitos 51
Un planteamiento diferente del problema de control de robots mviles es la del
control reactivo. En este caso las actuaciones se obtienen empleando directamente la
percepcin sensorial del entorno.
2.5 Seguimiento de caminos explcitos
En la gura (2.10) se muestra un vehculo robtico, o robot mvil, y un camino que se
pretende que el robot siga de forma autnoma.
En muchos casos, se supone que la velocidad se mantiene constante. En este punto
conviene mencionar que la velocidad es un parmetro que interviene en el modelo del bucle
de control de la direccin. Por tanto, si se emplea una estrategia de control basada en el
modelo, cuando se modica la velocidad cambia tambin el modelo y, por tanto, debe
modicarse de forma apropiada la ley de control. Para ello pueden aplicarse estrategias
tales como las de control adaptativo.
2.5 Seguimiento de caminos explcitos 52
Y
X
Camino
(x , y )
ob ob
(x, y)
Figura 2.10.- Seguimiento de caminos explcitos.
El camino que se pretende seguir puede especicarse de diversas formas entre las que
cabe mencionar:
1) Especicacin previa en coordenadas absolutas a partir de planos o mapas, o bien
con el propio vehculo dotado de un sistema de GPS diferencial recorriendo un camino que
se graba en memoria para su posterior reproduccin.
2) Especicacin interactiva desde una terminal empleando tcnicas de telerrobtica
o instrucciones especcas.
3) En una arquitectura de control inteligente empleando mtodos de planicacin de
caminos. Esta es la tcnica que se utiliza en numerosos sistemas de navegacin autnoma
tales como los del NavLab, RAM y Romeo.
4) Mediante el sistema de percepcin, tal como sucede en el seguimiento de lneas
obtenidas mediante un sistema de visin sobre el vehculo, o bien en el seguimiento de
2.5 Seguimiento de caminos explcitos 53
carreteras empleando tambin el sistema de visin, donde se presentarn experiencias
precursoras de visin en tiempo real y control de vehculos por autopista.
En cualquier caso, se supondr que la trayectoria deseada viene dada por una funcin
explcita en coordenadas globales, o bien mediante una secuencia de posturas (x, y, , )
siendo (x, y) las coordenadas, la orientacin y la curvatura.
Las especicaciones para el diseo de este bucle de control son normalmente las
siguientes:
* Precisin en el seguimiento: error de seguimiento lo menor posible.
* Comportamiento dinmico: estabilidad relativa y rapidez de los transitorios.
* Menor esfuerzo de control: minimizacin de actuaciones.
Para controlar el vehculo sobre la trayectoria se necesita estimar su posicin. Como
se sabe, el mtodo ms simple es mediante odometra empleando las medidas de los
codicadores pticos en los ejes de las ruedas y un cierto modelo. Asimismo, es posible
emplear sensores de navegacin, tales como los girscopos, para estimar los ngulos del
vehculo, y los compases, para estimar la direccin del vehculo con respecto al Norte.
Se han empleado tambin otros sensores, tales como los acelermetros, que permiten
obtener la posicin del vehculo mediante doble integracin de la aceleracin medida. No
obstante, es necesario poner de maniesto que, en la mayor parte de los robots mviles,
la relacin seal/ruido suele ser pequea (aceleraciones bajas) lo que hace que el error de
estimacin sea grande.
Los sistemas de navegacin inercial (Inertial Navigation Systems, INS) integran
diversas medidas de ngulos y aplican tcnicas bsicas de fusin sensorial para mejorar las
2.6 Seguimiento de caminos empleando mtodos geomtricos 54
estimaciones, aadiendo tambin otros sensores tales como acelermetros. No obstante, su
costo suele ser elevado.
Por ltimo, en robtica de exteriores, es necesario mencionar tambin los sistemas
de posicionamiento global por satlite (Global Positioning Systems, GPS). En la actualidad
existen sistemas diferenciales de posicionamiento global por satlite (DGPS) que permiten
llegar a estimar la posicin con errores de pocos centmetros.
En general, es posible mejorar la estimacin de la posicin del vehculo mediante la
integracin de diferentes sensores, para lo cual se emplean tcnicas tales como las del ltro
de Kalman.
2.6 Seguimiento de caminos empleando mtodos geomtricos
2.6.1 Seguimiento mediante persecucin pura
Considrese un sistema de referencia local asociado al movimiento del vehculo, tal como
se muestra en la gura (2.11). Se supone que, en el intervalo de control, la curvatura es
constante, describiendo el vehculo un arco de circunferencia.
Del anlisis de la gura (2.11) se deducen las relaciones:
r = x +d (2.51)
r
2
= d
2
+ (y)
2
(2.52)
siendo r el radio de curvatura del vehculo.
2.6 Seguimiento de caminos empleando mtodos geomtricos 55
y
x
punto
objetivo
L
r
x d
y
Figura 2.11.- Seguimiento de caminos mediante persecucin pura
Despejando d en la primera y sustituyendo en la segunda se obtiene:
(r x)
2
+ (y)
2
= r
2
(2.53)
de donde el radio de curvatura necesario para que el vehculo se desplace x, y es:
r =
(x)
2
+ (y)
2
2x
(2.54)
Por tanto, la curvatura que es necesario suministrar al vehculo es:

r
=
1
r
=
2(x)
L
2
(2.55)
donde el signo viene dado por el sentido de giro necesario para alcanzar el punto objetivo
en la gura (2.11), L es la distancia a la que se encuentra el punto objetivo y x es el
desplazamiento lateral.
La expresin anterior constituye la ley de control de persecucin pura (pure
pursuit). Obsrvese cmo es una ley de control proporcional al error lateral (x) con
respecto al punto objetivo. La constante de proporcionalidad (ganancia) vara con la inversa
del cuadrado de L.
2.6 Seguimiento de caminos empleando mtodos geomtricos 56
En la gura puede verse tambin que la curvatura de la persecucin pura es la inversa
del radio de una de las circunferencias que pasa por la posicin actual del vehculo y por el
punto objetivo.
El programa para la aplicacin de esta ley de control es sencillo. Basta determinar
el punto del camino que se encuentra a una distancia previamente denida L, y calcular
el error lateral (x) con respecto a la posicin actual del centro de guiado del vehculo.
Si las coordenadas estn en un sistema global, es necesario tener en cuenta la orientacin
del vehculo para obtener (x). En efecto, si el vehculo est en las coordenadas globales
(x, y) con orientacin (gura (2.10)), y el punto objetivo sobre el camino est en las
coordenadas globales (x
ob
, y
ob
) entonces se tendr:
x = (x
ob
x) cos + (y
ob
y) sin (2.56)
Un mtodo prctico para aplicar la ley de control consiste en obtener, en cada periodo
de control, el punto (x
obm
, y
obm
) del camino objetivo que est ms prximo al vehculo
(x, y) y elegir el punto objetivo (x
ob
, y
ob
) a una distancia ja s sobre el camino tomada
en el sentido de avance a partir de (x
obm
, y
obm
), tal como se ilustra en la gura (2.12). A
continuacin se calculan:
L =
p
(x
ob
x)
2
+ (y
ob
y)
2
(2.57)
y (2.56), y se aplica la ley de control (2.55).
En cualquier caso, la eleccin del parmetro de distancia al punto objetivo es crtica
para la eciencia del controlador de persecucin pura.
2.6 Seguimiento de caminos empleando mtodos geomtricos 57
L
Y
L
X
L r
x d
(x, y)
(x , y )
ob ob
(x , y )
obm obm
s
Figura 2.12.- Aplicacin del mtodo de persecucin pura con distancia ja sobre camino.
Existen circunstancias en las que la simple aplicacin de la ley de control anterior
presenta problemas. As, cuando el punto objetivo se encuentra muy alejado (Les muy
grande), la actuacin suministrada por la ley de control puede resultar demasiado pequea.
En este caso, debe sustituirse la distancia L al punto objetivo por una distancia mxima.
Otro caso patolgico es cuando el vehculo se encuentra sobre el camino (x muy
pequea), pero orientado en direccin contraria al camino, situacin en la cual se obtendra
un valor muy pequeo de la curvatura que no permitira girar el vehculo hasta orientarse
segn el camino. Si se detecta esta condicin, es necesario sustituir la curvatura obtenida
por otro valor mayor.
2.7 Aplicacin de la teora de control 58
2.7 Aplicacin de la teora de control
2.7.1 Controlabilidad y estabilizacin
Denicin de controlabilidad.- Se dice que un sistema es controlable en el tiempo t
o
si
es posible transferir un sistema por medio de un vector de control no restringido, desde
cualquier estado inicial x(t
o
) a cualquier otro estado en un intervalo de tiempo nito.
La estabilidad es una nocin que describe si un sistema es capaz de seguir el
comando de entrada, o en general, si dicho sistema es til. La nocin de estabilidad
signica que el sistema opere dentro de lmites de comportamiento considerablemente
estrechos. En una forma rigurosa, un sistema se dice inestable si sus salidas salen de
control.
Denicin de estabilidad.- Se dice que el sistema es estable de entrada-
acotada/salida-acotada (BIBO) o simplemente estable, si su salida y(t) es acotada para
una entrada u(t) acotada. Por lo que, para la estabilidad BIBO, las races de la ecuacin
caracterstica, no pueden estar localizados en el semiplano derecho del eje j, o todos
deben quedar en el semiplano izquierdo del plano s.
De acuerdo con lo que se indica en la seccin (2.2), los modelos cinemticos de los
robots mviles con ruedas pueden escribirse en la forma:
z
0
= B(z)u (2.58)
siendo z un vector de variables de estado cuyo nmero de componentes depende de
la conguracin y u el vector de velocidades de control. Dicha conguracin est
2.7 Aplicacin de la teora de control 59
caracterizada por el par (
m
,
d
) siendo
m
el grado de movilidad, y
d
el grado de
direccionamiento [9]. El primero viene dado por
m
= 3 nr, siendo nr el nmero
de restricciones de movilidad. As,
m
= 3 corresponde a los robots omnidireccionales.
El grado de direccionamiento est determinado por el nmero de ruedas direccionables. Si
no existe ninguna rueda direccionable, como en el caso de los vehculos con locomocin
diferencial pura, se tiene
d
= 0. Si existe una rueda o un eje direccionable, como en los
triciclos o vehculos automviles con traccin Ackerman se tiene
d
= 1.
De esta forma, el robot de locomocin diferencial que se consideraba en la seccin
(2.2), est caracterizado por el par (2, 0) mientras que los vehculos tipo triciclo o Ackerman
tienen una conguracion (1, 1).
Si el vehculo no tiene ruedas orientables, entonces el vector de estado z coincide con
el vector de postura:
z = = [x y ]
T
(2.59)
Sin embargo, si existen ruedas orientables, se ampla el vector con
d
componentes
correspondientes a los ngulos de las ruedas direccionables.
Si no existen ruedas orientables, la dimensin de u coincide con el grado de
movilidad. Para el caso en que existan estas ruedas direccioanbles, el vector se ampla
con las velocidades de direccionamiento de dichas ruedas.
Sea z

un estado de equilibrio en el cual el robot est en reposo con un posicin y


orientacin constantes, y una orientacin tambin constante de las ruedas direccionables.
En dicho estado de equilibrio, las velocidades de control son nulas, u = 0. Linealizando
2.7 Aplicacin de la teora de control 60
en este estado de equilibrio, se obtiene:
d
dt
(z z

) = B(z

) (2.60)
En Campion [9] se demuestra que la matriz de controlabilidad se reduce a B(z

),
que tiene como rango
m
+
d
. Un robot omnidireccional se caracteriza por el par (3,
0) y la dimensin del vector de estado es
m
= 3. Por tanto, la proximacin lineal es
completamente controlable. Sin embargo, si existen restricciones en la movilidad, tal como
sucede en la locomocin diferencial (2, 0) o en la de los triciclos y automviles (1, 1), la
aproximacin no es completamente controlable.
Asi, por ejemplo, el modelo (2, 0) que se consideraba en la seccin (2.2):
x
0
= v sin
y
0
= v cos (2.61)

0
=
puede escribirse en la forma z
0
= B(z)u, siendo z = [x y ]
T
, u = [v ]
T
las variables de
control correspondientes a las velocidades, y
B =
_
_
sin 0
cos 0
0 1
_
_
(2.62)
Ntese que en esta conguracin no existen ruedas direccionables y que, por tanto,
z = = [x y ]
T
. Obsrvese tambin que B coincide con el jacobiano.
Linealizando en z = 0; u = 0; se obtiene:
z
0
= B(0)

=
_
_
0 0
1 0
0 1
_
_

(2.63)
2.7 Aplicacin de la teora de control 61
El sistema no es controlable ya que el rango de la matriz de controlabilidad:
C = B(0) =
_
_
0 0
1 0
0 1
_
_
(2.64)
es slo 2.
Sin embargo, lo anterior se reere slo a la linealizacin, en la cual hay involucrada
una prdida de informacin. En efecto, de forma intuitiva puede armarse que el robot
mvil es controlable, ya que puede llevarse desde una postura inicial
0
a una nal
f
en
un tiempo nito, manipulando convenientemente las entradas.
Si un robot mvil es omnidireccional, es posible encontrar entradas de control que
linealizan el modelo y lo estabilizan en un estado z

. En efecto, en este caso es posible


aplicar una ley de control:
u(z) = B(z)
1
A(z z

) (2.65)
siendo A una matriz de Hurwitz, tal que el sistema en bucle cerrado viene dado por
d
dt
(z z

) = A(z z

) (2.66)
En general, en los robots omnidireccionales siempre es posible disear leyes de
control continuas que lleven al robot desde un estado inicial hasta un estado de equilibrio
estable.
Sin embargo, los robots mviles con restricciones en la locomocin (no
omnidireccionales) son slo parcialmente linealizables por realimentacin [17]. Asimismo,
en los robots de movilidad restringida, el modelo cinemtico no es estabilizable mediante
una realimentacin continua del vector estado invariante en el tiempo u(z). Sin embargo,
puede encontrarse una ley de control variable en el tiempo u(z, t) que lo estabilice.
2.7 Aplicacin de la teora de control 62
Si en el sistema (2.61) se realiza el cambio de variables:
x
1
=
x
2
= xsin +y cos (2.67)
x
3
= xcos +y sin
_
_
x
1
x
2
x
3
_
_
=
_
_
0 0 1
sin cos 0
cos sin 0
_
_
_
_
x
y

_
_
(2.68)
y se deriva en (2.68), se obtiene:
x
0
1
=
x
0
2
= x
0
sin xcos +y
0
cos y sin (2.69)
x
0
3
= x
0
cos xsin +y
0
sin + y cos
Sustituyendo las expresiones de x
0
e y
0
de (2.61), se obtiene:
x
0
1
=
x
0
2
= v x
3
(2.70)
x
0
3
= x
2
Si ahora se hace,
u
1
= (2.71)
u
2
= v x
3
el modelo puede escribirse en la forma
x
0
1
= u
1
x
0
2
= u
2
(2.72)
2.7 Aplicacin de la teora de control 63
x
0
3
= x
2
u
1
Este modelo pertenece a la clase que se denomina en cadena, caracterizada por
ecuaciones de estado de la forma
x
0
1
= u
1
x
0
2
= u
2
x
0
3
= x
2
u
1
(2.73)
...
x
0
n
= x
n1
u
1
Estos sistemas son de particular inters para el modelado y control de robots mviles
con restricciones no holnomas.
Ntese que, aunque el sistema es no lineal, si u
1
es una funcin del tiempo y no una
variable de control, puede escribirse:
x
0
1
= 0 (2.74)
_

_
x
0
2
x
0
3
x
0
n
_

_
=
_

_
0 0 0 0 0
u
1
(t) 0 0 0 0
0 0 0 u
1
(t) 0
_

_
_

_
x
2
x
3
x
n
_

_
+
_

_
1
0
0
_

_
u
2
(2.75)
siendo
x
0
1
= x
1

Z
t
0
u
1
()d
Por tanto, en este caso, se tiene un sistema de una sola entrada, lineal y de coecientes
variables en el tiempo. Es decir, si se escribe un sistema no lineal con dos entradas
en la forma de cadena, es posible linealizarlo con respecto a una de sus entradas. En
2.7 Aplicacin de la teora de control 64
Murray [24] se presenta una condicin necesaria y suciente de controlabilidad. Cuando
u
1
se toma como una funcin del tiempo, el sistema pierde la controlabilidad debido a
la primera ecuacin de estado. No obstante, bajo ciertas condiciones en la eleccin de
u
1
(t), el sistema formado por las variables de estado [x
2
,...,x
n
] permanece controlable. Esta
propiedad puede utilizarse para disear leyes de control en bucle cerrado que estabilicen
asintticamente el sistema en un punto x = 0, y para determinar entradas que conduzcan en
bucle abierto el vehculo hasta llevarlo a una conguracin deseada, que normalmente se
escoge como el origen del espacio de estados. Este mtodo consiste, bsicamente, en dos
pasos: 1) elegir una funcin integrable que asegure la controlabilidad de la segunda parte
[x
2
,...,x
n
], y determinar un control u
2
(t) que lleve esta segunda parte al origen en tiempo
nito (normalmente integrando las ecuaciones algebraicas); y 2) manteniendo u
2
igual a
cero para dejar [x
2
,...,x
n
] en el origen, determinar u
1
(t) para conducir x
1
(t) al origen en un
tiempo nito.
Ntese que cuando u
1
es constante y diferente de cero, el sistema (2.75) se convierte
en invariante en el tiempo y [x
2
,...,x
n
] es controlable. Por tanto, aplicando mtodos clsicos
de control lineal, es posible encontrar leyes de control en bucle cerrado sobre el sistema
[x
2
,...,x
n
].
2.7.2 Seguimiento de trayectorias
2.7 Aplicacin de la teora de control 65
2.7.2.1 Trayectorias de referencia
Considrese que la trayectoria que se pretende seguir viene dada por el modelo de
referencia:
x
0
ref
= v
ref
sin
ref
y
0
ref
= v
ref
cos
ref
(2.76)

0
ref
=
ref
Su supone que v
ref
y
ref
=
0
ref
y sus derivadas estn acotadas.
Se supondr tambin que:
lim
t
v
ref
(t) 6= 0; lim
t

ref
(t) 6= 0 (2.77)
lo que signica que se pretende seguir una trayectoria, ya que en el caso en que fueran
nulas, el problema consistira en alcanzar una postura de referencia ja.
El problema de seguimiento consiste en encontrar una ley de control:
u =

v

= (,
ref
, v
ref
,
ref
) (2.78)
tal que:
lim
t
[(t)
ref
(t)] = 0 (2.79)
Este problema de seguimiento involucra una ecuacin dinmica del error
ref
.
Considrese el siguiente cambio de coordenadas:
_
_
e
1
e
2
e
3
_
_
=
_
_
sin cos 0
cos sin 0
0 0 0
_
_
_
_
x
ref
x
y
ref
y

ref

_
_
(2.80)
Derivando con respecto al tiempo, se obtiene:
e
0
1
= (x
ref
x) cos (x
0
ref
x
0
) sin (y
ref
y) sin + (y
0
ref
y
0
) cos
2.7 Aplicacin de la teora de control 66
e
0
2
= (x
ref
x) sin (x
0
ref
x
0
) cos (y
ref
y) cos (y
0
ref
y
0
) sin
e
0
3
=
ref
(2.81)
Sustituyendo las expresiones de x
0
ref
, x
0
, y
0
ref
, y
0
de (2.76) y (2.61) se obtiene
e
0
1
= [(x x
ref
) cos + (y y
ref
) sin] v(sin
2
+ cos
2
) +v
ref
(sin
ref
sin + cos
ref
cos )
e
0
2
= [(x
ref
x) sin + (y
ref
y) cos ] +v
ref
(sin
ref
cos cos
r
sin )
e
0
3
=
ref
(2.82)
Sustituyendo (2.80) en (2.82) y haciendo:
u
1
= v +v
ref
cos e
3
(2.83)
u
2
=
ref

se llega a
e
0
=
_
_
0 0
0 0
0 0 0
_
_
e +
_
_
0
sine
3
0
_
_
v
ref
+
_
_
1 0
0 0
0 1
_
_

u
1
u
2

(2.84)
Linealizando el sistema (2.84) alrededor del equilibrio (e = 0, u = 0), para e
3
sucientemente pequeo, puede emplearse el siguiente sistema lineal variante en el tiempo:
e
0
=
_
_
0
ref
(t) 0

ref
(t) 0 v
ref
(t)
0 0 0
_
_
e +
_
_
1 0
0 0
0 1
_
_

u
1
u
2

(2.85)
Si v
ref
y
ref
son constantes, se tiene un sistema lineal e invariante en el tiempo cuya
matriz de controlabilidad es:
C = [B AB A
2
B] =
_
_
1 0 0 0
2
ref
v
ref

ref
0 0
ref
v
ref
0 0
0 1 0 0 0 0
_
_
(2.86)
Si v
ref
y
ref
son diferentes de cero, el sistema es controlable. Ntese que si v
ref
y

ref
= 0 (sistema de referencia en reposo), se pierde la controlabilidad.
2.7 Aplicacin de la teora de control 67
2.7.2.2 Ley de control lineal
En Canudas [10] se propone la ley de control:
u
1
= k
1
e
1
u
2
= k
2
sgn(v
ref
)e
2
k
3
e
3
(2.87)
Sustituyendo en la ecuacin de error (2.85), se obtiene:
e
0
= Ae =
_
_
k
1

ref
0

ref
0 v
ref
0 k
2
sgn(v
ref)
k
3
_
_
e (2.88)
El polinomio caracterstico viene dado por:
det(sI A) = s(s +k
1
)(s +k
3
) +v
ref
k
2
sgn(v
ref
)(s +k
1
) + (s +k
3
)
2
ref
(2.89)
Si se hace k
3
= k
1
la ecuacin caracterstica es:
(s +k
1
)[s(s +k
1
) +v
ref
k
2
sgn(v
ref
) +
2
ref
] = 0 (2.90)
Identicando con una ecuacin caracterstica:
(s + 2b)(s
2
+ 2bs +b
2
) = 0 (2.91)
y escogiendo los valores del coeciente de amortiguamiento y frecuencia natural no
amortiguada b para que los polos estn situados donde se desee, los valores de las ganancias
de realimentacin seran:
k
1
= 2b
k
2
=
b
2

2
ref
|v
ref
|
(2.92)
k
3
= 2b
2.7 Aplicacin de la teora de control 68
Ntese que la ganancia k
2
aumenta cuando |v
ref
| se hace pequea. Este problema
puede evitarse mediante un procedimiento de variacin de polos deseados con la velocidad,
al cual se denomina de escalado de velocidad. De esta forma si, por ejemplo, se hace:
b = (
2
ref
+ v
2
ref
)
1/2
(2.93)
con > 0, las ganancias de control son:
k
1
= 2(
2
ref
+ v
2
ref
)
1/2
k
2
= |v
ref
| (2.94)
k
2
= 2(
2
ref
+ v
2
ref
)
1/2
Cuando v
ref
=
ref
= 0 no se realiza ninguna accin de control, lo cual es coherente
con la prdida de controlabilidad antes mencionada.
2.7 Aplicacin de la teora de control 69
2.7.3 Seguimiento de caminos
2.7.3.1 Planteamiento del problema
Considrese el problema de seguimiento de un camino conocido que se ilustra en la gura
(2.13), en la cual M es la proyeccin del punto de guiado P sobre el camino. Se emplea un
sistema mvil de coordenadas que tiene centro en M y ejes segn la tangente y la normal
al camino en este punto. Sea la distancia con signo entre M y P, o coordenada segn la
normal al camino en M. En este punto, la curvatura del camino es
c
y el radio de curvatura
R
c
= 1/
c
(distancia CM en la gura).
C
M
B
c
v cos ( - )
A
P
v
c
Y
X
Figura 2.13.- Seguimiento de caminos utilizando teora de control
Sea el ngulo de orientacin del vehculo,
c
el ngulo de orientacin del camino,

=
c
, y V cos

la proyeccin de la velocidad lineal del vehculo sobre la tangente al
camino en M. Si ds es la distancia recorrida sobre el camino desde un punto de referencia,
aplicando semejanza de los tringulos CAP y CBM en la gura (2.13), se obtiene la
siguiente ecuacin, que iguala el movimiento que se realiza sobre la tangente al camino
2.7 Aplicacin de la teora de control 70
en M y el del vehculo:
s
0
R
c
=
v cos
R
c

(2.95)
siendo R
c
el radio de curvatura del camino en el punto M. La curvatura en dicho punto
viene dada por
c
(s) = 1/R
c
. Por tanto, puede escribirse:
s
0
=
1

c
(s)
v cos

c
(s)

(2.96)
Por otra parte, si se considera el movimiento del vehculo en la direccin normal al
camino en M, puede escribirse:

0
= v sin (2.97)
Finalmente, derivando en

=
c
, se obtiene:

0
=
d
c
dt
(2.98)
siendo la velocidad angular del vehculo. Teniendo en cuenta que d
c
=
c
(s)ds, la
expresin (2.98) puede escribirse como:

0
=
c
(s)s
0
(2.99)
Por tanto, se llega a:
s
0
= v cos

1
1
c
(s)

0
= v sin

(2.100)

0
= v cos

1
1
c
(s)
Supuesto conocido un camino, y la velocidad del vehculo v(t), estando acotadas
tanto la velocidad como su derivada v
0
(t), se trata de encontrar una ley de control,
2.7 Aplicacin de la teora de control 71
sucientemente suave:
= k[s, ,

, v(t)] (2.101)
tal que el vehculo siga el camino o, lo que es lo mismo, que se cumpla:
lim
t
(t) = 0
lim
t

(t) = 0 (2.102)
Obsrvese que, en este caso, se trata de anular los errores de seguimiento de dos
variables (distancia al camino y diferencia de orientacin

). Por otra parte, ahora se
considera una nica variable de control . En efecto, en el seguimiento de caminos se
considera exclusivamente la separacin del robot del camino. Sin embargo, la posicin del
robot a lo largo del camino (caracterizada por el valor de la distancia con signo sobre el
camino s) depende de la velocidad v, la cual no se utiliza como variable de control.
Para resolver este problema se considera la variable auxiliar:
u = v cos(

)

c
(s)
1
c
(s)
(2.103)
con lo cual el sistema (2.100) puede escribirse como:
s
0
= v cos

1
1
c
(s)

0
= v sin

(2.104)

0
= u
2.7.3.2 Ley de control lineal
Se considera, en primer lugar, un mtodo de control basado en la linealizacin de las
ecuaciones (2.104) segn la tangente en el punto ( = 0,

= 0). Obsrvese que, en


2.7 Aplicacin de la teora de control 72
este caso, para controlar lateralmente el vehculo slo se necesita considerar la segunda y
tercera ecuacin de (2.104). Si

es sucientemente pequeo puede escribirse:

0
= v

0
= u (2.105)
Este sistema es controlable y estabilizable utilizando realimentacin lineal del vector
de estado. En Canudas [10] la ley de control se escribe en la forma:
u = k
1
v k
2
|v|

(2.106)
siendo k
1
> 0, k
2
> 0. La ecuacin caracterstica en bucle cerrado correspondiente a la
variable de estado es:

00
+k
2
|v|
0
+k
1
v
2
= 0 (2.107)
Este comportamiento dinmico puede estudiarse escalando en velocidad mediante la
variable:

0
=

(2.108)
siendo la distancia recorrida:
=
Z
t
0
|v| d (2.109)
En este caso, se tiene:

00
+k
2

0
+k
1
= 0 (2.110)
Las constantes k
1
, k
2
se eligen para conseguir un comportamiento dinmico
determinado, se emplean las expresiones:
k
1
=
2
n
k
2
= 2b (2.111)
2.7 Aplicacin de la teora de control 73
siendo b una frecuencia natural no amortiguada relacionada con la distancia de
seguimiento y un coeciente de amortiguamiento (amortiguamiento crtico cuando
= 1)
Captulo 3
Arquitecturas para control de robots
3.1 Introduccin
La organizacin de un sistema robtico determina sus capacidades para cumplir tareas
y reaccionar a eventos [26]. La estructura de control de un robot autnomo debe tener
capacidades de decisin y reaccin. Las situaciones deben ser anticipadas por el robot
y como consecuencia las acciones adecuadas donde el robot debe reaccionar a eventos sin
retrasos. Para conocer estos requirimientos una estructura de control de un robot debe tener
las siguientes propiedades:
1. Programabilidad
Con la programabilidad se hace alusin a la especicacin de tareas como acciones
que es necesario ejecutar, formulando objetivos que son necesarios cumplir y la
posibilidad de planicar acciones de acuerdo con el estado actual del robot y de su
entorno.
2. Eciencia
Se reere tanto a la eciencia en la realizacin de una tarea (tiempo de ejecucin
precisin) como a los recursos empleados (hardware y software necesarios). En
principio, la eciencia se consigue disponiendo de modelos apropiados del robot y de
su entorno. Tambin se debe denir, de la forma ms precisa posible, los lmites sobre
74
3.2 Requerimientos generales de la arquitectura 75
los tiempos de ejecucin y recursos empleados para realizar las funciones de control
necesarios para la ejecucin de las operaciones especicadas.
3. Capacidad de evolucin
Es un requerimiento de especial inters en arquitecturas concebidas para proyectos
innovadores, o de demostracin (como el presente trabajo), en los cuales pueden
producirse revisiones signicativas e incorporacin de nuevas tecnologas, equipos y
componentes.
4. Grado de autonoma
El grado de autonoma es otra especicacin bsica en el diseo de la arquitectura,
el cual indica la independencia de operacin sin la intervencin de un supervisor. En
general, todas las propuestas de arquitecturas de control inteligente consideran un
elevado grado de autonoma.
5. Adaptabilidad
Est relacionada con la exibilidad, entendida como capacidad de funcionamiento
en entornos diversos, poco conocidos, con capacidad de responder ante cualquier
eventualidad.
3.2 Requerimientos generales de la arquitectura
En el diseo de la arquitectura del sistema de control de un robot, puede distinguirse
entre el diseo funcional y la implantacin. En el primer caso, se trata de denir una
3.2 Requerimientos generales de la arquitectura 76
estructura lgica que cumpla con requerimientos de diseo, estudiando las interrelaciones
entre las distintas funciones que es necesario realizar, deniendo niveles de jerarquizacin
y estableciendo un compromiso entre planes para cumplir objetivos y reacciones ante
situaciones no previstas en los planes. En el segundo, se trata esencialmente de asignar
unos recursos software y hardware a las funciones especicadas en la arquitectura
funcional. Esta segunda fase es imprescindible en cualquier proyecto de robtica que debe
concluir con una realizacin prctica [26].
Diferentes arquitecturas para la navegacin de robots autnomos han sido propuestas
en los ltimos aos, stas incluyen arquitecturas jerrquicas que dividen las funciones
del robot en capas de alto nivel (modelamiento y planeacin) y capas de bajo nivel
(percepcin y ejecucin). Arquitecturas basadas en comportamientos [8], que logran
funciones complejas combinando otras ms simples producidas por comportamientos
bsicos, y arquitecturas hbridas, que combinan organizacin en capas con descomposicin
basadas en comportamientos en la ejecucin de cada capa.
3.2.1 Diseo funcional de la arquitectura
El enfoque tpico consiste en partir de las tareas que es necesario realizar y descomponerlas
en funciones, deniendo las interacciones entre ellas. Los problemas tpicos que hay que
abordar en el diseo de arquitecturas de control son:
1. Denicin de niveles de jerarquizacin
Para ello, se suele seguir un enfoque descendente con renamientos jerrquicos
y planes descendentes hasta llegar a los bucles de control de los actuadores. Las
3.2 Requerimientos generales de la arquitectura 77
caractersticas dinmicas asociadas a las funciones, as como su complejidad
computacional, juegan un papel importante en la denicin de esta estructura
jerrquica.
2. Compromiso planes/reacciones
Este compromiso es hoy da tpico en el diseo de arquitecturas de sistemas de control
de robots. Se trata de establecer un compromiso entre la ejecucin de planes mediante
estrategias de bsqueda, de la forma ms aproximada posible a la ptima, para alcanzar
unos objetivos previamente denidos, y la capacidad de reaccin a contingencias no
previstas a partir de informacin sensorial. En principio, para entornos bsicamente
conocidos y estticos, es posible disponer de modelos sucientemente precisos, por lo
que el sistema de control podra tener una arquitectura orientada fundamentalmente a
la ejecucin de planes, manteniendo una cierta capacidad de reaccin ante imprevistos.
3. Conocimiento del estado
Se trata de denir la informacin que debe mantener el sistema de control sobre el
estado del robot y su entorno.
De especial inters es la representacin del entorno mediante mapas y/o conocimientos
simblicos, as como la denicin de estructuras de datos que represente de forma
adecuada dicho estado para su actualizacin y empleo para la generacin de acciones
en tiempo real.
3.3 Arquitectura general del robot mvil 78
4. Otras caractersticas
En la denicin funcional de la arquitectura es necesario involucrar tambin la
denicin de prioridades (mayores a las funciones relacionadas con la seguridad),
la asignacin de tareas, tpicamente continua en algunas funciones, tales como la
evitacin de obstculos, y bajo demanda en otras, tales como el reconocimiento de
un determinado objeto. Asimismo, puede distinguirse entre funciones sncronas y
asncronas.
3.2.2 Gestin de ejecucin e implantacin.
Se trata esencialmente de denir las relaciones entre las funciones del sistema y los recursos
software y hardware disponibles. El tema puede abordarse desde la perspectiva tpica
de las arquitecturas para control en tiempo real. De esta forma, el primer compromiso que
hay que adoptar es el grado de distribucin de los recursos. En un sistema centralizado
existen una serie de mdulos dedicados a percepcin, planicacin de tareas/misiones,
planicacin de trayectorias y control de movimientos, los cuales se comunican todos
con un mdulo central en el que se mantiene toda la informacin relevante del robot y su
entorno (geometra, conocimiento simblico, posicin y trayectoria del robot, etc.). Este
mdulo se encarga de comunicar y sincronizar los restantes mdulos.
3.3 Arquitectura general del robot mvil 79
3.3 Arquitectura general del robot mvil
La arquitectura general del robot mvil est compuesta de dos niveles: un nivel de
decisin, y un nivel funcional. Este ltimo est compuesto de mdulos que implementan
las funciones para lograr el procesamiento de la informacin de los sensores y realizar el
control de los dispositivos. En el nivel de decisiones es asncrono, mientras que en el nivel
funcional todas las funciones se realizan de una manera sncrona. En la gura (3.1) se
presenta la arquitectura de control propuesta para el robot mvil.
Procesamiento bsico
Tratamiento de seales
Sensores
Control de dispositivos
Actuadores
Navegacin Autnoma Aplicacin especfica
Nivel de
decisiones
Nivel
funcional
Figura 3.1.- Arquitectura de control del robot mvil
Basndose en el diseo funcional y la implantacin presentados en la seccin (3.2)
se llev a cabo el diseo del hardware y software del robot mvil para cumplir con la
arquitectura de control propuesta.
Captulo 4
Hardware del robot mvil
4.1 Introduccin
Con los avances en el desarrollo de microprocesadores, actuadores y sensores sus precios
han disminuido y por este motivo ha crecido la popularidad de construir robots por hobby
en los ltimos aos. Otra razn por la cual la popularidad ha aumentado es que existe hoy
en da la posibilidad de adquirir kit o juegos de accesorios para construir robots mviles.
Uno disponible comercialmente y menos caro, es el rug warrior robot kit. Tambin
existen varias compaas produciendo tarjetas de desarrollo con microprocesadores de
bajo costo, listas para ser usadas en cualquier aplicacin. Por otro lado muchos sensores
comienzan a estar disponibles, especialmente los sensores infrarrojos (IR). Hace pocos
aos la compaa Sharp introdujo una nueva generacin de rangenders IR. Adems,
mdulos de sensores pre-ensamblados como brjulas digitales y sencillas cmaras de
visin estn disponibles hoy en da. Estos mdulos trabajan independientemente del
procesador principal y se interconectan a travs de interfaces seriales. Debido al auge
del hardware en la robtica, ha comenzado a ser ms fcil la construccin de un robot
que pueda desempear comportamientos sencillos. Sin embargo aunque mucho del nuevo
hardware est proyectado para los acionados, es insuciente para construir un robot de
navegacin.
80
4.1 Introduccin 81
Durante los ltimos aos, algunas compaas comenzaron a prestar sus servicios a los
acionados, algunos investigadores han fundado compaas que construyen robots, como el
caso del Dr. Mark W. Spong, fundador y presidente de la empresa Mechatronics Systems
1
quien fue investigador del Departamento de Control Automtico del CINVESTAV.
Anteriormente estos investigadores haban estado a la vanguardia en el desarrollo de los
robots y ahora estn compartiendo a la comunidad investigadora todo lo relacionado al
tema. Para tener acceso a los avances que se han logrado existe hoy en da la posibilidad de
comprar un robot pero desafortunadamente son muy caros. En la gura (4.1) se muestran
algunos robots, estos son ms sosticados y caros de izquierda a derecha.
Figura 4.1.- Robots disponibles comercialmente, organizados de izquierda a derecha de acuerdo su aumento
tanto en precio como en capacidad, el Rug Warrior, ActiveMedia Pioneer-DXe, iRobot Magellen, iRobot B21
El prestigiado robot de investigacin iRobot B21 cuesta alrededor de $4,500 dlares
US. El modelo base del robot contiene 48 sensores sonares, 24 sensores telmetros
(rangenders) infrarrojos y posee un procesador Pentium. La plataforma tambin da
soporte a accesorios como rangenders lser y sistema de visin computarizado. Un robot
ms costeable es el ActiveMedia Pioneer-Dxe, con un procesador Siemens 166 y 8 sonares,
1
Pgina en internet: http://www.prairienet.org/msi
4.2 Mecnica del robot mvil 82
este cuesta alrededor de $3,495 dlares US. El Pioneer-Dxe tambin acepta accesorios y
viene con software muy diverso. El kit menos caro disponible es el rug warrior. Este cuesta
alrededor de $600 dlares US. e incluye un procesador Motorola HC11 y su principal
detector de objetos es un sencillo sensor detector/emisor Sharp con un rango de 15 cm.
[20].
El objetivo del diseo del hardware (mecnico y electrnico) del robot mvil que
se presenta en este trabajo consiste en superar las capacidades del rug-warrior y tener
capacidades cercanas como sea posible a los robots de investigacin de rango medio
como el ActiveMedia Pioneer-Dxe. Aunque este robot cuesta algunos miles de dlares,
el presupuesto del robot mvil es inferior al costo del rug-warrior, que se toma como
referencia con respecto a su precio.
4.2 Mecnica del robot mvil
La construccin de la mecnica del robot mvil desde sus componentes bsicos es una
tarea difcil. Una de las ms difciles fue el diseo del sistema propulsin. El sistema
de propulsin para robots que trabajan en el interior de un recinto casi siempre consiste
en motores elctricos. Disear un sistema de manejo elctrico requiere conocimientos en
la seleccin de los motores correctos para el tamao y peso del robot. El motor puede
tener incorporado una caja o sistema de engranaje, ste proporciona algunas ventajas pero
usualmente reducen el trabajo directo para el motor. Por consiguiente para un robot de
tamao mediano el sistema de engranaje tiene que ser construido, el cual requiere habilidad
para su construccin. Las dimensiones para el diseo y construccin del robot mvil fueron
4.2 Mecnica del robot mvil 83
basadas en los requisitos para participar en el concurso Fire-Fighting Home Robot que
organiza el Trinity College en la ciudad de Hartford, Connecticut, USA.[31]
4.2.1 Componentes mecnicos del robot mvil
La eleccin de algunos componentes mecnicos del robot mvil se bas en la relacin
costo-eciencia de cada uno de ellos. El robot mvil cuenta con los siguientes componentes
mecnicos bsicos
2
los cuales se pueden apreciar en la gura (7.1) del Apndice A.
chasis (1)
motor con sistema de engranaje (2)
ruedas (2)
motor elevador (1)
ventilador(1)
4.2.1.1 Chasis del robot
Rueda
Izquierda
Rueda
Derecha
Rueda
de soporte
(o rueda loca)
Figura 4.2.- Diagrama del chasis del robot mvil del tipo robot diferencial
2
El nmero entre parntesis indica la cantidad.
4.2 Mecnica del robot mvil 84
El diseo del chasis del robot mvil est basado en un robot diferencial el cual consiste
en tener dos ruedas laterales las cuales proporcionan el sistema de direccionamiento y la
traccin del robot mvil, adems de tener una o ms ruedas de soporte como se muestra
en la gura (4.2). La propulsin de las ruedas se lleva mediante dos motores elctricos.
Basndose en este modelo el chasis del robot mvil tiene una forma circular, y las ruedas
as como todos los componentes estn dentro del crculo. Esta forma circular evita que
las esquinas de una forma cuadrada o rectangular interrieran con los movimientos que el
robot desempear como se muestra en la gura (4.3), los cuales consisten en girar el robot
en su propio eje o de girar apoyndose en una de las ruedas
Giro hacia
la derecha
Esquina interfiriendo
en el movimiento
Figura 4.3.- Ventajas de la forma circular del chasis del robot mvil
Ya que el robot mvil es un prototipo, el objetivo de la construccin de la estructura
es que se tenga un acceso fcil a los principales componentes para realizar adaptaciones
o modicaciones durante el desarrollo de las pruebas, adems de utilizar material ligero y
resistente para que el robot pueda desplazarse y efectuar los giros lo ms rpido posible.
En un prototipo anterior se utiliz material acrlico, pero ste era muy frgil, por lo cual se
decidi utilizar aluminio. El diseo de la estructura de dos plataformas est pensado para
4.2 Mecnica del robot mvil 85
que el robot pueda alojar todos los componentes electrnicos en una tableta experimental
o protoboard, bateras y sistema de propulsin.
La estructura y los principales componentes se pueden observar en la gura (4.4).
A continuacin se describe con mayor detalle cmo est conformado el chasis del robot
movil. La plataforma inferior es un crculo de aluminio de 20 cm. de dimetro en la cual
se encuentran las bateras, el sistema de propulsin (motores y sistema de engranaje), dos
llantas laterales de traccin, una rueda trasera (rueda loca) de 1 cm. de dimetro que sirve
para mantener en posicin de equilibro al robot. Adems cuenta con un encoder por llanta,
una pequea estructura que sujeta y asegura el funcionamiento los sensores reectores y un
pequeo protoboard donde se encuentra el sistema de regulacin de voltaje. Por su parte,
la plataforma superior es un circulo de aluminio de 20 cm. que soporta en su parte de
abajo una estructura que permite tener un arreglo de los sensores infrarrojos, en la parte de
arriba se encuentra el protoboard principal el sensor pyroelctrico. En la parte superior del
robot se encuentra una estructura que soporta el sistema mecnico encargado de elevar el
ventilador que funciona como sistema de ingeniera de extincin de fuegos.
4.2.1.2 Motor con sistema de engranaje
El sistema mecnico no fue mandado a construir, sino que en base a la idea de cmo debera
ser el robot mvil, se buscaron los componentes mecnicos y se adaptaron a la estructura
que ya estaba diseada. El sistema de traccin del robot mvil es una adaptacin del
sistema de expulsin de videocassetes modelo VXKS0778, cuenta con un motor elctrico
DC modelo MXN-13FB12M y sistema de engranaje basados en un sinfn y engranes como
4.2 Mecnica del robot mvil 86
3 Sensores de proximidad
SHARP GP2D12
2 Sensores reflectores
HOA1405-2
Motor y sistema
de engranaje
Sensor pyroelectrico
ELTEC
2 Encoders opticos
Ventilador
Figura 4.4.- Estructura del robot mvil con los principales componentes
se muestra en la gura (4.5). Gracias a la facilidad de uso de los motores elctricos de DC
aplicndoles una cantidad voltaje recibida desde el controlador de velocidad, ocasiona que
se pongan en funcionamiento, cuando el voltaje es invertido el giro del motor cambia de
sentido. Las caractersticas del motor fueron estimadas de un motor del mismo tipo de la
compaa Mabuchi Motor RF370CA. Como se muestra en la grca de la gura (4.6) este
tipo de motor puede producir un torque mximo de 187gcm (18.3 mNm) cuando se le
aplica una corriente de 1.06A y gira a una velocidad de 5600 rpm sin carga.
4.2.1.3 Ruedas
Las ruedas con las que se desplaza el robot son unas ruedas de aeromodelismo de la marca
DU-BRO de 8.75 cm. de dimetro teniendo una separacin de 16.5 cm. entre ellas, a stas
se les anex una liga en la supercie como se muestra en la gura (4.7), con la nalidad
4.2 Mecnica del robot mvil 87
Figura 4.5.- Sistema de expulsin de videocasetes modelo VXKS0778
de aumentar la friccin y evitar que el robot se patinara. Con estas ruedas se logra un
desplazamiento tangencial de 27.5 cm. en una vuelta completa.
4.2.1.4 Motor elevador
El sistema encargado de subir y bajar el ventilador est basado en un motor DC de la
compaa COPAL modelo LC30-191 con reductor integrado con una relacin de 1/30 el
cual se muestra en la gura (4.8). Este motor tiene un torque de 1500gcm(15Ncm) y gira
a una velocidad de 5400 rpm.
4.2.1.5 Ventilador
Hoy en da existen muchos sistemas de ingeniera para la extincin de fuego, sin embargo
uno de los ms sencillos y fciles de implementar para que el robot mvil realice su tarea
es el uso de un ventilador. Ya que slo se est desarrollando un prototipo para apagar una
simulacin de un incendio, consideramos que es suciente utilizar un ventilador de plstico
montado en un motor de DC como se muestra en la gura (4.9). Las especicaciones
4.3 Electrnica del robot mvil 88
Figura 4.6.- Grca del torque del motor Mabuchi modelo RF370CA
del motor no pudieron ser determinadas, pero se realizaron pruebas para una fuente de
alimentacin de 5V con lo cual generaba suciente aire para apagar la vela.
4.3 Electrnica del robot mvil
El diseo de la electrnica del robot mvil est basado en la electrnica digital la
cual se representa mediante niveles alto y bajo ( 0 y 1) la cual es procesada por el
microcontrolador, pero tambin se debe considerar el tratamiento de las seales analgicas
las cuales tienen niveles continuos que varan en el tiempo. Un objetivo para el diseo
de la electrnica en general es utilizar el menor nmero de componentes aprovechando al
mximo las caractersticas del microcontrolador.
4.3 Electrnica del robot mvil 89
Figura 4.7.- Ligas sobre la supercie de la rueda para aumentar la friccin
4.3.1 Conversin Analgico-Digital
En la naturaleza, muchas cantidades son analgicas, es decir, son cantidades continuas.
Las cantidades fsicas tales como temperatura, presin, tiempo y velocidad son ejemplos
de cantidades analgicas. Es por eso que para llevar a cabo la interfaz entre los mundos
analgico y digital se requieren dos procesos bsicos que son: la conversin analgica-
digital (A/D) y la conversin digital-analgica (D/A). Un convertidor A/D toma un voltaje
de entrada analgico y despus de cierto tiempo produce un codigo de salida digital que
representa la entrada analgica. El proceso de conversin A/D es generalmente ms
complejo y largo que el proceso D/A y se han creado y utilizado muchos mtodos.
4.3.1.1 Seales Analgicas y Seales Digitales
Una magnitud analgica es aquella que tiene valores continuos dentro de un determinado
rango, a diferencia del conjunto de valores discretos de las seales digitales. Para ilustrar
la diferencia entre la representacin analgica y digital de una magnitud, tomemos el caso
de una tensin que vara en el rango de 0 V a +15 V. La representacin analgica de esta
4.3 Electrnica del robot mvil 90
Figura 4.8.- Motor con reductor integrado para elevar el ventilador
magnitud toma todos los valores entre 0 y +15 V, que son un nmero innito. En el caso de
representar digitalmente la tensin empleando un cdigo binario de 4 bits, solo se pueden
denir dieciseis valores. Para representar ms valores entre 0 y +15 deben utilizarse ms
bits en el cdigo digital. De manera que una magnitud analgica se puede representar con
un cierto grado de precisin utilizando un cdigo digital, que representa valores discretos
especcos dentro del rango.
4.3.1.2 Muestreo de seales analgicas
El principio fundamental de seales digitales es el muestreo de una seal analgica. En la
gura (4.10) se ilustra en forma conceptual el proceso de obtener muestras de una seal
analgica.
El interruptor que se muestra se cierra peridicamente bajo el control de una seal
peridica de pulsos (reloj). El tiempo de cierre del interruptor, t, es relativamente corto,
y las muestras obtenidas se almacenan (retienen) en el condensador. El circuito (a) de la
4.3 Electrnica del robot mvil 91
Figura 4.9.- Ventilador para la extincin de la vela
gura (4.10) se conoce como circuito de muestreo y retencin (S/H). Como se indica, el
circuito S/H consta de un interruptor analgico que puede ser puesto en prctica por una
compuerta de transmisin MOSFET, un condensador de almacenamiento y un amplicador
regulador (que no se muestra).
Entre los intervalos de muestreo, es decir, durante los intervalos de retencin, el nivel
de voltaje del condensador representa las muestras de seal que buscamos. Cada uno de
estos niveles de voltaje es entonces alimentado a la entrada de un convertidor A/D, que
proporciona un nmero binario de N bits proporcional al valor de la muestra de la seal.
El hecho de que podamos hacer nuestro procesamiento en un nmero limitado de
muestras de una seal analgica, mientras se pierden detalles de seal analgica entre
muestras, est basado en el teorema de muestreo, el cual indica que la frecuencia mnima
de muestreo debe ser el doble de la frecuencia de la seal a muestrear.
4.3.1.3 Cuanticacin de seal
Considere una seal analgica cuyos valores van de 0 a +10 V. Supongamos que se desea
convertir esta seal a forma digital y que la salida requerida es una seal de 4 bits. Sabemos
que un nmero binario de 4 bits puede representar 16 valores diferentes, 0 a 15; se
4.3 Electrnica del robot mvil 92
Figura 4.10.- Proceso de muestreo de seales analgicas
deduce que la resolucin de nuestra conversin ser 10V/15=2/3 V. Por lo tanto, una seal
analgica de 0V estar representada por 0000, 2/3 V por 0001, 6 V por 1001 y 10 V por
1111. Todos los nmeros de muestra anteriores fueron mltiplos del incremento bsico
(2/3 V). Surge ahora una pregunta con respecto a la conversin de nmeros que estn
entre estos niveles incrementales sucesivos. Por ejemplo, considere el caso de un nivel
analgico de 6.2 V, est entre 18/3 y 20/3, pero como est ms cercano a 18/3 lo tratamos
como si fuera 6 V y lo codicamos como 1001. Este proceso se denomina cuanticacin.
Obviamente, hay errores que reciben el nombre de errores de cuanticacin. Si se usan ms
bits para representar (o simplemente codicar) una seal analgica se reducen los errores
de cuanticacin pero se requieren circuitos ms complejos.
4.3 Electrnica del robot mvil 93
4.3.1.4 Convertidor Analgico-Digital del microcontrolador
El microcontrolador PIC16F877 tiene incorporado un convertidor Analgico-Digital
(A/D) de 10 bits de resolucin, procesa seales analgicas y trabaja con la tcnica de
aproximaciones sucesivas. Dispone de un multiplexor 8 a 1 que permite aplicar a la entrada
del convertidor A/D diversas seales analgicas desde las patitas del circuito integrado
(seleccin de canal). La resolucin que tiene cada bit procedente de la conversin tiene un
valor que es funcin de la tensin de referencia Vref, de acuerdo con la frmula siguiente:
Resoluci on = (V ref +V ref)/1.024 = V ref/1.024.
As, por ejemplo, si el Vref+ = 5 VDC y el Vref- es tierra, la resolucin es de 4.8
mV / bit. Por tanto, a la entrada analgica de 0 V le corresponde el cdigo digital de 00
0000 0000 y para la de 5 V un cdigo de 11 1111 1111. La tensin de referencia determina
los lmites mximo y mnimo de la tensin analgica que se puede convertir. El voltaje
diferencial mnimo es de 2 V. A travs del canal de entrada seleccionado, se aplica la
seal analgica a un condensador de captura y mantenimiento (sample and hold) y luego
se introduce al convertidor, el cual proporciona un resultado digital de 10 bits [3].
4.3.2 Modulacin de ancho de pulso
La modulacin de ancho de pulso comunmente conocido como PWM por sus siglas en
ingles
3
es una tcnica utilizada para controlar dispositivos, o para proveer un voltaje
variable de corriente continua. Algunas aplicaciones en las que se utiliza PWM son
controles de motores, de iluminacin y de temperatura.
3
PWM = Pulse Width Modulation
4.3 Electrnica del robot mvil 94
La seal generada tendr frecuencia ja y tiempos de encendido y apagado variables.
En otras palabras, el perodo de la seal se mantendr constante, pero la cantidad de tiempo
que se mantiene en alto y bajo dentro de un perodo puede variar.
El ciclo de trabajo del total del perodo (t = tOn + tOff) es tOn, es decir el tiempo que
se mantiene en alto.
La gura (4.11) muestra una onda cuadrada que cuando es vista como una seal de
PWM, su ciclo de trabajo es del 50%. En otras palabras, est en On la mitad del tiempo.
tOn tOff
t
Figura 4.11.- Seal modulada con un ciclo de trabajo del 50%
La gura (4.12) muestra otra seal PWM, con un ciclo de trabajo del 10%. Variando
el ciclo de trabajo el voltaje promedio de la salida puede ser controlado. Por ejemplo, una
seal PWM que tiene 10V de amplitud y un 50% de ciclo de trabajo, provee 5V de salida
promedio. Cuando se incrementa o decrementa el ciclo de trabajo de una seal MAP, la
salida promedio se incrementa o decrementa respectivamente.
4.3.2.1 Control de Velocidad de un Motor DC
Quizs una de las aplicaciones PWM ms difundidas en la industria sea el control de
velocidad de motores DC, incluyendo servo motores. El principio de funcionamiento es
4.3 Electrnica del robot mvil 95

tOn tOff
t
Figura 4.12.- Seal modulada con un ciclo de trabajo del 10%
muy sencillo, solo necesitamos una fuente de poder con un voltaje variable de DC. Si
tenemos un motor de 12VDC y lo energizamos ste comenzar a acelerar, como sabemos
y podemos apreciar el motor no responde inmediatamente, ste demora un pequeo
tiempo en alcanzar su mxima velocidad. Si en algn momento durante la aceleracin
desconectamos el switch (lo apagamos) entonces el motor bajar su velocidad. Si
conmutramos la alimentacin al motor lo sucientemente rpido lograramos que ste
trabajara a una velocidad dentro del rango de cero a mxima velocidad.
Esto es exactamente lo que hace un controlador PWM, conmuta la alimentacin del
motor a alta velocidad entregando una serie de pulsos. El control de la velocidad del motor
se obtiene variando (modulando) el ancho de los pulsos. Utilizamos este principio para
controlar la velocidad de los motores del robot mvil.
4.3.3 Componentes electrnicos del robot mvil
Los componentes electrnicos del robot mvil estn diseados para proporcionar una
seal acondicionada al procesador central del robot mvil. Este cuenta con los siguientes
4.3 Electrnica del robot mvil 96
componentes electrnicos
4
de los cuales algunos se pueden apreciar en la gura (7.1) del
Apndice A.
Microcontrolador (1)
Puente H (2)
74LS08 (1)
74LS04 (1)
Reguladores de voltaje (5)
Bateras (2)
Sensores infrarrojos (3)
Sensor pyroelctrico (1)
Sensores de posicin o encoders (2)
Sensores reectores (2)
4.3.3.1 Microcontrolador
El microcontrolador es el cerebro del robot mvil ya que controla el comportamiento y
acciones que tomar el robot. La unidad de control que ejecuta el algoritmo de control del
robot, el proceso de las rdenes para los actuadores del vehculo y la adquisicin de seales
provenientes de los sensores est basada en un solo microcontrolador aprovechando al
mximo los recursos con los cuales cuenta y con sto se reduce el nmero de componentes
electrnicos externos como se muestra en la gura (4.13).
4
El nmero entre parntesis indica la cantidad.
4.3 Electrnica del robot mvil 97
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
MCLR
RA0
RA1
RA2
RA3
RA4/TOCKI
RA5
RE0
RE1
RE2
Vdd
Vss
OSC1
OSC2
RC0
RC1
RC2
RC3
RD0
RD1
RB7
RB6
RB5
RB4
RB3
RB2
RB1
RBO/INT
Vdd
Vss
RD7
RD6
RD5
RD4
RC7
RC6
RC5
RC4
RD3
RD2
PIC16F877
+5
+5
4MHz
33pF
33pF
+5
L293B
L293B 7408
7404
Optosensor Derecho
Optosensor Izquierdo
Micro -Switch
Encoder Derecho
Encoder Izquierdo
Pyroelctrico
GP2D12 Derecho
GP2D12 Enfrente
GP2D12 Izquierdo
SENSORES
Venti-
lador
Elevador
Motor
Der.
Motor
Izq.
ACTUADORES
ELECTRNICA
Figura 4.13.- Diagrama de conexin de los principales componentes del robot mvil
4.3 Electrnica del robot mvil 98
El microcontrolador seleccionado para esta aplicacin es el microcontrolador
PIC16F877 de la compaa Microchip (gura (4.14)), el cual tiene las siguientes
caractersticas:
- Memoria de programa tipo FLASH con una capacidad de 8K
- Memoria de datos (RAM) con capacidad de 368 bytes
- Memoria EEPROM con capacidad de 256 bytes
- Dos mdulos CCP (captura y comparacin de datos), en estos mdulos se pueden
implementar mdulos PWM (modulacin por ancho de pulso).
- Tres timers. Dos de ocho bits y uno de diecisis.
- Comunicacin Serie
- Comunicacin paralelo
- Conversor A/D de 10 bits, con posibilidad de 5 canales.
- Velocidad mxima de procesamiento de 20 MHz
Figura 4.14.- Microcontrolador PIC16F877
El microcontrolador utilizado permite una reprogramacin constante del robot, de
modo que en el desarrollo se puede elaborar, correr, probar, experimentar, y corregir
algoritmos de control sobre la misma plataforma de hardware, con el solo n de evolucionar
4.3 Electrnica del robot mvil 99
la programacin. La programacin del microcontrolador se lleva a cabo a travs de un
programador externo tanto a la computadora como al robot. Existen varios tipos de
programadores para microcontroladores pero stos se diferencan por llevar a cabo la
programacin del microcontrolador de manera serial o paralela, siendo esta ltima la ms
rpida. Durante el desarrollo de la programacin se utiliz el programador serial PIC-
Star de la compaia Microchip y un programador paralelo desarrollado por alumnos de la
Facultad de Ciencias de la Electrnica que tiene caractersticas similares al programador
comercial EPIC.
4.3.3.2 Puente H
Para poder suministrar la corriente necesaria para el movimiento de los motores se requiere
de una interfase entre los componentes electrnicos y los motores, sto se realiza con ayuda
del puente-H L293B. Este tiene la nalidad de dar la polarizacin requerida a los motores
de tal forma que stos puedan girar en ambas direcciones.
En este caso el robot mvil dispone de tres puente-H, cada uno es un circuito
integrado con matrcula L293B el cual es un driver de 4 canales capaz de proporcionar
una corriente de salida de hasta 1A por canal. Cada canal es controlado por seales de
entrada compatibles TTL y cada pareja de canales dispone de una seal de habilitacin
que desconecta las salidas de los mismos. Dispone de una entrada para la alimentacin de
las cargas que se estn controlando, de forma que dicha alimentacin es independiente de
la lgica de control. Con el L293B se puede operar dos motores por integrado. El robot
mvil cuenta con dos puente-Hconectados en paralelo para dividir la carga de corriente que
4.3 Electrnica del robot mvil 100
controla los motores con los cuales se desplaza el robot y el otro controla los dos motores
(ventilador y motor elevador) en el sistema del ventilador como se muestra en la gura
(4.15).
Vs
1
2
3
4
5
6
7
8
L293
Vss
16
15
14
13
12
11
10
9
M
Ventilador
Ventilador Adel.
Ventilador Atras
Elevador Adel.
Elevador Atras
+5 +5
+5
M
Elevador
+5
Figura 4.15.- Diagrama de la conexin del puente-H encargado de los motores del ventilador
Ya que el microcontrolador solo cuenta con dos seales PWM y se requiere
proporcionar cuatro seales de control para el sentido del giro de los motores con los que se
desplaza el robot, se requiere tener un arreglo de compuertas mediante el integrado 74LS08
como se muestra en el diagrama de la gura (4.16).
4.3.3.3 Bateras
El robot cuenta con dos fuentes de alimentacin o bateras recargables de 12 volts a 1.2
amperes conectadas en serie. Una de ellas proporciona la energa para los componentes
electrnicos mediante un regulador de voltaje 7805, la otra batera proporciona la
4.3 Electrnica del robot mvil 101
Vcc
GND
1
2
3
4
5
6
7
14
13
12
11
10
9
8
74LS08
Vs
1
2
3
4
5
6
7
8
L293
Vss
16
15
14
13
12
11
10
9
M
Motor Izq.
M
Motor Der.
PWM1
Adelante Izq.
Atrs Izq.
PWM2
Adelante Der.
Atrs Der.
+5
+18
+5
+18
Figura 4.16.- Diagrama del circuito para las seales PWM necesarias para el puente-H para los motores del
robot.
alimentacin de los motores a travs del puente-H. La razn de utilizar dos bateras es
por los efectos del ruido, y por el hecho de que cuando los motores arrancan, stos
consumen demasiada corriente lo cual origina que el voltaje de las dos bateras descienda
por debajo del nivel requerido por los componentes electrnicos ocasionando que el sistema
se reinicialice.
Cada batera dura aproximadamente 20 minutos cuando es utilizada tiempo completo
y requiere un tiempo de carga de 5 horas. Sin embargo fuentes de alimentacin externas
pueden reemplazar a las bateras cuando el robot es probado en una posicin esttica.
Las bateras estn localizadas en la parte inferior del robot mvil y aprovechando su
peso estn colocadas para dar mayor estabilidad al robot cuando ste hace movimiento de
giros como se muestre en la gura (4.17).
4.3 Electrnica del robot mvil 102
Figura 4.17.- Bateras
4.3.4 Sensores
Los sensores son transductores que convierten algn fenmeno fsico en seales elctricas,
que posteriormente pueden ser interpretadas por los microprocesadores implementados en
los robots. Esto puede hacerse usando un convertidor analgico-digital (A/D), cargando un
valor desde un puerto entrada-salida (I/O) o usando una interrupcin externa. Normalmente
se usa una interfaz electrnica entre el sensor y el microprocesador para acondicionar o
amplicar la seal del sensor.
Un factor determinante para seleccin del sistema sensorial que utiliza el robot mvil,
es el costo de los sensores. Si se contara con un gran presupuesto para la adquisicin de
los mismos, se podran adquirir sensores con un rango ms amplio y una mejor precisin.
Algunos sensores de deteccin de objetos con estas caractersticas podran ser un laser
rangender pero su costo es sumamente elevado, alrededor de decenas de miles de pesos.
Otro sensor con propiedades ms avanzadas y capacidad de detectar fuentes de calor o
incendios es un sistema estero de visin computarizada, el cual requiere dos cmaras,
4.3 Electrnica del robot mvil 103
y un procesador de alta capacidad para procesar el video de entrada en informacin de
deteccin de objetos e interpretacin de imgenes. Ya que se desea desarrollar un prototipo
de bajo costo la mejor eleccin en cuanto a los sensores para detectar objetos o sensores
de proximidad fueron los sensores de luz infrarroja. Con respecto a la eleccin del sensor
para detectar fuentes de calor fue el sensor pyroelctrico.
4.3.4.1 Sensor de proximidad de luz infrarroja
Este tipo de sensores utiliza un pequeo haz de luz infrarroja para determinar la distancia
a la cual se encuentra el objeto basndose en el principio de triangulacin. Los mejores
sensores de este tipo disponibles son los de la compaa SHARP de la familia GP2Dxx. El
dispositivo que se utiliz es el GP2D12 el cual produce una salida de voltaje analgico no
lineal dependiendo de la distancia en la cual se encuentre el objeto como se muestra en la
gura (4.18). Ya que la salida del sensor es no montona a 10 cm., esto requiere que el
sensor se ubique de tal forma que nunca puedan darse medidas menores a los 10 cm. Esto se
logr colocando el sensor dentro de una circunferencia de menor dimetro al dimetro del
chasis del robot. El rango est limitado alrededor de 80 cm., el voltaje de salida comienza
a ser inexacto cuando la distancia sobrepasa este lmite. Este es debido al ruido elctrico
presente en el sistema. Otro problema es que el sensor est calibrado para objetos de
color blanco. Los objetos que son de un material oscuro, o tienen propiedades reejantes
diferentes pueden causar voltajes de salida errneos. A pesar de estas limitaciones, este
sensor es an el ms econmico y es el sensor principal utilizado para la navegacin en el
robot mvil .
4.3 Electrnica del robot mvil 104
Figura 4.18.- Grca del voltaje salida contra distancia del Sensor Sharp GP2D12
El robot mvil utiliza tres sensores de proximidad localizados en el parte inferior de
la plataforma superior como se muestra en la gura (4.19). Estos sensores estn orientados
para tomar las lecturas de los objetos que se encuentren en el frente, a la izquierda o derecha
del robot.
Sensor de enfrente
Sensor de la izquierda
Sensor de la derecha
Figura 4.19.- Sensores Sharp GP2D12
La conexin de los sensores GP2D12 con el microcontrolador se realiza entre una
entrada de un convertidor analgico-digital y la salida del sensor. Ya que el sistema de
navegacin se basa en la lectura de estos sensores lo ms conveniente es reducir el mayor
ruido posible. Esto se logra usando una tensin regulada mediante un 7805 por cada sensor
4.3 Electrnica del robot mvil 105
para no introducir ruido en las medidas debido a que la tensin caiga por debajo de su
umbral de funcionamiento y utilizando un condensador entre la alimentacin y tierra para
reducir el ruido en la alimentacin debida a la corriente requerida por el led emisor.
4.3.4.2 Sensor pyroelctrico
El diseo de este tipo de sensores est basado en la deteccin de fuentes de calor. La salida
de un sensor pyroelctrico cambia cuando ocurren pequeos cambios en la temperatura
del sensor. El elemento activo en tal sensor es un material cristalino que genera una
pequea carga elctrica cuando es expuesto al calor en forma de radiacin infrarroja. Estos
elementos son capaces de detectar radiacin en un rango de 8 a 10 m, rango de energa
infrarroja emitida por los humanos. El sensor que se utiliz fue el sensor pyroelctrico de
la compaa Eltec modelo 442-3 como se muestra en la gura (4.20) el cual incorpora dos
cristales de tantalato de litio.
Figura 4.20.- Sensor pyroelctrico Eltec 442-3
La salida del sensor es la diferencia de voltaje amplicada a travs de los cristales. En
caso de que ambos cristales tengan la misma temperatura, el sensor produce una seal de
4.3 Electrnica del robot mvil 106
salida que se mantiene estable a aproximadamente 2.5 volts con una fuente de alimentacin
de 5 V. Si una persona o fuente de calor camina frente al sensor de izquierda a derecha, la
seal se incrementa alrededor de 1 volt por arriba de los 2.5 V para luego caer por debajo
de este valor y nalmente volver a su estado estable como se muestra en la gura (4.21).
Figura 4.21.- Seal tpica de un sensor pyroeltrico conforme cruza una fuente de calor
Ya que el sensor es un integrado de pequeas dimensiones, se requiere que se disee
un mtodo para tratar de concentrar la mayor cantidad de energa posible en un solo punto,
sto se logra mediante el uso de una lente de fresnel y colocando el sensor en el foco
de esta lente. El robot mvil cuenta con un sensor pyroelctrico, junto con la lente de
fresnel, montados en la parte superior de la plataforma de arriba en la parte frontal como
se muestra en la gura (4.22). Para la aplicacin de encontrar el comienzo de un incendio
(representado por una vela), el robot tendr que desempear una rutina de movimiento o de
bsqueda en el cual el sensor ser el que se encuentre en movimiento y la fuente de calor
esttica.
4.3 Electrnica del robot mvil 107
Figura 4.22.- Lente de fresnel para el sensor pyroelctrico
La conexin del sensor pyroelctrico con el microcontrolador se realiza entre una
entrada de un convertidor analgico-digital y la salida del sensor. Como la deteccin de la
fuente de calor slo se basa de la lectura de este sensor una vez ms se reduce el mayor
ruido posible mediante un condensador entre la alimentacin y tierra.
4.3.4.3 Sensores de posicin
Conocer la localizacin del robot en cualquier momento es importante. Distintos tipos
de sensores pueden ser usados para conocer la posicin. Un sensor de Sistema de
Posicionamiento Global (GPS por sus siglas en ingls Global Position System) puede
reportar de una manera exacta la localizacin del robot mvil, pero ste es muy caro. Una
solucin econmica que es comn en la mayora de los robots mviles es un encoder de
desplazamiento. Este usualmente contiene un disco que tiene segmentos blancos y negros
alternados y es situado en ambas ruedas. Un par detector-emisor infrarrojo (IR) es colocado
cerca del disco y ste cambia su salida cuando ocurre una transicin de un segmento blanco
a uno negro en el disco. Esta transicin es acondicionada mediante un 74LS04 para tener
los niveles TTL adecuados para que pueda ser detectado por el microcontrolador, el cual
contabiliza estas transiciones en distancia. El nico problema con el sensor encoder de
4.3 Electrnica del robot mvil 108
desplazamiento es que ste reporta cualquier movimiento en las ruedas, esto incluye los
movimientos cuando las ruedas se deslizan. Esto puede conducir a que el encoder reporte
una distancia incorrecta. Ya que el encoder reporta el desplazamiento de las ruedas, cuando
el robot tiene que hacer movimiento de giros, stos pueden ser controlados con el npumero
de pulsos que cada rueda debe dar.
El robot mvil cuenta con un encoder ptico SHARP IA05 por cada llanta, el cual se
muestra en la gura (4.23), localizados en la parte inferior de toda la estructura , ya que las
especicaciones de este modelo no se consiguieron, se tomaron las de un modelo similar
el GP1A05E.
Figura 4.23.- Encoder ptico Sharp IA05 y disco segmentado
En la gura (4.24) se muestra el diagrama del circuito que acondiciona las seales
de los encoders para tomar los niveles TTL adecuados para ser detectados por el
microprocesador.
4.3.4.4 Sensor reector (optosensor)
En la navegacin autnoma se emplean ciertas marcas para indicar al robot mvil que
est en alguna posicin. El entorno en el cual trabaja el robot mvil cuenta con una lnea
4.3 Electrnica del robot mvil 109
Vcc
GND
1
2
3
4
5
6
7
14
13
12
11
10
9
8
74LS04
+5
GND Disco A
TIMER0
TIMER1
GP1A05E
Disco B
GP1A05E
3
3
0
+
/
-

5
%


3
3
0
+
/
-

5
%


Figura 4.24.- Diagrama del circuito acondicionador de las seales de los encoders.
blanca en el suelo negro para indicar la entrada a un cuarto (o puerta). Esta marca es
detectada mediante un sensor reector de luz infrarroja. El sensor est compuesto por un
diodo emisor infrarrojo y un fototransistor dentro de un mismo encapsulado, el detector
responde a la radiacin del diodo emisor solo cuando un objeto reejante pasa por su zona
de respuesta.
El robot mvil cuenta con dos sensores reectores para detectar la lnea cuando los
dos sensores estn encima de la lnea. Estos sensores estn ubicados en la parte inferior
frontal de todo el robot mvil como se muestra en la gura (4.25) a una altura de 8 mm.
en la cual se detecta la lnea blanca en el suelo. La distancia que existe entre estos dos
sensores de 2 cm., asegura que la lnea sea detectada sin importar la velocidad a la cual se
encuentra el robot.
4.3 Electrnica del robot mvil 110
Figura 4.25.- Sensor reector Sharp HOA140
Captulo 5
Software del robot mvil
5.1 Introduccin
El microcontrolador PIC16F877 (mostrado en la gura (4.14) del captulo (4)) de la
compaa Microchip que utiliza el robot, es el encargado de llevar a cabo todo las
decisiones para controlar los actuadores (calculando la cantidad de corriente que se debe
proporcionar a cada uno de ellos), e interpretar la informacin tanto analgica como digital
que entregan los sensores para que el robot mvil realice la tarea asignada como la de
encontrar una fuente de calor dentro de un recinto y apagarla. Todas estas tareas son
dirigidas por un programa escrito en lenguaje ensamblador descargado en la memoria del
microcontrolador.
Para poder desarrollar el programa del robot mvil es necesario comprender los
aspectos bsicos relacionados a la tcnica empleada para la navegacin autnoma.
5.1.1 Navegacin Autnoma
La navegacin autnoma es una de las reas de mayor desarrollo con respecto a los robots
mviles desde los primeros prototipos de robots mviles desarrollados a mediados de
los sesentas [5]. Por navegacin autnoma se entiende la habilidad de un robot para
moverse satisfactoriamente y sin intervencin humana. La navegacin autnoma requiere
un gran nmero de capacidades, incluyendo la capacidad de ejecutar acciones para alcanzar
111
5.1 Introduccin 112
objetivos elementales, como desplazarse a determinado lugar, hasta reaccionar en tiempo
real a eventos no previstos, como evitar un sbito obstculo. La mayora de los robots
mviles presentan una especie de evasin de obstculos, desde primitivos algoritmos que
detectan un obstculo deteniendo el robot a una pequea distancia, hasta sosticados
algoritmos que habilitan al robot desviarse del obstculo [7].
Para llevar a cabo la navegacin autnoma, en algunos casos es necesario elaborar un
mapa del entorno y ubicarse dentro de l (modelamiento y planeacin), en otros se requiere
fusionar informacin sensorial para determinar una reaccin y adaptarse a los cambios del
ambiente (fusin sensorial), en otros se requiere descomponer la funcin global en otras
ms sencillas que actan de manera independiente y se fusionan a la salida (fusin de
comportamientos) y en muchos otros casos se requiere de una combinacin de todo lo
anterior.
Una estrategia para la navegacin autnoma es el mtodo de seguimiento de pared
[15]. En este mtodo la navegacin del robot est basada en el traslado del robot a una
distancia predenida de la pared. Si un obstculo es encontrado, el robot interpreta el
obstculo como si fuera otra pared, siguiendo el contorno del obstculo hasta que ste
pueda reanudar su curso original. El mtodo de seguimiento de pared ha sido un problema
de inters para la investigacin en robtica ya que ste puede ser aplicado en ambientes
de ocinas as como en laberintos, corredores y pasillos largos [2]. El seguimiento de
pared ha sido examinado con dos mtodos, uno basado en patrones y otro basado en
comportamiento. En el primero las lecturas de los sensores son tomadas para construir
lneas rectas (segmentos de la pared). Despus estas lneas rectas son comparadas con un
5.1 Introduccin 113
patrn del entorno y nalmente una trayectoria es planeada hacia la pared ms cercana
encontrada. El principal inconveniente de este mtodo es que los patrones del entorno son
difciles de obtener y mantener en tiempo real, limitando as la aplicacin a ambientes no
estructurados y dinmicos. Por el contrario, el mtodo basado en comportamiento, no hace
suposiciones y usa la informacin sensorial en un nivel bajo de extraccin de parmetros.
El seguimiento de pared es generado como un enlace continuo entre sensar y actuar [8].
Existen dos posibilidades para seguir una pared con el mtodo basado en comportamiento,
modo de la derecha, donde el robot sigue una pared que est a su derecha, y el modo de
la izquierda, donde el robot sigue una pared a su izquierda. En cualquiera de los modos
basados en el modelo de comportamiento el robot debe conducir siguiendo el contorno de
la pared a una distancia ja pre-denida [6].
5.1.2 Teora del giro de radio cero
El diseo del robot mvil basado en un robot diferencial, tiene la capacidad de girar sobre
su propio eje, la cual es conocida como la caracterstica de giro de radio cero. Al hacer
girar una rueda hacia adelante y otra hacia atrs (como se muestra en la gura (5.1)) con la
misma velocidad, se lleva a cabo la funcin de giro de radio cero [19].
5.1.3 Condiciones del entorno
Para el desarrollo del programa, fue necesario denir las condiciones bajo las cuales
estar trabajando el robot. Estas condiciones estn basadas en las bases para participar
en el concurso Fire-Fighting Home Robot que organiza el Trinity College en la ciudad
5.1 Introduccin 114
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
Figura 5.1.- Giro de radio cero
de Hartford, Connecticut, USA. El ambiente en que trabaja el robot es una maqueta de
dimensiones 2.40m x 2.40m como se muestra en la gura (5.2). El plano propuesto
para la maqueta se presenta en la gura (5.2) (el cual ha sido modicado en base al
diagrama original del concurso), las puertas o entradas a cada cuarto (representadas por
lneas punteadas en el diagrama) tienen un ancho de 46 cm. y estn marcadas con una lnea
blanca de 2.5 cm de ancho pegadas en el suelo.
El material de construccin para las paredes es indistinto pero ste debe ser de color
blanco para que los sensores IR obtengan su mejor desempeo. El suelo debe ser lo ms
liso posible adems de ser de color negro para que las marcas que indican la entrada a algn
cuarto sean detectadas con los sensores reectores. Otra condicin que se encuentra en las
bases del concurso es que el robot inicie su recorrido en el punto p con una vecindad de
radio r la cual se muestra por el crculo de inicio, marcado con una H en la gura (5.2).
La vela encendida, que es supuestamente un pequeo foco de incendio iniciado en
una casa, debe tener una altura entre 15 a 19 cm. La vela debe estar al centro de un
5.2 Programa principal 115
semicrculo blanco de 30 cm. de radio pintado en el suelo, este crculo se representa con la
letra V en la gura (5.2).
La vela no ser ubicada en algn pasillo, pero podr ser ubicada dentro de algn
cuarto en cualquiera de las esquinas inclusive en la esquina de la entrada de la habitacin,
sin embargo, el robot podr avanzar por lo menos 33 cm. en una habitacin antes de
encontrarse con la vela. El semicrculo que rodea la vela no tocar la lnea de entrada de la
habitacin.
2.40 m
2
.
4
0

m
46 cm
V
30 cm
H
Figura 5.2.- Diagrama de la maqueta utilizada para la navegacin autnoma
Para tener una idea ms clara referente al aspecto de la maqueta se presenta una
fotografa en la gura (5.3), donde se pueden apreciar las principales caractersticas
descritas anteriormente, adems de que se puede observar una vela apagada dentro del
cuarto que se encuentra en la parte superior de la fotografa.
5.2 Programa principal 116

Circulo indicando la ubicacin de la vela
Lneas blancas para indicar la entrada al cuarto
Figura 5.3.- Fotograa de la maqueta utilizada
5.2 Programa principal
Durante la navegacin autnoma mediante la tcnica de seguimiento de pared, el programa
principal tendr que detectar la lnea que indica la entrada a un cuarto. En ese momento el
robot mvil se alinear para comenzar la bsqueda de la vela encendida dentro del cuarto.
En caso de existir una vela encendida el robot deber acercarse a sta para apagarla. El
diagrama de ujo del programa principal se presenta en la gura (5.4).
El programa principal fue escrito en lenguaje ensamblador de aproximadamente
1000 lneas de cdigo. El programa principal est dividido en dos principales partes:
(1) un algoritmo de navegacin autnoma el cual procesa las seales de los sensores
IR y mediante un algoritmo de control, maneja el comportamiento del robot mediante
los motores y (2) un algoritmo de la aplicacin especca el cual tiene como objetivo
5.2 Programa principal 117
Inicio
Inicializacin y configuracin Buscar vela
Navegacin Autnoma
Entrada al cuarto?
NO
Existe vela
dentro del cuarto?
Acercarse a la vela y
apagarla
Fin
SI
SI
NO
Figura 5.4.- Diagrama de ujo del programa principal
interpretar las marcas que indican la entrada a un cuarto para buscar la fuente de calor y en
caso de existir, dirigirse hacia ella y apagarla. El programa principal incluye la rutina para
congurar e inicializar las variables y puertos a utilizar, adems de incluir una subrutina de
retardo para asegurar que todos los sensores estn polarizados correctamente.
La ejecucin del programa principal cumple con la arquitectura de control presentada
en la seccin (3.2). El nivel de decisiones de la arquitectura de control del robot mvil, se
lleva a cabo en el programa principal cuando toma la decisin de llevar a cabo la navegacin
autnoma o realizar la aplicacin especca (en este caso buscar la vela dentro del cuarto y
si es que se encuentra acercarse a ella y apagarla). En el nivel funcional estn situadas las
subrutinas que procesan la informacin proveniente de los sensores y subrutinas de control
del comportamiento del robot.
5.3 Algoritmo de navegacin autnoma 118
5.2.1 Inicializacin de las variables y conguracin del
microcontrolador
Ya que el programa principal fue desarrollado en lenguaje ensamblador, se puede tener
acceso y un mayor control de todas las caractersticas del microcontrolador, sto incluye
congurar los puertos como entrada o salida en base al diagrama de conexin de la
gura (4.13) del captulo (4), denir las propiedades de los canales del convertidor A/D,
congurar los mdulos de captura y comparacin de datos como mdulos de modulacin
de ancho de pulso (PWM), denir el periodo para los pulsos y las rutinas de retardo en
base a la velocidad de procesamiento, (en este caso el microcontrolador funciona con un
cristal de 4 Mhz como se muestra en la gura (4.13)) adems de denir las localidades de
memoria para las variables a utilizar. Lo ms recomendable es inicializar tanto variables
como puertos a un valor inicial, en este caso dicho valor inicial fue cero.
A continuacin se presenta de forma resumida la conguracin de los puertos del
microcontrolador PIC16F877
Puertos de entrada: A0, A1, A2, A4, A5, B0,B7, C0, D7
Puertos de salida C1,C2, D0,D1,D2,D3,D4, B2, B3, B4, B5
Los valores de conguracin para los registros encargados de la conversin A/D son:
ADCON0 00000000
ADCON1 00000000
Los valores de conguracin para los registros con los que se lleva a cabo la
modulacin de ancho de pulso (PWM) con un periodo de 40KHz son:
T2CON 0x04
PR2 0x18
OPTION_REG 11101000
T1CON 0X03
5.3 Algoritmo de navegacin autnoma 119
5.3 Algoritmo de navegacin autnoma
En base a la informacin de la seccin (5.1.1) y las condiciones de la seccin (5.1.3),
analizamos el diagrama de la gura (5.2) y observamos que se puede desarrollar un
algoritmo para navegacin autnoma basndose en la tcnica de seguimiento de pared. El
recorrido del entorno ser en el sentido de las manecillas del reloj por lo tanto la navegacin
autnoma que desempear el robot mvil es la de seguimiento de la pared izquierda.
En base a esta tcnica el algoritmo de navegacin autnoma se basa principalmente en
la lectura que proporciona el sensor de proximidad de la izquierda y del sensor de enfrente.
Ya que estas lecturas son la nica referencia para la navegacin autnoma se desarroll una
subrutina para procesar esta informacin y tener un dato conable.
El algoritmo de navegacin autnoma seguir las instrucciones de manera secuencial,
pero debido a la simplicidad de las subrutinas el tiempo que dura este algoritmo es de
488us (sin hacer ningn giro, ya que si el robot mvil tiene que hacer un giro el tiempo
de ejecucin de cada subrutina depender de la velocidad en que los motores tarden en
realizar el giro). Ejecutndose este algoritmo en un bucle innito se logra que el robot
haga un recorrido dentro de toda la maqueta evitando cualquier obstculo que encuentre
a su paso y conservando una distancia constante a las paredes. El diagrama de ujo del
algoritmo de navegacin autnoma se presenta en la gura (5.5)
5.3.1 Subrutina para medir distancia
Antes de llamar a esta subrutina se deber seleccionar el sensor que dar las lecturas para
medir la distancia. Las lecturas que proporcionan los sensores de proximidad IR contienen
5.3 Algoritmo de navegacin autnoma 120
Algoritmo de navegacin
autnoma
Subrutina checar enfrente
Subrutina seguimiento de pared
Subrutina checar izquierda
Tiempo us
485
145
195
145
Figura 5.5.- Diagrama de ujo del algoritmo de navegacin autnoma
un pico de ruido ocasionado por el led emisor como se mencion en la seccin (1) del
captulo (4), por lo tanto se hace un promedio de tres lecturas del convertidor A/D cada
37us, con este tiempo de muestreo se asegura que aunque una lectura haya sido en el pico
del ruido el promedio de las otras dos lecturas dar un valor cercano al correcto. Una
vez obtenido el promedio de las lecturas del sensor este valor se almacena en memoria y se
convierte a su equivalente en centmetros en base a la tabla que se encuentra almacenada en
la memoria del programa al nal del cdigo. Esta tabla fue denida durante caracterizacin
de los sensores infrarrojos en base al voltaje analgico que proporcionaban los sensores con
respecto a la distancia a la cual se encontraba un objeto, esta tabla coincidio con las grcas
que proporciona el fabricante. Las distancias mayores a 71 cm. no fueron consideradas
y con la nalidad de incrementar el tiempo de conversin entre el valor promedio y la
distancia, la tabla fue reducida a 126 valores. Esta tabla se encuentra en el Apndice C. Si
el valor promedio de las lecturas de los sensores es mayor a 2.8Voriginado por algn error,
5.3 Algoritmo de navegacin autnoma 121
la subrutina detectar este error y regresar al programa principal sin hacer la conversin,
para evitar que el contador del programa se desborde, buscando un valor que no existe en la
tabla. El tiempo que dura esta subrutina es de 135 us. El diagrama de ujo de la subrutina
medir distancia se presenta en la gura (5.6). Esta conversin es conveniente durante el
desarrollo del programa facilitando la programacin, ya que en lugar de hacer referencia a
valores de voltaje haremos referencia a unos valores de distancia.
Subrutina medir distancia
Conversin A/D
Almacer primera lectura
Conversin A/D
(Primera lectura +
segunda lectura) / 2
Conversin A/D
(Primer promedio +
tercera lectura) / 2
Tabla
Voltaje-Distancia
Valor dentro de la
tabla?
Regreso al programa
principal sin realizar la
medicin
Regresar
SI
NO
Tiempo us
37
74
111
135
Figura 5.6.- Diagrama de ujo de la subrutina medir distancia
5.3 Algoritmo de navegacin autnoma 122
5.3.2 Subrutina seguimiento de pared
La distribucin de los sensores de proximidad IR que tiene robot mvil se muestran en la
gura (5.7). Los tres sensores estn dentro de una circunferencia de 10 cm. de dimetro y
a una distancia de 5 cm. del interior del chasis del robot mvil. El sensor de la derecha est
a 45

con respecto al eje horizontal de las ruedas del robot mvil. El sensor de enfrente
est a 90

mientras que el sensor de la izquierda est a 135

. La ventaja de esta distribucin


de los sensores en comparacin a una donde los sensores de derecha, enfrente e izquierda
estuvieran a 0

90

y 180

respectivamente, es que los sensores de la izquierda y la derecha


anticipan las acciones que el robot deber ejecutar.
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
5 cms.
45
90
135
10 cms.
Figura 5.7.- Distribucin de los sensores de proximidad IR
La tcnica de seguimiento de pared est basada en el traslado del robot a una distancia
predenida de la pared. El mtodo seleccionado es el de seguimiento de la pared izquierda,
ya que el sensor de la izquierda no est perpendicularmente a la pared, necesitamos hacer
un anlisis para determinar el valor de la distancia de la pared hasta el sensor para que el
robot permanezca a una distancia perpendicular deseada de la pared.
5.3 Algoritmo de navegacin autnoma 123
Supongamos que el eje de las ruedas del robot mvil se encuentra perpendicular a la
pared de la izquierda como se muestra en la gura (5.8). Sea l la distancia deseada, r el
radio del tamao del robot mvil, rs el radio de la circunferencia de la ubicacin de los
sensores, d la lectura de distancia del sensor de la izquierda, A el punto de interseccin de
la distancia deseada a la pared, B el punto de interseccin entre el haz de luz del sensor de
proximidad IR, C el centro del robot mvil.y el ngulo ACB.
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
Pared
C
l
A
B
r
rs
d
Figura 5.8.- Anlisis de la posicin del sensor de la izquierda.
Deseamos encontrar d. A partir del tringulo ABC sabemos que
cos() =
c.a.
h
=
l +r
d +rs
(5.1)
Despejando d
d =
(l +r)
cos()
rs (5.2)
5.3 Algoritmo de navegacin autnoma 124
La distancia deseada es de 10 cm., el radio del tamao del robot es de 10 cm., el radio
de la circunferencia de la ubicacin de los sensores es de 5 cm. y = 45

, sustituyendo en
(5.2).
d =
10 + 10
cos()
5
d = 23.2842
Esta es la distancia predenida a la cual el robot se trasladar perpendicularmente
con respecto a la pared. Esto se lleva a cabo mediante un sistema de control de lazo cerrado
bsico el cual es ilustrado en la gura (5.9).
Controlador Proceso
Sensor
+
-
Valor de referencia
VR
Valor actual
VA
Figura 5.9.- Sistema de control de lazo cerrado
La tarea bsica del controlador es ajustar el estado de un proceso (variable de actual
VA) a un valor deseado (valor de referencia VR) reduciendo la diferencia entre ambos
valores (denido como el error).
El controlador utilizado es un controlador proporcional. Un uso comn del
controlador proporcional es el control de velocidad de un motor. Si este enfoque se hubiese
tomado para implementar la subrutina seguimiento de pared en el robot mvil, se debera
haber usado dos algoritmos de control para mantener una velocidad constante en cada
motor tomando como entradas los valores proporcionados por los encoders. Ya que el
5.3 Algoritmo de navegacin autnoma 125
controlar solamente la velocidad de los motores no garantiz una conable navegacin
autnoma se tom al robot mvil por completo como todo el sistema a controlar, como se
muestra en la gura (5.10), siendo la variable de referencia la distancia deseada a la pared
(DR) y la variable actual la distancia actual del robot a la pared (DA).
Control de
direccin
Robot mvil
Sensor de
distancia
+
-
Distancia deseada
DR
Distancia actual
DA
Figura 5.10.- Sistema de control para navegacin autnoma
El algoritmo de seguimiento de pared mostrado en la gura (5.11) usa un sencillo
clculo para el controlador, basndonos en la seal que proporciona el sensor de proximidad
IR izquierdo para ajustar el nivel de salida de la seal PWM de cada motor ajustanto la
velocidad (la cual es controlada por el puente-H y es directamente proporcional al voltaje
de las bateras y la duracin del ancho de pulso). Esta implementacin pretende controlar
un efecto secundario (el comportamiento completo del robot) en lugar de un efecto primario
(la velocidad individual del motor) y con esto mantener una distancia constante a la pared
durante la navegacin autnoma.
Con este algoritmo si la distancia actual del robot con respecto a la pared es mayor a
la deseada la velocidad del motor izquierdo disminuir en proporcin al error, mientras que
la velocidad del motor derecho aumentar. El valor inicial de la duracin del pulso para
las seales PWM se j a un 80%. Con este valor se permite que el algoritmo disminuya
o aumente la velocidad de cada motor segn sea el caso para acercar o alejar el robot de
5.3 Algoritmo de navegacin autnoma 126
Controlador
Kp0
Seal PWM0
Rueda Izquierda
Sensor de proximidad IR
izquierdo
+
-
Distancia
Deseada
Distancia
actual
+
+
Controlador
Kp1
Seal PWM1
Rueda Derecha
-
+
Velocidad Deseada
Velocidad Deseada
Error
distancia
Limitador
PWM0
Limitador
PWM1
Figura 5.11.- Diagrama del algoritmo de control seguimiento de pared
la pared. Para evitar que el algoritmo haga que el robot oscile o se detenga algn motor
debido a un error grande, se implement un limitador para que la duracin del pulso de las
seales PWM no fuera menor al 48%.
5.3.3 Subrutina Checar enfrente
Una subrutina que se incluye en el algoritmo de navegacin autnoma es la subrutina
checar enfrente, la cual permite que el robot detecte la pared que se encuentra enfrente.
Aunque la ubicacin del sensor izquierdo del robot a 135

con respecto al eje de las ruedas,


permite anticipar las acciones que el robot debe realizar, el algoritmo de seguimiento de
pared izquierda no es capaz de realizar la vuelta cuando se encuentra una pared a 90

respecto a la pared que est siguiendo (debido a que el error de la distancia comienza a ser
muy grande y el limitador de la duracin del ancho del pulso no permite que este error sea
corregido) al menos que el ngulo sea reducido como se muestra en la gura (5.12).
Ya que la situacin de que el ngulo de las esquinas sea reducido no es posible, la
subrutina checar enfrente mide la distancia de la pared que se encuentra enfrente del
5.3 Algoritmo de navegacin autnoma 127
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
Figura 5.12.- Comportamiento del algoritmo seguimiento de pared ante una pared enfrente
robot mvil. Sea f la distancia a la cual el robot debe girar hacia la derecha como se
muestra en la gura (5.13). El tringulo ABC es semejante al triangulo BCD por lo tanto
f = l +r rs. Sustituyendo los valores ya conocidos tenemos que
f = 10 + 10 5 = 15 (5.3)
Cuando la distancia de enfrente sea de 15 cm. el robot gira 90

hacia la derecha sobre


su propio eje (teora del giro de radio cero), dicho movimiento se lleva a cabo haciendo
girar la rueda derecha hacia atrs mientras la rueda izquierda se mueve hacia adelante al
mismo tiempo. Por otro lado la distancia que deber recorrer cada rueda, es medida con
los encoders del robot mvil utilizando los contadores internos del microcontrolador. El
desplazamiento tangencial que deben hacer las ruedas es calculado de la siguiente manera.
Sea s la longitud del arco, r el radio del crculo (en este caso el radio del tamao del
robot mvil) y el ngulo central del arco (en este caso 90

) como se muestra en la gura


(5.14).
5.3 Algoritmo de navegacin autnoma 128
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
Pared
C
l
A
B
r
rs
d
Pared
f
D
Figura 5.13.- Anlisis de la distancia de enfrente
De la frmula
s =

180

r (5.4)
donde r = la mitad de la distancia de separacin que hay entre las ruedas.
Sustituimos valores
s = 90



180

8.25 cm. = 12.95 cm. (5.5)


Ya que una vuelta completa de la rueda de 27.48 cm. es contabilizada por 30 pulsos
en el encoder, para tener un desplazamiento de 12.95 cm. el contador TMR0 y TMR1L
debern contar 14 pulsos para que el robot realice una vuelta de 90

en su propio eje. El
diagrama de ujo de esta subrutina se presenta en la gura (5.15), en esta ocasin no se
presenta la duracin de cada proceso ya que el tiempo de duracin, depende de la velocidad
en que las ruedas generan los 14 pulsos.
5.3 Algoritmo de navegacin autnoma 129
r
s
Figura 5.14.- Longitud del arco
5.3.4 Subrutina Checar izquierda
Debido a la ubicacin del sensor izquierdo del robot a 135

con respecto al eje de las


ruedas, se debe tomar precaucin de cmo se comportar el robot cuando est realizando
la subrutina de seguimiento de pared y sbitamente se encuentre al nal de una pared a la
cual deber rodear para continuar con la navegacin autnoma. Una vez ms el algoritmo
de seguimiento de pared intentar corregir el error, pero debido al limitador del ancho de
pulso el robot no ser capaz de realizar la navegacin autnoma cuando se encuentre en esta
situacin. La solucin que se propone se presenta de manera grca en la gura.(5.16).
Una vez que el sensor izquierdo tenga una medida mayor a 40 cm. en la posicin
A, (la determinacin de este valor se ver ms adelante) el robot seguir una trayectoria
programada sin utilizar el algoritmo de seguimiento de pared. El robot mvil se deber
mover paralelamente a la pared a la cual estaba recorriendo avanzando 27.4 cm. (el TMR0
y el TMR1L deben contar 30 pulsos proveniente de los encoders respectivos) hasta la
posicin B donde la parte trasera del robot est aproximadamente alineada al nal de esta
pared. Despus el robot realizar un giro hacia la izquierda sobre su propio eje de 62

(la
rueda derecha avanzar 8.92 cm. hacia adelante y la rueda izquierda 8.92 cm. hacia atrs,
5.3 Algoritmo de navegacin autnoma 130
Subrutina checar enfrente
Rueda izquierda hacia adelante
Rueda derecha hacia atras
Distancia del sensor de
enfrente <= 15 cms.?
Regreso
TMR0 = 17?
TMR1L = 17?
Rueda izquierda hacia adelante
Rueda derecha hacia adelante
Regreso
SI
NO
NO
NO
SI
SI
Figura 5.15.- Diagrama de ujo de la subrutina checar enfrente
lo que implica que tanto el contador TMR0 como el contador TMR1L cuenten 9 pulsos
provenientes de los encoders) despues avanzar hasta la posicin C desplazndose 20 cm.
(el contador TMR0 contar 22 pulsos). Aqu realizar un giro, pero en esta ocasin no ser
sobre su propio eje, se tomar como pivote la rueda izquierda. El giro se detendr cuando la
lectura del sensor izquierdo sea de 28 cm. como se observa en la posicin D, para reanudar
el algoritmo de seguimiento de pared.
La distancia del sensor izquierdo en la posicin A de la gura (5.16) fue determinada
en base a una suposicin de la distancia a la cual podra estar el robot al inicio del recorrido.
La distancia del pasillo donde el robot inicia el recorrido es 46 cm. como se indica en las
bases del concurso del Trinity College y se muestra en la gura (5.17). Suponemos que el
5.3 Algoritmo de navegacin autnoma 131
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
R
u e
d
a
I z q
.
R
u
e
d
a
D
e r .
R
u
e
d a
I z q
.
R
u
e d
a
D
e
r .
R
u
e
d
a

I z
q
.
R
u
e
d
a

D
e
r
.
A
B
C
D
Figura 5.16.- Diagrama trayectoria programada
robot est situado a 4 cm. de la pared derecha y el dimetro del robot es de 20 cm., por lo
tanto debemos calcular la distancia mnima de la lectura del sensor izquierdo d para que el
robot inicie el recorrido, en base a la distancia deseada l.
En esta ocasin la distancia deseada es de 22 cm., el radio del tamao del robot es de
10 cm., el radio de la circunferencia de la ubicacin de los sensores es de 5 cm. y = 45

,
sustituyendo en (5.2)
d =
22 + 10
cos()
5
d = 40.2548
5.4 Algoritmo para encontrar la vela y apagarla 132
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
l
4

c
m
s
.
46 cms.
d
22 cms. 4 cms. 20 cms.
Figura 5.17.- Suposicin del inicio del recorrido
El diagrama de ujo de esta subrutina se presenta en la gura (5.18), en esta ocasin
tampoco se presenta la duracin de cada proceso, ya que el tiempo que dura cada uno de
ellos depende de la velocidad en que las ruedas giran.
5.4 Algoritmo para encontrar la vela y apagarla
La maqueta en la cual navegar el robot mvil cuenta con sealizacin para indicar
la entrada a un cuarto mediante una lnea blanca en el suelo como se describi en la
seccin (5.1.3). Esta lnea podr ser detectada por el par de optosensores en cualquier
momento mientras el robot se encuentra realizando la navegacin autnoma generando
una interrupcin, y se indicar con una bandera de acceso si el robot est entrando
5.4 Algoritmo para encontrar la vela y apagarla 133
Subrutina checar izquierda
Avanzar paralelamente a la
pared 30 cms.
Distancia del sensor
izquierdo > 40 cms.?
Regreso
SI
NO
Girar sobre el propio eje
62 hacia la izquierda
Avanzar 20 cms.
Comenzar gira hacia la
izquierda pivoteando sobre la
rueda izquierda
Regreso
Distancia del sensor
izquierdo <= 28 cms.?
SI
NO
Figura 5.18.- Diagrama de ujo subrutina checar izquierda
o saliendo de algn cuarto. El programa principal verica si la bandera de acceso est
activada (indicando la entrada a un cuarto) para ejecutar una subrutina de bsqueda de la
vela dentro del cuarto. Si la vela se encuentra dentro de ese cuarto el robot se deber acercar
a lla para apagarla.
5.4.1 Subrutina de servicio de interrupcin.
Una interrupcin es generada por una seal externa que indica al microcontrolador
posponer cualquier tarea que est realizando y responder al evento inmediatamente. El
cdigo que responde a un evento se llama subrutina de servicio de interrupcin. Esta
5.4 Algoritmo para encontrar la vela y apagarla 134
subrutina es similar a las subrutinas sin embargo sta solo se ejecuta cuando ocurre un
evento. Para atender una interrupcin, el microcontrolador debe guardar el estado de sus
registros, posteriormente debe localizar la subrutina de servicio de interrupcin y transferir
el control a sta. Al terminar la ejecucin de la subrutina de servicio, el microcontrolador
debe recuperar el estado de sus registros que tena antes de ser interrumpido.
Cuando el optosensor izquierdo detecta un cambio de color en el suelo (de negro a
blanco) genera una seal que activa el pinRBO/INT del microcontrolador generando una
interrupcin. La subrutina de servicio de interrupcin es la encargada de determinar si se
est detectando una lnea (la cual indica la entrada a algn cuarto) o la seal del optosensor
fue originada por algn error (una basura en el suelo), en caso de detectar una lnea, si esta
linea indica la salida o entrada del cuarto.
Al comienzo de la subrutina de servicio de interrupcin se almacenan los valores
de los registros W, STATUS y PCLATH en sus respectivas variables temporales. Despus
se verica si la seal del optosensor derecho est activada, en caso de estar desactivada
la subrutina ejecuta una rutina de retardo de 150 ms. esperando que esta seal se active.
Si al trmino de esta rutina de retardo la seal del optosensor derecho no fue activada,
la subrutina regresar al programa principal regresando los valores de los registros W,
STATUS y PCLATH de las variables temporales. Este caso se origina cuando el optosensor
izquierdo genera una seal de error posiblemente ocasionado por una basura en el suelo.
Si la seal del optosensor izquierdo y derecho estn activadas signica que existe
una lnea en el suelo. Ahora la subrutina tiene que determinar si el robot est entrando
o saliendo del cuarto. Como el inicio del recorrido del robot mvil inicia fuera de un
5.4 Algoritmo para encontrar la vela y apagarla 135
cuarto la bandera de acceso est desactivada (con el valor 0), cuando la primera lnea sea
detectada esta bandera se activar (con el valor 1) indicando que el robot est dentro de un
cuarto. Al momento de detectar la segunda lnea la bandera cambiar de valor a 0 indicando
que el robot est fuera del cuarto. Los valores estarn cambiando cada vez que una lnea
sea detectada. Finalmente la subrutina de servicio de interrupcin regresar al programa
principal regresando los valores de los registros W, STATUS, y PCLATH. El diagrama de
ujo de la subrutina de servicio se presenta en la gura (5.19).
subrutina de servicio de
interrupcin
Almacenar registros W,
STATUS y PCLATH variables
temporales
Rutina de retardo de
150ms
Cambiar valor
bandera de acceso
Regreso
Seal optosensor
derecho activada?
Regresar valores de los
registros W, STATUS y
PCLATH variables temporales
Seal optosensor
derecho activada?
SI
NO
SI
NO
Figura 5.19.- Diagrama de ujo subrutina servicio de interrupcin
5.4.2 Subrutina bsqueda de la vela
Si la bandera de acceso est activada, indicando que el robot mvil est en la lnea que
indica la entrada a un cuarto (como se muestra en la posicin A de la gura (5.20)), el
5.4 Algoritmo para encontrar la vela y apagarla 136
programa principal ejecutar la subrutina para buscar la vela dentro de ese cuarto como se
muestra en el diagrama de ujo del programa principal en la gura (5.4).
El sensor responsable de la deteccin de la vela o de alguna fuente de calor es el
sensor pyroelctrico, esta fuente de calor deber estar en movimiento para que sea detectada
mientras el sensor est jo, como se describi en la seccin (2) del captulo (4). Ya que la
vela se encuentra en una posicin esttica, el robot tendr que realizar un movimiento de
bsqueda dentro del cuarto. Antes de hacer este movimiento de bsqueda, el robot mvil
deber avanzar 13.7 cm. de la lnea de entrada para entrar al cuarto (posicin B de la gura
(5.20)). El movimiento de bsqueda es un giro de 103

desde la entrada del cuarto hacia


la derecha sobre la rueda derecha, (desde la posicin B hasta la posicin C de la gura
(5.20)) por lo tanto la rueda izquierda se desplazar 30 cm. para llevar a cabo este giro.
El contador TMR0 deber contar 33 pulsos del encoder para que la rueda izquierda realice
este desplazamiento. Despus el robot mvil deber hacer un giro de regreso a la posicin
inicial (desde la posicin C hasta la posicin B de la gura (5.20)), una vez ms la rueda
se desplazar 30 cm., pero en esta ocasin hacia el otro sentido y por lo tanto el contador
TMR0 deber contar otros 33 pulsos del encoder. Si en el transcurso del primer giro el
valor de la seal de sensor pyroelctrico es menor a 2.1V se activa una variable temporal
que indica que se encontr una vela. Para vericar que realmente haya una vela o fuente
de calor dentro del cuarto y que la deteccin del sensor no haya sido errnea, durante el
segundo giro (de derecha a izquierda) el valor de la seal del sensor pyroelctrico deber
ser mayor a 2.9V para activar una segunda variable temporal que conrma la existencia de
una vela dentro del cuarto.
5.4 Algoritmo para encontrar la vela y apagarla 137
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
R
u
e
d
a

I
z
q
.
R
u
e
d
a

D
e
r
.
Rueda Izq.
Rueda Der.
A
B
C
103 = 30cms = 33 pulsos
Figura 5.20.- Diagrama buscar vela
El diagrama de ujo de la subrutina bsqueda de la vela se presenta en la gura
(5.21).
5.4.3 Subrutina apagar la vela
Si durante los giros para la bsqueda de vela el sensor pyroelctrico no detect ninguna vela
o fuente de calor, las variables temporales permanecern desactivadas y el robot continuar
con el algoritmo de navegacin autnoma. En cambio si estas variables estn activadas
signica que existe una vela dentro de ese cuarto, por lo cual el robot deber apagar la vela.
El robot mvil podra utilizar cualquier mtodo para apagar la vela, ya que el objetivo del
presente trabajo es el avance de la robtica mvil y no necesariamente el de las tcnicas de
extincin de incendios, no se usar ningun mtodo sosticado, para apagar la vela. El robot
5.4 Algoritmo para encontrar la vela y apagarla 138
Subrutina buscar vela
Avanzar 13.74 cms
Regreso
Se encontr vela
en el primer giro
Sensor pyroelctrico
< 2.1 V?
Rueda izquierda ha
avanzado 30 cms?
Activar rueda izquierda hacia
adelante
NO
NO
Se encontr vela
en el segundo giro
Sensor pyroelctrico
> 2.9 V?
Rueda izquierda ha
avanzado 30 cms?
Activar rueda izquierda
hacia atras
NO
SI
NO
SI SI
Figura 5.21.- Diagrama de ujo de la subrutina buscar vela
mvil apagar la vela soplndole aire con el ventilador que tiene integrado (a pesar de que
ste no es un mtodo muy prctico para apagar un fuego en la vida real), por lo tanto el
robot se deber acercar a la vela.
Para acercarse a la vela el robot mvil debe continuar con el algoritmo de navegacin
autnoma hasta que los optosensores detecten el semicrculo blanco que indica la ubicacin
de la vela. Cuando este semicrculo sea detectado el robot mvil se habr detenido a una
distancia aprox. de 30 cm. de la vela (como se muestra en la gura (5.22)) ya que la vela
est al centro de una semicircunferencia de 30 cm. de radio como se indic en la seccin
(5.1.3).
En esta posicin el robot se debe detener para evitar tirar la vela, despus el ventilador
del robot comenzar a girar y el motor encargado de levantar el ventilador ser activado.
El ventilador encendido ser levantado 110

(como se indica en la gura (5.22)). El


5.4 Algoritmo para encontrar la vela y apagarla 139
110
30 cms.
Figura 5.22.- Diagrama de la posicin del robot para apagar la vela.
movimiento de levantar el ventilador encendido hasta la posicin en que las aspas del
ventilador apuntan hacia la ama de la vela, propicia una corriente de aire que intenta
apagar la vela. Ya que este movimiento no garantiza la extincin de la ama de la
vela, el robot permanecer en esa posicin 2 segundos, despus el robot mvil realizar
dos pequeos giros sobre su propio eje hacia la izquierda con el ventilador levantado y
encendido, la duracin de cada giro ser de 100 ms. y permanecer sin mover las ruedas 2
segundos entre cada giro. Para conrmar que la ama de la vela se apague por completo el
robot mvil volver a hacer 4 giros sobre su propio eje hacia la derecha con el ventilador
levantado y encendido, la duracin de cada giro ser de 100 ms. y permanecer sin mover
las ruedas 2 segundos entre cada giro. Una vez concluida esta secuencia de giros, el
ventilador se apagar y regresar a su posicin inicial. En esta posicin el robot mvil
habr terminado su aplicacin y el programa principal se detendr.
El diagrama de ujo de la subrutina apagar vela se presenta en la gura (5.23).
5.4 Algoritmo para encontrar la vela y apagarla 140
Subrutina apagar vela
Optosensores detectan
semicrculo de la vela?
Variables de bsqueda
de vela activadas?
Regresar
Continuar con
navegacin autnoma
SI
NO
Detener robot en esa posicin
Encender ventilador
Levantar ventilador
Fin del programa
Permanecer 2 segundos
en posicin actual
Girar sobre eje
hacia la izquierda
Esperar 100ms.
Detener robot en esa posicin
Permanecer 2 segundos
en posicin actual
Detener ventilador y regresarlo
a la posicin inicial
NO
Contador de giros = 1
Contador giros = 2?
Contador de giros =
Contador de giros + 1
NO
Girar sobre eje
hacia la derecha
Esperar 100ms.
Detener robot en esa posicin
Permanecer 2 segundos
en posicin actual
Contador de giros = 1
Contador giros = 4?
Contador de giros =
Contador de giros + 1
NO
SI
SI
Figura 5.23.- Diagrama de ujo subrutina apagar vela.
Captulo 6
Pruebas computacionales y resultados
experimentales
6.1 Simulacin computacional del modelo de
direccionamiento diferencial
Las simulaciones computacionales se realizaron para observar cmo el modelo matemtico
propuesto en el captulo describa el comportamiento de un robot mvil.
La primera prueba se trata de obtener las trayectorias seguidas por la posicin y
orientacin de un robot mvil con guiado diferencial en base a las ecuaciones (2.48)
cuando se aplican diversas combinaciones en velocidades angulares a las ruedas izquierda
y derecha. Para ello se emple el esquema de Simulink que aparece en la gura (6.1). Se
consider un radio de las ruedas de c =0.04375 m. y una separacin entre las mismas de
b = 0.165 m. Asimismo, la posicin inicial ser el origen de coordenadas y la orientacin
inicial tendr un valor de -/4 rad. Se simular la evaluacin del robot durante 30 segundos.
El primer resultado se muestra en la gura (6.2), donde se tiene una misma velocidad
angular (1rad/s) en el mismo sentido en las ruedas izquierda y derecha, por lo que el robot
avanza en lnea recta con la orientacin inicial.
Para el segundo caso, se aplica una velocidad angular a la rueda derecha un poco
superior (1.2 rad/s) a la que se aplica a la rueda izquierda (1 rad/s), con lo que el robot gira
continuamente hacia la izquierda como se muestra en la gura (6.3).
141
6.1 Simulacin computacional del modelo de direccionamiento diferencial 142
Figura 6.1.- Diagrama de Simulink para el clculo de posicin y orientacin de robots mviles con guiado
diferencial
En el tercer caso se aplican iguales velocidades angulares en ambas ruedas (1 rad/s),
pero en sentidos opuestos, con lo cual se pone de maniesto una de las principales
caractersticas del guiado diferencial: la posibilidad de que el robot gire sobre s mismo
como se muestra en la gura (6.4).
Como segunda prueba se trata se obtener el ngulo de direccin de la rueda delantera
, la velocidad angular

y la velocidad lineal v
t
de un triciclo clsico cuando realiza una
trayectoria que describe un arco de circunferencia 1, denido por x(t) = cos t, y(t) = sint,
desde el punto inicial (1,0) hasta el punto nal (0,1). Para realizar esta prueba se necesita
obtener el modelo inverso del triciclo convencial, tomando en cuenta (2.43) del captulo
(2), el jacobiano puede escribirse como:
J =
_

_
sin cos 0
cos cos 0
(sin )/l 0
0 1
_

_
(6.1)
6.1 Simulacin computacional del modelo de direccionamiento diferencial 143
Figura 6.2.- Primer caso simulado para el guiado diferencial
Aplicando 2.31 se obtiene la siguiente expresin para el modelo inverso:

v
t

=
"
l
2
sincos
(l cos )
2
+sin
2

l
2
cos cos
(l cos )
2
+sin
2

l sin
(l cos )
2
+sin
2

0
0 0 0 1
#
_

_
x
0
y
0

0
_

_
(6.2)
Obsrvese cmo la ecuacin de la segunda la de (6.2) suministra una relacin
trivial. Ntese tambin cmo, de la tercera de las expresiones de (2.46) se deduce:

0
= v = v(tan)/l. Asimismo, es necesario tener en cuenta la restriccin (2.30).
Por tanto, se tendr que = arctan(x
0
/y
0
).
En la gura (6.5) se muestra el diagrama Simulink correspondiente al modelo inverso
del triciclo. Obsrvese cmo la velocidad v se obtiene segn: v =
p
x
02
+y
02
.
Al efectuar se comprueba que el ngulo es constante y de valor igual a 56.31

, por
lo cual
a
resulta ser cero. Asimismo, v
t
tambin permanece constante e igual a 1.8028m/s,
siendo l = 1.5m. que es la distancia entre el eje de la rueda delantera y el eje de las traseras.
En la gura (6.6) se presentan los resultados de la simulacin con el diagrama de la gura
(6.5).
6.1 Simulacin computacional del modelo de direccionamiento diferencial 144
Figura 6.3.- Segundo caso simulado para el guiado diferencial
Como tercera prueba se trata de simular el seguimiento de una trayectoria que
describe el robot mvil. Para esta simulacin se utiliz la herramienta HETERO que
se encuentra en la pgina de internet
1
el cual utiliza la misma modelacin matemtica
descrita en el captulo (2). Los scripts se ejecutan de forma remota en la mquina servidora
a travs del servidor de aplicaciones Matlab Web Server, siendo devueltos los resultados a
la mquina cliente para ser visualizados en el navegador.
Las medidas reales del robot mvil, se escalaron con un factor de 10 para apreciar
mejor el modelo tridimensional siendo el radio de las ruedas = 0.4375 m. y la separacin
entre la ruedas = 1.65 m. Asimismo la trayectoria queda denida por los puntos (0,0) (4,0)
(4,3.45) y (0,3.45).
En la gura (6.7) se muestra la pantalla con los parmetros introducidos.
Los resultados obtenidos en el servidor de Matlab se muestran en las guras (6.8) y
(6.9).
1
http://193.147.161.51
6.2 Pruebas experimentales 145
Figura 6.4.- Tercer caso simulado para el guiado diferencial
Una secuencia de imgenes de la animacin en tercera dimensin del robot mvil se
presenta en la gura (6.10) desde varios puntos de vista.
6.2 Pruebas experimentales
Las pruebas se realizaron con un programa preliminar que consista en el algoritmo de
navegacin autnoma y el algoritmo de la aplicacin de encontrar la vela donde se fueron
ajustando algunos prametros (como la duracin del ancho de pulso de la seal PWM,
el valor del limitador de correccin del error para la seal PWM, etc). Ambas secciones
fueron probadas por separado para comprobar el desempeo de cada una de ellas.
6.2.1 Pruebas durante la navegacin autnoma
Distintas pruebas fueron realizadas en el transcurso de la programacin de la navegacin
autnoma. Como se mencion en el captulo (5), la subrutina seguimiento de pared
izquierda no fue capaz de realizar la navegacin autnoma por s sola, por lo tanto se
realizaron varias pruebas, para comprender el comportamiento de este algoritmo y poder
6.2 Pruebas experimentales 146
Figura 6.5.- Diagrama en Simulink del modelo inverso del triciclo convencional.
disear las subrutinas complementarias. Al momento de que el robot mvil realizaba
movimientos de giros inmediatamente despus de estar siguiendo una pared, las ruedas se
patinaban al cambiar el sentido de giro, por lo tanto algunas rutinas de retardo se incluyeron
en el algoritmo original, con el propsito de que las ruedas estuvieran detenidas antes de
comenzar un giro. En algunas ocasiones al terminar los giros la orientacin del robot no
era la que se esperaba, debido a errores en la lectura de los pulsos de los encoders. Por
lo tanto se modicaron algunos valores de manera experimental el nmero de pulsos para
ajustar la orientacin.
Una vez que el algoritmo completo de navegacin autnoma realizaba una
navegacin correcta, permaneciendo a una distancia ja de 9.5 cm. y sin tocar o chocar
con algunas de las paredes por las cuales el robot mvil navegaba a una velocidad de 0.36
6.2 Pruebas experimentales 147
Figura 6.6.- Resultado de la simulacin del modelo inverso del triciclo en el seguimiento de un arco de
circunferencia.
m/s, y sin presentar oscilaciones tanto en la distancia a la pared como en la orientacin, se
realizaron distintas pruebas para alterar las condiciones del entorno.
Una prueba que se realiz mientras el robot navegaba siguiendo una pared continua,
fue ubicar obstculos en la trayectoria del robot mvil. Estos obstculos fueron rodeados
por el robot mvil, interpretando estos objetos como paredes por las cuales debera
continuar la navegacin autnoma. Una prueba similar a sta fue alterar la lectura del
sensor de la izquierda, colocando una mano entre el robot y la pared, a la cual el robot
mvil segua. El robot mvil se separaba de la mano, y cuando la mano se retiraba, el robot
mvil regresaba a su recorrido de la forma correcta acercndose a la pared. En la gura
(6.11) se presenta una fotografa mientras se realizaba esta prueba.
La primera prueba para alterar las condiciones del medio donde navegaba el robot
mvil, fue derramar una pequea cantidad de agua en ciertas zonas del suelo de la maqueta
para observar cmo se comportaba el robot. En algunas ocasiones las ruedas del robot
mvil se patinaban al realizar los giros, aunque la posicin del robot no era la correcta
al nalizar el giro, el robot mvil continuaba con el algoritmo de navegacin autnoma
6.2 Pruebas experimentales 148
Figura 6.7.- Pantalla para introducir los datos para la simulacin tridimensional.
retomando la distancia deseada a la pared. Una fotografa de esta prueba se presenta en la
gura (6.12).
Otra prueba para alterar las condiciones del medio, fue utilizar luz infrarroja como
luz de ambiente dentro del mismo cuarto donde se realizaban las pruebas como se muestra
en la fotografa (6.13), con el n de alterar la medida de los sensores IR. El robot mvil no
present ninguna alteracin a su comportamiento bajo esta prueba.
6.2.2 Aplicacin encontrar la vela
La bsqueda de la vela comienza cuando el robot mvil detecta la lnea que indica la
entrada a algn cuarto, por lo tanto se coloc el robot a la entrada de los distintos cuartos
para que comenzara con la bsqueda de la vela. Al inicio del giro para buscar la vela, la
orientacin del robot mvil deber ser paralela a la pared. Ya que en algunas ocasiones los
optosensores detectaban la lnea blanca mientras el robot mvil realizaba un giro, en ese
6.2 Pruebas experimentales 149
Figura 6.8.- Evolucin de las variables de control
momento la orientacin no era paralela a la pared. Debido a esta situacin se realiz un
ajuste al algoritmo buscar vela. Antes de comenzar el giro, el robot mvil debe realizar
un giro hacia la derecha sobre la rueda izquierda hasta que el sensor IR izquierdo tenga un
distancia de 10 cm. esperando que la orientacin del robot sea hacia la pared de la izquierda
y despus comenzar el giro hacia la izquierda sobre la rueda derecha para buscar la vela.
Como la orientacin inicial (perpendicular a la pared izquierda) habia sido modicada al
algoritmo original, el ngulo de bsqueda se aument de 103

a 155

.
La vela fu colocada dentro de las cuatro esquinas de cada cuarto para observar si el
robot la detectaba. Ya que durante la caracterizacin del sensor pyroelctrico se denieron
correctamente los valores del voltaje de salida de este sensor cuando haba una fuente
de menor calor que una vela encendida, (como una mano, un encendedor recin utilizado,
etc.) dentro del rango de altura que debera tener la vela, el robot mvil siempre encontr la
vela, dentro del cuarto sin importar la esquina en la cual estuviera ubicada. Una fotografa
tomada durante la realizacin de estas pruebas se presenta en la gura (6.14).
6.2 Pruebas experimentales 150
Figura 6.9.- Evolucin de la trayectoria real del robot (rojo) frente a la deseada (azul)
Una vez que el robot mvil encontraba una vela dentro de algn cuarto, el robot
continuaba con la navegacin autnoma dentro del cuarto dirigindose hacia la vela.
Cuando los optosensores detectaban el semicrculo blanco que indicaba la ubicacin de
la vela, el robot mvil se detena en esa posicin y activaba el ventilador y despues lo
levantaba para generar la corriente de aire que apagara la vela. En algunas ocasiones la vela
no fue apagada durante este primer intento, sin embargo, gracias a los giros preprogramados
que el robot haca en el mismo lugar con el ventilador encendido, la vela se apagaba por
completo. Una fotografa tomada en el momento que la vela se apaga se presenta en la
fotografa (6.15).
6.2 Pruebas experimentales 151
Figura 6.10.- Animacin 3D del seguimiento de trayectoria.
Robot mvil
separndose del objeto
Mano entre la pared y el robot mvl
Figura 6.11.- Fotografa prueba con mano
6.2 Pruebas experimentales 152
Agua en el suelo
Robot mvil realizando
giro 90 hacia la derecha
Figura 6.12.- Fotografa prueba con agua
Luz infrarroja
Robot mvil
Figura 6.13.- Fotografa prueba con luz infrarroja
6.2 Pruebas experimentales 153
Robot mvil
buscando vela
Vela encendida
Figura 6.14.- Fotografa durante las pruebas de buscar la vela.
Robot mvil con
el ventilador encendido
Vela apagada
Figura 6.15.- Fotografa cuando el robot mvil apaga la vela
Captulo 7
Conclusiones y recomendaciones
7.1 Conclusiones
El robot mvil diseado para realizar una navegacin autnoma mediante la tcnica de
seguimiento de pared izquierda y realizar la aplicacin de encontrar el inicio de un
incendio y apagarlo, se ha construido exitosamente. El robot mvil es capaz de realizar
un seguimiento a una velocidad de 0.36 m/s de la pared izquierda permaneciendo a una
distancia constante de 9.3 cm.
Uno de los objetivos fue la construccin del robot a un bajo costo. Los principales
componentes incluyen un microcontrolador, tres Puente-H, 5 reguladores de voltaje, dos
bateras, tres sensores infrarrojos, un sensor pyroelctrico, dos encoders, dos optosensores,
un chasis, dos motores con sistema de engranaje, dos ruedas, un motor elevador y un
ventilador, cumpliendo as con este objetivo.
El programa principal del microcontrolador fue desarrollado para llevar a cabo la
navegacin autnoma y realizar la aplicacin especca. Este incluye un algoritmo para el
control de los actuadores y la interpretacin de la seal de los sensores. La programacin
se realiz en lenguaje ensamblador. Ya que el lenguaje ensamblador es un lenguaje de
bajo nivel, el cual provee un mejor entendimiento de la operacin a nivel mquina, cuando
existe un problema, la localizacin del problema puede ser rastreada mucho ms fcil que
en programas desarrollados en lenguaje de alto nivel.
154
7.2 Recomendaciones 155
El modelo matemtico del robot mvil de tipo diferencial fue validado con las
simulaciones en donde se observ que este modelo describe el comportamiento del robot
mvil construido.
7.2 Recomendaciones
Un trabajo futuro primordial recomendado, consiste en modicar la navegacin autnoma
con la tcnica de seguimiento de pared derecha (en el cdigo del programa que se
encuentra en el Apndice D se incluyen las subrutinas para sta tcnica), basndose en
las experiencias adquiridas durante el desarrollo del presente trabajo.
Ya que el entorno de trabajo del robot mvil est limitado a la maqueta que se
construy, se recomienda el uso de sonares, los cuales pueden medir la distancia del objeto
sin importar su color. El uso de estos sensores implica desarrollar otros mdulos para ser
activados y procesar la informacin que proporcionan.
Debido a las caractersticas del sensor pyroelctrico para encontrar calor en
movimiento, este sensor podra ser sustituido por un sensor de luz ultravioleta, el cual
detecta la emisin de luz UVcuando hay una ama encendida. Con este sensor el algoritmo
de bsqueda de vela podra ser eliminado para agilizar el tiempo en el cual el robot
encuentra el incendio.
Para que la extincin de fuego sea ms real, el ventilador podra ser sustituido por
algn otro mtodo para apagar fuegos, como un extintor de pequeas dimensiones, lo cual
implicara adicionar componentes mecnicos y electrnicos para su funcionamiento.
7.2 Recomendaciones 156
Finalmente con el modelo en tres dimensiones creado en AutoCAD, a la misma
escala que el robot real, y con el modelo matemtico presentado en este trabajo se podr
trabajar ms adelante en investigaciones de Realidad Virtual en robots mviles.
Bibliografa
[1] Alexandrov V. V., Guerra L., Sobolevskaya I., Trifonova A., Vargas H., Control
Algorithms in Mechatronics, Mathematical Modeling of complex Information
Processing Systems, Moscow University Press, 2001.
[2] Ando Y., Tsubouch T. and Yuta S. A reactive wall following algorithm and its behavior
of an autonomous mobile robot with sonar ring Journal of Robotics and Mechatronics,
8(1):79-89, 1996.
[3] Angulo Usategui J.M., Romero Yesa S. Microcontroladores PIC Diseo prctico de
aplicaciones. Segunda Parte: PIC 16F87X, Madrid Espaa Mc Graw Hill, 2000.
[4] Angulo Usategui J.M., Angulo Martnez I.. Microcontroladores PIC Diseo prctico
de aplicaciones, Madrid Espaa Mc Graw Hill, 1997
[5] Asian, J. And Gmez-Allende, D., Landmark Recognition for Autonomous Navigation
Using Odometric Information and a Network of Perceptrons.
[6] Bicho E. Detecting, representing and following walls based on low-level distance
sensors, In Proceedings of the Second International ICSC Symposium on Neural
Computation (NC2000), Berlin, Germany, 2000
[7] Borenstein, J. and Koren Y., Real-Time Obstacle Avoidance for Fast Mobile Robots,
Proceeding of the IEEE International Conference on Robotics and Automation, pp.
572-577, 1990
[8] Brooks R. Asynchronous distributed control system for a mobile robot. SPIE, Mobile
robots 727:77-84, 1986
[9] Campion G., G Bastin y B. DAndra-Novel, 1996. Structural properties and
classication of kinematic and dynamic models of wheeled mobile robots. IEEE Trans,
on Robotics and Automation. Vol. 12, nm 1, pp 47-62.
[10] Canudas de Wit, B. Siciliano y G. Bastin, 1997 Theory of Robot Control. Springer
[11] Chavarra M. A. Percepcin monocular para el control de robots mviles. Memorias
del X Congreso Latinoamericano de Control Automtico, Guadalajara, Mxico,
Diciembre 2002
157
Bibliografa 158
[12] Choset H., Burdick J., Sensor Based Motion Planning: The Hierarchical Generalized
Voronoi Graph, Workshop on Algorithmic Foundations of Robotics, 1996.
[13] Everett H.R. Sensors for mobile robots: theory and application Wellesley, Mass, 1995,
pp 49-54
[14] Endo Y. Design and implementation of a high speed mobile robot for testing a neural
network crash avoidance system. Master Science Thesis. Department of Mechanical
and Aerospace Engineering, Case Western Reserve University
[15] Giralt, G., Mobile Robots NATO ASI Series, Vol. F11, Robotics and Articial
Intelligence. Springer-Verlag, 1984 pp 365-393.
[16] Gutirrez Arias J. E. Estrategias de las pruebas maximin para la calidad de
la estabilizacin robusta. Tesis doctoral. Facultad de Ciencias Fsico Matemticas,
Benemrita Universidad Autnoma de Puebla. 2003
[17] Isidori A. Nonlinear control system Third Edition. Springer 1995 pp 147-161
[18] Jones J. L., Flynn A. M., Mobile robots: inspiration to implementation Wellesley, MA,
A.K. Peters, 1993.
[19] Kola K. Motion Design in for Bearcat I. Thesis. Center for Robotics research,
University of Cincinnati, 1998
[20] Kraut J., An Autonomous Navigational Mobile Robot, Bachelor of Science Thesis.
Department of Electrical and Computer Engineering. University of Manitoba, Canada,
2002
[21] Latombe J. C. Robot motion planning Kluwer Academic, 1991
[22] Menzner R., Steinhage A., Erlhagen W Generating Interactive Robot Behavior:
A Mathematical Approach Proceedings of the Sixth International Conference on
Simulation of Adaptive Behavior 2000
[23] Miglino O., Hautop Lund H, Nol S., Evolving Mobile Robots in Simulated and Real
Environments. In Articial Life 2:4, 417-434, 1995.
[24] Murray R.M., 1993. Applications and extensions of goursat normal form to control of
nonlinear systems. Proc. 32nd IEEE Conference on Decision and Control, San Antonio,
Texas.
Bibliografa 159
[25] Nasisi O.H. Mobile robots navigation based on perspective lines. Memorias del X
Congreso Latinoamericano de Control Automtico, Guadalajara, Mxico, Diciembre
2002
[26] Ollero A., Robtica Manipuladores y robots mviles. Barcelona Espaa, Alfaomega
marcombo, 2001 pp 8-13, 146-158, 258-263, 271-278
[27] Vargas H., Algoritmos de estabilizacin supoptimos con sistema de navegacin
autnoma para el control de robots mviles autnomos Tesis doctoral. Facultad de
Ciencias Fsico Matemticas, Benemrita Universidad Autnoma de Puebla. 2002
[28] Vidal-Calleja T.A. Articial potential elds for trailer-like systems Memorias del X
Congreso Latinoamericano de Control Automtico, Guadalajara, Mxico, Diciembre
2002
[29] Fernndez. D, Vera D. Diseo, control y construccin de un robot mvil,
http://verona.-p.unam.mx/GpoControl/proyec/movil1.html (13/Junio/2003)
[30] Lpez Trinidad M. A., Telecontrol para el robot Nomad 200
http://www.mor.itesm.mx/~lsi/redii/telecontrol/control_distancia.html (15/Junio/2003)
[31] http://www.trincoll.edu/events/robot/rules03.htm (10/Junio/2003)
Apndice A
Dibujo en tres dimensiones del robot mvil.
En la gura (7.1) se muestra un modelado del robot movil a la misma escala en tres
dimensiones en AutoCAD realizado por un alumno del Colegio de Ingeniera Industrial de
la Facultad de Ingeniera
1
. En la gura (7.2) se muestra el modelo en tres dimensiones por
atrs, enfrente, del lado derecho, del lado izquierdo, por arriba y por abajo
3 Sensores de proximidad
SHARP GP2D12
2 Sensores reflectores
HOA1405-2
2 Bateras
Sensor pyroelectrico
ELTEC
2 Encoders opticos
Ventilador
Motor y sistema
de engranaje
2 Ruedas
Figura 7.1.- Dibujo en tres dimensiones del robot mvil en AutoCAD.
1
Eduardo Mazzocco Zanella
160
Appendix A Dibujo en tres dimensiones del robot mvil. 161
Figura 7.2.- Diferentes vistas del modelo 3D
Apndice B
Dimensiones del robot mvil
Figura 7.3.- Dimensiones del robot mvil - vista enfrente
162
Figura 7.4.- Dimensiones del robot mvil - vista de un lado
163
Figura 7.5.- Dimensiones del robot mvil - vista superior
164
165
Apndice C
Tabla de conversin de voltaje de sensores IR
a distancia

Voltaje Distancia Voltaje Distancia Voltaje Distancia Voltaje Distancia
0.35 71 0.98 27 1.60 15 2.23 11
0.37 70 1.00 26 1.62 15 2.25 10
0.39 69 1.02 26 1.64 15 2.27 10
0.41 66 1.04 25 1.66 15 2.29 10
0.43 63 1.05 25 1.68 14 2.30 10
0.45 61 1.07 24 1.70 14 2.32 10
0.47 59 1.09 24 1.72 14 2.34 10
0.49 57 1.11 24 1.74 14 2.36 10
0.51 55 1.13 23 1.76 14 2.38 10
0.53 53 1.15 23 1.78 13 2.40 10
0.55 51 1.17 22 1.80 13 2.42 9
0.57 49 1.19 22 1.82 13 2.44 9
0.59 47 1.21 21 1.84 13 2.46 9
0.61 46 1.23 21 1.86 13 2.48 9
0.63 44 1.25 21 1.88 13 2.50 9
0.64 43 1.27 20 1.89 13 2.52 9
0.66 42 1.29 20 1.91 12 2.54 8
0.68 40 1.31 20 1.93 12 2.56 8
0.70 39 1.33 20 1.95 12 2.58 8
0.72 35 1.35 19 1.97 12 2.60 8
0.74 33 1.37 19 1.99 12 2.62 8
0.76 33 1.39 18 2.01 12 2.64 7
0.78 32 1.41 18 2.03 11 2.66 7
0.80 31 1.43 17 2.05 11 2.68 7
0.82 31 1.45 17 2.07 11 2.70 7
0.84 30 1.46 17 2.09 11 2.71 7
0.86 30 1.48 16 2.11 11 2.73 7
0.88 29 1.50 16 2.13 11 2.75 7
0.90 29 1.52 16 2.15 11 2.77 7
0.92 28 1.54 16 2.17 11 2.79 7
0.94 28 1.56 16 2.19 11 2.81 7
0.96 27 1.58 15 2.21 11

Voltaje = V
Distancia = cms.

166
Apndice D
Cdigo del programa principal en lenguaje
ensamblador

;Cdigo en lenguaje ensamblador para robot mvil
;
; -----------------
; Reset - | 1 40 | B7 - Micro-switch
; Sensor Izq - A0 | 2 39 | B6 - Push-Boton BIP
; Sensor Enfrente - A1 | 3 38 | B5 - Elevador adelante
; Sensor Der - A2 | 4 37 | B4 - Elevador atras
; - A3 | 5 36 | B3 - Ventilador adelante
; Encoder Motor Izq - A4 | 6 35 | B2 - Ventilador atras
; Pyro - A5 | 7 34 | B1 - Led "Indicar Dentro/Afuera"
; - E0 | 8 33 | B0 - Optosensor Izq
; - E1 | 9 32 | Vcc ---------------------------
; - E2 | 10 PIC16F877 31 | Tierra ------------------------
; --------------- Vcc | 11 30 | D7 - Optosensor Der
; -------------- Tierra | 12 29 | D6 -
; X(4Mhz) 33 p - OSC1 | 13 28 | D5 -
; -------- 33 p - OSC2 | 14 27 | D4 -
; Encoder Motor Der - C0 | 15 26 | C7 - Led "Numero de cuarto B0" (Verde)
; CCCP2 Motor Der - C1 | 16 25 | C6 - Led "Numero de cuarto B1" (Verde)
; CCCP1 Motor Izq - C2 | 17 24 | C5 - Led "Vela de va" (Rojo)
; Detector Tono - C3 | 18 23 | C4 - Led "Vela de viene" (Amarillo)
; Adelante Motor Izq- D0| 19 22 | D3 - Adelante Motor Der
; Atras Motor Izq -D1| 20 21 | D2 - Atras Motor Der
; -----------------

LIST P=16F877
include<P16f877.inc>

;********Definicin de constantes para los Canales de C A/D

CH0 EQU B'00000001' ; Canal 0
CH1 EQU B'00001001' ; Canal 1
CH2 EQU B'00010001' ; Canal 2
CH3 EQU B'00011001' ; Canal 3
CH4 EQU B'00100001' ; Canal 4
CH5 EQU B'00101001' ; Canal 5
CH6 EQU B'00110001' ; Canal 6
CH7 EQU B'00111001' ; Canal 7

;*********Definicin de constantes********************************
KSPDI EQU D'20' ;80% del duty cycle ANTES 20
Dis_des EQU D'23' ;Distancia deseada en Cm. de la pared IZ
Dis_IZ_lim EQU D'40' ;Distancia limite para "checar izquierda"
Dis_Enf_lim EQU D'20' ;Distancia limite para "checar enfrente"
Dis_Der_lim EQU D'30' ;Distancia limite para "checar derecha"

Velocidad_Vuelta EQU D'25'
Dis_pared_fija EQU .22
Dis_pared_librar EQU .8

;**************Bits de banderas***********************************
Accseso_C EQU 0
Apagando_vela EQU 1

;**************Declaracin de varialbes **************************
W_TEMP EQU 20h ;Variables temporales
PCLATH_TEMP EQU 21h
STATUS_TEMP EQU 22h
giro_TEMP EQU 23h
led_TEMP EQU 24h
Lim_TEMP EQU 25h

167
SPD0 EQU 26h ;Variable para la velocidad
SPD1 EQU 27h
;CYC_CNT EQU 28h

conta1 EQU 29h ;Contadores para rutina de retardo
conta2 EQU 2Ah
conta3 EQU 2Bh
conta1_int EQU 2Ch
conta2_int EQU 2Dh
conta3_int EQU 2Eh
;CCPAUX EQU 2Fh
;AUX EQU 30h
CONTA0 EQU 31h

DisAc_IZ EQU 32h ;Varialbe para la medicin
Error_dis EQU 33h
DisAc_Enf EQU 34h
DisAc_Der EQU 35h
DisAc_TEMP EQU 36h

Banderas EQU 37h ;Registro utilizado para Baderas

Espera_sensor2 EQU 38h ;Variables para la busqueda
Num_cuarto EQU 39h
Temp_pyro EQU 3Ah
TMR1L_PYRO EQU 3Bh
Temp_vela EQU 3Ch
apaga_TEMP EQU 3Dh

org 0
goto Iniciales
org 4
goto rs_piso
org 5

;***************Configuracion del microcontrolador ************
Iniciales call INI_PUERTOS
clrf PORTB
clrf PORTC
clrf PORTD
clrf CCPR1L ;PWM1=0
clrf CCPR2L ;PWM2=0
clrf Num_cuarto
clrf Banderas
call INI_AD
call INI_PWM

;call led_reset

;*********PROGRAMA PRINCIPAL*******************************************
Inicio
movlw B'00000101' ;Dos motores hacia enfrente
movwf PORTD
call Checar_enfrente ;Verificar si hay pared enfrente
call Control_IZ ;Algoritmo de seguimiento de pared izq
call Checar_izquierd ;Verificar que no hay pared izquierda

btfsc Banderas,Accseso_C ;Checa si "bandera de acceso" esta activada
call buscar_vela ;Llama subrutina buscar_vela

goto Inicio ;Ciclo infinito de la navegacin autnoma

;**************** Subrutinas *****************************************
;*******************************************
Led_cuarto btfss Num_cuarto,0
bcf PORTC,7
btfsc Num_cuarto,0
bsf PORTC,7
btfss Num_cuarto,1
bcf PORTC,6
btfsc Num_cuarto,1
168
bsf PORTC,6
return

;*************Subrutina de serivicio de interrucin *************************
rs_piso movwf W_TEMP ;Salvando los valores de STATUS y Wpara su
regreso
swapf STATUS,W
clrf STATUS
movwf STATUS_TEMP
movf PCLATH,W
movwf PCLATH_TEMP
clrf PCLATH

bcf INTCON,INTF ;Verifica Bandera de activacion de el pin RB0
btfsc PORTD,7
goto donde_estoy ;Hay una linea

D100ms_int movlw .24 ;Retardo de 150ms esperando pin RB0
movwf conta1_int
re2_100int movlw .255
movwf conta2_int
re1_100int movlw 0x04
movwf conta3_int
re0_100int btfsc PORTD,7
goto donde_estoy ;Hay una linea
decfsz conta3_int,F
goto re0_100int
decfsz conta2_int,F
goto re1_100int
decfsz conta1_int,F
goto re2_100int
btfss PORTD,7
goto salir ;Si no se detecta RB0 => no hay linea

donde_estoy btfss PORTB,1 ;Estoy a adentro o afuera?
goto entrada ;Adentro
bcf Banderas,Accseso_C ;Afuera => desactivar "bandera de acceso"
bcf PORTB,1
incf Num_cuarto,F ;Cuando sale incrementa el contador

salir call Led_cuarto
movf PCLATH_TEMP,W ;Recuperando los valores del STATUS y W
movwf PCLATH
swapf STATUS_TEMP,W
movwf STATUS
swapf W_TEMP,F
swapf W_TEMP,F
retfie

entrada bsf Banderas,Accseso_C ;Activar "bandera de acceso"
bsf PORTB,1
goto salir

;**************Rutina para seguimiento de pared derecha*****************************
noventa_IZQ movlw Velocidad_Vuelta
movwf CCPR2L
movwf CCPR1L

movlw b'00000110' ;llanta derecha hacia adelante e iz atras
movwf PORTD
clrf TMR0 ;Borrar contadores
clrf TMR1L
menor_izq movlw D'14' ;Numero de pulsos
subwf TMR0,W
btfss STATUS,C
goto menor_izq
movlw b'00000100' ;Parar en Rueda izquierda
movwf PORTD
menor_izq2 movlw D'13' ;Numero de pulsos
subwf TMR1L,W
btfss STATUS,C
169
goto menor_izq2
movlw b'00000000' ;Parar en Rueda Derecha
movwf PORTD
call delay_100ms
movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
return

;*******************************************
buscar_vela bcf PORTC,5 ;Borra el led de indicacion va
bcf PORTC,4 ;Borra el led de indicacion viene
bcf INTCON,GIE ;Deshabilita interrupciones
movlw .16 ;Velocidad antes de comenzar la busqued
movwf CCPR1L
addlw .2
movwf CCPR2L
movlw b'00000101' ;Avanza para meterse en el cuarto
movwf PORTD ;Dos motores hacia adelante
movf TMR1L,W
movwf TMR1L_PYRO
clrf TMR1L ;Limpiar contador
metete movlw .15 ;Avanza 14 cm.
subwf TMR1L,W
btfss STATUS,C
goto metete
;Empieza modificacin al algoritmo original
empieza_scaneo movlw b'00000100' ;llanta derec enfrente
movwf PORTD
movlw CH0 ;Sensor iz en Ch 0
call MEDIR
movwf DisAc_IZ
movlw .10 ;Distancia del sensor iz para cambiar
orientacin
sublw Dis_des
movwf giro_TEMP
movf DisAc_IZ,W
subwf giro_TEMP,F ;Obtiene el error
btfss STATUS,C
goto empieza_scaneo ;Espera la distancia del sensor iz
;Termina modificacin al algoritmo original

comienza_va movlw b'00000001' ;llanta iz enfrente
movwf PORTD
clrf TMR0
esp_ida movlw CH4 ;Sensor pyroelectrico en Ch 4
movwf ADCON0 ;
call GetAD ;Comienza conversion A/D
movf ADRESH,W ;Obtiene el valor A/D
movwf Temp_vela
movlw D'108' ;Voltaje de comparacion 2.1V = 108
subwf Temp_vela,W
btfss STATUS,C
bsf PORTC,5 ;Se activa variable "va"
movlw D'49' ;Angulo de busqueda (distinto al algoritmo
original)
subwf TMR0,W
btfss STATUS,C
goto esp_ida ;Espera terminar giro de busqueda

movlw b'00000000' ;Parar las dos ruedas
movwf PORTD
call delay_medio_seg

movlw b'00000010' ;llanta iz atras
movwf PORTD
clrf TMR0

esp_regreso movlw CH4 ;Sensor pyroelectro en Ch 4
movwf ADCON0
call GetAD ;Comienza conversin A/D
movf ADRESH,W ;Obtiene el valor A/D
170
movwf Temp_vela
movlw D'150' ;Voltaje de comparacion 2.9V =150
subwf Temp_vela,W
btfsc STATUS,C
bsf PORTC,4 ;Se activa variable "regreso"
movlw D'49' ;Angulo de busqueda de regreso
subwf TMR0,W
btfss STATUS,C
goto esp_regreso ;Espera terminar giro de regreso

;***************Subrutina buscar vela*********************
hubo_vela? btfss PORTC,5 ;Led de ida
goto saliendo_gyro


;Si hubo vela por lo tanto continuar navegacin autnoma hasta encontrar vela
esperando_vela movlw B'00000101' ;Dos motores hacia enfrente
movwf PORTD
call Checar_enfrente
call Control_IZ

btfss PORTB,0 ;Espera optosensores
goto esperando_vela
call delay_100ms
btfss PORTD,7
goto esperando_vela

;Ha encontrado el semicirculo de la vela
activar_vent movlw b'00000000' ;Parar las dos ruedas
movwf PORTD
bcf PORTB,2 ;Apaga Ventilador atras
bsf PORTB,3 ;Activa Ventilador adelante
call delay_medio_seg
bsc PORTB,5 ;Activa elevador adelante
sensor_elevador btfss PORTB,7 ;Sensor del elevador
goto sensor_elevador
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg

movlw .2
movwf apaga_TEMP
apagando_vela movlw b'00000110' ;llanta iz atras derecha adelante
movwf PORTD
call delay_100ms
movlw b'00000000'
movwf PORTD
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg
decfsz apaga_TEMP,F
goto apagando_vela

movlw .4
movwf apaga_TEMP
reapagando_vela movlw b'00001001' ;llanta iz atras derecha adelante
movwf PORTD
call delay_100ms
movlw b'00000000'
movwf PORTD
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg
call delay_medio_seg
decfsz apaga_TEMP,F
goto reapagando_vela

bcf PORTB,5 ;Apaga elevador adelante
bcf PORTB,3 ;Apaga Ventilador adelante
171
bsf PORTB,4 ;Activa elevador atras
call delay_medio_seg
bcf PORTB,4 ;Apaga elevador atras

fin goto fin

saliendo_gyro bcf Banderas,Accseso_C
bsf INTCON,GIE ;habilita interrupciones
return

;*******************************************
Checar_enfrente movlw CH1
call MEDIR
movwf DisAc_Enf

movlw Dis_Enf_lim ;Cargamos la distancia limite
subwf DisAc_Enf,W ;de enfrente
btfsc STATUS,C ;si es dis actual es mayor que el limite
indicado
call noventa_DER
return

;*******************************************
Checar_izquierd movlw CH0 ;Sensor IR izquierdo en Ch 0
call MEDIR
movwf DisAc_IZ

movlw Dis_IZ_lim ;Cargamos la distancia limite
subwf DisAc_IZ,W ;del lado iz
btfsc STATUS,C
call no_hay_pared
return

;*************** Rutina para seguimiento de pared derecha ****************************
checar_derecha movlw CH2 ;Sensor IR derecho en Ch 2
call MEDIR
movwf DisAc_Der

movlw Dis_IZ_lim ;Cargamos la distancia limite
subwf DisAc_Der,W ;del lado iz
btfsc STATUS,C
call no_hay_paredDER
return

;***************** Rutina para seguimiento de pared derecha **************************
no_hay_paredDER movlw .20 ;Velocidad para la vuelta
movwf CCPR2L
movwf CCPR1L

;Desplazamiento hacia enfrente
desplaza_enfDER movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
clrf TMR0
clrf TMR1L ;Borrar contadores

menor_EnfDER movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR0,W ;Llanta Izquierda
btfsc STATUS,C
goto menor_EnfDER
bcf PORTD,0 ;Detiene motores
menor_Enf2DER movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR1L,W
btfss STATUS,C
goto menor_Enf2DER

;giro sobre su propio eje
movlw b'00001001' ;Llanta derecha hacia atras Iz adelante
movwf PORTD
clrf TMR1L ;Borra contador Llanta derecha
172
clrf TMR0
menorDER movlw D'7' ;# de pulsos del encoder correspondientes
subwf TMR1L,W ;al desplazamiento de la llanta derecha
btfss STATUS,C
goto menorDER
menor2DER movlw D'7'
subwf TMR0,W
btfss STATUS,C
goto menor2DER

;Desplazamiento hacia enfrente
movlw b'00000000' ;Parar en Ruedas
movwf PORTD
call delay_250ms

movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
clrf TMR0
avanza_poquDER movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR0,W ;Llanta Izquierda
btfss STATUS,C
goto avanza_poquDER

clrf CCPR2L
esperar_giroDE movlw CH2 ;Sensor IR derecho en Ch 0
call MEDIR
movwf DisAc_Der

movlw Dis_des
addlw .5
movwf giro_TEMP
movf DisAc_Der,W
subwf giro_TEMP,F ;Obtiene el error
btfss STATUS,C
goto esperar_giroDE
return

;***************CONTROL_IZ****************************
Control_IZ movlw CH0 ;Sensor Iz en Ch 0
call MEDIR
movwf DisAc_IZ

movlw KSPDI
movwf SPD0 ;Vel. Izq
movwf SPD1 ;Vel. Der

movlw Dis_des
movwf Error_dis

movf DisAc_IZ,W
subwf Error_dis,F ;Obtiene el error
;Error_dis = Dis_des - DisAc_IZ
movf Error_dis,W
subwf SPD1,F ;SPD1 = SPD1-Error_dis
addwf SPD0,F ;SPD0 = SPD0+Error_dis

movf SPD0,W ;Limite inferior de PWM0
call Lim_inf_PWM
movwf SPD0
movf SPD1,W
call Lim_inf_PWM ;Limite inferior de PWM0
movwf SPD1

call update ;Actuliza ciclo de trabajo PWM
return

;*************** CONTROL_DER (Rutina para seguimiento de pared derecha)
*******************
Control_DER movlw CH2 ;Sensor IR der en Ch 2
call MEDIR
173
movwf DisAc_Der

movlw KSPDI
movwf SPD0 ;Vel. Izq
movwf SPD1 ;Vel. Der

movlw Dis_des
movwf Error_dis

movf DisAc_IZ,W
subwf Error_dis,F ;Obtiene el error
;Error_dis = Dis_des - DisAc_IZ
movf Error_dis,W
subwf SPD0,F ;SPD0 = SPD0-Error_dis (Al reves del control
IZQ)
addwf SPD1,F ;SPD1 = SPD1+Error_dis

movf SPD0,W ;Limite inferior de PWM0
call Lim_inf_PWM
movwf SPD0
movf SPD1,W
call Lim_inf_PWM ;Limite inferior de PWM1
movwf SPD1

call update ;Actuliza ciclo de trabajo PWM
return


;***************************************************
no_hay_pared movlw .20 ;Velocidad para la vuelta
movwf CCPR2L
movwf CCPR1L

;Desplazamiento hacia enfrente
desplaza_enf movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
clrf TMR0 ;Borrar contadores
clrf TMR1L

menor_Enf movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR0,W ;Llanta Izquierda
btfsc STATUS,C
goto menor_Enf
bcf PORTD,0 ;Detiene motores
menor_Enf2 movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR1L,W
btfss STATUS,C
goto menor_Enf2

;giro sobre su propio eje
movlw b'00000110' ;llanta derecha hacia delante Iz atras
movwf PORTD

clrf TMR1L ;Borra contador Llanta derecha
clrf TMR0
menor movlw D'7' ;# de pulsos del encoder correspondientes
subwf TMR1L,W ;al desplazamiento de la llanta derecha
btfsc STATUS,C
goto menor
menor2 movlw D'7'
subwf TMR0,W
btfss STATUS,C
goto menor2

;Desplazamiento hacia enfrente
movlw b'00000000' ;Parar Ruedas
movwf PORTD
call delay_250ms

174
movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
clrf TMR0
avanza_poquito movlw Dis_pared_fija
addlw Dis_pared_librar
subwf TMR0,W ;Llanta Izquierda
btfss STATUS,C
goto avanza_poquito

;Giro pivoteando y esperando que el error sea distancia deseada mas 5
clrf CCPR1L
esperar_giro movlw CH0 ;Sensor Iz en Ch 0
call MEDIR
movwf DisAc_IZ

movlw Dis_des
addlw .5
movwf giro_TEMP
subwf giro_TEMP,F ;Obtiene el error
btfss STATUS,C
goto esperar_giro
return

;***********************************************
noventa_DER movlw Velocidad_Vuelta
movwf CCPR2L
movwf CCPR1L

movlw b'00001001' ;llanta derecha hacia atras e iz enfrente
movwf PORTD
clrf TMR0 ;Borrar contadores
clrf TMR1L
menor_d movlw D'14' ;Numero de pulsos
subwf TMR0,W
btfss STATUS,C
goto menor_d
movlw b'00001000' ;Parar en Rueda izquierda
movwf PORTD
menor_d2 movlw D'13' ;Numero de pulsos
subwf TMR1L,W
btfss STATUS,C
goto menor_d2
movlw b'00000000' ;Parar en Rueda Derecha
movwf PORTD
call delay_100ms
movlw b'00000101' ;Dos llantas hacia enfrente
movwf PORTD
return

;********** Medir distancia *************************************
MEDIR movwf ADCON0 ;Canal para conversin A/D
call GetAD ;Comienza conversin A/D
movf ADRESH,W ;Obtiene el valor A/D
movwf DisAc_TEMP
call GetAD ;Segunda muestra
addwf DisAc_TEMP,F
rrf DisAc_TEMP,F ;Primera + Segunda / 2

call GetAD ;Tercera muestra
movf ADRESH,W
addw DisAc_TEMP,F ;1er promedio + Tercera /2
rrf DisAc_TEMP,w

movlw D'140' ;Verificar si el dato del promedio >= que
posiciones de la tabla
subwf DisAc_TEMP,W
btfsc STATUS,C
goto no_tabla

movlw D'18' ;Minimizar los
subwf DisAc_TEMP,F ;datos en la tabla
175
btfss STATUS,C
clrf DisAc_TEMP
movf DisAc_TEMP,W ;Llama a tabla para regresar
call Tabla2 ;el Valor en Centimetros
bcf PCLATH,0
bcf PCLATH,1
movwf DisAc_TEMP
return

no_tabla movwf PORTB ;Hubo error en el promedio de las distancias
clrf CCPR1L ;por lo tanto regresa el inicio
clrf CCPR2L
goto Inicio


;***********GetAD************************************
;Esta rutina obtiene un valor analogico y lo convierte

GetAD
bsf ADCON0,0
call espera20u
bsf ADCON0,2

espera btfsc ADCON0,2
goto espera
return

espera20u movlw 0x05
ret1 decfsz CONTA0,1
goto ret1
return

;********************************************************
INI_PUERTOS
bsf STATUS,RP0 ;Banco 1
movlw b'10010000'
movwf INTCON ;configura las interrupciones globales y
perifericas
movlw B'111111' ;Puerto A 1 = entrada, 0 = salida
movwf PORTA
movlw B'10000001' ;Puerto B 1 = entrada, 0 = salida
movwf PORTB
movlw B'00001001' ;Puerto C 1 = entrada, 0 = salida
movwf PORTC
movlw B'10000000' ;Puerto D 1 = entrada, 0 = salida
movwf PORTD
movlw B'111' ;Puerto E 1 = entrada, 0 = salida
movwf PORTE
bcf STATUS,RP0 ;Banco 0
return

INI_AD
bsf STATUS,RP0 ;Banco 1
movlw B'00000000' ;Seleccionar ch0-ch7
movwf ADCON0 ;como entradas analgicos
bcf STATUS,RP0 ;Banco 0
movlw B'00000000' ;seleccionar Fosc/2,ch0..
movwf ADCON0 ;Aun esta apagado el A/D.
clrf ADRESH ;Limpia registro ADRESH
return

INI_PWM
movwf T2CON ;sin prescalamineto y sin posescalamiento
bsf STATUS,RP0 ;banco 1
movlw 0x18 ;Fijar el periodo para 40KHZ
movwf T2CON ;PR2
movlw b'11101000' ;Timer0 con escalmiento de 1:8
movwf TMR0 ;
bcf STATUS,RP0 ;banco 0
movlw B'00111100'
iorwf CCP1CON,F
176
iorwf CCP2CON,F
movlw 0x03
movwf T1CON ;esta activado el timer1
return

;*******************************************
led_reset bsf PORTC,7 ;LED DE RESET
movlw .1
movwf led_TEMP
polariz call delay_medio_seg
decfsz led_TEMP,F
goto polariz

bsf PORTC,7 ;LED DE RESET
bsf PORTC,6 ;LED DE RESET
bsf PORTC,5 ;LED DE RESET
bsf PORTC,4 ;LED DE RESET

bip btfss PORTC,3 ;Esperando el push-buton
goto bip

comienza bcf PORTC,7 ;LED DE RESET
bcf PORTC,6 ;LED DE RESET
bcf PORTC,5 ;LED DE RESET
bcf PORTC,4 ;LED DE RESET

return

;*******************************************
update bcf PIR1,TMR2IF
movf SPD0,W
movwf CCPR1L

movf SPD1,W
movwf CCPR2L
wait
btfss PIR1,TMR2IF
goto wait
return


delay_medio_seg movlw .122 ;Retardo de MEDIO segundo
movwf conta1
re2_r2 movlw .255
movwf conta2
re1_r2 movlw 0x04
movwf conta3
re0_r2 decfsz conta3,F
goto re0_r2
decfsz conta2,F
goto re1_r2
decfsz conta1,F
goto re2_r2
return

delay_250ms movlw .61 ;Retardo de 250ms
movwf conta1
re2_250 movlw .255
movwf conta2
re1_250 movlw 0x04
movwf conta3
re0_250 decfsz conta3,F
goto re0_250
decfsz conta2,F
goto re1_250
decfsz conta1,F
goto re2_250
return

delay_100ms movlw .24 ;Retardo de 100ms
movwf conta1
177
re2_100 movlw .255
movwf conta2
re1_100 movlw 0x04
movwf conta3
re0_100 decfsz conta3,F
goto re0_100
decfsz conta2,F
goto re1_100
decfsz conta1,F
goto re2_100
return

;*****************************************
Lim_inf_PWM movwf Lim_TEMP
movlw D'12'
subwf Lim_TEMP,W
btfss STATUS,C
goto menor_pwm
movf Lim_TEMP,W
return
menor_pwm movlw D'12'
return

;***********Tabla **************************************
ORG 0X300
Tabla2 bsf PCLATH,0
addwf PCL,1 ;Datos de la distancia en Cm.

retlw D'71'
retlw D'70'
retlw D'69'
retlw D'66'
retlw D'63'
retlw D'61'
retlw D'59'
retlw D'57'
retlw D'55'
retlw D'53'
retlw D'51'
retlw D'49'
retlw D'47'
retlw D'46'
retlw D'44'
retlw D'43'
retlw D'42'
retlw D'40'
retlw D'39'
retlw D'35'
retlw D'33'
retlw D'33'
retlw D'32'
retlw D'31'
retlw D'31'
retlw D'30'
retlw D'30'
retlw D'29'
retlw D'29'
retlw D'28'
retlw D'28'
retlw D'27'
retlw D'27'
retlw D'26'
retlw D'26'
retlw D'25'
retlw D'25'
retlw D'24'
retlw D'24'
retlw D'24'
retlw D'23'
retlw D'23'
retlw D'22'
178
retlw D'22'
retlw D'21'
retlw D'21'
retlw D'21'
retlw D'20'
retlw D'20'
retlw D'20'
retlw D'20'
retlw D'19'
retlw D'19'
retlw D'18'
retlw D'18'
retlw D'18'
retlw D'17'
retlw D'17'
retlw D'17'
retlw D'16'
retlw D'16'
retlw D'16'
retlw D'16'
retlw D'15'
retlw D'15'
retlw D'15'
retlw D'15'
retlw D'15'
retlw D'14'
retlw D'14'
retlw D'14'
retlw D'14'
retlw D'14'
retlw D'13'
retlw D'13'
retlw D'13'
retlw D'13'
retlw D'13'
retlw D'13'
retlw D'13'
retlw D'12'
retlw D'12'
retlw D'12'
retlw D'12'
retlw D'12'
retlw D'12'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'11'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'10'
retlw D'9'
retlw D'9'
retlw D'9'
retlw D'9'
retlw D'9'
retlw D'9'
retlw D'8'
retlw D'8'
179
retlw D'8'
retlw D'8'
retlw D'8'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
retlw D'7'
END

You might also like