control distribuido para vehÍculos autÓnomos...
TRANSCRIPT
INSTITUTO TECNOLÓGICO DE LA PAZ
DIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN
MAESTRÍA EN SISTEMAS COMPUTACIONALES
CONTROL DISTRIBUIDO PARA VEHÍCULOS AUTÓNOMOS BASADO
EN COMPONENTES INTELIGENTES
T E S I S
QUE PARA OBTENER EL GRADO DE
MAESTRO EN SISTEMAS COMPUTACIONALES
PRESENTA:
JUAN FRANCISCO VILLA MEDINA
DIRECTOR DE TESIS DIRECTOR DE TESIS DR. JOAQUÍN GUTIÉRREZ JAGÜEY DR. SAÚL MARTÍNEZ DÍAZ
MIEMBROS DEL JURADO:
DR. JOAQUÍN GUTIÉRREZ, ITESM DR. SAÚL MARTÍNEZ, CICESE PRESIDENTE SECRETARIO
DR. JESÚS ALBERTO SANDOVAL, UABC DR. ALEJANDRO ISRAEL BARRANCO, CICATA
VOCAL VOCAL SUPLENTE
LA PAZ, BAJA CALIFORNIA SUR, MÉXICO, FEBRERO 2013.
SEP--- - - -SrCRrTARl A D [
lD UC AC IO N PUBLICA
Subsecretaría de Educación SuperiorDirección General de Educación Superior Tccnológica
Instituto Tecnológico de La paz
La Paz, RC.S. , @rmN;¡;Y"'''1OFICIO No. DEPI/023/20I3
C. JUAN FRANCISCO VILLA MEDINA,ESTUDIANTE DE LA MAESTRÍA ENSIST EMAS COMPUTACIONALES,PRESENTE.
Con base en el dictamen de aprobación emitido por el Comité Tutorial de la Tesis denominada: "CONT ROL DISTRIB UIDOPARA VEHÍCULOS AUTÓNOMOS BASADO EN COMPON ENTES INTELIGENTES". mediant e la opción de tesis (Proyectosde Investigación) , entregado por usted para su análisis, le informamos que se AUTORIZA la impresión.
ATENTAM EN T E"Ciencia es Verdad, Técnica es Libertad"
::~ -~'~~" 1ABL PEREZ AL"VAREZ,JEFE DE LA DIV. DE EST. DE POSGRADO E INV.
iNllTmITO TECNlX.OOIO:l ce LA I\UDMSlClN DE EST\JOOJS CEPOSGAADl)
E tW'";:S1'lCl,\CDj
C.p. Coordinación de Maestría.Cp. Departame nto de Servicios Escolares.
PPNyptm
Bculevard Forjadores de 8.CS. #4720. Col. 8 de ocr. lera. Sección CP. 2~08(lLa Paz. 8.C.S. Conmutador (612) 121- 04-24 , Fax: (6 12) 121- 12-95
www.itlp.edu.mx
AUTORIZACIÓN DE IMPRESIÓN DE TESIS~ frr,rT\I¡L' O[
ll' (JUc.rú:-< I"('BUU.
Dirección General deEducación Superior TecnológicaInstituto Tecnológico de La Paz ~~
Inst it utos Tecno lóg icos
SUBDIRECCIÓN ACADÉMICADIVISIÓN DE ESTUDIOS DE POSGRADO E INVESTIGACIÓN.
La Paz, 8.C.S., a 31 de enero de 2013.
C. M.C. PABLO PÉREZÁLVAREZ,JEFE DE LA DIVISIÓN DE ESTUDIOS DEPOSGRADO E INVESTIGACIÓN,P RE S ENTE.
Por medio del presente, informamos a usted que se autoriza la impresión del siguiente trabajo detesis:
No. de Control NombreM10310004 Juan Francisco Villa MedinaMaestría en: Sistemas ComoutacionalesTítulo de la tesis:Control Distribuido para Vehículos Autónomos Basado en Comoonentes IntelioentesDICTAMEN:Se autoriza el trabajo de investigación, en virtud de que realizó las correccionescorresoondientes conforme a las observaciones planteadas por este Comité Tutoria!.
Atentamente."Ciencia es verdad, Técnica es Libertad"
El Comité Tutorial
Dr. Alejandro Isra
c.c.p, Coordinación de la Maestría en Sistemas Computacionales.c.c.p, Departamento de Servicios Escolares.c.c.p. Estudiante..
ITLP-DEPI-RTT-10 Rev.O
c©Juan Francisco Villa Medina, 2013.
Dedicado a mi familia.
VI
Agradecimientos
Mis agradecimientos al Centro de Investigaciones Biologicas del Noroeste, S.C. (CIB-
NOR) por el apoyo brindado para mi superacion academica. Gracias a mi asesor Dr.
Joaquın Gutierrez por todo el tiempo y apoyo dedicado, por sus consejos y aportaciones
en la direccion de este trabajo. Al Dr. Miguel Angel Porta por todo su apoyo, animo,
consejos y aportaciones. A la Ing. Viviana Flores por su apoyo incondicional durante
toda la realizacion de esta investigacion, por su animo y tiempo gracias.
Al Dr. Saul Martınez por su tiempo y apoyo para mejorar este trabajo.
Gracias a Alfonso Alvarez Casillas y a Jorge Cobos Anaya del taller de maquinados
del CIBNOR por su apoyo en la fabricacion de diferentes piezas utilizadas en este
trabajo.
Gracias a mi familia por su apoyo y motivacion, por su comprension con mi falta
de tiempo libre.
A mis profesores del posgrado del Instituto Tecnologico de La Paz, que a lo largo de
estos dos ultimos anos amplie mis conocimientos en diferentes areas, gracias. Gracias
a la M.S.C. Iliana Castro por su atencion y apoyo, siempre con buena disposicion.
Gracias a la Direccion General de Educacion Superior Tecnologica (DGEST) por
la beca que me fue otorgada dentro del Programa de Capacitacion Estudiantil de los
Programas de Posgrado 2011.
VII
Resumen
Se formula, implementa y valida una arquitectura de control distribuido para la confi-
guracion de vehıculos autonomos, donde se integran un conjunto heterogeneo de com-
ponentes inteligentes. Cada componente cumple una funcion particular y su interaccion
en conjunto a traves de peticiones logran un comportamiento autonomo para realizar
la tarea asignada. Un componente inteligente esta basado en un sensor y/o actuador
en particular, mediante el procesamiento de informacion y el control de sus accio-
nes programadas se convierte en un componente autonomo. El componente inteligente
encapsula las caracterısticas del sensor o actuador, ası como las especificaciones de
operacion.
Se configuran dos vehıculos autonomos para realizar tareas de navegacion autonoma
con el desarrollo fısico de los componentes inteligentes. Las tareas de seguimiento de
pared y una trayectoria permiten evaluar el desempeno de la arquitectura de control.
Con base en los resultados obtenidos se concluye que la arquitectura de control
distribuido basado en componentes inteligentes es una alternativa practica para la im-
plementacion de sistemas roboticos. La comunicacion asıncrona basada en peticiones
(comandos abstractos) permite una interaccion confiable entre los componentes inteli-
gentes. Tambien la naturaleza modular de la arquitectura de control permite, una vez
que los componentes inteligentes han sido desarrollados y evaluados, ser utilizados en
otros sistemas roboticos en diversas aplicaciones.
VIII
Abstract
Autonomous vehicles are used in diverse applications due to their great potential to
move toward a particular site and perform a specialized task. This thesis formulates,
implements, and validates a distributed control architecture for the autonomous vehi-
cle configuration, which integrates a heterogeneous set of intelligent components. Each
intelligent component performs a specific function and the interaction among the in-
telligent components, by means of petitions, allows achieving an autonomous behavior
to perform the assigned task. An intelligent component is based on a sensor and/or
actuator in particular, by processing information and controlling their actions program-
med becomes an autonomous component. An intelligent component encapsulates the
characteristics of sensor or actuator and the specifications of its operation.
Two autonomous vehicles were configured to perform autonomous navigation tasks
with the implementation of the intelligent components. The wall and trajectory fo-
llowing tasks were assigned to evaluate the performance of the distributed control
architecture based on intelligent components.
The major result of this work has been the formulation of the distributed con-
trol architecture based on intelligent components as a practical alternative for the
implementation of robotic systems. The asynchronous communication based on peti-
tions (abstract commands) allows a reliable and robust interaction among intelligent
components. Also the modularity of the control architecture allows the intelligent com-
ponents, formerly they have been developed and evaluated, to be used in other robotic
systems in various applications.
Contenido
Agradecimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII
Indice de Figuras XII
Indice de Tablas XVI
1. Introduccion 1
1.1. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2. Objetivos Especıficos . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4. Descripcion del Documento . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Diseno: Arquitectura de Control 8
2.1. Componente Inteligente . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Comunicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Operacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1. Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2. Registro de Componentes Inteligentes . . . . . . . . . . . . . . . 16
IX
Contenido X
2.3.3. Componente Inteligente Coordinador . . . . . . . . . . . . . . . 17
2.3.4. Mecanismo de Eleccion . . . . . . . . . . . . . . . . . . . . . . . 18
3. Desarrollo: Arquitectura de Control 20
3.1. Componentes Inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.1. Unidad de Procesamiento . . . . . . . . . . . . . . . . . . . . . 21
3.1.2. Unidad de Enlace . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2. Componente Inteligente Coordinador . . . . . . . . . . . . . . . . . . . 23
3.3. Componentes Inteligentes Especıficos . . . . . . . . . . . . . . . . . . . 24
3.3.1. Vehıculo Ackermann . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2. Componente Inteligente Traccion . . . . . . . . . . . . . . . . . 26
3.3.3. Componente Inteligente Direccion . . . . . . . . . . . . . . . . . 27
3.3.4. Componente Inteligente Odometro Ackermann . . . . . . . . . . 30
3.3.5. Vehıculo Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.6. Componentes Inteligentes Rueda Izquierda y Derecha . . . . . . 36
3.3.7. Componente Inteligente Odometro Diferencial . . . . . . . . . . 38
3.4. Componentes Inteligentes Comunes . . . . . . . . . . . . . . . . . . . . 40
3.4.1. Distribucion de Energıa . . . . . . . . . . . . . . . . . . . . . . 41
3.4.2. Componente Inteligente Seguidor de Pared . . . . . . . . . . . . 41
3.4.3. Componente Inteligente Evasor . . . . . . . . . . . . . . . . . . 44
3.4.4. Componente Inteligente Compas . . . . . . . . . . . . . . . . . . 46
3.4.5. Componente Inteligente de Comunicacion . . . . . . . . . . . . . 49
3.4.6. Componente Inteligente Camara . . . . . . . . . . . . . . . . . . 53
3.5. Vehıculos Autonomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4. Implementacion: Arquitectura de Control 58
4.1. Componentes Inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.1.1. Integracion de Componentes Inteligentes . . . . . . . . . . . . . 63
Contenido XI
4.1.2. Consumos Electricos . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2. Experimentos y Resultados . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.1. Sistema de Registro GPS . . . . . . . . . . . . . . . . . . . . . . 65
4.2.2. Seguimiento de Pared . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.3. Trayectorias Autonomas . . . . . . . . . . . . . . . . . . . . . . 69
4.2.4. Seguimiento de Pared con Obstaculos . . . . . . . . . . . . . . . 70
4.2.5. Trayectorias Autonomas con Obstaculos . . . . . . . . . . . . . 71
4.2.6. Trafico de Peticiones . . . . . . . . . . . . . . . . . . . . . . . . 73
5. Conclusiones 78
5.1. Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Bibliografıa 81
A. Especificaciones para Desarrollar un Componente Inteligente 85
A.1. Componente Inteligente . . . . . . . . . . . . . . . . . . . . . . . . . . 85
A.2. Registro de Componentes Inteligentes . . . . . . . . . . . . . . . . . . . 86
A.3. Diseno Base para Componente Inteligente . . . . . . . . . . . . . . . . 88
B. Costo de los Prototipos 90
Indice de Figuras
2.1. Estructura de un Componente Inteligente . . . . . . . . . . . . . . . . . 9
2.2. Componentes Inteligentes . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3. Configuracion de un Sistema Robotico . . . . . . . . . . . . . . . . . . 11
2.4. Topologıa de Red ZigBee . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5. Distribucion de Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.6. Componente Inteligente Coordinador . . . . . . . . . . . . . . . . . . . 17
2.7. Eleccion por Prioridades . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.8. Flujo de una Peticion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1. Conexion de un Componente Inteligente . . . . . . . . . . . . . . . . . 22
3.2. Tarjeta Generica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3. Componente Inteligente Coordinador . . . . . . . . . . . . . . . . . . . 23
3.4. Plataforma Ackermann . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5. Geometrıa Ackermann . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.6. Conexion del Componente Inteligente Traccion . . . . . . . . . . . . . . 27
3.7. Comportamiento del Componente Inteligente Traccion . . . . . . . . . 28
3.8. Componente Inteligente Traccion . . . . . . . . . . . . . . . . . . . . . 29
3.9. Comportamiento del Componente Inteligente Direccion . . . . . . . . . 30
3.10. Conexion del Componente Inteligente Direccion . . . . . . . . . . . . . 31
3.11. Componente Inteligente Direccion . . . . . . . . . . . . . . . . . . . . . 31
XII
INDICE DE FIGURAS XIII
3.12. Comportamiento del Componente Inteligente Odometro Ackermann . . 32
3.13. Componente Inteligente Odometro Ackermann . . . . . . . . . . . . . . 33
3.14. Plataforma Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.15. Dimensiones de la Plataforma Diferencial . . . . . . . . . . . . . . . . . 34
3.16. Geometrıa Diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.17. Comportamiento del Componente Inteligente Rueda Izquierda . . . . . 37
3.18. Comportamiento del Componente Inteligente Rueda Derecha . . . . . . 38
3.19. Conexion de los Componentes Inteligentes Rueda Izquierda y Derecha . 39
3.20. Componentes Inteligentes Rueda Izquierda y Derecha . . . . . . . . . . 40
3.21. Componente Inteligente Odometro Diferencial . . . . . . . . . . . . . . 40
3.22. Tarjeta de Distribucion . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.23. Tarea Seguimiento de Pared . . . . . . . . . . . . . . . . . . . . . . . . 42
3.24. Comportamiento del Componente Inteligente Seguidor Pared . . . . . . 43
3.25. Componente Inteligente Seguidor Pared . . . . . . . . . . . . . . . . . . 44
3.26. Tarea Evasion de Obstaculos . . . . . . . . . . . . . . . . . . . . . . . . 45
3.27. Comportamiento del Componente Inteligente Evasor . . . . . . . . . . 45
3.28. Componente Inteligente Evasor . . . . . . . . . . . . . . . . . . . . . . 46
3.29. Comportamiento del Componente Inteligente Compas . . . . . . . . . . 47
3.30. Conexion del Componente Inteligente Compas . . . . . . . . . . . . . . 48
3.31. Componente Inteligente Compas . . . . . . . . . . . . . . . . . . . . . . 48
3.32. Estructura del Componente Inteligente de Comunicacion . . . . . . . . 49
3.33. Conexion del Componente Inteligente Comunicacion . . . . . . . . . . . 50
3.34. Componente Inteligente Comunicacion . . . . . . . . . . . . . . . . . . 51
3.35. Interfaz Grafica de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.36. Comportamiento del Componente Inteligente Camara . . . . . . . . . . 54
3.37. Componente Inteligente Camara . . . . . . . . . . . . . . . . . . . . . . 55
3.38. Vehıculo Autonomo Ackermann . . . . . . . . . . . . . . . . . . . . . . 56
INDICE DE FIGURAS XIV
3.39. Vehıculo Autonomo Diferencial . . . . . . . . . . . . . . . . . . . . . . 57
4.1. Calibracion del Componente Inteligente Odometro diferencial . . . . . . 61
4.2. Calibracion del Componente Inteligente Odometro Ackermann . . . . . 61
4.3. Tiempo de Reenvıo de Peticion . . . . . . . . . . . . . . . . . . . . . . 62
4.4. Actividad en Componente Inteligente Coordinador . . . . . . . . . . . . 63
4.5. Pruebas de Laboratorio . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.6. Sistema de Registro GPS . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.7. Componentes Inteligentes para el Seguimiento sin Obstaculos . . . . . . 67
4.8. Seguimiento sin Obstaculos . . . . . . . . . . . . . . . . . . . . . . . . 67
4.9. Seguimiento sin Obstaculos Ackermann . . . . . . . . . . . . . . . . . . 68
4.10. Seguimiento sin Obstaculos Diferencial . . . . . . . . . . . . . . . . . . 68
4.11. Seguimiento sin Obstaculos Cuadrado . . . . . . . . . . . . . . . . . . . 69
4.12. Componentes Inteligentes para Trayectorias sin Obstaculos . . . . . . . 70
4.13. Recorridos Autonomos sin Obstaculos . . . . . . . . . . . . . . . . . . . 70
4.14. Escenario Cuadrado con Obstaculos . . . . . . . . . . . . . . . . . . . . 71
4.15. Componentes Inteligentes para el Seguimiento con Obstaculos . . . . . 71
4.16. Seguimiento con Obstaculos . . . . . . . . . . . . . . . . . . . . . . . . 72
4.17. Componentes Inteligentes para Trayectorias con Obstaculos . . . . . . . 73
4.18. Casos Posibles en Recorridos Autonomos . . . . . . . . . . . . . . . . . 73
4.19. Giros con Obstaculos por la Derecha . . . . . . . . . . . . . . . . . . . 74
4.20. Giros con Obstaculos por la Izquierda . . . . . . . . . . . . . . . . . . . 74
4.21. Ejemplo de Registro de Peticiones Generadas . . . . . . . . . . . . . . . 75
4.22. Distancia Recorrida Junto con el Control de Velocidad . . . . . . . . . 75
4.23. Orientacion Lograda . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.24. Peticiones para Giros a Izquierda y Derecha en Recorrido Recto . . . . 76
4.25. Escenario Cuadrado con Obstaculos . . . . . . . . . . . . . . . . . . . . 76
INDICE DE FIGURAS XV
4.26. Interaccion entre Componentes Inteligentes Evasor y Seguidor de Pared 77
A.1. Estructura de un Componente Inteligente . . . . . . . . . . . . . . . . . 85
A.2. Ejemplo de Tarjeta para Desarrollar Componentes Inteligentes . . . . . 89
Indice de Tablas
2.1. Protocolo de Peticion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2. Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3. Peticion de Giro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Registro de Componentes Inteligentes . . . . . . . . . . . . . . . . . . . 16
3.1. Controlador de Motores . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.1. Calibracion del CI-Odometro Diferencial . . . . . . . . . . . . . . . . . 60
4.2. Calibracion del Componente Inteligente Odometro Ackermann . . . . . 61
4.3. Consumo de Corriente del Vehıculo Ackermann . . . . . . . . . . . . . 64
4.4. Consumo de Corriente del Vehıculo Diferencial . . . . . . . . . . . . . . 64
4.5. Consumo de Corriente de los Componentes Inteligentes Comunes . . . . 65
4.6. Prioridades de Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . . 77
A.1. Registro de Componentes Inteligentes . . . . . . . . . . . . . . . . . . . 86
A.2. Protocolo de Peticion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.3. Peticiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.1. Inversion en las Partes Utilizadas en la Plataforma Ackermann . . . . . 90
B.2. Inversion en las Partes Utilizadas en la Plataforma Diferencial . . . . . 90
B.3. Inversion en los Componentes Inteligentes Comunes . . . . . . . . . . . 91
B.4. Inversion en Baterıas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
XVI
Capıtulo 1
Introduccion
Los robots son la integracion de componentes mecanicos, electronicos y de procesa-
miento de informacion para desarrollar autonomamente su tarea programada en un
ambiente de trabajo especıfico. Estos sistemas roboticos han sido utilizados para au-
tomatizar diversos procesos en la industria y para realizar tareas en otros sectores,
como la exploracion aerea, espacial o submarina, ası como la busqueda y rescate en
siniestros, o bien, la prestacion de servicios en hogares y oficinas. Asimismo, la roboti-
ca que se define como la ciencia que disena, construye, opera e implementa robots,
esta en constante desarrollo e investigacion para satisfacer los retos tecnologicos de
nuevas aplicaciones [27]. Dentro de la clasificacion de robots moviles se encuentran los
vehıculos autonomos, vehıculos capaces de realizar movimientos inteligentes y actuar
sin requerir una guıa o control teleoperado [17].
Un robot realiza su tarea asignada a traves de una arquitectura de control apropiada,
la cual es representada mediante una configuracion que describe la relacion entre los
componentes funcionales (como locomocion, planeacion, navegacion, posicionamiento
y comunicacion) y los componentes mecatronicos (como actuadores/sensores). La con-
figuracion es una estructura de diferentes subsistemas, conectados por interfaces fısicas
(hardware) y logicas (software), los cuales desarrollan una funcion especıfica que es
1
2
implementada por los componentes seleccionados.
Diversos trabajos en la sıntesis de sistemas roboticos han sido investigados para definir
la configuracion de un manipulador o de un robot movil. Por ejemplo, la configuracion
de manipuladores se han propuestos a partir de la combinacion de enlaces y articula-
ciones prefabricados [29]. El uso de componentes identicos tambien se ha explorado,
donde los componentes se pueden configurar para la manipulacion de objetos, ası como
para generar la locomocion del robot [30].
Otros trabajos han utilizado componentes heterogeneos que incluyen plataformas movi-
les, actuadores, ruedas y sistemas de energıa, para seleccionar la configuracion de un
robot mediante el uso de tecnicas de busqueda [21] [10].
Por otro lado, diferentes estrategias de control han sido utilizadas para la implementa-
cion de robots, tres clasificaciones pueden definirse: arquitecturas reactivas, delibera-
tivas e hıbridas. Las arquitecturas reactivas ofrecen respuestas rapidas, gracias a una
coleccion de reglas embebidas en el sistema robotico y formadas por una condicion que
relaciona una accion, como puede ser ”Si hay contacto, entonces detener”[6] [1]. Sin
embargo, la arquitectura reactiva esta limitada para aprender nuevos comportamientos.
En las arquitecturas de control reactivo se encuentra el modelo de Robotica Basada
en Comportamientos (RBC), la cual consiste en una coleccion de comportamientos
para lograr ciertas funciones, como pueden ser evitar obstaculos, evitar colisiones o
lograr ir a una posicion determinada. Los comportamientos pueden ser implementados
tanto en hardware como en software. Cada comportamiento puede tomar datos de
los sensores del robot, o incluso de otros comportamientos en el sistema, para enviar
su salida al actuador correspondiente o a otros comportamientos. A diferencia de las
arquitecturas reactivas, las cuales son estructuradas y desarrolladas de forma bottom
up, las arquitecturas deliberativas estan basadas en un diseno de forma top-down y
donde el robot realiza secuencialmente las funciones de sensar-planear-actuar [11] [24]
1.1. Hipotesis 3
[20]. En una arquitectura deliberativa se utilizan los datos provenientes de sensores
para crear un modelo del ambiente, se emplea un modulo planeador para elegir una
accion, la cual es enviada a los actuadores para su ejecucion.
Las arquitecturas hıbridas son las que toman ventaja de ambas propuestas reactivas-
deliberativas, al emplear la caracterıstica reactiva para el control en un nivel bajo;
mientras que la deliberativa para la planeacion y toma de decisiones en un nivel alto
[18] [13] [3] [25], [7]. Esta estrategia tambien es llamada arquitectura de tres capas
independientes: el planeador, el sistema reactivo y el modulo intermedio.
Recientes propuestas han desarrollado arquitecturas de control compuestas por modu-
los genericos que realizan una funcion especıfica en la configuracion de robots persona-
les, e incluyen software y hardware que podrıan acelerar la construccion de un robot
[26]. Por otra parte, tambien se han desarrollados arquitecturas que consideran cada
modulo como un agente para la configuracion de un robot constituido por multiagen-
tes, basadas en el concepto de multiagentes para la colaboracion y coordinacion de
multirobots [4] [22].
En este contexto, es evidente que la robotica ha creado la tecnologıa y componentes
necesarios para el desarrollo de sistemas roboticos, como los vehıculos autonomos [12]
[9] [23] [5] [8] [28]. Asimismo, para realizar una tarea de forma autonoma depende de la
interoperabilidad de los componentes mecatronicos seleccionados. Sin embargo, en la
implementacion de las estrategias de control y configuracion de robots los componentes
fısicos, como actuadores y sensores con sus caracterısticas y especificaciones, son poco
tomados en cuenta en el proceso de diseno y construccion del sistema robotico.
1.1. Hipotesis
Se considera que es factible implementar un vehıculo autonomo al integrar un conjunto
heterogeneo de componentes inteligentes, distribuidos y asıncronos, donde cada com-
1.2. Propuesta 4
ponente cumpla una funcion particular y en su conjunto logran un comportamiento
emergente para realizar una tarea asignada.
1.2. Propuesta
El proposito de este trabajo es formular, implementar y validar una arquitectura de
control basada en componentes inteligentes, donde cada componente se encargue de
una funcion especıfica, considerando sus caracterısticas y especificaciones. Se busca
obtener una relacion distribuida entre componentes para realizar la tarea asignada al
sistema robotico. Ası cada actuador o sensor tiene su controlador e interface con su
propio procesamiento, y que de forma independiente realice su funcion, manteniendo la
interoperabilidad con el resto de los componentes mediante la comunicacion asıncrona
de mensajes y datos.
Inteligencia puede definirse como: ”La capacidad de un sistema para comportarse apro-
piadamente en un ambiente incierto”[2]. En este contexto, los componentes inteligentes
propuestos en el presente trabajo desarrollan un comportamiento apropiado basado en
el analisis de informacion o estımulos de su entorno, mediante su algoritmo programa-
do para la toma de decisiones y acciones con el objetivo de llevar acabo su funcion
especıfica.
Similares a un agente inteligente los componentes inteligentes realizan una funcion de
forma autonoma, a diferencia de un componente unitario como un motor o circuito
electronico, que por sı solos son incapaces de realizar una accion. Se denominan com-
ponentes inteligentes porque cada uno de ellos es un sistema integrado independiente
de otros componentes inteligentes el cual mide, procesa y entrega un resultado. Por
ejemplo un componente inteligente cuya funcion sea evadir obstaculos en la trayectoria
de un vehıculo, tiene que medir las condiciones del ambiente de operacion mediante
algun sensor y procesar la informacion de acuerdo a un algoritmo determinado y el
1.2. Propuesta 5
resultado es una decision para el exito de la funcion. Los componentes inteligentes
trabajan en diferentes sistemas roboticos y colaboran en la realizacion de una tarea
global.
La estrategia de control propuesta implica que los componentes inteligentes sean se-
leccionados de acuerdo a las especificaciones de la tarea asignada. Se busca una con-
figuracion modular con la posibilidad de agregar o retirar componentes sin afectar al
resto del sistema y permitir la escalabilidad, mientras se cumple con la tarea de manera
autonoma y segura. La estrategia de control propuesta se fundamenta en la arquitec-
tura basada en comportamientos con un funcionamiento y configuracion distribuida
constituida por una red de comportamientos e implementados por los componentes
inteligentes. La filosofıa de esta arquitectura de control es la ejecucion de manera con-
currente de diversas funciones, con el reto de establecer cual componente inteligente
toma el control en cada momento.
La realizacion de este trabajo presenta aportaciones en el area de la experimentacion
e investigacion en robotica movil. Es una opcion viable para desarrolladores que tra-
bajen con vehıculos autonomos, como una alternativa para el control de estos sistemas
roboticos. Presenta ventajas al distribuir la tarea a realizar por el robot en diferen-
tes funciones atendidas por diversos componentes inteligentes, con simplicidad en el
desarrollo y depuracion de fallos al trabajar en secciones independientes a la vez.
Los componentes inteligentes, considerados como recursos independientes y flexibles
permiten ser reutilizados para la configuracion de diversos robots. Lo cual contribuye
a optimizar recursos para el desarrollo de sistemas roboticos en diversas aplicaciones,
particularmente en la investigacion. Es una arquitectura alternativa para el desarrollo
de sistemas roboticos, en particular de vehıculos autonomos, que es confiable y robusta.
1.3. Objetivos 6
1.3. Objetivos
1.3.1. Objetivo General
Disenar e implementar una arquitectura de control distribuida para vehıculos autono-
mos basada en componentes inteligentes. Cada componente inteligente en la configu-
racion de un vehıculo autonomo sera un componente autonomo y coordinado bajo un
mecanismo de control descentralizado para proveer un comportamiento emergente para
desarrollar la tarea asignada.
1.3.2. Objetivos Especıficos
Disenar los componentes inteligentes para implementar la estrategia de control.
Disenar la logica de comunicacion y coordinacion para el control distribuido pro-
puesto.
Disenar y desarrollar el conjunto de componentes inteligentes para la configura-
cion de un vehıculo autonomo.
Implementar la arquitectura de control en un vehıculo autonomo.
Evaluar el desempeno de la arquitectura de control.
1.4. Descripcion del Documento
En el capıtulo dos se presenta la descripcion teorica de la arquitectura de control, se
muestra el diseno de los componentes inteligentes, el protocolo de comunicacion para
la transferencia de mensajes y datos.
El capıtulo tres describe los modulos desarrollados ası como sus componentes, utiliza-
dos para la evaluacion de la arquitectura de control propuesta. Se implementan dos
1.4. Descripcion del Documento 7
vehıculos autonomos donde se realizan tareas de exploracion con diversas variantes
como deteccion y evasion de obstaculos, ası como recorridos autonomos.
La implementacion de la estrategia de control y el desarrollo de diversos componentes
inteligentes son mostrados en el capıtulo 4, asimismo los experimentos desarrollados y
resultados.
Las conclusiones obtenidas despues de evaluar la arquitectura de control basada en
componentes inteligentes, las aportaciones de su implementacion y el trabajo futuro
estan en el capıtulo 5.
Capıtulo 2
Diseno: Arquitectura de Control
En este capıtulo se presenta la logica de operacion de la arquitectura de control basada
en componentes inteligentes distribuidos para configurar sistemas roboticos. Se presenta
la definicion y estructura general de un componente inteligente, ası como la manera en
que se comunican y coordinan para realizar la tarea asignada al robot.
2.1. Componente Inteligente
Un Componente Inteligente (CI) esta basado en un sensor y/o actuador en particular
para realizar de manera independiente una funcion especıfica, mediante el procesa-
miento de informacion y el control de sus acciones programadas, convirtiendose en un
componente autonomo en la configuracion de un robot.
La integracion de un conjunto de CIs conforman un sistema robotico y la interaccion
entre ellos proveen el comportamiento autonomo para llevar a cabo la tarea asignada.
Un CI consta de tres unidades funcionales: Enlace, Procesamiento y Actuador/Sensor
(Fig. 2.1).
8
2.1. Componente Inteligente 9
Unidadde
Procesamiento
Unidadde
Enlace
Actuador/Sensor
Figura 2.1: Componente Inteligente conformado por las unidades funcionales deenlace, procesamiento y actuador/sensor.
Actuador/Sensor. Esta unidad esta constituida por un actuador o un sensor, o
bien la integracion de ambos, y captura los elementos fısicos como sus especifica-
ciones y caracterısticas. Tambien incluye la interface para la correcta operacion
del actuador o sensor.
Procesamiento. Es la unidad que lleva a cabo la toma de decisiones mediante
un algoritmo apropiado, el cual interpreta los datos provenientes de la unidad
actuador/sensor o atiende comandos de otros CIs, asimismo controla la ejecucion
de las diversas acciones requeridas para realizar la funcion del CI.
Enlace. La unidad provee la transmision/recepcion de informacion entre el CI y
los otros CIs que conforman el sistema robotico, constituyendo una red ad hoc
de componentes inteligentes distribuidos.
Un CI esta organizado en un solo modulo fısico que incluye los elementos fısicos (hard-
ware) y logicos (software) de cada una de las unidades, e incluso los elementos de
energıa necesarios para su operacion.
2.1. Componente Inteligente 10
La interaccion entre CIs es a traves de peticiones. Una peticion es un comando abstrac-
to que encapsula una lista estructurada de instrucciones u ordenes, e incluso datos. Un
CI genera las peticiones de acuerdo al analisis de su informacion y las envıa al resto de
los CIs del sistema robotico. Las peticiones son recibidas unicamente por los CIs que
pueden satisfacer dichas peticiones. Cada peticion es decodifica en el CI correspondien-
te y atendida con la ejecucion de las acciones pertinentes. Un CI desconoce al resto
de los CIs que configuran al sistema, dado que cada CI se encargan de una funcion
especıfica con la dependencia exclusiva del hardware involucrado (sensor o actuador)
en su implementacion.
Los CIs implementados por sensores son los que generalmente transmiten peticiones
(Fig.2.2a), a partir de analizar los datos proveniente del sensor y generar el comando
correspondiente; mientras que los CIs basados en actuadores son los que recibe peticio-
nes (Fig. 2.2b), las cuales son interpretadas y ejecutadas por un algoritmo pertinente
que controla la operacion del actuador. Tambien se pueden implementar CIs hıbri-
dos (Fig. 2.2c), los cuales transmiten y reciben peticiones, que cuentan con sensores y
actuadores.
ProcesamientoMedición de sensores /
Toma de decisiones
Unidadde
EnlaceEnvía peticiones
Sensor
(a) CI que envıa peticiones
ProcesamientoInterpreta peticiones /
Ejecuta acciones
Unidadde
EnlaceRecibe peticiones
Actuador
(b) CI que atiende peticiones
ProcesamientoInterpreta peticiones /
Medición de sensores /Toma de decisiones
Unidadde
EnlaceRecibe/Envía
peticiones
Sensor/Actuador
(c) CI hıbrido
Figura 2.2: Tipos de Componentes Inteligentes.
2.1. Componente Inteligente 11
La configuracion de un sistema robotico es un conjunto de CIs distribuidos encargados
de funciones especıficas, que son seleccionados a partir de los requerimientos de la
tarea a realizar y del ambiente de operacion. En una configuracion debe existir un CI
para coordinar el intercambio de peticiones entre CIs. Tambien existen CIs particulares
que tienen una relacion fuertemente ligada con el sistema robotico, generalmente una
dependencia con la funcion de locomocion. Asimismo habra CIs comunes que realizan
funciones independientes a la plataforma movil del sistema robotico, los cuales podran
ser removibles e intercambiables en otros sistemas roboticos (Fig. 2.3).
La implementacion de sistemas roboticos basados en componentes inteligentes propor-
ciona una arquitectura de control con un entorno de ejecucion distribuido e indepen-
diente del hardware y del lenguaje de programacion que utilice cada uno de los CIs;
P
E
S
P
E
A
P
E
S
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
S/A
P
E
Coordinador
Figura 2.3: Configuracion general de un vehıculo autonomo con CIs distribuidos. Elsentido de las flechas indica el flujo de peticiones.
2.2. Comunicacion 12
Figura 2.4: Topologıa de red ZigBee.
ya que un componente inteligente encapsula las caracterısticas del sensor o actuador y
funciona siempre de la misma forma en cualquier configuracion de un robot. En este
contexto, en lugar de considerar las fuertes dependencias entre todo el hardware para el
control de un sistema robotico, puede implementarse el control de un sistema robotico
simplemente como la configuracion de un grupo de componentes inteligentes (recursos)
que desarrollan de manera autonoma determinadas funciones.
2.2. Comunicacion
Para llevar a cabo la interaccion entre los CIs se selecciono el protocolo ZigBee [16] (Fig.
2.4) como el medio de comunicacion, debido a que permite crear redes inalambricas de
area personal (WPAN) y presenta bajo consumo electrico en comparacion con otras
alternativas, como Bluetooth [15], IrDA [19], y WiFi [14]. El estandar ZigBee es un
conjunto de protocolos de comunicacion inalambrica que utiliza el rango de 2.4 GHz,
2.2. Comunicacion 13
Coordinador
ComponenteSeguidor
ComponenteEvasor
Componente Odómetro
Componente Tracción
Componente Dirección
Avanzar
Incrementar Velocidad
Izquierda
Avanzar
Incrementar Velocidad
Izquierda
Figura 2.5: Las peticiones son enviadas al CI-Coordinador y este las distribuye al CIcorrespondiente.
se basa en el estandar 802.15.4 de la IEEE y brinda un enlace seguro con un alcance de
100 m en interiores y de hasta 1600 m en ambientes abiertos con lınea de vista directa.
Un dispositivo ZigBee tiene dos direcciones, su direccion unica de 64 bits que lo distin-
gue de cualquier otro dispositivo en el mundo y una direccion de 16 bits que lo identifica
dentro de la red donde este conectado. Se tienen principalmente tres funciones que pue-
den cumplir los ZigBee: Coordinador, ruteador o dispositivo final. Un coordinador es
el que genera la red de trabajo de los ZigBee y elige el canal de transmision, al menos
debe existir uno por red. El ruteador que puede servir para encaminar los paquetes de
comunicacion entre dispositivos-finales y el coordinador. Los dispositivos-finales solo
pueden comunicarse con su nodo padre, ya sea un ruteador o coordinador.
La topologıa ZigBee es analoga con la arquitectura de control basada en CIs donde
2.3. Operacion 14
Tabla 2.1: Protocolo de 5 bytes para la transferencia de peticiones entre CIs.
Byte 1 Byte 2 Byte 3 Byte 4 Byte 5
Peticion Parametro Prioridad Identificador Terminador
existe un CI-Coordinador con la funcion de distribuir las peticiones. Toda peticion
se envıa al CI-Coordinador y este se encarga de renviarla al o a los componentes
inteligentes que puedan atenderla (Fig. 2.5). Se establece que cada CI debe tener un
identificador numerico, ası como un nombre, para diferenciarse del resto de los CIs
dentro del sistema robotico.
2.3. Operacion
La tarea se desarrolla con la interaccion entre componentes inteligentes, donde se ge-
neran y atienden peticiones de acuerdo a la percepcion del entorno de trabajo.
2.3.1. Peticiones
Para la comunicacion entre los CIs, se implemento un protocolo que establece el conte-
nido de las peticiones en un esquema de 5 bytes (Tabla A.2), que incluyen la peticion
con un numero de 8 bits que la identifica, un parametro auxiliar que es opcional con
el porcentaje de accion que algunas peticiones requieren, la prioridad de la peticion
requerida para decidir el orden de su atencion, el identificador es el ındice registrado
por el CI-Coordinador y que distingue al CI que solicita la peticion y el ultimo dato
corresponde al byte de terminacion.
La Tabla A.3 muestra una lista de peticiones que pueden ser utilizadas en los CIs y en
la Tabla 2.3 se muestra un ejemplo de una peticion, donde el 2 corresponde a girar a
la derecha, el 70 es 70% de giro en la direccion, el 80 es 80% de prioridad, el 3 es el
2.3. Operacion 15
Tabla 2.2: Peticiones definidas para un vehıculo autonomo. NA (No Aplica)
Peticion Descripcion Parametro
0 Centrar Direccion NA
1 Girar Izquierda Porcentaje de giro (1-100%)
2 Girar Derecha Porcentaje de giro (1-100%)
3 Detener Motores NA
4 Avanzar Vehıculo Porcentaje de potencia (1-100%)
5 Reroceder Vehıculo Porcentaje de potencia (1-100%)
6 Incrementar Velocidad NA
7 Decrementar Velocidad NA
8 Girar Camara a la Izquierda NA
9 Girar Camara a la Derecha NA
10 Girar Camara hacia Arriba NA
11 Girar Camara hacia Abajo NA
12 Orientar Orientacion deseada (0-359◦)
13 Recorrer Distancia a recorrer (1-65535 cm)
14 Reporta Orientacion Orientacion actual (0-359◦)
15 Reporta Reccorrido Distancia recorrida (1-65535 cm)
identificador del CI solicitante y el 255 es el terminador.
Cuando un CI requiere que se realice una accion en particular, envıa esta peticion al
CI-Coordinador, este renviara la peticion al componente o componentes inteligentes
que puedan atenderla. De este modo, la comunicacion es dinamica y el trabajo se
2.3. Operacion 16
Tabla 2.3: Peticion para girar a la derecha.
Peticion Parametro Prioridad Identificador Terminador
2 70 80 3 255
distribuye entre los CIs existentes en el sistema. Para ello el CI-Coordinador lleva una
lista de todos los CIs existentes en el sistema con la informacion del mismo, a traves
de un proceso de registro que cada CI realiza al integrarse al sistema.
2.3.2. Registro de Componentes Inteligentes
Cada CI que se integra al sistema robotico se registra primeramente ante el CI-
Coordinador para interactuar con el resto de los CIs. Este proceso permite conocer
a todos los CIs, las peticiones que puede atender un CI y las peticiones que puede
enviar, ası como la prioridad de cada una de ellas; el nombre del CI tambien es ne-
cesario y al registrarse se le asigna su identificador numerico unico. Las direcciones
tanto de 16 como de 64 bits del dispositivo ZigBee de cada CI tambien son requeridas
para mantener la interaccion durante la operacion del sistema robotico (Tabla 2.4). Se
definio el numero de peticiones maximas a atender para cada CI en 10, lo que resulta
suficiente para el desempeno apropiado del sistema.
El registro de CIs presenta flexibilidad en el sistema robotico, lo cual permite agregar o
retirar CIs sin necesidad de modificar la programacion en cualquier parte del sistema.
Tabla 2.4: Paquete requerido para el registro de CIs.
Direccion Direccion Peticiones Peticiones Prioridad de Nombrede 64 bits de 16 bits a atender a solicitar peticiones a del CI
solicitar
8 bytes 4 bytes 10 bytes 10 bytes 10 bytes 20 bytes
2.3. Operacion 17
2.3.3. Componente Inteligente Coordinador
Con base en el protocolo definido para esta arquitectura el CI-Coordinador se mantiene
a la escucha de solicitudes de registro o envıo de peticiones entre CIs. Si es una solicitud
de registro, se ingresa al CI solicitante con todos sus datos a la lista de CIs. Si es una
peticion, se realiza una revision de la lista de los CIs registrados en busca de aquellos
componentes inteligentes capaces de atender dicha peticion y entonces se les transmite
directamente (Fig. 2.6).
Con base en la tarea a realizar se deben elegir uno o mas CIs que aporten la funcio-
nalidad deseada. Es posible emplear mas de un CI que solicite peticiones a la vez, es
Inicio
En espera de solicitudes de registro/comandos
Es comando?
Revisar lista de componentes
Atiende este comando?
Enviar comando
Si
No
Si
No
Registra componente
Figura 2.6: Comportamiento del CI-Coordinador.
2.3. Operacion 18
una ventaja pero puede haber conflictos si se solicitan peticiones contradictorias como
Avanzar y Detener al mismo tiempo por CIs diferentes.
La estrategia para atender peticiones cuando se tiene a mas de un CI solicitante a la
vez, esta basada en prioridades, se asigna una prioridad a cada peticion en el sistema.
2.3.4. Mecanismo de Eleccion
Los CIs que atienden peticiones implementan un mecanismo para la eleccion de las
solicitudes a atender. A partir de la prioridad de la peticion solicitada se decide si es
atendida o no.
Inicio
Solicitud recibida
Prioridad > Prioridad Anterior?
No
Si
Atiende Solicitud
1
1
Comando Porcentaje Prioridad Identificador de Componente
(Prioridad == Prioridad Anterior) y (Id Componente == Componente Anterior)?
No
Si
Atiende Solicitud 1
1
Figura 2.7: Eleccion por prioridades.
2.3. Operacion 19
Cada CI guarda de la ultima peticion atendida, la prioridad y el identificador del
componente que la solicito. Se comparan entonces las prioridades entre la ultima accion
atendida y la solicitud actual. Es atendida la peticion de mayor prioridad. En el caso
de prioridades iguales, tiene preferencia el componente de mayor antiguedad (Fig. 2.7).
Por ejemplo el CI-1 toma mediciones del ambiente, esta informacion es analizada para
generar y enviar la peticion correspondiente al CI-Coordinador. Este CI consulta la lista
de los CIs registrados, ası como las peticiones que atienden, con lo cual se transmite
la peticion a los CIs que puedan atenderla. Al recibir una peticion un CI, en este caso
CI-3, interpreta dicho comando y decide las acciones a ejecutar con base en la prioridad
de la misma peticion (Fig. 2.8).
Con los CIs disenados es posible integrarlos a una plataforma para desarrollar una
tarea especıfica.
Unidad deProcesamiento
Unidadde
Enlace
Coordinador
Unidad deProcesamiento
Unidadde
Enlace
Sensor
Unidad deProcesamiento
Unidadde
Enlace
Actuador Medición
Petición-1
CI-1
Petición-1
CI-3 CI-Coordinador
Interpreta la petición y aplica el
mecanismo de selección basado en prioridades
Realiza la acción 1
2
3
4
5
6
7
8
9
Percibe el entorno y Genera la petición
Envía la petición
Recibe la petición
Distribuye la petición
Recibe la petición
Consulta lista de CIs
Figura 2.8: Flujo de una peticion a traves de la red de CIs, desde que se genera hastaque es atendida.
Capıtulo 3
Desarrollo: Arquitectura de Control
La definicion de la arquitectura de control basada en componentes inteligentes permite
configurar sistemas roboticos. La configuracion de un sistema robotico parte de las
especificaciones de la tarea a realizar ası como de los requerimientos del ambiente donde
operara. En este capıtulo se presenta la configuracion de dos vehıculos autonomos para
realizar dos tareas asignadas con el desarrollo fısico de los componentes inteligentes que
los integran. Se describe la lista de componentes inteligentes empleados y su interaccion.
La primera tarea basica es la navegacion autonoma del robot mediante el seguimiento
de una pared y manteniendose a cierta distancia de separacion de esta. La otra tarea
es realizar recorridos autonomos donde se especifica una distancia a recorrer con cierta
orientacion. Ambas tareas seran desarrolladas en un ambiente estructurado y dinamico,
lo cual incluye la presencia y ausencia de obstaculos. Adicionalmente, los vehıculos
autonomos tendran la capacidad de ser operados a distancia por un usuario con una
retroalimentacion visual.
20
3.1. Componentes Inteligentes 21
3.1. Componentes Inteligentes
Para la implementacion de la mayorıa de los componentes inteligentes, se desarrollo una
tarjeta generica con los circuitos electronicos necesarios para cubrir los requerimientos
de cada uno de los CIs, con las unidades funcionales de procesamiento y enlace, ası co-
mo los puertos de entrada y salida para la conexion de los actuadores y/o sensores
correspondientes.
3.1.1. Unidad de Procesamiento
La unidad de procesamiento es implementada con el microcontrolador PIC24FJ64GB004
fabricado por Microchip . Este microcontrolador es de 16 bits, 44 pines y tecnologıa
nanoWatt con caracterısticas especiales como USB 2.0, oscilador interno, 5 temporiza-
dores, soporte para modulacion por ancho de pulso, 2 puertos fısicos de comunicacion
serial asıncrona, soporte para SPI/I2C, 13 convertidores analogico/digital y un reloj
de tiempo real.
3.1.2. Unidad de Enlace
La comunicacion ZigBee esta dado por los circuitos XBee-PRO fabricados por Digi
International. Estos radio modems permiten una comunicacion punto a punto o punto
a multipunto con velocidades de hasta 250 kbits/s en la frecuencia de transmision de
2.4 GHz y una potencia de 10 mW. Su alimentacion es de 3.3 V y se utilizan dos
lıneas de datos (transmision y recepcion). El modulo XBee opera en dos formas de
comunicacion serial basado en el protocolo RS-232: Modo transparente en AT y modo
API. En el modo AT todo lo que se reciba por el puerto de entrada de un radio modem
es transmitido hacia el puerto de salida del otro modulo. En el modo API se requiere
formar un paquete para enviar la informacion, entre otras cosas con la direccion del
3.1. Componentes Inteligentes 22
Unidad deProcesamientoMicrocontrolador
Unidad deEnlaceXBee
Actuador/Sensor
Tx Rx
Energía
Figura 3.1: Conexion entre las unidades de un CI.
modulo destino.
La tarjeta generica incluye la unidad de procesamiento y enlace, ası como una serie
de conectores para realizar la conexion con sensores o actuadores (Fig. 3.1). La comu-
nicacion entre el XBee y el microcontrolador es serial asıncrona a una velocidad de
transmision de 9600 bits/segundo, basado en el estandar RS-232 con nivel de 0 a 3.3
V. Utiliza dos reguladores de voltaje, un regulador ADP122AUJZ-3.3-R7 que regula
a 3.3 V y un regulador CP1700 que regula a 2.5 V, ası como una serie de resistores
utilizados como de levantamiento (pull-up) o divisores de voltaje para adaptar el nivel
de senal entre los circuitos electronicos (Fig. 3.2).
Las unidades de procesamiento de cada CI han sido programadas con los algoritmos
apropiados en el lenguaje C y el compilador CCS, a traves de la interfaz de desarrollo
MPLAB de Microchip. El dispositivo programador utilizado es el Real-Ice de Microchip
por lo que cada tarjeta generica incluye su conector correspondiente de programacion.
3.2. Componente Inteligente Coordinador 23
Figura 3.2: Tarjeta generica utilizada en la implementacion de componentes inteli-gentes.
Figura 3.3: CI-Coordinador, solo requiere la alimentacion.
3.2. Componente Inteligente Coordinador
El CI-Coordinador utiliza la tarjeta generica sin elementos adicionales como sensores
o actuadores para interactuar con los demas CIs (Fig.3.3).
El XBee usado en el CI-Coordinador opera al doble de velocidad que los radio modems
de los otros CIs, debido a que este CI tiene el mayor trafico de informacion. Tambien
se implementa el control de flujo para la recepcion de datos, se utiliza una lınea de
solicitud de envıo (RTS) en el CI-Coordinador, para indicar al XBee el momento en
que pueda enviar informacion, con lo cual se busca garantizar la transmision del total
de peticiones.
3.3. Componentes Inteligentes Especıficos 24
Figura 3.4: Plataforma movil TAMIYA modelo TXT-1.
El CI-Coordinador implementa el modo de comunicacion API en el XBee, por lo cual
se requiere generar paquetes bien definidos de informacion para el envıo de datos.
Comparado con el modo transparente AT, el modo API aumenta la confiabilidad en la
transmision de peticiones.
3.3. Componentes Inteligentes Especıficos
Se configuraron dos vehıculos autonomos basados en la arquitectura de control distri-
buida con CIs. Se disenaron y desarrollaron los CIs especıficos para ser utilizados en
un vehıculo con cinematica Ackermann y otro vehıculo con cinematica diferencial.
3.3.1. Vehıculo Ackermann
La plataforma movil empleada en este trabajo es un carro electrico de radio control a
escala 1:10 de la marca TAMIYA, modelo TXT-1 (Fig. 3.4). Es un carro todo terreno
3.3. Componentes Inteligentes Especıficos 25
con traccion en sus cuatro llantas, impulsado por dos motores de corriente directa
en paralelo para el avance y retroceso. Esta plataforma cuenta con un mecanismo de
direccion para el eje anterior y otro en el eje posterior, controlados por un servomotor
respectivamente.
Las dimensiones del vehıculo son de 0.51 m de largo por 0.385 m de ancho, la separacion
entre ejes es 0.33 m, el diametro de las llantas es de 0.165 m. El chasis de la plataforma
es de aluminio. Los motores de traccion tienen una caja de engranes con una relacion
de 67.67:1 con una salida final de 150 RPM a 12 V, con un consumo de corriente al
aire de 300 mA. Los servos son marca Futaba modelo S3004.
En este trabajo se utiliza unicamente el sistema de direccion del eje posterior; por lo
tanto el vehıculo se comporta con la cinematica Ackermann, donde las dos ruedas en
el eje anterior brindan la traccion y las ruedas del eje posterior giran sobre un pivote
cambiando la direccion del vehıculo.
El vehıculo puede desplazarse a cualquier punto (x, y) en el plano (X , Y ). El angulo θ
es la orientacion del vehıculo con respecto al eje X y V representa la velocidad lineal.
El angulo γ se define como el angulo de giro del vehıculo y L es la distancia entre ejes
(Fig. 3.5). El modelo cinematico del vehıculo se deriva de la propiedad de un cuerpo
rıgido y esta dado como:
x(t) = V (t) cos(θ(t))
y(t) = V (t) sin(θ(t))
θ(t) =V (t) tan(γ(t))
L(3.1)
Por lo tanto, la velocidad y la direccion del vehıculo Ackermann deben ser atendidas
por un CI-Traccion y un CI-Direccion, respectivamente.
3.3. Componentes Inteligentes Especıficos 26
R
(x, y)
X
Y Y
X
Figura 3.5: Geometrıa de la plataforma movil Ackermann.
3.3.2. Componente Inteligente Traccion
Los motores de traccion y las ruedas del eje conforman el CI-Traccion, con la imple-
mentacion de la interface electronica y logica de operacion. El CI debe atender las
peticiones de Avanzar, Detener, Retroceder, Incrementar y Decrementar Velocidad,
acciones que son programadas en la unidad de procesamiento.
La operacion de los motores se realiza por medio de un controlador puente H a 12 V
modelo EVX 3014 marca Traxxas, a traves de un arreglo de cuatro optoacopladores
4N32 que sirven para aislar el ruido electrico generado por los motores a las unidades
de procesamiento y enlace (Fig. 3.6).
Las senales de activacion (A, B, C y D) de los motores son generadas de acuerdo a
la Tabla 3.1 e implementan una modulacion de ancho de pulso (PWM) para regular
la velocidad. La velocidad y el sentido de giro de los motores se establecen con base
en las peticiones de Avanzar, Retroceder o Detener. Asimismo se tiene programado el
mecanismo de seleccion por prioridades para atender dichas peticiones.
3.3. Componentes Inteligentes Especıficos 27
Actuador
Unidad deProcesamiento
PIC24FJ64GB004
Unidadde
Enlace
ControladorMotores
Motor2Motor1
Baterías para
motores de tracción SAL1 SAL2 SAL3 SAL4
A B C D
Optoacopladores
Figura 3.6: Conexion general del CI-Traccion, Controlador de motores y Motores detraccion.
Para las peticiones de Avanzar y Retroceder se establece la potencia en cada motor
con el valor proporcional al porcentaje del PWM. La accion Detener indica un estado
de alto para cada motor. Para regular una velocidad determinada en el vehıculo, el CI-
Traccion modifica el porcentaje del PWM con base en las peticiones de Incrementar y
Decrementar Velocidad (Fig. 3.7). Los circuitos del CI Traccion terminados ası como
el controlador de motor se muestran en la figura 3.8.
3.3.3. Componente Inteligente Direccion
El CI-Direccion atiende las peticiones de Girar Izquierda, Girar Derecha y Centrar
Direccion. Maneja la direccion del vehıculo autonomo e integrar el hardware requerido
3.3. Componentes Inteligentes Especıficos 28
Inicio
En espera de peticiones
Avanzar?
Retroceder?
No
SiAvanzar Motor
Detener?
No
SiRetroceder Motor
No
SiDetener Motor
1
1
1
1
Incrementar Velocidad?
No
SiAumentar
Velocidad Actual 1
Decrementar Velocidad?
No
SiDisminuir
Velocidad Actual 1
1
Figura 3.7: Comportamiento del CI-Traccion.
para el movimiento del sistema de direccion a traves de un servomotor o actuador. Las
peticiones Girar Izquierda o Derecha establecen la direccion segun el parametro adjunto
a la peticion. La peticion Centrar Direccion establece al actuador en su posicion central
3.3. Componentes Inteligentes Especıficos 29
Tabla 3.1: Combinaciones para el controlador de motores. NI (No implementado).
Estado A B C D SAL1 SAL2 SAL3 SAL4
Avance 0 1 1 0 1 0 1 0
Retroceso 1 0 0 1 0 1 0 1
Alto 0 0 0 0 0 0 0 0
Freno 1 1 0 0 NI NI NI NI
(Fig 3.9).
Para la plataforma movil tipo Ackermann, el CI-Direccion controla dos servomotores
Futaba S3004 colocados en los ejes anterior y posterior. Utiliza una tarjeta generica para
CI y genera los pulsos de control para ambos servomotores con base en las peticiones
recibidas de otros componentes inteligentes en el sistema.
Los servomotores emplean tres cables, dos de alimentacion y uno de control. La ali-
mentacion es a 5 V y la senal de control es un pulso digital que genera la unidad de
procesamiento del CI para cada servomotor (Fig. 3.10). La implementacion del CI de
Direccion se muestra en la Figura 3.11.
Figura 3.8: Implementacion del CI-Traccion.
3.3. Componentes Inteligentes Especıficos 30
Inicio
En espera de peticiones
Girar Izquierda?
Girar Derecha?
No
SiActuador a la
Izquierda
Centrar?
No
SiActuador a la
Derecha
No
SiCentrar actuador
1
1
1
1
1
Figura 3.9: Comportamiento del CI-Direccion.
3.3.4. Componente Inteligente Odometro Ackermann
La medicion tanto de velocidad como de distancia recorrida por el vehıculo autonomo es
realizada por el CI-Odometro, que al utilizar un encoder montado en el eje de traccion
de las ruedas, calcula con base en el diametro de las mismas la distancia y con relacion
al tiempo la velocidad. Este CI atiende la peticion Recorrer, la cual requiere se le
especifique una distancia y a traves del envıo de peticiones de Avanzar y Detener se
realiza el recorrido.
Es capaz ademas de regular la velocidad por medio de las peticiones de Incrementa y
3.3. Componentes Inteligentes Especıficos 31
CI-Dirección
Actuador
Unidad deProcesamiento
PIC 24FJ64GB004
Unidadde
Enlace
Servomotor Servomotor
Energía
Figura 3.10: Conexion del CI-Direccion.
Figura 3.11: Implementacion del CI-Direccion.
3.3. Componentes Inteligentes Especıficos 32
Inicio
Espera peticiones
1
Lectura de Codificador Óptico
Recorrer?
No
Si
Enviar Comando Avanzar
1
Inicializa cuenta
DistanciaActual < DistanciaRecibida ?
No
Si
Actualiza DistanciaActual
Enviar Comando Detener
1
Convierte a Distancia
Actualiza VelocidadActual
VelocidadActual < VelocidadDeseada
No
Si
2
Enviar Comando Incrementa Vel2
VelocidadActual > VelocidadDeseada
No
SiEnviar Comando Decrementa Vel2
2
Figura 3.12: Comportamiento del CI-Odometro Ackermann.
Decrementa Velocidad. Se compara la velocidad actual con una velocidad definida y se
decide entonces si Incrementar o Decrementar la potencia de los motores para mantener
una velocidad constante. Al presentarse una peticion de Recorrer una distancia, se envıa
la peticion Avanzar y se comienza a acumular la distancia recorrida desde ese momento
hasta alcanzar la distancia deseada, y entonces se envıa la peticion Detener. El envıo de
Incrementa o Decrementa Velocidad se presenta luego de comparar la velocidad actual
con una velocidad previamente establecida, estas solicitudes no son enviadas en caso
3.3. Componentes Inteligentes Especıficos 33
de estar dentro de la velocidad deseada (Fig. 3.12).
El encoder consta de un sensor de Efecto Hall colocado de fabrica directamente sobre
uno de los motores de traccion (Fig. 3.13). Se tienen 4331 pulsos por revolucion a la
salida de la caja de engranes. El sensor tiene una resolucion de 64 pulsos por giro del
motor y la caja de engranes una relacion de 67.67:1. Se utiliza un divisor de frecuencia
debido a la alta cantidad de pulsos por revolucion obtenida. Este divisor entre 16 es
implementado con un circuito 74LS93 (Fig. 3.13). La salida del divisor de frecuencia
se conecta a la entrada de la unidad de procesamiento del CI. La alimentacion tanto
del sensor como del divisor de frecuencia es de 5 V.
3.3.5. Vehıculo Diferencial
La plataforma diferencial utilizada es tipo oruga (Fig. 3.14), utiliza dos motores de 12
V DC con una caja de engranes con una relacion de 50:1 y una velocidad angular de
120 RPM. Su chasis es de resina de policarbonato y tiene soportes en aluminio, utiliza
polipropileno de uso rudo y moldes durables de plastico ABS en las orugas dentadas.
Figura 3.13: Implementacion del CI-Odometro Ackermann.
3.3. Componentes Inteligentes Especıficos 34
Figura 3.14: Plataforma movil con orugas dentadas.
Sus dimensiones son 0.255 m de largo, 0.28 m de ancho, distancia entre ejes de 0.23 m
y una altura sin componentes de 0.12 m (Fig. 3.15).
El vehıculo diferencial (Fig. 3.16) puede desplazarse a cualquier punto (x, y) en el plano
(X, Y ), con una orientacion dada por θ, donde vr y vl son las velocidades lineales de
las ruedas derecha e izquierda, respectivamente; v es la velocidad resultante y b es la
distancia del eje entre el par de ruedas. Esta configuracion del vehıculo implementa
giros con radio de curvatura R sobre su propio eje a lo largo del centro instantaneo de
25.5 cm
28 cm
23cm
Figura 3.15: Dimensiones de la plataforma movil diferencial.
3.3. Componentes Inteligentes Especıficos 35
X
Y
(x, y) R
Y
(x, y) b
L
R
Figura 3.16: Geometrıa de la plataforma movil diferencial.
curvatura (ICC) y normal a las ruedas, generados por las velocidades de los motores
para desarrollar una trayectoria. Debido a que la velocidad angular ω en el ICC es
el mismo para las ruedas, la posicion y orientacion (x, y, θ) del robot con respecto
al tiempo t se pueden estimar con el modelo cinematico basado en los parametros de
control vr y vl, dado por:
x(t) =[vr(t) + vl(t)]
2cos(θ(t))
y(t) =[vr(t) + vl(t)]
2sin(θ(t))
θ(t) =[vr(t)− vl(t)]
b(3.2)
Las velocidades del vehıculo diferencial son atendidas por un CI-Rueda Izquierda y
CI-Rueda Derecha, respectivamente.
3.3. Componentes Inteligentes Especıficos 36
3.3.6. Componentes Inteligentes Rueda Izquierda y Derecha
Son CIs basados en un motor de traccion y una rueda, cuya funcion es el control de
la movilidad del sistema robotico. Estos CIs atienden peticiones como Avanzar, Girar
Izquierda, Girar Derecha, Detener y Retroceder. Los CIs implementan el hardware
de control necesario para la operacion del motor de corriente directa con base en sus
especificaciones. Para satisfacer las peticiones de Avanzar y Retroceder, los CIs generan
las senales correspondientes para controlar el sentido de marcha y la velocidad del
motor. La peticion Detener indica a los CIs generar las senales para detener la marcha
de su motor.
Se tienen dos alternativas: Girar sobre su propio eje o Girar mientras se avanza rea-
lizando una trayectoria curva. Las acciones para peticiones de giros son particulares
para cada CI-Rueda Izquierda y Derecha.
En el caso del CI-Rueda Izquierda, si la peticion es Girar Izquierda y el motor esta de-
tenido se establece las senales para controlar un retroceso con el motor; por otro lado,
si el robot esta avanzando la velocidad es disminuida proporcionalmente al porcentaje
de giro de la peticion. Los peticiones de Girar no se consideran al estar el robot re-
trocediendo. Para girar a la derecha la logica es similar al giro de izquierda pero con
la accion opuesta (Fig. 3.17).Las acciones del CI Rueda Derecha en los giros difieren
unicamente en la direccion de marcha del motor de traccion (Fig. 3.18).
Los CIs Rueda Izquierda y Derecha controlan tanto la direccion como la traccion del
vehıculo. Utilizan la tarjeta generica de componente inteligente, adicionada con un
controlador de motores DC, la unidad de procesamiento del componente se comunica
con el controlador de motor de forma serial a nivel TTL.
El CI implementa el mecanismo de eleccion basado en prioridades al atender peti-
ciones de otros CIs, para decidir que peticion atender. Con base en los parametros
de las peticiones ordena al controlador de motor establecer la velocidad y direccion
3.3. Componentes Inteligentes Especıficos 37
Inicio
En espera de peticiones
Avanzar?
Retroceder?
No
SiAvanzar Motor
Detener?
Está avanzando?
Girar Izquierda?
No
SiRetroceder Motor
No
SiDetener Motor
No
Si
No
Si
Retroceder Motor
Girar Derecha?
No
Si
Avanzar Motor
Girar Izquierda?
No
SiDisminuir velocidad
Girar Derecha?
No
SiAumentar Velocidad
1
1
1
1
1
11
1
1
Figura 3.17: Comportamiento del CI-Rueda Izquierda.
correspondiente al motor a su cargo.
Se utiliza el controlador MotorMindBe desarrollado por Solutions Cubed, LLC, que
soporta un consumo constante de corriente de 1.75 A y picos de hasta 6 A, para
motores con voltajes de 6 a 36 VDC. Tiene una modulacion por ancho de pulso de 15.5
kHz, la comunicacion entre la unidad de procesamiento del CI y el controlador de motor
es serial a nivel TTL a 9600 bit/segundo. El controlador de motor integra proteccion
por bajo voltaje de entrada, sobre calentamiento ası como por consumo excesivo de
corriente.
La conexion entre la tarjeta generica de CI, el controlador de motor y el motor se
3.3. Componentes Inteligentes Especıficos 38
Inicio
En espera de peticiones
Avanzar?
Retroceder?
No
SiAvanzar Motor
Detener?
Está avanzando?
Girar Izquierda?
No
SiRetroceder Motor
No
SiDetener Motor
No
Si
No
Si
Retroceder Motor
Girar Derecha?
No
Si
Avanzar Motor
Girar Izquierda?
No
SiDisminuir velocidad
Girar Derecha?
No
SiAumentar Velocidad
1
1
1
1
1
11
1
1
Figura 3.18: Comportamiento del CI-Rueda Derecha.
muestra en la figura 3.19.
Los CIs terminados fueron colocados en la seccion inferior de la plataforma movil. Se
desarrollo un pequeno montaje de aluminio y fueron fijados con tornillos al chasis (Fig.
3.20). Su ubicacion protege del exterior a los CIs, forman parte de los componentes
particulares para un vehıculo diferencial por lo que son no intercambiables.
3.3.7. Componente Inteligente Odometro Diferencial
Estima la distancia recorrida al monitorear el numero de vueltas que giran los motores
que dan traccion al vehıculo diferencial tipo oruga.
3.3. Componentes Inteligentes Especıficos 39
Actuador
Unidad deProcesamiento
PIC24FJ64GB004
Unidadde
Enlace
MMBe
Motor
Batería para motor de tracción
M+ M-
FM TM
Optoacoplador
VMO
TOR
Figura 3.19: Conexion de los CIs-Rueda Izquierda y Derecha.
Se utiliza una tarjeta generica (Fig. 3.21a) para componente inteligente junto con un
sensor optico incremental RE 5622 fabricado por Tosoku montado en el eje de uno de
los motores (Fig. 3.21b). Este sensor requiere una alimentacion de 5 V, cuenta con dos
canales de salida para distinguir en caso de requerirse, la direccion del giro del motor,
en este CI se utiliza un solo canal.
3.4. Componentes Inteligentes Comunes 40
Figura 3.20: Implementacion de los CIs-Rueda Izquierda y Derecha.
Figura 3.21: Implementacion del CI-Odometro Diferencial.
3.4. Componentes Inteligentes Comunes
Aquellos componentes que son intercambiables entre sistemas roboticos sin mayor mo-
dificacion que la conexion de energıa son los componentes comunes. Principalmente
tienen sensores que con base en su medicion generan y envıan las peticiones requeridas
para lograr su funcion.
3.4. Componentes Inteligentes Comunes 41
Figura 3.22: Tarjeta de distribucion de energıa.
3.4.1. Distribucion de Energıa
Se desarrollo una tarjeta de distribucion de energıa para facilitar la alimentacion de los
CIs que son agregados a un vehıculo (Fig. 3.22). Se requiere una de estas tarjetas por
cada vehıculo a implementar. Se tienen salidas de 5 y 12 V que son los dos voltajes
requeridos por los CIs.
3.4.2. Componente Inteligente Seguidor de Pared
Tiene como funcion mantener una distancia (ds) entre el vehıculo robotico y una pared
a su costado, para realizar un recorrido a su lado (Fig. 3.23). Con la medicion de dos
sensores ultrasonicos el CI genera peticiones con las acciones requeridas como girar,
detener o avanzar para mantener el seguimiento de la pared.
Un sensor ultrasonico colocado perpendicularmente a la plataforma movil se encarga
de medir la distancia ds entre el vehıculo y la pared, establecida a 0.5 m, mientras que
otro colocado con cierta orientacion detecta objetos proximos. Se genera la peticion
de girar hacia la pared si el vehıculo se aleja, en caso de acercarse gira en direccion
opuesta a la pared. Si se encuentra un objeto proximo en el camino el CI pide girar
para alejarse (Fig. 3.24).
3.4. Componentes Inteligentes Comunes 42
Figura 3.23: Tarea de seguimiento de pared.
Para estimar la distancia a los objetos, los sensores ultrasonicos miden el tiempo desde
que un pulso ultrasonico es enviado hasta que se recibe el eco de vuelta al sensor, luego
de chocar contra un objeto. Con base en ese tiempo y la velocidad del sonido se obtiene
una distancia.
Para construir este CI se utiliza una tarjeta generica de componente inteligente y dos
sensores ultrasonicos, operados por la unidad de procesamiento del CI (Fig. 3.25). Uno
de los sensores es colocado de forma ortogonal al vehıculo con direccion hacia el objeto
a seguir, tıpicamente una pared. El segundo sensor esta rotado 45 con respecto al
frente del vehıculo con direccion al objeto a seguir.
Sensor ultrasonico
Consiste de un transmisor/receptor, modelo Ping))) de la marca Parallax, con un rango
de operacion desde 0.02 m hasta 3 m. Trabaja con niveles de voltaje de 5 V, su salida es
una senal con duracion proporcional al tiempo transcurrido entre el pulso ultrasonico
3.4. Componentes Inteligentes Comunes 43
Inicio
Lectura de Sensor 1
Sensor 1 < 75 cm?
Sensor 2 < 50 cm?
No
SiGirar Izquierda
Sensor 2 > 50 cm?
No
SiGirar Izquierda
No
SiGirar Derecha
1
1
1
1
Centrar Dirección
1
Lectura de Sensor 2
Figura 3.24: Comportamiento del CI-Seguidor Pared.
y el eco. El pulso ultrasonico de transmision es de 40 kHz y de 5 s de duracion.
Con base en la medicion de ambos sensores ultrasonicos y la logica de operacion descrita
anteriormente para este CI, se generan las peticiones de Girar, Centrar Direccion y
Avanzar para que sean atendidas por los CIs adecuados.
3.4. Componentes Inteligentes Comunes 44
Figura 3.25: Implementacion del CI-Seguidor Pared.
3.4.3. Componente Inteligente Evasor
Este CI se encarga de evitar la colision con obstaculos en la trayectoria del vehıculo
robotico. Al utilizar dos sensores ultrasonicos colocados al frente del vehıculo es capaz
de detectar objetos y realizar el procesamiento necesario para decidir un movimiento
adecuado para evadirlo.
La salida de este CI son peticiones como Girar Izquierda, Girar Derecha, Centrar
Direccion, Retroceder que deben ser atendidas por los CIs encargados de la locomocion.
El CI-Evasor toma accion cuando se encuentra un obstaculo dentro del rango definido,
se tienen cuatro casos: libre de obstaculos, obstaculo detectado a distancia segura,
evasion y retroceso (Fig. 3.26).
Las distancias de accion se consideran: 1.2 m para entrar en evasion, 0.5 m para re-
troceder e intentar una nueva ruta y las distancias entre 1.2 m y 3 m se considera un
rango seguro, mientras que distancias mayores a 3 m se consideran libres de obstaculos
(Fig. 3.27).
En la implementacion del CI Evasor se utiliza una tarjeta generica de componente
inteligente y dos sensores ultrasonicos para detectar objetos. Su conexion electronica es
similar al CI Seguidor de Pared ya que se utiliza el mismo modelo de sensor, difiere en el
comportamiento que presenta ası como el montaje fısico de dichos sensores ultrasonicos.
3.4. Componentes Inteligentes Comunes 45
Figura 3.26: Tarea de evasion de obstaculos.
Inicio
Lectura de Sensor Izquierda
Sensor Izquierda < 50 cmO
Sensor Derecha < 50 cm?
No
Si
Retroceder
Girar Derecha
Girar Izquierda
1
1
1
1
Centrar Dirección
1
Lectura de Sensor Derecha
Sensor Izquierda < 120 cmO
Sensor Derecha < 120 cm?
No
SiSensor Izquierda < Sensor Derecha?
No
Si
Centrar Dirección
Figura 3.27: Comportamiento del CI-Evasor.
3.4. Componentes Inteligentes Comunes 46
Figura 3.28: Implementacion del CI-Evasor.
Cada sensor ultrasonico esta montado a cada lado de una base de acrılico disenada para
poder colocarse y removerse con facilidad del vehıculo robotico en cuestion (Fig. 3.28).
Este CI se coloca al frente del vehıculo para detectar obstaculos en el camino, los dos
sensores ultrasonicos permiten distinguir la ubicacion del obstaculo y girar entonces
en direccion contraria a el. El montaje de los sensores permite cambiar su orientacion
ası como su inclinacion.
3.4.4. Componente Inteligente Compas
Este es un CI de tipo hıbrido, brinda al vehıculo autonomo la capacidad de orientarse
en una direccion deseada por medio de una brujula electronica como sensor. Su sali-
da son peticiones como Girar Izquierda, Girar Derecha y Centrar Direccion. Informa
el azimut actual y puede atender la peticion Orientar acompanada de la orientacion
correspondiente. Al recibir una orientacion a la cual dirigirse, compara la orientacion
actual del vehıculo y envıa peticiones de Girar o Centrar Direccion segun sea el caso
(Fig. 3.29).
El CI Compas utiliza una tarjeta generica de componente inteligente y un sensor
HMC6352 fabricado por Honeywell. Este compas combina dos sensores magneto-resistivos
con la electronica analogica, digital, microprocesador y algoritmos requeridos para ob-
tener una orientacion. El sensor esta internamente compensado por temperatura e
incluye algoritmos de calibracion embebidos; su alimentacion es de 5 V, la salida tiene
3.4. Componentes Inteligentes Comunes 47
Lectura de Brújula Electrónica
Actualiza OrientaciónActual
OrientaciónActual < OrientaciónDeseada?
No
SiEnviar Comando Girar Derecha1
OrientaciónActual > OrientaciónDeseada
No
SiEnviar Comando Girar Izquierda1
1
Enviar Comando Centrar
Dirección
Inicio
1
2
Espera peticiones
Orientar?
No
Si
Enviar Orientación
2
Figura 3.29: Comportamiento del CI-Compas.
una resolucion de 0.1 y presenta un consumo de corriente menor a los 10 mA.
El CI se comunica con el sensor HMC6352 por medio de I2C (Fig. 3.30), la unidad de
procesamiento del CI opera como maestro mientras que el sensor como esclavo. Los
resistores necesarios van incluidos en el modulo del sensor.
El montaje fısico del CI con su sensor es sobre una base de acrılico con un poste de
plastico para alejarlo de otros elementos metalicos del vehıculo que puedan afectar su
funcionamiento (Fig. 3.31).
3.4. Componentes Inteligentes Comunes 48
Sensor
Unidad deProcesamiento
PIC24FJ64GB004
Unidadde
Enlace
HMC6352
Sensor Compás
SDA SCL
Figura 3.30: Conexion del CI-Compas.
Figura 3.31: Implementacion del CI-Compas.
3.4. Componentes Inteligentes Comunes 49
Vehículo Robótico
Comunicación Inalámbrica
Computadora
Comunicación Inalámbrica
Interfaz Gráfica
Teleoperación Movimientos Autónomos
Debug Imagen
Componente InteligenteCI-Comunicación
Componente Inteligente
Componente Inteligente
Figura 3.32: Estructura del CI-Comunicacion.
3.4.5. Componente Inteligente de Comunicacion
La interaccion entre un usuario y el vehıculo robotico es posible a traves del CI de
Comunicacion. Permite el envıo de peticiones ası como la recepcion de informacion
sobre el estatus del vehıculo autonomo. El CI de Comunicacion esta conformado por
una interfaz grafica de usuario (GUI por sus siglas en ingles) ası como un enlace de
comunicacion inalambrico de alto alcance. Es un CI del tipo hıbrido y es requerido
para complementar ciertos CIs.
La GUI es modular (Fig. 3.32), integra diversas ventanas para comunicarse con el
vehıculo robotico. Permite la teleoperacion del sistema robotico ası como visualizar la
imagen en tiempo real del CI-Camara. El envıo de parametros para realizar recorridos
autonomos es a traves de la ventana de Movimientos Autonomos.
La ventana Debug recibe y registra la actividad del sistema completo, al registrarse
ante el CI-Coordinador comienza a recibir la actividad de peticiones generadas.
La unidad de procesamiento de este CI utiliza un microcontrolador Rabbit, y la comu-
nicacion de alto alcance es a traves de radio modems MaxStream (Fig. 3.33).
Microcontrolador Rabbit
Un microcontrolador RCM4110, marca Rabbit Semiconductor es utilizado en el CI
de Comunicacion. Opera a 29.49 MHz, con 512 kb de memoria Flash para almacenar
3.4. Componentes Inteligentes Comunes 50
Unidad deProcesamiento
Microcontrolador Rabbit
Unidad deEnlaceXBee
Radio módem MaxStream
Tx Rx
Energía
Tx Rx
Figura 3.33: Conexion del CI-Comunicacion.
codigo y 256 kb de memoria RAM para variables; ofrecen una operacion multitarea,
permite ejecutar mas de un bloque de codigo ”simultaneamente”.
Incorpora 6 puertos que ofrecen diferentes funciones en las que destacan 6 entra-
das/salidas seriales, relojes para comunicacion sıncrona, PWM, implementacion maestro-
esclavo, entre otros. El codigo de programacion para este microcontrolador es desarro-
llado en ”Dynamic C”, una variacion del lenguaje de programacion C. La programacion
del circuito es a traves de un puerto serial.
Radio Modem
El intercambio de informacion entre el vehıculo autonomo y una computadora es posible
al utilizar un par de radio modems marca MaxStream modelo 9XTend. Cada radio es
capaz de transmitir con una potencia de salida de hasta 1 Watt a una frecuencia de
900 MHz. El alcance ofrecido por estos radio modems en ambientes interiores/urbanos
3.4. Componentes Inteligentes Comunes 51
Figura 3.34: Implementacion del CI-Comunicacion.
es de hasta 900 m y de hasta 60,000 m en ambientes abiertos con lınea directa de
vista. La tasa de transferencia de datos es configurable, desde 900 bps hasta 115200
bps. Por seguridad implementan encriptacion de 256-bits, sensibilidad de recepcion de
-110 dBm. La operacion de estos equipos de comunicacion se basa en un puerto serie
RS-232/485 y el modo de operacion es punto a punto o multipunto.
La integracion tanto del microcontrolador Rabbit como del radio modem Maxstream
fue encapsulada en un contenedor de acrılico (Fig. 3.34) y es fijado con velcro en las
plataformas moviles.
Interfaz grafica
Permite controlar al robot de forma manual ası como visualizar su estado y enviar
peticiones para realizar recorridos autonomos al especificar una distancia y direccion.
3.4. Componentes Inteligentes Comunes 52
Figura 3.35: Interfaz grafica de usuario.
Independiente de la plataforma que se utilice, esta interfaz funciona de manera modular;
este CI puede ser agregado o retirado del vehıculo en tiempo de operacion.
Cuenta con diferentes modulos como teleoperacion, debug, estatus, recorridos autono-
mos e imagen (Fig. 3.35).
Teleoperacion. Permite por medio del teclado, raton o un gamepad la teleopera-
cion de vehıculos autonomos que implementen la arquitectura.
Debug. Muestra y registra el trafico de peticiones existentes en el vehıculo autono-
mo. Indica la peticion, que componente la genera ası como su prioridad. En re-
corridos autonomos muestra la distancia recorrida y su orientacion.
Estatus. Muestra los componentes inteligentes registrados en el sistema junto con
la informacion de peticiones que puede atender y peticiones que puede solicitar.
Recorridos autonomos. Permite enviar peticiones al sistema robotico para recorrer
una distancia determinada dada en centımetros y peticiones para mantener una
orientacion dada.
3.5. Vehıculos Autonomos 53
Imagen. Muestra la informacion capturada por la camara montada sobre el CI-
Camara en el vehıculo robotico. Desde el modulo de teleoperacion es posible
cambiar el angulo de vision.
3.4.6. Componente Inteligente Camara
Permite visualizar a distancia el exterior de un vehıculo autonomo al utilizar una
camara de video inalambrica colocada sobre dos actuadores para lograr movimientos
horizontales y verticales. Es un CI que atiende peticiones (Fig. 3.36). La imagen cap-
turada es transmitida de manera inalambrica y visualizada en la interfaz grafica del
CI de Comunicacion. Atiende peticiones como Girar Camara a la Izquierda, Derecha,
Arriba y Abajo.
Para su desarrollo utiliza una tarjeta generica de componente inteligente y dos servo-
motores para girar la camara de video inalambrica (Fig. 3.37). Este CI esta formado
por dos secciones: la camara colocada sobre dos servomotores en el vehıculo robotico
y la contraparte es un receptor inalambrico de video y una tarjeta digitalizadora de
video para computadora.
Un servomotor continuo permite un giro horizontal de la camara de 360 y un ser-
vomotor estandar un giro vertical de 120 . Las peticiones de giro son enviadas por el
usuario desde el CI de Comunicacion. La imagen obtenida se visualiza en el mismo CI
de Comunicacion y se tiene un alcance inalambrico de hasta 25 m.
El montaje de la camara, servomotores y tarjeta generica de CI es sobre acrılico y cuenta
con velcro en la parte inferior para facilitar su colocacion sobre el vehıculo autonomo
en cuestion. Un solo cable de 5 V de alimentacion es requerido para su funcionamiento.
3.5. Vehıculos Autonomos 54
Inicio
En espera de peticiones
Girar Cam Izquierda?
Girar Cam Derecha?
No
SiActuador a la
Izquierda
Girar Cam Arriba?
No
SiActuador a la
Derecha
No
SiActuador hacía
arriba
1
1
1
1
Girar Cam Abajo?
No
SiActuador hacía
abajo 1
1
Figura 3.36: Comportamiento del CI-Camara.
3.5. Vehıculos Autonomos
Una vez desarrollados los CIs, son colocados sobre cada plataforma movil los CIs par-
ticulares que correspondan, tanto al vehıculo con sistema de direccion Ackermann co-
mo al vehıculo con cinematica diferencial. En ambas plataformas se requiere un CI-
Coordinador para operar.
3.5. Vehıculos Autonomos 55
Figura 3.37: Implementacion del CI-Camara.
Los CIs comunes son intercambiados entre plataformas segun se requiera. Se muestran
ambas plataformas moviles con algunos componentes inteligentes incorporados.
Se tiene a la plataforma Ackermann con sus CIs particulares Odometro, Traccion y
Direccion ademas de los CIs comunes de Comunicacion, Evasor, Seguidor de Pared,
Camara y Compas (Fig. 3.38). La energıa para este vehıculo Ackermann esta dada
por dos baterıas de polımero de litio de 11.1 V con capacidad de 5000 mAh cada una.
Los CIs estan energizados por una baterıa mientras que la segunda baterıa es para los
motores de traccion.
La plataforma diferencial con sus CIs particulares Rueda Izquierda y Derecha, ası co-
mo su CI Odometro puede apreciarse en la Figura 3.39. Se muestran ademas los CIs
comunes de Camara, Seguidor de Pared y Evasor. La energıa para esta plataforma
diferencial esta dada por una baterıa de polımero de litio de 11.1 V con capacidad de
4400 mAh.
3.5. Vehıculos Autonomos 56
Figura 3.38: Vehıculo autonomo Ackermann basado en CIs.
3.5. Vehıculos Autonomos 57
Figura 3.39: Vehıculo autonomo diferencial basado en CIs.
Capıtulo 4
Implementacion: Arquitectura de
Control
Se presenta en este capıtulo la integracion de CIs para implementar la arquitectura de
control de dos plataformas moviles, con cinematica diferencial y Ackermann, respecti-
vamente. Ademas se muestran los resultados de diversas pruebas realizadas a cada CI,
ası como el desempeno de cada plataforma movil realizando ciertas tareas.
4.1. Componentes Inteligentes
La validacion de la arquitectura de control involucro una serie de pruebas realizadas a
cada uno de los CIs desarrollados. Estas pruebas fueron realizadas de forma individual
para comprobar la correcta operacion de cada unidad funcional del CI, tanto de los
elementos fısicos como de los elementos logicos, ası como para evaluar el desempeno de
la funcion de cada CI.
CI-Traccion. Diversas rutinas fueron programadas para verificar que los motores opera-
ran de forma adecuada, capaces de girar en ambos sentidos y a diferentes velocidades,
esto despues de realizar la conexion electronica entre el microcontrolador, optoacopla-
58
4.1. Componentes Inteligentes 59
dores y puente H. Una vez que se logro el correcto control de los motores de traccion,
se probo la comunicacion inalambrica del CI para recibir peticiones y atenderlas.
CI-Direccion. Se programo una rutina para girar los servomotores de direccion desde
el centro hasta los extremos en pequenos incrementos con el objetivo de encontrar
los lımites operacionales del vehıculo Ackermann en ambos sentidos. El servomotor
del eje anterior se programo de forma fija para evitar forzar los motores de traccion
en giros demasiado cerrados, como se observo en las pruebas realizadas. Se probo la
respuesta del servomotor del eje posterior a peticiones de giro de la direccion de forma
satisfactoria.
CI-Camara. Los servomotores de giro de la camara inalambrica se operaron por medio
de un programa que permite controlar el angulo de vision. El servomotor de giros
horizontales se hizo operar con pequenos incrementos por cada peticion de giro recibida,
debido a que es un servomotor continuo que permite realizar giros de hasta 360◦. En
el caso del servomotor de movimiento vertical, se encontro de manera experimental el
valor maximo de giro en ambos sentidos para evitar colisiones con la base del CI.
CI-Compas. Se probo la respuesta del sensor de 0 a 359◦. Se evaluo el algoritmo que
permite lograr una orientacion deseada al comparar la orientacion actual del vehıculo
con la orientacion programada y ası generar las peticiones de movimiento necesarias.
CI-Evasor. Se desarrollo un programa para la medicion de dos sensores ultrasonicos
para detectar obstaculos. Se evaluo el algoritmo de evasion, que genera como salida
peticiones para girar el vehıculo segun sea necesario o bien retroceder para evitar coli-
siones. Se experimento con diferentes valores de distancia hasta encontrar los mejores
resultados de acuerdo a la respuesta del vehıculo. Como parte de las pruebas se modi-
fico el montaje fısico de los sensores ultrasonicos para permitir orientarlos manualmente
y adaptarlos a la plataforma movil utilizada.
CI-Seguidor de Pared. Originalmente se probo el seguimiento de pared con un sensor
4.1. Componentes Inteligentes 60
Tabla 4.1: Relacion de distancias y pulsos, plataforma Diferencial.
Distancia recorrida Pulsos Contados
39.8 cm 50109.5 cm 150214 cm 300317 cm 450389 cm 550
ultrasonico colocado de forma ortogonal al vehıculo para detectar la pared. Presento un
funcionamiento adecuado excepto en giros cerrados, donde el robot era incapaz de
anticiparse a la forma de la pared por lo que se perdıa el seguimiento. Se encontro como
solucion colocar otro sensor ultrasonico orientado a 45 ◦respecto a la pared en la parte
frontal del vehıculo. Esto permitio anticipar la forma de la pared y dar el giro en
esquinas o irregularidades importantes de manera adecuada.
CI-Odometro. Las pruebas realizadas a los odometros utilizados en ambas plataformas
fueron similares entre sı. Primero se midio el pulso generado por los sensores y se obtuvo
una cuenta proporcional a la distancia recorrida. Se ejecutaron recorridos a diferentes
distancias en repetidas ocasiones (Tabla 4.1 y 4.2), se midio la distancia real recorrida
y se relaciono con el conteo de pulsos y se encontro una funcion de tendencia lineal
(Fig. 4.1 y 4.2). Esta fue implementada en los microcontroladores para convertir de
pulsos a centımetros. Para la plataforma diferencial la funcion es:
PDif = 1.4355*D - 6.9871
Para la plataforma Ackermann:
PAck = 2.7898*D - 21.837
Donde PDif y PAck son los pulsos a contar y D la distancia en centımetros a recorrer.
CI-Comunicacion. Se probo la comunicacion entre la interfaz grafica y el vehıculo
robotico utilizando el radio modem 9XTend al enviar diferentes peticiones y observar
4.1. Componentes Inteligentes 61
0 50 100 150 200 250 300 350 400−100
0
100
200
300
400
500
600
Distancia (cm)
Pul
sos
y = 1.4*x − 7
MedidoEstimado
Figura 4.1: Funcion de calibracion del CI-Odometro diferencial.
Tabla 4.2: Relacion de distancias y pulsos, plataforma Ackermann.
Distancia recorrida Pulsos Contados
46 cm 100183 cm 500268 cm 1000
0 50 100 150 200 250 300 350 400−200
0
200
400
600
800
1000
1200
Distancia (cm)
Pul
sos
y = 2.8*x − 22
MedidoEstimado
Figura 4.2: Funcion de calibracion del CI-Odometro Ackermann.
la respuesta por parte del sistema robotico. Por otra parte, se probo la comunicacion
entre el modulo Debug del CI-Comunicacion y el CI-Coordinador por medio de los
4.1. Componentes Inteligentes 62
XBee. Se comprobo el correcto registro de las peticiones generadas en el sistema.
Adicionalmente, se probo el modulo de Teleoperacion del CI-Comunicacion con un
control comercial para la consola de videojuego XBox, con lo que se logro operar el
vehıculo robotico por medio del radio modem 9XTend.
CI-Coordinador. Las pruebas a este CI se enfocaron en revisar el registro de CIs ası co-
mo verificar la correcta recepcion y reenvıo de peticiones. Se monitoreo el trafico de
peticiones con la ayuda de un osciloscopio y se observo que la velocidad de transmi-
sion de datos entre el CI-Coordinador y su XBee es crıtica, por lo que se utilizo la
velocidad maxima permitida de 19200 bps para lograr el maximo nivel de atencion del
CI-Coordinador y evitar perdida de informacion.
Figura 4.3: Tiempo entre una peticion y su reenvıo por el CI-Coordinador.
El tiempo que transcurre entre la peticion de algun CI y la trasmision del CI-Coordinador
al CI correspondiente es de 23 ms (Fig. 4.3).
Trascurren 50 ms desde que una peticion es enviada hasta que es atendida por otro
CI, incluido el paso por el CI-Coordinador. En la figura 4.4 se muestra la actividad
del CI-Odometro que envıa dos peticiones, la primera de Incrementar Velocidad (a)
y la segunda para informar la distancia recorrida (b). El pulso mostrado en la parte
inferior (c) representa la reaccion del CI-Traccion por recibir la peticion de Incrementar
4.1. Componentes Inteligentes 63
Figura 4.4: Actividad entre el envıo y atencion de peticiones.
Velocidad.
4.1.1. Integracion de Componentes Inteligentes
Figura 4.5: Pruebas de laboratorio.
Una vez que se probaron y se pusieron a punto por separado los CI, se realizaron
pruebas de operacion de la arquitectura de control propuesta con varios CIs para am-
bas plataformas moviles. Desde el CI-Comunicacion en una computadora, se enviaron
peticiones de Avanzar, Detener, Retroceder y Girar (Fig. 4.5). Se comprobo la comu-
nicacion entre el CI-Coordinador y los otros CIs en el sistema.
Se probo la reaccion de los vehıculos ante un obstaculo al frente al estar en movimien-
4.2. Experimentos y Resultados 64
Tabla 4.3: Consumo de corriente medido en el vehıculo Ackermann.
Componente Inteligente y Motores Consumo electrico (mA)
Odometro 68Traccion 49
Coordinador 46Direccion 170Motores 470
Tabla 4.4: Consumo de corriente en el vehıculo diferencial.
Componente Inteligente y Motores Consumo electrico (mA)
Odometro 48Rueda izquierda 55Rueda derecha 55Coordinador 46Motores 180 x 2
to. Tambien se hicieron pruebas a diferentes distancias y orientaciones en recorridos
autonomos. Con los resultados obtenidos se considero que las plataformas quedaron
integradas adecuadamente para poder llevar a cabo diversas tareas.
4.1.2. Consumos Electricos
En sistemas energizados con baterıas es importante mantener un consumo de corriente
bajo para aumentar la autonomıa, por lo que fueron seleccionados dispositivos de bajo
consumo electrico para ser utilizados en los CIs. Se midio el consumo electrico de los
CIs en operacion y se presentan en las Tablas 4.3, 4.4 y 4.5:
4.2. Experimentos y Resultados
Se desarrollaron experimentos para probar el desempeno de la arquitectura de control
en las dos plataformas moviles implementadas, ante diferentes escenarios y circunstan-
4.2. Experimentos y Resultados 65
Tabla 4.5: Corriente medida en los CIs Comunes.
Componente Inteligente y Motores Consumo electrico (mA)
Compas 46Evasor 76
Comunicacion 152Seguidor de Pared 90
Camara 120
cias.
Estos experimentos se desarrollaron al aire libre en una cancha de basquetbol debido
a que se utilizo un sistema de posicionamiento global (GPS) para poder registrar los
recorridos y evaluar los resultados de las tareas realizadas por los vehıculos.
4.2.1. Sistema de Registro GPS
Se desarrollo un sistema para el registro de recorridos basados en un sistema de posi-
cionamiento global que consta de dos partes: un equipo GPS y una interfaz de registro
(Fig. 4.6).
El equipo GPS se diseno y desarrollo a partir de un microcontrolador PIC16F690 y
un GPS 15L fabricado por Garmin. El microcontrolador obtiene datos del GPS, filtra
la informacion para obtener tanto la posicion como la hora actual. Estos datos son
enviados a traves de un par de radio modems XBee hacia la interfaz de registro.
La interfaz de registro fue desarrollada en Visual Studio 2010, en particular con el
lenguaje de programacion C. Utiliza un puerto COM generado por la conexion del
radio modem XBee a la computadora. La informacion recibida desde el equipo GPS es
mostrada en la pantalla de la interfaz y se cuenta con un boton para iniciar o detener
el registro de datos en un archivo de texto.
Se utilizo el lenguaje de programacion Matlab para el procesamiento de la informacion
registrada con el sistema GPS. Se desarrollo una funcion para graficar los recorridos y
4.2. Experimentos y Resultados 66
Microcontrolador PIC16F690
Equipo transmisor GPS
XBee
GPS 15L
XBee
Receptor GPS
Interfaz de Registro
Archivo
(a) Equipo GPS (b) Interfaz de registroGPS
Figura 4.6: Sistema de registro GPS.
obtener la distancia transitada ası como la velocidad de cada vehıculo. En cada grafica
se muestra tanto la velocidad y trayectoria recorrida como el recorrido ideal.
4.2.2. Seguimiento de Pared
Se realizaron recorridos de seguimiento de pared en diferentes escenarios con ambas
plataformas, preparadas con sus CIs particulares (Coordinador, Odometro, Direccion
y Traccion) ademas del CI-Seguidor de Pared (Fig. 4.7).
Se diseno una pared seccionada como escenario de pruebas de seguimiento fabricado
con madera y carton. Es sencilla de ensamblar y transportar. La forma de ensamble
esta limitada a las combinaciones posibles con 12 secciones de 1.2 m de ancho por 0.4
m de altura.
El primer escenario sin obstaculos fue un recorrido rectangular de 6 x 1.2 m y otro
escenario de 3.6 x 3.6 m (Fig. 4.8), donde se evaluaron ambas plataformas en operacion.
4.2. Experimentos y Resultados 67
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Dirección
CI-Tracción
CI-Odómetro
CI-Seguidor
(a) Plataforma Ackermann
CI-Rueda Izquierda
CI-Rueda Derecha
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Odómetro
CI-Seguidor
(b) Plataforma Diferencial
Figura 4.7: CIs para el Seguimiento sin obstaculos.
1.2 m
6 m
(a) Escenario rectan-gular
3.6 m
3.6 m
(b) Escenario cuadrado
Figura 4.8: Seguimiento sin obstaculos.
Al encender cada vehıculo, comienza el proceso de registro de CIs ante el CI-Coordinador,
este proceso tiene una duracion aproximada de 30 segundos. El movimiento del vehıculo
comienza cuando el CI-Seguidor de Pared toma el control al enviar peticiones de avan-
zar ası como de girar la direccion con base a las mediciones de los sensores ultrasonicos.
El CI-Odometro en la plataforma Ackermann regula la velocidad para mantenerla cons-
tante a un valor programado de 0.25 m/s. En el escenario rectangular se obtuvo una
velocidad promedio de 0.27 m/s y una distancia promedio de 27.7 m en varios recorridos
(Fig. 4.9).
4.2. Experimentos y Resultados 68
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
28.2834 m
0.26937 m/s
Figura 4.9: Pruebas de seguimiento sin obstaculos Ackermann.
El CI-Seguidor de Pared fue cambiado a la plataforma diferencial y se realizo el re-
corrido. Al encender el vehıculo comienza el registro de CIs ante el CI-Coordinador
y segundos despues comienza el seguimiento de pared al igual que en la plataforma
Ackermann. Los CIs-Rueda Izquierda y Derecha en esta plataforma diferencial atien-
den tanto las peticiones de avanzar como de girar. La velocidad promedio en estos
recorridos fue de 0.21 m/s, se recorrio en total una distancia promedio de 26.4 m (Fig.
4.10).
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
26.3658 m
0.21972 m/s
Figura 4.10: Pruebas de seguimiento sin obstaculos con plataforma diferencial.
Una vez realizadas las pruebas de seguimiento en el escenario rectangular se experi-
4.2. Experimentos y Resultados 69
mento en un escenario cuadrado de 3.6 X 3.6 m. Se obtuvieron velocidades de 0.22 m/s
en la plataforma diferencial y de 0.25 m/s en la plataforma Ackermann. Las distancias
recorridas fueron de 27 m en promedio por ambas plataformas. En la figura 4.11 se
muestra uno de los recorridos de cada plataforma.
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
27.0935 m
0.22208 m/s
(a) Plataforma Diferencial
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
26.4855 m
0.25714 m/s
(b) Plataforma Ackermann
Figura 4.11: Pruebas de seguimiento sin obstaculos circuito cuadrado.
4.2.3. Trayectorias Autonomas
Se realizaron trayectorias autonomas donde se especifica una distancia a recorrer con
cierta orientacion. Se envıa por parte del usuario desde el CI-Comunicacion la orienta-
cion en grados (0 359) y la distancia en centımetros a recorrer. En este tipo de recorrido
son utilizados el CI-Odometro para estimar la distancia recorrida y el CI-Compas para
mantener una orientacion dada (Fig. 4.12).
Los recorridos fueron desarrollados en una cancha de basquetbol al aire libre. Se eva-
luo en ambas plataformas moviles con los siguientes resultados (Fig. 4.13).
Se solicito un recorrido de 14 m a 180 ◦(de Norte a Sur), despues de varios recorridos
con ambas plataformas se logran distancias de 14 m con un margen de error de 0.2 m.
4.2. Experimentos y Resultados 70
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Dirección
CI-Tracción
CI-Odómetro
CI-Compás
(a) Plataforma Ackermann
P
E
S
P
E
A
P
E
A
P
E
Coordinador
CI-Rueda Izquierda
CI-Rueda Derecha
CI-Odómetro
P
E
S
CI-Compás
(b) Plataforma Diferencial
Figura 4.12: CIs para trayectorias sin obstaculos.
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
14.0236 m
0.2226 m/s
(a) Plataforma Diferencial
−25.58 −25.575 −25.57 −25.8.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
14.1758 m
0.22864 m/s
(b) Plataforma Ackermann
Figura 4.13: Recorridos autonomos sin obstaculos.
4.2.4. Seguimiento de Pared con Obstaculos
Se empleo un escenario cuadrado de 3.6 X 3.6 m adicionado con un obstaculo de 0.6
m, ortogonal a la trayectoria del vehıculo y una elongacion de la pared a 45 ◦de 0.6 m
(Fig. 4.14).
Diversos recorridos de seguimiento de pared se realizaron, para ello se agrego el CI-
Evasor (Fig. 4.15). Puede apreciarse como con la interaccion de todos los CIs se logra
4.2. Experimentos y Resultados 71
3.6 m
3.6 m
Figura 4.14: Escenario cuadrado con obstaculos.
la tarea, en particular el CI-Seguimiento de Pared alterna el control con el CI-Evasor
de obstaculos (Fig. 4.16).
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Dirección
CI-Tracción
CI-Odómetro
CI-Evasor
P
E
S
CI-Seguidor
(a) Plataforma Ackermann
CI-Rueda Izquierda
CI-Rueda Derecha P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Odómetro
CI-Evasor
P
E
S
CI-Seguidor
(b) Plataforma Diferencial
Figura 4.15: CIs para el Seguimiento con obstaculos.
4.2.5. Trayectorias Autonomas con Obstaculos
Se realizaron recorridos autonomos ahora con obstaculos colocados en la trayectoria.
Con esta prueba se puede apreciar como existe una interaccion entre los CIs para
realizar el recorrido de manera autonoma, mientras evade el obstaculo y continua con
el recorrido original.
4.2. Experimentos y Resultados 72
-25.58 -25.575 -25.578.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
32.8118 m
0.26249 m/s
(a) Seguimiento de pared conobstaculos
(b) Prueba de seguimiento con obstaculos
Figura 4.16: Seguimiento de pared con obstaculos.
El CI-Evasor tiene prioridad sobre el CI-Compas, al momento de ser detectado un
obstaculo la direccion del vehıculo autonomo es controlado por el CI-Evasor (Fig. 4.17).
Al liberarse del obstaculo, el control de la direccion regresa al CI-Compas que retoma
la orientacion solicitada originalmente (Fig. 4.18).
Las pruebas fueron desarrolladas en una cancha de basquetbol al aire libre con obstacu-
los de 0.4 m de altura por 1 m de ancho. El recorrido fue de 14 m a 180 ◦(de Norte a
Sur). Se evaluo en ambas plataformas moviles con los siguientes resultados (Fig. 4.19).
La evasion fue a la derecha del obstaculo.
Se lograron diversos recorridos con obstaculos. La direccion del giro de evasion depende
de la posicion del obstaculo. Se gira hacia donde se encuentre mayor espacio libre. Se
4.2. Experimentos y Resultados 73
P
E
S
P
E
A
P
E
A
P
E
S/A
P
E
Coordinador
CI-Dirección
CI-Tracción
CI-Compás
CI-Evasor
P
E
S
CI-Odómetro
(a) Plataforma Ackermann
P
E
S
P
E
A
P
E
A
P
E
Coordinador
CI-Rueda Izquierda
CI-Rueda Derecha
CI-Compás
P
E
S
CI-Evasor
P
E
S
CI-Odómetro
(b) Plataforma Diferencial
Figura 4.17: CIs para trayectorias con obstaculos.
14 m
(a) Recorrido sinobstaculos
14 m
(b) Con obstaculo sin CI-Evasor
14 m
Orientación
solicitada
(c) Obstaculo y CI-Evasor
Figura 4.18: Casos posibles en los recorridos autonomos.
experimento colocando el obstaculo con sesgo hacia cada lado, que resulto en evasion
por el sentido mas libre, en este caso el giro del vehıculo fue por la izquierda (Fig. 4.20).
4.2.6. Trafico de Peticiones
El trafico de las peticiones generadas por los CIs en el sistema robotico puede ser
registrado con la opcion Debug del CI-Comunicacion. La estructura del registro incluye
4.2. Experimentos y Resultados 74
-25.58 -25.575 -25.578.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
13.9151 m
0.22087 m/s
(a) Diferencial
-25.58 -25.575 -25.578.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
14.0343 m
0.21591 m/s
(b) Ackermann
Figura 4.19: Recorridos autonomos con obstaculos con giro por la derecha.
-25.58 -25.575 -25.578.192
8.194
8.196
8.198
8.2
8.202
8.204
8.206
8.208
8.21
8.212
13.9696 m
0.25399 m/s
Figura 4.20: Recorrido autonomo con obstaculos con giro por la izquierda.
la peticion generada, su parametro opcional, su prioridad ası como el identificador del
CI que la genera y la hora en que se presento (Fig. 4.21).
Se puede apreciar a manera de ejemplo en una de las pruebas registradas el comporta-
miento que se obtiene en un recorrido autonomo. Puede observarse el incremento de la
distancia recorrida por el vehıculo robotico, que es reportada por el CI-Odometro. El
incremento cambiante en la distancia esta relacionado directamente con la velocidad
del vehıculo. Se muestra en azul como la regulacion de velocidad tiene lugar en un
4.2. Experimentos y Resultados 75
Derecha al 80%, Prioridad 60, idCI 5 12:01:22 p.m. IncrementaVel al 2%, Prioridad 80, idCI 0 12:01:22 p.m. Centrar al 0%, Prioridad 0, idCI 7 12:01:23 p.m. Derecha al 83%, Prioridad 60, idCI 5 12:01:23 p.m.
Figura 4.21: Ejemplo de registro de peticiones generadas.
recorrido y su consecuencia con la distancia recorrida a lo largo del tiempo (Fig. 4.22).
10 20 30 40 50 600
500
1000
1500
Dis
tanc
ia (
cm)
Tiempo (Seg)
10 20 30 40 50 60
D
I
Reg
. Vel
ocid
ad
Figura 4.22: Distancia recorrida junto con el control de velocidad.
La informacion reportada por el CI-Compas muestra el desempeno logrado en un re-
corrido con una orientacion solicitada de 180 ◦(Fig. 4.23).
10 20 30 40 50 60100
150
200
250
Azi
mut
(°)
Tiempo (Seg)
Orientación del recorrido
Figura 4.23: Orientacion lograda comparada con la orientacion solicitada.
La variacion de la orientacion en un vehıculo esta directamente relacionada con el
sistema de direccion de la plataforma movil. En estas pruebas se presenta una variacion
de 5 ◦, con la plataforma Ackermann.
Las peticiones generadas por el CI-Compas a partir de la medicion de la orientacion del
vehıculo, son enviadas al CI-Direccion para lograr mantener la orientacion solicitada.
4.2. Experimentos y Resultados 76
Se presenta una grafica con las peticiones atendidas por el CI-Direccion para realizar
un recorrido en lınea recta (Fig. 4.24).
10 20 30 40 50 60
-60
-40
-20
0
20
40
60
Izqu
ierd
a
Der
echa
Tiempo (s)
Cambio de Dirección
Figura 4.24: Peticiones para giros a Izquierda y Derecha en un recorrido en lınearecta.
Se efectuaron recorridos con el vehıculo robotico en una trayectoria cuadrada (Fig.
4.25), en donde el punto 1 indica el inicio del recorrido, 2, 4 y 5 son esquinas del
cuadrado, 3 representa un obstaculo y el punto 6 es una elongacion de la pared. Estos
recorridos se analizaron de acuerdo con las peticiones del CI-Seguidor de Pared y el
CI-Evasor, la Figura 4.26 muestra una de las vueltas y la interaccion de las peticiones
de ambos CIs.
12
3
4 5
6
Figura 4.25: Escenario cuadrado con obstaculos.
Las peticiones del CI-Evasor tienen prioridad sobre el CI-Seguidor de Pared (Tabla
4.6), al presentarse un obstaculo (punto 3) el CI-Evasor inhibe las peticiones de otros
CIs y toma el control, mientras que en la elongacion de la pared (punto 6) la actividad
4.2. Experimentos y Resultados 77
1 42 84 125
IzqCenDer
DetAvaRet
Pet
icio
nes
Tiempo (s)
Actividad entre CIs
CI-SeguidorCI-Evasor
1 3 4 5 6 12
Figura 4.26: Interaccion entre el CI-Evasor y el CI-Seguidor de Pared.
del CI-Evasor es mınima y el control lo efectuo el CI-Seguidor de Pared. Tal como se
aprecia en las esquinas la peticion de Girar Derecha es la que predomina.
Tabla 4.6: Prioridades de las peticiones generadas en la trayectoria de 125 segundos.
CI-Seguidor de Pared CI-Evasor
Peticion Girar Girar Avanzar Girar Centrar Detener RetrocederIzquierda Derecha Izquierda Direccion
Prioridad 60 60 60 70 0 0 96
Capıtulo 5
Conclusiones
La arquitectura de control distribuida basada en componentes inteligentes es una alter-
nativa practica para la implementacion de sistemas roboticos. La interaccion entre los
componentes inteligentes de un sistema robotico provee un comportamiento autonomo
para llevar a cabo la tarea asignada.
La comunicacion asıncrona basada en peticiones (comandos abstractos) permite una
interaccion robusta entre los componentes inteligentes, aunque estos sean desarrollados
con diferentes unidades de procesamiento o programados en diferentes lenguajes de
programacion.
La naturaleza modular de la arquitectura de control permite, una vez que los compo-
nentes inteligentes han sido desarrollados y evaluados, ser utilizados en otros sistemas
roboticos. Esta flexibilidad se debe a que un componente inteligente encapsula las carac-
terısticas del sensor o actuador, ası como los requerimientos de operacion mediante un
algoritmo apropiado para llevar a cabo su funcion especıfica en cualquier configuracion
de un robot.
La independencia entre componentes inteligentes provee un control distribuido robusto
y configurable para el desarrollo de diversos sistemas roboticos, lo cual tambien permite
la identificacion facilmente de una falla o mal comportamiento del sistema robotico.
78
5.1. Contribuciones 79
El resultado de los experimentos muestra la correcta operacion de dos plataformas
moviles que implementan la arquitectura de control distribuida en diferentes tareas.
Se lograron cumplir las tareas impuestas de forma satisfactoria y se demostro una
reaccion e interaccion adecuada entre los componentes inteligentes que configuraron
los vehıculos autonomos; como los casos al detectar obstaculos mientras su tarea era
seguir una pared o una trayectoria.
Con base en los resultados obtenidos, se concluye que la arquitectura de control distri-
buida basada en componentes inteligentes cumple satisfactoriamente con las expecta-
tivas planteadas, se confirma la hipotesis y se lograron los objetivos.
5.1. Contribuciones
Se obtuvo una arquitectura alternativa para el desarrollo de sistemas roboticos, en
particular de vehıculos autonomos, que demuestra ser confiable y robusta. Permite
implementar el control distribuido y construccion de un vehıculo autonomo basado en
componentes inteligentes e independientes.
Permite que se reutilicen los componentes inteligentes, al ser considerados como re-
cursos independientes y flexibles, para la configuracion de diversos robots. Lo cual
contribuye a optimizar recursos para el desarrollo de sistemas roboticos en diversas
aplicaciones, particularmente en la investigacion.
5.2. Trabajo Futuro
El numero de componentes inteligentes que pueden trabajar al mismo tiempo en un
sistema robotico esta limitado por la capacidad del componente inteligente coordinador.
Se pueden emplear dispositivos con mayor capacidad de computo y comunicacion como
coordinador y aumentar el trafico de peticiones en el sistema.
5.2. Trabajo Futuro 80
Desarrollar vehıculos autonomos a partir de componentes inteligentes que permitan
desarrollar tareas con mayor grado de complejidad y en ambientes dinamicos. Tambien
la implementacion de componentes inteligentes adaptables al entorno y a la configura-
cion de diversos sistemas roboticos, mediante la incorporacion de algoritmos inteligen-
tes.
Investigar un mecanismo de colaboracion entre los componentes inteligentes aplicando
tecnicas desarrolladas en la implementacion de sistemas multi-agentes, para pasar de
una interaccion coordinada a una interaccion colaborativa.
Fusionar la arquitectura de control propuesta con el sistema operativo de robotica
(ROS), destacando las ventajas de ambas alternativas.
Bibliografıa
[1] P. Agre and D. Chapman. Pengi: An implementation of a theory of activity. In
Sixth National Conference of the American Association for Artificial Intelligence
Conference, pages 268–272, 1987.
[2] James Sacra Albus and Alexander M Meystel. Engineering of mind : an introduc-
tion to the science of intelligent systems. Wiley, 2001.
[3] R.C. Arkin. Towards the unification of navigational planning and reactive control.
In American Association for Artificial Intelligence Spring Symposium on Robot
Navigation, pages 1–5, 1989.
[4] B.M. Innocenti Badano. A Multi-Agent Architecture With Distributed Coordina-
tion for an Autonomous Robot. PhD thesis, Universitat de Girona, Spain, 2009.
[5] J. Borenstein, H.R. Everett, L. Feng, and D. Wehe. Mobile robot positioning
and sensors and techniques. Journal of Robotic Systems, Special Issue on Mobile
Robots, 14(4):231–249, April 1997.
[6] R. A. Brooks and J.H. Connell. Asynchronous distributed control system for a
mobile robot. In SPIE Proceedings, volume 0727, pages 77–84, Cambridge, MA,
USA, 1986.
[7] J Connell. A hybrid architecture applied to robot navigation. In International
Conference on Robotics and Automation, pages 2719–2724, Nice, France, 1992.
81
BIBLIOGRAFIA 82
[8] H. Durrant-Whyte. A critical review of the state-of-the-art in autonomous land
vehicle systems and technology. Technical Report SAND2001-3685, Sandia Natio-
nal Laboratories, New Mexico, USA, 2001.
[9] H.R. Everett. Sensors for Mobile Robots : Theory and Application. A.K. Peters,
Wellesley, MA, 1995.
[10] S. Farritor and S. Dubowsky. On modular design of field robotic systems. Auto-
nomous Robots, 10(1):57–65, January 2001.
[11] R. Chatila G. Giralt and M. Vaisset. An integrated navigation and motion con-
trol system for autonomous multisensory mobile robots. In First International
Symposium on Robotics Research, pages 191–214, 1983.
[12] D.W. Gage. Unmanned ground vehicle (ugv) development efforts. Special Issue
on Unmanned Ground Vehicles, Unmanned Systems Magazine, 1995.
[13] M.P Georgeoff and A.L. Lansky. Reasoning and planning in dynamic domains: An
experiment with a mobile robot. In Sixth National Conference of the American
Association for Artificial Intelligence Conference, pages 677–687, 1987.
[14] 802.11b IEEE. Wireless medium access control (mac) and physical layer (phy)
specifications: Higher-speed physical layer extension in the 2.4 ghz band, 1999.
IEEE Standard 802.11b The Institute of Electrical and Electronics Engineers Inc.
[15] 802.15.1 IEEE. Wireless medium access control (mac) and physical layer (phy)
specifications for wireless personal area networks (wpans), 2002. IEEE Standard
802.15.1. The Institute of Electrical and Electronics Engineers Inc.
[16] 802.15.4 IEEE. Wireless medium access control (mac) and physical layer (phy)
specifications for low-rate wireless personal area networks (lr-wpans)), 2003. IEEE
Standard 802.15.4. The Institute of Electrical and Electronics Engineers Inc.
BIBLIOGRAFIA 83
[17] TL Prez IJ Cox, GT Wilfong. Autonomous robot vehicles. Lavoisier, 1990.
[18] R. J.Firby. An investigation into reactive planning in complex domains. In Procee-
dings of the National Conference on Artificial Intelligence (AAAI), page 202207,
1987.
[19] Charles D. Knutson and Jeffrey M. Brown. IrDA Principles and Protocols, volume
Volumen 1 de The IrDA Library. MCL Press, 2004.
[20] J. E. Laird and P. S. Rosenbloom. An investigation into reactive planning in
complex domains. In Ninth National Conference of the American Association for
Artificial Intelligence Conference, pages 1022–1029, Boston, Massachusetts, USA,
1990.
[21] P.C. Leger and J. Bares. Automated synthesis and optimization of robot configu-
rations. In Proceedings of the 1998 ASME Design Engineering Technical Confe-
rences, 1998.
[22] B. Gerkey M. Quigley. Ros: an open-source robot operating system. In ICRA
Workshop on Open Source Software, Kobe, Japan, 2009.
[23] A.L. Meyrowitz, D.R. Blidberg, and R.C. Michelson. Autonomous vehicles. In
IEEE, volume 84, pages 1147–1164, August 1996.
[24] H. Moravec and A. Elfes. High resolution maps from wide angle sonar. IEEE
International Conference on Robotics and Automation, 2:116–121, Mar 1985.
[25] D.W. Payton. Internalized plans: A representation for action resources. Designing
Autonomous Agents, pages 89–103, 1990.
[26] Woong Yang Kwang Roh Se-go. A modularized personal robot drpi: Desing and
implementation. IEEE Transactions Robotics, 25(2):414–425, April 2009.
BIBLIOGRAFIA 84
[27] Bruno Siciliano and Oussama Khatib. Springer Handbook of Robotics. Springer,
2008.
[28] A. Stroupe, S. Singh, R. Simmons, T. Smith, P. Tompkins, V. Verma, R. Vitti-
Lyons, and M.D. Wagner. Technology for autonomous space systems. Technical
Report CMU-RI-TR-00-02, 2001.
[29] D. Tesar. A generalized architecture for robot structures. ASME Transaction on
Manufacturing Review, 2(2):91–118, June 1989.
[30] M. Yim, Y. Zhang, and D. Duff. Modular robots. IEEE Spectrum, 39(2):30–34,
Febraury 2002.
Anexo A
Especificaciones para Desarrollar
un Componente Inteligente
A.1. Componente Inteligente
Un CI consta de tres unidades funcionales: Enlace, Procesamiento y Actuador/Sensor:
Unidadde
Procesamiento
Unidadde
Enlace
Actuador/Sensor
Figura A.1: Componente Inteligente conformado por las unidades funcionales deenlace, procesamiento y actuador/sensor.
Actuador/Sensor. Puede utilizarse el actuador o sensor que se adapte a la funcion que
85
A.2. Registro de Componentes Inteligentes 86
se desea satisfacer. El CI debe incluir las conexiones necesarias tanto de alimentacion
como de comunicacion para el funcionamiento del sensor/actuador.
Procesamiento. Puede utilizarse cualquier modo de procesamiento, desde un microcon-
trolador, una computadora hasta un arreglo de computadoras.
Enlace. Se implementa con el protocolo ZigBee, a traves de dispositivos XBee. Se deben
configurar estos radio modems para que todos funcionen en el mismo canal de operacion
y configurar el parametro Destination Address a la direccion del XBee utilizado como
coordinador. El dispositivo XBee opera a 3.3 V, utiliza RS 232 a un nivel de 3.3 V con
una velocidad de 9600 bps, 8 bits de datos, sin paridad y un bit de parada.
Para desarrollar componentes inteligentes compatibles con esta arquitectura de control
distribuida se deben seguir una serie de especificaciones mınimas para una correcta
operacion. Sin importar la funcion que realice el CI, para interactuar con el resto del
sistema robotico requiere cumplir dos aspectos de comunicacion:
Registro del CI ante el CI-Coordinador.
Envıo/Recepcion de peticiones.
A.2. Registro de Componentes Inteligentes
El protocolo para el registro de CIs implica el envıo hacia el CI-Coordinador de un
paquete de datos con la siguiente estructura:
Tabla A.1: Paquete requerido para el registro de CIs.
Direccion Direccion Peticiones Peticiones Prioridad de Nombrede 64 bits de 16 bits a atender a solicitar peticiones a del CI
solicitar
8 bytes 4 bytes 10 bytes 10 bytes 10 bytes 20 bytes
A.2. Registro de Componentes Inteligentes 87
Tabla A.2: Protocolo de 5 bytes para la transferencia de peticiones entre CIs.
Byte 1 Byte 2 Byte 3 Byte 4 Byte 5
Peticion Parametro Prioridad Identificador Terminador
Ejemplo:
407101AC Los 8 dıgitos menos significativos de la direccion de 64 bits.
01C7 La direccion de 16 bits del XBee.
255 255 255 255 255 255 255 255 255 255 Peticiones a atender.
00 01 02 255 255 255 255 255 255 255 255 Peticiones a solicitar.
75 75 75 0 0 0 0 0 0 0 Prioridad de las peticiones a solicitar.
En total se envıan 62 bytes. Las direcciones del XBee son en caracteres ASCII. El 255
en la lista de peticiones representa que no existe peticion en ese caso.
Despues de enviar el paquete al CI-Coordinador, se recibira un byte con el identificador
que le fue asignado al CI al registrarse, debe guardarse para adjuntar en el envıo de
peticiones.
La interaccion entre CIs es con base en peticiones, que deben seguir la siguiente es-
tructura:
Ejemplo:
01 Peticion a solicitar (Girar Izquierda).
80 Girar al 80% de capacidad.
60 Prioridad de la peticion.
04 Identificador del componente.
A.3. Diseno Base para Componente Inteligente 88
255 Terminador de paquete.
Las peticiones que pueden utilizarse son:
Tabla A.3: Peticiones definidas para un vehıculo autonomo. NA (No Aplica)
Peticion Descripcion Parametro
0 Centrar Direccion NA1 Girar Izquierda Porcentaje de giro (1-100%)2 Girar Derecha Porcentaje de giro (1-100%)3 Detener Motores NA4 Avanzar Vehıculo Porcentaje de potencia (1-100%)5 Reroceder Vehıculo Porcentaje de potencia (1-100%)6 Incrementar Velocidad NA7 Decrementar Velocidad NA8 Girar Camara a la Izquierda NA9 Girar Camara a la Derecha NA10 Girar Camara hacia Arriba NA11 Girar Camara hacia Abajo NA12 Orientar Orientacion deseada (0-359◦)13 Recorrer Distancia a recorrer (1-65535 cm)14 Reporta Orientacion Orientacion actual (0-359◦)15 Reporta Reccorrido Distancia recorrida (1-65535 cm)16 Nueva peticion Nuevo parametro
Si se siguen estas especificaciones se lograra una comunicacion con cualquier sistemas
robotico que implemente esta arquitectura de control.
A.3. Diseno Base para Componente Inteligente
Es posible utilizar el microcontrolador mas accesible o preferido por el usuario desa-
rrollador, con las conexiones necesarias para comunicarse con el dispositivo XBee y el
sensor o actuador requerido. Se muestra un ejemplo de diseno base con el microcon-
trolador PIC24FJ64GB004 para desarrollar CIs:
La funcion que realiza el CI puede resolverse con los sensores o actuadores que se
A.3. Diseno Base para Componente Inteligente 89
XBee
ComponenteBase
Fuente externade 5 V
Entradas/Salidasdigitales
RS-232
Entradasanalógicas
I2C
SPI
PIC24FJ64GB004
RTCC
Adaptaciónde señales
(PULL-Ups/
Divisoresde voltaje)
3.3 V / 5 V
Regulador2.5 V
Regulador3.3 V
Figura A.2: Ejemplo de tarjeta para desarrollar Componentes Inteligentes.
desee, ası como con el procesamiento y hardware deseado, solo es requerido seguir las
especificaciones definidas en este trabajo para lograr una interaccion.
Anexo B
Costo de los Prototipos
En las tablas B.1, B.2, B.3 y B.4 se presentan los costos estimados para diferentes
equipos desarrollados.
Tabla B.1: Inversion en las partes utilizadas en la Plataforma Ackermann
Parte Precio (USD)
Plataforma 500CI-Traccion 60CI-Direccion 60CI-Odometro 60
Total 680
Tabla B.2: Inversion en las partes utilizadas en la Plataforma Diferencial
Parte Precio (USD)
Plataforma 250CI-Rueda Izquierda 60CI-Rueda Derecha 60CI-Odometro 70
Total 440
90
91
Tabla B.3: Inversion en los Componentes Inteligentes Comunes
Parte Precio (USD)
CI-Coordinador 60CI-Comunicacion 300CI-Seguidor de Pared 90CI-Evasor 90CI-Compas 80CI-Camara 200
Total 820
Tabla B.4: Inversion en Baterıas
Parte Precio (USD)
Polımeros de litio de 11.1 V, 4400 mAh 100Polımeros de litio de 11.1 V, 5000 mAh 120
Total 220
Se estima un total de 2160 USD en partes utilizadas para la implementacion de este
trabajo. Los sensores, microcontroladores y demas equipo pueden ser elegidos a con-
veniencia del desarrollador con base tanto en la precision de los resultados deseados
como en la tarea que se desea realizar.
Vita
Juan Francisco Villa Medina es ingeniero en sistemas computacionales por
parte del Instituto Tecnologico de La Paz, grado obtenido con mencion ho-
norıfica en 2008. El Ing. Villa Medina trabaja en el Grupo Ingenierıa del
Centro de Investigaciones Biologicas del Noroeste, S.C. (CIBNOR) desde
el ano 2008. Su trabajo incluye el desarrollo e implementacin de sistemas
roboticos para la automatizacion de diversos procesos involucrados en mul-
tiples aplicaciones. Es profesor de asignatura en la Universidad Autonoma
de Baja California Sur (UABCS), donde imparte materias sobre Sistemas
Digitales, Interfaces y Equipos. Es cofundador de 7robot, donde es instruc-
tor de talleres de robotica educativa.
Mailing address:
Instituto Politecnico Nacional No. 195
Col. Playa Palo de Santa Rita sur
La Paz, BCS 23096
Mexico
Email address: