• No se han encontrado resultados

Tesis David Arzaga 201013.pdf

N/A
N/A
Protected

Academic year: 2020

Share "Tesis David Arzaga 201013.pdf"

Copied!
63
0
0

Texto completo

(1)

Atizapán de Zaragoza, Edo. Méx., Mayo de 2010

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY RECTORÍA ZONA CENTRO

MAESTRÍA EN CIENCIAS COMPUTACIONALES

PROPUESTA DE TESIS

TUTORÍA Y GUÍA EN SECOND LIFE®

Aspirante: DAVID AMADOR ARZAGA OTAMENDI

Asesor: Dr. JORGE ADOLFO RAMÍREZ URESTI

Comité de Tesis: Dr. JORGE RAMÍREZ MEDINA Dr. EDGAR VALLEJO

Dr. NEIL HERNÁNDEZ

Campus: ESTADO DE MÉXICO Matrícula: A00345816

Plan y especialidad: (MCC09, Inteligencia Artificial)

(2)
(3)

Página | 3

Agradecimientos

A Dios por estar aquí siempre.

A mis Padres por darme la oportunidad de compartir la vida con todos los que he encontrado en el camino y me han enseñado algo. Por sus voces tras el teléfono, su presencia en algunos fines de semana y a su gran amor.

A la familia Muscarella Arzaga por su cariño y su ayuda siempre. Por estar pendientes en todo momento y a mis sobrinos por que se le quiere mucho.

A mis profesores y compañeros que me dieron una parte de su conocimiento y con el que me doy cuenta que el camino sigue siendo largo, que siempre seguirá.

A la Dra. María Fonseca por su apoyo para que la maestría fuera posible y por el proyecto en le que estuve involucrado durante este periodo.

Quiero agradecer al Dr. Jorge Ramírez Uresti por su soporte y ayuda para que esto se pudiera construir, investigar y llevar a cabo. Por esa paciencia y asesoría constantes.

Un especial agradecimiento al Dr. Jorge Ramírez Medina por compartir una parte importante de su sueño y su trabajo diario, además de hacerme parte de él, virtual y presencialmente.

Gracias al Dr. Miguel González por ofrecerme la oportunidad de continuar con mis estudios y terminación de una etapa más.

A mi suegra por aguantarme, por su cariño y amor que son invaluables, además por traer a la persona que más quiero a este mundo.

A la Herma y a Charlie por su apoyo especial y por estar en estos momentos en los que necesitábamos de su cariño.

A mi abuelita, que aunque no es mía directamente, la quiero como si lo fuera. Un gran beso Sra. De Ezcurdia.

Más que un agradecimiento a Guille y Fernando, a los que considero más que mis hermanos, por compartir conmigo su techo, alimento y calor humano, por hacerme sentir como en casa.

A las sonrisas de Fernanda y sus juegos con los que disfrute muchas tardes. Por prestarme su cama y por hacerme sentir que la vida vale la pena cuando veo sus ojos.

(4)
(5)

Página | 5

Contenido

TUTORÍA Y GUÍA EN SECOND LIFE® 7

1 RESUMEN 7

2 INTRODUCCIÓN 8

2.1 Descripción 8

2.2 Hipótesis 10

2.3 Objetivos 10

2.4 Alcances 10

3 ESTADO DEL ARTE 12

3.1.1 Bots dentro de Second Life® 12

3.1.2 Second Life® 14

3.1.3 Multiagente 15

3.1.4 Inteligencia Artificial 16

3.1.5 Lenguajes de programación 16

3.1.6 OpenSim. 17

4 DESARROLLO DE IMPLEMENTACIÓN 18

4.1 Método de investigación e implementación 18

4.2 Desarrollo 18

4.2.1 Acciones Básicas 19

4.2.2 Medio Ambiente 23

4.2.3 Planes especiales 25

5 PRUEBAS Y RESULTADOS 41

5.1 Personal de Pruebas 41

5.2 Métodos de medición 41

5.2.1 Medición de información 41

5.2.2 Medición de comportamiento de Agente 41

5.2.3 Manejo de resultados 42

5.3 Resultados 43

5.3.1 Calificaciones de la experiencia 48

6 CONCLUSIONES 52

7 TRABAJO FUTURO 54

8 ANEXOS 56

(6)
(7)

Página | 7 .

TUTORÍA Y GUÍA EN SECOND LIFE®

1

RESUMEN

Debido al crecimiento en la investigación de nuevas tecnologías y herramientas para la educación, ha surgido la necesidad de explorar los mundos virtuales y su las formas en cómo se aprende dentro de ellos, Por lo que se han desarrollado herramientas para estos mundos virtuales, específicamente en Second Life®.

El ITESM CEM está innovando en el área de los mundos virtuales y surge una necesidad de mostrar sus herramientas y simulaciones creadas en Second Life®, por lo que nuevos usuarios y visitantes externos pueden llegar a la isla y utilizar las herramientas.

El desarrollo del presente trabajo, es la aplicación de un bot dentro de la isla que funcione como guía de las diferentes simulaciones y lugares a los usuarios o visitantes a la Isla del ITESM CEM, así como tutor de una de las herramientas elaboradas para facilitar la enseñanza y el aprendizaje, el cual se llama Sloodle y que hace la conexión de Second Life® y Moodle®.

(8)

Página | 8

2

INTRODUCCIÓN

2.1 Descripción

La educación continua y la nuevas tendencias como: Web 2.0, Internet 2, Virtualización, Second Life®, “the cloud” (la nube)[1], dan la oportunidad de seguir innovando en los métodos de educación, sin olvidar la facilidad con la que hoy nos podemos conectar a la gran vía de la información: el internet.

Debido al avance de la tecnología, la virtualización y las redes sociales. Se abre una nueva oportunidad para la educación en la red y los mundos virtuales.

La movilidad y la fácil comunicación de nuestros acelerados días, así como el internet y las redes sociales nos brindan un espacio para la educación por medio de tecnologías nuevas. Las Universidades no han reconocido las verdaderas necesidades de los negocios basados en la innovación abierta, desarrollados en y para un mundo digital. El uso de mundos virtuales ofrece una mezcla de contenidos y actividades para todo tipo de aprendizajes.

El Instituto Tecnológico y de Estudios Superiores de Monterrey campus Estado de México (ITESM CEM) en su necesidad de seguir investigando, innovando y ofreciendo nuevas formas de educación ha adquirido un espacio o una isla en Second Life®1. Un mundo virtual donde puedes interactuar con otros avatares (habitantes de Second Life®) en el que básicamente ha ofrecido su espacio en la nube para la investigación y educación, además de tener una economía dentro de este mundo, en la que se puede comprar, vender, trabajar o crear. Ofrece un espacio también de diversión, entretenimiento y de convivencia.

En este lugar el ITESM CEM ofrece hoy en día clases virtuales en las que el alumno crea su avatar y entra a los diferentes espacios construidos especialmente para este propósito. Los profesores crean espacios y actividades en las que el alumno puede aprender de forma gráfica y de cierta forma virtual lo que sucede en el mundo real.

Al ser una herramienta, de cierta forma nueva, para la educación en México ofrece un campo enorme en el que se puede investigar y experimentar nuevas formas de educación, sin tener que moverse físicamente al salón de clases o al centro de investigación, puesto que al estar en la nube ofrece esa ventaja.

Como cada día hay profesores y alumnos interesados en conocer como es la experiencia virtual en este tipo de herramientas virtuales y de las posibilidades que ofrece de construir lo que

1 Second Life® es un mundo virtual donde se crea un avatar que es la representación virtual de una persona, para que

(9)

Página | 9 no se podría tan fácilmente hacerlo en la vida real ha surgido la necesidad de información, guía y enseñanza de cómo interactuar en este mundo virtual.

Por lo que se propone tener siempre presente en la isla un Bot que de información y guías sobre las herramientas ya construidas y las posibilidades que hay dentro de la isla de la isla del ITESM CEM.

Este bot o agente será capaz de dar información y guiar sobre lo que ofrece el ITESM CEM a las personas, alumnos u otros avatares que lleguen a la isla para solicitar información o ayuda. Hoy en día la isla tiene muchas herramientas y espacios para convivir, es por lo que surge la necesidad de diseñar y dar vida a un avatar que de movimiento a la isla ofreciendo quía sobre las herramientas y los espacios, además de construir la infraestructura necesaria, tanto física como virtual, que sea necesaria para esto

Por lo que se desarrollará un agente virtual (bot) dentro de esta plataforma de vida alterna llamada Second Life®, el cual será anfitrión de la isla del ITESM CEM, a través de las técnicas de Inteligencia Artificial, por lo que estará disponible para el usuario en cualquier momento, gracias a la ayuda gráfica y la virtualización que ofrece Second Life®.

El ITESM CEM preocupado por ofrecer educación y valores a sus alumnos está utilizando otra herramienta web llamada Moodle 2 que es básicamente un sistema de administración de cursos y es de código abierto. Sin dejar de lado el que ya ha utilizado por años que es el Blackboard.

Al juntar estas dos herramientas nace Sloodle que es la interacción entre las dos herramientas, el cual ha servido para tener herramientas tradicionales en Second Life®, como exámenes, presentaciones, encuestas, imágenes, definiciones,

Todo esto con la finalidad de tener presencia en los mundos virtuales y facilitar la información sobre nuevas tecnologías y lo que se desarrolla dentro del ITESM CEM, así como lo son las nuevas tendencias sociales y tecnológicas que se ofrecen por la red e implementar nuevas formas de educación en mundos virtuales. Además de apoyar el uso de tecnologías y el trabajo colaborativo especificado en la misión del ITESM.

2 Moodle. Herramienta para administrar vía web un sistema de clase, en el que se puede planear una clase, curso o

(10)

Página | 10 2.2 Hipótesis

Un bot inteligente puede enseñar cómo utilizar algunas herramientas de educación en Second Life® y ofrecer al visitante un tour a través de la isla y sus instalaciones. Ofreciendo la información sobre cada uno de las construcciones, herramientas o lugares dentro de la isla

2.3 Objetivos

La hipótesis se comprobará por medio de un Agente Inteligente que utilizará las herramientas de Sloodle de enseñanza, que son conectadas a una aplicación Web llamada moodle. Por medio de rutinas hará las presentaciones de las herramientas así como ser un guía para el reconocimiento o visita de la isla

El principal objetivo es demostrar que un agente puede relacionarse en mundos virtuales además de cumplir con un objetivo de educación y guía de turistas. Es por eso que enumero los objetivos de esta tesis:

 Desarrollo de rutinas para movimiento de avatar  Construcción de herramientas para localización

 Base de datos de información de lo que el ITESM CEM ofrece  Desarrollo de comunicación por medio de chat con el Bot

 Tutoriales para aprender a utilizar herramientas dentro de Second Life®  Aprendizaje de dudas y acciones básicas de avatares

2.4 Alcances

Una de las funciones principales de este Bot dentro del mundo virtual son llevar a los nuevos avatares o personas a un tour guiado por el mismo, en el que se muestre el potencial del lugar y de la educación dentro de la isla del ITESM CEM.

Las principales funciones que tiene el bot es el caminar, dirigirse a los puntos principales, seguir a un avatar, y contestar ciertas preguntas para dar información.

(11)

Página | 11 Por medio de instrucciones por el la ventana de Chat este reaccionará y dará la información. Para la enseñanza de alguna herramienta, llevará al avatar visitante por un tutorial o rutinas que este hará dentro de la herramienta y esperará a la instrucción de terminado del paso al que le está ofreciendo la ayuda.

Este bot no pretende tener una conversación con los avatares que entren a la isla. Este será reactivo y aprenderá de las situaciones que se presenten en los tutoriales y las rutas que este tendrá.

(12)

Página | 12

3

ESTADO DEL ARTE

La educación dentro de los mundos virtuales ha tenido un gran desarrollo, este no será el tema principal de la tesis, pero me parece importante colocarlo como antecedente, puesto que la finalidad de tener un agente virtual dentro de Second Life® es dar información sobre la educación que el ITESM CEM dará y ofrecerá dentro de los mundos virtuales.

3.1.1 Bots dentro de Second Life®

Uno de los primeros intentos de realizar agentes dentro de los mundos virtuales es el realizado para Agentes que solo navegan dentro de la isla de la universidad de Carolina del norte (6). Estos entes caminan a través de la isla, los cuales tienen comportamientos y movimientos apropiados en el lugar en que se encuentren. Estos avatares son controlados por una sola computadora que sirve como cliente de Second Life®. Pudieron colocar arriba de 18 avatares, además de los controlados por humanos, con los que estuvieron interactuando. Este es una gran aproximación para el agente virtual, puesto que se puede mover el avatar independientemente y de forma autónoma.

La restricción principal fue el ancho de banda puesto que necesitaban mover mucha información a través de la red, esto para anticipar colisiones, moverse, caminar, pararse, en fin los movimientos de cada uno de los más de 18 avatares.

Todo esto con la finalidad de hacer que la isla no pareciera que estaba vacía y que diera la impresión de que tiene mucha actividad con los avatares dentro de la isla.

La Universidad de Delaware es una de las precursoras en motivar este tipo de educación dentro de los mundos virtuales (3). Y ha creado un ambiente educacional muy activo en el que se puede aprender a través de la interacción, colaboración y participación en los diferentes foros que existen dentro de la isla. La recomendación más importante que da la universidad es la de tener a los alumnos dentro de Second Life® por lo menos 40 horas para que sepa manejar las herramientas de comunicación y de movimiento, ya que puedes volar, caminar, teleportarte, correr o andar en vehículos.

(13)

Página | 13 En fin a lo largo de todo Second Life® te puedes encontrar con diferentes intentos de tener vida inteligente dentro de los mundos virtuales, son conocidos como “bots”, algunos de ellos no tienen movimiento, pero pueden dar alguna información sobre el lugar donde están.

Ha bla C omuni ca C onve rsa C ami na Te lepor tar Ense ña S igue Gr áfic o Ge sti cula P rogr amable Mul ti tar ea Ve nde F ísi ca Múl ti ple

Copybot X X X X X

Clonebot X X X X X

Campingbot X X X X X

Alice Chat X X X X X X

AIbot X X X X X

Navigating X X X

Freud Bot X X X X X X

Bot AFK X X X X X X X X

Thoys bot X X X X X X X X X

JVA bot X X X X

VBM bot X X X X

TutGuia bot X X 1/2 X X X X X X X X

Tabla 1 Comparación de “bots” en Second Life®

En la tabla anterior podemos ver varios de los bots que ya existen en Second Life®, muchos de ellos hacen una tarea en específico y otros pueden ser programables. Analizaremos cada uno de ellos para ver las diferencias entre ellos.

El Copybot es un objeto que puede copiar objetos que no están disponibles para copia, transferencia o a la venta, este está prohibido utilizarlo dentro de del Grid de Second Life®, sin embargo se pude utilizar y puede ser causa de expulsión. No habla pero si comunica al dueño que ya copio o que ya hizo su actividad específica. Lo puedes teleportar y puede caminar cuando le das la coordenada.

(14)

Página | 14 Para explicar el siguiente bot, se tiene que explicar que hay trabajos en Second life® como en la vida real. Uno de los trabajos que existen dentro de Second Life® es ubicarse en una isla y estar activo, esto es para hacer que la isla presente mucho tráfico y aparecer entre las islas más visitadas. Es por esto que el Camping bot se desarrolló, él puede estar en la isla y que le paguen por estar en la isla en al que paga por estar ahí. Este surgió de una necesidad de los usuarios de no estar 15 0 30 minutos sentado o esperando para que te paguen por estar ahí. Normalmente se paga $L1 por cada 30 minutos.

Los siguientes dos bots son muy parecidos, la diferencia entre ellos son en que Alicebot es solo una textura, como si estuvieras hablando por computadora con A.L.I.C.E., mientras que el AIbot es un avatar sentado con el que puedes sostener una conversación igual que con Alicebot. Estos bots no se mueven, solo pueden conversar al igual que el Freudbot, pero no se mueven, no tienen otra acción. Sin embargo estos están muy diseñados para la conversación.

El bot AFK es un avatar que es actor, es programado para hacer obras de teatro, por lo que se mueve y habla, sin embargo no puede tener una conversación. Este avatar está solo cuando se le requiere y no tiene interacción con otros avatares.

Thoys bot es un avatar programable, tiene costo y puede ser manejado por una interfaz fuera del visor. Este recibe las instrucciones por el chat. Así que no es un bot autónomo, tiene que tener un avatar o persona que lo esté llevando por la Isla y que además lo dirija en sus acciones.

Los dos últimos bots son básicamente vendedores, hacen las transacciones de venta dentro de Second Life®, no son avatares, son objetos. El VBM tien el nombre por Vending Bot Machine.

3.1.2 Second Life®

Second Life® es un mundo virtual que está compuesto por regiones, o islas, independientes de 256x256 metros, la cual puede ser pública o privada. El concepto y la administración del mundo virtual pertenecen a Linden Lab, mientras que la administración de cada región y su mantenimiento son realizados por compañías o personas que compran este espacio virtual.

(15)

Página | 15 Otras de las herramientas importantes es que cuenta con chat, voz IP y la posibilidad de hacer presentaciones ya sea dentro de Second Life® o por medio de una página web que será mostrada dentro de cualquier pantalla construida dentro de la isla en la que se dará la presentación. Esto sin olvidar que podemos hacer uso del video streaming, el cual nos permite pasar videos, ya sea de presentaciones o de Youtube®.

3.1.3 Multiagente

El desarrollo del Agente Virtual inteligente da la posibilidad de unir dos herramientas poderosas con las que cuenta la tecnología, que son los Agentes y las virtualización de espacios. Con los cuales surgen muchos retos y desafíos para poder adherir realidad a esta virtualización. Primero, el agente debe navegar dentro del mundo virtual, lo cual consiste en poder moverse autónomamente, comportarse apropiadamente en diferentes situaciones como lo es ver obstáculos, esquivarlos, aproximarse a otros avatares para conversar, caminar. Segundo, poder conversar y responder a diferentes cuestionamientos, por ejemplo, conocer fechas de diplomados, planes de estudios, etc.; además de poder improvisar algunas respuestas o conversaciones. Tercero, parecer un espacio virtual en movimiento, esto significa, tener constantemente actividades y diferentes agentes dentro de la isla, esto hará que no parezca vacía o abandonada, como hoy aparecen muchos espacios en Second Life®, debido a la gran cantidad de espacio que hay y hace parecer que no tiene muchos visitantes.

Los Agentes inteligentes pueden ser de diferentes tipos o son clasificados de la siguiente manera:

1. Agentes reactivos

2. Agentes reactivos basados en modelo 3. Agentes basados en objetos

4. Agentes que aprenden 5. Agentes basados en utilidad 6. Agentes de Consulta

En este trabajo de investigación y de realización nos enfocaremos en dos de ellos que son los agentes de consulta y los agentes que aprenden, aunque en realidad se realizará un estudio completo con estos agentes. Como se verá en la siguiente sección de antecedentes, ya hay agentes insertados en Second Life®, agentes que sirven para llenar islas, agentes que dan información sin movimiento, agentes que realizan una tarea en específico y no son capaces de contestar a sus movimientos, etc. básicamente la diferencia estriba en que este será un multiagente, y no solo aquel que realiza una tarea, este sea capaz de interactuar y realizar tareas específicas.

(16)

Página | 16 La introducción de este agente a la realidad virtual nos dará la facilidad de contar con un ambiente personal y que de confianza a los pioneros de este tipo de educación, ya que puede ser una herramienta para la educación continua, como se hace hoy a través del internet.

3.1.4 Inteligencia Artificial

Esto se realizará con las técnicas de la inteligencia artificial, como lo son las redes bayesianas y las redes neuronales. Las primeras son estructuras gráficas con las que se puede representar y razonar algún tema o dominio. Estos son capaces de relacionar conocimiento por medio de estructuras booleanas y variables que se relacionan mutuamente. Los nodos de estas redes son las variables y las uniones son la representación de la directa dependencia entre ellos. La conexión entre cada variable muestra además una distribución de probabilidad, la cual para el agente virtual será importante saber la probabilidad en la que un pregunta lleva a otra y así será posible dar causas o respuestas a las dudas de las personas que necesiten información.

Una de las limitantes de esta manera de representar el conocimiento es que es difícil aprender de las situaciones o de las preguntas que hagan al agente virtual, por lo que aquí se usarán las redes neuronales. Las cuales tienen la capacidad de aprender de patrones de cualquier dominio o tema, la limitante de estas redes neuronales es que no son capaces de dar una respuesta de cómo aprendieron de por qué se debe de hacer de alguna manera. Por ejemplo, si te preguntan sobre el diplomado en administración del tiempo, entonces será capaz de dar la respuesta de que el primer taller dura 8 horas, pero no será capaz de decir porque dura 8 horas el primer taller.

Es por eso que se ocuparán dos técnicas de representar el conocimiento. Para poder aprender de las situaciones y de poder dar una respuesta coherente de porque de alguna pregunta o alguna situación que se presente dentro de su tarea.

3.1.5 Lenguajes de programación

Las herramientas que se utilizaran para el desarrollo son los lenguajes de programación, las bases de datos y la programación gráfica. Las cuáles serán desarrolladas en diferentes plataformas, aunque la principal será el Linden Script Language (LSL). Este lenguaje es el nativo de Second Life®. Este lenguaje tiene sus limitaciones y los scripts no se pueden desarrollar como en un lenguaje de programación como C#, con el cual se hará un soporte para la base de datos. Las rutinas de movimiento y utilizando las librerías ya hechas para este fin.

(17)

Página | 17 También se utiliza XML para poder hacer que la comunicación entre el agente y las rutinas fuera de Second Life®.

3.1.6 OpenSim.

El otro lenguaje en el que se puede programar el comportamiento del avatar Script lenguaje (OSSL). El cual tiene diferentes herramientas: Base de Datos, aplicaciones y módulos de región, que pueden ser fácilmente cambiados o reemplazados debido a que son código abierto.

OpenSim es otro de los mundos virtuales de los cuales también se ha desarrollado mucho, esto debido a que es de código abierto y se puede cargar un servidor en cualquier máquina, Así que se puede tener una isla privada o pública según se necesite o se quiera. La ventaja es la rapidez en comunicación, la capacidad está limitada por la máquina que tenga el servidor.

Este mundo virtual tiene presencia de diferentes universidades que han montado y compartido su isla desde sus servidores locales, así que no necesitan de un tercero que les ofrezca el servicio como lo es Linden Lab. En este no hay economía. Tiene la desventaja de que no es tan sencillo de instalar ni tampoco de configurar, puesto que no hay mucha información reciente y ha habido muchos cambios en el desarrollo.

Esta creo es una herramienta muy importante para poder hacer el desarrollo y después probarlo de manera rápida y sencilla dentro del campus o de un salón de clase, en el que el servidor está cerca y no hay lags3.

3 Lag. Es el retraso producido en una telecomunicación que dificulta el desarrollo normal del mismo, ocasionando

(18)

Página | 18

4

DESARROLLO DE IMPLEMENTACIÓN

En esta tesis se desarrollará un Bot para explorar la Inteligencia artificial dentro de mundos virtuales tridimensionales. El propósito es utilizar las herramientas de la inteligencia artificial para dar información y responder dudas o preguntas sobre la educación en el ITESM CEM Second Life®. Con esto se puede llegar a desarrollar un tutor o maestro inteligente dentro de los mundos virtuales.

4.1 Método de investigación e implementación

Se utilizó el método de investigación experimental y de análisis documental sobre los agentes y los mundos virtuales, dentro de la plataforma Second Life®, para el desarrollo del agente virtual inteligente. Con lo cual se siguió estos puntos importantes para la implementación

 Diseño de la investigación y para implementar el Bot dentro de Second Life®:  Investigación sobre Bots con inteligencia artificial

 Aprendizaje del uso de Second Life®

 Investigación sobre equipo necesario para la implementación del Bot  Análisis de Agentes ya utilizados dentro de Mundos Virtuales

 Implementación de Agente dentro de Second Life®  Pruebas de evolución del Agente dentro de la isla  Pre-lanzamiento del Agente

 Lanzamiento del Agente en Second Life®

Esto de acuerdo al cronograma presentado en la primera sección.

4.2 Desarrollo

El desarrollo empieza con la selección del lenguaje de programación y como ya se dijo anteriormente se escogió C# que es la base de Second Life®, además de que se desarrolló una librería en la cual se tiene muchos procedimientos, objetos y funciones ya desarrolladas con las cuales se puede hacer la comunicación directa con los servidores de Linden Lab®.

(19)

Página | 19

Figura 4-1 División de Actividades

4.2.1 Acciones Básicas

El bot se mueve o reacciona por medio de procedimientos y acciones con los cuales interactúa con el medio y con los demás avatares. Las acciones básicas y principales son las siguientes:  Caminar  Saludar  Hablar  Pensar  Teleportar  Seguir  Contestar  Construir 4.2.1.1 Caminar

El bot se mueve a una coordenada dada dentro da la isla. Este procedimiento recibe la coordenada y hace que el avatar se mueva al lugar o al punto dado. Esto por medio de la instrucción: AutoPilotLocal(x,y,z)

Acc

ione

s

Básic

as

Caminar

Saludar

Hablar

Teleportar

Construir

Pensar

Medio

Am

bie

nte

Escuchar Chat

Escuchar

Messenger

Avatar cerca

Posición

Plane

s

Espec

ia

le

s

Ruta

(20)

Página | 20 Que hace el movimiento del avatar hacia el lugar determinado recibiendo la coordenada x, y, z. Para terminar el procedimiento de caminar en el punto deseado se le da la instrucción:

AutoPilotCancel().

Esto es lo que hace cada vez que es solicitado caminar a través de la isla. Ya sea que se mueva a puntos definidos o a puntos donde el avatar más cercano se encuentre. Esto se explicará ya en las tareas o planes que tiene que hacer el bot, que es lo que finalmente se ve al darle una instrucción al bot.

4.2.1.2 Saludar

Al percibir del medio que un avatar esta alrededor a una distancia de 5 metros, revisa su “memoria”, en este caso una lista de avatares al cual ya le dio la bienvenida, si este no está dentro de la lista lo saluda por medio de una reverencia (gesto) y por medio del Messenger le da la bienvenida. Esto se hace por medio de la instrucción:

AnimationStart(Animations.COURTBOW, true);

Esta ya cuenta con un serie de gestos o gesticulaciones que tiene por default Second Life®, El primer parámetro es el Gesto en sí que en este caso es COURTBOW, es el gesto en el que el avatar hace una caravana al avatar, y el segundo parámetro es para habilitarlo que en este ejemplo es “true”.

Para terminar con el Gesto si este es un ciclo entonces se usa la instrucción:

AnimationStop(Animations. COURTBOW, true);

En la cual se vuelve a indicar el gesto en el primer parámetro y true en el segundo parámetro para hacer que esta instrucción se ejecute.

4.2.1.3 Hablar

Esta es una instrucción básica en la que puede contestar, mostrar o saludar por el canal que elija y lo que quiera decir. Esto lo hace de dos maneras. Ya sea por la ventana del chat con la instrucción:

Chat( Texto, Canal, ChatType.Normal)

(21)

Página | 21 En Second Life® el canal “0” es el canal para el chat que pueden escuchar o leer los avatares que están dentro de 20 metros y se puede usar cualquier canal para instrucciones, que puede ser cualquier número entero.

La segunda forma es por medio del Messenger en el que no necesitas ver al avatar y este te puede mandar un mensaje, esto se hace con la instrucción:

InstantMessage(mensaje.FromAgentID, Texto, mensaje.IMSessionID).

En la que FromAgentID, es el id o UUID del avatar al que vas a enviar el mensaje; “Texto” es el mensaje a enviar y IMSessionID es el número de la sesión en la que estas enviando mensajes, esto por si estas enviando mensajes a diferentes avatares y en diferentes sesiones o momentos distintos y que se pueda diferenciar la sesión de Messenger.

4.2.1.4 Teleportar

Este es un caso especial, puesto que solo funciona cuando la distancia es mayor a 40 metros y en diferente parcela a la que se le pide que teleporte. Esta instrucción solo funciona por medio del Messenger, para este caso, pues así la desarrollé. Para que pueda ser llamado desde lejos y por medio del Messenger. Y la instrucción es:

Teleport("Tecnologico de Monterrey", vPos);

El primer parámetro se da la isla o lugar a transportar y “vPos” es el vector o coordenada a la que va a ser enviado. En el caso del bot el vector lo obtiene de la posición del avatar que le envió el mensaje. Y solo se puede transportar a lo largo de la isla del Tec CEM.

4.2.1.5 Construir

Esta es una acción que no es muy utilizada en el proyecto, sin embargo esta implementada solo para el lugar o la parcela que era el Sandbox, hoy llamada “Bicentenario”. Está instrucción es

AddPrim(Client.Network.CurrentSim, prim, UUID.Zero, rezPos, scale, Client.Self.RelativeRotation);

(22)

Página | 22 “rezPos” es la posición relativa a tu posición en la que se va rezear. “scale” es el tamaño al que quieres que aparezca y finalmente una rotación de acuerdo a la posición relativa con la posición del avatar que lo va a construir en el parámetro “RelativeRotation”.

4.2.1.6 Pensar

La función pensar es la más importante puesto que es la que hace la unión entre las instrucciones básicas, los parámetros que está evaluando o sensando del medio ambiente y los planes especiales, puesto que es el que decide que debe de hacer de acuerdo a su información.

Para esto toma la información del medio ambiente que es:

 Posición actual del bot. (Vector3)  Entrada de mensaje vía chat (Mensaje)  Entrada de mensaje vía Messenger (Mensaje)

 Presencia y posición de avatares dentro de la Isla.(Vector3)

Verifica su estado Actual

 Siguiendo (followon)  Caminando (caminaLugar)  Ruta (tengoRuta)

 Acompañado (hablar en cada lugar)  EnTour (Si está como guía y dando tour)

 Espera Respuesta (tengoMemoria: si preguntó algo y espera alguna respuesta)  Tutorial (Si está enseñando alguna herramienta de sloodle)

De acuerdo a lo que esta sensando toma la decisión de que debe hacer. Las prioridades son:

1. Tutorial 2. Saludar 3. Contestar 4. Tour 5. Caminar 6. Seguir 7. Teleportar 8. Construir

(23)

Página | 23 Básicamente tiene prioridad 1 el tutorial y las demás acciones las puede hacer en cualquier momento. Puesto que hay algunas que no interfieren con las otras. Por ejemplo puede caminar y contestar por el Messenger. Cambiar de ruta si ya no quiere ir a algún lugar, etc.

4.2.2 Medio Ambiente

4.2.2.1 Escuchar

Esta operación es un llamada del servidor de Second Life® al avatar, para la cual se abre la comunicación desde que entra el avatar al Sim o la isla y está activo escuchando hasta que recibe la señal del servidor de Second Life®, Para esto se abre la comunicación con el chat y el Messenger con las siguientes instrucciones que deben estar en la función “Main” o cuando el avatar se conecta con el grid de Second Life®:

Client.Self.OnChat += new AgentManager.ChatCallback(Self_OnChat);

Client.Self.OnInstantMessage +=new AgentManager.InstantMessageCallback (Self_OnInstantMessage )

Las dos instrucciones abren la comunicación hacia el avatar o el Agente conectado. Recibiendo como parámetro lo que reciben de Second Life®. Al recibir comunicación este manda llamar al procedimiento de chat o de Messenger y analiza el mensaje. El bot cuenta con instrucciones de una sola palabra o entra al análisis de la frase que es “Contestar”, que analizaremos más adelante.

El procedimiento recibe:

private static void Self_OnChat(string mensaje, ChatAudibleLevel audible, ChatType tipo, ChatSourceType fuente, string quien, UUID id, UUID ownerid, Vector3 posicion)

 Mensaje (Que se dijo)  Audible (no usado)  Tipo de Chat (Normal)

 Fuente (sistema, objeto o avatar)  Quien (Nombre de objeto o persona)  Id (Id de objeto o avatar)

(24)

Página | 24 Las instrucciones que recibe por medio del chat como instrucciones son (Tabla 2):

Instrucción

Acción

Hola Saluda al avatar y dice su nombre

Hi o Hello Saluda en inglés y dice que por el momento no habla este idioma

Sigueme Sigue al avatar que lo solicitó

Tutorial Lo lleva al lugar donde está el tutorial y se queda con el mostrándole las herramientas

Adiós o bye Se despide y ofrece amistad, para poder hablar por el Messenger

Vete Deja de seguir y se va a la entrada Tour. Da un tour guiado por la isla

Ayuda Dependiendo la situación da el listado de acciones que puede hacer

Tabla 2 Instrucciones básicas

4.2.2.2 Avatar Cerca

Esta lectura de los avatares se hace muy parecida al de escuchar, puesto que se abre la comunicación con el servidor de Second Life® y se hace un actualizado de los objetos y avatares que se encuentran en la isla. Así que el bot está informado de la situación de todos los avatares. Esto se hace abriendo la comunicación con la siguiente instrucción

Client.Objects.OnObjectUpdated += new

ObjectManager.ObjectUpdatedCallback(Objects_OnObjectUpdated);

Al recibir información manda llamar al procedimiento siguiente:

private static void Objects_OnObjectUpdated(Simulator simulator, ObjectUpdate update, ulong regionHandle, ushort timeDilation)

Este recibe el sim o la isla que está actualizando, la actualización de la isla se guarda en “update”, el manejo de la región o el nombre y el tiempo de que se tarda en actualizar.

En el parámetro o variable “update” se tiene una función para avatar en la que se guarda la actualización de su posición o su estado conectado o desconectado.

(25)

Página | 25 4.2.2.3 Posición

La posición actual de nuestro agente o bot se actualiza igual que en el procedimiento anterior, puesto que sabemos el nombre de nuestro avatar y ya lo tenemos como una instancia, entonces solo pedimos la posición con la siguiente instrucción

Client.Self.SimPosition()

Que regresa un vector del tipo Vector3, con el que sabemos la posición acutal de nuestro avatar y así compararlo con los objetos alrededor o solo para saber su localización

4.2.3 Planes especiales

Estos procedimientos están más desarrollados que las acciones anteriores en las que con una o hasta tres instrucciones se obtenía el parámetro a utilizar. A continuación se describe como se desarrolló y un diagrama de flujo de cómo se hace.

4.2.3.1 Ruta

Este plan especial se encarga de encontrar la ruta más cercana al lugar pedido por algún avatar, el cual quiere visitar o encontrar.

Primero se diseñó un grafo a lo largo de la isla, en el cual se escogieron los puntos deseados y algunos puntos de apoyo para esquivar obstáculos u objetos. Se escogieron 27 puntos los cuales se pueden ver en el mapa (Figura 4-2).

(26)

Página | 26

Figura 4-2 Grafo de puntos y aristas dentro de la isla

//Posicion de Lugares

public static Vector3[] posicion = {new Vector3(31, 38, 22), // 0 inicio new Vector3(59, 42, 24), // 1 apoyo1 new Vector3(59, 62, 24), // 2 apoyo2 new Vector3(119, 62, 25), // 3 apoyo3 new Vector3(119, 52, 25), // 4 galeria new Vector3(163, 62, 25), // 5 apoyo4 new Vector3(163, 45, 24), // 6 sandbox new Vector3(163, 119, 28), // 7 ega new Vector3(184, 115, 29), // 8 puertaega1 new Vector3(184, 125, 29), // 9 puertaega2 new Vector3(119, 119, 28), //10 plazatec new Vector3(67, 119, 30), //11 apoyo5 new Vector3(49, 119, 34), //12 auditorio new Vector3(67, 172, 25), //13 ciencia new Vector3(80, 172, 25), //14 apoyo7 new Vector3(119, 172, 25), //15 cima new Vector3(80, 230, 37), //16 cubo new Vector3(41, 218, 37), //17 lobby new Vector3(180, 148, 29), //18 apoyo6 new Vector3(180, 200, 29), //19 azul new Vector3(220, 210, 29), //20 plazaazul new Vector3(46, 55, 22), //21 mapa new Vector3(37, 61, 22), //22 ayudas new Vector3(59, 79, 26), //23 apoyo8 new Vector3(67, 81, 26), //24 apoyo9 new Vector3(249, 60, 24), //25 apoyo10 new Vector3(249, 76, 30), //26 salon };

(27)

Página | 27 Para encontrar el camino más corto a cualquier punto se deben definir las aristas o las líneas de conexión entre cada uno de los puntos, esto gracias a que se llena otra matriz con los aristas, en forma de lista (Figura 4-4).

Public static int[][] aristas = { new int[] {1,21,22}, //inicio new int[] {0,2}, //apoyo1 new int[] {1,3,5,23}, //apoyo2 new int[] {2,4,5,10,15}, //apoyo3 new int[] {3,10,15}, //galeria new int[] {2,3,6,7,25}, //apoyo4 new int[] {5,7}, //sandbox new int[] {5,6,8,9,10,11,12,18}, //ega new int[] {7,9}, //puertaega1 new int[] {7,8}, //puertaega2 new int[] {3,4,7,11,12,15}, //plazatec new int[] {7,10,12,13,24}, //apoyo5 new int[] {7,10,11}, //auditorio new int[] {11,14,15}, //ciencia new int[] {13,15,16}, //apoyo7 new int[] {3,4,10,13,14}, //cima new int[] {14,17}, //cubo new int[] {16}, //lobby new int[] {7,19}, //apoyo6 new int[] {18,20}, //azul new int[] {19}, //plazaazul new int[] {0,22}, //mapa new int[] {0,21,23}, //ayudas new int[] {2,22,24}, //apoyo8 new int[] {11,23}, //apoyo9 new int[] {5,26}, //apoyo10 new int[] {25}, //salon };

Figura 4-4 Lista de aristas de los puntos

Finalmente se usa el algoritmo de Dijkstra (Figura 4-5), el cual se evalúa por cada punto cual es el camino más corto para llegar a todos los demás.

Lo que hace este algoritmo es colocar en una matriz el camino más corto del punto del que va iniciar a caminar hacia todos los puntos y solo se escoge la ruta hacia el punto al que va a llegar.

(28)

Página | 28

Figura 4-5 Algoritmo de Dijkstra

Cuando se obtiene la ruta que debe seguir el bot para llevar al usuario o para desplazarse a el lugar entonces el avatar se pone en estado de “Ruta”, por lo que este manda llamar al método caminar y espera que llegue a cada punto de la ruta que ya obtuvo. A continuación está el diagrama que usa cuando llega una instrucción de ir a algún punto del grafo (Diagrama 1).

4.2.3.2 Seguir

Seguir es un plan especial, puesto que el avatar que lo solicita es seguido por el bot, llamando este a varios métodos como hablar, caminar, contestar.

Cuando un avatar solicita al bot que lo siga con la instrucción por el chat “sígueme”, este pasa al estado de seguir (follow) y espera la actualización del servidor de Second life® para saber su posición. Al recibir la actualización, este manda llamar al método caminar con la coordenada del avatar y entonces le envía la coordenada a la que se debe mover el bot.

Esta acción depende del tiempo con el cual se actualiza la información y es enviada desde el servidor de Second Life®, ya que dependiendo de la conexión hacia internet, el bot reacciona más rápido o se ve como si estuviera parado mucho tiempo antes de seguir al avatar.

Al estar cerca del avatar mide la distancia y si esta es menor a 3 metros entonces para junto al avatar al cual está siguiendo y espera su nuevo movimiento o su instrucción de salida (“no me sigas”) o un tiempo determinado en 5 minutos para el cual regresará al inicio.

4

1

2 3

5 3

2 5

1

Se busca por cada punto el camino más corto a cada punto.

Por ejemplo de 2 a 4 el camino es de 2 - 3 - 1 - 4 (Distancia = 6)

Este algoritmo verifica punto por punto cual es el camino más corto a cada punto.

(29)

Página | 29

Diagrama 1 Diagrama de flujo de Plan Ruta (Caminar de un posición actual a el punto solicitado)

Busca ruta en la matriz

¿Está en la matriz?

Llena la matriz con el algoritmo de Dijkstra

Avatar en estado de Ruta

Llama a método Caminar con siguiente punto de

la ruta

¿Llegó a punto final?

Avatar sale de estado de ruta

No

No Si

Si

¿Hay avatar cerca?

Llama a método Hablar

Si

(30)

Página | 30 Si le pregunta “¿Qué es lo que hay en ese lugar?”, “¿que hay aquí?”, “¿qué es esto?” manda llamar al método donde busca la su posición y busca en el siguiente árbol estático el lugar para saber que debe contestar de acuerdo a lo que tiene (Figura 4-6).

"inicio":

Si está en Tour

"Aqui empezamos el Tour"

En cualquier otro estado

"En la isla del tec hay simulaciones, clases, representaciones y herramientas para la educación. Hay una celebración del Bicentenario y una réplica edificio de la Ega o CCI"

"mapa":

"El mapa de la isla , con el puedes interactuar y te va dando fotos del lugar en la pantalla inferior y lo muestra en el mapa”

"ayudas":

"Aqui encontraras lugares a visitar que te ayudarán a una mejor integración con SL" "sandbox":

"A construir!!!!!!!, Un lugar libre para poder construir objetos y hacer scripting libremente"

"ega":

"La escuela de Graduados de administración. Una réplica del edificio real que está en el campus Estado de México"

"lobby":

"Un magnifico Lugar!!! Por favor entra a las simulaciones que tenemos, Ve por los teletransportadores."

"Te espero 15 minutos y regreso al inicio del tour. "

"Si quieres que te espere más tiempo cada vez que regreses de una simulación dime espera por el chat. "

"galeria":

"Excelente lugar para hacer exposiciones artísticas, en este momento hay pinturas de artistas muy conocidos, Aquí podrías montar tu galería si eres artista o te gusta "

"auditorio":

“Este es el auditorio, tiene una vista del Atardecer inigualable. " “Aquí se toman clases presenciales "

"ciencia":

"En este lugar se tienen varias construcciones hechas por alumnos da la Clase de Ciencia Cognitiva. "

"cima":

"La famosa tienda del Tec estado de México, donde encontrarás ropa, herramientas y muchas cosas para construir "

"plazatec":

"El centro de la isla, solo pasaremos por aquí porque es la referencia central de la isla "

(31)

Página | 31

"Este es el primer edificio que se construyó en la isla, consta de 4 pisos, tiene varias simulaciones y un auditorio donde se toma clase de modo tradicional "

"apoyo1":

"Esta es la bahía del tec y tenemos una cascada "

"apoyo2":

"Una cascada, solo de adorno pero bonita ¿no? y arriba del monte está el mirador "

"apoyo3":

"Una explana da para exposiciones, ahora hay varias pinturas!!! "

"apoyo4":

"Solía haber un Sandbox aquí, pero por el momento se montó una exposición del Bicentenario y por las escaleras está el túnel de la ciencia "

"apoyo5":

"Un auditorio para clases subiendo las escaleras y la plaza tec bajando las escaleras "

"apoyo6":

"El edificio café es la Escuela de Graduados de Administración y el Edificio al fondo del camino es el primer edificio hay un auditorio para clases"

"apoyo7":

"Subiendo las escaleras estas las simulaciones de ciencia cognitiva se llama el Cubo."

"apoyo8":

"Subiendo las escaleras está el auditorio y la plaza tec. Bajando esta la cascada y la bahía de entrada a la Isla del Tec"

"apoyo9":

"Subiendo las escaleras estas las simulaciones de ciencia cognitiva se llama el Cubo."

"puertaega1":

"La escuela de Graduados de administración. Una réplica del edificio real que está en el campus Estado de México"

"puertaega2":

"La escuela de Graduados de administración. Una réplica del edificio real que está en el campus Estado de México"

Figura 4-6 Árbol para explicación del lugar

(32)

Página | 32

Diagrama 2 Diagrama de flujo de seguir a Avatar

4.2.3.3 Contestar

Este método fue un extra sobre la funcionalidad del bot, la idea de tener esto como funcionalidad fue que el bot intentará contestar a ciertas frases de acuerdo al entorno y sus funcionalidades lo que el avatar le pedía o le preguntara.

Escucha instrucción de seguir

Avatar pasa a esta de Seguir

Espera posición de Avatar (5 min)

Distancia < 3metros

Llama a Caminar No

(33)

Página | 33 Esto se realiza dividiendo la frase de acuerdo a ciertas palabras clave y va buscando a través de un árbol de decisión. La primera división fue de acuerdo a los adverbios de interrogación

 Qué  Quién  Cómo  Donde  Cual

AnalizaQue()

Es el método que analiza básicamente los contextos de objetivo del bot, medio ambiente, definiciones de los lugares o simulaciones. Esto a grandes rasgos, pues usa un árbol de decisión estático de acuerdo a las palabras que se encuentran en el mensaje recibido, por ejemplo si recibe ¿Qué hay aquí? entonces primero busca la palabra “qué”, de ahí busca las siguientes palabras, “aquí”, “Isla”, “recomiend”, lo cual ya tiene una frase determinada. Es este caso tiene “aquí”, Por lo que asume que esta por lo que hay en la isla o en ese lugar, así que contesta: “Para mí lo mejor es la representación del bicentenario”, “o las simulaciones del cubo o del edificio azul”.

Este es un proceso con un árbol estático, el cual se propone que a trabajo futuro se pudiera integrar ontologías y empezar a tener definiciones de los objetos, y de las cosas que hay dentro de la isla.

AnalizaQuien()

Este método se encierra dentro de Quien es el avatar. Y solo pude contestar a las preguntas relacionadas con ¿Quién eres tú?

AnalizaCual()

El método para la palabra cual solo responde el nombre del avatar o si preguntan cual de las simulaciones es la mejor, puede recomendar algo

Analiza DondeYComo()

Este método es el más extenso puesto que agrupa donde y como dentro de la frase, esto por las preguntas que se pueden parecer “¿Dónde está…” y “¿Cómo llego a…?, básicamente se centra en donde están los lugares, de diferentes formas, También hace referencia a datos del bot, con la pregunta ¿cómo te llamas?...

(34)

Página | 34 Este bot puede tener memoria, si hace una pregunta dentro de cualquiera de los estados que tiene y si espera alguna respuesta del usuario lo hace con el método RespuestaPregunta(). Todas las preguntas que hace el bot son de respuestas rápidas con si, ok o No. De esta manera el bot entra en estado de Espera de respuesta, con una bandera de tengoMemoria, y lo que hace es de acuerdo a la pregunta que haya hecho y al estado en el que esta espera un sí , ok, claro o no, y es así como sigue o para la actividad en la que está

En los casos donde la respuesta es una de las que está sugiriendo en la misma pregunta lo que hace es unir la pregunta con la respuesta y volver a analizar palabra por palabra. Esto es si alguien le pregunta “¿Qué hace esta simulación?” el bot pregunta ¿Que simulación: Juego de la vida, cuarto chino, prueba de Turing…”, al responder el usuario “juego de la vida”, entonces une la pregunta con la respuesta, busca en el árbol que-simulación.-(juego o vida) es de la que quiere información y este le da la respuesta de que hace la simulación. (Diagrama 3)

Diagrama 3 Diagrama de flujo de contestar pregunta

Escucha pregunta

Analiza mensaje en árbol

Une pregunta con respuesta

¿Tiene Memoria

?

Da respuesta No

(35)

Página | 35

4.2.3.4 Tour

El método que le da el propósito a esta tesis es el tour por la isla. Este método es el que da la guía través del Sim o isla del ITESM CEM. El tour puede ser inicializado con la instrucción “tour” en la ventana del chat o por medio de decirle: “Dame el tour”. Este recibirá la instrucción y por cada punto dará una breve descripción de lo que hay en cada uno de los edificios o zonas de la isla. De acuerdo al grafo que se tiene que se puede ver en la figura 4 de este capítulo, va recorriendo una ruta fija que se estableció de acuerdo a la importancia de los lugares. Recorre toda la isla y en cada lugar específico espera al avatar que solicitó el tour. Si en ese momento quiere o prefiere cambiar de rumbo o pedir otra instrucción, puede responderle al avatar que no quiere seguir el tour o decirle la instrucción para que cambie de actividad.

Las simulaciones son de los lugares más visitados y más importantes de la isla, por lo que en este punto particular, que es el Lobby del edificio llamada “Cubo”, puede hacer una explicación de cada una de las simulaciones que se han realizado en esta parte de la Isla.

El tour hace uso de diferentes métodos básicos, que es el caminar, contestar, hablar, escuchar, verificar posición actual y del avatar que solicitó. Que a continuación (Diagrama 4) se enumeran y se ve en cada uno de cómo es llamado en el siguiente diagrama. El método de contestar está activo en todo momento ya que trabaja con el método Escuchar() y este está activo en todo momento.

Al final si termina el tour, el bot da las gracias y le dice al usuario que estará en el inicio, si termina entes, el bot pregunta si quiere que lo lleve a algún otro lugar o prefiere que se vaya.

(36)

Página | 36

Diagrama 4 Diagrama de flujo de Tour

Escucha Instrucción Tour

Verifica estado y posición actual

Llama a método caminar para ir a

Inicio

¿Está en Inicio?

Manda llamar al Método Hablar()

¿Está cerca Avatar?

Pregunta ¿Seguimos

?

Termina Tour

Llama a método caminar para ir al

siguiente punto No

Si

No

(37)

Página | 37 4.2.3.5 Tutorial

El tutorial es otro de los métodos importantes del bot, puesto que interactúa con su medio para que los profesores o cualquier persona puedan tomar el tutorial. El tutorial se basa en una interacción con los objetos del salón donde se enseña a usar tres de las herramientas de Sloodle®, que son la conexión con Moodle®, una herramienta que es parecida a BlackBoard® con la ventaja de ser de código abierto.

Como se explicó en el estado del arte puede tener actividades como lo hace Moodle® dentro de Second Life®, Como el quiz (examen), el cual es un silla que va haciendo las preguntas de opción múltiple o de verdadero y falso. El controlador que es la conexión entre Moodle® y Second Life®.

Esta actividad inicia cuando recibe la instrucción “Tutorial”. Así el avatar se desplaza al salón o al lugar donde se va a llevar a cabo el tutorial el cual es un CAI (Computer assited Instruction) el cual va diciendo paso a paso lo que se debe de hacer para hacer que tu herramienta esté conectada con Moodle y puedas llevar el registro de lo que se hizo dentro del Mundo Virtual

Al llegar al lugar el bot da el inicio al CAI, el cual verifica que esté el avatar que pidió el tutorial. En esta parte todo se desarrolló en dentro de los objetos que están dentro de SeconLife®, Y el bot está como espectador e interactuando con los objetos y el avatar usuario.

El tutorial está compuesto por tres herramientas:

 Controlador  Presentador  Silla (quiz)

Al inicio se empieza con el Controlador puesto que es el objeto raíz y el que hace la conexión, así que solo da la opción de pedir el controlador o salir. Este coloca prim con una imagen de lo que se está haciendo, para que sea más fácil el reconocimiento de la instrucción, es un apoyo visual. Lo lleva paso a paso de lo que está haciendo hasta que llega al término de la primera herramienta, al finalizar le da la opción al avatar usuario que siga con otra herramienta o tiene también la opción de salir. Cuando termina el bot le da las gracias y espera la siguiente instrucción, sino recibe nada dentro de 5 minutos se regresa a “Inicio”.

(38)

Página | 38

Diagrama 5 Diagrama de flujo del bot en Tutorial

Escucha Instrucción Tutorial

¿Llegó a Salón con

Avatar?

Llama a método caminar para ir al

salón

No

Si Da Instrucción de

inicio al Objeto Administrador

Espera a Avatar

Da la ayuda en estado Tutorial

¿Ayuda?

¿Salir?

Terminar

Si

Si No

(39)

Página | 39 Escucha Instrucción

Iniciar del bot

Pide el nombre del Avatar que solicitó

el tutorial

¿Está el Avatar cerca?

No

Si

Espera a Avatar

Coloca diapositiva correspondiente y manda instrucción

¿Listo?

Espera mientras termina Avatar

usuario No

Si

¿Es la última?

No

¿Herrami enta o Salir?

Si

Herramienta

(40)

Página | 40

Diagrama 6 Diagrama de flujo de Administrador

Diagrama 7 Diagrama de flujo de Frases

4.2.3.6 Métodos de Apoyo

Es esta sección veremos los procedimientos, funciones y/o métodos que se utilizan para hacer la integración de todas estas acciones y actividades del bot.

Una de ellas es que cuando al bot no se le ha solicitado nada durante 5 minutos se regresa a Inicio para esperar a otra persona.

El método ayuda, es el que dependiendo las circunstancias o el estado del avatar y el lugar puede dar una breve descripción de las funciones que están disponibles en ese momento, si es que esta en Tour, si está en el tutorial, o simplemente está pidiendo ayuda el avatar usuario.

Cada vez que llega al lugar solicitado este habla para decir que ya llegó al lugar solicitado.

Escucha Instrucción Iniciar del Administrador

Dice frase correspondiente a

Diapositiva

(41)

Página | 41

5

PRUEBAS Y RESULTADOS

5.1 Personal de Pruebas

La muestra se tomó de acuerdo a los alumnos y profesores que usan Second Life®, los cuales están más habituados al uso de este mundo virtual, esto para evitar el enseñar a los alumnos a caminar, volar, hablar, etcétera, todo lo que se puede hacer en Second Life®.

Se tomó una muestra de tres alumnos que construyen en Second Life® y un profesor que tiene una clase montada en el mundo virtual de Second Life®. Para los cuales se les aplicó herramienta de “Think Aloud”, así como una encuesta para verificar que está funcionando correctamente.

5.2 Métodos de medición

5.2.1 Medición de información

La información importante que se debe medir es si este bot es fácil de utilizar y si cumple con las heurísticas que ya se conocen de interfaces de mundos virtuales o de programas de computadoras donde se tiene experiencia por parte de los usuarios

5.2.2 Medición de comportamiento de Agente

El comportamiento del Agente es un punto importante a medir, además de cómo es que colabora con la educación de la isla. Por lo que las variables que se van a medir son las siguientes:

Desplazamiento- Como es que se mueve dentro de la isla sin depender de alguien o de algo para moverse dentro de la isla. Esto se hará por medio de que responda a 100 movimientos a diferentes lugares y ver si lo consiguió sin ningún contratiempo

Autonomía- Si es capaz de hacer los planes especiales y regresar a su posición de inicio.

Comunicación.- Esto se refiere a la manera en que puede interactuar con otros agentes o con avatares de personas reales. Esto es que reciba instrucciones y verificar si contesta, o hace una actividad.

(42)

Página | 42 Al ser un Avatar Guía verificar si es que hace todos los recorridos completos y si este describe el lugar donde está. Para hacer las mediciones se presenta la hoja del Think Aloud que siguieron los usuarios para interactuar con el bot.

A continuación están las direcciones URL donde se pueden encontrar los formularios para estas encuestas y en los anexos se encuentran las encuestas:

https://spreadsheets.google.com/viewform?hl=es&formkey=dG0yU3JUbC1pZThadXNxMV96M mVHUnc6MA#gid=0

https://spreadsheets.google.com/viewform?hl=es&formkey=dDZYSXloM1haM3FlbV9EQ1lCRV 9UT3c6MA#gid=0

https://spreadsheets.google.com/viewform?hl=es&formkey=dExGYXBEbGd4SGFjbF96LU9MV TRSUUE6MQ#gid=0

https://spreadsheets.google.com/viewform?hl=es&formkey=dEpSVmc1WHJkRTNxX1FPcndVZ XBlU1E6MA#gid=0

Son diferentes formularios pero tratan de evaluar las mismas acciones del bot para ver este realiza las tareas para las que fue realizado.

5.2.3 Manejo de resultados

Los resultados obtenidos sobre el desempeño de la máquina cliente y la máquina servidor se graficarán para saber el tráfico de usuarios, las horas de tráfico, la cantidad de energía utilizada, la capacidad de las máquinas. Esto es para saber si fueron suficientes las características de los servidores para soportar el tráfico y responder a las necesidades de los clientes.

El desempeño del Agente se hará estadísticamente, por medio de los datos que se recolecten de las tareas que deba realizar el bot, Esto es para saber su autonomía y la respuesta del mismo al ambiente.

Las mediciones y herramientas heurísticas se harán con todo implementado, para saber si estas rompen con las reglas preestablecidas, además de que cumplan con los requerimientos del usuario o clientes del Agente y del servicio de educación.

Al final de la programación se utilizarán herramientas de medición de Think Aloud para saber si la interface y el agente realmente sirven para la tarea para las que fueron hechas. Esto arrojó resultados y variables que deban arreglarse, cambiarse o eliminar de la programación.

(43)

Página | 43 5.3 Resultados

Los resultados obtenidos se presentan a continuación en los que podemos observar que en funcionamiento el bot cubre los objetivos para lo cual fue diseñado, además de que los avatares que ayudaron en los resultados son usuarios que conocen el ambiente y que además conocen las herramientas que fueron calificadas

Analicemos la primera Gráfica 1 en la que se le pide al usuario acercarse al bot y ver si este lo saluda o no. Siendo esta la primera acción que debe hacer el bot al ver a un avatar cerca y cuando lo ve por primera vez en el día. Le entrega una nota con las instrucciones que puede usar para que el bot haga alguna acción o le lleve a algún lado. Como podemos ver en la Gráfica 1 podemos ver que el 100% de las veces lo saludó y/o le dio la nota.

Gráfica 1 Funcionamiento (Acción de Saludar)

En las observaciones que se encuentran al pedir al usuario que realizará esta acción sucedió que no sabía dónde estaba el bot, se tardaban en buscarlo en la isla, que además creo que es un punto débil a lo largo de Second Life®, encontrar lugares, objetos o avatares no es sencillo.

Una de las técnicas que se utiliza para encontrar avatares es utilizar el Messenger y pedir que te teleporten al lugar donde está el avatar que buscas. Sin embargo no es una solución para este problema, ya que debe el bot o cualquier avatar debe ser “amigo” , al igual que cualquier chat, para poder hablar por Messenger y solicitar teleporte.

Saludar

(44)

Página | 44 Otra de las observaciones y que no facilitó el desarrollo de las pruebas fue la lentitud de la red, la información no llega tan rápido y los gráficos se vuelven lentos y torpes, esto fue una constante, además porque se realizó en las instalaciones del ITESM CEM, en las que la red no es de lo más rápido.

En la siguiente gráfica (Gráfica 2) encontramos que los usuarios si escribieron la instrucción “Ayuda”, dos de ellos la leyeron en la nota que le da el bot y otro lo hizo porque fue como intuición el escribir ayuda, tal vez esto es bueno porque lo hace porque lo conoce de otras interfaces o porque puede ser un buen estándar para solicitar ayuda en cualquier aplicación, Aunque puede ser un punto débil, porque los usuarios no leen las notas, que me parece es otro de los puntos débiles del mundo virtual, porque un mundo en lo que todo es gráfico, no puedes escribir nada de modo interactivo o que sea gráfico y que se vea dentro de la interfaz (visor). Para esto puedes utilizar la ventana de Chat, pero a veces no la alcanzas a visualizar cuando estas concentrado en otras actividades dentro de la interfaz.

Finalmente uno de los usuarios no lo vio y el bot no le ofreció la ayuda, ni la pudo encontrar el usuario, por tanto aquí fue un punto débil dentro de las pruebas. Para solucionarlo se colocó como primera instrucción dentro de la nota y al saludar el bot al usuario, le dice que le puede dar ayuda con la palabra “Ayuda” en el chat. Para reforzar que el usuario lo puede ver.

Gráfica 2 Funcionamiento (Acción de Ayuda)

Una de las soluciones, no a corto plazo puede ser el colocarle al bot un signo de interrogación por su cabeza para que pueda ver el usuario gráficamente y que al tocarlo le dé la

Ayuda

(45)

Página | 45 ayuda correspondiente o de acuerdo al estado del bot. Se reforzó esta instrucción puesto que es una instrucción importante y que esta puede ser muy importante para saber cómo interactuar con el bot y aprovechar su funcionalidad ayuda al usuario.

Hay otra sugerencia, que en lugar de dar la nota desde el principio de la ayuda por la ventana del chat, sin embargo esta sugerencia no me pareció favorable, porque el bot no se comportariá como un avatar manejado por una persona. Por lo que se implementó que diga que le puede dar ayuda con la palabra “ayuda”.

En la tercera gráfica (Gráfica 3) se tiene que cuando se le pedía ir a algún lugar o moverse a través de la isla no había ningún problema en que el bot se dirigiera al lugar pedido. El problema surgía cuando la red estaba muy lenta y para ver hacia donde se iba el bot, por lo que se perdía el usuario donde se iba.

Para esto surgió una sugerencia de un usuario que si le mandabas un por Messenger la pregunta “¿dónde estás?”, este le dijera su posición en coordenadas o cerca de donde está. Esta solución se implementó así que cuando le preguntan por Messenger donde está, este contesta el lugar por donde está y la coordenada. Otra solución que se puede hacer es que solicite teletransportarse al usuario al lugar donde está.

Gráfica 3 Funcionamiento (Acción de caminar y llevar a usuario)

Es esta acción del bot es sencilla de solicitar y que todos los usuarios pudieron hacer lo de manera sencilla.

Caminar

(46)

Página | 46 En la cuarta gráfica (Gráfica 4) en la que se le pedía al usuario que le dijera al bot que lo siguiera, se tiene que en tres de cuatro ocasiones este lo hizo de manera correcta, una de las ocasiones fue una falla en la forma en cómo te puedes comunicar con el bot, puesto que como se explicó, este ve en el mensaje completo si existe la palabra o hay una instrucción dentro de esta. El bot esperaba un si para seguir en el tour y al escribirle “sígueme”, encontraba “sí” y siguió en el tour y no seguía al usuario. Esto se arregló con solo decirle que encuentre exactamente la palabra “sí”, sino pues sigue analizando el mensaje.

Esta acción se les pidió a todos los usuarios porque también se quiso evaluar el tutorial y esto llevaba mucho tiempo, así que se decidió solo pedirlo a tres de los cuatro usuarios que utilizarán esta acción.

En una de las evaluaciones el bot se perdió y se desconectó de la isla por lo que se tuvo que reiniciar y en este momento terminó la evaluación. Se arregló el problema porque el bot perdía la referencia de donde estaba porque trataba de ir a “Inicio”, pero no buscaba donde estaba, así que relativamente sencillo encontrar el problema y solucionarlo.

Gráfica 4 Funcionamiento (Acción de seguir)

Todos los usuarios hicieron el tour, así que empezaron a hacerlo y después de varios puntos lo interrumpían, puesto que todos sabían que había dentro de la isla.

Seguir

Referencias

Documento similar

You may wish to take a note of your Organisation ID, which, in addition to the organisation name, can be used to search for an organisation you will need to affiliate with when you

Where possible, the EU IG and more specifically the data fields and associated business rules present in Chapter 2 –Data elements for the electronic submission of information

The 'On-boarding of users to Substance, Product, Organisation and Referentials (SPOR) data services' document must be considered the reference guidance, as this document includes the

In medicinal products containing more than one manufactured item (e.g., contraceptive having different strengths and fixed dose combination as part of the same medicinal

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

Products Management Services (PMS) - Implementation of International Organization for Standardization (ISO) standards for the identification of medicinal products (IDMP) in

This section provides guidance with examples on encoding medicinal product packaging information, together with the relationship between Pack Size, Package Item (container)

Package Item (Container) Type : Vial (100000073563) Quantity Operator: equal to (100000000049) Package Item (Container) Quantity : 1 Material : Glass type I (200000003204)