Está en la página 1de 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.
Josefina 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

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 configuraciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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

Captulo 4

vii

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 Cuantificacin 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 reflector (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 configuracin 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

Captulo 7

ix

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

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.

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].

1.2 Robots mviles

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 insuficiente, 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 suficiente para lograr la navegacin autnoma en forma eficiente. 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 suficiente 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

La autonoma de un robot mvil se basa en el sistema de navegacin automtica. En


estos sistemas se incluyen tareas de planificacin, percepcin y control.
En los robots mviles, el problema de la planificacin, en el caso ms general, puede
descomponerse en planificacin global de la misin, de la ruta, de la trayectoria finalmente,
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, definiendo 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 planificacin de caminos para robots mviles que se
basan en hiptesis simplificadoras: 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 eficiente el proceso
con vistas a su aplicacin en tiempo real.
La planificacin de la trayectoria puede realizarse tambin de forma dinmica,
considerando la posicin actual del vehculo y los puntos intermedios de paso definidos
en la planificacin de la ruta. La trayectoria se corrige debido a acontecimientos no
considerados. La definicin de la trayectoria debe tener en cuenta las caractersticas

1.2 Robots mviles

cinemticas del vehculo. Por ejemplo, en vehculos con ruedas y traccin convencional,
interesa definir 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 planificacin
de la velocidad teniendo en cuenta las caractersticas del terreno y del camino que se
pretende seguir.
Una vez realizada la planificacin de la trayectoria, es necesario planificar
movimientos concretos y controlar dichos movimientos para mantener al vehculo en la
trayectoria planificada. 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
planificacin 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

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 simplificados.

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 suficientemente 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 codificadores 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
suficientemente pequeos.
La correccin de la inevitable acumulacin de error hace necesario el empleo de
otros sensores. Con este fin, 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
suficientemente grandes empleando el sistema de percepcin.

En particular, suelen

1.2 Robots mviles

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 conflictivos 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 suficientemente 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

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 especficos, 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 fiabilidad.
La percepcin activa mediante lser es un mtodo alternativo que ha cobrado una
importante significacin en robots mviles. Se utilizan dispositivos mecnicos y pticos
de barrido en el espacio obtenindose imgenes de distancia y reflectancia a las superficies
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 influencia de las condiciones ambientales puede ser
significativa, 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 filtrado 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 clasificarse en teleoperados, de


funcionamiento repetitivo y autnomos o inteligentes.
En los robots teleoperados las tareas de percepcin del entorno, planificacin 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 antropomrficos 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 dificultades 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, planificar 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 Artificial. Se han empleado mtodos simblicos de tratamiento
de la informacin basados en modelos geomtricos del entorno.

Las dificultades

surgen por la elevada capacidad de procesamiento requerida para tratar en tiempo real
problemas suficientemente significativos 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 planificacin sea lo suficientemente fiable. 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 planificacin, existen diferentes arquitecturas diseadas
teniendo en cuenta especificaciones 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
planificacin puramente estratgica. En este caso, se supone que la situacin en la que
va a ejecutarse el plan puede ser predecida de forma suficientemente precisa durante la
planificacin. En el otro extremo se sita la planificacin puramente reactiva en la que se
supone que el entorno es incierto, buscndose la mayor flexibilidad posible para reaccionar
en cualquier instante lo suficientemente 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 eficiencia
y flexibilidad. En efecto, las arquitecturas diseadas para conseguir la mayor flexibilidad
ante cualquier eventualidad del entorno son mucho menos eficientes que las que utilizan

1.3 Panorama general de la robtica mvil

13

criterios de decisin basados en modelos del entorno suficientemente precisos sin tener
demasiado en cuenta la posibilidad de generalizar el comportamiento. En este punto
conviene poner de manifiesto el inters de las arquitecturas con capacidad de aprendizaje
que combinan la planificacin estratgica, basada en tcnicas de bsqueda, con la
planificacin 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

1.3.1

14

Aplicacin de la robtica mvil

El uso de robots mviles est justificado 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 especfica 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 finalmente 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 eficiente

para conseguir la movilidad en terrenos suficientemente 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 significativa 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 eficiente en terrenos blandos.
Por otra parte, excepto en configuraciones muy especiales, no es posible alterar
internamente el margen de estabilidad para adaptarse a la configuracin 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 confieren caractersticas y propiedades diferentes respecto a la eficiencia 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 significativas 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 modificacin de vehculos


convencionales tales como automviles o incluso vehculos ms pesados. Este sistema
de locomocin se ilustra en la figura (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 P1 en la figura (1.1). Si no se tienen en cuenta las fuerzas centrfugas, los vectores
de velocidad instantnea son tangentes a estas curvas.
0

Y
P1

Figura 1.1.- Sistema Ackerman

1.4.2

Triciclo clsico

Este sistema de locomocin se ilustra en la figura (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 configuracin
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

Y
X

Figura 1.2.- Locomocin de triciclo clsico

existen una o ms ruedas para soporte. En la figura (1.3) se ilustra el sistema de locomocin
diferencial, esta configuracin 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 direccionamiento 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 configuracin 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=

Di + Dd
2

(1.1)

donde:
D = desplazamiento del robot
Di = desplazamiento de la rueda izquierda
Dd = desplazamiento de la rueda derecha
Similarmente, la velocidad del robot V est dado por la ecuacin:
V =

Vi + Vd
2

(1.2)

donde:
V = Velocidad del robot
Vi = Velocidad de la rueda izquierda
Vd = Velocidad de la rueda derecha
Refirindose a la figura (1.4), el arco Di representa una porcin de la circunferencia
de un crculo de radio d + b:
Ci = 2(d + b)
donde:

(1.3)

1.4 Morfologa de los robots mviles

20

Di
Dd
d

Figura 1.4.- Arcos Di y Dd son trazados por las ruedas izquierda y derecha respectivamente

Ci = circunferencia del crculo trazado por la rueda izquierda


d = distancia entre las ruedas
b = radio de giro interno
Adems, la relacin:
Di

2Di
implica: Ci =
=
Ci
2

(1.4)

Combinando las ecuaciones anteriores y despejando :


=

Di
d+b

(1.5)

Del mismo modo, el arco menor Dd representa una porcin de la circunferencia de


un crculo de radio b:
Cd = 2b

(1.6)

donde:
Cd = circunferencia del crculo trazado por la rueda derecha
Y la relacin
Dd

2Dd
implica: Cd =
=
Cd
2

(1.7)

1.4 Morfologa de los robots mviles

21

Combinando las ecuaciones y resolviendo para b:


b=

Dd

(1.8)

Sustituyendo esta expresin para b en las expresiones anteriores para :


=

Di
Di Dd
=
Dr
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 significativa, debido a la incertidumbre asociada con el punto
efectivo de contacto de las ruedas como se ilustra en la figura (1.5).

d
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 superficie 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

Rn
Re

Figura 1.6.- Debido a la conformidad de la llanta, el radio efectivo Re es menor al radio nominal Rn.

Refirindose ahora a la figura (1.6), el desplazamiento de la rueda Di es dado por la


ecuacin:
Di = Rei

(1.10)

donde:
= rotacin de la rueda (radianes)
Rei = radio efectivo de la rueda izquierda.
Expresando en trminos de conteo de encoders, esto implica:
Di =

2Ni
Rei
Ct

(1.11)

donde:
Ni = nmero de pulsos del encoder izquierdo
Ct = pulsos del encoder por cada revolucin de la rueda
Similarmente, para la rueda derecha:
Dd =

2Nd
Rer
Ct

(1.12)

1.4 Morfologa de los robots mviles

23

donde:
Nd = nmero de pulsos del encoder derecho
Ct = pulsos del encoder por cada revolucin de la rueda
Red = radio efectivo de la rueda derecha.
El controlador de direccionamiento intentar hacer que el robot viaje en una lnea
recta asumiendo que Ni y Nd 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, Rei puede no ser igual a Red .
movimiento

Dm

R
O

O
h

Dh

R-h

R
C

C
h
Escaln

w
h

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 figura (1.7). En el ascenso del escaln, la
rueda gira basndose en C al punto O0 . El encoder de la rueda en tanto mide una rotacin
efectiva correspondiente al movimiento del eje a travs de la trayectoria O-O0 , para una
distancia percibida Dm . Sin embargo, la verdadera distancia horizontal viaja es solo Dh .

1.5 Arquitectura de robots mviles

24

creando un error lineal de magnitud Dm Dh . 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

Dm Dh
d

(1.13)

donde
Dm = medida de la distancia viajada
Dh = distancia horizontal real viajada
d = distancia de separacin entre las ruedas.
Un efecto similar es observado cuando se cruza una hendidura en la superficie del
suelo, con una cada vertical h0 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 superficie
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 figura (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 figura (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

Motores

Encoders
Unidad Central de Proceso

Elevador vent.

Optosensores

Actuadores

Sensores

Sensor IR de
distancia

26

Ventilador
Pyroelctrico

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: planificacin del movimiento para alcanzar la
tarea encomendada.
Una planeacin de movimiento especifica un movimiento a ser ejecutado por el
robot. Por ejemplo, una ruta especfica una secuencia continua de configuraciones que
el robot podra atravesar hacia la configuracin objetivo. La tarea bsica del controlador de
tiempo real es hacer que el robot ejecute la planificacin 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 perfil 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 planificacin 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 definiciones 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

2.1.1

29

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 figura (2.1) [27].

Objeto en Movimiento
Sistema
Motor

Sistema
Sensorial
Sistema de Control

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

= F (Y, u, t)

z = (Y ) + (t)

<s , t [t0 , t1 )
u W = u() KC, |u(t)|

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
<s es un conjunto convexo cerrado de valores posibles del control de
por tramos,
retroalimentacin, <s es el espacio euclideano s-dimensional del control. Como us 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 instrumental1 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 infinito. 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 graficar y observar la
historia de su comportamiento, para ciertas condicionales iniciales.
De esta forma, se darn algunas definiciones importantes que describen a un robot
mvil como un objeto matemtico.

El error instrumental depende particularmente de los sensores que se implementen en el sistema.

2.1 Introduccin

31

Definicin 1: Un robot mvil A es un objeto rigido movindose en un espacio


Euclideano W, llamado el espacio de trabajo, representado como RN , con N = 2 o 3.
Sea B1 , ..., Bq objetos rgidos fijos distribuido en W. Los Bi0 s son llamados obstculos.
Definicin 2: Sea el robot A, en cierta posicin y orientacin, descrito como un
subconjunto compacto (cerrado y acotado) de W = RN , con N = 2 o 3 y los obstculos
B1 , ..., Bq subconjuntos cerrados de W. Sea FA y FW los sistemas cartesianos de A y W,
respectivamente. FA es un sistema en movimiento y FW es un sistema fijo o inercial. Por
definicin A es rgido, cualquier punto a de A tiene una posicin y orientacin fija con
respecto a FA . Pero la posicin de a en W depende de la posicin y orientacin de FA
relativo a FW . De esta manera los Bi0 s son tanto rgidos como fijos en W, y cualquier punto
de Bi , para todo i {1,...,q} tiene una posicin fija con respecto a FW
Definicin 3: Una configuracin q de A es una especificacin de todas las variables
de estado del sistema dinmico, de las cuales podemos conocer la posicin T y orientacin
de F A , respecto a FW . El espacio de configuracin de A es el espacio C de todas
las configuraciones de A. Una configuracin nica en C, seleccionada arbitrariamente, es
llamada la configuracin de referencia de A. Es denotado por 0.
El subconjunto de W ocupado por A en la configuracin q es denotado por A(q).
Un punto a de A es denotado por a(q) en W cuando A est en la configuracin de q. As,
para cualesquiera dos configuraciones 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 configuracin q.

2.2 Modelos cinemticos de robots mviles

32

De manera general, los algoritmos de inteligencia artificial, que se concentran en


resolver problemas de planificacin, navegacin y control, requieren nicamente que la
configuracin del robot se d solamente mediante la posicin y orientacin en su espacio
de trabajo [21]. Por lo tanto el espacio de configuraciones es de dimensin 3 (dado por la
posicin en x, la posicin en y, y la orientacin).

2.2
2.2.1

Modelos cinemticos de robots mviles


Hiptesis bsicas

Para el desarrollo de los modelos cinemticos de robots mviles se adoptan las siguientes
hiptesis simplificadoras: [26]

El robot se mueve sobre una superficie 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 flexibles.
Durante un perido de tiempo suficientemente 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 = [p1 ...pr ]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 figura (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

(2.1)

x2 + y 2 l2 = 0
siendo l la longitud de la varilla del pndulo

l
y

l
x

Figura 2.2.- Pndulo simple

2.2 Modelos cinemticos de robots mviles

34

En general es posible formular restricciones del tipo:


Gk (p, p0, t) = 0; k = 1,...,s

(2.2)

es decir, se deben satisfacer s restricciones o ecuaciones en las variables p, sus derivadas p0


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 = [p1 ...pn ]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:


Gk (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
(en lugar de i, j, k) el vector
que se ilustra en la figura (2.3). Se representa mediante X

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 = c0

(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.
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 figura (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 especificar 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:

x0 sin + y 0 cos = 0 c

(2.6)

x0 cos + y 0 sin = 0

(2.7)

X
c
Y

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
(x0 , y0 , 0 , 0 ), haciendo rodar la rueda sin deslizar y girndola alrededor del eje vertical, es
posible llegar a cualquier otra configuracin ((xf , yf , 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
influencia en el modelo cinemtico del vehculo. As, cabe distinguir entre cuatro tipos
de ruedas. Las ruedas fijas slo pueden rotar sobre su eje (ngulo en la figura (2.4)).
Las ruedas de direccionamiento se caracterizan por la rotacin alrededor del eje vertical
(ngulo en la figura (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 YL en la direccin del eje longitudinal del vehculo (figura (2.5)).
YL
YG

XL

{L}

{G}
y

XG

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 figura (2.6). Esta suposicin es vlida para
intervalos de control suficientemente pequeos.

2.3 Ecuaciones de movimiento del robot mvil

38

YL

XL

Figura 2.6.- Crculo osculador

La velocidad lineal del vehculo viene dada por

v=

s
t

(2.8)

(2.9)

y la velocidad angular por:

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 define como la inversa del radio de giro:

1
=
R
s

(2.11)

2.3 Ecuaciones de movimiento del robot mvil

2.3

39

Ecuaciones de movimiento del robot mvil

Las ecuaciones de movimiento en el sistema {L} de la figura (2.6) en la posicin inicial


son:
L

(x) = (R R cos())

(y) = R sin()

(2.12)
(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() R sin() sin()

(2.14)

y = R[cos() 1] sin() + R sin() cos()

(2.15)

Suponiendo que el intervalo de control es suficientemente 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 = R sin()

(2.18)

y = R cos()

(2.19)

x = s sin()

(2.20)

y = s cos()

(2.21)

y teniendo en cuenta (2.10)

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:

x0 = 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 configuraciones de robots mviles. Estos
ngulos se emplean en modelos tales como el de la bicicleta que en la figura (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

2.3.1

41

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 p0 y q0 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

p0 = J(p)q 0

(2.25)

siendo J(p)el jacobiano. Este jacobiano puede escribirse en la forma

p = f (p) +

m
X

g(p)i qi0

(2.26)

i=1

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


sin
0
0

cos
p =
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:

x0
sin 0
y 0 = cos 0 v

0
0
1

siendo q0 = [v ]T el vector de variables de entrada.

(2.28)

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 :
(2.29)

x cos + y 0 sin = 0

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
x0
tan = 0
y

(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:
q0 = {[J(p)]T J(p)}1 [J(p)]T p0

(2.31)

As, para el modelo (2.28) se obtiene:

sin cos 0
0
0
1

de la primera se deduce

v = x0 sin + y 0 cos
que coincide con la ecuacin (2.6).

x0
y0
0

(2.32)

(2.33)

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 configuraciones

En la figura (2.8) se muestran cuatro configuraciones 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 .

vi
(x, y)

a) Sncrona

(x, y)

vd

b) Diferencial

(x, y)

(x, y)

b
R

c) Triciclo clsico

1/

d) Configuracin Ackerman

Figura 2.8.- Configuraciones de robots mviles

2.3 Ecuaciones de movimiento del robot mvil

44

La configuracin de la figura (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
configuracin el modelo viene dado por las ecuaciones (2.27) o (2.28).
Ntese que para especificar la configuracin hay que indicar los valores de las tres
variables (x, y, ). Se tiene una restriccin no holnoma y dos grados de libertad.
En la figura (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 vi = i c y vd = d c. En este caso, la velocidad lineal y la velocidad
angular correspondientes en el modelo (2.26) vienen dadas por:

vd + vi
(d + i )c
=
2
2
(d i )c
vd vi
=
=
b
b
v =

siendo b la va del vehculo (distancia que separa las dos ruedas centrales).

(2.34)
(2.35)

Por

consiguiente, se especifican la velocidad lineal v y angular w del vehculo, las velocidades


de giro que hay que aplicar a las ruedas izquierda y derecha son:

v (b/2)
c
v + (b/2)
=
c

i =

(2.36)

(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:

x0
(c sin )/2
(c sin )/2
y 0 = (c cos )/2 i + (c cos )/2 d
0
c/b
c/b

(c sin )/2 (c sin )/2)

i
= (c cos )/2 (c cos )/2)
d
c/b
c/b

(2.38)

(2.39)

El esquema de la figura (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 vt = 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 = vt cos = ct cos

(2.40)

0 =

(2.41)

Asimismo, el ngulo de orientacin del vehculo vara segn:

0 =

ct
vt
sin = sin
l
l

(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 vt y .

0
sin cos
x

y 0 cos cos
vt +
0 =


(sin )/l
0

sin cos
0

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

v
0
t

0
1
(2.43)

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


l
l
= arctan
= arctan
R
v
vt
=
t =
c

v 2 + 2 l2
c

(2.44)

(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 figura (2.7). En este modelo se adoptan las expresiones (2.22)
y (2.23). Con respecto a la orientacin, se tiene en cuenta la definicin de la curvatura
(2.11) de donde se obtiene la ecuacin 0 = v. Por tanto, las ecuaciones son:
x0 = 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
configuracin Ackerman, tal como el que se representa en la figura (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 configuracin 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 configuracin del triciclo y de la locomocin Ackerman pueden representarse de
forma ms o menos simplificada mediante el modelo de la bicicleta y tiene dos grados de
libertad.

2.4 Control de movimientos de vehculos autnomos

2.3.3

48

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 p0 = [x0 y0
0 ]T , la integracin dara:
Rt


v
sin

d
x
x0
0
R
y = y0 + t v cos d
0R
t
0

d
0

(2.47)

De igual forma, en el caso de direccionamiento diferencial, se tiene:


R t c sin

(
+

)
d

x0
x
d
i
2
R0
y = y0 + t c cos ( d + i ) d
2
0 R
t c
0

( d + i ) d

(2.48)

0 b

En el caso del modelo del triciclo se aplican las ecuaciones:

(2.49)

v = c t cos

Rt

v
sin

d
x
x0
0
R
y = y0 + t v cos d
R0t vt sin

0
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 suficientemente
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

2.4

49

Control de movimientos de vehculos autnomos

El objetivo es que el vehculo ejecute de forma autnoma movimientos previamente


planificados 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 definido 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 figura (2.9) se muestra un esquema de control de vehculos autnomos en el que
se identifican 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.
x, y, ,

Generacin consigna
direccin

Generacin consigna
velocidad

Servo de direccin

Servo de velocidad

Dinmica lateral

x, y, , , v

Dinmica longitudinal

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 figura (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 modifica la velocidad cambia tambin el modelo y, por tanto, debe
modificarse 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

Camino
(x, y)
(xob, yob)

X
Figura 2.10.- Seguimiento de caminos explcitos.

El camino que se pretende seguir puede especificarse de diversas formas entre las que
cabe mencionar:
1) Especificacin 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) Especificacin interactiva desde una terminal empleando tcnicas de telerrobtica
o instrucciones especficas.
3) En una arquitectura de control inteligente empleando mtodos de planificacin 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 especificaciones 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
codificadores 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 manifiesto 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 filtro
de Kalman.

2.6
2.6.1

Seguimiento de caminos empleando mtodos geomtricos


Seguimiento mediante persecucin pura

Considrese un sistema de referencia local asociado al movimiento del vehculo, tal como
se muestra en la figura (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 figura (2.11) se deducen las relaciones:

r = x + d
r2 = d2 + (y)2

siendo r el radio de curvatura del vehculo.

(2.51)
(2.52)

2.6 Seguimiento de caminos empleando mtodos geomtricos

55

y
punto
objetivo

x
x

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 = r2

(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 =

2(x)
1
=
r
L2

(2.55)

donde el signo viene dado por el sentido de giro necesario para alcanzar el punto objetivo
en la figura (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 figura 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 definida 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 (figura (2.10)), y el punto objetivo sobre el camino est en las
coordenadas globales (xob , yob ) entonces se tendr:

x = (xob x) cos + (yob y) sin

(2.56)

Un mtodo prctico para aplicar la ley de control consiste en obtener, en cada periodo
de control, el punto (xobm , yobm ) del camino objetivo que est ms prximo al vehculo
(x, y) y elegir el punto objetivo (xob , yob ) a una distancia fija s sobre el camino tomada
en el sentido de avance a partir de (xobm , yobm ), tal como se ilustra en la figura (2.12). A
continuacin se calculan:

L=

p
(xob x)2 + (yob 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 eficiencia del controlador de persecucin pura.

2.6 Seguimiento de caminos empleando mtodos geomtricos

57

(xob, yob)

r
s

(x, y)

(xobm, yobm)
x

Figura 2.12.- Aplicacin del mtodo de persecucin pura con distancia fija 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 (L es 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

2.7

58

Aplicacin de la teora de control

2.7.1

Controlabilidad y estabilizacin

Definicin de controlabilidad.- Se dice que un sistema es controlable en el tiempo to si


es posible transferir un sistema por medio de un vector de control no restringido, desde
cualquier estado inicial x(to ) a cualquier otro estado en un intervalo de tiempo finito.
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
significa 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.
Definicin de estabilidad.- Se dice que el sistema es estable de entradaacotada/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 configuracin y u el vector de velocidades de control.

Dicha configuracin 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 configuracion (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
(z z ) = B(z )
dt

(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):
x0 = 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

sin 0
B = cos 0
0
1

(2.62)

Ntese que en esta configuracin 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:


0 0
v
v
z 0 = B(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:

0 0
C = B(0) = 1 0
(2.64)
0 1

es slo 2.

Sin embargo, lo anterior se refiere slo a la linealizacin, en la cual hay involucrada


una prdida de informacin. En efecto, de forma intuitiva puede afirmarse que el robot
mvil es controlable, ya que puede llevarse desde una postura inicial 0 a una final f en
un tiempo finito, 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
(z z ) = A(z z )
dt

(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:


x1 =
x2 = x sin + y cos
x3 = x cos + y sin


x1
0
0
1
x
x2 = sin cos 0 y
x3
cos sin 0

y se deriva en (2.68), se obtiene:

(2.67)

(2.68)

x01 =
x02 = x0 sin x cos + y 0 cos y sin

(2.69)

x03 = x0 cos x sin + y 0 sin + y cos


Sustituyendo las expresiones de x0 e y 0 de (2.61), se obtiene:
x01 =
x02 = v x3

(2.70)

x03 = x2
Si ahora se hace,
u1 =

(2.71)

u2 = v x3
el modelo puede escribirse en la forma
x01 = u1
x02 = u2

(2.72)

2.7 Aplicacin de la teora de control

63

x03 = x2 u1
Este modelo pertenece a la clase que se denomina en cadena, caracterizada por
ecuaciones de estado de la forma
x01 = u1
x02 = u2
(2.73)

x03 = x2 u1
...
x0n = xn1 u1

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 u1 es una funcin del tiempo y no una
variable de control, puede escribirse:

siendo

x02
x03

x01 = 0

0
0 0
0
0
x2
u1 (t) 0 0

x3
0
0

0
xn
xn
0
0 0 u1 (t) 0
x01

= x1

1
0

+ u2


0

(2.74)

(2.75)

u1 ()d

Por tanto, en este caso, se tiene un sistema de una sola entrada, lineal y de coeficientes
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 suficiente de controlabilidad. Cuando


u1 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
u1 (t), el sistema formado por las variables de estado [x2 ,...,xn ] 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 configuracin 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
[x2 ,...,xn ], y determinar un control u2 (t) que lleve esta segunda parte al origen en tiempo
finito (normalmente integrando las ecuaciones algebraicas); y 2) manteniendo u2 igual a
cero para dejar [x2 ,...,xn ] en el origen, determinar u1 (t) para conducir x1 (t) al origen en un
tiempo finito.
Ntese que cuando u1 es constante y diferente de cero, el sistema (2.75) se convierte
en invariante en el tiempo y [x2 ,...,xn ] es controlable. Por tanto, aplicando mtodos clsicos
de control lineal, es posible encontrar leyes de control en bucle cerrado sobre el sistema
[x2 ,...,xn ].

2.7.2

Seguimiento de trayectorias

2.7 Aplicacin de la teora de control

2.7.2.1

65

Trayectorias de referencia

Considrese que la trayectoria que se pretende seguir viene dada por el modelo de
referencia:
x0ref = vref sin ref
0
yref
= vref cos ref

(2.76)

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

lim ref (t) 6= 0

(2.77)

lo que significa que se pretende seguir una trayectoria, ya que en el caso en que fueran
nulas, el problema consistira en alcanzar una postura de referencia fija.
El problema de seguimiento consiste en encontrar una ley de control:

v
u=
= (, ref , vref , ref )

(2.78)

tal que:
lim [(t) ref (t)] = 0

(2.79)

Este problema de seguimiento involucra una ecuacin dinmica del error ref .
Considrese el siguiente cambio de coordenadas:

xref x
e1
sin cos 0
e2 = cos sin 0 yref y
ref
e3
0
0
0

(2.80)

Derivando con respecto al tiempo, se obtiene:

0
y 0 ) cos
e01 = (xref x) cos (x0ref x0 ) sin (yref y) sin + (yref

2.7 Aplicacin de la teora de control

66

0
e02 = (xref x) sin (x0ref x0 ) cos (yref y) cos (yref
y 0 ) sin

(2.81)

e03 = ref
0
, y 0 de (2.76) y (2.61) se obtiene
Sustituyendo las expresiones de x0ref , x0 , yref

e01 = [(x xref ) cos + (y yref ) sin ] v(sin2 + cos2 ) + vref (sin ref sin + cos ref cos )
e02 = [(xref x) sin + (yref y) cos ] + vref (sin ref cos cos r sin )
(2.82)

e03 = ref
Sustituyendo (2.80) en (2.82) y haciendo:
u1 = v + vref cos e3

(2.83)

u2 = ref
se llega a

0 0
0
1 0
u1
0

0 0 e + sin e3 vref + 0 0
e =
u2
0 1
0 0 0
0

(2.84)

Linealizando el sistema (2.84) alrededor del equilibrio (e = 0, u = 0), para e3


suficientemente pequeo, puede emplearse el siguiente sistema lineal variante en el tiempo:

0
0
ref (t)
1 0
u1
0

0
vref (t) e + 0 0
ref (t)
(2.85)
e =
u2
0
0
0
0 1

Si vref y ref son constantes, se tiene un sistema lineal e invariante en el tiempo cuya

matriz de controlabilidad es:

1 0
0
0 2ref vref ref

C = [B AB A2 B] = 0 0 ref vref
0
0
0 1
0
0
0
0

(2.86)

Si vref y ref son diferentes de cero, el sistema es controlable. Ntese que si vref y
ref = 0 (sistema de referencia en reposo), se pierde la controlabilidad.

2.7 Aplicacin de la teora de control

2.7.2.2

67

Ley de control lineal

En Canudas [10] se propone la ley de control:


u1 = k1 e1
u2 = k2 sgn(vref )e2 k3 e3
Sustituyendo en la ecuacin de error (2.85), se obtiene:

k1
ref
0
0
vref e
e0 = Ae = ref
0
k2 sgn(vref ) k3

(2.87)

(2.88)

El polinomio caracterstico viene dado por:

det(sI A) = s(s + k1 )(s + k3 ) + vref k2 sgn(vref )(s + k1 ) + (s + k3 )2ref

(2.89)

Si se hace k3 = k1 la ecuacin caracterstica es:


(s + k1 )[s(s + k1 ) + vref k2 sgn(vref ) + 2ref ] = 0

(2.90)

Identificando con una ecuacin caracterstica:


(s + 2b)(s2 + 2bs + b2 ) = 0

(2.91)

y escogiendo los valores del coeficiente 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:
k1 = 2b
k2

b2 2ref
=
|vref |

k3 = 2b

(2.92)

2.7 Aplicacin de la teora de control

68

Ntese que la ganancia k2 aumenta cuando |vref | 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:
2
b = ( 2ref + vref
)1/2

(2.93)

con > 0, las ganancias de control son:


2
)1/2
k1 = 2(2ref + vref

k2 = |vref |

(2.94)

2
)1/2
k2 = 2(2ref + vref

Cuando vref = 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

2.7.3
2.7.3.1

69

Seguimiento de caminos
Planteamiento del problema

Considrese el problema de seguimiento de un camino conocido que se ilustra en la figura


(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
Rc = 1/ c (distancia CM en la figura).
B

v cos ( - c )

v
P

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 figura (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:
v cos
s0
=
Rc
Rc

(2.95)

siendo Rc el radio de curvatura del camino en el punto M. La curvatura en dicho punto


viene dada por c (s) = 1/Rc . Por tanto, puede escribirse:
s0 =

1 v cos
c (s) 1(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)

= c , se obtiene:
Finalmente, derivando en
0 = dc

dt

(2.98)

siendo la velocidad angular del vehculo. Teniendo en cuenta que dc = c (s)ds, la


expresin (2.98) puede escribirse como:
0 = c (s)s0

(2.99)

Por tanto, se llega a:

s0 = v cos

0 = v sin

1
1 c (s)

0 = v cos

(2.100)
1
1 c (s)

Supuesto conocido un camino, y la velocidad del vehculo v(t), estando acotadas


tanto la velocidad como su derivada v0 (t), se trata de encontrar una ley de control,

2.7 Aplicacin de la teora de control

71

suficientemente suave:
v(t)]
= k[s, , ,

(2.101)

tal que el vehculo siga el camino o, lo que es lo mismo, que se cumpla:


lim (t) = 0

lim (t)
= 0

(2.102)

Obsrvese que, en este caso, se trata de anular los errores de seguimiento de dos
Por otra parte, ahora se
variables (distancia al camino y diferencia de orientacin ).
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:

s0 = v cos

0 = v sin

1
1 c (s)
(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


= 0). Obsrvese que, en
ecuaciones (2.104) segn la tangente en el punto ( = 0,

2.7 Aplicacin de la teora de control

72

este caso, para controlar lateralmente el vehculo slo se necesita considerar la segunda y
es suficientemente pequeo puede escribirse:
tercera ecuacin de (2.104). Si

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 = k1 v k2 |v|

(2.106)

siendo k1 > 0, k2 > 0. La ecuacin caracterstica en bucle cerrado correspondiente a la


variable de estado es:
00 + k2 |v| 0 + k1 v2 = 0

(2.107)

Este comportamiento dinmico puede estudiarse escalando en velocidad mediante la


variable:
0 =

(2.108)

|v| d

(2.109)

siendo la distancia recorrida:


=

En este caso, se tiene:

00 + k2 0 + k1 = 0

(2.110)

Las constantes k1 , k2 se eligen para conseguir un comportamiento dinmico


determinado, se emplean las expresiones:
k1 = 2n
k2 = 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 coeficiente 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 especificacin de tareas como acciones
que es necesario ejecutar, formulando objetivos que son necesarios cumplir y la
posibilidad de planificar acciones de acuerdo con el estado actual del robot y de su
entorno.

2.

Eficiencia
Se refiere tanto a la eficiencia en la realizacin de una tarea (tiempo de ejecucin
precisin) como a los recursos empleados (hardware y software necesarios). En
principio, la eficiencia se consigue disponiendo de modelos apropiados del robot y de
su entorno. Tambin se debe definir, 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 especificadas.
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 significativas e incorporacin de nuevas tecnologas, equipos y
componentes.

4.

Grado de autonoma
El grado de autonoma es otra especificacin 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 flexibilidad, 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 definir 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, definiendo 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 especificadas 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, definiendo las interacciones entre ellas. Los problemas tpicos que hay que
abordar en el diseo de arquitecturas de control son:

1.

Definicin de niveles de jerarquizacin


Para ello, se suele seguir un enfoque descendente con refinamientos 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 definicin 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 definidos, 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 suficientemente 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 definir 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 definicin 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

4.

78

Otras caractersticas
En la definicin funcional de la arquitectura es necesario involucrar tambin la
definicin 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 definir 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, planificacin de tareas/misiones,
planificacin 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

3.3

79

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 figura (3.1) se
presenta la arquitectura de control propuesta para el robot mvil.

Nivel de
decisiones

Nivel
funcional

Navegacin Autnoma

Aplicacin especfica

Procesamiento bsico
Control de dispositivos
Tratamiento de seales

Sensores

Actuadores

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 rangefinders 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 aficionados, es insuficiente para construir un robot de
navegacin.

80

4.1 Introduccin

81

Durante los ltimos aos, algunas compaas comenzaron a prestar sus servicios a los
aficionados, algunos investigadores han fundado compaas que construyen robots, como el
caso del Dr. Mark W. Spong, fundador y presidente de la empresa Mechatronics Systems1
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 figura (4.1) se muestran
algunos robots, estos son ms sofisticados 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
(rangefinders) infrarrojos y posee un procesador Pentium. La plataforma tambin da
soporte a accesorios como rangefinders 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-eficiencia de cada uno de ellos. El robot mvil cuenta con los siguientes componentes
mecnicos bsicos2 los cuales se pueden apreciar en la figura (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

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 figura (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 interfirieran con los movimientos que el
robot desempear como se muestra en la figura (4.3), los cuales consisten en girar el robot
en su propio eje o de girar apoyndose en una de las ruedas

Esquina interfiriendo
en el movimiento
Giro hacia
la derecha

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 modificaciones 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 figura (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 reflectores 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

Ventilador

Motor y sistema
de engranaje

2 Encoders opticos

86

Sensor pyroelectrico
ELTEC

3 Sensores de proximidad
SHARP GP2D12

2 Sensores reflectores
HOA1405-2

Figura 4.4.- Estructura del robot mvil con los principales componentes

se muestra en la figura (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 grfica de la figura (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 superficie como se muestra en la figura (4.7), con la finalidad

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 figura (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 suficiente utilizar un ventilador de plstico
montado en un motor de DC como se muestra en la figura (4.9). Las especificaciones

4.3 Electrnica del robot mvil

88

Figura 4.6.- Grfica 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 suficiente 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 superficie 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 analgicadigital (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 infinito. En el caso de
representar digitalmente la tensin empleando un cdigo binario de 4 bits, solo se pueden
definir 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
especficos 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


figura (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

figura (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 amplificador
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

Cuantificacin 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 codificamos como 1001. Este proceso se denomina cuantificacin.
Obviamente, hay errores que reciben el nombre de errores de cuantificacin. Si se usan ms
bits para representar (o simplemente codificar) una seal analgica se reducen los errores
de cuantificacin pero se requieren circuitos ms complejos.

4.3 Electrnica del robot mvil

4.3.1.4

93

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
ingles3 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 fija 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 figura (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

Figura 4.11.- Seal modulada con un ciclo de trabajo del 50%

La figura (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

tOn

95

tOff

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 suficientemente 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 electrnicos4 de los cuales algunos se pueden apreciar en la figura (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 reflectores (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 figura (4.13).

El nmero entre parntesis indica la cantidad.

4.3 Electrnica del robot mvil

97

PIC16F877

+5

7404

33pF

+5

4MHz
33pF

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

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

40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21

L293B

+5

7408

L293B

ELECTRNICA

GP2D12 Derecho

Optosensor Derecho

GP2D12 Enfrente

Optosensor Izquierdo

GP2D12 Izquierdo

SENSORES

Motor
Der.

Elevador

Motor
Izq.

Pyroelctrico

Encoder Derecho
Encoder Izquierdo

Ventilador

Micro -Switch
ACTUADORES

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 (figura (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 fin 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 PICStar 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 finalidad 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-H conectados 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 figura
(4.15).

L293

+5
Ventilador Adel.
Ventilador Atras

Elevador Adel.
Elevador Atras

Vss

16

15

14

13

12

11

7
8

+5

+5
Ventilador

10
Vs

+5

M
Elevador

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 figura (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

L293

74LS08

PWM1
Adelante Izq.
Atrs Izq.
PWM2
Adelante Der.
Atrs Der.

101

Vcc

14

13

12

11

10

GND

+5

14

13

12

11

+5

10

16
15

Vs

M
Motor Izq.

+18

Vss

Motor Der.

+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 figura (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
amplificar 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
rangefinder 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
figura (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 reflejantes
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.- Grfica 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 figura (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 figura (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 amplificada 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 finalmente volver a su estado estable como se muestra en la figura (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 figura (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 figura (4.23), localizados en la parte inferior de toda la estructura , ya que las
especificaciones 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 figura (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 reflector (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

109

330 +/- 5%
330 +/- 5%

4.3 Electrnica del robot mvil

+5
GND

Disco A

74LS04
1

GP1A05E

14
13

12

11

10

Disco B

Vcc

GND

TIMER0
TIMER1

GP1A05E

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 reflector 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 reflejante pasa por su zona
de respuesta.
El robot mvil cuenta con dos sensores reflectores 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 figura (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

Figura 4.25.- Sensor reflector Sharp HOA140

110

Captulo 5
Software del robot mvil

5.1

Introduccin

El microcontrolador PIC16F877 (mostrado en la figura (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 sofisticados
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 predefinida 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 oficinas 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 finalmente 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 fija pre-definida [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 figura (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 definir 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

114

Rueda Der.

Rueda Izq.

5.1 Introduccin

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 figura (5.2). El plano propuesto
para la maqueta se presenta en la figura (5.2) (el cual ha sido modificado 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 reflectores. 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 figura (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 figura (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.
V

2.40 m

30 cm

46 cm

2.40 m

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 figura (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.- Fotografia 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 flujo del programa principal se presenta en la figura (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 especfica el cual tiene como objetivo

5.2 Programa principal

117

Inicio

Inicializacin y configuracin

Navegacin Autnoma

Buscar vela

Existe vela
dentro del cuarto?

SI

NO

SI
Acercarse a la vela y
apagarla

Entrada al cuarto?

Fin

NO

Figura 5.4.- Diagrama de flujo 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
configurar 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 especfica (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

5.2.1

118

Inicializacin de las variables y configuracin 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
configurar los puertos como entrada o salida en base al diagrama de conexin de la
figura (4.13) del captulo (4), definir las propiedades de los canales del convertidor A/D,
configurar los mdulos de captura y comparacin de datos como mdulos de modulacin
de ancho de pulso (PWM), definir 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 figura (4.13)) adems de definir 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 configuracin 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 configuracin para los registros encargados de la conversin A/D son:
ADCON0 00000000
ADCON1 00000000

Los valores de configuracin 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

5.3

119

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 figura (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 confiable.
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 infinito 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 flujo del
algoritmo de navegacin autnoma se presenta en la figura (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

Tiempo us

Algoritmo de navegacin
autnoma

Subrutina checar enfrente

145

Subrutina seguimiento de pared

195

Subrutina checar izquierda

145

485

Figura 5.5.- Diagrama de flujo 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 final del cdigo. Esta tabla fue definida 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 grficas
que proporciona el fabricante. Las distancias mayores a 71 cm. no fueron consideradas
y con la finalidad 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.8V originado 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 flujo de la subrutina
medir distancia se presenta en la figura (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.
Tiempo us

Subrutina medir distancia

Conversin A/D

Almacer primera lectura

37

Conversin A/D

(Primera lectura +
segunda lectura) / 2

74

Conversin A/D

(Primer promedio +
tercera lectura) / 2

Regreso al programa
principal sin realizar la
medicin

NO

111

Valor dentro de la
tabla?

SI

Tabla
Voltaje-Distancia

Regresar

Figura 5.6.- Diagrama de flujo de la subrutina medir distancia

135

5.3 Algoritmo de navegacin autnoma

5.3.2

122

Subrutina seguimiento de pared

La distribucin de los sensores de proximidad IR que tiene robot mvil se muestran en la


figura (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.

5 cms.

135

45

Rueda Der.

Rueda Izq.

90

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
predefinida 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 figura (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.

B
d

rs
r

Rueda Der.

Rueda Izq.

Pared

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.
l+r
=
h
d + rs

(5.1)

Despejando d
d=

(l + r)
rs
cos()

(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
5
cos()

d = 23.2842
Esta es la distancia predefinida 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 figura (5.9).
Valor de referencia
VR

+-

Controlador

Proceso

Valor actual
VA

Sensor

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 (definido 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 confiable navegacin


autnoma se tom al robot mvil por completo como todo el sistema a controlar, como se
muestra en la figura (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).
Distancia deseada
DR

+-

Control de
direccin

Robot mvil

Distancia actual
DA

Sensor de
distancia

Figura 5.10.- Sistema de control para navegacin autnoma

El algoritmo de seguimiento de pared mostrado en la figura (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 fij 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

Velocidad Deseada

Distancia
Deseada

+-

Error
distancia

++

-+

Controlador
Kp0

Limitador
PWM0

Seal PWM0
Rueda Izquierda

Controlador
Kp1

Limitador
PWM1

Seal PWM1
Rueda Derecha

Distancia
actual

Velocidad Deseada

Sensor de proximidad IR
izquierdo

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 figura (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

127

Rueda Der.

Rueda Izq.

Rueda Der.

Rueda Izq.

5.3 Algoritmo de navegacin autnoma

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 figura (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 figura
(5.14).

5.3 Algoritmo de navegacin autnoma

128

Pared
D

rs
r

Rueda Der.

Rueda Izq.

Pared

Figura 5.13.- Anlisis de la distancia de enfrente

De la frmula
s=

r
180

(5.4)

donde r = la mitad de la distancia de separacin que hay entre las ruedas.


Sustituimos valores
s = 90

8.25 cm. = 12.95 cm.


180

(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 flujo de esta subrutina se presenta en la figura (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

s
r

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 final 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 grfica en la figura.(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 final 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

Regreso

NO

Distancia del sensor de


enfrente <= 15 cms.?
SI

Rueda izquierda hacia adelante


Rueda derecha hacia atras

TMR0 = 17?
NO
SI

TMR1L = 17?
NO
SI

Rueda izquierda hacia adelante


Rueda derecha hacia adelante
Regreso

Figura 5.15.- Diagrama de flujo 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 figura (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 figura (5.17). Suponemos que el

5.3 Algoritmo de navegacin autnoma

131

C
Ru
eda
er.
Ru
eda
Iz

Ru
ed
aD

De
r.
Ru
eda
De
r.

Ru
eda

Izq
.

q.

Rueda Der.

zq.
Rueda Izq.

Ru
ed
aI

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
5
cos()

d = 40.2548

5.4 Algoritmo para encontrar la vela y apagarla

132

22 cms.

20 cms.

4 cms.

Rueda Izq.

Rueda Der.

4 cms.

46 cms.

Figura 5.17.- Suposicin del inicio del recorrido

El diagrama de flujo de esta subrutina se presenta en la figura (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

Regreso

Distancia del sensor


izquierdo > 40 cms.?

NO

SI

Avanzar paralelamente a la
pared 30 cms.
Girar sobre el propio eje
62 hacia la izquierda
Avanzar 20 cms.

Comenzar gira hacia la


izquierda pivoteando sobre la
rueda izquierda
NO

Distancia del sensor


izquierdo <= 28 cms.?

SI

Regreso

Figura 5.18.- Diagrama de flujo subrutina checar izquierda

o saliendo de algn cuarto. El programa principal verifica 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 verifica 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 significa 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
flujo de la subrutina de servicio se presenta en la figura (5.19).
subrutina de servicio de
interrupcin
Almacenar registros W,
STATUS y PCLATH variables
temporales

Seal optosensor
derecho activada?

NO

Rutina de retardo de
150ms

NO

Seal optosensor
derecho activada?

SI

SI

Cambiar valor
bandera de acceso

Regresar valores de los


registros W, STATUS y
PCLATH variables temporales
Regreso

Figura 5.19.- Diagrama de flujo 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 figura (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 flujo del programa principal en la figura (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 fijo, 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 figura
(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 figura
(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 figura (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 verificar 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 confirma la existencia de
una vela dentro del cuarto.

5.4 Algoritmo para encontrar la vela y apagarla

137

103 = 30cms = 33 pulsos

Rued

a Izq

Rueda Der.

Rueda

Der.

Rueda Der.

Rueda Izq.

Rueda Izq.

Figura 5.20.- Diagrama buscar vela

El diagrama de flujo de la subrutina bsqueda de la vela se presenta en la figura


(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
significa 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 sofisticado, para apagar la vela. El robot

5.4 Algoritmo para encontrar la vela y apagarla

138

Subrutina buscar vela

Avanzar 13.74 cms


Activar rueda izquierda
hacia atras

Activar rueda izquierda hacia


adelante
NO

NO
SI

Se encontr vela
en el primer giro

Sensor pyroelctrico
< 2.1 V?

SI

Sensor pyroelctrico
> 2.9 V?

NO

NO

Rueda izquierda ha
avanzado 30 cms?

Rueda izquierda ha
avanzado 30 cms?

SI

Se encontr vela
en el segundo giro

Regreso

Figura 5.21.- Diagrama de flujo 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 figura (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 figura (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 flama de la vela, propicia una corriente de aire que intenta
apagar la vela. Ya que este movimiento no garantiza la extincin de la flama 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 confirmar que la flama 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 flujo de la subrutina apagar vela se presenta en la figura (5.23).

5.4 Algoritmo para encontrar la vela y apagarla

140

Subrutina apagar vela

Variables de bsqueda
de vela activadas?

Contador de giros = 1

Girar sobre eje


hacia la izquierda

SI

Contador de giros = 1

Girar sobre eje


hacia la derecha

SI

Continuar con
navegacin autnoma
NO

Optosensores detectan
semicrculo de la vela?

Detener robot en esa posicin

NO

Esperar 100ms.

Esperar 100ms.

Detener robot en esa posicin

Detener robot en esa posicin

Permanecer 2 segundos
en posicin actual

Permanecer 2 segundos
en posicin actual

Contador giros = 2?

Contador giros = 4?

NO

NO

Contador de giros =
Contador de giros + 1

Contador de giros =
Contador de giros + 1

Encender ventilador

Levantar ventilador

Permanecer 2 segundos
en posicin actual

SI

Regresar

Detener ventilador y regresarlo


a la posicin inicial

Fin del programa

Figura 5.23.- Diagrama de flujo 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 figura (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 figura (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 figura (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 manifiesto una de las principales
caractersticas del guiado diferencial: la posibilidad de que el robot gire sobre s mismo
como se muestra en la figura (6.4).
Como segunda prueba se trata se obtener el ngulo de direccin de la rueda delantera
, la velocidad angular y la velocidad lineal vt de un triciclo clsico cuando realiza una
trayectoria que describe un arco de circunferencia 1, definido por x(t) = cos t, y(t) = sin t,
desde el punto inicial (1,0) hasta el punto final (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:

sin cos
cos cos
J =

(sin )/l
0

0
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:

vt

"

l2 sin cos
(l cos )2 +sin2

l2 cos cos
(l cos )2 +sin2

l sin
(l cos )2 +sin2

0
1

x0
y0
0

0

(6.2)

Obsrvese cmo la ecuacin de la segunda fila 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(x0 /y 0 ).
En la figura (6.5) se muestra el diagrama Simulink correspondiente al modelo inverso
p
del triciclo. Obsrvese cmo la velocidad v se obtiene segn: v = x02 + 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, vt 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 figura (6.6) se presentan los resultados de la simulacin con el diagrama de la figura
(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

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 definida por los puntos (0,0) (4,0)
(4,3.45) y (0,3.45).
En la figura (6.7) se muestra la pantalla con los parmetros introducidos.
Los resultados obtenidos en el servidor de Matlab se muestran en las figuras (6.8) y
(6.9).

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 figura (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 modificaron 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 fija 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 figura
(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 finalizar 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


figura (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 fin 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 modificada 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 definieron
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 figura (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

Figura 6.10.- Animacin 3D del seguimiento de trayectoria.


Mano entre la pared y el robot mvl

Robot mvil
separndose del objeto

Figura 6.11.- Fotografa prueba con mano

151

6.2 Pruebas experimentales

Robot mvil realizando


giro 90 hacia la derecha

Agua en el suelo

Figura 6.12.- Fotografa prueba con agua

Robot mvil

Luz infrarroja

Figura 6.13.- Fotografa prueba con luz infrarroja

152

6.2 Pruebas experimentales

Vela encendida

Robot mvil
buscando vela

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

153

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 especfica. 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 modificar 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 UV cuando hay una flama 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
classification 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 Artificial
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, Nolfi S., Evolving Mobile Robots in Simulated and Real
Environments. In Artificial 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. Artificial potential fields 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.fi-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 figura (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 Ingeniera1 . En la figura (7.2) se muestra el modelo en tres dimensiones por
atrs, enfrente, del lado derecho, del lado izquierdo, por arriba y por abajo

Sensor pyroelectrico
ELTEC

Ventilador

2 Bateras
3 Sensores de proximidad
SHARP GP2D12

Motor y sistema
de engranaje
2 Sensores reflectores
HOA1405-2

2 Ruedas

2 Encoders opticos

Figura 7.1.- Dibujo en tres dimensiones del robot mvil en AutoCAD.

Eduardo Mazzocco Zanella

160

Appendix A Dibujo en tres dimensiones del robot mvil.

Figura 7.2.- Diferentes vistas del modelo 3D

161

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

Apndice C
Tabla de conversin de voltaje de sensores IR
a distancia
Voltaje
Distancia
0.35
71
0.37
70
0.39
69
0.41
66
0.43
63
0.45
61
0.47
59
0.49
57
0.51
55
0.53
53
0.55
51
0.57
49
0.59
47
0.61
46
0.63
44
0.64
43
0.66
42
0.68
40
0.70
39
0.72
35
0.74
33
0.76
33
0.78
32
0.80
31
0.82
31
0.84
30
0.86
30
0.88
29
0.90
29
0.92
28
0.94
28
0.96
27

Voltaje
Distancia
0.98
27
1.00
26
1.02
26
1.04
25
1.05
25
1.07
24
1.09
24
1.11
24
1.13
23
1.15
23
1.17
22
1.19
22
1.21
21
1.23
21
1.25
21
1.27
20
1.29
20
1.31
20
1.33
20
1.35
19
1.37
19
1.39
18
1.41
18
1.43
17
1.45
17
1.46
17
1.48
16
1.50
16
1.52
16
1.54
16
1.56
16
1.58
15

Voltaje = V
Distancia = cms.

165

Voltaje
Distancia
1.60
15
1.62
15
1.64
15
1.66
15
1.68
14
1.70
14
1.72
14
1.74
14
1.76
14
1.78
13
1.80
13
1.82
13
1.84
13
1.86
13
1.88
13
1.89
13
1.91
12
1.93
12
1.95
12
1.97
12
1.99
12
2.01
12
2.03
11
2.05
11
2.07
11
2.09
11
2.11
11
2.13
11
2.15
11
2.17
11
2.19
11
2.21
11

Voltaje
Distancia
2.23
11
2.25
10
2.27
10
2.29
10
2.30
10
2.32
10
2.34
10
2.36
10
2.38
10
2.40
10
2.42
9
2.44
9
2.46
9
2.48
9
2.50
9
2.52
9
2.54
8
2.56
8
2.58
8
2.60
8
2.62
8
2.64
7
2.66
7
2.68
7
2.70
7
2.71
7
2.73
7
2.75
7
2.77
7
2.79
7
2.81
7

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
CH1
CH2
CH3
CH4
CH5
CH6
CH7

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

B'00000001'
B'00001001'
B'00010001'
B'00011001'
B'00100001'
B'00101001'
B'00110001'
B'00111001'

;
;
;
;
;
;
;
;

Canal
Canal
Canal
Canal
Canal
Canal
Canal
Canal

0
1
2
3
4
5
6
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
Dis_pared_fija EQU
Dis_pared_librar EQU

D'25'
.22
.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

166

SPD0
SPD1
;CYC_CNT

EQU
EQU
EQU

26h
27h
28h

;Variable para la velocidad

conta1
conta2
conta3
conta1_int
conta2_int
conta3_int
;CCPAUX
;AUX
CONTA0

EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU

29h
2Ah
2Bh
2Ch
2Dh
2Eh
2Fh
30h
31h

;Contadores para rutina de retardo

DisAc_IZ
Error_dis
DisAc_Enf
DisAc_Der
DisAc_TEMP

EQU
EQU
EQU
EQU
EQU

32h
33h
34h
35h
36h

;Varialbe para la medicin

Banderas

EQU

37h

Espera_sensor2
Num_cuarto
Temp_pyro
TMR1L_PYRO
Temp_vela
apaga_TEMP

EQU
EQU
EQU
EQU
EQU
EQU

38h
39h
3Ah
3Bh
3Ch
3Dh

org
goto
org
goto
org

0
Iniciales
4
rs_piso
5

;Registro utilizado para Baderas


;Variables para la busqueda

;***************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
call

Banderas,Accseso_C
buscar_vela

;Checa si "bandera de acceso" esta activada


;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

167

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

D100ms_int
re2_100int
re1_100int
re0_100int

donde_estoy

salir

entrada

bcf
btfsc
goto

INTCON,INTF
PORTD,7
donde_estoy

;Verifica Bandera de activacion de el pin RB0

movlw
movwf
movlw
movwf
movlw
movwf
btfsc
goto
decfsz
goto
decfsz
goto
decfsz
goto
btfss
goto

.24
conta1_int
.255
conta2_int
0x04
conta3_int
PORTD,7
donde_estoy
conta3_int,F
re0_100int
conta2_int,F
re1_100int
conta1_int,F
re2_100int
PORTD,7
salir

;Retardo de 150ms esperando pin RB0

btfss
goto
bcf
bcf
incf

PORTB,1
entrada
Banderas,Accseso_C
PORTB,1
Num_cuarto,F

;Estoy a adentro o afuera?


;Adentro
;Afuera => desactivar "bandera de acceso"

call
movf
movwf
swapf
movwf
swapf
swapf
retfie

Led_cuarto
PCLATH_TEMP,W
PCLATH
STATUS_TEMP,W
STATUS
W_TEMP,F
W_TEMP,F

bsf
bsf
goto

Banderas,Accseso_C
PORTB,1
salir

;**************Rutina
noventa_IZQ
movlw
movwf
movwf

menor_izq

menor_izq2

movlw
movwf
clrf
clrf
movlw
subwf
btfss
goto
movlw
movwf
movlw
subwf
btfss

;Hay una linea

;Hay una linea

;Si no se detecta RB0 => no hay linea

;Cuando sale incrementa el contador


;Recuperando los valores del STATUS y W

;Activar "bandera de acceso"

para seguimiento de pared derecha*****************************


Velocidad_Vuelta
CCPR2L
CCPR1L
b'00000110'
PORTD
TMR0
TMR1L
D'14'
TMR0,W
STATUS,C
menor_izq
b'00000100'
PORTD
D'13'
TMR1L,W
STATUS,C

;llanta derecha hacia adelante e iz atras


;Borrar contadores
;Numero de pulsos

;Parar en Rueda izquierda


;Numero de pulsos

168

goto
movlw
movwf
call
movlw
movwf
return

menor_izq2
b'00000000'
PORTD
delay_100ms
b'00000101'
PORTD

;Parar en Rueda Derecha


;Dos llantas hacia enfrente

;*******************************************
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
esp_ida

movlw
movwf
clrf
movlw
movwf
call
movf
movwf
movlw
subwf
btfss
bsf
movlw

b'00000001'
PORTD
TMR0
CH4
ADCON0
GetAD
ADRESH,W
Temp_vela
D'108'
Temp_vela,W
STATUS,C
PORTC,5
D'49'

;llanta iz enfrente

subwf
btfss
goto

TMR0,W
STATUS,C
esp_ida

movlw
movwf
call

b'00000000'
PORTD
delay_medio_seg

;Parar las dos ruedas

movlw
movwf
clrf

b'00000010'
PORTD
TMR0

;llanta iz atras

movlw
movwf
call
movf

CH4
ADCON0
GetAD
ADRESH,W

;Sensor pyroelectro en Ch 4

;Sensor pyroelectrico en Ch 4
;
;Comienza conversion A/D
;Obtiene el valor A/D
;Voltaje de comparacion

2.1V = 108

;Se activa variable "va"


;Angulo de busqueda (distinto al algoritmo

original)

esp_regreso

;Espera terminar giro de busqueda

;Comienza conversin A/D


;Obtiene el valor A/D

169

movwf
movlw
subwf
btfsc
bsf
movlw
subwf
btfss
goto

Temp_vela
D'150'
Temp_vela,W
STATUS,C
PORTC,4
D'49'
TMR0,W
STATUS,C
esp_regreso

;Voltaje de comparacion

2.9V =150

;Se activa variable "regreso"


;Angulo de busqueda de 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
goto
call
btfss
goto

PORTB,0
esperando_vela
delay_100ms
PORTD,7
esperando_vela

;Ha encontrado el semicirculo de la vela


activar_vent
movlw b'00000000'
movwf PORTD
bcf
PORTB,2
bsf
PORTB,3
call
delay_medio_seg
bsc
PORTB,5
sensor_elevador
btfss PORTB,7
goto
sensor_elevador
call
delay_medio_seg
call
delay_medio_seg
call
delay_medio_seg
call
delay_medio_seg

apagando_vela

movlw
movwf
movlw
movwf
call
movlw
movwf
call
call
call
call
decfsz
goto

movlw
movwf
reapagando_vela
movwf
call
movlw
movwf
call
call
call
call
decfsz
goto
bcf
bcf

.2
apaga_TEMP
b'00000110'
PORTD
delay_100ms
b'00000000'
PORTD
delay_medio_seg
delay_medio_seg
delay_medio_seg
delay_medio_seg
apaga_TEMP,F
apagando_vela
.4
apaga_TEMP
movlw b'00001001'
PORTD
delay_100ms
b'00000000'
PORTD
delay_medio_seg
delay_medio_seg
delay_medio_seg
delay_medio_seg
apaga_TEMP,F
reapagando_vela
PORTB,5
PORTB,3

;Espera optosensores

;Parar las dos ruedas


;Apaga Ventilador atras
;Activa Ventilador adelante
;Activa elevador adelante
;Sensor del elevador

;llanta iz atras derecha adelante

;llanta iz atras derecha adelante

;Apaga elevador adelante


;Apaga Ventilador adelante

170

bsf
call
bcf

PORTB,4
delay_medio_seg
PORTB,4

fin

goto

fin

saliendo_gyro

bcf
Banderas,Accseso_C
bsf
INTCON,GIE
return

;Activa elevador atras


;Apaga elevador atras

;habilita interrupciones

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

Dis_Enf_lim
DisAc_Enf,W
STATUS,C

;Cargamos la distancia limite


;de enfrente
;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
subwf
btfsc
call
return

Dis_IZ_lim
DisAc_IZ,W
STATUS,C
no_hay_pared

;Cargamos la distancia limite


;del lado iz

;*************** Rutina para seguimiento de pared derecha ****************************


checar_derecha movlw CH2
;Sensor IR derecho en Ch 2
call
MEDIR
movwf DisAc_Der
movlw
subwf
btfsc
call
return

Dis_IZ_lim
DisAc_Der,W
STATUS,C
no_hay_paredDER

;Cargamos la distancia limite


;del lado iz

;***************** Rutina para seguimiento de pared derecha **************************


no_hay_paredDER
movlw .20
;Velocidad para la vuelta
movwf CCPR2L
movwf CCPR1L
;Desplazamiento hacia
desplaza_enfDER
movwf
clrf
clrf

enfrente
movlw b'00000101'
PORTD
TMR0
TMR1L

menor_EnfDER

Dis_pared_fija
Dis_pared_librar
TMR0,W
STATUS,C
menor_EnfDER
PORTD,0
Dis_pared_fija
Dis_pared_librar
TMR1L,W
STATUS,C
menor_Enf2DER

menor_Enf2DER

movlw
addlw
subwf
btfsc
goto
bcf
movlw
addlw
subwf
btfss
goto

;giro sobre su propio


movlw
movwf
clrf

eje
b'00001001'
PORTD
TMR1L

;Dos llantas hacia enfrente


;Borrar contadores

;Llanta Izquierda
;Detiene motores

;Llanta derecha hacia atras Iz adelante


;Borra contador Llanta derecha

171

menorDER

menor2DER

clrf
movlw
subwf
btfss
goto
movlw
subwf
btfss
goto

TMR0
D'7'
TMR1L,W
STATUS,C
menorDER
D'7'
TMR0,W
STATUS,C
menor2DER

;Desplazamiento hacia
movlw
movwf
call

enfrente
b'00000000'
PORTD
delay_250ms

movlw
movwf
clrf
avanza_poquDER movlw
addlw
subwf
btfss
goto

b'00000101'
PORTD
TMR0
Dis_pared_fija
Dis_pared_librar
TMR0,W
STATUS,C
avanza_poquDER

clrf
esperar_giroDE movlw
call
movwf

CCPR2L
CH2
MEDIR
DisAc_Der

movlw
addlw
movwf
movf
subwf
btfss
goto
return

Dis_des
.5
giro_TEMP
DisAc_Der,W
giro_TEMP,F
STATUS,C
esperar_giroDE

;# de pulsos del encoder correspondientes


;al desplazamiento de la llanta derecha

;Parar en Ruedas

;Dos llantas hacia enfrente

;Llanta Izquierda

;Sensor IR derecho en Ch 0

;Obtiene el error

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

KSPDI
SPD0
SPD1

movlw
movwf

Dis_des
Error_dis

movf
subwf

DisAc_IZ,W
Error_dis,F

movf
subwf
addwf

Error_dis,W
SPD1,F
SPD0,F

movf
call
movwf
movf
call
movwf

SPD0,W
Lim_inf_PWM
SPD0
SPD1,W
Lim_inf_PWM
SPD1

call
update
return

;Vel. Izq
;Vel. Der

;Obtiene el error
;Error_dis = Dis_des - DisAc_IZ
;SPD1 = SPD1-Error_dis
;SPD0 = SPD0+Error_dis
;Limite inferior de PWM0

;Limite inferior de PWM0


;Actuliza ciclo de trabajo PWM

;*************** CONTROL_DER (Rutina para seguimiento de pared derecha)


*******************
Control_DER
movlw CH2
;Sensor IR der en Ch 2
call
MEDIR

172

movwf

DisAc_Der

movlw
movwf
movwf

KSPDI
SPD0
SPD1

movlw
movwf

Dis_des
Error_dis

movf
subwf

DisAc_IZ,W
Error_dis,F

movf
subwf

Error_dis,W
SPD0,F

;SPD0 = SPD0-Error_dis (Al reves del control

addwf

SPD1,F

;SPD1 = SPD1+Error_dis

movf
call
movwf
movf
call
movwf

SPD0,W
Lim_inf_PWM
SPD0
SPD1,W
Lim_inf_PWM
SPD1

;Limite inferior de PWM0

;Vel. Izq
;Vel. Der

;Obtiene el error
;Error_dis = Dis_des - DisAc_IZ

IZQ)

call
update
return

;Limite inferior de PWM1


;Actuliza ciclo de trabajo PWM

;***************************************************
no_hay_pared
movlw .20
;Velocidad para la vuelta
movwf CCPR2L
movwf CCPR1L
;Desplazamiento hacia
desplaza_enf
movlw
movwf
clrf
clrf

enfrente
b'00000101'
PORTD
TMR0
TMR1L

menor_Enf

Dis_pared_fija
Dis_pared_librar
TMR0,W
STATUS,C
menor_Enf
PORTD,0
Dis_pared_fija
Dis_pared_librar
TMR1L,W
STATUS,C
menor_Enf2

menor_Enf2

movlw
addlw
subwf
btfsc
goto
bcf
movlw
addlw
subwf
btfss
goto

;giro sobre su propio eje


movlw b'00000110'
movwf PORTD

menor

menor2

clrf
clrf
movlw
subwf
btfsc
goto
movlw
subwf
btfss
goto

;Desplazamiento hacia
movlw
movwf
call

TMR1L
TMR0
D'7'
TMR1L,W
STATUS,C
menor
D'7'
TMR0,W
STATUS,C
menor2
enfrente
b'00000000'
PORTD
delay_250ms

;Dos llantas hacia enfrente


;Borrar contadores

;Llanta Izquierda
;Detiene motores

;llanta derecha hacia delante Iz atras


;Borra contador Llanta derecha
;# de pulsos del encoder correspondientes
;al desplazamiento de la llanta derecha

;Parar Ruedas

173

movlw
movwf
clrf
avanza_poquito movlw
addlw
subwf
btfss
goto

b'00000101'
PORTD
TMR0
Dis_pared_fija
Dis_pared_librar
TMR0,W
STATUS,C
avanza_poquito

;Dos llantas hacia enfrente

;Llanta Izquierda

;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
addlw
movwf
subwf
btfss
goto
return

Dis_des
.5
giro_TEMP
giro_TEMP,F
STATUS,C
esperar_giro

;Obtiene el error

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

menor_d

menor_d2

movlw
movwf
clrf
clrf
movlw
subwf
btfss
goto
movlw
movwf
movlw
subwf
btfss
goto
movlw
movwf
call
movlw
movwf
return

b'00001001'
PORTD
TMR0
TMR1L
D'14'
TMR0,W
STATUS,C
menor_d
b'00001000'
PORTD
D'13'
TMR1L,W
STATUS,C
menor_d2
b'00000000'
PORTD
delay_100ms
b'00000101'
PORTD

;llanta derecha hacia atras e iz enfrente


;Borrar contadores
;Numero de pulsos

;Parar en Rueda izquierda


;Numero de pulsos

;Parar en Rueda Derecha


;Dos llantas hacia enfrente

;********** 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
movf
addw
rrf

GetAD
ADRESH,W
DisAc_TEMP,F
DisAc_TEMP,w

movlw D'140'
posiciones de la tabla
subwf DisAc_TEMP,W
btfsc STATUS,C
goto
no_tabla
movlw
subwf

D'18'
DisAc_TEMP,F

;Tercera muestra
;1er promedio + Tercera /2
;Verificar si el dato del promedio >= que

;Minimizar los
;datos en la tabla

174

no_tabla

btfss
clrf
movf
call
bcf
bcf
movwf
return

STATUS,C
DisAc_TEMP
DisAc_TEMP,W
Tabla2
PCLATH,0
PCLATH,1
DisAc_TEMP

movwf
clrf
clrf
goto

PORTB
CCPR1L
CCPR2L
Inicio

;Llama a tabla para regresar


;el Valor en Centimetros

;Hubo error en el promedio de las distancias


;por lo tanto regresa el inicio

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

ADCON0,0
espera20u
ADCON0,2

espera

btfsc ADCON0,2
goto
espera
return

espera20u
ret1

movlw 0x05
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
movlw
movwf
bcf
movlw
movwf
clrf
return

STATUS,RP0
B'00000000'
ADCON0
STATUS,RP0
B'00000000'
ADCON0
ADRESH

;Banco 1
;Seleccionar ch0-ch7
;como entradas analgicos
;Banco 0
;seleccionar Fosc/2,ch0..
;Aun esta apagado el A/D.
;Limpia registro ADRESH

movwf
bsf
movlw
movwf
movlw
movwf
bcf
movlw
iorwf

T2CON
STATUS,RP0
0x18
T2CON
b'11101000'
TMR0
STATUS,RP0
B'00111100'
CCP1CON,F

;sin prescalamineto y sin posescalamiento


;banco 1
;Fijar el periodo para 40KHZ
;PR2
;Timer0 con escalmiento de 1:8
;
;banco 0

INI_PWM

175

iorwf CCP2CON,F
movlw 0x03
movwf T1CON
return

;esta activado el timer1

;*******************************************
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
bsf
bsf
bsf

PORTC,7
PORTC,6
PORTC,5
PORTC,4

;LED
;LED
;LED
;LED

DE
DE
DE
DE

bip

btfss
goto

PORTC,3
bip

;Esperando el push-buton

comienza

bcf
bcf
bcf
bcf

PORTC,7
PORTC,6
PORTC,5
PORTC,4

;LED
;LED
;LED
;LED

DE
DE
DE
DE

RESET
RESET
RESET
RESET

RESET
RESET
RESET
RESET

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

SPD1,W
CCPR2L

btfss
goto
return

PIR1,TMR2IF
wait

wait

delay_medio_seg movlw
movwf
re2_r2
movlw
movwf
re1_r2
movlw
movwf
re0_r2
decfsz
goto
decfsz
goto
decfsz
goto
return

.122
conta1
.255
conta2
0x04
conta3
conta3,F
re0_r2
conta2,F
re1_r2
conta1,F
re2_r2

;Retardo de MEDIO segundo

delay_250ms

movlw
movwf
movlw
movwf
movlw
movwf
decfsz
goto
decfsz
goto
decfsz
goto
return

.61
conta1
.255
conta2
0x04
conta3
conta3,F
re0_250
conta2,F
re1_250
conta1,F
re2_250

;Retardo de 250ms

movlw
movwf

.24
conta1

;Retardo de 100ms

re2_250
re1_250
re0_250

delay_100ms

176

re2_100
re1_100
re0_100

movlw
movwf
movlw
movwf
decfsz
goto
decfsz
goto
decfsz
goto
return

.255
conta2
0x04
conta3
conta3,F
re0_100
conta2,F
re1_100
conta1,F
re2_100

;*****************************************
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
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw

D'71'
D'70'
D'69'
D'66'
D'63'
D'61'
D'59'
D'57'
D'55'
D'53'
D'51'
D'49'
D'47'
D'46'
D'44'
D'43'
D'42'
D'40'
D'39'
D'35'
D'33'
D'33'
D'32'
D'31'
D'31'
D'30'
D'30'
D'29'
D'29'
D'28'
D'28'
D'27'
D'27'
D'26'
D'26'
D'25'
D'25'
D'24'
D'24'
D'24'
D'23'
D'23'
D'22'

177

retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw

D'22'
D'21'
D'21'
D'21'
D'20'
D'20'
D'20'
D'20'
D'19'
D'19'
D'18'
D'18'
D'18'
D'17'
D'17'
D'17'
D'16'
D'16'
D'16'
D'16'
D'15'
D'15'
D'15'
D'15'
D'15'
D'14'
D'14'
D'14'
D'14'
D'14'
D'13'
D'13'
D'13'
D'13'
D'13'
D'13'
D'13'
D'12'
D'12'
D'12'
D'12'
D'12'
D'12'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'11'
D'10'
D'10'
D'10'
D'10'
D'10'
D'10'
D'10'
D'10'
D'10'
D'9'
D'9'
D'9'
D'9'
D'9'
D'9'
D'8'
D'8'

178

retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
retlw
END

D'8'
D'8'
D'8'
D'7'
D'7'
D'7'
D'7'
D'7'
D'7'
D'7'
D'7'
D'7'

179

También podría gustarte