Anda di halaman 1dari 171

ESCUELA POLITCNICA DEL EJRCITO

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIN

CARRERA DE INGENIERA DE SISTEMAS E INFORMTICA

DESARROLLO DE UN LABORATORIO VIRTUAL BSICO


DE ROBTICA MVIL CON TUTOR INTELIGENTE

Previa a la obtencin del Ttulo de:

INGENIERA DE SISTEMAS E INFORMTICA

POR:

MARIANELA ELIZABETH ORTIZ BELTRN

SANGOLQUI, Diciembre del 2006

CERTIFICACIN

Certifico que el presente trabajo fue realizado en su totalidad por la Srta.


MARIANELA ELIZABETH ORTIZ BELTRN, como requerimiento parcial a la
obtencin del ttulo de INGENIERA EN SISTEMAS E INFORMTICA.

Sangolqu, Diciembre del 2006

Ing. Csar Villacs


DIRECTOR DE TESIS

ii

DEDICATORIA

A mi abuelito Gerardo, quien fue ejemplo de vida abrindose paso con su trabajo
y tesn inusitados, con aquel trajinar de su presencia infatigable de sol a sol en
tanto en su trabajo con en sus tareas cotidianas; quien sembr mi mente ideales
de grandeza con sus consejos sabios, cuando desde nia escuchaba los relatos
de sus bondades compartidas.

A Wilson Patricio, mi to, su recuerdo lo tengo siempre presente, como un


hermano mayor con sus ocurrencias y cuidados lleno de alegra mi infancia.

Porque tomada de sus manos inicie el aprendizaje en esta vida, ahora casi todo lo
que soy se lo debo a su ejemplo de tenacidad y valor, todo el esfuerzo y entrega
expuestos en este trabajo es dedicado a la memoria de los dos.

Marianela Elizabeth

iii

AGRADECIMIENTOS

Mi profundo reconocimiento a la Escuela Politcnica de Ejrcito, al Departamento


de Ciencias de la Computacin, que forman verdaderos profesionales tiles a la
sociedad y competentes para el desarrollo del pas.

Mi gratitud a los seores Director y Codirector de tesis, que sin su valiosa gua y
apoyo este trabajo no hubiese llegado a feliz trmino.

A mis amigos, quienes con plena confianza en m, me dieron nimos para


continuar con el desarrollo de este proyecto pese a la complejidad y las
adversidades.

Por ultimo, es necesario agradecer a toda mi familia el apoyo prestado durante el


tiempo que ha durado este trabajo.

Marianela Elizabeth

iv

NDICE

INDICE DE CONTENIDOS

Resumen

......

CAPTULO 1
INTRODUCIN

1.1 Tema

1.2 Antecedentes

...

..

1.3 Justificacin e Importancia

1.4 Objetivos
1.5 Alcance

..

...

...

CAPTULO 2
MARCO TERICO

2.1 Introduccin

2.2 E-learning y software educativo


2.2.1

Qu es el E-learning?

2.2.2

Ventajas y desventajas del E-learning

2.2.3

Tipos de aprendizaje

...

. 10
.. 11

2.2.4

Factores de diseo de programas de E-learning

.. 13

2.2.5

Enfoques metodolgicos para el desarrollo de software educativo 14

2.3 Entornos virtuales de experimentacin (E-Labs)


2.3.1

Tipos de laboratorios virtuales

2.3.2

Laboratorios electrnicos

2.3.3

Laboratorios remotos vs. laboratorios virtuales

.. 16
.

.. 16
.. 18
19

2.4 Tutores inteligentes

..

19

2.4.1

Asistentes personales

20

2.4.2

Laboratorios virtuales y asistentes personales

. 20

2.4.3

Sistemas Tutores Inteligentes

. 20

. 22

2.5 Fundamentos de Robtica


2.5.1

Conceptos y elementos de robtica

. .. 22

2.5.2

Tipos de robots

. . 23

2.5.3

Robots mviles

. . 26

2.5.4

El problema de la planificacin de trayectorias

2.5.5

Mtodos clsicos de planificacin

31

2.5.6

Mtodo de Grafo de Visibilidad

..

35

37

..

37

2.6 Geometra Computacional


2.6.1

Definicin

2.6.2

Objetivos

2.6.3

Aplicaciones

29

38
..

vi

39

2.7 Metodologa MSF

41

2.7.1

Microsoft Solution Framework (MSF)

41

2.7.2

Caractersticas de MSF

..

41

2.7.3

Modelos

..

42

2.7.4

Modelo del Proceso de desarrollo de aplicaciones

44

..

46

CAPTULO 3
METODOLOGA DEL PROYECTO

3.1 Fase de visin


3.1.1

Planteamiento del problema

3.1.2

Visin de la solucin

3.1.3

Metas del proyecto

3.1.4

Matriz de tradeoffs de proyecto

3.1.5

Alcance

3.1.6

Lista de riesgos

3.1.7

Esquema de la solucin

3.1.8

Visin aprobada

46
... ... 47
.

49
.

..

50
50

..

51
52

3.2 Fase de planeacin

... .

53

54

3.2.1

Requerimientos del sistema

3.2.2

Diseo conceptual

55

3.2.3

Diseo lgico

..

59

3.2.4

Diseo fsico

...

64

3.2.5

Planeacin del proyecto aprobada

74

vii

54

3.3 Fase de desarrollo


3.3.1

Cdigo fuente

3.3.2

75
.

75

Parmetros de configuracin

...

92

3.3.3

Pruebas de inspeccin de cdigo

...

93

3.3.4

Reporte de bugs

3.3.5

Alcance completo

. 95
..

. 96

3.4 Fase de Estabilizacin

.. 97

3.4.1

Especificacin de test

.... 97

3.4.2

Consideraciones y restricciones

.... 101

3.4.3

Cdigo fuente y ejecutables

... 102

3.4.4

Release aprobado

. ... 102

3.5 Fase de implantacin


3.5.1

Informacin de soporte y operacin

3.5.2

Manual de usuario

3.5.3

Siguientes pasos

3.5.4

Deployment completo

..

...

..

103

..

103
.

104

105

. ....

105

CAPTULO 4
CONCLUSIONES, RECOMENDACIONES Y TRABAJOS FUTUROS

4.1 Conclusiones

106

4.2 Recomendaciones

...... 108

4.3 Trabajos Futuros

....

viii

109

ANEXOS

Anexo A

Diagramas UML

...

Diagramas de Casos de Uso

...

Diagramas de Secuencia

110
.. 110

...

Diagramas de Clases

112

...

Diagramas de Actividad

Anexo B Esquema del Tutorial de Robtica Mvil

..

114

.....

116

... 119

Mapa del Sitio

..

119

Contenidos

...

120

.....

125

Sumas de Minkowski

..

125

Mtodo de Grafo de Visibilidad

128

129

..

130

Anexo C

Algoritmos

...

Test de interseccin

...

Algoritmo de Dijsktra

Anexo D Manual de Usuario

...

.... 133

Instalando del sistema

...

Ingresando al sistema

133
134

El entorno de trabajo
Utilizando el laboratorio virtual
Errores

..

135

143

......

150

153

BIBLIOGRAFA

BIBLIOGRAFA

..

ix

NDICE DE TABLAS

Tabla 3.1

Matriz de tradeoffs

...

...

50

Tabla 3.2

Lista de riesgos

...

52

Tabla 3.3

Listado de requerimientos del sistema

Tabla 3.4

Perfil del usuario

55

Tabla 3.5

Caso de Uso Navegacin por contenidos

..

56

Tabla 3.6

Caso de Uso Simulacin

Tabla 3.7

Caso de Uso Teleoperacin

Tabla 3.8

Caso de Uso Programacin

.. 58

Tabla 3.9

Clase Figura

78

Tabla 3.10 Clase Vrtice

79

54

57

Tabla 3.11 Clase Lnea

57

.. 80

Tabla 3.12 Clase Polgono

81

Tabla 3.13 Clase Robot

82

Tabla 3.14 Clase Nodo

..

83

Tabla 3.15 Clase Form1

84

Tabla 3.16 Clase Agent

86

87

Tabla 3.18 Clase Mvil

..

89

Tabla 3.19 Clase Video

90

Tabla 3.17 Clase form1 Subsistema Programacin

Tabla 3.20 Clase Form1 Subsistema Teleoperacin

91

Tabla 3.21 Prueba de navegacin completa


Tabla 3.22 Prueba de clculos y algoritmos

... 93
...

94

Tabla 3.23 Prueba de validacin de datos

94

Tabla 3.24 Prueba de comunicacin con el robot

95

...

NDICE DE FIGURAS

Figura 2.1

Robots Androides

..

23

Figura 2.2

Robots Mviles

..

24

Figura 2.3

Robot Mdico

25

Figura 2.4

Robot industrial

...

25

Figura 2.5

Elementos del sistema robtico mvil

Figura 2.6

Planificacin de trayectorias

Figura 2.7

Diagrama de Voronoi

Figura 2.8

Diagrama de modelado del espacio libre

Figura 2.9

Descomposicin en celdas y grafo de conectividad

...

27
. 30
...

Figura 2.10 Campos de potencial

...

.....

32
33

..... 34

...

34

Figura 2.11 Grafo de visibilidad en un entorno de dos obstculos

35

Figura 2.12 Grafo de visibilidad y camino mnimo

37

...

44

Figura 2.13 Modelo de proceso de desarrollo de aplicaciones


Figura 3.1

Esquema de la solucin

53

Figura 3.2

Diagrama de casos de uso

Figura 3.3

Diagrama de estructura del sistema

Figura 3.4

Diseo de la interfaz del tutorial

Figura 3.5

Diseo de la interfaz de simulacin automtica

Figura 3.6

Diseo de la interfaz de prctica guiada

Figura 3.7

Diseo de la interfaz de teleoperacin

Figura 3.8

Diseo de la interfaz de programacin

Figura 3.9

Componentes de la solucin

...

Figura 3.10 Interfaz de la pantalla principal

xi

...
...

56
58

..

59
...

60
61

...
...

...

62
63
63
67

Figura 3.11 Interfaz del tutorial


Figura 3.12 Interfaz de Modo de ingreso
Figura 3.13 Interfaz del mdulo de simulacin automtico

68

....

69

70

Figura 3.14 Interfaz del modo de simulacin de prctica guiada


Figura 3.15 Interfaz del mdulo de teleoperacin

71
...

..

72

73

Figura 3.17 Vista arquitectnica de la implantacin de la solucin

....

73

Figura 3.18 Datos de prueba

...

98

Figura 3.16 Interfaz del mdulo de programacin

Figura 3.19 Grfico del proceso de planificacin de trayectorias


Figura 3.20 Salida esperada

...... 100
.... 101

Figura A.1

Diagrama de casos de uso Navegacin por contenidos

......

110

Figura A.2

Diagrama de casos de uso Simulacin

...

110

Figura A.3

Diagrama de casos de uso Teleoperacin

111

Figura A.4

Diagrama de casos de uso Programacin

111

Figura A.5

Diagrama de secuencia del Sistema

...

112

Figura A.6

Diagrama de secuencia Navegacin por contenidos

112

Figura A.7

Diagrama de secuencia Simulacin

113

Figura A.8

Diagrama de secuencia Teleoperacin

...

113

Figura A.9

Diagrama de secuencia Programacin

..

114

......

114

Figura A.10 Diagrama de clases Contenidos


Figura A.11 Diagrama de clases Simulacin

115

Figura A.12 Diagrama de clases Teleoperacin

Figura A.13 Diagrama de clases Programacin

... 116

Figura A.14 Diagrama de actividad del sistema

Figura A.15 Diagrama de actividad Navegacin por contenidos

xii

115

... ..

116

.........

117

Figura A.16 Diagrama de actividad Simulacin


Figura A.17 Diagrama de actividad Teleoperacin

......

Figura A.18 Diagrama de actividad Programacin

117

......

118

.....

118

..

119

Figura B.1

Mapa del sitio del Tutorial de Robtica Mvil

Figura C.1

Sumas de Minkowski de dos polgonos

... ... 125

Figura C.2

ngulo que forma el vector

... ..

Figura C.3

Grafo con caminos y longitud

xiii

..

...

con el eje de absisas

126
130

RESUMEN

Este proyecto fin de carrera aborda la creacin de un ambiente de aprendizaje


basado en la actividad de los estudiantes a travs de un laboratorio virtual con un
tutor inteligente, para esto es necesario el estudio de los principios, fundamentos,
tcnicas y herramientas que se utilizan en el desarrollo de estos sistemas, por
ello, en primera instancia se contempla los conceptos tericos correspondientes.

Un laboratorio virtual es un ambiente heterogneo y distribuido para la solucin de


problemas; presenta ventajas como reduccin de costos, fomenta la transferencia
de tecnologa, permite incorporar estrategias didcticas, tutores, ayudas en lnea,
etc.; entre otras, de acuerdo a esto, la presente tesis expone la aplicacin de
varias disciplinas informticas como e-Learning, Computacin Grfica y Robtica
para proporcionar una solucin al problema de construir un laboratorio virtual con
tutor inteligente como apoyo al aprendizaje de conceptos y programacin de
robots mviles.

El documento expone tambin el proceso de construccin del sistema, en donde


se explica y desarrolla cada una de las etapas de la metodologa planteada para
el despliegue de este proyecto.

La aplicacin desarrollada, es decir el laboratorio virtual bsico con tutor


inteligente para la enseanza de robtica mvil, permite la simulacin de un robot
mvil para la definicin, realizacin y ejecucin de prcticas de planificacin de
trayectorias, y cuenta con un agente tutor inteligente que cumple el rol de
asistente sencillo que monitorea el uso del equipo virtual; a su vez el sistema
incorpora un mdulo tutorial en donde se imparten los conocimientos relacionados
a esta rama de la ciencia en sus aspectos bsicos e iniciales. Cuenta adems con
un entorno bsico de programacin y otro de teleoperacin libre del robot mvil
real equivalente implementado con el set educacional LEGO Mindstorms.

CAPITULO I
INTRODUCCIN

1.1 Tema

Desarrollo de un Laboratorio Virtual Bsico de Robtica Mvil con Tutor


Inteligente.

1.2 Antecedentes

El costo de los laboratorios reales ha impulsado el desarrollo de


herramientas abiertas de software para simular, visualizar y programar
equipos o herramientas.

Un laboratorio virtual es un ambiente heterogneo y distribuido para la


solucin de problemas; presenta

ventajas como reduccin de costos,

fomenta la transferencia de tecnologa, permite incorporar estrategias


didcticas, tutores, ayudas en lnea, etc.; entre otras.

Los tutores inteligentes, por otro lado, son elementos que tienen como
objetivo principal reproducir el comportamiento de un tutor humano que
puede adaptarse al ritmo de aprendizaje del estudiante.

El estilo de enseanza de los tutores inteligentes puede complementar la


labor de los laboratorios virtuales.

De acuerdo a lo anteriormente expuesto, la presente tesis propone una


solucin al problema de construir un laboratorio virtual con tutor inteligente
como apoyo al aprendizaje del control y programacin de robots mviles.

1.3 Justificacin e Importancia

Los ejercicios de laboratorio son imprescindibles en la formacin


universitaria en ingeniera. Los Laboratorios Virtuales amplan los servicios
de educacin con el objetivo de disponer y compartir diferentes recursos
para el desarrollo de experimentos como si estuvieran en el mismo sitio
donde se encuentran los recursos reales.

Por otra parte, los robots han demostrado gran utilidad para realizar trabajo
repetitivo; as mismo, tienen la ventaja de desempear actividades bajo
ambientes agresivos para un ser humano. El costo tan elevado de los
robots impide que muchas instituciones educativas los tengan disponibles
en un laboratorio real.

Debido a lo anterior, se considera que los robots presentan caractersticas


importantes para la enseanza e investigacin y por esta razn se justifica
el esfuerzo de desarrollar un laboratorio virtual para robtica mvil que

permita la programacin y control de estos dispositivos en beneficio de un


mayor nmero de estudiantes.

Los principales beneficios que se vislumbran al combinar los recursos de


laboratorios virtuales orientados hacia la enseanza de la robtica mvil
son los siguientes:

Lograr que el estudiante tenga un mejor entendimiento a travs de


aprender haciendo .
Incorporar material didctico y explicaciones previas al desarrollo de
los experimentos.
Dar seguimiento al estudiante durante el desarrollo del experimento
y brindar una evaluacin posterior y una adecuada retroalimentacin.
Disminuir los costos y tiempo de enseanza, debido a que se
pueden acelerar los tiempos de los experimentos.
Evitar accidentes que puedan daar a los estudiantes o al equipo
real que es caro y costoso.

Con todas estas afirmaciones y asumiendo que las lecciones prcticas en


la universidad deben jugar un papel muy importante en el sistema
educacional, especialmente en los estudios tcnicos y que stas deben ser
lo ms realistas posibles de forma que los estudiantes tengan un contacto
directo con los equipos y mtodos que van a utilizar en sus carreras
profesionales, la presente Tesis contempla la solucin a este problema y
presenta un laboratorio virtual complementado con un tutor inteligente para

la enseanza de robtica mvil, el cual permitir la simulacin de un robot


mvil en el aspecto de la planificacin de trayectorias, la tele-operacin y
programacin del real equivalente, este proyecto beneficiar y servir de
apoyo al rea de Robtica de la Facultad de Ingeniera Electrnica.

1.4 Objetivos

Objetivo General

Desarrollar un laboratorio virtual bsico de robtica mvil con tutor


inteligente.

Objetivos Especficos

Definir las caractersticas del Laboratorio Virtual Bsico de robtica


mvil.
Disear e Implementar un simulador de Planificacin de trayectorias
para robots mviles con sus prcticas.
Implementar un entorno de teleoperacin del robot mvil y de
programacin del mismo.
Aplicar la metodologa MSF para la construccin del Laboratorio virtual
bsico de robtica mvil.

Revisar los fundamentos de robtica mvil, e-learning, software


educativo y geometra computacional.
Ensamblar un robot mvil de tipo vehculo con el kit de robtica de Lego
Mindstorms.

1.5 Alcance

Disear y desarrollar un laboratorio virtual con herramientas de Visual


Studio.NET y LEGO Mindstorms, que permitir la simulacin de robots mviles;
para el nivel de enseanza universitario.

Este entorno virtual de experimentacin permitir que los estudiantes realicen


diferentes prcticas de planificacin de trayectorias con obstculos poligonales
convexos.

El modelo matemtico a utilizarse contempla el caso general tanto en el


ingreso de polgonos como ampliacin de los mismos, dejando de lado las
particularidades de proximidad mnima e intersecciones entre ellos.

El modelo matemtico tambin contempla el uso de teora de grafos,


bsqueda de rutas mnimas, geometra computacional.

Implementar un robot mvil tele

operado para realizar movimientos bsicos a

travs del software de simulacin a desarrollar con herramientas de Visual


Studio.NET y LEGO Mindstorms.

El uso del kit de robtica Lego Mindstorms es una forma fcil y sencilla para
construir robots, e inclusive viene acompaado de un software de
programacin.

Desarrollar una interfaz de usuario tipo pgina web donde el usuario pueda
acceder a documentacin sobre robtica y programacin.

Implementar un entorno bsico de programacin, el cual permitir que el


usuario realice sus propios programas, compile el cdigo y lo baje al robot.

Captulo II
Marco Terico

2.1 Introduccin

Para la creacin de sistemas de apoyo al aprendizaje de materias dotadas


de una componente prctica no muy fuerte como la enseanza de la
Robtica Mvil por ejemplo, requiere de algo ms, de un elemento que
permita al estudiante poner en prctica todos los conocimientos que vaya
adquiriendo.

Este papel en las enseanzas tradicionales lo desempea el laboratorio de


prcticas, el cual, inexorablemente, requiere de la presencia fsica del
estudiante para poder manipular los diferentes equipos existentes en un
entorno controlado bajo la supervisin del profesor. Por consiguiente,
trasladando este entorno prctico a la enseanza a distancia, el elemento
necesario para abordar la realizacin de prcticas sobre Robtica Mvil es
la existencia de un laboratorio virtual y de teleoperacin, que permita al
alumno practicar de una forma lo ms similar posible a como si estuviese
en las dependencias del laboratorio, dndole la posibilidad de manejar las
simulaciones o interactuar con el equipo real.

En particular en este captulo, se estudiar el E-learning como nuevo


paradigma de aprendizaje basado en el uso de medios electrnicos, se
analizarn los llamados Tutores Inteligentes, es decir, aquellos que tratan

de reproducir el comportamiento de un tutor humano. Se profundizar


tambin en las posibilidades que ofrecen los entornos virtuales de
experimentacin para el entrenamiento y el uso de la Computacin Grfica
como aportes complementarios para la creacin de este tipo de sistemas
de aprendizaje o laboratorios virtuales.

2.2

E-learning y Software Educativo

La formacin y el aprendizaje es uno de los principales dominios que, ya


desde los orgenes de la Computacin, se viene tratando de mejorar
mediante la aplicacin de las tecnologas de la informacin y las
comunicaciones, aunque en muchos casos sin demasiado xito. Uno de los
motivos de este fracaso radica en la complejidad inherente al desarrollo de
este tipo de sistemas, que tiene un carcter fuertemente multidisciplinar, y
muchas veces requiere de la integracin de mltiples tcnicas y
tecnologas provenientes de reas muy diversas, incluso dentro de la
propia Informtica, como puedan ser la Computacin Grfica, el estudio de
la

Interaccin

Hombre-Mquina,

la

Ciencia

Cognitiva,

las

Telecomunicaciones, la Simulacin, etc.

2.2.1 Qu es E-Learning?

El e-Learning es un conjunto de recursos formativos muy interactivos con


actividades de aprendizaje bien estructuradas, con servicios de formacin

orientados a resultados y accesibles en un entorno Internet/Intranet. Es el


aprendizaje adquirido con informacin mediante el uso de alguna
tecnologa sea por red (Internet, Intranet o Extarnet) o CD`s roms. La
informacin se basa en la entrega de contenidos, mediante un esquema
estructurado, ejercicios prcticos, casos de estudio, evaluaciones y
simulaciones.

En otras palabras el e-Learning dirige todos los recursos para generar


aprendizaje. La sociedad est en continua evolucin, ya sea en ciencia,
historia y como sociedad, y la educacin no es un mbito que se debe dejar
de lado.

Es un cambio en el paradigma de la educacin el que se debe afrontar y


asimilar con la mayor rapidez posible. El e-Learning es una herramienta
fundamental

para

conectarse

al

Aprendizaje

virtual,

Expandir

su

conocimiento, creatividad y estar a la vanguardia profesionalmente.

2.2.2 Ventajas y Desventajas del E-Learning

A grandes rasgos se puede citar las siguientes ventajas y desventajas del Elearning:

Ventajas
Acceso y flexibilidad horaria.
Justo a tiempo (JIT)

10

Reduccin Costos.
Alto grado de interactividad.
Fomenta el desarrollo personal.
Mayor colaboracin y conectividad entre estudiantes
Independencia de la calidad del instructor
Desventajas
Econmica.
Motivacin.
Cultural.

Algunos investigadores como Brandon Hall, Forbes, Masie y Lewis han


desarrollados estudios sobre el impacto del e-Learning en el sistema
educacional, empresarial y otros. Los resultados demuestran que la
implementacin de e-Learning no es sencilla. Para que los resultados sean
realmente efectivos y eficientes, se deben tener en cuenta muchos factores
desde su desarrollo hasta su implementacin. Otros sealan que una de
las limitaciones al introducir el e-Learning, fue la inversin inicial de costo y
tiempo para la preparacin y obtencin de las herramientas tecnolgicas,
as como los conocimientos necesarios para la creacin de cursos.

2.2.3 Tipos de Aprendizaje

El aprendizaje se puede dividir en los siguientes tipos:

11

COLABORATIVO: va Intranet o Internet

Sincrnico
Asincrnico

De AUTOFORMACIN :

EAO ( Enseanza Asistida por Ordenador)


CBT( Computer based Training)

Cursos de Autoformacin

En este tipo de cursos se supone que toda la informacin, la


ejercitacin, y evaluacin se realiza solo exclusivamente con la
interaccin con el computador, el que brinda retroalimentacin
correctiva o formativa, guiando como un tutor virtual al aprendiz
interesado.

Apoyo a la Formacin Presencial

Son bsicamente simulaciones, ejercicios o actividades basadas en


el computador, pero que se utilizan como complemento de una
actividad presencial, ya sea durante, antes o despus.

Test y Evaluaciones

Es este un punto alto de la tcnica instruccional basada en el


computador ya que agiliza la respuesta que se da al test, gua
individualmente y puede dar retroalimentacin inmediata sobre los

12

resultados que ha procesado tanto la organizacin como el propio


aprendiz.

Asistencia Electrnica al Desempeo

Esta forma de Capacitacin Basada en el Computador consiste en


una gua para resolver problemas en forma rpida y efectiva.

Se trata de garantizar que el usuario pueda responder eficazmente a


situaciones inmediatas, guiado por un programa que contiene
respuesta organizada a la manera de las FAQ (Frequent Asked
Questions).

Aprendizaje Colaborativo

El aprendizaje colaborativo no solo hace posible el aprendizaje


estandarizado sino que adems facilita el aprendizaje organizacional
al permitir:

Comunicar
Compartir conocimientos
Distribuir conocimientos
Generar Conocimientos

2.2.4 Factores de Diseo de Programas de e-Learning

Objetivos de aprendizaje
Calidad de los Contenidos

13

Navegacin Flexible y amistosa


Interacciones inteligentes
Retroalimentacin constante
Dar control al usuario
Personalizar
Uso adecuado de la multimedia.
Proporcionar herramientas efectivas
Dar apoyo a la implementacin

2.2.5 Enfoques metodolgicos para el desarrollo de software educativo.

Enfoque instructivo

A lo largo de una vida estudiantil, surgen muchos procesos de enseanza


ms o menos efectivos. Incluso, el refuerzo en el proceso de aprendizaje
en algunas materias, se realiza en muchos casos a travs de un
seguimiento ms estrecho entre un tutor y el estudiante. Estos procesos
centran su actividad en la transmisin de conocimiento del profesor al
alumno. Las capacidades que un buen profesor presenta se centran, en
muchos casos, en una estructuracin y presentacin acertada del
conocimiento. Adems de disponer de un cierta variedad de tcnicas, ms
o menos atractivas, para mantener la atencin del estudiante y facilitar la
transmisin del conocimiento deseada.

14

Enfoque constructivo

Como ya hemos apuntado anteriormente, existe otra propuesta diferente al


enfoque instructivo anterior y que Papert bautiz como construtivismo. En
el planteamiento que propone entiende el aprendizaje como un proceso
activo de construccin de conocimiento. Este planteamiento, asegura
adems que la mejor forma de aprender consiste en dedicarse a construir
de forma consciente algo, algn objeto. En los sistemas desarrollados
segn esta propuesta el estudiante lleva el control de la actividad docente,
construyendo su propia sesin de aprendizaje y fijando y asegurando sus
propios objetivos de aprendizaje. Los sistemas hipermedia se adaptan
perfectamente a las exigencias de este tipo de planteamientos. Estos
sistemas permiten que el usuario:

Acceda a la informacin de la base de conocimiento que desee.


Disponga de una gran variedad de formas de acceso a la
informacin.
Redefina la estructura y contenido del material a utilizar.

El grado de libertad que ofrecen a los estudiantes estas herramientas, aun


siendo su mayor ventaja, puede llegar a ser su peor enemigo. La gran
movilidad del estudiante por el hiperespacio puede desorientarle de tal
manera que pierda el rumbo adecuado para alcanzar sus objetivos. Por ello
es necesario ofrecer al estudiante herramientas complementarias que le
permita reorientar su proceso de aprendizaje.

15

2.3 Entornos virtuales de experimentacin (e-labs)

Los Entornos virtuales de experimentacin son nuevos tipos de prcticas y


adquisicin del aprendizaje mediante el uso de simuladores; Desarrollo de
nuevas competencias y habilidades prcticas, por parte de los estudiantes, en
laboratorios virtuales de investigacin.

Una de las definiciones de laboratorios virtuales que se ha aplicado a la


enseanza a distancia es la aquella que los definen como simulaciones de
prcticas manipulativas que pueden ser hechas por la/el estudiante lejos de la
universidad y el docente . Los laboratorios virtuales son imitaciones digitales
de prcticas de laboratorio o de campo, reducidas a la pantalla de la
computadora (simulacin bidimensional) o en sentido estricto, a una visin
ms realista con profundidad de campo y visin binocular, que requiere que la
persona se coloque un casco de realidad virtual.

2.3.1 Tipos de laboratorios virtuales

Para plantear este documento, se ha clasificado en estos tres tipos


generales la variedad de laboratorios virtuales:

Laboratorios virtuales software.

Son laboratorios virtuales

desarrollados como un programa de software independiente destinado a


ejecutarse en la mquina del usuario, y cuyo servicio no requiere de un
servidor Web. Es el caso de programas con instalacin propia, que pueden

16

estar destinados a plataformas Unix, Linux, M.S. Windows

e incluso

necesitar que otros componentes de software estn instalados previamente,


pero que no necesitan los recursos de un servidor determinado (como
bases de datos o mdulos de software de servidor) para funcionar.
Tambin determinados laboratorios virtuales pensados inicialmente como
aplicaciones accesibles a travs de un servidor Web se pueden considerar
de este tipo si funcionan localmente y no necesitan recursos de un servidor
en concreto.

Laboratorios virtuales Web. En contraste con los anteriores, este tipo de


laboratorios se basa en un software que depende de los recursos de un
servidor determinado. Esos recursos pueden ser determinadas bases de
datos, software que requiere ejecutarse en su servidor, la exigencia de
determinado hardware para ejecutarse. Esto es, no son programas que un
usuario pueda descargar en su equipo para ejecutar de localmente de
forma independiente.

Laboratorios remotos. Se trata de laboratorios remotos que permiten


operar remotamente cierto equipamiento, bien sea didctico como
maquetas especificas, o industrial, adems de poder ofrecer capacidades
de laboratorio virtual. En general, estos laboratorios requieren de equipos
servidores especficos que les den acceso a las mquinas a operar de
forma remota, y no pueden ofrecer su funcionalidad ejecutndose de forma
local. Otro motivo que hace dependientes estos laboratorios de sus
servidores es la habitual gestin de usuarios en el servidor.

17

2.3.2 Laboratorios electrnicos.

Una de las soluciones de eLearning ms interesantes en la educacin


universitaria son los laboratorios electrnicos, o e-laboratorios. Estos tiene
el mismo objetivo que los laboratorios tradicionales: dar a los estudiantes
la oportunidad

de poner en prctica las habilidades y conocimientos

recientemente adquiridos realizando diferentes prcticas y experimentos a


travs de un uso ilimitado y repetido.

El estudiante puede acceder a los equipos del laboratorio a travs de un


navegador y conectarse a entornos de entrenamiento simulados o reales,
pudiendo ejercitar habilidades diversas sin riesgo alguno. As los
estudiantes pueden aprender mediante prueba y error: sin miedo a sufrir o
provocar un accidente; sin avergonzarse si requieren realizar varias veces
la misma prctica, ya que la pueden repetir sin lmite; sin temor a daar
alguna herramienta o equipo. Adems, tambin pueden asistir al laboratorio
cuando ellos lo quieran, y hasta escoger aquellas reas del laboratorio que
resultan ms significativas para realizar prcticas sobre su trabajo.

Es posible llevar a cabo experimentos de forma estructurada o incluso ms


abierta, en la que los estudiantes desarrollan habilidades de resolucin de
problemas, observacin interpretacin y anlisis de los resultados, de
forma similar a la que los investigadores realizan.

18

2.3.3 Laboratorios remotos vs. Laboratorios virtuales

Existen dos aproximaciones diferentes a la hora de implementar un elaboratorio: laboratorios virtuales y remotos. En un laboratorio remoto existe
un equipo fsico al cual acceden los estudiantes a travs de un navegador.
En cambio, un laboratorio virtual no tiene ningn referente fsico: los
estudiantes utilizan un simulador que reproduce una situacin real o
implementa una herramienta CAD.

2.4 Tutores Inteligentes

Una de las aproximaciones actuales en los campos vinculados a los ITS y


la IA, como los agentes software y los sistemas multi-agente, es el diseo
de asistentes personales que supervisen las acciones del usuario en un
entorno

informtico

para

proporcionar

ayuda,

llamados

asistentes

personales.

De forma ms especfica, los asistentes personales son agentes de interfaz


que cooperan con el usuario para alcanzar un objetivo. Esta cooperacin
estrecha entre el usuario y el agente permite al usuario aumentar
considerablemente su rendimiento.

19

2.4.1 Asistentes personales

Una clase especial de Tutores Inteligentes son los denominados asistentes


personales que supervisan directamente las acciones del usuario en un
entorno informtico para proporcionar ayuda. De forma ms especfica, los
asistentes personales son agentes de interfaz que cooperan con el usuario
para alcanzar un objetivo. Como se ha demostrado en recientes estudios,
esta colaboracin estrecha entre el usuario y el agente aumenta
considerablemente el rendimiento del primero.

2.4.2. Laboratorios virtuales y asistentes personales

Un laboratorio virtual se puede complementar con el uso de asistentes


personales. Los usuarios realizan una serie de experimentos bajo la
supervisin de un asistente que le gua a travs de los pasos necesarios
para completar un proyecto, experimento o prctica, comunicndose con l
a medida que es necesario.

2.4.3. Sistemas Tutores inteligentes

A finales de la dcada de los 60, un grupo de investigadores empez a


explorar

el

gran

potencial

que

tenan

las

aproximaciones

que

representaban caractersticas cognitivas y el aprendizaje humano, a travs


de estructurar la informacin. Este enfoque, anclado en la Inteligencia

20

Artificial (IA), dio lugar a lo que se conoce hoy como Sistemas Tutores
inteligentes (ITS).

Los investigadores de ITS adoptaron la idea de que los ordenadores


podan construirse para entender a estudiantes y dominios de conocimiento,
e inferir a partir de las interacciones del estudiante la estrategia de
enseanza ms apropiada. Sin embargo, diversos factores estancaron el
desarrollo de los ITS como por ejemplo el escaso conocimiento que se
tena entonces sobre la cognicin y aprendizaje humano. A medida que el
conocimiento en estas reas y en otras como la IA han avanzado, los ITS
tambin lo han hecho. As, en la actualidad los tutores inteligentes no han
recibido todava una aceptacin general debido principalmente a la
complejidad de diseo y definicin de los mismos que limitan su
aplicabilidad en la prctica.

El problema de la complejidad del diseo de los tutores inteligentes se


debe en parte a la arquitectura monoltica en la que se basa. Un paradigma
de diseo de estos sistemas, y otros dentro de la inteligencia artificial, trata
de resolver este problema aplicando una estrategia del tipo divide y
vencers , que ha dado lugar a lo que se conoce como sistemas
multiagente. Como su nombre lo indica, este tipo de sistemas est formado
por una serie de agentes, que funcionan como entidades computacionales
al estilo de los objetos, los cuales disponen de una autonoma completa y
que se comunican entre s para llevar a cabo una tarea concreta.

21

2.5 Fundamentos de Robtica

2.5.1 Conceptos y Elementos de Robtica

El trmino Robtica procede de la palabra robot. La robtica es, por lo tanto,


la ciencia o rama de la ciencia que se ocupa del estudio, desarrollo y
aplicaciones de los robots.

Los robots son dispositivos compuestos de sensores que reciben datos de


entrada y que pueden estar conectados a la computadora. Esta, al recibir la
informacin de entrada, ordena al robot que efecte una determinada
accin.

Puede ser que los propios robots, dispongan de microprocesadores que


reciben el input de los sensores y que estos microprocesadores ordenen al
robot la ejecucin de las acciones para las cuales est concebido. En este
ltimo caso, el propio robot es a su vez una computadora.

En la actualidad, los avances tecnolgicos y cientficos no han permitido


todava

construir

un

robot

realmente

inteligente,

aunque

existen

esperanzas de que esto sea posible algn da.

Hoy por hoy, una de las finalidades de la construccin de robots en su


intervencin en el proceso de fabricacin, estos robots, son los encargados
de realizar los trabajos repetitivos en las cadenas de procesos de

22

fabricacin como por ejemplo: pintar al spray, moldear a inyeccin, soldar


carroceras de automvil, trasladar materiales, etc.

2.5.2 Tipos de robots

Androides

Una visin ampliamente compartida es que todos los robots son


androides . Los androides son artilugios que se parecen y actan como
seres humanos.

Los robots de hoy en da vienen en todas las formas y tamaos, pero a


excepcin de los robots que aparecen en las ferias y espectculos, no se
parecen a las personas y por tanto no son androides.

Actualmente, los androides reales slo existen en la imaginacin y en las


pelculas de ficcin.

Fig. 2.1 Robots Androides

23

Mviles

Los robots mviles estn provistos de patas, ruedas u orugas que los
capacitan para desplazarse de acuerdo su programacin.

Fig. 2.2

Robots Mviles

Elaboran la informacin que reciben a travs de sus propios sistemas de


sensores y se emplean en determinado tipo de instalaciones industriales,
sobre todo para el transporte de mercancas en cadenas de produccin y
almacenes. Tambin se utilizan robots de este tipo para la investigacin en
lugares de difcil acceso o muy distantes, como es el caso de la exploracin
espacial y las investigaciones o rescates submarinos.

Mdicos

Los robots mdicos son, fundamentalmente, prtesis para disminuidos


fsicos que se adaptan al cuerpo y estn dotados de potentes sistemas de
mando.

Con ellos se logra igualar con precisin los movimientos y

funciones de los rganos o extremidades que suplen.

24

Fig. 2.3 Robot mdico

Industriales

Los robots industriales son artilugios mecnicos y electrnicos destinados a


realizar de forma automtica determinados procesos de fabricacin o
manipulacin. Los robots industriales, en la actualidad, son con mucho los
ms frecuentemente encontrados. Japn y Estados Unidos lideran la
fabricacin y consumo de robots industriales siendo Japn el nmero uno.

Fig. 2.4 Robot industrial

Teleoperadores

Hay muchos "parientes de los robots" que no encajan exactamente en la


definicin precisa. Un ejemplo son los teleoperadores. Dependiendo de

25

cmo se defina un robot, los teleoperadores pueden o no clasificarse como


robots.

Los teleoperadores se controlan remotamente por un operador humano.


Cuando pueden ser considerados robots se les llama "telerobots".
Cualquiera que sea su clase, los teleoperadores son generalmente muy
sofisticados y extremadamente tiles en entornos peligrosos tales como
residuos qumicos y desactivacin de bombas.

2.5.3

Robots Mviles

Los robots han llegado a ser algo comn en la industria, principalmente


debido a la calidad y productividad en la automatizacin de las tareas
industriales. Esto ha guiado a una importante innovacin tanto en la
investigacin y desarrollo de los sistemas robticos desde el advenimiento
de los modernos microprocesadores. La mayora de stos sistemas son
robots manipuladores u otros sistema fijos diseados para trabajar en un
espacio de trabajo limitado. En la actualidad la robtica se esta
expandiendo hacia nuevas reas y de hecho uno de estos campos es el
rea de la robtica mvil.

Fundamentacin de los Robots mviles

Existe un gran nmero de diferencias entre los requerimientos de los


tradicionales robots fijos y los requerimientos de los sistemas robticos

26

mviles, uno de estas consideraciones primarias es la incertidumbre del


espacio en el cual operar el vehculo. Para lo sistemas robticos fijos un
pequeo espacio de trabajo puede ser diseado para facilitar que la tarea
sea realizada. Para un sistema robtico mvil, es mucho ms difcil realizar
una ingeniera del espacio y a menudo se requiere que el sistema se
adapte y opere en un amplio inestructurado y dinmico mbito.

Esto

conlleva a la necesidad de desarrollar sensores y manejar la incertidumbre.

Los robots mviles de acuerdo a su definicin deben poseer algn medio


de locomocin, esto puede ser en forma de patas, ruedas, alas o algn otro
mecanismo, el mismo que debe estar en funcin del espacio o ambiente en
el cual el robot operar.

Elementos de un sistema robtico mvil

Sensores

internos

Navegacin

Planeacin
Y
Control

externos

Robot mvil y su
entorno

Fig. 2.5 Elementos del sistema robtico mvil


Sensores

27

Actuadores

El robot debe poseer algn medio para medir o percibir el entorno en que
opera para anticipar y responder a cambios en el mismo, los sensores
ayudan a la navegacin y a la planeacin. Estos sensores pueden ser
internos o externos para proporcionar estimaciones sobre la posicin del
robot

Navegacin

La navegacin consiste en estimar su posicin utilizando los datos


obtenidos a travs de los sensores, empleando para ello algoritmos y
formulaciones matemticas.

Planeacin y Control

Guiar al robot mvil hacia la meta deseada requiere dos competencias


fundamentales, primero, la habilidad de planear un camino usando la mejor
informacin disponible acerca del entorno y segundo, la habilidad de
controlar el movimiento del robot a lo largo del camino planeado evitando
los obstculos.

Los mtodos usados para la planificacin de la trayectoria del robot mvil


son altamente dependientes de la aplicacin, en robots que operan en un
entorno conocido y estructurado como por ejemplo una fbrica, es posible
planificar estas trayectorias con anterioridad al desarrollo del robot.

28

Entonces, la planificacin de trayectorias se convierte en el problema de


determinar la ruta ms corta desde la localizacin actual del robot hasta la
meta.

En un robot que opera en un entorno no estructurado y

parcialmente conocido, es necesario, que la planificacin de la trayectoria


sea realizada en lnea.

Actuadores

Son aquellos usados para realizar el movimiento del robot a travs de la


trayectoria establecida en el mdulo anterior.

2.5.4 El Problema De La Planificacin De Trayectorias para Robots Mviles

La planificacin se define como la bsqueda de una ruta libre de obstculos


desde una posicin inicial hasta otra final a travs del entorno de trabajo
del robot mvil. Esta operacin se realiza mediante el uso de la informacin
que se posee del entorno actualmente, la descripcin de la tarea de
navegacin y algn tipo de metodologa estratgica. As, el planificador se
define por el modelo del entorno y el algoritmo de bsqueda utilizado. El
caso ms simple consiste en considerar un entorno conocido en su
totalidad, esttico y modelado de forma geomtrica mediante polgonos.
Con estas apreciaciones resulta factible la aplicacin un algoritmo de
bsqueda en grafos, que emplee cierta funcin de coste para la obtencin
de la ruta.

29

Esquemticamente, se puede definir el problema de la planificacin como:


Dada una posicin inicial y una
y

su

respectiva

orientacin y una posicin final

orientacin de A en W, se debe

obtener una

trayectoria especificando una secuencia de posiciones y de orientaciones


evitando contacto con los Bi, comenzando con la posicin y orientacin
inicial y terminando en la posicin final y su correspondiente orientacin. Se
asume que W y los obstculos Bi son poliedros o polgonos fijos y A es
un poliedro o polgono mvil con orientacin fija. Se asume que el robot es
el nico objeto mvil en el espacio de trabajo y se ignoran las propiedades
dinmicas del robot.

Fig. 2.6 Planificacin de trayectorias

El problema de planificacin de movimiento tiene que resolverse para


cualquier tipo de robot que quiera desplazarse en un espacio fsico.

30

2.5.5 Mtodos Clsicos de Planificacin

Todos ellos se fundamentan en una primera fase de construccin de algn


tipo de
grafo sobre el espacio libre, segn la informacin poseda del entorno, para
posteriormente emplear un algoritmo de bsqueda en grafos (por ejemplo
tipo A*) que encuentra el camino ptimo segn cierta funcin de coste.

Planificacin basada en Grafos de Visibilidad

Los grafos de visibilidad (Nilsson, 1.969) proporcionan un enfoque


geomtrico til para resolver el problema de la planificacin. Supone un
entorno bidimensional en el cual los obstculos estn modelados mediante
polgonos. Para la generacin del grafo este mtodo introduce el concepto
de visibilidad, segn el cual define dos puntos del entorno como visibles si
y solo si se pueden unir mediante un segmento rectilneo que no intersecte
ningn obstculo (si dicho segmento resulta tangencial a algn obstculo
se consideran los puntos afectados como visibles). En otras palabras, el
segmento definido debe yacer en el espacio libre del entorno. As, si se
considera como nodos del grafo de visibilidad la posicin inicial, la final y
todos los vrtices de los obstculos del entorno, el grafo resulta de la unin
mediante arcos de todos aquellos nodos que sean visibles.

Planificacin basada en diagramas de Voronoi.

31

Al contrario que los mtodos basados en grafos de visibilidad, la


planificacin basada en diagramas de Voronoi sita la ruta lo ms alejada
posible de los obstculos. Con ello elimina el problema presentado por los
grafos de visibilidad de construir rutas semilibres de obstculos.

Fig. 2.7 Diagrama de Voronoi

Planificacin basada en modelado del espacio libre.

Se aplica a arquetipos de entornos con obstculos poligonales, y la


planificacin en este caso se realiza mediante el modelado del espacio
libre. Esta accin se lleva a cabo por los denominados cilindros rectilneos
generalizados (CRG). Al igual que los diagramas de Voronoi, con el uso de
los CRG se pretende que el vehculo navegue lo ms alejado de los
obstculos. De forma que la ruta que lleve al robot desde una configuracin
inicial hasta otra final estar compuesta por una serie de CRG

32

interconectados, de tal modo que la configuracin de partida se encuentre


en el primer cilindro de la sucesin y la final en el ltimo.

Fig. 2.8 Diagrama de modelado del espacio libre

Planificacin basada en la descomposicin en celdas.

Este tipo de mtodos se fundamenta en una descomposicin en celdas del


espacio libre. As, la bsqueda de una ruta desde una postura inicial qa
hasta otra final qf, consiste en encontrar una sucesin de celdas que no
presente discontinuidades, tal que la primera de ellas contenga a qa y la
ltima a qf. Al contrario que los mtodos expuestos a lo largo de este
apartado, no encuentra una serie de segmentos que modele la ruta, sino
una sucesin de celdas; por ello, se hace necesario un segundo paso de
construccin de un grafo de conectividad, encargado de definir la ruta.

33

Fig. 2.9 Descomposicin en celdas y grafo de conectividad

Planificacin basada en campos potenciales.

Los mtodos basados en campos potenciales poseen una concepcin


totalmente distinta a los expuestos ms arriba al estar basados en
tcnicas reactivas de navegacin. El mbito de uso de esta tcnica se
centra en la planificacin local en entornos desconocidos, como puede
ser el sorteo en tiempo real de obstculos o de los que no se tiene
constancia.

Fig. 2.10 Campos de potencial

34

2.5.6 Mtodo de Grafo De Visibilidad

Uno de los mtodos ms antiguos, une vrtices de obstculos (polgonos)


mediante rectas que no atraviesan obstculos.

Los grafos de visibilidad proporcionan un enfoque geomtrico para


solventar el problema de la planificacin. Este mtodo se encuentra muy
extendido debido a que opera con modelos poligonales de entorno, con lo
que existen algoritmos que construyen esta clase de grafos con un coste
computacional relativamente bajo. Este mtodo necesita modelos de
entornos definidos con polgonos, y puede trabajar tanto en el plano como
en el espacio.

Fig. 2.11 Grafo de visibilidad en un entorno de dos obstculos.

A continuacin se formaliza el primer tipo, ya que el segundo queda fuera


del mbito de esta tesis, se resume brevemente el algoritmo global basado
en el grafo de visibilidad para encontrar el camino mnimo entre dos puntos
dados.
35

Los pasos a realizar en este algoritmo son:

1. Determinacin de la posicin final.


2. Determinar las coordenadas de los vrtices de los obstculos.
(a) Si el contorno de los obstculos no es un polgono
convexo hay que calcular el polgono convexo
envolvente.
(b) Se ensanchan los polgonos convexos resultantes con
las dimensiones del robot. (Sumas de Minkowski)
(c) Analizar si existe solape entre obstculos tras el
ensanchamiento de los polgonos y en caso de ser
axial se unen como si fuesen un nico obstculo y se
aplica de nuevo el clculo envolvente.

3. Construir el grafo de visibilidad. Para todos los obstculos entre el


robot y el objetivo, empezando por la posicin del robot se van
trazando las rectas que unen los vrtices de distintos obstculos
y se comprueban si cortan o no las aristas de algn obstculo.
En caso negativo, se van almacenado las distancias entre
vrtices y coordenadas respectivas generalmente en una
estructura adecuada.

4. Bsqueda del camino ptimo. Para ello se utilizara cualquiera de


los algoritmos de clculo de distancia para grafos: Dikjstra,
Bellman, etc.

36

Tras todos los pasos se obtendr como resultado el camino mnimo a


seguir libre de obstculos.

Fig. 2.12 Grafo de visibilidad y camino mnimo

2.6

Geometra computacional

2.6.1 Definicin

La Geometra Computacional es una disciplina que se ocupa del diseo y


anlisis de algoritmos que resuelven problemas geomtricos. En ella
concurren

elementos

puramente

matemticos

con

cuestiones

herramientas propias de la informtica. Se desprende por tanto que es un


campo bastante reciente (20 - 30 aos). Sin embargo, sus antecedentes
pueden encontrarse en la Grecia Clsica, hace 2600 aos, donde los
problemas geomtricos que se planteaban los matemticos de la poca
eran abordados desde el punto de vista constructivo, es decir algortmico.

37

2.6.2 Objetivos.

El objetivo general es el desarrollo de herramientas (estructuras de datos,


anlisis, diseo e implementacin de algoritmos) para cualquier problema
que sea susceptible de una representacin geomtrica. Los objetivos
particulares dependen del rea de aplicacin y del problema a analizar. As,
para fijar ideas, la Geometra Computacional proporciona herramientas
para los tpicos siguientes:

(1) Gestin de grafos.


(2) Descomposiciones de los objetos geomtricos en objetos mas
simples.
(3) Identificacin, Bsqueda, Localizacin de primitivas bsicas.
(4) Agrupamiento de datos en primitivas intermedias.
(5) Estimacin de relaciones topolgicas de adyacencia.
(6) Optimizacin geomtrica. Programacin lineal.
(7) Tratamiento de Imagen.
(8) Inspeccin. Identificacin de patrones.
(9) Generacin de entornos. Simulacin.
(10) Robtica.
(11) Anlisis del movimiento.

Algunas aplicaciones relacionadas con estos tpicos son:

(1) Grafos de Visibilidad, Grafos equilibrados, Quadtrees, Octrees.

38

(2) Triangulaciones, trapezoidizaciones.


(3) Reconocimiento, Generacin de mallas, Deteccin de hechos
significativos.
(4) Envolventes convexas.
(5) Etiquetado segn atributos para la interpretacin semntica.
(6) Toma de decisiones. Manufactura.
(7) Imgenes Biomdicas, Sistemas de Informacin Geogrfica.
(8) Control de calidad asistido.
(9) Reconstruccin 3D a partir de mltiples vistas. Animacin asistida.
(10) Planificacin

de

movimientos.

Cinemtica

Dinmica

computacionales.
(11) Control de trfico. Navegacin automtica.

2.6.3 Aplicaciones

Uno de los aspectos ms interesantes de la Geometra Computacional es


la gran aplicabilidad de sus resultados.

El significado del trmino computacin se ha expandido notoriamente


desde la introduccin de los ordenadores, har ahora unos cincuenta anos.

Atendiendo a los objetos que procesan, destacan tres tipos de aplicaciones


de los ordenadores. La primera generacin va a ser la de los clculos
numricos, aplicados sobre todo a problemas cientficos y tcnicos. La
segunda, propiciada por necesidades ms comerciales y administrativas,

39

incorporaba largas listas de datos (por ejemplo alfabticos), con vistas a


cmo leer, almacenar, modificar, seleccionar, e imprimir esos datos.

Todo esto naturalmente pervive, y con fuerza, pero se vive una tercera
generacin de aplicaciones dominada por el procesamiento de informacin
geomtrica y grfica, presente en reas tan diversas como son la medicina,
la cartografa, el control de robots o el diseo artstico. La Geometra
Computacional ha emergido, ciertamente, por la necesidad de dar
respuesta a esta nueva y creciente demanda.

Se podra decir que las aplicaciones van a preceder la disciplina, y ahora


que sta tiene ya un ncleo terico slidamente constituido, como sus
vertientes prcticas corresponden a tecnologa de mxima vanguardia, la
demanda de resultados contina con la misma fuerza y exigencia que al
principio. Por eso se dice que, en Geometra Computacional, las
aplicaciones tienen un protagonismo esencial.

Dentro de los campos de aplicacin ms directamente relacionados con la


disciplina destacaremos:

La Informtica Grfica,
El Diseo y Fabricacin Asistida por Ordenador (CAD/CAM),
La Caracterizacin y Reconocimiento Automtico de Formas
(Pattern Recognition),
El Diseo VLSI,

40

La Visin Artificial,
La Cartografa y
La Robtica.

Esta ltima en especial objeto de la presente tesis, utiliza una combinacin


del Algebra y la Geometra Computacional, puesto que para la planificacin
de movimientos requiere una combinacin de tcnicas procedentes de
ambas reas, donde es posible mostrar la utilidad de una aproximacin
matemtica al problema.

2.7

Metodologa MSF

2.7.1 Microsoft Solution Framework (MSF)

Esta es una metodologa flexible e interrelacionada con una serie de


conceptos, modelos y prcticas de uso, que controlan la planificacin, el
desarrollo y la gestin de proyectos tecnolgicos. MSF se centra en los
modelos de proceso y de equipo dejando en un segundo plano las
elecciones tecnolgicas.

2.7.2 Caractersticas de MSF

MSF tiene las siguientes caractersticas:

41

Adaptable: es parecido a un comps, usado en cualquier parte


como un mapa, del cual su uso es limitado a un especfico lugar.
Escalable: puede organizar equipos tan pequeos entre 3 o 4
personas, as como tambin, proyectos que requieren 50 personas a
ms.
Flexible: utilizada en el ambiente de desarrollo de cualquier cliente.
Tecnologa Agnstica: porque puede ser usada para desarrollar
soluciones basadas sobre cualquier tecnologa.

2.7.3 Modelos

MSF se compone de varios modelos encargados de planificar las diferentes


partes implicadas en el desarrollo de un proyecto: Modelo de Arquitectura
del Proyecto, Modelo de Equipo, Modelo de Proceso, Modelo de Gestin
del Riesgo, Modelo de Diseo de Proceso y finalmente el modelo de
Aplicacin.

Modelo de Arquitectura del Proyecto: Diseado para acortar la


planificacin del ciclo de vida. Este modelo define las pautas para
construir proyectos empresariales a travs del lanzamiento de versiones.

Modelo de Equipo: Este modelo ha sido diseado para mejorar el


rendimiento del equipo de desarrollo.

42

Proporciona una estructura flexible para organizar los equipos de un


proyecto. Puede ser escalado dependiendo del tamao del proyecto y
del equipo de personas disponibles.

Modelo de Proceso: Diseado para mejorar el control del proyecto,


minimizando el riesgo, y aumentar la calidad acortando el tiempo de
entrega. Proporciona una estructura de pautas a seguir en el ciclo de
vida del proyecto, describiendo las fases, las actividades, la liberacin
de versiones y explicando su relacin con el Modelo de equipo.

Modelo de Gestin del Riesgo: Diseado para ayudar al equipo a


identificar las prioridades, tomar las decisiones estratgicas correctas y
controlar las emergencias que puedan surgir. Este modelo proporciona
un entorno estructurado para la toma de decisiones y acciones
valorando los riesgos que puedan provocar.

Modelo de Diseo del Proceso: Diseado para distinguir entre los


objetivos empresariales y las necesidades del usuario. Proporciona un
modelo centrado en el usuario para obtener un diseo eficiente y
flexible a travs de un enfoque iterativo. Las fases de diseo conceptual,
lgico y fsico proveen tres perspectivas diferentes para los tres tipos de
roles: los usuarios, el equipo y los desarrolladores.

Modelo de Aplicacin: Diseado para mejorar el desarrollo, el


mantenimiento y el soporte, proporciona un modelo de tres niveles para

43

disear y desarrollar aplicaciones software. Los servicios utilizados en


este modelo son escalables, y pueden ser usados en un solo ordenador
o incluso en varios servidores.

2.7.4 Modelo de Proceso de Desarrollo de Aplicaciones MSF

El Modelo de Proceso de Desarrollo de MSF describe un ciclo de vida que


puede

ser

usado

para

desarrollar

software

de

manera

exitosa,

estableciendo el orden en
el cual se deben realizar las actividades. Como puede verse en la Figura
1.12, este modelo consiste en cinco fases distintas, cuyos nombres
dependen del tipo del proyecto en el que se aplica. Cada fase del proceso
de desarrollo culmina con un hito visible, tal como se describe a
continuacin:

Implementacin
Completa

Visin/Alcance
Aprobados

Release
Aprobado

Alcance
Completo

Planes del
Proyecto
Aprobados

Fig. 2.13 Modelo de Proceso de Desarrollo de Aplicaciones MSF.

44

a) Fase 1: Visin. En esta fase el equipo y el cliente definen los


requerimientos del negocio y los objetivos generales del proyecto. La
fase culmina con el hito Visin y Alcance aprobados.

b) Fase 2: Planeacin. Durante la fase de planeacin el equipo crea un


borrador del plan maestro del proyecto, adems de un cronograma del
proyecto y de la especificacin funcional del proyecto. Esta fase culmina
con el hito Plan del proyecto aprobado.

c) Fase 3: Desarrollo. Esta fase involucra una serie de releases internos


del producto, desarrollados por partes para medir su progreso y para
asegurarse que todos sus mdulos o partes estn sincronizados y
pueden integrarse. La fase culmina con el hito Alcance completo.

d) Fase 4: Estabilizacin. Esta fase se centra en probar el producto. El


proceso de prueba hace nfasis en el uso y el funcionamiento del
producto en las condiciones del ambiente real. La fase culmina con el
hito Release Readiness aprobado.

e) Fase 5: Implantacin: En esta fase el equipo implanta la tecnologa y


los componentes utilizados por la solucin, estabiliza la implantacin,
apoya el funcionamiento y la transicin del proyecto, y obtiene la
aprobacin final del cliente. La fase termina con el hito Implantacin
completa.

45

CAPITULO III
METODOLOGA DEL PROYECTO

3.1 FASE DE VISION

3.1.1 Planteamiento del problema

En la actualidad, habitualmente, la enseanza de una asignatura tcnica


necesita el uso de materiales de laboratorio caros, por lo que, en muchas
ocasiones, stos son insuficientes para todos los alumnos. Adems, se
requiere que los alumnos vayan a los laboratorios a realizar las prcticas,
debindose acomodar a los horarios ofrecidos As, surge la necesidad de
mtodos alternativos, como los laboratorios virtuales.

Un laboratorio virtual provee una forma de realizar experimentos sobre un


equipamiento que no esta fsicamente presente, permite la creacin de
espacios virtuales donde los estudiantes puedan llevar a cabo las prcticas
de laboratorio.

Los laboratorios virtuales son herramientas de apoyo a la enseanza en


ciertas reas, en ste caso de la Investigacin de la Robtica Mvil, a partir
de estos hechos, y si se aade la participacin de un tutor inteligente para

46

complementar la labor de los laboratorios virtuales se pueden obtener


ventajas como:
La informacin siempre est disponible y completa en forma de
lecciones o ayuda.
Retroalimentacin inmediata cuando hay errores o conceptos mal
entendidos.

El problema consiste en construir un laboratorio virtual en donde se


expliquen los conceptos tericos de la robtica mvil, se aborde el
problema de

la planeacin de trayectorias que consiste en: dada una

posicin inicial y una posicin final, obtener una trayectoria de menor


distancia posible evitando colisiones con los obstculos, asumiendo que el
robot es el nico objeto mvil en el espacio de trabajo e ignorando las
propiedades dinmicas del robot; a travs de un simulador. El laboratorio
debe permitir adems realizar la programacin del robot en un lenguaje de
alto nivel validando para ello el cdigo ingresado y la teleoperacin del
mismo pudiendo visualizar en pantalla su movimiento.

3.1.2

Visin de la solucin

Se requiere implantar un laboratorio virtual de robtica mvil para inicializar


a los estudiantes dentro de los conceptos de Robtica Mvil y garantizar su
aprendizaje. Los laboratorios virtuales ofrecen muchas ventajas para la
enseanza de materias tecnolgicas, tales como la flexibilidad de horarios
y acceso de los estudiantes a un equipamiento caro y limitado.

47

El principal propsito de este sistema es proveer una herramienta


educativa entretenida para la audiencia que consiste en estudiantes de
ingeniera, el cliente esta en proceso de acceder a un robot capaz de ser
controlado remotamente, programar dicho robot, visualizar una simulacin
de un mtodo de planificacin de trayectorias y adems acceder a
contenidos tericos ms relevantes de la robtica.

Esta aplicacin permitir a los estudiantes controlar y aprender acerca de


los robots mviles, para esto se crear un tutorial en formato html de fcil
navegacin para los estudiantes, para impartir la teora correspondiente.

Se incluir un simulador de la planificacin de trayectorias de robots


mviles para el mtodo de planificacin de grafo de visibilidad que permita
dos modos de acceso: simulacin automtica y prctica guiada con
interaccin del estudiante, supervisada por un tutor.

Se proveer de un entorno tanto para programar y descargar cdigo al


robot, que se comportar como un compilador, el lenguaje en el que se
programar al mvil ser C#, y otro entorno para realizar una teleoperacin
libre, en el cual se podr visualizar los movimientos del robot a travs de
una cmara de video.

El robot mvil al que se hace referencia en la programacin y teleoperacin


ser un vehculo ensamblado usando el kit de robtica de Lego Mindstorms.

48

3.1.3 Metas del proyecto

Se espera que con el proyecto se puedan cumplir las siguientes metas:

Generar una herramienta de software educativo de calidad que permita:


o Implementacin de la simulacin del clculo de la planificacin
de trayectorias de robot mvil basado en grafos de visibilidad.
o Creacin de un entorno para la teleoperacin libre del robot con
movimientos bsicos.
o Establecimiento de un modo de prctica guiada por un tutor
inteligente.
o Definicin de un entorno de programacin de robots en lenguaje
C#.
o Presentacin de los contenidos tericos sobre robtica mvil en
formato CAI de fcil navegacin.

Desde el punto de vista docente:


o Que el alumno pueda poner en prctica los conocimientos
adquiridos en la asignatura de robtica mediante sencillos
ejemplos simulados.
o Que la herramienta ayude al alumno a comprender la teora
subyacente bajo los algoritmos de planificacin y seguimiento de
trayectorias, los modelos
obstculos.

49

cinemticos y la evitacin de

3.1.4 Matriz de tradeoffs del proyecto

En la siguiente tabla se muestra la matriz de tradeoffs del proyecto de


laboratorio virtual de robtica mvil con tutor inteligente:

Restriccin por

Restriccin

Restriccin

optimizar

negociable

aceptada

Recursos

Cronograma

Requerimientos

Tabla 3.1 Matriz de tradeoffs

En la Tabla 3.1 se indica que durante esta Fase, se acept los recursos
con los que se dispona para llevar a cabo el proyecto, mientras que el
cronograma propuesto qued abierto a posibles cambios junto con el
conjunto de requerimientos finales del producto, que pueden aparecer
durante las siguientes fases.

3.1.5 Alcance

El laboratorio virtual de robtica mvil debe:

1. Proporcionar los contenidos tericos de la robtica mvil.

2. Simular la navegacin de un robot en un entorno conocido con una


serie

de

obstculos

donde
50

el

alumno

puede

modificar

la

configuracin del entorno, el punto de origen y destino; y visualizar


interactivamente el efecto que la modificacin de estos tiene sobre la
trayectoria elegida para ir del punto inicial al final y sobre el
seguimiento que el robot hace a dicha trayectoria. El mtodo para la
planificacin de trayectorias utilizado ser el grafo de visibilidad.

3. Permitir la interaccin del alumno con el simulador a travs de una


prctica guiada supervisada por un tutor inteligente en donde paso a
paso vaya desarrollando un ejercicio de planificacin.

4. Facultar la programacin del robot mvil Lego en lenguaje C#.

5. Posibilitar la teleoperacin del vehculo robtico con movimientos


bsicos.

3.1.6 Lista de riesgos

Se ha identificado una lista de tres riesgos que poseen el potencial de


causar que el proyecto realice modificaciones en el cronograma
preestablecido.

A cada riesgo fue asignando una probabilidad de ocurrencia y una medida


del impacto, multiplicando estos factores dan como resultado el riesgo total,
calculado el riesgo total de los tres riesgos se asume que se atendern
primero las condiciones cuyo riesgo total sea ms alto.

51

A continuacin se definen los posibles riesgos que pueden aparecer


durante el desarrollo del proyecto:

Condicin/

Falta de

Complejidad de

Limitaciones de la

Descripcin

informacin acerca

los algoritmos

interfaz que

del tema
Consecuencia

controla el robot

Retraso en la

Retraso en la

Limitadas directivas

entrega del

implementacin

para manipular el

producto final

robot mvil

Probabilidad

Alto (3)

Alto(3)

Medio (2)

Impacto

Alto (3)

Alto(3)

Medio (2)

Prioridad

Alta (3)

Alta(3)

Baja (1)

Mitigacin

Identificar las

Asignar ms

Buscar un mejor

personas o

tiempo a la

componente

instituciones

implementacin

encargadas de
proveer
informacin y
establecer
contactos
Riesgo Total

27

27

Tabla 3.2 Lista de riesgos.

3.1.7 Esquema de la solucin

A continuacin se presenta el esquema de la solucin en el cual se puede


observar que el Laboratorio virtual de robtica mvil se compondr de
cuatro subsistemas, el subsistema Tutorial que contendr la teora
subyacente a la robtica mvil en formato HTML, los subsistemas de

52

Simulacin de planificacin de trayectorias, Entorno de programacin y de


teleoperacin de tipo aplicacin Windows forms, estos dos ltimos tendrn
comunicacin con el robot mvil.

Tutorial
HTML

Laboratorio
Virtual de
Robtica
Mvil

Simulador de planificacin de trayectorias

Entorno de programacin

Mvil

Entorno de teleoperacin

Fig. 3.1 Esquema de la solucin

3.1.8 Visin aprobada

Al culminar la fase de visin, en este punto, se ha clarificado la direccin


del proyecto, las caractersticas que incluir y no incluir la solucin.

53

3.2 FASE DE PLANEACION

3.2.1 Requerimientos del sistema

De la fase anterior se desprenden los requisitos del sistema tras haber


analizado el planteamiento del problema y establecido la visin de la
solucin, stos se muestran a continuacin:

No. Requerimiento

Descripcin Requerimiento

R1

Mostrar contenidos tericos estructurados

R2

Imprimir apartados

R3

Realizar evaluaciones de aprendizaje

R4

Ingresar datos (punto inicial, final y polgonos)

R5

Ampliar los obstculos

R6

Generar el grafo de visibilidad

R7

Calcular el camino mnimo

R8

Validar la comunicacin con el mvil

R9

Realizar movimientos bsicos

R10

Visualizar por video al mvil

R11

Ingresar cdigo

R12

Compilar cdigo

R13

Ejecutar cdigo

Tabla 3.3 Listado de requerimientos del sistema

54

3.2.2 Diseo Conceptual

Perfil de los usuarios

De la fase anterior se identific que en este sistema existir un nico


usuario, cuyo perfil se describe a continuacin:

Ubicacin:

Nivel de educacin universitario


Experiencia en el uso de computadores y
software en general.

Capacitacin:

Conocimientos previos de clculo.


Habilidad y experiencia en la programacin
orientada a objetos.
Contar con una herramienta que facilite la
comprensin

de

la

teora

fundamentos

Expectativas:
matemticos de la robtica mvil, en particular
de la planeacin de trayectorias.

Tabla 3.4 Perfil del usuario

Escenarios de uso

Se han identificado cuatro escenarios de uso del sistema, de acuerdo al


Diagrama de casos de uso de la figura 3.2, cada uno de ellos se describe a
continuacin.

55

Navegacin por contenidos

Simulacin

Estudiante
Programacin

Teleoperacin

Fig. 3.2 Diagrama de Casos de Uso

Descripcin de los casos de uso

Nombre

Navegacin por contenidos

Actores

Estudiante

Funcin

Mostar los contenidos tericos del curso de robtica


mvil

Descripcin

El estudiante puede acceder libremente a los tpicos del


curso, imprimirlos si lo desea, al finalizar un apartado
puede tomar un test de evaluacin para verificar su
aprendizaje.

Referencias

R1, R2, R3

Precondicin

Haber instalado correctamente el sistema.

Poscondicin El usuario adquiere los conocimientos necesarios sobre


robtica mvil y esta en la capacidad de manipular los
otros mdulos que componen el sistema.
Tabla 3.5 Caso de Uso Navegacin por contenidos

56

Nombre

Simulacin

Actores

Estudiante

Funcin

Realizar la simulacin de la planificacin de trayectorias

Descripcin

El estudiante puede escoger entre los modos automtico


y prctica guiada, en el primero ingresar datos,
obtendr el resultado y visualizar la simulacin, en el
segundo, interactuar paso a paso con el simulador
guiado por un tutor.

Referencias

R4, R5, R6, R7

Precondicin

Tener

las

bases

tericas

sobre

planificacin

de

trayectorias
Poscondicin Simulacin y/o prctica realizada satisfactoriamente.

Tabla 3.6 Caso de Uso Simulacin

Nombre

Teleoperacin

Actores

Estudiante

Funcin

Manejo del robot mvil en un entorno libre

Descripcin

El estudiante luego de establecer comunicacin con el


mvil puede operarlo o guiarlo a travs de movimientos
bsicos por un entorno libre de obstculos y visualizando
a travs de una cmara de video los movimientos
ejecutados por el robot.

Referencias

R8, R9, R10

Precondicin

Tener la torre IR y la cmara de video conectada al


computador y el robot mvil encendido.

Poscondicin El robot mvil realiza los movimientos definidos por el


usuario y se visualizan a travs de la cmara de video.

Tabla 3.7 Caso de Uso Teleoperacin

57

Nombre

Programacin

Alias
Actores

Estudiante

Funcin

Compilar y ejecutar el cdigo ingresado por el estudiante.

Descripcin

El estudiante ingresa las instrucciones que luego


compilar, si no existen errores, el cdigo ser ejecutado
y descargado al robot mvil.

Referencias

R10, R11, R12, R13

Precondicin

Conocimiento de programacin orientada a objetos.

Poscondicin Cdigo descargado al robot y ejecutado por el mismo.


Tabla 3.8 Caso de Uso Programacin

Modelo Conceptual

A continuacin se presenta el modelo conceptual con los paquetes que


conforman la solucin:

Laboratorio Virtual de Robtica Mvil

<<subsystem>>
Simulacin

<<subsystem>>
Tutorial

<<subsystem>>
Programacin

<<subsystem>>
Teleoperacin

Fig. 3.3 Diagrama de estructura del sistema

Los diagramas restantes que conforman el modelado de la solucin se


pueden apreciar en el anexo A.

58

3.2.3 Diseo Lgico

Diseo de la interfaz de usuario

Mdulo Tutorial

La interfaz de este subsistema se desarrollar tomando en cuenta normas


y estndares para tener un tutorial de tipo web consistente. Los
lineamientos a seguir son:
Usar lenguaje HTML estndar.
Tener en consideracin el peso de las pginas para su adecuado
despliegue.
Diagramar las pginas usando tablas para estructurar tanto la
informacin como los elementos grficos.
Usar una combinacin de colores adecuada y grficos alusivos al
tema.
En la siguiente figura se muestra el diseo de la interfaz del tutorial.

ENCABEZADO

MEN
CONTENIDOS

Mecanismos
de acceso

Fig. 3.4 Diseo interfaz de contenidos

59

Mdulo de Simulacin

Este mdulo ser de tipo Windows forms, se compone de dos partes, la


simulacin automtica y la prctica guiada, en ambos casos el diseo ser
del tipo estndar de Windows procurando una disposicin adecuada de los
elementos grficos dentro de la ventana para no sobrecargarla.

El modo de ingreso de datos ser a travs del Mouse debido al contexto de


la aplicacin, en el caso de la prctica guiada se utilizar adems entrada
de datos por teclado.

Las siguientes figuras muestran los diseos para estas interfaces.

Barra de Ttulo

Coordenadas

Entorno de navegacin
Parmetros

Etiquetas

Fig. 3.5 Diseo interfaz de simulacin automtica

60

Barra de Ttulo

Coordenadas

Informacin

Entorno de navegacin
Parmetros

Tutor Inteligente

Grid de ingreso de datos para


validacin.

Fig. 3.6 Diseo interfaz de simulacin - prctica guiada

Mdulo de Teleoperacin

La interfaz de este subsistema constar de una sola ventana en la cual se


dispondr de botones de control del vehculo robtico, un espacio de
simulacin en el cual se visualice la posicin del mismo dentro del entorno
de navegacin y un control para obtener imgenes desde una cmara de
video que permita observar la teleoperacin del real equivalente.

En esta interfaz la iteracin con e usuario se realizar a travs del Mouse, a


continuacin se presenta el aspecto de la misma.

61

Barra de Ttulo

Coordenadas
Video

Entorno de navegacin

Botones de
navegacin

F
i
g
.
Fig. 3.7 Diseo interfaz de Teleoperacin

Mdulo de Programacin

En este mdulo la interfaz constar de una nica ventana en la cual se


utilizar un men para operaciones con archivos, un control de texto
enriquecido para el ingreso de las instrucciones en lenguaje c#, y cajas de
texto para obtener datos necesarios para el programa.

Contar adems con botones de comando para realizar la compilacin y


ejecucin de los programas del usuario.

El esquema de esa interfaz se presenta como sigue:

62

Barra de ttulo
Men

Datos de programa
rea de trabajo

Botones de comando

Fig. 3.8 Interfaz de programacin

Componentes de la solucin

Tutorial
MSAgent
COM+
Simulacin
MSAgent API

Teleoperacin
RCXNet
COM+
Programacin
SDK
Lego Mindstorms
App. Windows Forms

Men Principal HTML


Laboratorio Virtual de Robtica Mvil

Fig. 3.9 Componentes de la solucin

63

Torre IR+RCX

Como se puede apreciar en la figura anterior, el diagrama de los elementos


que conforman la solucin depende de lo escenarios de uso que a su vez
conforman cuatro subsistemas que la componen.

Los subsistemas Tutorial y Simulacin harn uso de un control DLL ActiveX


que descansa completamente en la tecnologa COM y que hace uso de
componentes del MSAgent API.

Los subsistemas de Teleoperacin y Programacin, por otro lado, harn


uso de la DLL RCXNET, para lo cual es necesario contar con el SDK de
Lego Mindstorms para permitir la interoperatividad con el robot mvil.

3.2.4 Diseo Fsico

Restricciones de tecnologa

1. El curso tutorial de robtica mvil ser desarrollado en HTML.


2. Los mdulos de simulacin, programacin y teleoperacin sern
desarrollados en Visual C#.NET.
3. Los mdulos que requieran conectarse con el robot mvil lo harn a
travs de la librera RCXNET, pero para ello se debe tener
preinstalado el SDK de Lego Mindstorms.
4. Para la obtencin del video se
Windows.

64

lo har a travs de la API de

5. El tutor inteligente se programar utilizando un ActiveX MSAgent de


tecnologa COM+ para el caso de las aplicaciones Windows y el
tutorial.

Descripcin de herramientas

Macromedia Dreamweaver
Es la opcin profesional para la creacin de aplicaciones y sitios Web.
Ofrece una combinacin muy til de herramientas de diseo visual,
funciones de desarrollo de aplicaciones y soporte para la edicin de cdigo.
Todo ello permite crear sitios y aplicaciones atractivos basados en
estndares de forma rpida.

Visual C#.Net
Es

una

herramienta

que

tiene

soporte

RAD

(Rapid

Application

Developement) y provee caractersticas que lo convierten en un poderoso


lenguaje orientado a objetos.

MSAgent

Los Microsoft Agent son sistemas de servicios programables que presentan


caractersticas animadas dentro de una interfaz. Se puede utilizar esta
tecnologa como ayudante, asistente o entretenimiento. Como algunos
controles, el MS Agent se puede implementar en pginas Web.

65

En sntesis, los Agents otorgan una nueva forma de interaccin con el


usuario, llamada conversacional. Esta interaccin se asemeja a la
comunicacin humana utilizando voz, gestos y adems no solamente
responde a la entrada a travs de teclado y el ratn, sino que tambin tiene
la opcin de reconocimiento de discurso o voz.

Lego MindStorms

LEGO MindstormsTM surgi de la creacin del MIT Media Laboratory, el kit


de Lego incluye mltiples piezas, conectores, sensores, luces, cables y
motores para la construccin del robot deseado. Incluye adems el ladrillo
programable de LEGO, tambin llamado RCX (Robotic Command Center),
sobre el cual se colocan las piezas y dems dispositivos para construir el
robot. El RCX es una microcomputadora con su CPU, RAM, puerto de
comunicacin serie por infrarrojo, botones, visor, puertos de entrada y
salida. La programacin se realiza desde el PC y el programa se almacena
en el RCX a travs de la torre de comunicacin por infrarrojos conectada al
PC en el puerto serie o USB.

Implementacin de la interfaz de usuario

A continuacin se muestra las interfaces de usuario implementadas para


los diferentes mdulos que componen la solucin.

66

Pantalla Principal

Como se puede observar en la siguiente imagen, la pantalla principal


contiene enlaces para acceder a los diferentes subsistemas que componen
la solucin.

El asistente personal realizar una introduccin al laboratorio virtual. Esta


interfaz se implement en formato HTML.

Fig. 3.10 Interfaz Pantalla principal

67

Mdulo Tutorial

La interfaz para el Tutorial de Robtica Mvil esta implementada en HTML


estndar consta de un conjunto de frames.

En el frame superior se encuentra el encabezado, en el izquierdo se


encuentran los enlaces para acceder a las diferentes lecciones que
componen el tutorial y en su parte inferior mecanismos de acceso que
facilitan la navegacin. En el frame central se muestra el contenido de las
lecciones.

Fig. 3.11 Interfaz del Tutorial

68

Mdulo de Simulacin

Al iniciar este mdulo aparecer una pequea pantalla a travs de la cual


se puede escoger entre los dos modos de simulacin.

Fig. 3.12 Interfaz de Modo de Ingreso

Interfaz del Modo Automtico

La interfaz del subsistema de Simulacin se implement con controles


estndar, para visualizar las coordenadas, ingresar los parmetros de la
situacin y obtener los resultados.

El espacio en donde se desenvuelve la simulacin es un control Picture box


de 500x500 pxel de tamao.

69

Fig. 3.13 Interfaz del Mdulo de simulacin

Modo automtico

Interfaz del Modo de Prctica Guiada

En la prctica guiada la interfaz es similar a la anterior, salvo que existen


controles adicionales para el ingreso de datos, visualizacin e interaccin
con el tutor inteligente de tipo asistente personal.

Al Picture box que representa el espacio de simulacin se le ha asociado


un men para acceder a las operaciones del mtodo de planificacin de
trayectorias.

70

Este tutor inteligente es un carcter animado MsAgent que regula el


proceso de la prctica.

Fig. 3.14 Interfaz del Mdulo de simulacin

Modo prctica guiada

Mdulo de Teleoperacin

En la interfaz del mdulo de teleoperacin se incluyen controles estndar


para visualizacin de coordenadas y operacin del robot mvil, una vez
ms el espacio de navegacin esta representado por un control Picture box.

Existe otro control picture box que servir para la captura de video.

71

Fig. 3.15 Interfaz mdulo de Teleoperacin

Mdulo de Programacin

La interfaz del mdulo de Programacin contiene controles Windows


estndar para ingresar los datos del programa y realizar la compilacin y
ejecucin del mismo.

La ventana tiene un men asociado donde se encuentran las opciones de


Archivo; el rea de edicin es un control label multilnea.

72

Fig. 3.16 Interfaz mdulo de Programacin

Arquitectura de la solucin

Torre IR
Laboratorio Virtual
de Robtica Mvil
Estudiante

Mvil

Fig. 3.17 Vista arquitectnica de la implantacin de la solucin

73

La figura anterior muestra la vista arquitectnica de la implantacin de la


solucin en la cual el estudiante accede al laboratorio virtual a travs del
PC, en el caso de la teleoperacin del robot ste establece comunicacin al
mvil a travs de la torre infrarroja.

3.2.5 Planeacin del Proyecto Aprobada

Al alcanza este hito de finalizacin de la fase de planeacin se han definido


las especificaciones funcionales
proyecto.

74

de lo que va a ser entregado en el

3.3 FASE DE DESARROLLO

3.3.1 Cdigo fuente

SUBSISTEMA TUTORIAL

Programacin de las pginas

Las pginas se codificaron en lenguaje HTML estndar, la interfaz esta


formada por un conjunto de marcos y se uso VBScript en algunos casos y
en otros JScript para las acciones especiales en botones y enlaces.

Para la estructuracin de los contenidos se tom en cuenta los


lineamientos que establece el E-Learning, esto es, se incluye un plan de
leccin, bienvenida, desarrollo del contenido, una actividad de recreacin y
autoevaluacin.

El mapa del sitio y los contenidos del tutorial de robtica mvil se pueden
encontrar en el Anexo B.

Programacin del tutor

Para usar Microsoft Agent, la etiqueta OBJECT del Microsoft Agent Control
debe ser colocada en la pgina. El Agent object ser referido en el script

75

usando el nombre asignado al campo ID de la etiqueta OBJECT en este


caso "AgentControl".

<OBJECT ID="AgentControl" width=0 height=0


CLASSID="CLSID:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"
CODEBASE="#VERSION=2,0,0,0">
</OBJECT>

Para usar la salida Text-to-Speech (TTS), un motor TTS compatible con


Microsoft Agent debe estar instalado en la mquina cliente. La licencia de
Microsoft Agent incluye una licencia para usar el motor TTS TruVoice de
Lernout & Hauspie con Microsoft Agent.

<OBJECT ID= TruVoice width=0 height=0


CLASSID= CLSID:B8F2846E-CE36-11D0-AC83-00C04FD97575
CODEBASE= #VERSION=6,0,0,0 >
</OBJECT>

En ambos casos la presencia de la etiqueta OBJECT causar que el


control sea automticamente descargado e instalado si no se encuentra en
la mquina cliente cuando la pgina es procesada. El atributo CODEBASE
es usado para especificar la ltima versin del objeto.

Para la programacin de las acciones del MSAgent se utiliz VBScript, los


mtodos usados ms frecuentes son Play, Move y Speak.

76

SUBSISTEMA SIMULACIN

En este apartado se explica el modelo de clases usado para el desarrollo


de la aplicacin que implementa el clculo del camino mnimo en un
entorno poligonal.

La implementacin de este subsistema se basa en funciones de geometra


analtica y algoritmos geomtricos para el procesamiento del grafo de
visibilidad, la ampliacin de obstculos y el clculo del camino mnimo;
stos pueden ser consultados en el Anexo C.

Este subsistema se compone de las siguientes clases:

Clase Figura
Clase Vrtice
Clase Lnea
Clase Polgono
Clase Robot
Clase Nodo
Clase Form1

A continuacin se enumeran cada una de las clases haciendo referencia a


las propiedades y a los mtodos de cada clase, se hace un breve
comentario de su significado y su uso.

77

Clase Figura

Descripcin:

Es una clase abstracta que define una figura en el plano de los nmeros
enteros positivos.

PROPIEDADES
Graphics
Color
Color
Matrix
Bool

Lienzo
Color
Colorbg
Matriz
Visible

Figura(lienzo, color,
colorbg)

Dibujar() -> Void


Trasladar(x,y) -> Void
Rotar(angle) -> Void

CONSTRUCTOR
Crea una figura

MTODOS
Dibuja la figura. Mtodo abstracto para ser
redefinido en clases hijas.
Traslada la figura. Mtodo abstracto para
ser redefinido en clases hijas.
Rota la figura. Mtodo abstracto para ser
redefinido en clases hijas.

Motrar() -> Void

Mostrar una figura en pantalla.

Ocultar() -> Void


Mover(x,y) -> Void

Oculta la figura mostrada.


Mueve la figura a la ubicacin de
coordenadas (x,y) y la muestra en pantalla
Gira a figura un ngulo determinado y la
muestra en pantalla.

Girar(angle) -> Void

Tabla 3.9 Clase Figura

78

Clase Vrtice

Descripcin:

Hereda de la clase Figura, modeliza un punto vrtice en el plano de los


nmeros enteros positivos.

PROPIEDADES
Hereda propiedades de la clase Figura
PointF

_posicin

CONSTRUCTOR
Vrtice(lienzo, color, colorbg, Crea el vrtice de coordenadas (x,y).
x, y):

MTODOS
Hereda propiedades de la clase Figura
Dibuja el vrtice con el color dado.
Dibujar(color) -> Void
Mtodo redefinido.
Traslada el vrtice al punto (x,y).
Mtodo redefinido.
Rota el vrtice. Mtodo heredado.

Trasladar(x,y) -> Void


Rotar(angle) -> Void

Muestra etiquetas con los valores de


las cordenadas.
Oculta las etiquetas con los valores de
las cordenadas.

ShowLabel()->Void
HideLabel()-> Void

Tabla 3.10 Clase Vrtice

79

Clase Lnea
Descripcin:
Hereda de la clase Figura. Modeliza una lnea en el plano de los nmeros
enteros positivos.

PROPIEDADES
Hereda propiedades de la clase Figura
PointF (Punto Inicial)
P1
PointF (Punto final)
P2
CONSTRUCTOR
Lnea( lienzo, color, colorbg, Crea la lnea p1p2
p1,p2):
MTODOS
Hereda mtodos de la clase Figura
Devuelve el punto medio del
MiddlePoint() -> PointF
segmento.
Dibujar(color) -> Void

Dibuja la lnea con el color dado.


Mtodo redefinido.

Trasladar(x,y) -> Void

Traslada la lnea al punto (x,y).


Mtodo heredado.

Rotar(angle) -> Void

Rota la lnea. Mtodo heredado.

Pendiente()->Float

Devuelve el valor de la pendiente de


la lnea

Angulo()-> Double

Devuelve el valor del ngulo de


inclinacin de la pendiente en grados.

H()-> Float

Devuelve el punto de interseccin con


el eje coordenado Y.

Distance(PontF p1, PointF


p2)->Float

Devuelve la distancia entre dos puntos

IntersectionPoint(Lnea l1) ->


PointF
Contains(nPoint p) -> Bool

Devuelve el punto de interseccin


entre l y l1
Devuelve TRUE si el punto pertenece
a la lnea.
Devuelve TRUE si se intersecan las
dos lneas

Intersects(Lnea l1) -> Bool

Tabla 3.11 Clase Lnea

80

Clase Polgono

Descripcin:

Hereda de la clase Figura. Modeliza un polgono en el plano de los


nmeros enteros positivos.

PROPIEDADES
Hereda propiedades de la clase Figura
Bool
_relleno
ArrayList lista de vrtices (FPoint)
vertices
si es convexo o no, Bool
Convex

Polgono()

CONSTRUCTOR
Crea un polgono con o puntos, convexo y de
direccin positiva

MTODOS
Hereda mtodos de la clase Figura
AgregarVrtice(Vrtice p) Aade el punto p al polgono
-> Bool
Dibuja el polgono con el color dado. Mtodo
Dibujar(brush color) ->
redefinido.
Void
Traslada cada vrtice del polgono en
Trasladar(x,y) -> Void
referencia al punto (x,y). Mtodo redefinido
Rota el polgono. Mtodo heredado.
Rotar(angle) -> Void
IsInside(nPoint p) -> Bool Comprueba si el punto est contenido dentro
del contorno del polgono
Intersects(Lnea L) -> Devuelve TRUE si se intersecan la lnea dda
con el contorno del polgono
Bool
GetAmpliado(Polgono
Aplica las sumas de Minkowski al polgono y
lo amplia de acuerdo al polgono del robot
robot) -> Polgono
Muestra etiquetas con los valores de las
ShowLabels() -> Void
cordenadas.
Oculta las etiquetas con los valores de las
HideLabels() ->
cordenadas.

Tabla 3.12 Clase Polgono

81

Clase Robot
Descripcin:
Hereda de la clase Figura. Modeliza una robot mvil en el plano de los
nmeros enteros positivos.
PROPIEDADES
Hereda propiedades de la clase Figura
PointF
Posicin
Float
Orientacin
Double
Desplazamiento
GraphicsPath
Robot
GraphicsPath
RobotAux
Timer
Reloj
ArrayList
Camino
IEnumerator
NextPoint
CONSTRUCTOR
Robot( lienzo, color, colorbg, Crea el robot
p1,p2):
MTODOS
Hereda mtodos de la clase Figura
Dibuja el robot mvil con el color dado.
Dibujar(color) -> Void
Mtodo redefinido.
Trasladar(x,y) -> Void

Traslada el robot al punto (x,y). Mtodo


redefinido.

Rotar(angle) -> Void

Rota el robot el ngulo dado. Mtodo


redefinido.

Recorrer()->Void

Hace que el robot recorra el camino


mnimo

Reloj_Tick()-> Void

Crea la animacin del desplazamiento


del robot.

Angulo()-> Float

Devuelve el ngulo de giro del robot en


los desplazamientos.

Distance(PontF p1, PointF p2)- Devuelve la distancia entre dos puntos


>Float
Devuelve el punto de interseccin entre
l y l1
Devuelve TRUE si el punto pertenece a
la lnea.
Devuelve TRUE si se intersecan las
dos lneas

IntersectionPoint(Lnea l1) ->


PointF
Contains(nPoint p) -> Bool
Intersects(Lnea l1) -> Bool

Tabla 3.13 Clase Robot

82

Clase Nodo

Descripcin:

Es una clase que define un grafo en el plano de los nmeros enteros


positivos y permite calcular el camino mnimo dentro del mismo.

PROPIEDADES
PointF
Double
ArrayList
Nodo

_posicin
Distancialfin
Nodos
Min

CONSTRUCTOR
Crea un grafo

Nodo(PointF P):

Distancetofin() -> Double

MTODOS
Calcula la distancia mnima entre el
nodo origen al nodo destino.

AddNodo(Nodo N) -> Void


CrearCamino(Gaphics lienzo,
ArrayList camino) -> Void

Aade un nodo a la lista de nodos


del camino mnimo.
Mtodo recursivo que dibuja los
caminos o aristas del grafo.
Resalta el camino mnimo
encontrado en el grafo.

Dibujar() -> Void

Tabla 3.14 Clase Nodo

83

Clase Form1

Descripcin:

Es una clase que define las acciones de la interfaz y contiene todos los
objetos (instancias de las dems clases) que componen el problema y
realiza el procedimiento para hallar la solucin.

PROPIEDADES
Graphics
Robot
Polgono
Polgono
ArrayList
ArrayList
Vrtice
Vrtice
Nodo
Nodo
Nodo
Double
Byte
Bool
Int
Int
Agente
Bool

Lienzo
robot
Obstculo
Robot
Obstculos
Ampliados
PuntoInicial
PuntoFinal
Inicio
Final
Nodos
Distancia
Paso
Marcado
mouseX
mouseY
Agent
guiada

Form1(bool guiada):

CONSTRUCTOR
Crea el entorno de simulacin

MTODOS
Panel1_MouseMove() -> Void Muestra las coordenadas (x,y) que el
Mouse seale dentro del espacio de
navegacin del mvil.
Cb_labels_CheckedChanged() Muestra u oculta las etiquetas con
informacin
-> Void
dibujarToolStripMenuItem_Cli Realice las operaciones para dibujar
el grafo de visibilidad.
ck() -> Void

84

Panel1_MouseUp() -> Void

Indica el fin de ingreso de un polgono

Panel1_MouseClick() -> Void

Rellena los obstculos poligonales


ingresados con un color definido
Repinta los elementos dibujados

Form1_Paint() -> Void

ampliarToolStripMenuItem_Cli Amplia los obstculos segn el


algoritmo de Minkowski.
ck () -> Void
NuevoPaso(byte paso)-> Void Define los pasos que se seguirn en
la prctica guiada.
Valida el cumplimiento de cada paso
btnSiguiente_Click() -> Void
de la prctica guiada y permite
avanzar al siguiente paso.
calcularCaminoMinimoToolStr Calcula el camino mnimo que debe
recorrer el mvil.
ipMenuItem_Click() -> Void
mnRecorrerCamino_Click() -> Hace que el mvil recorra el camino
mnimo calculado.
Void
Realiza la solucin del problema de
btnResolver_Click() -> Void
forma automtica.

Tabla 3.15 Clase Form1

Tutor inteligente

Una aplicacin .NET no se comunica directamente con un componente


COM, en vez de eso, funciona mediante un envoltorio gestionado del
componente, mejor conocido como RCW (Runtime Callable Wrapper) que
acta como un Proxy gestionado para el componente COM no gestionado.
Permite la manipulacin de los mtodos del componente y devolver
cualquier valor de retorno en una forma que pueda ser interpretado por el
CLR (Common Language Runtime). Para utilizar el MSAgent

se debe

indicar que referencia COM se va a utilizar en el proyecto, en este cado


Microsoft Agent Control 2.0. Una vez el componente es parte del proyecto
se puede tratarlo como si fuera una clase ms del .NET Framework
permitiendo instanciar objetos del mismo.
85

Clase Agent

Descripcin:

Es una clase que define el tutor inteligente que interactuar con el usuario.

PROPIEDADES
AgentServer
IAgentEx
IAgentcharacterEx
Int

AgetSrv
SrvEx
CharacterEx
dwCharID

Agente_Load()

CONSTRUCTOR
Carga y muestra al agente

MTODOS
Agente_Hablar (string texto) - Hace que el agente pronuncie el
> Void

texto dado.

Agente_Animar (string

Hace que el agente realice la

animacin) -> Void

animacin pasada como parmetro.

Agente_Detener () -> Void

Detiene la ejecucin del agente.

Agente_Pensar (string

texto) Hace que el agente visualice el texto

-> Void

dado como un pensamiento.

Agente_Gesto (string gesto) - Hace que el agente realice una


> Void

animacin con el gesto dado.

Agente_Descargar () -> Void

Descarga el agente de la aplicacin

Tabla 3.16 Clase Agent

86

SUBSISTEMA PROGRAMACIN

Este subsistema utiliza la siguiente clase para implementar un


pequeo compilador de C# que permite descargar cdigo al robot
mvil.

Clase Form1

Descripcin:
Es una clase que define el entorno de programacin.

CodeProvider
Compiler
Parameters

Form1()

PROPIEDADES
CSharpCodeProvider
ICodeCompiler
CompilerParameters

CONSTRUCTOR
Inicializa los componentes.

MTODOS
Realiza las operaciones para la

Button1_click() -> Void

compilacin y ejecucin del cdigo.


guardarToolStripMenuItem_Cl Abre el dilogo para guardar el
cdigo en un archivo.

ick() -> Void

salirToolStripMenuItem_Click( Cierra la aplicacin


) -> Void
toolStripMenuItem1_Click () -> Abre el dilogo para cargar un
archivo de cdigo.

Void

87

Tabla 3.17 Clase Form1

SUBSISTEMA TELEOPERACIN

El subsistema de teleoperacin se implement como una aplicacin


Windows forms, permite la teleoperacin del robot mvil.

Este subsistema hace referencia a la librera RCXNET cuyos mtodos


son necesarios para la adquisicin de datos y envo de seales al
robot mvil LEGO a travs de la torre infrarroja.

El subsistema de teleoperacin se compone de las siguientes clases:

Clase Mvil
Clase Video
Clase Form1

A continuacin se presenta una descripcin de cada una de ellas.

88

Clase Mvil

Descripcin:

Modeliza una robot mvil en el plano de los nmeros enteros positivos.

PROPIEDADES
Graphics
Brush
Point
GraphicsPath
GraphicasPath
Matrix

Lienzo
bgColor
MovilPos
Robot
RobotAux
TranslateMatrix

CONSTRUCTOR
Crea el robot mvil.
Mvil(lienzo, bgcolor, x,
y)

MTODOS
Dibuja el robot mvil en el espacio de

Dibujar() -> Void

navegacin.
Oculta el mvil dibujado en el espacio de

Ocultar() -> Void

navegacin.
Mostrar() -> Void

Muestra el mvil en la pantalla.

Mover(int x, int y) -> Void

Mueve el mvil a las coordenadas (x,y)

Girar(single angle) -> Void Hace que el mvil gire el ngulo dado

Tabla 3.18 Clase Mvil

89

Clase Video

Descripcin:

Es una clase que define el entorno de programacin.

PROPIEDADES
Int
Int
Int
Short
Int
Int

Hwndc
Ws_child
Ws_visible
Wm_user
Wm_cap_driver_conect
Wm_cap_driver_disconn
ect
Wm_cap_set_preview
Wm_cap_set_previerrate
capCreateCaptureWindo
wA
SendMesage

Int
Int
Public extern static int
Public extern static int

CONSTRUCTOR
Inicializa los componentes.

Video()

MTODOS
Ventana(int

handle)

-> Crea la ventana de captura del video a

Bool

travs de un manejador.

Conectar() -> Bool

Conecta el driver para empezar la captura

Capturar -> Bool

Captura el video en la ventana creada


para el efecto.

Tabla 3.19 Clase Video

90

Clase Form1

Descripcin:

Es una clase que define el entorno de programacin.

PROPIEDADES
Int
Mvil
Int16
Int16
SpiritNet

WaitTimeTurn
Mv
Direccin
MvilDib
objSpirit

CONSTRUCTOR
Inicializa los componentes.

Form1()

MTODOS
Form1_Load() -> Void

Carga el video

MoverRobot() -> Void

Mueve el robot mvil tanto en la pantalla


como el real equivalente.

btnIniciar_Click -> Void

Establece comunicacin con el robot mvil


real.

btnDetener_Click

()

-> Cierra la comunicacin con el dispositivo

Void
Panel1_Paint() -> Void
Panel1_MouseDown()

Muestra el robot mvil en pantalla


-> Sita el robot en el espacio de navegacin

Void
Panel1_MouseMove()

-> Muestra las coordenadas cartesianas

Void
Arriba_MouseDown()
Void

-> Habilita el reloj para la direccin hacia


arriba

91

Abajo_MouseDown()

-> Habilita el reloj para la direccin hacia


abajo

Void

Izquierda_MouseDown() - Habilita el reloj para la direccin hacia la


izquierda

> Void

Derecha_MouseDown() -> Habilita el reloj para la direccin hacia la


derecha

Void

Arriba_MouseUp() -> Void Deshabilita el reloj para la direccin hacia


arriba
Abajo_MouseUp() -> Void

Deshabilita el reloj para la direccin hacia


abajo

Izquierda_MouseUp()

-> Deshabilita el reloj para la direccin hacia


la izquierda

Void
Derecha_MouseUp()

-> Deshabilita el reloj para la direccin hacia

Void

la derecha

Reloj_Tick() -> Void

Realiza la animacin del movimiento del


robot mvil

Tabla 3.20 Clase Form1

3.3.2 Parmetros de configuracin

Para el desarrollo de la solucin los siguientes elementos deben estar


preinstalados en la mquina host:
Microsoft Agent API
o Components Microsoft Agent Core
o

Microsoft Agent Characters: Merlin.

Microsoft Speech API 4.0a runtime.

Microsoft Speech Recognition Engine.

92

o Motor Text-to-Speech Lernout and Hauspie para espaol.


Software del kit Lego Mindstorms
Lego Mindstorms SDK 2.5
Net Framework 1.1 o superior

3.3.3 Pruebas de inspeccin de cdigo

Se realiz diferentes pruebas de caja blanca y caja negra para determinar


si los datos que se esperan obtener cuando se ejecuta algn proceso son
los correctos, una para cada subsistema, a continuacin se muestran las
pruebas y sus resultados.

Prueba

Navegacin completa

mbito

Subsistema Tutorial

Procedimiento

1. Realizar una navegacin por todas las pginas


que componen el tutorial.
2. Comprobar que los vnculos no tengan conflictos

Resultados

No se encontraron inconvenientes en la navegacin.


En cuanto a los vnculos se encontr algunos enlaces
rotos y otros que tenas destinos incorrectos, pero e
problema fue resulto fcilmente.

Tabla 3. 21 Prueba de navegacin completa

93

Prueba

Clculos y Algoritmos

mbito

Subsistema Simulacin

1. Analizar

Procedimiento

si

las

frmulas

matemticas

que

intervienen en el proceso de simulacin entregan


datos correctos.
2. Comprobar que los algoritmos se ejecuten de
forma adecuada.
3. Comprobar que no existan bucles infinitos

No existen problemas con los resultados de las frmulas

Resultados

matemticas,

los

algoritmos

siguen

la

secuencia

adecuada y no se encontr bucles infinitos, sin embargo


se debi validar los casos en que el resultado de stas
frmulas en un dato no numrico (infinito).

Tabla 3. 22 Prueba de clculos y algoritmos

Prueba

Validacin de datos

mbito

Subsistema Programacin

1. Verificar

Procedimiento

que

el

subsistema

valida

correctamente los datos que se deben ingresar


travs de la interfaz.
2. Comprobar que la compilacin de sentencia se
realiza adecuadamente.
3. Revisar

que

el

cdigo

se

descargue

correctamente al robot.

Resultados

En

este

subsistema

no

se

encontr

inconveniente.

Tabla 3. 23 Prueba de Validacin de datos

94

ningn

Prueba

Comunicacin con el dispositivo robtico

mbito

Subsistema Teleoperacin

Procedimiento

1. Verificar que existe comunicacin con el robot.


2. Probar los mtodos de la animacin en pantalla.
3. Comprobar la adquisicin de video.

Resultados

En este subsistema se comprob su plena funcionalidad,


salvo que por las limitaciones del dispositivo la
comunicacin se corta cuando est fuera del rango de
alcance de la torre IR y tanto la animacin como el
dispositivo se quedan en un ciclo infinito, para solucionar
este inconveniente se debi ingresar sentencias para
control de errores con lo que se corrigi plenamente el
problema.

Tabla 3. 24 Prueba de comunicacin con el dispositivo robtico

3.3.4 Reporte de Bugs

En la solucin desarrollada se han encontrado los siguientes bugs:

En la simulacin, cuando el mvil realiza el recorrido del camino


mnimo se borran las partes del grfico, cuando esta termina se
repinta nuevamente.
Existe asincronismo entre la simulacin, la ejecucin del robot y la
visualizacin de la webcam.

95

Debido a que estos bugs no representan ningn inconveniente en la


operacin misma de la solucin se declara que la solucin ha alcanzado el
hito de mbito completo. Para solucionar los mismos se puede plantear una
siguiente versin del proyecto.

3.3.5 lcance completo

La fase de desarrollo culmina con este hito, en este punto todas las
caractersticas de la solucin estn completas. La solucin esta lista para
pruebas externas de estabilizacin.

96

3.4 FASE DE ESTABILIZACION

En esta etapa se realiz el seguimiento del sistema por un periodo de


tiempo determinado en el cual se comprob que la solucin se ejecuta
satisfactoriamente en el ambiente de trabajo real.

3.4.1 Especificacin de Tests

Las pruebas realizadas en la fase anterior fueron suficientes para


evidenciar la total funcionalidad del sistema solo en el caso del subsistema
de simulacin por ser el mdulo ms complejo de la solucin de planteo un
caso de prueba, con los datos que se describe a continuacin:

Entradas
Punto inicial:

(60,80)

Punto Final:

(420,420)

Obstculos:
V1

(60,200)

V2

(300,240)

V3

(180,380)

Salidas Esperadas
Nodos del camino mnimo: (60,80); (325,215); (420,420)
Coste del camino mnimo: 523.35

97

Procedimientos especiales

Ingreso de los vrtices de los obstculos en el sentido de las manecillas del


reloj, por requerimiento de ordenacin del algoritmo de sumas de Minkoski.

Fig. 3.18 Datos de prueba

Proceso

Una vez ingresados el punto inicial, el punto final y el obstculo, el


subsistema procede a la ampliacin del mismo, para ello usa el algoritmo
de sumas de Minkowski que permite sumar dos polgonos convexos en
este caso el polgono P que representa al obstculo y el polgono Q que
representa al robot.

98

El polgono Q se considera con centro en el origen de coordenadas


(ubicado en el extremo superior izquierdo) y con el valor de sus vrtices
fijos, este polgono no se visualiza en la interfaz, es definido nicamente
para los clculos. Entonces dados:
P

60

200

-25

-25

300 240

25

-25

180 380

25

25

60

-25

25

-25

-25

200

Siguiendo el algoritmo de las sumas de Minkowski se obtuvo los siguientes


resultados en las diferentes iteraciones, que corresponden a os vrtices del
obstculo ampliado.
P

35

175

85

175

325

215

325

265

205

405

155

405

35

225

A continuacin el subsistema aplica el algoritmo de Grafo de visibilidad al


obstculo ampliado, encuentra el camino mnimo y calcula el coste del
camino mnimo segn la frmula de distancia eucldea. El grfico siguiente
muestra el resultado final del proceso.

99

Fig. 3.19 Grfico del proceso de planificacin de trayectorias

Resultados

El resultado del caso de estudio planteado fue el esperado, con lo que se


verific que el sistema arroja resultaos reales y estables.

En la siguiente figura se puede comprobar que la salida calculada por el


sistema corresponde al proceso seguido para obtener la solucin.

100

Fig. 3.20 Salida esperada

3.4.2 Consideraciones y restricciones

El sistema se encuentra libre de bugs activos y se encuentra listo para la


fase de implantacin. En el subsistema de Simulacin dada su complejidad
se deben tomar en cuenta las siguientes restricciones y consideraciones:

Restricciones:

El simulador acepta obstculos convexos nicamente.


El simulador no contempla solapamientos de obstculos ni de
obstculos ampliados.

101

Consideraciones de operacin:

Los vrtices de los obstculos se deben ingresar en el sentido de las


manecillas del reloj por requerimientos del algoritmo de Minkowski.
El primer vrtice ingresado debe ser aquel con la coordenada y de
menor valor.

3.4.3 Cdigo fuente y ejecutables

El cdigo fuente y los ejecutables fueron compilados en un CD que


representa el producto final.

2.4.4 Release aprobado

La fase de estabilizacin culmina en este hito listo para liberacin . Una


vez revisada y depurada la solucin est lista para la implantacin en un
ambiente de produccin.

102

3.5 FASE DE IMPLANTACIN

3.5.1 Informacin de soporte y operacin

En esta seccin se enumeran los requisitos necesarios para ejecutar la


aplicacin. Estos requisitos se dividen en requisitos de hardware, requisitos
de software y la instalacin propia del programa.

Requisitos hardware

Esta aplicacin necesita los siguientes requisitos mnimos hardware para


ser ejecutada:

Procesador Pentium II
32 Mbytes de memoria RAM
Configuracin grfica de 16 colores
RCX 1.1 con torre IR de conexin usb

La configuracin ptima para obtener el mximo rendimiento de la


aplicacin sera:

Procesador Pentium III 400 Mhz


128 Mbytes de RAM
Configuracin Grfica de 32 bits
RCX 2.0 con torre IR de conexin usb

103

Requisitos software

En cuanto a los requisitos software mnimos necesitaremos un entorno con


la siguiente configuracin:

Windows 98
Internet Explorer 5
Lego Minstorms SDK 2.0
Microsoft Agent API

Si se quiere obtener un mximo partido se debera tener la siguiente


configuracin:

Windows XP
Internet Explorer 6
Lego Mindstorms SDK 2.5

3.5.2 Manual de usuario

Esta seccin hace referencia al manejo de la aplicacin, en el sentido de


interfaz de usuario, introduccin y resolucin de un problema. El
documento Manual de Usuario como tal se puede apreciar en el Anexo D.

104

3.5.3

Siguientes pasos

Se puede pensar en una prxima versin de la solucin en donde cubra


contenido terico ms profundo en cuanto al tutorial, en la simulacin
incluir otros mtodos de planificacin y adems la simulacin de la
cinemtica del robot mvil y mejorar las prestaciones de la teleoperacin y
programacin.

En cuanto al hardware se refiere se podra mejorar las prestaciones del


robot mvil utilizando una configuracin diferencial y sensores. La
comunicacin inalmbrica se puede optimizar usando un estndar 802.11

3.5.4

Deployment completo

Se ha alcanzado el hito de Deployment Completo con el cual culmina la


fase de Implantacin, esto quiere decir que la solucin ha alcanzado su
meta y ha terminado efectivamente todos los procesos y actividades.

105

CAPITULO VI

CONCLUSIONES, RECOMENDACIONES Y
TRABAJOS FUTUROS

6.1 Conclusiones

La experiencia acumulada con el desarrollo de este proyecto permite


afirmar que los laboratorios virtuales son una tcnica bastante til en los
procesos de enseanza, ya que facilita el aprendizaje de los contenidos
de las materias al permitirle a los estudiantes estudiar en el momento y
lugar que crean conveniente, es decir, sin estar obligados a trasladarse a
un centro de estudios ni depender de un profesor en un sentido no
estricto.

La inclusin en el terreno pedaggico de un asistente personal en un


laboratorio virtual posibilita la supervisin de las acciones del usuario en
un entorno informtico para proporcionar ayuda. Sin embargo, aunque se
ha visto que estos Sistemas Tutores Inteligentes son cada vez ms
comunes y eficientes, todava resultan difciles y caros de construir lo que
impide su uso generalizado.

106

La Metodologa MSF se adapta a proyectos de cualquier dimensin y de


cualquier tecnologa.

El modelo de procesos de la metodologa Microsoft Solution Framework


empleado en esta investigacin, por utilizar un enfoque iterativo, ofreci la
flexibilidad necesaria para manejar exitosamente los cambios de
requerimientos que surgieron a lo largo de todo el perodo del desarrollo.
Sin embargo, por ser una metodologa tan abierta, fue necesaria la
definicin de artefactos especficos que permitiesen precisar las
necesidades del usuario y las funcionalidades de los componentes del
Sistema.

El entorno de aprendizaje que se propone en esta tesis ofrece la


posibilidad

de

aprender

programacin

robtica

mediante

la

experimentacin a travs de un entorno virtual. Entre las ventajas


encontradas se pueden destacar los siguientes aspectos:
o Ventajas del e-learning: sencillez, acceso a informacin multimedia.
o Familiarizacin con la robtica.
o Familiarizacin con el lenguaje de programacin C#.

En este trabajo se ha presentado una versin preliminar de una


herramienta interactiva que tiene como fin servir de apoyo a los alumnos
a la hora de estudiar algoritmos de navegacin autnoma. El alumno
puede modificar la configuracin de un entorno conocido as y estudiar la
influencia sobre los algoritmos de control.

107

Se aplicaron algoritmos de geometra computacional para resolver el


problema de la bsqueda del camino mnimo en grafos y en si en el
proceso de simulacin.

6.2 Recomendaciones

Este proyecto se vera beneficiado si se realizar la implementacin del


tutor de forma netamente inteligente , es decir,

a travs de un ITS

(Intelligent Tutoring System) que costa de un sistema experto y otras


tcnicas de inteligencia artificial.

Para coincidir en tiempo real el escenario simulado con el escenario real


se recomienda desarrollar un mdulo de clculos matemticos, fsicos y
trigonomtricos, implementado con programacin basada en threads.

Desarrollar un robot mvil con una arquitectura de diferencial y usando


sensores para facilitar la localizacin y posicionamiento.

Implementar todos los casos para los algoritmos de computacin grfica,


contemplando solapamiento de polgonos y sumas de Minkowski de
polgonos no convexos.

Usar algoritmos ms ptimos para reducir el tiempo de procesamiento.

108

El tiempo necesario para bajar un programa al robot a travs de la torre


de IR es considerable ( 30 segundos). La torre de IR y el robot (el RCX)
deben estar encarados a 25cm mximo de distancia para permitir una
correcta

comunicacin.

Una

posible

solucin

sera

disear

una

comunicacin inalmbrica 802.11.

Es recomendable que el Departamento de Ciencias de la Computacin


cree una materia de Geometra Computacional para la enseanza de
algoritmos que resuelven problemas geomtricos.

6.3 Trabajos futuros

Lo que se desea llegar a conseguir con esta herramienta en sus fases


posteriores es que el alumno pueda estudiar distintos entornos y algoritmos
de navegacin, trabajar con varias configuraciones de robots mviles y
observar de forma interactiva como la modificacin de parmetros del
entorno, de la cinemtica del robot, del algoritmo de planificacin de
trayectorias y del algoritmo de seguimiento de caminos incluye en el
problema de la navegacin autnoma con entorno conocido.

109

ANEXOS

ANEXO A - DIAGRAMAS UML

Diagramas de Casos de Uso

Navegacin por contenidos

<<include>>
Impresin

<<extend>>
Revisin de captulos

<<extend>>
Estudiante
(f rom Actors)

Navegacin por contenidos


(from Use-Case Model)

Evauacin de conocimientos

Fig. A.1 Diagrama caso de uso Navegacin por contenidos

Simulacin

<<extend>>

Simulacin Directa

<<extend>>
Estudiante
(f rom Actors)

Simulacin
(from Use-Case Model)

Prctica guiada

Fig. A.2 Diagrama caso de uso Simulacin


110

Teleoperacin

<<extend>>
Visualizacin robot

<<extend>>
Estudiante
(f rom Actors)

Teleoperacin
(from Use-Case Model)

Ejecucin de movimientos

Fig. A.3 Diagrama caso de uso Teleoperacin

Programacin

Ingreso de instrucciones
<<extend>>
<<extend>>

Estudiante
(f rom Actors)

Programacin

Compilacin

(from Use-Case Model)

<<extend>>

Ejecucin

Fig. A.4 Diagrama caso de uso Programacin

111

Diagramas de Secuencia
Diagrama de secuencia del sistema

GUI

: Es tudiante

Vis ualiza contenidos

Sis tema

Des pliega teoria

Accede a s imulacin

Abrir simulacin

Accede a Teleoperacin

Abrir teleoperacin

Accede a Programacin
Abrir program acin

Fig. A.5 Diagrama de secuencia del Sistema

Navegacin por contenidos

Contenidos

: Es tudiante
VerTema()

NavegarPorContenido()

Mos trarTema()

Mos trarPgina()

Im primir()
Im pres in()
RelizarEvaluacin()
VerRes ultados ()

Proces arRes ultados()

Salir()

Fig. A.6 Diagrama de secuencia Navegacin por contenidos

112

Simulacin

Simulacin

: Estudiante
AbrirSimulacin()

MostrarMen()
EscogerModo()
PedirDatos()
IngresarDatos()

RealizarClculos()

MostrarSimulacin()

Fig. A.7 Diagrama de secuencia Simulacin

Teleoperacin

Teleoperacin

: Estudiante
Abrir()

Video

Mostrar()

iniciar()
EstablecerComunicacin()
ComunicacinOK()
RealizarMovimientos()

Mover()

Salir()
Cerrar()
CerrarComunicacin()

Fig. A.8 Diagrama de secuencia Teleoperacin

113

Robot

Programacin

Programacin

: Estudiante
IngresarCdigo()
Compilar()

CompilarCdigo()

MostrarErrores()
EjecutarCdigo()

Programa

<<create>>
Salir()

Fig. A.9 Diagrama de secuencia Programacin

Diagramas de Clases

Subsistema Contenidos

Contenido

*
1
Tema
1

Evaluacin
1..*

Fig. A.10 Diagrama de Clases Contenidos

114

Simulacin

Figura
1
Interfaz
Simulacin

Vrtice

Lnea

Polgono

1
Agente
*
Nodo

Fig. A.11 Diagrama de Clases Simulacin

Teleoperacin

Robot
1

Interfaz
Teleoperacin

Video
1

Fig. A.12 Diagrama de Clases Teleoperacin

115

Robot

Programacin

Compilador
Interfaz
Programacin

Fig. A.13 Diagrama de clases Programacin

Diagramas de Actividad

Diagrama de Actividades del Sistema


Abrir Sistema

Visitar pgina
principal
Programar
Robot

Navegar por
Tutorial

Teleoperar
Robot

Realizar
Simulacin

Cerrar Sistema

Fig. A.14 Diagrama de actividades del sistema

116

Navegacin por contenidos


Abrir Tutorial

Pgina de
Inicio

Seguir los
enlaces

Abrir
Pginas

Cerrar Tutorial

Fig. A.15 Diagrama de actividad Navegacin por Contenidos

Simulacin

Abrir Simulacin

validar datos

Entrar Datos

Prctica Guiada

Simulacin normal

Ingresar Datos

Validar sumas

Aplicar Mtodo de
Grafo de Visibilidad

Calcular Sumas de
Minkowski

Calcular Grafo
de Visiblidad

validar camino mnimo


Realizar
Simulacin
Calcular
camino mnimo
Cerrar Simulacin

Fig. A. 16 Diagrama de actividad Simulacin

117

Teleoperacin
Abrir Teleoperacin
verificar adquisicin

Verificar comunicacin

Mostrar video

Establecer comunicacin
con el robot

Mostrar errores

Mover robot
simulado

Mover el robot
real

Cerrar
comunicacin

Cerrar Teleoperacin

Fig. A.17 Diagrama de actividad Teleoperacin

Programacin
Abrir Programacin

Validar instrucciones

Ingresar
Cdigo

Validar ejecucin

Compilar

hubo errores

Ejecutar

Mostar errores

no errores

Crear archivo
de salida

Cerrar Programacin

Fig. A.18 Diagrama de actividad Programacin

118

ANEXO B - ESTRUCTURA DEL TUTORIAL DE ROBTICA MVIL

Mapa del Sitio

Pgina de
Inicio

Visin
General

Introduccin
a la
Robtica

Contenido

Auto
Evaluacin

Robots
Mviles

Contenido

Auto
Evaluacin

Planificacin
de
Trayectorias

Programacin
de
Robots

Contenido

Contenido

Auto
Evaluacin

Fig. B.1 Mapa del sitio del Tutorial de Robtica

119

Auto
Evaluacin

Contenidos

A continuacin se listan los temas y subtemas tratados en cada una de las


lecciones del Tutorial de Robtica Mvil. Para ver a detalle los contenidos es
necesario revisar el tutorial que consta en el CD de aplicacin.

Visin General

Bienvenida
Introduccin
Objetivos

Leccin 1: Introduccin a la Robtica

Plan de Leccin
Bienvenida
Introduccin

1.1 Definiciones Bsicas


1.1.1 Qu es un robot?
1.1.2 Robtica

1.2 Breve historia de la robtica

120

1.3 Tipos de robots


1.4 Los robots y el trabajo

1.5 Aplicaciones de los robots


1.5.1 Robots industriales
1.5.2 Robots de servicio
1.5.3 Robots de exploracin
1.5.4 Otros robots

1.6 Estructura interna de un Robot


1.6.1 Sistema de control (sistema nervioso)
1.6.2 Sensores
1.6.3 Efectores y actuadores
1.6.4 Sistema de locomocin/manipulacin

1.7 Cinemtica y Dinmica


1.7.1 Grados de Libertad

Desafo
Autoevaluacin
Retroalimentacin

121

Leccin 2: Robots Mviles

Plan de Leccin
Bienvenida
Introduccin

2.1 Definicin
2.2 Robots Mviles con ruedas
2.2.1 Ruedas
2.2.2 Giro
2.2.3 Arreglos de ruedas
2.2.4 Cinemtica
2.2.5 Forma del Robot
2.3 Robots Mviles con patas
2.3.1

Movimiento bsico de un hexpodo

2.4 Arquitecturas Bsicas de Control


2.4.1 Arquitectura deliberativa
2.4.2 Arquitectura reactiva
2.4.3 Arquitecturas hbridas
2.4.4 Robtica de comportamientos base
2.4.5 Algoritmo Bsico de Navegacin

Desafo
Autoevaluacin
Retroalimentacin

122

Leccin 3: Planificacin de trayectorias de Robots Mviles

Plan de Leccin
Bienvenida
Introduccin

1.1 Navegacin
1.1.1 Esquema de la navegacin
1.1.2 Mtodos de planificar un camino
1.2 El problema de la planificacin de trayectorias de robots mviles
1.3 Mtodos Clsicos de Planificacin
1.3.1 Planificacin basada en grafos de visibilidad
1.3.2 Planificacin basada en diagramas de Voronoi
1.3.3 Planificacin basada en el modelado del espacio libre
1.3.4 Planificacin basada en descomposicin de celdas
1.3.5 Planificacin basada en campos de potencial
1.4 Mtodo del Grafo de Visibilidad
1.4.1 Algoritmo de Grafo de Visibilidad
1.4.2 Robot geomtrico
1.5 Ejemplo de planificacin con grafo de visibilidad
1.6 Funciones de deteccin, evitacin y planificacin
1.7 Reaccin directa a informacin de sensores

Desafo
Autoevaluacin
Retroalimentacin

123

Leccin 4: Programacin de Robots

Plan de Leccin
Bienvenida
Introduccin

1.1 Programacin de tareas


1.2 Requerimientos de los lenguajes de programacin de robots
1.3 Sistemas operativos
1.4 Clasificacin de los lenguajes de programacin de robots
1.4.1 Secuenciadores
1.4.2 Extensiones a lenguajes clsicos
1.4.3 Lenguajes especficos
1.4.4 Orientados al robot
1.4.5 Orientados a la tarea

Desafo
Autoevaluacin
Retroalimentacin

124

ANEXO C - ALGORITMOS GEOMTRICOS

1. Algoritmo de Sumas de Minkowski

Dados dos conjuntos P y Q

, la suma de Minkowski de P y Q, denotada por P

Q se define como

donde p + q es un vector que representa la suma de los vectores p y q. Es decir


que dados los puntos p = ( px, py ) y q = ( qx, qy ), tenemos que p + q = ( px + qx, py
+ qy).

Es posible aplicar la definicin de sumas de Minkowski a los polgonos, ya que un


polgono es un conjunto de puntos en el plano.

Fig. C.1 Sumas de Minkowski de dos polgonos

125

Sumas de Minkowski de dos polgonos convexos

Dados dos polgonos convexos P y Q con n y m vrtices respectivamente, la


suma P

Q se calcula:

Para una direccin dada

, un punto extremo en P

extremos de P y de Q en la misma direccin


cambia la direccin

Q es la suma de los puntos

. En un polgono convexo, si se

siguiendo el sentido contrario a las agujas del reloj, se

obtiene una secuencia de puntos extremos que contienen los vrtices del
polgono ordenados exactamente como estn ubicados si se recorre el borde del
polgono en el sentido contrario a las agujas del reloj.

El siguiente algoritmo, recorre las direcciones siguiendo el sentido contrario a las


agujas del reloj y usa la observacin anterior para recorrer ambos polgonos y
encontrar sus puntos extremos.

En este algoritmo la notacin ngulo(pq) denota el ngulo que forma el vector


con el eje positivo de abscisas.

Fig. C.2 ngulo que forma el vector

126

con el eje de absisas

Algoritmo:
Entrada: Un polgono convexo P con vrtices v1,...,vn , y un polgono convexo Q
con vrtices w1,...,wm. Se asume que la lista de vrtices estar ordenada
siguiendo el sentido contrario al de las agujas del reloj, siendo v1 y w1 los vrtices
con menor coordenada y.
Salida: La suma de Minkowski de P

1.

2.

v n+1

3.

1;j

v1 ; w m+1

w1

Repetir

4.

Agregar vi + wj como un vrtice en P

5.

Si ngulo(vivi+1) < ngulo(wjwj+1)

6.

entonces i

(i+1)

7.

sino Si ngulo(vivi+1) > ngulo(wjwj+1)

8.

entonces j

9.

sino i

10.

(i+1)
(j+1)

11.

Si i > n+1 entonces i

n+1

12.

Si j > m+1 entonces j

m+1

13.

(j+1)

hasta que i = n +1 y j = m +1

Este algoritmo es sencillo y fcil de implementar. Se ejecuta en un tiempo lineal


O(m+n) ya que en cada ejecucin de la sentencia de repeticin ocurre que o i o j
son incrementados slo hasta alcanzar los valores n+1 y m+1. Cualquier vrtice
de la suma de Minkowski P

Q es la suma de dos vrtices originales que son


127

extremos en una direccin comn en P y Q. Ya que los polgonos son convexos el


testeo del ngulo asegura que esos pares extremos son encontrados.

2. Algoritmo de Grafo de Visibilidad

Entrada: Los polgonos Bj = {vi} definidos por sus vrtices.


Salida: El grafo de visibilidad Gv.

Todos los vrtices de los polgonos forman el conjunto de vrtice del grafo.
Las aristas que delimitan los polgonos pertenecen l conjunto de aristas del grafo.

1 Para i = 1, ,n hacer
2

Para cada j =1, ,n hacer

Para cada vrtice vr del polgono Pi hacer

Para cada vrtice vq del polgono Pj hacer

Para cada arista de a de cualquier polgono hacer

Si el arco (vr,vq) intersecta con a entonces

Ir al paso 4

Fin si

Fin para

10

incluir (vr,vq) en el conjunto de aristas del grafo

11

Fin para

12
13

Fin para
Fin para

14 Fin para

128

3.

Algoritmo Test de interseccin

El test de interseccin se usa en el algoritmo de grafo de visibilidad para


verificar si la lnea de visibilidad interfecta alguna arista del obstculo. Los
algoritmos utilizados para el Test de Interseccin se muestran a
contiinuacin:

Para verificar si una lnea L interseca la lnea L1

bool Intersects(L,L1)
{
return (cruza(L1) && cruza(L));
}

Dados dos lineas L y L1, se tiene el test de cruce


bool cruza(L)
{
return ((Det(L.P1) * Det(L.P2)) < 0);
}

float Det(P)
{
return (((P1.X * P2.Y) + (P.X * P1.Y) + (P2.X * P.Y)) ((P1.X * P.Y) + (P.X * P2.Y) + (P2.X * P1.Y)));
}

129

4. Algoritmo de DIJKSTRA

Este algoritmo calcula los caminos ms cortos desde un solo origen a cada uno
de los nodos del grafo.

Aplicado al clculo de camino mnimo en un Entorno Poligonal, como se ha


explicado anteriormente en el clculo del grafo de visibilidad, los nodos del grafo
sern los vrtices de los obstculos, los arcos, las rectas del grafo de visibilidad, y
la distancia ser la Eucldea entre dos puntos.

El algoritmo consiste en lo siguiente:

Sea un grafo G=, donde N es el conjunto de nodos y A es el conjunto de arcos de


G. Cada arco tiene asociada una longitud (o coste o distancia) no negativa.

La longitud de un camino es la suma de las longitudes de los arcos que forman el


camino. Cada camino comienza en un nodo, llamado nodo origen, y termina en
otro, llamado nodo destino.

Fig. C.3 Grafo con caminos y longitud

130

En la figura se adjuntan las distancias mnimas del nodo origen 1 a todos los
dems, ordenadas en orden no decreciente. Tambin se incluye el camino que
posee cada longitud mnima, aunque esta informacin no es pedida en el
problema.

En cuanto al modo de construir la solucin, pueden irse construyendo los caminos


mnimos uno a uno. Esto es realizable si se toma como conjunto de candidatos el
de nodos; cada vez que se elige un nodo, se dispone de su distancia mnima.

El nodo que se elige en cada momento es aquel candidato que est ms cerca
del origen, es decir, las distancias mnimas se van hallando en orden no
decreciente de longitud. En el ejemplo propuesto, primero se obtiene la distancia
mnima (de 10) hasta hasta el nodo 3, despus hasta el nodo 2 (de 15) y as
sucesivamente.

Implementacin del Algoritmo:

DistanceToFin(Nodo fin)
{
if (_distancetofin != -1)
return _distancetofin;

if (this.Equals(fin))
{
_distancetofin = 0;
return 0;
}

131

if (Nodos.Count == 0)
{
_distancetofin = double.PositiveInfinity;
return _distancetofin;
}

double minimo = double.PositiveInfinity;


double distancia;

foreach (Nodo N in Nodos)


{
distancia = N.DistanceToFin(fin);
if (distancia < minimo)
{
minimo = distancia;
Min = N;
}
if (minimo == 0) break;
}

if (Min != null)
{
_distancetofin = minimo + Linea.distance(_Posicion,
Min.Posicion);
return _distancetofin;
}

return double.PositiveInfinity;
}

132

ANEXO D -

MANUAL DE USUARIO

1. Instalando el sistema

1.1 Introduccin

El Laboratorio virtual bsico de Robtica Mvil es una herramienta para el


aprendizaje de robtica mvil, el sistema cuenta con un simulador para la
planificacin

de

trayectorias,

un

entorno

de

programacin

de

teleoperacin de un prototipo mvil.

Es una herramienta con fines de investigacin y docencia la cual sirve tanto


para asentar conceptos tericos como para investigar nuevas tcnicas y
mtodos para robtica mvil. Dado que es una herramienta interactiva,
facilita mucho su uso y la rpida experimentacin por parte del usuario.

1.2 Requerimientos del sistema

Computador Personal que tenga, a lo menos:

16 Mb. de memoria principal


Disco duro con a lo menos 30 Mb. de espacio libre.
Sistema Operativo Windows 95-98-2000-Me-NT-XP
No es compatible con Macintosh
Lego mindstorms 1.1 o superior

133

MSAgent API para sistemas operativos diferentes de XP

1.3 Instalacin

En cuanto a la instalacin de la aplicacin, no existe como tal, puesto que


al estar desarrollada como una interfaz web se ejecuta directamente desde
el navegador bastando con introducir el CD.

2. Ingresando al sistema

2.1 Ingreso al sistema

Inserte el Cd del Laboratorio Virtual, inmediatamente aparecer la ventana


principal en donde podr acceder a las diferentes opciones.

2.2 Entorno del sistema

Esta es la ventana inicial del laboratorio virtual de robtica mvil, el tutor


inteligente ser su gua y le explicar a donde le llevarn las diferentes
opciones.

134

3. El entorno de trabajo

3.1 Subsistema Tutorial

Ventana principal

Cuando ingresa al entorno del Tutorial puede observar dos partes


importantes:

Men de Contenido:

Le permite desplazarse hacia las diferentes

lecciones que componen el tutorial.

rea de Contenido: Es en donde se muestra el contenido de los enlaces


del men, esta rea consta adems en su parte superior con informacin

135

sobre el nmero de pgina en la que se encuentra del total que componen


la leccin y los botones de desplazamiento para moverse entre las pginas.
Men de Contenido

Botones de desplazamiento e
informacin de pginas

rea de Contenido

3.2 Subsistema Simulacin

Ventana de ingreso

Al ingresar al rea de simulacin aparecer la ventana de ingreso donde


debe escoger el modo de entrada a la simulacin que puede ser
Simulacin normal o Prctica Guiada.

136

Ventana de ingreso

Modo Automtico

Al elegir el modo de simulacin normal el entorno de la aplicacin es como


se aprecia en la figura, en donde se puede observar las siguientes partes:

Coordenadas: Permite visualizar las coordenadas X e Y dentro del


espacio de configuracin.
Parmetros: Sirven para el ingreso de los datos del problema de
planificacin de trayectorias.
Etiquetas: Muestra u oculta las coordenadas de los vrtices de los
obstculos ingresados.
Distancia mnima: Muestra el coste del camino mnimo calculado.
Espacio de configuracin: espacio en donde se desenvuelve le
problema.

137

Coordenadas

Distancia mnima

Parmetros

Etiquetas

Espacio de configuracin

Modo de Prctica Guiada

En el modo de prctica guiada la interfaz difiere un poco del modo de


simulacin normal y adicionalmente se encuentran los siguientes
elementos:

Men del Mtodo de grafo de visibilidad: Permite realizar paso a


paso la resolucin del problema en la prctica guiada.
rea de informacin: Indica en que paso se encuentra la prctica.

138

Tutor: Es un agente animado que le gua paso a paso en el


desarrollo de la prctica.
Espacio de recoleccin de resultados: Permite recibir los datos de
clculos que sern verificados para comprobar que esta realizando
bien el ejercicio.
Espacio de visualizacin de coordenadas de obstculos:
Muestra las coordenadas de cada uno de los vrtices de los
obstculos ingresados.
Tutor

rea de informacin

Men Grafo de Visibilidad

Espacio de visualizacin de
coordenadas

Espacio de recoleccin de
resultados.

Barra de Mens del Mtodo de grafo de Visibilidad

139

Men Grafo
Permite aplicar el grafo de visibilidad y calcular el camino mnimo.

Men Polgono
Permite aplicar el algoritmo de sumas de Minkowski para ampliar los
obstculos poligonales.

Men Robot
Permite acceder a la opcin que realiza la simulacin del recorrido del robot
por el camino mnimo.

3.3 Subsistema Programacin

Ventana principal

En este entorno de programacin se pueden apreciar las siguientes partes:


rea de trabajo: En donde se ingresan las instrucciones para la
programacin del robot mvil.
rea de datos del programa: en donde se ingresan el nombre del
archivo de salida a generar y el nombre de la clase principal.
Botones de comando: Permiten la compilacin y ejecucin del
cdigo ingresado en el rea de trabajo.
Barra de men: Permite acceder a las diferentes opciones de
manejo de archivos.

140

Barra de Men

Datos del programa

rea de trabajo

Botones de comando

Men Archivo

Abrir

Permite cargar un archivo de cdigo al rea de trabajo.

Guardar

Permite guardar el programa realizado en el rea de trabajo.

Salir

Cierra el entorno de programacin.

3.4 Subsistema Teleoperacin

Ventana principal

En el entorno de teleoperacin se pueden apreciar los siguientes


elementos:

141

Coordenadas: Permite visualizar las coordenadas X e Y dentro del


espacio de configuracin.
Botones de inicio y fin: El primero inicializa la conexin con el
robot mvil y el segundo corta y cierra la comunicacin con el
dispositivo.
Botones de navegacin: Permiten teleoperar el robot mvil en las 4
direcciones preestabecidas.
Ventana de video: Visualiza el robot mvil mediante la adquisicin
de imgenes de una cmara de video.
Entorno de navegacin: rea donde se ubica el mvil simulado y
que permite su localizacin.

Coordenadas

Botones de
inicio y fin

Botones de navegacin

Ventana de Video

Espacio de navegacin

142

4. Utilizando el laboratorio virtual

4.1 Navegando por el contenido del tutorial

Para navegar por el entorno bastar ir pulsando la opcin deseada en el


ndice de contenidos que aparece en la parte izquierda de cada pgina o a
su vez en los enlaces disponibles.

4.2 Realizar una evaluacin

Para realizar la evaluacin de los conocimientos tericos simplemente debe


ubicar la misma dentro del tutorial contestar las preguntas que le presente y
pulsar el botn

que se encuentra al final, el cual le mostrar los

resultados de su evaluacin.

4.3 Iniciar una simulacin

Para iniciar una simulacin acceda al entorno de simulacin y escoja la


opcin de Simulacin Normal.

143

4.3.1 Introducir datos en la simulacin

Para introducir los datos a la simulacin debe usar el ratn, para ello debe
seleccionar el tipo de dato a introducir desde el rea de parmetros.
Para introducir la posicin inicial del mvil
Para introducir la posicin final del mvil
Para introducir los obstculos
Para colocar al robot

4.3.2 Introducir obstculos

Para dibujar un polgono basta con marcar los puntos que lo forman a lo
largo del espacio de configuracin.
Para aadir un punto se har click con el botn izquierdo del ratn
quedando marcada la coordenada del punto en la pantalla. As
procederemos, movindonos por el rea de dibujo hasta que hayamos
aadido el ltimo punto. Ver figura (a).
Pulsando el click con el botn derecho del ratn se concluye con la
introduccin de puntos al polgono, y es en este momento cuando se
rellena de color el polgono resultante. Ver figura (b).

(a)

(b)

144

En la parte inferior izquierda de la pantalla puede observar un cuadro con


informacin de cada obstculo ingresado y los respectivos vrtices que lo
componen.

4.3.3 Obtener la solucin

Una vez ingresados los datos del problema, para obtener la solucin se
pulsa en el botn

, en donde se observar pausadamente la

ampliacin de los obstculos, la construccin del grafo de visibilidad y el


clculo del camino mnimo.

145

Al empezar la simulacin obtendr en pantalla un cuadro de resumen que


contiene los puntos de la trayectoria que debe seguir el mvil y el ngulo
que debe girar entre cada punto.

4.4 Iniciar una prctica guiada

Para iniciar una prctica guiada acceda al entorno de simulacin y escoja la


opcin de Prctica Guiada, y pulse Continuar. Una vez que la ventana se
haya abierto usted ver al tutor inteligente, el cual lo guiar paso a paso en
la realizacin de la prctica.

Tutor inteligente

Para avanzar al siguiente paso debe pulsar el botn

que se

encuentra en el rea de informacin.

4.4.1 Introducir datos

La introduccin de datos en la prctica guiada es igual al modo de


simulacin normal. Ver apartado 4.3.1.

146

4.4.2 Introducir obstculos

El ingreso de obstculos en la prctica guiada es igual al modo de


simulacin normal. Ver apartado 4.3.2.

4.4.3 Introducir datos solicitados por el tutor

Para comprobar la correcta realizacin de la prctica guiada debe ingresar


en algunos pasos los datos calculados, los cuales sern verificados por el
tutor y en el caso de ser correctos podr avanzar al siguiente paso, de lo
contrario deber revisar sus clculos.
Estos resultados se ingresan en un grid destinado para el efecto y que
aparece en la parte inferior derecha de su pantalla.

4.5 Teleoperando al robot

Una vez abierto el entorno de teleoperacin para empezar a guiar


libremente al robot mvil debe seguir los siguientes pasos:

147

2. Colocar el robot simulado en el entorno de navegacin.


3. Pulsar e el botn

, para establecer comunicacin con el

dispositivo real.
4. Utilizar los botones de navegacin para dirigir al robot mvil, observe
que el robot simulado realiza exactamente los mismos movimientos en
el entorno de navegacin para ayudarle a su localizacin.
5. Para finalizar debe presionar el botn

para cerrar la

comunicacin con el dispositivo real.

Cabe mencionar que en el centro de lo botones de navegacin se


encuentra un casillero, el cual permite ingresar el tiempo en segundos que
el robot ejecutar los movimientos de Adelante y Atrs.

Los movimientos de Izquierda y Derecha son no hacen uso del casillero de


tiempo, es decir, son giros fijos de 90 grados en las respectivas direcciones.

4.6 Creando un programa

En el entorno de programacin puede realizar cualquier programa de


usuario ingresando las sentencias correspondientes en el rea de trabajo.

148

Cuando haya terminado el programa debe asignar un nombre para el


archivo de salida que se generar y especificar el nombre de la clase
principal que uso en su programa.

Para compilar y ejecutar el cdigo creado debe asegurarse que los


parmetros anteriores fueron ingresados; si no existen errores el cdigo se
descarga al robot mvil y se ejecuta en l. Esta operacin se realiza
pulsando el botn

Puede grabar sus programas o recuperarlos desde el men Archivo.

Recuerde que la programacin se realiza en lenguaje C# de acuerdo a los


mismos convencionalismos del NET Framework.

149

4.7 Errores

Existen mensajes de error que pueden aparecer durante el uso del sistema.
Los errores que se pueden producir son:

Simulacin

1.

Ingrese el punto inicial , cuando no se ha ingresado la posicin


inicial del mvil.

2.

Ingrese el punto final , cuando no se ha ingresado la posicin final


del mvil.

3.

Debe ingresar al menos un obstculo , si no se han ingresado


obstculos en el espacio de configuracin.

4.

El vrtice no puede contener una coordenada Y mayor a la del


primer vrtice , si no se ha seguido el orden de ingreso de los vrtices
en direccin de las manecillas del reloj.

5.

Debe ampliar los obstculos utilizando el algoritmo de sumas de


Minkowski , cuando no se ha accedido

la opcin que calcula la

ampliacin de los polgonos.


6.

El vrtice n del obstculo n no es correcto, revise los clculos ,


si ha ingresado un valor incorrecto para el vrtice de algn polgono
ampliado.

7.

El obstculo ampliado contiene n vrtices, revise los clculos ,


cuando se ha ingresado un menor nmero de vrtices calculados para
u polgono ampliado.

150

8.

El vrtice n del obstculo n no contiene un dato vlido , si el


vrtice ingresado de un polgono ampliado no contiene el formato de
ingreso adecuado (X,Y).

9.

Calcule el grafo de visibilidad , si aun no se ha accedido a la opcin


que calcula el grafo de visibilidad.

10. Aun no ha calculado el camino mnimo , si aun no se ha accedido a


la opcin que calcula el camino mnimo.
11. El vrtice n del camino mnimo no es correcto, revise los
clculos , cuando se ha ingresado un valor incorrecto de algn vrtice
que pertenece al camino mnimo.
12. La distancia del camino mnimo no es correcta, revise los
clculos , si se ha ingresado un valor que no corresponde al coste del
camino mnimo.
13. El vrtice n del camino mnimo no contiene un dato vlido , si el
vrtice ingresado del camino mnimo no contiene el formato de ingreso
adecuado (X,Y).

Teleoperacin

1.

Coloque primero el robot mvil , si aun no se ha colocado el robot


mvil en el espacio de navegacin.

2.

Ya ha colocado el robot mvil , cuando el robot mvil ya ha sido


colocado en el espacio de navegacin.

151

3.

Ha ocurrido un error de comunicacin con el robot mvil , si el


robot mvil ha salido fuera del alcance de la seal de la torre IR.

4.

No se pudo iniciar la captura , si no se pudo capturar las imgenes


desde la cmara de video.

5.

No se pudo encontrar el driver , cuando no se encontr el driver de


la cmara de video.

6.

No se pudo crear la ventana de captura , si no fue posible crear la


ventana de captura del video.

Programacin

2.

El nombre de la Aplicacin no puede dejarse en blanco , si no ha


especificado un nombre para el archivo de salida que se va a generar.

3.

El nombre de la clase principal no puede dejarse en blanco , si no


ha especificado el nombre de la clase principal que uso en el programa.

4.

No se puede ejecutar , si hay algn error de enlace y el cdigo no se


puede ejecutar.

152

BIBILIOGRAFIA
ROSENBERG, M. J. (2000). E-Learning: Strategies for Delivering
Knowledge in the Digital Age. New York: McGraw-Hill Professional
Publishing

HARTLEY, D. E. (2000). On-Demand Learning: Training in the New


Millennium. Boston, MA: HRD Press.

DAVIES, J.R., GERTNER, A. S., LESH, N., RICH, C., RICKEL, J., SIDNER,
C. L. (2001). Incorporating Tutorial Strategies into an Intelligent Assistant.
Proceedings of Intelligent User Interfaces 2001, January 2001, Santa Fe,
New

Mexico,

USA.

Disponible

electrnicamente

en

http://www.merl.com/projects/collagen/.

BRICALL, J. M. et al. (2000). Informe Universidad 2000. Disponible


electrnicamente en http://www.crue.upm.es/documen.htm

HANSEN, John, THOMSEN, Carsten. Enterprise development with Visual


Studio.NET, UML and MSF. Apress 2004.

Microsoft Corporation;

Microsoft Solution Framework White Paper ,

Microsoft Corporation, Diciembre 1999.

153

Microsoft Corporation; MSF Process Model v. 3.1. Microsoft Corporation ,


Disponible en: http://www.microsoft.com/msf/. June 2002.

UML.
http://programacion.com/tutoriales/UML/
http://www.dcc.uchile.cl/~psalinas/uml/

FERRARI, Mario, FERRARI, Giulio. Building robots with Lego Mindstoms.


Syngress Publishing 2002.

FERRARI, Mario, FERRARI, Giulio, AGULL, Miguel, et al. Lego


Mindstorms Masterpieces building and programming advanced robots.
Syngress Publishing 2003.

Desarrollo de aplicaciones .NET con Visual C#. McGraw Hill 2002

C# Manual de programacin. MCGraw Hill 2002

Superutilidades para C#. McGraw Hill 2002

MAHESH, Chand. Graphics Programming with GDI+.

CAZORLA, Miguel; COLOMINA, Otto. Robtica (Robots autnomos).


Universidad Autnoma de Espaa 2005.

154

DUDEKAND, G.; JENKIN M. Computational Principles of Mobile Robotics,


Cambridge University Press, 2000.

CAAS, Jos; MATELLN, Vicente; MONTFAR, Rodrigo. Programacin


de robots mviles. Universidad Rey Juan Carlos Espaa. 2005.

ARKIN R. Behavior Based Robotics. The MIT Press, 1998

MURPHY R. Introduction to AI Robotics. The MIT Press, 2000

GIAMARCHI, Frdric. Robots Mviles, estudio y construccin. Paraninfo.


2000.

155

APNDICE
VITA

Informacin
personal

Nombres:
Apellidos:
Nacionalidad:
Cdula Identidad:
Fecha de Nacimiento:

Marianela Elizabeth
Ortiz Beltrn
Ecuatoriana
180321606 - 6
17-05-1979

Primaria 1985 - 1991


Unidad Educativa Experimental Pedro F. Cevallos
Ambato Ecuador
Secundaria 1991 - 1997

Educacin

Colegio Nacional Experimental de Seoritas Ambato


Ambato Tungurahua
Bachiller en Ciencias Fsico Matemtico
Ttulo Carreras Cortas en Electricidad
Miembro del cuadro de honor.
Superior
Pontificia Universidad Catlica 1995 - 1999
Ambato Tungurahua
Aptitud y Peritaje en Idioma Ingls
Escuela Superior Politcnica de Chimborazo 1997 - 2002
Riobamba Ecuador
Analista de Sistemas Informticos
Escuela Politcnica del Ejrcito 2002 - 2006
Sangolqu Ecuador
Suficiencia en Idioma Ingls
Ingeniera en Sistemas e Informtica

156

HOJA DE LEGALIZACION DE FIRMAS


ELABORADA POR

___________________________________
MARIANELA ELIZABETH ORTIZ BELTRN

COORDINADOR DE LA CARRERA

___________________________________
ING. RAMIRO DELGADO

Sangolqu, Diciembre del 2006

157

This document was created with Win2PDF available at http://www.daneprairie.com.


The unregistered version of Win2PDF is for evaluation or non-commercial use only.

Anda mungkin juga menyukai