You are on page 1of 110

INSTITUTO TECNOLGICO DE LA PAZ

DIVISIN DE ESTUDIOS DE POSGRADO E INVESTIGACIN


MAESTRA EN SISTEMAS COMPUTACIONALES

CONTROL DISTRIBUIDO PARA VEHCULOS AUTNOMOS BASADO


EN COMPONENTES INTELIGENTES

TESIS

QUE PARA OBTENER EL GRADO DE


MAESTRO EN SISTEMAS COMPUTACIONALES

PRESENTA:
JUAN FRANCISCO VILLA MEDINA

DIRECTOR DE TESIS DIRECTOR DE TESIS


DR. JOAQUN GUTIRREZ JAGEY DR. SAL MARTNEZ DAZ

MIEMBROS DEL JURADO:

DR. JOAQUN GUTIRREZ, ITESM DR. SAL MARTNEZ, CICESE


PRESIDENTE SECRETARIO

DR. JESS ALBERTO SANDOVAL, UABC DR. ALEJANDRO ISRAEL BARRANCO, CICATA
VOCAL VOCAL SUPLENTE

LA PAZ, BAJA CALIFORNIA SUR, MXICO, FEBRERO 2013.


SEP
--- - - -
Subsecretara de Educacin Superior
Direccin General de Educacin Superior Tccnolgica
Instituto Tecnolgico de La paz
SrCRrTARl A D [
lD UC AC IO N PUBLICA

La Paz, RC.S. , @rmN;;Y"'''1


OFICIO No. DEPI/023/20I3

C. JUAN FRANCISCO VILLA MEDINA,


ESTUDIANTE DE LA MAESTRA EN
SIST EMAS COMPUTACIONALES,
PRESENTE.

Con base en el dictamen de aprobacin emitido por el Com it Tutorial de la Tesis denom inada: "C ONT RO L DISTRIB UIDO
PARA VEHCULOS AUTNOMOS BASADO EN COMPON ENTES INTELIGENTES". mediant e la opcin de tesis (Proyectos
de Investigacin) , entregado por usted para su anlisis, le informa mos que se AUTORIZA la impresin.

ATENTAM EN T E
"Ciencia es Verdad, Tcnica es Libertad"

::~ -~'~
~" 1 ABL PEREZ AL"VAREZ,
JEFE DE LA DIV. DE EST. DE POSGRADO E INV.
iNllTmITO TECNlX.OOIO:l ce LA I\U
DMSlClN DE EST\JOOJS CEPOSGAADl)
E tW'";:S1'lCl,\CDj

C.p. Coordinacin de Maestra.


Cp . Departame nto de Serv icios Escolares.

PPNyptm

Bculevard Forjadores de 8.CS. #4720. Col. 8 de ocr. lera. Seccin CP. 2~08(l
La Paz. 8.C.S. Conmutador (612) 121- 04-24 , Fax: (6 12) 121- 12-95
www.itlp.edu.mx
~~
Direccin General deEducacin Superior Tecnolgica
Instituto Tecnolgico de La Paz
~ frr,rT\IL' O[ Inst it utos Te cno lg icos
ll' (JUc.r:-< I"('BUU.

AUTORIZACIN DE IMPRESIN DE TESIS

SUBDIRECCIN ACADMICA
DIVISIN DE ESTUDIOS DE POSGRADO E INVESTIGACIN.

La Paz, 8.C.S., a 31 de enero de 2013.

C. M.C. PABLO PREZ LVAREZ,


JEFE DE LA DIVISIN DE ESTUDIOS DE
POSGRADO E INVESTIGACIN,
P RE S ENTE.

Por medio del presente, informamos a usted que se autoriza la impresin del siguiente trabajo de
tesis:

No. de Control Nombre


M10310004 Juan Francisco Villa Medina
Maestra en: Sistemas Comoutacionales
Ttulo de la tesis:
Control Distribuido para Vehculos Autnomos Basado en Comoonentes Intelioentes
DICTAMEN:
Se autoriza el trabajo de investigacin, en virtud de que realiz las correcciones
corresoondientes conforme a las observaciones planteadas por este Comit Tutoria!.

Atentamente.
"Ciencia es verdad, Tcnica es Libertad"

El Comit Tutorial

Dr. Alejandro Isra

c.c.p, Coordinacin de la Maestra en Sistemas Computacionales.


c.c.p, Departamento de Servicios Escolares.
c.c.p. Estudiante..

ITLP-DEPI-RTT-10 Rev.O
Juan
c 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.
Joaqun 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. Sa
ul Martnez 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 u
ltimos a
nos 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 con-


guracion de vehculos 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 caractersticas del sensor o actuador, as como las especicaciones de


operacion.
Se conguran dos vehculos autonomos para realizar tareas de navegacion autonoma
con el desarrollo fsico de los componentes inteligentes. Las tareas de seguimiento de

pared y una trayectoria permiten evaluar el desempe


no 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 asncrona basada en peticiones
(comandos abstractos) permite una interaccion conable 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 conguration, which integrates a heterogeneous set of intelligent components. Each


intelligent component performs a specic 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 specications of its operation.
Two autonomous vehicles were congured 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. Introducci
on 1
1.1. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. Propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.2. Objetivos Especcos . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4. Descripcion del Documento . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Dise
no: 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 Especcos . . . . . . . . . . . . . . . . . . . 24
3.3.1. Vehculo 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. Vehculo 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 Energa . . . . . . . . . . . . . . . . . . . . . . 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. Vehculos Autonomos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4. Implementaci
on: 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. Traco de Peticiones . . . . . . . . . . . . . . . . . . . . . . . . 73

5. Conclusiones 78
5.1. Contribuciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.2. Trabajo Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

Bibliografa 81

A. Especificaciones para Desarrollar un Componente Inteligente 85


A.1. Componente Inteligente . . . . . . . . . . . . . . . . . . . . . . . . . . 85

A.2. Registro de Componentes Inteligentes . . . . . . . . . . . . . . . . . . . 86


A.3. Dise
no 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. Conguracion de un Sistema Robotico . . . . . . . . . . . . . . . . . . 11
2.4. Topologa 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. Geometra 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. Geometra 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 Graca de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.36. Comportamiento del Componente Inteligente Camara . . . . . . . . . . 54

3.37. Componente Inteligente Camara . . . . . . . . . . . . . . . . . . . . . . 55


3.38. Vehculo Autonomo Ackermann . . . . . . . . . . . . . . . . . . . . . . 56
INDICE DE FIGURAS XIV

3.39. Vehculo 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 Reenvo 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 Vehculo Ackermann . . . . . . . . . . . . . 64
4.4. Consumo de Corriente del Vehculo 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 Bateras . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

XVI
Captulo 1

Introducci
on

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 especco. 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 b
usqueda y rescate en
siniestros, o bien, la prestacion de servicios en hogares y ocinas. Asimismo, la roboti-
ca que se dene como la ciencia que dise
na, construye, opera e implementa robots,

esta en constante desarrollo e investigacion para satisfacer los retos tecnologicos de


nuevas aplicaciones [27]. Dentro de la clasicacion de robots moviles se encuentran los
vehculos autonomos, vehculos capaces de realizar movimientos inteligentes y actuar
sin requerir una gua o control teleoperado [17].

Un robot realiza su tarea asignada a traves de una arquitectura de control apropiada,


la cual es representada mediante una conguracion que describe la relacion entre los
componentes funcionales (como locomocion, planeacion, navegacion, posicionamiento
y comunicacion) y los componentes mecatronicos (como actuadores/sensores). La con-

guracion es una estructura de diferentes subsistemas, conectados por interfaces fsicas


(hardware) y logicas (software), los cuales desarrollan una funcion especca que es

1
2

implementada por los componentes seleccionados.


Diversos trabajos en la sntesis de sistemas roboticos han sido investigados para denir

la conguracion de un manipulador o de un robot movil. Por ejemplo, la conguracion


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 congurar 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 energa, para seleccionar la conguracion de un
robot mediante el uso de tecnicas de b
usqueda [21] [10].

Por otro lado, diferentes estrategias de control han sido utilizadas para la implementa-
cion de robots, tres clasicaciones pueden denirse: arquitecturas reactivas, delibera-
tivas e hbridas. 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 dise
no 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 hbridas son las que toman ventaja de ambas propuestas reactivas-
deliberativas, al emplear la caracterstica 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 especca en la conguracion de robots persona-

les, e incluyen software y hardware que podran acelerar la construccion de un robot


[26]. Por otra parte, tambien se han desarrollados arquitecturas que consideran cada
modulo como un agente para la conguracion 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 tecnologa y componentes


necesarios para el desarrollo de sistemas roboticos, como los vehculos 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 conguracion de robots los componentes


fsicos, como actuadores y sensores con sus caractersticas y especicaciones, son poco
tomados en cuenta en el proceso de dise
no y construccion del sistema robotico.

1.1. Hip
otesis

Se considera que es factible implementar un vehculo autonomo al integrar un conjunto

heterogeneo de componentes inteligentes, distribuidos y asncronos, 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 especca, considerando sus caractersticas y especicaciones. 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 asncrona
de mensajes y datos.

Inteligencia puede denirse 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 estmulos de su entorno, mediante su algoritmo programa-

do para la toma de decisiones y acciones con el objetivo de llevar acabo su funcion


especca.
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 vehculo, tiene que medir las condiciones del ambiente de operacion mediante

alg
un 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 especicaciones de la tarea asignada. Se busca una con-
guracion 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 conguracion distribuida
constituida por una red de comportamientos e implementados por los componentes

inteligentes. La losofa 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 vehculos 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 exibles


permiten ser reutilizados para la conguracion 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 vehculos autonomos, que es conable y robusta.


1.3. Objetivos 6

1.3. Objetivos

1.3.1. Objetivo General

Dise
nar e implementar una arquitectura de control distribuida para vehculos autono-
mos basada en componentes inteligentes. Cada componente inteligente en la congu-
racion de un vehculo 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 Especficos

Dise
nar los componentes inteligentes para implementar la estrategia de control.

Dise
nar la logica de comunicacion y coordinacion para el control distribuido pro-
puesto.

Dise
nar y desarrollar el conjunto de componentes inteligentes para la congura-
cion de un vehculo autonomo.

Implementar la arquitectura de control en un vehculo autonomo.

Evaluar el desempe
no de la arquitectura de control.

1.4. Descripci
on del Documento

En el captulo dos se presenta la descripcion teorica de la arquitectura de control, se


muestra el dise
no de los componentes inteligentes, el protocolo de comunicacion para
la transferencia de mensajes y datos.
El captulo 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

vehculos 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 captulo 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 captulo 5.
Captulo 2

Dise
no: Arquitectura de Control

En este captulo se presenta la logica de operacion de la arquitectura de control basada


en componentes inteligentes distribuidos para congurar sistemas roboticos. Se presenta

la denicion 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 especca, mediante el procesa-

miento de informacion y el control de sus acciones programadas, convirtiendose en un


componente autonomo en la conguracion 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

Unidad
de
Enlace

Unidad
de
Procesamiento

Actuador/Sensor

Figura 2.1: Componente Inteligente conformado por las unidades funcionales de


enlace, 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 fsicos como sus especica-

ciones y caractersticas. 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 fsico que incluye los elementos fsicos (hard-
ware) y logicos (software) de cada una de las unidades, e incluso los elementos de
energa 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 enva al resto de


los CIs del sistema robotico. Las peticiones son recibidas u
nicamente por los CIs que
pueden satisfacer dichas peticiones. Cada peticion es decodica en el CI correspondien-
te y atendida con la ejecucion de las acciones pertinentes. Un CI desconoce al resto

de los CIs que conguran al sistema, dado que cada CI se encargan de una funcion
especca 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 hbri-
dos (Fig. 2.2c), los cuales transmiten y reciben peticiones, que cuentan con sensores y

actuadores.

Unidad
Unidad Unidad de
de de Enlace
Enlace Enlace Recibe/Enva
Enva peticiones Recibe peticiones peticiones

Procesamiento
Procesamiento Procesamiento Interpreta peticiones /
Medicin de sensores / Interpreta peticiones / Medicin de sensores /
Toma de decisiones Ejecuta acciones Toma de decisiones

Sensor Actuador Sensor/Actuador

(a) CI que enva peticiones (b) CI que atiende peticiones (c) CI hbrido

Figura 2.2: Tipos de Componentes Inteligentes.


2.1. Componente Inteligente 11

La conguracion de un sistema robotico es un conjunto de CIs distribuidos encargados


de funciones especcas, que son seleccionados a partir de los requerimientos de la

tarea a realizar y del ambiente de operacion. En una conguracion 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;

E E

P P

E A S/A E

P P

A E S

E Coordinador E

P P

A S
E E

P P

S/A S

Figura 2.3: Configuracion general de un vehculo aut


onomo con CIs distribuidos. El
sentido de las flechas indica el flujo de peticiones.
2.2. Comunicacion 12

Figura 2.4: Topologa de red ZigBee.

ya que un componente inteligente encapsula las caractersticas del sensor o actuador y

funciona siempre de la misma forma en cualquier conguracion 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 conguracion de un grupo de componentes inteligentes (recursos)

que desarrollan de manera autonoma determinadas funciones.

2.2. Comunicaci
on

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

Avanzar Avanzar
Componente Componente
Traccin Seguidor
Incrementar
Velocidad

Componente
Coordinador
Evasor
Izquierda

Componente
Componente
Odmetro
Direccin Incrementar
Izquierda Velocidad

Figura 2.5: Las peticiones son enviadas al CI-Coordinador y


este las distribuye al CI
correspondiente.

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 lnea de vista directa.

Un dispositivo ZigBee tiene dos direcciones, su direccion u


nica de 64 bits que lo distin-
gue de cualquier otro dispositivo en el mundo y una direccion de 16 bits que lo identica
dentro de la red donde este conectado. Se tienen principalmente tres funciones que pue-
den cumplir los ZigBee: Coordinador, ruteador o dispositivo nal. 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-nales y el coordinador. Los dispositivos-nales solo
pueden comunicarse con su nodo padre, ya sea un ruteador o coordinador.
La topologa 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 Identicador Terminador

existe un CI-Coordinador con la funcion de distribuir las peticiones. Toda peticion


se enva 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
identicador numerico, as como un nombre, para diferenciarse del resto de los CIs

dentro del sistema robotico.

2.3. Operaci
on

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 n
umero de 8 bits que la identica, 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 identicador es el ndice registrado

por el CI-Coordinador y que distingue al CI que solicita la peticion y el u


ltimo 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 vehculo aut


onomo. 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 Vehculo Porcentaje de potencia (1-100 %)

5 Reroceder Vehculo 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)

identicador del CI solicitante y el 255 es el terminador.


Cuando un CI requiere que se realice una accion en particular, enva 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: Petici


on para girar a la derecha.

Peticion Parametro Prioridad Identicador 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 identicador numerico u
nico. 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
denio el n
umero de peticiones maximas a atender para cada CI en 10, lo que resulta
suciente para el desempe
no apropiado del sistema.

El registro de CIs presenta exibilidad en el sistema robotico, lo cual permite agregar o


retirar CIs sin necesidad de modicar la programacion en cualquier parte del sistema.

Tabla 2.4: Paquete requerido para el registro de CIs.

Direccion Direccion Peticiones Peticiones Prioridad de Nombre


de 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 denido para esta arquitectura el CI-Coordinador se mantiene


a la escucha de solicitudes de registro o envo 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

No
Registra
Es comando?
componente

Si

Revisar lista de
componentes

No
Atiende este
comando?

Si

Enviar comando

Figura 2.6: Comportamiento del CI-Coordinador.


2.3. Operacion 18

una ventaja pero puede haber conictos 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 Elecci


on

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

Identificador de
Comando Porcentaje Prioridad
Componente

Si

Prioridad > Prioridad


Atiende Solicitud 1
Anterior?

No

Si

(Prioridad == Prioridad Anterior) y (Id


Atiende Solicitud 1
Componente == Componente Anterior)?

No

Figura 2.7: Elecci


on por prioridades.
2.3. Operacion 19

Cada CI guarda de la u
ltima peticion atendida, la prioridad y el identicador del
componente que la solicito. Se comparan entonces las prioridades entre la u
ltima 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 antig
uedad (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 dise


nados es posible integrarlos a una plataforma para desarrollar una
tarea especca.

CI-3 CI-Coordinador CI-1


Distribuye Recibe la
la peticin
6 4 peticin
Recibe la peticin 7 Unidad Unidad Unidad
de de de 3 Enva la peticin
Enlace Enlace Enlace
Peticin-1 Peticin-1

Interpreta la
peticin y
aplica el
Unidad de Unidad de Unidad de Percibe el entorno y
mecanismo 8 Procesamiento Procesamiento
5 2 Genera la peticin
Procesamiento
de seleccin
basado en Consulta
prioridades lista de CIs

Realiza la
accin
9 Actuador Coordinador Sensor 1 Medicin

Figura 2.8: Flujo de una petici


on a trav
es de la red de CIs, desde que se genera hasta
que es atendida.
Captulo 3

Desarrollo: Arquitectura de Control

La denicion de la arquitectura de control basada en componentes inteligentes permite


congurar sistemas roboticos. La conguracion de un sistema robotico parte de las

especicaciones de la tarea a realizar as como de los requerimientos del ambiente donde


operara. En este captulo se presenta la conguracion de dos vehculos autonomos para
realizar dos tareas asignadas con el desarrollo fsico 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 especica 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 vehculos

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 mayora 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 tecnologa


nanoWatt con caractersticas especiales como USB 2.0, oscilador interno, 5 temporiza-
dores, soporte para modulacion por ancho de pulso, 2 puertos fsicos de comunicacion
serial asncrona, 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


lneas 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 de
Enlace
XBee

Tx Rx

Energa Unidad de
Procesamiento
Microcontrolador

Actuador/Sensor

Figura 3.1: Conexi


on 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 asncrona 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 se
nal 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 gen


erica utilizada en la implementaci
on de componentes inteli-
gentes.

Figura 3.3: CI-Coordinador, solo requiere la alimentaci


on.

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 traco de informacion. Tambien

se implementa el control de ujo para la recepcion de datos, se utiliza una lnea de


solicitud de envo (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 Especficos 24

Figura 3.4: Plataforma m


ovil TAMIYA modelo TXT-1.

El CI-Coordinador implementa el modo de comunicacion API en el XBee, por lo cual

se requiere generar paquetes bien denidos de informacion para el envo de datos.


Comparado con el modo transparente AT, el modo API aumenta la conabilidad en la
transmision de peticiones.

3.3. Componentes Inteligentes Especficos

Se conguraron dos vehculos autonomos basados en la arquitectura de control distri-

buida con CIs. Se dise


naron y desarrollaron los CIs especcos para ser utilizados en
un vehculo con cinematica Ackermann y otro vehculo con cinematica diferencial.

3.3.1. Vehculo 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 Especficos 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 vehculo 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 nal 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 u
nicamente el sistema de direccion del eje posterior; por lo

tanto el vehculo 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 vehculo.
El vehculo puede desplazarse a cualquier punto (x, y) en el plano (X, Y ). El angulo
es la orientacion del vehculo con respecto al eje X y V representa la velocidad lineal.

El angulo se dene como el angulo de giro del vehculo y L es la distancia entre ejes
(Fig. 3.5). El modelo cinematico del vehculo se deriva de la propiedad de un cuerpo
rgido y esta dado como:

x(t)
= V (t) cos((t))

y(t)
= V (t) sin((t))

= V (t) tan((t))
(t) (3.1)
L

Por lo tanto, la velocidad y la direccion del vehculo Ackermann deben ser atendidas
por un CI-Traccion y un CI-Direccion, respectivamente.
3.3. Componentes Inteligentes Especficos 26

(x, y)

ovil Ackermann.
Figura 3.5: Geometra de la plataforma m

3.3.2. Componente Inteligente Tracci


on

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 se
nales 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 Especficos 27

Unidad
de
Enlace

Unidad de
Procesamiento
PIC24FJ64GB004

Optoacopladores

Bateras A B C D
para Controlador
motores de Motores
traccin
SAL1 SAL2 SAL3 SAL4

Motor1 Motor2
Actuador
Figura 3.6: Conexi
on general del CI-Tracci
on, Controlador de motores y Motores de
tracci
on.

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 vehculo, el CI-
Traccion modica 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 gura 3.8.

3.3.3. Componente Inteligente Direcci


on

El CI-Direccion atiende las peticiones de Girar Izquierda, Girar Derecha y Centrar


Direccion. Maneja la direccion del vehculo autonomo e integrar el hardware requerido
3.3. Componentes Inteligentes Especficos 28

Inicio

En espera de peticiones

Si
Avanzar? Avanzar Motor 1

No

Si
Retroceder? Retroceder Motor 1

No

Si
Detener? Detener Motor 1

No

Si
Incrementar Aumentar
1
Velocidad? Velocidad Actual

No

Si
Decrementar Disminuir
1
Velocidad? Velocidad Actual

No

Figura 3.7: Comportamiento del CI-Tracci


on.

para el movimiento del sistema de direccion a traves de un servomotor o actuador. Las


peticiones Girar Izquierda o Derecha establecen la direccion seg
un el parametro adjunto
a la peticion. La peticion Centrar Direccion establece al actuador en su posicion central
3.3. Componentes Inteligentes Especficos 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 se
nal 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: Implementaci


on del CI-Tracci
on.
3.3. Componentes Inteligentes Especficos 30

Inicio

En espera de peticiones

Si
Girar Actuador a la
1
Izquierda? Izquierda

No

Si
Actuador a la
Girar Derecha? 1
Derecha

No

Si
Centrar? Centrar actuador 1

No

Figura 3.9: Comportamiento del CI-Direcci


on.

3.3.4. ometro Ackermann


Componente Inteligente Od

La medicion tanto de velocidad como de distancia recorrida por el vehculo 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
especique una distancia y a traves del envo 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 Especficos 31

CI-Direccin

Unidad
de
Enlace

Unidad de
Energa Procesamiento
PIC 24FJ64GB004

Servomotor Servomotor

Actuador

Figura 3.10: Conexi


on del CI-Direcci
on.

Figura 3.11: Implementaci


on del CI-Direcci
on.
3.3. Componentes Inteligentes Especficos 32

Inicio

1 2

Espera peticiones Lectura de Codificador ptico

No
Convierte a
1 Recorrer? Distancia

Si

Enviar Comando Actualiza


Avanzar VelocidadActual

Inicializa cuenta
Si
Enviar Comando VelocidadActual <
2
Incrementa Vel VelocidadDeseada

No
Actualiza
DistanciaActual

Si
Enviar Comando VelocidadActual >
2
No Decrementa Vel VelocidadDeseada
DistanciaActual <
DistanciaRecibida ? No

Si

Enviar Comando
Detener

ometro Ackermann.
Figura 3.12: Comportamiento del CI-Od

Decrementa Velocidad. Se compara la velocidad actual con una velocidad denida 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 enva
la peticion Avanzar y se comienza a acumular la distancia recorrida desde ese momento
hasta alcanzar la distancia deseada, y entonces se enva la peticion Detener. El envo 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 Especficos 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. Vehculo 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: Implementaci ometro Ackermann.


on del CI-Od
3.3. Componentes Inteligentes Especficos 34

Figura 3.14: Plataforma m


ovil 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 vehculo 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 conguracion del vehculo implementa
giros con radio de curvatura R sobre su propio eje a lo largo del centro instantaneo de

23cm
25.5 cm

28 cm

Figura 3.15: Dimensiones de la plataforma m


ovil diferencial.
3.3. Componentes Inteligentes Especficos 35

Y


L

R
(x, y)
b R X

Figura 3.16: Geometra de la plataforma m


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

[vr (t) + vl (t)]


x(t)
= cos((t))
2
[vr (t) + vl (t)]
y(t)
= sin((t))
2

= [vr (t) vl (t)]


(t) (3.2)
b

Las velocidades del vehculo diferencial son atendidas por un CI-Rueda Izquierda y
CI-Rueda Derecha, respectivamente.
3.3. Componentes Inteligentes Especficos 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

especicaciones. Para satisfacer las peticiones de Avanzar y Retroceder, los CIs generan
las se
nales correspondientes para controlar el sentido de marcha y la velocidad del
motor. La peticion Detener indica a los CIs generar las se
nales 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 se


nales 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 dieren
u
nicamente 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
vehculo. 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 Especficos 37

Inicio

En espera de peticiones

Si
Avanzar? Avanzar Motor 1

No

Si
Retroceder? Retroceder Motor 1

No

Si
Detener? Detener Motor 1

No

Si Si
Est Girar Disminuir
1
avanzando? Izquierda? velocidad

No No

Si
Si
Girar Aumentar
1 Retroceder Motor Girar Derecha? 1
Izquierda? Velocidad

No No

Si
1 Avanzar Motor Girar Derecha?

No

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 Especficos 38

Inicio

En espera de peticiones

Si
Avanzar? Avanzar Motor 1

No

Si
Retroceder? Retroceder Motor 1

No

Si
Detener? Detener Motor 1

No

Si Si
Est Girar Disminuir
1
avanzando? Izquierda? velocidad

No No

Si
Si
Girar Aumentar
1 Retroceder Motor Girar Derecha? 1
Izquierda? Velocidad

No No

Si
1 Avanzar Motor Girar Derecha?

No

Figura 3.18: Comportamiento del CI-Rueda Derecha.

muestra en la gura 3.19.


Los CIs terminados fueron colocados en la seccion inferior de la plataforma movil. Se

desarrollo un peque
no montaje de aluminio y fueron jados con tornillos al chasis (Fig.
3.20). Su ubicacion protege del exterior a los CIs, forman parte de los componentes
particulares para un vehculo diferencial por lo que son no intercambiables.

3.3.7. Componente Inteligente Od


ometro Diferencial

Estima la distancia recorrida al monitorear el n


umero de vueltas que giran los motores

que dan traccion al vehculo diferencial tipo oruga.


3.3. Componentes Inteligentes Especficos 39

Unidad
de
Enlace

Unidad de
Procesamiento
PIC24FJ64GB004

Optoacoplador

FM TM
VMOTOR

Batera para
motor de MMBe
traccin
M+ M-

Motor
Actuador
Figura 3.19: Conexi
on 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: Implementaci


on de los CIs-Rueda Izquierda y Derecha.

Figura 3.21: Implementaci


on del CI-Od
ometro Diferencial.

3.4. Componentes Inteligentes Comunes

Aquellos componentes que son intercambiables entre sistemas roboticos sin mayor mo-
dicacion que la conexion de energa son los componentes comunes. Principalmente
tienen sensores que con base en su medicion generan y envan las peticiones requeridas
para lograr su funcion.
3.4. Componentes Inteligentes Comunes 41

Figura 3.22: Tarjeta de distribuci


on de energa.

3.4.1. Distribuci
on de Energa

Se desarrollo una tarjeta de distribucion de energa para facilitar la alimentacion de los


CIs que son agregados a un vehculo (Fig. 3.22). Se requiere una de estas tarjetas por
cada vehculo 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 vehculo 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 vehculo 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 vehculo 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 vehculo con direccion hacia el objeto
a seguir, tpicamente una pared. El segundo sensor esta rotado 45 con respecto al

frente del vehculo con direccion al objeto a seguir.

Sensor ultras
onico

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 se
nal con duracion proporcional al tiempo transcurrido entre el pulso ultrasonico
3.4. Componentes Inteligentes Comunes 43

Inicio

Lectura de Sensor 1

Lectura de Sensor 2

Si
Sensor 1 < 75 cm? Girar Izquierda 1

No

Si
Sensor 2 < 50 cm? Girar Izquierda 1

No

Si
Sensor 2 > 50 cm? Girar Derecha 1

No

Centrar Direccin

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


on del CI-Seguidor Pared.

3.4.3. Componente Inteligente Evasor

Este CI se encarga de evitar la colision con obstaculos en la trayectoria del vehculo


robotico. Al utilizar dos sensores ultrasonicos colocados al frente del vehculo 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 denido,

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, diere en el

comportamiento que presenta as como el montaje fsico de dichos sensores ultrasonicos.


3.4. Componentes Inteligentes Comunes 45

Figura 3.26: Tarea de evasi


on de obst
aculos.

Inicio

Lectura de Sensor Izquierda

Lectura de Sensor Derecha

Si
Sensor Izquierda < 50 cm
O Retroceder Centrar Direccin 1
Sensor Derecha < 50 cm?

No

Si Si
Sensor Izquierda < 120 cm
Sensor Izquierda <
O Girar Derecha 1
Sensor Derecha?
Sensor Derecha < 120 cm?

No No

Centrar Direccin Girar Izquierda

1 1

Figura 3.27: Comportamiento del CI-Evasor.


3.4. Componentes Inteligentes Comunes 46

Figura 3.28: Implementaci


on del CI-Evasor.

Cada sensor ultrasonico esta montado a cada lado de una base de acrlico dise
nada para
poder colocarse y removerse con facilidad del vehculo robotico en cuestion (Fig. 3.28).
Este CI se coloca al frente del vehculo 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 Comp


as

Este es un CI de tipo hbrido, brinda al vehculo autonomo la capacidad de orientarse

en una direccion deseada por medio de una br


ujula 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 acompa
nada de la orientacion
correspondiente. Al recibir una orientacion a la cual dirigirse, compara la orientacion
actual del vehculo y enva peticiones de Girar o Centrar Direccion seg
un 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

Inicio

Espera peticiones Lectura de Brjula


Electrnica

No
Enviar Orientacin
Orientar?

Si

1 2

Actualiza
OrientacinActual

Si
Enviar Comando OrientacinActual <
1
Girar Derecha OrientacinDeseada?

No

Si
Enviar Comando OrientacinActual >
1
Girar Izquierda OrientacinDeseada

No

Enviar Comando
Centrar
Direccin

Figura 3.29: Comportamiento del CI-Comp


as.

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 I2 C (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 fsico del CI con su sensor es sobre una base de acrlico con un poste de
plastico para alejarlo de otros elementos metalicos del vehculo que puedan afectar su
funcionamiento (Fig. 3.31).
3.4. Componentes Inteligentes Comunes 48

Unidad
de
Enlace

Unidad de
Procesamiento
PIC24FJ64GB004

SDA SCL

HMC6352

Sensor Comps

Sensor
Figura 3.30: Conexi
on del CI-Comp
as.

Figura 3.31: Implementaci


on del CI-Comp
as.
3.4. Componentes Inteligentes Comunes 49

Computadora
Interfaz Grfica Vehculo Robtico

Componente
Movimientos CI-Comunicacin
Teleoperacin Inteligente
Autnomos
Comunicacin Comunicacin
Inalmbrica Inalmbrica

Componente Componente
Debug Imagen Inteligente Inteligente

Figura 3.32: Estructura del CI-Comunicaci


on.

3.4.5. Componente Inteligente de Comunicaci


on

La interaccion entre un usuario y el vehculo robotico es posible a traves del CI de


Comunicacion. Permite el envo de peticiones as como la recepcion de informacion
sobre el estatus del vehculo autonomo. El CI de Comunicacion esta conformado por

una interfaz graca de usuario (GUI por sus siglas en ingles) as como un enlace de
comunicacion inalambrico de alto alcance. Es un CI del tipo hbrido y es requerido
para complementar ciertos CIs.
La GUI es modular (Fig. 3.32), integra diversas ventanas para comunicarse con el
vehculo robotico. Permite la teleoperacion del sistema robotico as como visualizar la

imagen en tiempo real del CI-Camara. El envo 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 de
Enlace
XBee

Tx Rx

Energa Unidad de
Procesamiento
Microcontrolador Rabbit

Tx Rx

Radio mdem
MaxStream

Figura 3.33: Conexi


on del CI-Comunicaci
on.

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 sncrona, 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 M
odem

El intercambio de informacion entre el vehculo 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: Implementaci


on del CI-Comunicaci
on.

es de hasta 900 m y de hasta 60,000 m en ambientes abiertos con lnea directa de


vista. La tasa de transferencia de datos es congurable, 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 acrlico (Fig. 3.34) y es jado con velcro en las

plataformas moviles.

Interfaz gr
afica

Permite controlar al robot de forma manual as como visualizar su estado y enviar


peticiones para realizar recorridos autonomos al especicar una distancia y direccion.
3.4. Componentes Inteligentes Comunes 52

Figura 3.35: Interfaz gr


afica de usuario.

Independiente de la plataforma que se utilice, esta interfaz funciona de manera modular;

este CI puede ser agregado o retirado del vehculo 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 vehculos autonomos que implementen la arquitectura.

Debug. Muestra y registra el traco de peticiones existentes en el vehculo 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 centmetros y peticiones para mantener una
orientacion dada.
3.5. Vehculos Autonomos 53

Imagen. Muestra la informacion capturada por la camara montada sobre el CI-


Camara en el vehculo robotico. Desde el modulo de teleoperacion es posible

cambiar el angulo de vision.

3.4.6. Componente Inteligente C


amara

Permite visualizar a distancia el exterior de un vehculo 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 graca 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 vehculo 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 acrlico y cuenta

con velcro en la parte inferior para facilitar su colocacion sobre el vehculo autonomo
en cuestion. Un solo cable de 5 V de alimentacion es requerido para su funcionamiento.
3.5. Vehculos Autonomos 54

Inicio

En espera de peticiones

Si
Girar Cam Actuador a la
1
Izquierda? Izquierda

No

Si
Girar Cam Actuador a la
1
Derecha? Derecha

No

Si
Girar Cam Actuador haca
1
Arriba? arriba

No

Si
Girar Cam Actuador haca
1
Abajo? abajo

No

Figura 3.36: Comportamiento del CI-C


amara.

3.5. Vehculos Aut


onomos

Una vez desarrollados los CIs, son colocados sobre cada plataforma movil los CIs par-
ticulares que correspondan, tanto al vehculo con sistema de direccion Ackermann co-

mo al vehculo con cinematica diferencial. En ambas plataformas se requiere un CI-


Coordinador para operar.
3.5. Vehculos Autonomos 55

Figura 3.37: Implementaci


on del CI-C
amara.

Los CIs comunes son intercambiados entre plataformas seg


un 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 energa para este vehculo Ackermann esta dada

por dos bateras de polmero de litio de 11.1 V con capacidad de 5000 mAh cada una.
Los CIs estan energizados por una batera mientras que la segunda batera 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 energa para esta plataforma
diferencial esta dada por una batera de polmero de litio de 11.1 V con capacidad de
4400 mAh.
3.5. Vehculos Autonomos 56

onomo Ackermann basado en CIs.


Figura 3.38: Vehculo aut
3.5. Vehculos Autonomos 57

Figura 3.39: Vehculo aut


onomo diferencial basado en CIs.
Captulo 4

Implementaci
on: Arquitectura de
Control

Se presenta en este captulo 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 desempe
no 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 fsicos como de los elementos logicos, as como para evaluar el desempe
no de
la funcion de cada CI.
CI-Traccion. Diversas rutinas fueron programadas para vericar 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 peque
nos incrementos con el objetivo de encontrar
los lmites operacionales del vehculo Ackermann en ambos sentidos. El servomotor
del eje anterior se programo de forma ja 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-C
amara. 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 peque
nos 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 vehculo
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 vehculo seg
un 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 vehculo. Como parte de las pruebas se modi-

co el montaje fsico 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: Relaci


on de distancias y pulsos, plataforma Diferencial.

Distancia recorrida Pulsos Contados


39.8 cm 50
109.5 cm 150
214 cm 300
317 cm 450
389 cm 550

ultrasonico colocado de forma ortogonal al vehculo 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 perda el seguimiento. Se encontro como


solucion colocar otro sensor ultrasonico orientado a 45 respecto a la pared en la parte
frontal del vehculo. 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 centmetros. 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 centmetros a recorrer.
CI-Comunicacion. Se probo la comunicacion entre la interfaz graca y el vehculo
robotico utilizando el radio modem 9XTend al enviar diferentes peticiones y observar
4.1. Componentes Inteligentes 61

600
Medido
500 y = 1.4*x 7 Estimado

400

300
Pulsos

200

100

100
0 50 100 150 200 250 300 350 400
Distancia (cm)

Figura 4.1: Funci


on de calibraci
on del CI-Od
ometro diferencial.

on de distancias y pulsos, plataforma Ackermann.


Tabla 4.2: Relaci

Distancia recorrida Pulsos Contados


46 cm 100
183 cm 500
268 cm 1000

1200
Medido
1000 y = 2.8*x 22 Estimado

800

600
Pulsos

400

200

200
0 50 100 150 200 250 300 350 400
Distancia (cm)

Figura 4.2: Funci


on de calibraci ometro Ackermann.
on del CI-Od

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
vehculo 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 vericar la correcta recepcion y reenvo de peticiones. Se monitoreo el traco 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 crtica, 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 petici


on y su reenvo por el CI-Coordinador.

El tiempo que transcurre entre la peticion de alg


un 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 gura 4.4 se muestra la actividad
del CI-Odometro que enva 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 envo y atenci


on de peticiones.

Velocidad.

4.1.1. Integraci
on 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 vehculos ante un obstaculo al frente al estar en movimien-
4.2. Experimentos y Resultados 64

Tabla 4.3: Consumo de corriente medido en el vehculo Ackermann.

Componente Inteligente y Motores Consumo electrico (mA)


Odometro 68
Traccion 49
Coordinador 46
Direccion 170
Motores 470

Tabla 4.4: Consumo de corriente en el vehculo diferencial.

Componente Inteligente y Motores Consumo electrico (mA)


Odometro 48
Rueda izquierda 55
Rueda derecha 55
Coordinador 46
Motores 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 El
ectricos

En sistemas energizados con bateras es importante mantener un consumo de corriente


bajo para aumentar la autonoma, 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 desempe


no 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 46
Evasor 76
Comunicacion 152
Seguidor 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 vehculos.

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 dise


no y desarrollo a partir de un microcontrolador PIC16F690 y
un GPS 15L fabricado por Garmin. El microcontrolador obtiene datos del GPS, ltra
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 gracar los recorridos y
4.2. Experimentos y Resultados 66

Equipo transmisor GPS Receptor GPS

XBee
XBee

Interfaz de Registro
Microcontrolador
PIC16F690

GPS 15L

Archivo

(a) Equipo GPS (b) Interfaz de registro


GPS

Figura 4.6: Sistema de registro GPS.

obtener la distancia transitada as como la velocidad de cada vehculo. En cada graca


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 dise
no 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

CI-Direccin CI-Odmetro
CI-Rueda Izquierda CI-Odmetro

E E
E E

P P
P P
E
E
A S/A
A S/A

P P

E E E E
Coordinador Coordinador

P P P P

A S A S

CI-Traccin CI-Seguidor CI-Rueda Derecha CI-Seguidor

(a) Plataforma Ackermann (b) Plataforma Diferencial

Figura 4.7: CIs para el Seguimiento sin obst


aculos.

1.2 m

3.6 m

6m 3.6 m

(a) Escenario rectan- (b) Escenario cuadrado


gular

Figura 4.8: Seguimiento sin obst


aculos.

Al encender cada vehculo, comienza el proceso de registro de CIs ante el CI-Coordinador,


este proceso tiene una duracion aproximada de 30 segundos. El movimiento del vehculo
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

8.212
28.2834
8.21
m

8.208
0.26937
8.206
m/s

8.204

8.202

8.2

8.198

8.196

8.194

8.192
25.58 25.575 25.57 25.

aculos Ackermann.
Figura 4.9: Pruebas de seguimiento sin obst

El CI-Seguidor de Pared fue cambiado a la plataforma diferencial y se realizo el re-


corrido. Al encender el vehculo 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).

8.212
26.3658
8.21
m

8.208
0.21972
8.206
m/s

8.204

8.202

8.2

8.198

8.196

8.194

8.192
25.58 25.575 25.57 25.

Figura 4.10: Pruebas de seguimiento sin obst


aculos 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 gura 4.11 se


muestra uno de los recorridos de cada plataforma.

8.212 8.212
27.0935 26.4855
8.21 8.21
m m
8.208 8.208
0.22208 0.25714
8.206 8.206
m/s m/s
8.204 8.204

8.202 8.202

8.2 8.2

8.198 8.198

8.196 8.196

8.194 8.194

8.192 8.192
25.58 25.575 25.57 25. 25.58 25.575 25.57 25.

(a) Plataforma Diferencial (b) Plataforma Ackermann

Figura 4.11: Pruebas de seguimiento sin obst


aculos circuito cuadrado.

4.2.3. Trayectorias Aut


onomas

Se realizaron trayectorias autonomas donde se especica una distancia a recorrer con

cierta orientacion. Se enva por parte del usuario desde el CI-Comunicacion la orienta-
cion en grados (0 359) y la distancia en centmetros 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

CI-Direccin CI-Odmetro
CI-Rueda Izquierda CI-Odmetro
E E
E E

P P
P P
E
E
A S/A
A S

P P

E E E E
Coordinador Coordinador

P P P P

A S A S

CI-Traccin CI-Comps CI-Rueda Derecha CI-Comps

(a) Plataforma Ackermann (b) Plataforma Diferencial

Figura 4.12: CIs para trayectorias sin obst


aculos.

8.212 8.212
14.0236 14.1758
8.21 8.21
m m

8.208 8.208
0.2226 0.22864
8.206 8.206
m/s m/s

8.204 8.204

8.202 8.202

8.2 8.2

8.198 8.198

8.196 8.196

8.194 8.194

8.192 8.192
25.58 25.575 25.57 25. 25.58 25.575 25.57 25.

(a) Plataforma Diferencial (b) Plataforma Ackermann

Figura 4.13: Recorridos aut


onomos sin obst
aculos.

4.2.4. Seguimiento de Pared con Obst


aculos

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 vehculo 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 obst


aculos.

la tarea, en particular el CI-Seguimiento de Pared alterna el control con el CI-Evasor


de obstaculos (Fig. 4.16).

CI-Odmetro
CI-Odmetro
E
E

CI-Direccin P
CI-Rueda Izquierda P

E S/A
E S/A

P E P E
E
E
A
A
P
P
P
P
S
E S
Coordinador E
Coordinador

CI-Seguidor CI-Seguidor
P P

E E
A A

CI-Traccin P
CI-Rueda Derecha P

S S

CI-Evasor CI-Evasor

(a) Plataforma Ackermann (b) Plataforma Diferencial

Figura 4.15: CIs para el Seguimiento con obst


aculos.

4.2.5. Trayectorias Aut


onomas con Obst
aculos

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 contin
ua con

el recorrido original.
4.2. Experimentos y Resultados 72

8.212

32.8118
8.21
m

8.208

0.26249
8.206
m/s

8.204

8.202

8.2

8.198

8.196

8.194

8.192
-25.58 -25.575 -25.57

(a) Seguimiento de pared con


obstaculos

(b) Prueba de seguimiento con obstaculos

Figura 4.16: Seguimiento de pared con obst


aculos.

El CI-Evasor tiene prioridad sobre el CI-Compas, al momento de ser detectado un


obstaculo la direccion del vehculo 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

CI-Comps
CI-Comps

E
E

CI-Direccin P
CI-Rueda Izquierda P

E S/A
E S

CI-Odmetro
P E P
E
E E
A
A
P
P
P P
S
E
Coordinador E
Coordinador S
CI-Odmetro
P
P

E E
A
A

CI-Traccin P
CI-Rueda Derecha P

S S

CI-Evasor CI-Evasor

(a) Plataforma Ackermann (b) Plataforma Diferencial

Figura 4.17: CIs para trayectorias con obst


aculos.

Orientacin solicitada
14 m 14 m 14 m

(a) Recorrido sin (b) Con obstaculo sin CI- (c) Obstaculo y CI-Evasor
obst
aculos Evasor

Figura 4.18: Casos posibles en los recorridos aut


onomos.

experimento colocando el obstaculo con sesgo hacia cada lado, que resulto en evasion
por el sentido mas libre, en este caso el giro del vehculo fue por la izquierda (Fig. 4.20).

4.2.6. Tr
afico de Peticiones

El traco 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

8.212 8.212

13.9151 14.0343
8.21 8.21
m m

8.208 8.208

0.22087 0.21591
8.206 8.206
m/s m/s

8.204 8.204

8.202 8.202

8.2 8.2

8.198 8.198

8.196 8.196

8.194 8.194

8.192 8.192
-25.58 -25.575 -25.57 -25.58 -25.575 -25.57

(a) Diferencial (b) Ackermann

Figura 4.19: Recorridos aut


onomos con obst
aculos con giro por la derecha.

8.212

13.9696
8.21
m
8.208

0.25399
8.206
m/s

8.204

8.202

8.2

8.198

8.196

8.194

8.192
-25.58 -25.575 -25.57

Figura 4.20: Recorrido aut


onomo con obst
aculos con giro por la izquierda.

la peticion generada, su parametro opcional, su prioridad as como el identicador 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 vehculo robotico, que es reportada por el CI-Odometro. El
incremento cambiante en la distancia esta relacionado directamente con la velocidad

del vehculo. 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).

1500

Reg. Velocidad
Distancia (cm)

1000

500

0
10 20 30 40 50 60
Tiempo (Seg)

Figura 4.22: Distancia recorrida junto con el control de velocidad.

La informacion reportada por el CI-Compas muestra el desempe


no logrado en un re-
corrido con una orientacion solicitada de 180 (Fig. 4.23).

Orientacin del recorrido


250
Azimut ()

200

150

100
10 20 30 40 50 60
Tiempo (Seg)

Figura 4.23: Orientaci


on lograda comparada con la orientaci
on solicitada.

La variacion de la orientacion en un vehculo 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
vehculo, son enviadas al CI-Direccion para lograr mantener la orientacion solicitada.
4.2. Experimentos y Resultados 76

Se presenta una graca con las peticiones atendidas por el CI-Direccion para realizar
un recorrido en lnea recta (Fig. 4.24).

Cambio de Direccin

60

40
Derecha

20

0
Izquierda

-20

-40

-60

10 20 30 40 50 60
Tiempo (s)

Figura 4.24: Peticiones para giros a Izquierda y Derecha en un recorrido en lnea


recta.

Se efectuaron recorridos con el vehculo 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.

4 5

2 6
1

Figura 4.25: Escenario cuadrado con obst


aculos.

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

Actividad entre CIs


1 2 3 4 5 6 1

CI-Seguidor
Ret CI-Evasor
Ava
Peticiones

Det

Der
Cen
Izq

1 42 84 125
Tiempo (s)

Figura 4.26: Interacci


on entre el CI-Evasor y el CI-Seguidor de Pared.

del CI-Evasor es mnima 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 Retroceder
Izquierda Derecha Izquierda Direccion
Prioridad 60 60 60 70 0 0 96
Captulo 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 asncrona 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 exibilidad se debe a que un componente inteligente encapsula las carac-

tersticas del sensor o actuador, as como los requerimientos de operacion mediante un


algoritmo apropiado para llevar a cabo su funcion especca en cualquier conguracion
de un robot.
La independencia entre componentes inteligentes provee un control distribuido robusto

y congurable para el desarrollo de diversos sistemas roboticos, lo cual tambien permite


la identicacion 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 conguraron
los vehculos 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 conrma la hipotesis y se lograron los objetivos.

5.1. Contribuciones

Se obtuvo una arquitectura alternativa para el desarrollo de sistemas roboticos, en

particular de vehculos autonomos, que demuestra ser conable y robusta. Permite


implementar el control distribuido y construccion de un vehculo autonomo basado en
componentes inteligentes e independientes.
Permite que se reutilicen los componentes inteligentes, al ser considerados como re-

cursos independientes y exibles, para la conguracion 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 n
umero 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 traco de peticiones en el sistema.
5.2. Trabajo Futuro 80

Desarrollar vehculos 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 congura-


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

[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 268272, 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 unication of navigational planning and reactive control.

In American Association for Artificial Intelligence Spring Symposium on Robot


Navigation, pages 15, 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):231249, April 1997.

[6] R. A. Brooks and J.H. Connell. Asynchronous distributed control system for a
mobile robot. In SPIE Proceedings, volume 0727, pages 7784, Cambridge, MA,
USA, 1986.

[7] J Connell. A hybrid architecture applied to robot navigation. In International


Conference on Robotics and Automation, pages 27192724, 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 eld robotic systems. Auto-
nomous Robots, 10(1):5765, 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 191214, 1983.

[12] D.W. Gage. Unmanned ground vehicle (ugv) development eorts. Special Issue
on Unmanned Ground Vehicles, Unmanned Systems Magazine, 1995.

[13] M.P Georgeo 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 677687, 1987.

[14] 802.11b IEEE. Wireless medium access control (mac) and physical layer (phy)
specications: 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)
specications 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)
specications 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 Jerey 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 10221029, Boston, Massachusetts, USA,
1990.

[21] P.C. Leger and J. Bares. Automated synthesis and optimization of robot congu-
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 11471164, August 1996.

[24] H. Moravec and A. Elfes. High resolution maps from wide angle sonar. IEEE

International Conference on Robotics and Automation, 2:116121, Mar 1985.

[25] D.W. Payton. Internalized plans: A representation for action resources. Designing
Autonomous Agents, pages 89103, 1990.

[26] Woong Yang Kwang Roh Se-go. A modularized personal robot drpi: Desing and

implementation. IEEE Transactions Robotics, 25(2):414425, 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):91118, June 1989.

[30] M. Yim, Y. Zhang, and D. Du. Modular robots. IEEE Spectrum, 39(2):3034,
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:

Unidad
de
Enlace

Unidad
de
Procesamiento

Actuador/Sensor

Figura A.1: Componente Inteligente conformado por las unidades funcionales de


enlace, 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
congurar estos radio modems para que todos funcionen en el mismo canal de operacion

y congurar 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 especicaciones mnimas 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.

Envo/Recepcion de peticiones.

A.2. Registro de Componentes Inteligentes

El protocolo para el registro de CIs implica el envo 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 Nombre


de 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 Identicador Terminador

Ejemplo:

407101AC Los 8 dgitos menos signicativos 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 envan 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 identicador
que le fue asignado al CI al registrarse, debe guardarse para adjuntar en el envo 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 Identicador del componente.


A.3. Dise
no Base para Componente Inteligente 88

255 Terminador de paquete.

Las peticiones que pueden utilizarse son:

Tabla A.3: Peticiones definidas para un vehculo aut


onomo. 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 Vehculo Porcentaje de potencia (1-100 %)
5 Reroceder Vehculo 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)
16 Nueva peticion Nuevo parametro

Si se siguen estas especicaciones se lograra una comunicacion con cualquier sistemas


robotico que implemente esta arquitectura de control.

A.3. Dise
no 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 dise


no 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. Dise
no Base para Componente Inteligente 89

Componente
Base
Entradas
analgicas
PIC24FJ64GB004

RTCC SPI

Adaptacin
de seales
(PULL-
Entradas/Salidas
Ups/
digitales
Divisores
de voltaje)

Regulador
2.5 V I2C

XBee
Regulador
3.3 V RS-232

3.3 V / 5 V
Fuente externa
de 5 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
especicaciones denidas 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.

on en las partes utilizadas en la Plataforma Ackermann


Tabla B.1: Inversi

Parte Precio (USD)


Plataforma 500
CI-Traccion 60
CI-Direccion 60
CI-Odometro 60

Total 680

Tabla B.2: Inversi


on en las partes utilizadas en la Plataforma Diferencial

Parte Precio (USD)


Plataforma 250
CI-Rueda Izquierda 60
CI-Rueda Derecha 60
CI-Odometro 70

Total 440

90
91

Tabla B.3: Inversi


on en los Componentes Inteligentes Comunes

Parte Precio (USD)


CI-Coordinador 60
CI-Comunicacion 300
CI-Seguidor de Pared 90
CI-Evasor 90
CI-Compas 80
CI-Camara 200

Total 820

Tabla B.4: Inversi


on en Bateras

Parte Precio (USD)


Polmeros de litio de 11.1 V, 4400 mAh 100
Polmeros 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-

norca en 2008. El Ing. Villa Medina trabaja en el Grupo Ingeniera del


Centro de Investigaciones Biologicas del Noroeste, S.C. (CIBNOR) desde
el a
no 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:
jfvilla@cibnor.mx
Document Log:

Typeset by LATEX- January 2013.

Engineering Group

CIBNOR
E-mail:jfvilla@cibnor.mx

You might also like