• No se han encontrado resultados

Laboratorios virtuales asistidos

N/A
N/A
Protected

Academic year: 2020

Share "Laboratorios virtuales asistidos"

Copied!
121
0
0

Texto completo

(1)INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE :MÉXICO. ,./. LABORATORIOS VIRTUALES ASISTIDOS.. TESIS QUE PARA OPTAR EL GRADO DE MAESTRO EN CIENCIAS COMPUTACIONALES PRESENTA. LOURDES MUÑOZ GÓMEZ. Asesor:. Dr. ISAAC RUDOMÍN GOLDBERG. Comité de tesis:. Dr. ISAAC RUDOMÍN GOLDBERG Dr. RICARDO SWAIN OROPEZA Dr. JORGE RAMÍREZ URESTI. Jurado:. Dr. JORGE RAMÍREZ URESTI Dr. RICARDO SWAIN OROPEZA Dr. ISAAC RUDOMÍN GOLDBERG. Atizapán de Zaragoza, Edo. Méx., Enero de 2003.. Presidente Secretario Vocal. ..

(2) 3. RESUMEN. En la actualidad los sistemas de educación a distancia se han extendido por la flexibilidad que representan para aquellos estudiantes limitados por el tiempo y espacio. Sin embargo, en muchos de los casos, los cursos cubiertos en la modalidad de distancia carecen de sesiones prácticas de laboratorio para la aplicación de los conocimientos adquiridos previamente.. Por otra parte,. existen también limitaciones por parte de algunas instituciones para poder adquirir equipo costoso de laboratorio, dar mantenimiento al equipo y contar con instructores y/o operadores que den orientación a estudiantes y vigilen el uso correcto del equipo.. Tomando en cuenta lo anterior, surge la idea de los laboratorios virtuales asistidos que toman elementos de los ambientes virtuales en red y de agentes asistentes para la creación de espacios virtuales donde los estudiantes puedan llevar a cabo prácticas de laboratorio. En el presente trabajo de tesis, se desarrollaron los elementos necesarios para tener un laboratorio virtual asistido que fue probado en laboratorios virtuales de robótica en los cuáles se pueden incluir robots móviles y robots manipuladores.. En la aplicación desarrollada se cuentan con los módulos necesarios para la creación de nuevos ambientes de trabajo que definan el mundo virtual en donde trabajará el estudiante, también se tienen módulos para la definición, realización y ejecución de prácticas y finalmente se cuenta con un agente asistente sencillo que monitorea el uso del equipo virtual. Todos estos elementos de la aplicación pueden ser ejecutados dentro de un ambiente virtual en red.. Debido a que los robots tanto móviles como manipuladores reales son programados para llevar a cabo distintas tareas, se desarrolló un solo lenguaje de programación para los robots virtuales tanto móviles como manipuladores. Además se desarrolló un lenguaje de definición de tareas que permite la coordinación de los programas de varios robots para llevar a cabo una tarea en conjunto..

(3) 4. ÍNDICE. Lista de Figuras.............................................................................................................................. 7. 1 Introducción ..............................................................................................................................9. 1.1 Planteamiento del Problema............................................................................................ 1O 1.2 Objetivos .......................................................................................................................... 12 1.2.1 Objetivo General. ................................................................................................. 12 1.2.2 Objetivos Particulares .......................................................................................... 12. 2 Ambientes Virtuales y Agentes.............................................................................................. 14. 2.1 Ambientes Virtuales en Red ............................................................................................ 14 2.1.1 Manejo del Estado en los net-VEs ...................................................................... .16 2.1.2 Trabajo Previo en net-VEs .................................................................................. 17 2.1.2.1 Simulación Interactiva Distribuida....................................................... 17 2.1.2.2 Arquitectura de Alto Nivel. .................................................................. 18 2.1.2.3 Arquitectura de Red de NPS ........................................................... ;.. ... 19 2.1.2.4 Ambiente de Entrenamiento Virtual Distribuido Inteligente............... 20 2.1.2.5 Ambiente Virtual Distribuido Interactivo ............................................. 21 2.1.2.6 Arquitectura Orientada a Objetos para Realidad Virtual Distribuida... 22 2.2 Agentes ............................................................................................................................25 2.2.1 Arquitectura para Agentes...................................................................................26 2.2.2 Clasificación de Agentes.....................................................................................27 2.2.3 Herramientas de Inteligencia Artificial para el Subsistema de Razonamiento ... 29 2.2.4 Herramientas para Construir Agentes ..................................................................31 2.2.5 Agentes Virtuales y Robots que Colaboran......................................................... 32.

(4) 5. 3 Labon.torios Virtuales........................... ~··············································································35. 3.1 Ventajas de los Laboratorios Virtuales............................................................................ 36 3.2 Trabajo Previo en Laboratorios Virtuales.......................................................................37 3.2.1 Laboratorios Virtuales Remotos o Simulados.................................................... .37 3.2.1.1 Software de Laboratorio ....................................................................... 38 3.2.1.2 Laboratorio de Control Virtual............................................................ .38 3.2.1.3 Webots .................................................................................................. 39 3.2.2 Laboratorios Virtuales por Intemet.. .................................................................. .40 3.2.2.1 Laboratorio Virtual de Física............................................................... .41 3.2.2.2 Laboratorio de Electrónica de Potencia Virtual... ............................... .42 3.2.2.3 Laboratorios Virtuales Remotos de Robótica...................................... .42 3.2.3 Laboratorios Virtuales en net-VEs ..................................................................... .45 3.2.3.1 Manufactura Electrónica en net-VEs .................................................... 45 3.2.3.2 Banco de Pruebas en Realidad Virtual ............................................... .46 3.2.4 Laboratorios Virtuales conAgentes................................................................... .46 3.2.4.1 Entrenador Experto SOAR para Ambientes Virtuales........................ .47 3.2.4.2 Agente Pedagógico para Experimento a Distancia Virtual.. ............... .48 3.2.5 Comentarios a cerca del Trabajo Previo en Laboratorios Virtuales ................... .48 4 Desarrollo................................................................................................................................50. 4..1 OODVR........................................................................................................................... 50 4.1.1 Una figura en OODVR........................................................................................ 51 4.1.2 Robots Manipuladores en OODVR. .................................................................... 53 4.1.3 Características de la Implementación de OODVR y Desventajas....................... 56 4.2 OODVR+......................................................................................................................... 58 4.2.1 Reestructuración de Paquetes.............................................................................. 60 4.2.2 Las Entidades Elementos..................................................................................... 61 4.2.3 La Interfaz Gráfica............................................................................................... 63 4.2.4 Los Tipos de Universo ......................................................................................... 64 4.2.5 La Entidad Reloj .................................................................................................. 66 4.2.6 El Chat para Comunicación Escrita..................................................................... 67 4.2. 7 Utilización del Reloj para Sincronización........................................................... 68.

(5) 6. 4.2.8 Mecanismo de Exclusión para el Control de Robots ........................................... 70 4.2.9 OODVR+ con Agente Asistente (OODVR++A) ................................................ 71 4.3 Aplicación de OODVR++A para Laboratorios Virtuales de Robótica........................... 73 4.3.1 Definición de Ambientes de Trabajo Tridimensionales para Laboratorios......... 74 4.3.2 Prácticas en los Laboratorios Virtuales...............................................................76 4.3.2.1 Definición de Prácticas......................................................................... 77 4.3.2.2 Lenguaje de Programación para Robots ............................................... 79 4.3.2.2.1 Definición de Posiciones para los robots virtuales ............ 82 4.3.2.3 Lenguaje de Definición de Tareas para varios Robots ......................... 85 4.3.3 Agente Asistente para Monitoreo del Uso de Robots .......................................... 88 4.4 Incorporación de Nuevos Módulos..................................................................................91. S Resultados ................................................................................................................................95. 5.1 Práctica para Tres Robots Móviles.................................................................................. 95 5.1.1 Definición de la Práctica...................................................................................... 96 5.1.2 Programación....................................................................................................... 97 5.1.3 Ejecución............................................................................................................. 99 5.2 Práctica en una Celda de Manufactura.......................................................................... ! 00 5.2.1 Definición de la Práctica.................................................................................... 100 5.2.2 Programación..................................................................................................... 102 5.2.3 Ejecución........................................................................................................... 105 5.3 Comentarios ................................................................................................................... 106 6. Conclusiones.......................................................................................................................... 108. 6.1 Conclusiones Particulares.............................................................................................. 108 6.2 Trabajo Futuro ............................................................................................................... 109 7. Bibliografia ............................................................................................................................ 112. Apéndices..................................................................................................................................... 116 A. Especificación del Lenguaje de Programación para Robots. B. Problema en la Definición de Posiciones de Robots Móviles C. Definición de Reglas para el Agente Asistente.

(6) 7. LISTA DE FIGURAS. Figura 2.1 Una sesión de NPSNET-IV. Simulación de un campo de batalla. Pág.20. Figura 2.2 Sesión de INVITE con Avatares.. Pág.21. Figura 2.3 Salón de conferencias en DIVE.. Pág.22. Figura 2.4 Funcionamiento de OODVR con un repetidor.. Pág.24. Figura 2.5 Celda de Manufactura implementada utiliz.ando OODVR.. Pág.25. Figura 2.6 Arquitectura de un agente.. Pág.27. Figura 3.1 Interfaz de usuario de BioSoftLab, laboratorio de bioseparación.. Pág.38. Figura 3.2 Interfaz para control de un intercambiador de calor.. Pág. 39. Figura 3.3 Visión simulada por la cámara virtual del Robot Khepera.. Pág.40. Figura 3.4 Telescopio óptico recibiendo luz de una estrella.. Pág.41. Figura 3.5 Interfaz para el control remoto en RoboSim.. Pág.43. Figura 3.6 Página de interfaz de KhepOnTheWeb.. Pág.44. Figura 3.7 STEVE señalando un botón de luz en un tablero de control.. Pág.47. Figura 4.1 Robot Mitsubishi Movemaster EX virtual en OODVR.. Pág. 54. Figura 4.2 Robot manipulador Amatrol AS/RS virtual en OODVR.. Pág.54. Figura 4.3 Celda de manufactura completa en OODVR, con paneles de control.. Pág.56. Figura 4.4 Pantalla de entrada a una simulación.. Pág.63. Figura 4.5 Ventana de selección de elementos y otras entidades.. Pág.64. Figura 4.6 Apariencia del universo de Java antes de que se añada cualquier elemento.. Pág.65. Figura 4. 7 Ventana desplegando el tiempo para la simulación.. Pág. 67. Figura 4.8 Ventana para el envío de mensajes en OODVR+.. Pág.68. Figura 4.9 Control de un robot.. Pág. 71. Figura 4.1 O. Mensajes enviados por el agente durante la ejecución de una simulación.. Pág. 73.

(7) 8 Figura 4.11 Opción del menú para guardar ambientes de trabajo y ventana de diálogo.. Pág. 74. Figura 4.12 Ventana de diálogo para abrir un ambiente de trabajo.. Pág. 75. Figura 4.13 Menú y ventana de diálogo para dar de alta una nueva práctica.. Pág. 78. Figura 4.14 Instrucciones y estructuras de control del lenguaje de programación para. Pág. 80. los robots virtuales. Figura 4.15 Ventana del control de un robot donde aparece el botón "Programar".. Pág. 81. Figura 4.16 Ventana del editor de programas y de posiciones de un robot.. Pág. 82. Figura 4.17 Lista de posiciones para un robot.. Pág. 83. Figura 4.18 Ventana para la programación en el lenguaje de definición de tareas.. Pág. 86. Figura 4.19 Dos programas seleccionados.. Pág. 87. Figura 4.20 Ejemplo de programa para definición de tareas con todos los tipos de. Pág. 88. condiciones. Figura 4.21 Agente indicando una acción sobre el robot Mitsubishi que se encuentra. Pág.91. cambiando de posición por decisión del agente. Figura 4.22 Laboratorio Virtual en OODVR++A y el módulo de Planeación de Rutas. Pág.93. integrados. Figura 5.1 Ambiente de trabajo para la práctica de los robots móviles.. Pág.96. Figura 5.2 Recorrido de cada uno de los robots.. Pág.97. Figura 5.3 Programa para coordinar las secuencias de movimiento de los robots.. Pág.99. Figura 5.4 Secuencia capturada durante la ejecución de los robots en movimiento.. Pág. 100. Figura 5.5 Celda de Manufactura para la realización de la práctica.. Pág. 101. Figura 5.6 Definición de la tarea para la elaboración, etiqueta y limpieza de una pieza. Pág. 105. de ajedrez. Figura 5. 7 Secuencia de ejecución.. Pág. 106.

(8) 9. l. INTRODUCCIÓN. La educación a distancia se ha convertido en un recurso viable para aquellos estudiantes que requieren de sistemas de enseñanza más flexibles y accesibles.. Las nuevas herramientas en. tecnología de infonnación, como los sistemas de multimedia y las redes de comunicación de banda amplia (Internet), proveen herramientas que permiten la interacción entre estudiantes y profesores; sin embargo, no proporcionan componentes que permitan la práctica de los conceptos adquiridos [ 1].. Por otro lado, la inversión requerida para montar un laboratorio es elevada, debido a la necesidad de contar con equipos sofisticados y costosos, tales como: robots especializados, telescopios, microscopios de alta definición, cromatógrafos, máquinas eléctricas, por mencionar algunos de ellos. En consecuencia, estos laboratorios son escasos y los gastos necesarios para realizar capacitación o investigación en ellos, se ven incrementados, por los costos del traslado fisico de las personas al laboratorio. Además, al contar con algún tipo de equipo costoso, se requiere de personal altamente capacitado para la utilización del equipo que proteja la inversión y mantenga en buenas condiciones el equipo. En el caso de los laboratorios escolares, se requieren de operadores que guíen a los alumnos para la utilización correcta del equipo.. La idea de un laboratorio virtual surge de la necesidad de contar con un sistema que pueda ser·· utilizado por los estudiantes como una herramienta de entrenamiento y de aprendizaje práctico, ampliando los servicios de educación a distancia, reduciendo costos y permitiendo una.

(9) 10 experimentación flexible sin que los errores sean fatales. El propósito de dicho laboratorio es entonces mostrar las reacciones de ciertos equipos de laboratorio ante ciertas situaciones, sin que esto se vea limitado por restricciones de tiempo y espacio.. Un laboratorio virtual se define como un ambiente heterogéneo y distribuido para la solución problemas, que pennite a un grupo de personas trabajar en proyectos que requieren de un laboratorio. El laboratorio virtual puede pennitir la utilización remota de equipo de laboratorio o bien la utilización de equipos simulados, pennitiendo compartir recursos y trabajar como si se contara con equipos reales [2].. La investigación propuesta a continuación, surge de la idea de crear un laboratorio virtual asistido que cuente con un ambiente virtual distribuido y con un asistente El ambiente virtual distribuido pennitirá a los estudiantes trabajar en equipo en distintos lugares visualiz.ando el comportamiento del equipo virtual. El asistente se encargará de monitorear las acciones de los estudiantes para detectar, alertar y en algunos casos corregir el uso inadecuado del equipo.. Tomando en cuenta las características que se desean en el laboratorio virtual asistido, es necesario revisar conceptos relacionados con los ambientes virtuales en red y con los agentes en su aplicación como asistentes.. 1.1 PLANTEAMIENTO DEL PROBLEMA. Se pretende que la experiencia de trabajar en un laboratorio virtual sea lo más parecida posible a trabajar en un laboratorio real de características iguales o semejantes al virtual. Para la creación de un laboratorio virtual convincente y que realmente desempeñe su finalidad didáctica, se requieren de varios módulos de software cuyo objetivo es ayudar al usuario a obtener un conocimiento nuevo significativo y lo más cercano posible a la realidad.. Se consideran las. ventajas y características de los ambientes virtuales distribuidos, y el uso de un agente.. El. ambiente virtual distribuido pennitirá contar con un laboratorio simulado que proporcione una.

(10) 11 sensación de inmersión y una respuesta rápida que pennita la interacción en tiempo real. El agente permitirá el monitoreo de las acciones del usuario para alertar y en algunos casos corregir el uso inadecuado del equipo del laboratorio.. Se requiere de un laboratorio virtual con la capacidad de desarrollo de prácticas adecuadas a cada curso, sin que la implementación del laboratorio virtual se encuentre atada a determinado tipo de laboratorio. Por lo tanto el laboratorio virtual debe pennitir: a) Generar el mundo virtual del laboratorio (ambiente de trabajo). b) Generar nuevas prácticas. c) Ejecutar las prácticas previamente definidas y guardar las prácticas terminadas. d) Monitorear las acciones del usuario en el momento de ejecución de la práctica.. Y las características que se desea tener en el laboratorio virtual son las siguientes: a) Flexibilidad; que pennita la incorporación de nuevos equipos y ambientes, por lo tanto la implementación debe ser modular. b) Multiusuario y distribuido; que pennitan trabajar a varios usuarios al mismo tiempo en la misma simulación, tal y como un equipo de trabajo lo hace en un laboratorio real.. Existen muy diversos tipos de equipo que se pueden llegar a tener en un laboratorio, dependiendo de la asignatura a la que corresponden las prácticas. Por ejemplo, en un laboratorio de electrónica se tienen osciloscopios, fuentes de poder, multímetros, etc. La implementación del laboratorio virtual deberá pennitir la incorporación de módulos para el manejo de distintos equipos, según el tipo de laboratorio, por lo tanto la implementación debe ser modular.. Se utilizará la implementación del laboratorio virtual considerando el equipo que se pueda tener en una celda de manufactura y en un laboratorio de robótica móvil; así se tendrán tanto robots manipuladores como robots móviles y elementos para modelar el ambiente como mesas y bandas transportadoras.. El costo elevado de los robots, las precauciones que se deben tener en. cuenta al momento de trabajar con robots reales, el restringido acceso a los mismos en los lugares donde se cuenta con robots, y su capacidad de ser programados mediante una secuencia de instrucciones; representan características importantes para la enseñanz.a a distancia de manera virtual y justifican el esfuerzo de desarrollar un laboratorio virtual de robótica para el presente trabajo de tesis..

(11) 12. 1.2 OBJETIVOS. Una vez definido el problema de los Laboratorios Virtuales Asistidos, a continuación se presentan los objetivos generales y particulares para el desarrollo del presente trabajo de tesis.. 1.2.1 OBJETIVO GENERAL. Desarrollar un sistema en un ambiente virtual en red que pennita definir escenarios, crear prácticas y realizar las prácticas en un ambiente colaborativo y que además presente la ayuda de un asistente para el monitoreo de acciones dentro del proceso de realización de las prácticas.. 1.2.2 OBJETIVOS PARTICULARES. l.. Cambiar algunos aspectos y desarrollar nuevas características sobre la arquitectura OODVR para contar con comunicación multicast, mecanismos de predicción y convergencia y poder añadir entidades en cualquier momento de la simulación sin reiniciarla.. 2.. Desarrollo de una aplicación sobre la arquitectura OODVR que pennita definir ambientes de trabajo para los laboratorios virtuales, definir nuevas prácticas y realizar las prácticas monitoreadas por un asistente.. 3.. Implementar dentro del marco de la aplicación anterior los elementos necesarios para contar con laboratorio de robots manipuladores y robots móviles.. 4.. Desarrollo e implementación de un lenguaje de programación común para los robots virtuales.. 5.. Desarrollo e implementación de un lenguaje y mecanismos de control para la definición de tareas para un conjunto de robots con una labor en común.. 6.. Desarrollo e implementación de una entidad asistente que conozca los parámetros necesarios para monitorear y corregir al usuario en el uso de los robots virtuales..

(12) 13 7.. Definir los medios necesarios para la incorporación de módulos adicionales con algoritmos específicos que puedan ser utilizados en el laboratorio virtual. No se implementaran estos algoritmos para este trabajo de tesis..

(13) 14. 2. AMBIENTES VIRTUALES Y AGENTES. En este capítulo se revisan los conceptos relacionados con ambientes virtuales en red, agentes y el trabajo previo realizado en estas áreas. Estos conceptos están relacionados con el desarrollo. de los laboratorios virtuales asistidos. Debido a que la implementación de este trabajo de tesis es para un laboratorio virtual de robótica móvil y de celdas de manufactura, se revisan también algunos conceptos relacionados con los robots y su programación.. 2.1 AMBIENTES VIRTUALES EN RED. Un ambiente virtual en red (Networked Virtual Environment, net-VE) es un sistema de software en el cuál múltiples usuarios interactúan en tiempo real, a pesar de que estos usuarios se encuentren localizados en distintos lugares geográficamente [3]. Típicamente cada usuario tiene acceso a una estación de trabajo que provee una interfaz para el mundo virtual. Estos ambientes proveen a los usuarios una sensación de realismo mediante la incorporación de gráficas tridimensionales y sonidos entre otras cosas. Un ambiente virtual se distingue por las siguientes características [3]: a) Sentido de espacio compartido: Todos los usuarios deben tener la ilusión de estar en el mismo lugar, ya sea un ambiente cerrado como un cuarto o un ambiente abierto como un.

(14) 15 terreno y con las mismas condiciones (por ejemplo iluminación o disposición espacial de objetos). b) Sentido compartido de presencia: Cada usuario dentro del ambiente debe tener alguna entidad dentro de la simulación que lo represente y lo dé a conocer a los demás usuarios, · esta entidad puede ser o no un avatar. c) Sentido de tiempo compartido: Cada usuario debe ser capaz de observar las acciones de los otros usuarios justo cuando están ocurriendo. d) Un mecanismo de comunicación: Más allá de la visualización del ambiente se deben tener medios de comunicación entre los usuarios (puede ser vía voz o texto). e) Un mecanismo para compartir: Los usuarios pueden compartir información o bien manipular cada uno de los objetos de la simulación.. Para poder cubrir todas las características que hacen de un sistema un ambiente virtual, con las características anteriormente mencionadas, es necesaria la implementación de diversos tipos de sistemas que serán integrados en una sola aplicación: a) Los sistemas distribuidos, deben contener todos los recursos para la administración de la red, la pérdida de datos, la consistencia y la concurrencia. b) Los sistemas gráficos, deben ser lo suficientemente realistas para conservar la sensación de inmersión y lo suficientemente sencillos para conservar la interacción en tiempo real. c) Los sistemas interactivos, deben procesar los datos de entrada en tiempo real de tal manera que cada usuario perciba su ambiente como si existiera localmente, es decir cada acción del usuario debe tener un impacto directo y rápido para conservar la sensación de inmersión. Además se debe tener una interacción distribuida, es decir cada usuario debe tener esa sensación de que su ambiente es local y ver además las acciones que son resultado de la interacción de los otros usuarios en el mundo virtual.. Uno de los primeros net-VEs que presentó todas estas características fue el Simulador en Red (Simulator Networking, SIMNET) creado con propósitos militares. Este proyecto comenzó en 1983 desarrollado por el Departamento de Defensa de los Estados Unidos.. Se creó con dos. propósitos principales: la fabricación de simuladores de bajo costo con alta calidad y la unión de esos simuladores para crear un campo de batalla virtual consistente. SIMNET fue utilizado para el entrenamiento de pequeñas unidades como tanques y helicópteros. Para esta aplicación se desarrolló un protocolo basado en distintas definiciones de paquetes (con el estado de los.

(15) 16 vehículos de la simulación) que se envía a través de la red para mantener la consistencia en la simulación [3].. 2.1.1 MANEJO DEL ESTADO EN LOS NET-VES. Una característica importante que se debe mantener para poder conservar la sensación de inmersión, es la consistencia visual para todos lo usuarios que estén accesando un sistema de un ambiente virtual. Esta consistencia visual implica que todos los objetos, que se encuentran en la simulación distribuida, se encuentren en el mismo estado (orientación, posición, velocidad, etc.) en todas las máquinas donde se encuentra ejecutándose el ambiente virtual. Para llevar a cabo esto es necesario tener en cuenta que la información que será enviada vía red debe ser suficiente para mantener la consistencia y no excesiva como para disminuir la velocidad de interacción.. Existen varias formas por medio de las cuáles se puede mantener el estado en la simulación, por ejemplo contar con una base de datos , centralizada o distribuida, que guarde el estado y ésta sea consultada por todas las máquinas. Otra manera sencilla de mantener la consistencia visual es mandar paquetes de broadcast a la red con los datos de actualización del estado [3]. Dead. reckoning es un algoritmo que permite disminuir el número de mensajes comunicados entre las máquinas participantes en la simulación.. En esta técnica cada máquina tiene una copia del. modelo del objeto, si la diferencia entre la posición del objeto en otra máquina y la copia de una máquina en particular es mayor que un máximo predefinido, una máquina envía a las otras la posición y velocidad reales para corregir el estado [4]. El algoritmo de dead reckoning consta de dos partes: la predicción y la convergencia [3].. La predicción es el cálculo del estado actual de los objetos en la simulación a partir de datos de actualización enviados previamente.. Dicho de otra manera, vía red se envían de vez en. cuando paquetes con datos de actualización como posición y velocidad en un momento determinado; y con estos datos cada usuario localmente realiza los cálculos subsecuentes para mover o actualizar al objeto. Sin embargo este algoritmo de predicción es tan solo un estimado, y puede llegar a ocurrir que en algún momento la consistencia se pierda. Existen varios tipos de algoritmos de predicción algunos son los siguientes: polinomios derivativos, predicción polinomial lubrida [3], y predicción especializada por el tipo de objeto [5]..

(16) 17. Cuando el algoritmo de predicción no ha sido suficiente para mantener la consistencia es necesario también tomar en cuenta los algoritmos de convergencia. Estos algoritmos se encargan de corregir el estado actual de un objeto resultado de una predicción inexacta cuando se recibe información de actualización.. Un buen algoritmo de convergencia pennite corregir el estado. actual (de acuerdo con el algoritmo de predicción), pero sin que se produzcan distorsiones visuales percibidas por el usuario.. 2.1.2 TRABAJO PREVIO EN NET-VES. En su origen el desarrollo de los ambientes virtuales distribuidos fue fuertemente impulsado por la industria militar, principalmente para la elaboración de simuladores utilizados en entrenamientos de combate. La industria militar ha destinado muchos recursos para desarrollar software de calidad que pennita entre otros la reutilización, compatibilidad y portabilidad de componentes haciendo énfasis siempre en proteger sus inversiones anteriores.. Estas. características definen a muchos de los desarrollos para ambientes virtuales en red que se mencionan a continuación,. algunos con propósitos de uso militar y algunos otros como. investigaciones académicas.. 2.1.2.1 Simulación Interactiva Distribuida (Distributed Interactive Simulation, DIS). En 1989, el Departamento de Defensa de los Estados Unidos formó un nuevo proyecto llamado DIS, con el propósito de generaliz.ar el protocolo de SIMNET, y de pennitir que los participantes del ambiente virtual fueran de cualquier tipo y con cualquier máquina, para lograr simulaciones en mayor escala.. La parte central de la arquitectura de DIS es la unidad de datos del protocolo (protocol data unit, PDU). Existen definidos 27 tipos distintos de PDUs que se utilizan para interactuar en el ambiente virtual.. El PDU más importante es el que contiene el estado de la entidad en la. simulación (por ejemplo el estado de un vehículo, o de un misil), que contiene la información de posición, orientación, velocidad; esta información es usada por los algoritmos de predicción y.

(17) 18 convergencia.. La definición de los PDU constituye el estándar 1278 de la IEEE, y varias. arquitecturas de net-VEs utilizan este tipo de paquetes para el envío de información [4]. Los PDUs están orientados principalmente para aplicaciones que tienen que ver con simulaciones de campos de batalla.. DIS tiene 3 componentes básicos: Una arquitectura de objetos (cada entidad de la simulación, por ejemplo un vehículo, es un objeto), la noción de nodos de la simulación autónomos distribuidos (distintas máquinas aportan distintos objetos a la simulación y cada máquina tiene el control de sus objetos), y algoritmos para dead reckoning (para predicción y convergencia) [3].. Actualmente existe una implementación de DIS con Java y VRML, proyecto desarrollado por la Escuela Naval de Posgrado (Naval Posgraduate School, NPS) en California, Estados Unidos, para utilizar DIS en Internet ejecutándose en el navegador, de manera que se puede interactuar en el ambiente virtual desde Web [6].. 2.1.2.2 Arquitectura de Alto Nivel (High Level Architecture, HLA). La arquitectura HLA comenzó su desarrollo en 1996 por el Departamento de Defensa de Estados Unidos, teniendo como propósito el desarrollo de simulaciones con mayor interoperabilidad y la reutilización de las partes de la simulación.. El aspecto central de esta. arquitectura es la separación de las funciones de simulación y las funciones de comunicación. Esto debido a la que mayor carga del desarrollo de una simulación distribuida se centra en aspectos de comunicación, en vez de los comportamientos específicos de la simulación [7].. La arquitectura HLA está diseñada como un net-VE que utiliza objetos·. Cada simulador, llamado federación, es un componente que representa un conjunto de objetos; y cada objeto tiene un conjunto de atributos y eventos. Las federaciones se registran a cada uno de sus objetos en la. infraestructura de tiempo de ejecución (Run-Time Infrastructure, RTI); cada RTI intercambia información con otras RTI de otras federaciones y así se tiene conocimiento de los objetos que se. º En HLA se utilizan objetos, sin embargo esto no significa que sea una arquitectura orientada a objetos como se explicará más adelante en la sección 2.1.2.6.

(18) 19 encuentran en otros participantes.. La federación local con esa infonnación inicializa objetos. locales que representan a los objetos remotos [3].. Un aspect<;> interesante de la arquitectura HLA es el concepto de federaciones para la composición de simulaciones interactivas, que permite el desarrollo de ambientes virtuales de muy diversos propósitos y no sólo militares.. 2.1.2.3 Arquitectura de Red de NPS (NPS Network, NPSNET). NPSNET es desarrollada por un grupo de investigación dedicado a la creación de ambientes virtuales a gran escala, localizado en la NPS. Han desarrollado varias generaciones de software con el mismo nombre y la característica principal de estos sistemas, en la cuál se ha hecho énfasis, es la posibilidad de integrar cada vez más un mayor número de usuarios en una simulación [3].. La arquitectura de NPSNET en la versión IV utiliza el protocolo definido por DIS para los PDUs, pero no sólo permite la integración de vehículos, sino también otros objetos dinámicos o estáticos (por ejemplo humanos), así como la simulación de aire y tierra.. Los participantes. configuran, antes de conectarse al net-VE, el tipo de nodo predefinido que cada participante será: tierra, vehículo, por ejemplo. También utiliza algoritmos de dead reckoning para disminuir la comunicación entre participantes y fue la primer arquitectura en usar multicast en la comunicación [4]. En la figura 2.1, se muestra una sesión de NPSNET-IV, aplicado en una simulación de batalla.. La versión más reciente es la arquitectura es NPSNET-V, en ésta se ha pue~to especial interés en las siguientes características [8]: a) Añadir entidades nuevas a la simulación sin reiniciarla. b) Añadir nuevos comportamientos a las entidades existentes en la simulación después de que fueron insertados en el net-VE..

(19) 20. c) Utilización de varios ambientes gráficos al mismo tiempo, por ejemplo en una máquina desplegar en Java3D* [9][10] y en otra en XJo•• [11].. Figura 2.1 Una sesión de NPSNET-IV. Simulación de un campo de batalla.. A pesar de las características mencionadas, NPSNET, sigue siendo utilizado especialmente para simulaciones de batalla, pero carece de portabilidad, pues solo puede ser ejecutado en máquinas SGI.. 2.1.2.4 Ambiente de Entrenamiento Virtual Distribuido Inteligente (Intelligent Distributed Virtual Training Environment, INVITE). El proyecto de INVITE comenzó su desarrollo en febrero del 2000, como parte del programa de la Sociedad de Tecnología de Información de la Comisión Europea (Integrada por varias Universidades y Compañías Europeas). La arquitectura diseñada para el proyecto está orientada a contar con un net-VE colaborativo para el aprendizaje a distancia [12]. La arquitectura en su diseño contempla las siguientes características [ 13]: a) Representación de los participantes por medio de avatares, con gestos y ademanes. b) Base de datos centralizada para almacenar documentos de texto, audio y video relacionados con el material de aprendizaje. • Java30 es un API de Java que pennite desplegar ambientes 30 . ··Especificación gráfica extendida (Extensible 30, X30). Expresa la geometría y los comportamientos del Lenguaje de Modelado de Realidad Virtual (Virtual Reality Modeling Language,VRML) utilizando el Lenguaje Extendido de Marcado (Extensible Markup Language, XML). l q,¡ ~. 6. 8rP_r. /. .-::,. :,),,~cA. >;,.

(20) 21 c) Comunicación entre los participantes por voz y texto con la posibilidad de traducciones entre varios idiomas. d) Incorporación de varios agentes inteligentes que permitan guiar y ayudar a los participantes para recuperación de documentos, activar traducciones, etc.. En la figura 2.2 se muestra una sesión de INVITE, con algunos avatares.. Figura 2.2 Sesión de INVITE con Avatares.. 2.1.2.5 Ambiente Virtual Distribuido Interactivo (Distributed Interactive Virtual Environment, DIVE). El sistema DIVE es un conjunto de herramientas para construir ambientes virtuales distribuidos en un ambiente de red heterogéneo. Este sistema ha sido desarrollado por el Instituto Sueco de Ciencias Computacionales a partir de 1993.. DIVE utiliza una base de datos distribuida que se actualiza de manera concurrente. Cada parte de la base de datos contiene descripciones de los objetos gráficos que constituyen el mundo virtual. La información en la base de datos es replicada por medio de un protocolo multicast, y control de la concurrencia distribuida por medio de mecanismos de bloqueo, aumentando el costo de la comunicación entre los participantes de su net-VE [3]..

(21) 22 La primera aplicación de DIVE fue un salón de conferencias para permitir la interacción a larga distancias. Los usuarios son representados por entidades actores dentro del salón junto con pizarrones [4]. En la figura 2.3 se muestra esta aplicación de DIVE.. Figura 2.3 Salón de conferencias en DIVE.. 2.1.2.6 Arquitectura Orientada a Objetos para Realidad Virtual Distribuida (Object Oriented Distributed Virtual Reality, OODVR). La arquitectura OODVR, en su primera implementación fue desarrollada por el Ing. Diego Malpica en el ITESM-CEM, como parte de su tesis de maestría dirigida por el Dr. Isaac Rudomín. El desarrollo de esta arquitectura es parte del proyecto de "Laboratorio Virtuales" en el que se encuentran trabajando varias· instituciones educativas, proyecto financiado por la Red de Desarrollo e Investigación en Informática del Conejo Nacional de Ciencia y Tecnología (REDIICONACyT) y cuyo objetivo es la creación de un modelo general para laboratorios virtuales. Debido a que la presente tesis es parte del proyecto de Laboratorios Virtuales, se decidió utilizar OODVR para el Laboratorio Virtual Asistido.. OODVR fue diseñada e implementada teniendo como objetivo un ambiente distribuido para simulaciones, donde la simulación completa se lleva a cabo por la integración de diferentes.

(22) 23 elementos. Como se desea una simulación robusta capaz de integrar fácihnente una variedad de elementos, se tomó en cuenta la necesidad de poseer componentes reutilizables por varios elementos, componentes compatibles para que puedan interactuar entre sí, portables e independientes de plataforma.. Debido a estas características de diseño de la arquitectura, la. primera versión de OODVR y las subsecuentes ha sido y serán implementadas en el lenguaje de programación Java.. Una simulación en la arquitectura OODVR, está constituida por participantes, entidades. locales y entidades símiles [14]: a) Un participante es la ejecución del ambiente virtual en una máquina. Dicho participante se anexa a la simulación, este participante puede añadir alguna entidad o módulo a la simulación. b) Una entidad local es un eleme11to u objeto de la simulación que sólo existe en el participante que lo incluyó en la misma. c) Una entidad súnil, también llamada ''proxy", es la representación de una entidad local en otros participantes que no sea aquél que añadió esa entidad. La entidad local funciona como padre de la entidad símil y se encarga de activar los movimientos y funciones de cada entidad símil en el resto de los participantes.. Debido a la naturaleza distribuida de la arquitectura es indispensable compartir datos entre los miembros de la simulación, tal y como se ha explicado en las arquitecturas antes mencionadas. Con el propósito de que la información que viaje a través de la red sea la mínima posible, cada participante, con la arquitectura OODVR no sólo posee una copia de la geometría de los objetos de cada entidad, sino que también posee una definición de los comportamientos que describen una acción, un movimiento o un cambio en un estado del objeto. A estos comportamientos se les conoce como comportamientos remotos.. Entonces, la entidad local es la que se encarga de. activar los comportamientos remotos en todas las entidades símiles de los otros participantes.. Para la implementación de los comportamientos remotos en Java, se utilizó la invocación remota de métodos (Remote Method Invocation, RMI).. Lo anterior se consigue de manera. transparente al definir objetos remotos dentro de la simulación, sin que sea necesario la 1. implementación detallada de los mecanismos de transmisión de paquetes de bajo nivel a través de una red. Debido a esto, es por lo que OODVR se considera como una arquitectura orientada a.

(23) 24 objetos, y este concepto es independiente de la programación orientada a objetos que se puede utilizar aunque el intercambio de información entre participantes sea por medio de paquetes en la red. Esta es la principal diferencia y ventaja que presenta OODVR con respecto a DIS y HLA.. En la arquitectura OODVR, cada participante puede funcionar como un repetidor si se definen regiones dentro de la simulación. Esta característica también permite la disminución del tráfico en la red. El participante repetidor divide la red de la simulación en varios segmentos, entre estos segmentos no existe una comunicación directa y la comunicación sólo puede existir a través del participante repetidor. En la figura 2.4 se muestra el diagrama del funcionamiento de la arquitectura OODVR incluyendo un repetidor. El participante B, de color azul, es el repetidor entre dos regiones: la región de los Participantes A y B y la región de los Participantes By C. Los Participante A y C no tienen comunicación directa entre sí, sino por medio de B; debido a esto la entidad denotada como Al, creada por el Participante A, aparece de color rojo en A y en B, pero en C aparece de color azul.. •. A. Slmil Local. ~. ~. B Símil Local. ~. ~. ~. @]. ~. e Símil Local. ~. ~. [ª1] @]. ~ J. Figura 2.4 Funcionamiento de OODVR con un repetidor.. La primera aplicación de OODVR fue para una celda de manufactura previamente definida, contaba con 3 robots manipuladores a cada uno de los cuáles se podía controlar los movimientos de cada uno de sus grados de libertad. La figura 2.5 muestra esta primera aplicación..

(24) 25 f. --:-- - -. Figura 2.5 Celda de Manufactura implementada utilizando OODVR.. 2.2 AGENTES. Debido a la proliferación de los ambientes computacionales distribuidos y heterogéneos, existe la necesidad de mantener los datos de un sistema accesibles en cualquier momento y en cualquier. lugar.. Aplicaciones. de. acceso. de. información,. manufactura,. educación,. entretenimiento, etc.; tienen en común la necesidad de mecanismos que busquen, usen, presenten, administren, monitoreen y actualicen información.. Debido a la naturaleza distribuida de los. ambientes, las fuentes de información son autónomas y heterogéneas; por lo tanto los mecanismos para el manejo de esa información. deben ser flexibles y extensibles.. La. peculiaridad de los agentes, es que proveen un medio natural para llevar a cabo las tareas anteriormente mencionadas. Además, los agentes son inherentemente modulares y pueden ser construidos localmente para cada recurso [15].. Existen muchas definiciones de lo que es un agente, dependiendo de distintos puntos de vista que generalmente están relacionados con la especialidad de quien lo define, o la finalidad con la que se usa el agente [ 16]..

(25) 26 De acuerdo con Russell y Norving [17], los agentes son definidos de tres maneras distintas de acuerdo a su creciente sofisticación e inteligencia: a) En el sentido del comportamiento, "Un agente es algo que puede ser visto como perceptor de su ambiente a través de sensores y que actúa en ese ambiente a través de efectores". b) Si se le aiiade racionalidad, "Por cada secuencia posible percibida, un agente ideal racional debe hacer lo que se espera para maximiz.ar su medida de desempeño, con base en la evidencia dada por la percepción y el conocimiento que tenga el agente". c) Si se le aiiade autonomía, "Un agente es autónomo si sus acciones y decisiones dependen de su propia experiencia, más que de su conocimiento del ambiente que le proporcionó el programador".. Otra definición es la siguiente [4]: "un agente es un sistema de software con comportamiento autónomo, que no necesariamente tiene que ser representado por una entidad gráfica", teniendo en cuenta un sistema con interfaz gráfica. Y desde un punto de vista general, "un agente es un componente de software persistente y activo que percibe, razona, actúa y se comunica" [ 15].. Tomando en cuenta todas las definiciones anteriores, de manera genérica un agente tiene básicamente las siguientes características [ 15] [ 16] : a) Autonomía:. El agente opera sin la intervención directa de los usuarios, y tiene control. sobre sus estados internos. b) Habilidad social: El agente puede interactuar con otros agentes o con el usuario. c) Reactividad:. El agente percibe su ambiente y responde. dependiendo de su nivel de. cognición (generalmente puede ir del reactivo al deliberativo). d) Proactividad:. El agente no simplemente actúa en respuesta a su ambiente, sino que es. capaz de tener un comportamiento dirigido a un objetivo tomando la iniciativa.. 2.2.1 ARQUITECTURA PARA AGENTES. Existen distintos tipos de arquitecturas que han sido desarrolladas para los agentes,. sm. embargo en [15] se propone una arquitectura simple, a partir de la cuál se pueden desarrollar arquitecturas más sofisticadas. Básicamente como se muestra en la figura 2.6, un agente consta de tres subsistemas: percepción, acción y razonamiento. La arquitectura más simple cotlsta de.

(26) 27 dos capas; en las cuales se distribuyen los tres subsistemas. Los subsistemas de percepción y acción se encuentran en la capa superficial y el subsistema de razonamiento en la capa interior. La percepción alimenta al subsistema de razonamiento, que gobierna las acciones; incluyendo la decisión de qué percibir en determinado momento.. PERCEPCION. ACCIÓN. RP20NAMIENTO. Figura 2.6 Arquitectura de un agente.. El reto de cualquier arquitectura es encontrar el equilibrio adecuado entre el tiempo que un agente debe pennanecer en el subsistema de razonamiento y el que debe pennanecer en el subsistema de percepción. Por ejemplo, no sería conveniente que un agente esté en un proceso de razonamiento mientras el sistema se encuentra en crisis; de manera inversa si la percepción interrumpe constantemente al razonamiento, el agente no será capaz de realizar razonamientos muy sofisticados. No existe una aproximación general independiente de dominio que funcione para todos los casos que defina si el agente debe pasar más tiempo en el subsistema de percepción o en el de razonamiento.. 2.2.2 CLASIFICACIÓN DE AGENTES. Existen muy diversas maneras en cómo se pueden clasificar los agentes de acuerdo a su arquitectura, a su nivel de autonomía, a su nivel de racionalidad, de acuerdo a la aplicación, etc.. De acuerdo a la movilidad del agente, dos tipos de agentes existen [18]: a) Estáticos: Agentes que realizan su labor en un mismo sistema. b) Móviles:. Agentes cuyos programas pueden migrar de una máquina a otra y ejecutarse en. distintas plataformas..

(27) 28 Dependiendo del modelo de razonamiento que posee _el agente, se clasifican dentro de un rango que va de lo reactivo a lo deliberativo [15]: a) En el agente reactivo existe un dominio del subsistema de percepción sobre el subsistema de razonamiento, es decir el agente pasa más tiempo sensando que decidiendo. b) En el agente deliberativo existe un dominio del subsistema de razonamiento sobre el subsistema de percepción, es decir el agente pasa más tiempo decidiendo que sensando el ambiente.. Esta clasificación, de acuerdo al razonamiento, no define los linútes a partir de los cuáles un agente es considerado como reactivo o deliberativo; simplemente se definen los dos extremos de la escala, dentro de la cuál puede haber una gama infinita de posibilidades dependiendo de para qué ambientes se necesita al agente.. De acuerdo con el grado de autonomía del agente, es decir dependiendo del control que tiene el usuario sobre el agente, tres categorías de agentes son consideradas [19]: a) Avatar: representa al usuario en un mundo virtual para mantener la sensación de inmersión y presencia. Es una representación gráfica de una personal real en un ambiente virtual junto con sus comportamientos [4]. El usuario controla completamente al avatar. b) Asistente: es el guía del usuario dentro de un ambiente o sistema. Los agentes asistentes están diseñados para ayudar al usuario con el uso de sistemas de software, realiz.ando determinadas tareas dependiendo del comportamiento del usuario, haciendo la interacción con el sistema más eficiente y más fácil [20].. El usuario recibe retroalimentación del. asistente. c) Actor: personaje adicional que aparece en un mundo virtual realiz.ando determinadas actividades. El usuario no tiene control sobre el actor.. Es importante notar, que la clasificación anterior se encuentra ligada al papel de los agentes dentro de sistemas de ambientes virtuales..

(28) 29. 2.2.3 HERRAMIENTAS DE INTELIGENCIA ARTIFICIAL PARA EL SUBSISTEMA DE RAWNAMIENTO Cómo se definió en la sección anterior, pueden existir agentes con un razonamiento de tipo reactivo o de tipo deliberativo, dependiendo del dominio del subsistema de percepción sobre el del razonamiento o viceversa. Los agentes reactivos generalmente requieren un subsistema de razonamiento menos sofisticado que los deliberativos. Los métodos y algoritmos del área de la inteligencia artificial proporcionan una amplia gama de posibilidades para la implementación de este subsistema.. A continuación se describen de manera muy breve algunos ejemplos de. paradigmas y técnicas que se pueden utilizar: a) Sistemas Expertos: Son programas que utiliz.an una base de conocimiento y mecanismos de inferencia para resolver problemas en un dominio pequeño y delimitado. Los cuatro componentes básicos en la arquitectura de un sistema experto son: el módulo de adquisición de conocimiento, la base de conocimiento, el mecanismo de inferencia y la interfaz con el usuario. mecanismo. La base de conocimiento contiene la información, y. el. de inferencia contiene los algoritmos generales para manipular el. conocimiento para resolver los problemas de un dominio específico. El conocimiento, para poder ser manipulado, tiene que ser representado de una manera que entienda el mecanismo de inferencia, el método más utilizado para la representación del conocimiento son las reglas, sin embargo también se puede representar por medio de redes semánticas, grafos conceptuales, objetos, redes de Petri, etc. o por una combinación de estos formalismos [21]. Muchos de los subsistemas de razonamiento para agentes con muy diversas características están basados en reglas con distintos grados de complejidad, de manera particular, los agentes reactivos utiliz.an frecuentemente reglas para definir acciones a partir de determinados datos sensados. b) Redes Neuronales: Los sistemas de redes neuronales, pueden procesar conocimiento y obtener un aprendizaje en dominios en donde la experiencia humana no puede ser fácilmente expresada de manera verbal.. Las redes neuronales son compuestas por un. cierto número de neuronas artificiales, las cuales están inspiradas en el funcionamiento de las neuronas humanas que son activadas por medio de estímulos eléctricos y transmiten información a las neuronas vecinas.. Una neurona artificial es una unidad de. procesamiento individual que recibe entradas de las neuronas vecinas y proporciona una salida con base a lo que recibe y a una función de excitación. Un conjunto de neuronas.

(29) 30 artificiales interconectadas en una estructura de grafo directo forma una red neuronal artificial. Los arcos del grafo que conectan a una neurona con otra tiene. asignado un peso que determina el grado de asociación de las neuronas. Las redes neuronales tienen que ser entrenadas para aprender, durante el aprendizaje se ajustan los pesos de los arcos hasta que la red alcance el comportamiento deseado. Debido a las características que definen a las redes neuronales, éstas pueden ser utilizadas para clasificación, agrupamiento, reconocimiento de patrones, entendimiento del lenguaje, visión, etc.; servicios que se desea que proporcionen algunos agentes, o al menos un parte de la estructura completa del agente [21][22]. c) Algoritmos Genéticos: Están basados en los conceptos de selección natural y genética. Un algoritmo genético es una técnica global de búsqueda que involucra una población de puntos para buscar una solución óptima. Un conjunto inicial de posibles soluciones es seleccionado de manera aleatoria, este conjunto es llamado población. A partir de esta población y con una función para medir que tan buena o mala es una solución de la población, se toman de la población original las mejores soluciones para transformarse en nuevas poblaciones. Los operadores básicos para la transformación de la población son la reproducción, el cruzamiento y la mutación. Los algoritmos genéticos son utilizados para búsquedas de soluciones buenas cuando el espacio de búsqueda es muy amplio.. En. algunos sistemas de agentes, los algoritmos genéticos son utilizados para la derivación automática de la base de conocimiento a partir de datos; por ejemplo para agentes asistentes en el uso de interfaces gráficas, se pueden utilizar para determinar las partes de la interfaz más utilizadas por el usuario y presentárselas de manera más accesible e · inmediata [21]. d) Lógica Difusa:. Pennite trabajar con los aspectos del conocimiento que no han sido. representados de manera booleana, sino que son representados de manera imprecisa y vaga por medio de juicios parecidos a los que realizan los seres humanos. Se incorporan conceptos cualitativos como alto, bajo, caliente; y también conceptos cuantitativos como mucho, poco, algunas veces, usualmente, etc.. Los ejemplos descritos no sólo son utilizados de manera aislada para implementación del subsistema de razonamiento de los agentes, muchas veces se utiliza una combinación de varios algoritmos y herramientas. Una ejemplo de este caso son los sistemas expertos denominados de segunda generación donde se busca contar con un sistema experto que posean un módulo de.

(30) 31 adquisición automática del conocimiento que puede ser implementado con algoritmos genéticos [21].. 2.2.4 HERRAMIENTAS PARA CONSTRUIR AGENTES Numerosos grupos de investigación han desarrollado herramientas disponibles para la construcción de agentes con distintas características.. A continuación se mencionan cuatro. ejemplos solamente de este tipo de herramientas, los ejemplos mencionados son herramientas sin costos para propósitos académicos y pueden ser utilizadas en distintas plataformas. a) Sistema de Producción Integrado en Lenguaje C (C Language Integrated Production System, CLIPS): Este sistema fue desarrollado en la Centro del Espacio Johnson en la NASA en 1984, actualmente es un software de domino público. Se caracteriza por su portabilidad y facilidad de integración a sistemas externos. Está desarrollado en C y C++, sin embargo existen módulos que permiten conectar scripts de CLIPS con Peri, Tcl, Java, etc.. Existen implementaciones de CLIPS para distintas plataformas de Unix y de. Windows. Soporta sistemas basados en reglas, objetos y existe un módulo adicional para lógica difusa [23]. La principal desventaja de esta herramienta para el trabajo de tesis, es la necesidad de compilar CLIPS para cada una de las distintas plataformas en que se desea tener el agente. b) Sistema Experto en Java (Java Expert System Shell, JESS): JESS provee un mecanismo de inferencia basado en reglas y un ambiente de scripts para el desarrollo de sistemas expertos. Fue desarrollado en los Laboratorios Nacionales Sandia, en Estados Unidos. Está desarrollado completamente en Java, lo cual permite la portabilidad de los sistemas diseñados. Acepta algunos scripts generados en CLIPS.. Soporta sistemas basados en. reglas, y algunas aplicaciones de lógica difusa [24]. La principal desventaja de JESS es que sólo puede ser utilizado para agentes estáticos y aislados, ya que no provee formas de comunicación entre agentes (a menos que se implemente la comunicación directamente en Java). c) Estado, Operador y Resultado (State, Operator And Result, SOAR):. SOAR es una. arquitectura para el desarrollo de sistemas con comportamiento inteligente.. La. arquitectura está centrada en producciones que fueron desarrolladas para explicar la manera en que los humanos resuelven problemas e implementar este tipo razonamiento en.

(31) 32 sistemas. SOAR posee una memoria a largo plazo para las producciones y memoria a corto plazo para los eventos que activan las producciones. SOAR resuelve el problema usando una red de preferencias que define estados dominantes a partir de los cuáles se puede escoger el siguiente estado de un agente.. Todas las decisiones son tomadas. utilizando una combinación de la interpretación de los datos sensoriales y contenido de la memoria y cualquier otro conocimiento relevante, por lo tanto las decisiones no siguen una secuencia predecible como ocurre con otros sistemas [22].. SOAR tiene. implementaciones en distintas plataformas, pero todas las implementaciones dependen de· TCL. d) Plantilla para Agentes en Java (Java Agent Templete, JAT): JAT provee una plantilla completamente programada en Java para la construcción de agentes de software que se puedan comunicar de punto a punto con agentes distribuidos en Internet. Además incluye la funcionalidad para el intercambio dinámico de recursos, que pueden ser clases de Java como intérpretes o servicios remotos [25].. Esta herramienta está muy dirigida al. desarrollo de agentes para proveer servicios en Internet. JAT fue desarrollado por la Universidad de Stanford en Estados Unidos.. Se decidió utilizar JESS para la implementación del agente asistente del laboratorio virtual, esto debido a que no es necesario contar con alguna herramienta que se comunique con otros agentes, sólo se necesita uno. Además la implementación de JESS en Java hace posible integrar fácilmente el agente con el resto de la arquitectura que ya ha sido implementado en Java, y no requiere de compilación al pasar de una plataforma a otra.. 2.2.5 AGENTES VIRTUALES Y ROBOTS QUE COLABORAN. Los agentes tienen numerosas aplicaciones en muy distintas áreas del conocimiento y con muy distintos propósitos, y los ambientes virtuales no son la excepción. Se han desarrollado muchas aplicaciones de net-VEs con agentes animados humanos y animales con el propósito principal de contar con ambientes con mayor grado de realismo.. Los Agentes Virtuales.

(32) 33. Inteligentes también presentan distintos grados de inteligencias y distintos tipos de comportamiento al igual que otros agentes, sin embargo se caracterizan por ser personajes 3D animados dentro de un ambiente virtual.. Existen numerosos trabajos de agentes virtuales. inteligentes a cerca de su apariencia, movimiento y comportamiento; también existen a cerca de su aplicación como asistentes, instructores, o simples actores y trabajos a cerca de la relación de agentes virtuales con otros agentes virtuales o con humanos.. Algunos algoritmos y arquitecturas que actualmente se han utilizado en agentes virtuales, originalmente fueron propuestos para robots (móviles o manipuladores). Un ejemplo de este caso es el trabajo de R.S. Aylett en la Universidad de Salford, Inglaterra; donde se propone la utilización de una arquitectura de comportamiento sintética desarrollada originalmente para robots pero en agentes virtuales [26].. Otro aspecto interesante con respecto a los agentes virtuales, es la definición de las tareas que deben realizar los agentes dentro de su ambiente. Se han desarrollados distintos trabajos que penniten la generación se secuencias y combinaciones de subtareas en un ambiente virtual para completar una tarea en donde intervienen más de un agente a la vez. Nuevamente se encuentra que este tipo de trabajos puede estar inspirado en la programación de celda de manufactura. En una celda de manufactura, generalmente se encuentra varios robots manipuladores trabajando sobre una misma tarea (por ejemplo, empaque de productos o ensambles) y se debe tener un control a cerca de en qué orden o con qué restricciones pueden trabajar los robots para tenninar la tarea de manera satisfactoria. En los primeros trabajos de investigación en la colaboración de los robots para tareas, se utilizó un monitoreo basado en semáforos que pennitía que un sólo robot trabajara a la vez; el resultado de este tipo de colaboración entre robots era una secuencia de subtareas que cada robot iba ejecutando por turnos [27].. Sin embargo al realizar una tarea. solamente por medio de una secuencia de subtareas, no pennitía la programación de tareas más complejas donde tal vez fuera necesario la participación de más de un robot a la vez (por ejemplo un robot que detiene alguna pieza, mientras otro trabaja sobre la pieza).. La siguiente aproximación para resolver una tarea colaborativa, fue utilizando simplemente la detección de colisiones cuando dos robots tenían que trabajar dentro del mismo espacio. Posteriormente se han implementado muy diversos algoritmos de planeación para la realización de tareas colaborativas, la planeación se realiza en varios niveles: la planeación de cada uno de.

(33) 34 los movimientos de los robots, dependiendo del ambiente y los otros robots, y la planeación del orden de ejecución de las subtareas [27]. Esta última aproximación resulta en la realización de tareas de una manera muy eficiente.. En cuanto a los agentes virtuales, también se han implementado planeadores para la ejecución de tareas complejas a partir de secuencias y combinaciones de subtareas. Por ejemplo, con este tipo de planeadores, se puede definir cómo se llevará a cabo la interacción de dos agentes humanoides que van a intercambiar un saludo estrechando las manos: Cada uno de los agentes debe mover de manera adecuada el brazo evitando chocar con objetos, su cuerpo y el cuerpo del otro agente, y las dos manos deben coincidir en el mismo punto más o menos al mismo tiempo para poder ser estrechadas.. La desventaja principal en el uso de planeadores en ambientes. virtuales, es el costo computacional debido a los cálculos realizados por los algoritmos de planeación.. Otra desventaja de los planeadores, aunque solamente en algunos, es la. consideración de un ambiente de trabajo en particular o con ciertas restricciones y esto aplica tanto para robots como para agentes virtuales.. Últimamente se han desarrollado varias aproximaciones para definir tareas colaborativas sin tener el costo computacional de utilizar un planeador y que permitan definir tareas complejas en distintos ambientes. Algunas de estas aproximaciones son: Representación de Acciones I. Parametrizadas [28] y Objetos Inteligentes que interactúa con los agentes [29].. Para el presente trabajo de tesis, se utilizará un lenguaje para definir tareas, que permitirá la programación de varios robots (móviles y manipuladores) en distintos ambientes..

(34) 35. 3. LABORATORIOS VIRTUALES. El concepto de laboratorio virtual, fue originalmente concebido por el profesor Pradeep K. Khosla del departamento de Ingeniería Computacional y Eléctrica de la Universidad Camegie Mellon, Estados Unidos.. Los dos primeros trabajos conocidos donde utilizó el término de. laboratorio virtual fueron creados en Camegie Mellon: el primero fue un laboratorio virtual para procesamiento de sefiales de audio y de imágenes tanto analógicas como digitales implementado en Windows 3.1 con la capacidad de controlar de manera remota varios instrumentos como un osciloscopio [30];. el segundo laboratorio recibió el nombre de Onika, donde se elaboraron. herramientas que permiten compartir y tener acceso remoto tanto a equipo de hardware como a librerías de software, este laboratorio virtual, entre otras aplicaciones se utilizó para controlar un robot móvil [31].. Se consideran dos tipos de laboratorios virtuales: los laboratorios virtuales remotos y los. laboratorios virtuales simulados. Los laboratorios virtuales remotos, se caracterizan por tener la posibilidad de controlar de manera remota el equipo de un laboratorio como pueden ser máquinas eléctricas, circuitos, robots, etc. Y los laboratorios virtuales simulados, solamente cuentan con equipo virtual simulando a equipos reales sin tener conexión con estos últimos. Sin embargo, esta separación no es excluyente, ya que pueden existir laboratorios virtuales con acceso a equipo remoto, al mismo tiempo que se tiene el equipo simulado..

(35) 36. 3.1 VENTAJAS DE LOS LABORATORIOS VIRTUALES. El contar con un laboratorio virtual, presenta algunas de las ventajas que se mencionan a continuación [31]: a) Reducir costos: No se tiene que adquirir equipo costoso, o existir un desplazamiento fisico para utilizar equipos en otros sitios geográficos. b) Promover la transferencia de la tecnología:. Es más fácil compartir el software y. distribuirlo a un mayor número de personas. c) Facilitar el crecimiento del sistema: Se pueden añadir módulos nuevos al sistema y contar con un laboratorio virtual más grande. d) Simulación transparente: Añadiendo, configurando o cambiando módulos diseñados para distintos propósitos dentro del sistema. e) Reducir riesgos:. Los estudiantes pueden practicar con equipo peligroso sin que los. errores que se puedan presentar en los primeros entrenamientos representen un riesgo para la integridad de las personas.. f) Incorporar estrategias didácticas, agentes y tutores:. Se pueden implementar o añadir. módulos con una base de conocimiento que proporcionen ayuda a los estudiantes durante la utilización del laboratorio virtual, o bien se pueda monitorear el correcto uso del equipo, sin la necesidad de contar con un operador especializado como sucede en los laboratorios reales.. De acuerdo con las ventajas descritas, contar con laboratorios virtuales amplía las posibilidades de tener cursos virtuales más completos y ambientes de práctica más seguros que no aumentan la utilización de recursos (a excepción de los recursos computacionales) y facilitan al acceso a un mayor número de usuarios.. Los usuarios que trabajan en un laboratorio virtual pueden interactuar de distintas maneras tanto con el sistema como con otros usuarios.. Dependiendo de este tipo de interacción, el. aprendizaje dentro de un laboratorio virtual puede ser de tres formas [13]:.

(36) 37 a) Síncrono: Los usuarios reciben clases o conferencias en un tema específico por parte de una persona experta en el tema. b) Asíncrono: Cada usuario puede revisar clases, conferencias o sesiones colaborativas previas por su cuenta. c) Colaborativo:. Los usuarios pueden discutir sobre algún tema o trabajar en equipo en. alguna actividad.. 3.2 TRABAJO PREVIO EN LABORATORIOS VIRTUALES. Existen numerosas implementaciones a las cuáles se les ha denominado como laboratorios virtuales, sin embargo presentan características distintas en cuanto a su forma de interacción, su contenido y el grado de generalidad (:funcionan sólo para determinados casos o para cualquier tipo de laboratorio) que presenten. A pesar de estas diferencias todos los laboratorios virtuales tienen en común el hecho de que han sido creados con la misma finalidad: el aprendiz.aje.. El trabajo previo de laboratorios virtuales incluye además diversas a.reas del conocimiento, por lo que a continuación se presentan algunos de los trabajos investigados organiz.ados de la siguiente manera: laboratorios virtuales remotos o simulados, laboratorios virtuales por Internet, laboratorios virtuales en net-VEs y laboratorios virtuales con agentes.. 3.2.1 LABORATORIOS VIRTUALES REMOTOS O SIMULADOS Algunas implementaciones de laboratorios virtuales se han desarrollado sin que permitan el acceso al sistema utilizando una red. Estos laboratorios simplemente tienen una simulación de laboratorio real o permiten el acceso a equipo remoto o ambas cosas y solamente pueden ser utiliz.ados por un usuario a la vez..

(37) 38. 3.2.1.1 Software de Laboratorio (SoftLab). Este laboratorio virtual es para el área de ingeniería química.. Existen dos prototipos de. laboratorios completos llamados BioSoftLab y MicroSoftLab. BioSoftLab es el laboratorio de bioseparación (procedimiento para la separación de componentes químicos que es utilizado para la purificación de proteínas entre otras cosas). MicroSoftLab es utilizado para experimentar con descomposición química de vapor del silicio mediante varios instrumentos electrónicos. En la figura 3 .1 se muestra la interfaz de BioSoftLab.. Figura 3. 1 Interfaz de usuario de BioSoftLab, laboratorio de bioseparación.. Ambos prototipos permiten interacción remota con el equipo real si así se desea, o bien permiten la simulación de los experimentos. No permiten trabajar simultáneamente con equipo simulado y real, pero se pueden hacer comparaciones entre los resultados obtenidos en experimentos simulados con los obtenidos en experimentos reales [32].. 3.2.1.2 Laboratorio de Control Virtual Este laboratorio simula varios componentes de una planta industrial, con el objetivo de tener una herramienta de entrenamiento para los operadores.. Se tienen simulados una columna de. destilación, un tanque horizontal y un intercambiador de calor; cada uno de estos componentes se.

Figure

Figura 2.3  Salón de conferencias en DIVE.
Figura 2.5 Celda de Manufactura implementada utilizando OODVR.
Figura 3. 1 Interfaz de usuario de BioSoftLab, laboratorio de bioseparación.
Figura 3.2 Interfaz para control de un intercambiador de calor.
+7

Referencias

Documento similar

Hace  aproximadamente  una  década  apareció  un  nuevo  campo  de  investigación  que  puede  ser  nombrado  de  diversas  maneras  como  son  educación 

En el proyecto de Laboratorios Virtuales se adopta este sistema como punto de partida para el desarrollo de prácticas de laboratorios sobre web, ateniéndonos a que se puede

El presente trabajo de diploma tiene como objetivo realizar una investigación sobre el tema de los laboratorios virtuales, además de proponer un prototipo funcional con el cual

Se ofrece la primera versión funcional del módulo de cuestionarios interactivos, para la evaluación durante la realización de prácticas de laboratorios virtuales sobre Web, como

El presente trabajo tiene como objetivo desarrollar un Sistema de Percepción para Agentes Virtuales de la Biblioteca de Inteligencia Artificial de la Facultad 5, el cual

El presente trabajo de diploma se plantea como objetivo general desarrollar un juego de dominó para jugadores virtuales, donde el usuario tenga la posibilidad

 Para recibir todos los números de referencia en un solo correo electrónico, es necesario que las solicitudes estén cumplimentadas y sean todos los datos válidos, incluido el

Trasladando este entorno a la enseñanza actual, los elementos necesarios para abordar la realización de actividades prácticas son los laboratorios virtuales (LV) y laboratorios