Logo Studenta

Robôs Teleoperados em Ambientes Virtuais

¡Este material tiene más páginas!

Vista previa del material en texto

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY 
CAMPUS ESTADO DE rvtÉXICO 
ROBOTS TELEOPERADOS EN AMBIENTES VIRTUALES. 
TESIS QUE PARA OPTAR EL GRADO DE 
MAESTRO EN CIENCIAS COMPUTACIONALES 
PRESENTA 
MOISÉS ALENCASTRE MIRANDA 
Asesor: Dr. ISAAC RUDOMÍN GOLDBERG 
Comité de tesis: Dr. ISAAC RUDOMÍN GOLDBERG 
Dr. RICARDO SWAIN OROPEZA 
Dr. CARLOS RODRÍGUEZ LUCATERO 
Jurado: Dr. RICARDO SWAIN OROPEZA 
Dr. CARLOS RODRÍGUEZ LUCATERO 
Dr. ISAAC RUDOMÍN GOLDBERG 
Atizapán de Zaragoza, Edo. Méx., Enero de 2003. 
Presidente 
Secretario 
Vocal 
3 
RESUMEN 
Conforme se han realizado avances en distintas áreas tecnológicas como en las redes 
computacionales, la realidad virtual y el desarrollo de interfaces gráficas, los sistemas de 
teleoperación se han vuelto más elaborados y robustos; pennitiendo que el control de los robots 
se lleve a cabo teniendo de por medio grandes distancias. Los sistemas de realidad virtual junto 
con las redes computacionales han dado origen a los ambientes virtuales en red dentro de los 
cuales se puede interactuar con múltiples usuarios en mundos semejantes a los reales que pueden 
incluir la teleoperación de robots en este tipo de ambientes. 
Por otra parte, el alto costo de los robots los hace inaccesibles para algunas instituciones 
en países como el nuestro, por lo que los usuarios se ven limitados a probar algoritmos 
desarrollados en uno o dos robots distintos cuando mucho, siendo necesaria la existencia de 
herramientas que permitan el acceso a varios robots que pueden localizarse en áreas geográficas 
remotas. 
Actualmente existen muy pocos sistemas que permitan la teleoperación de varios robots 
virtuales y/o reales en ambientes virtuales en red y los pocos que existen no se encuentran al 
alcance de cualquier usuario, por lo tanto se ha desarrollado un sistema con estas características. 
La aplicación desarrollada para esta trabajo incluye la implementación de un ambiente virtual en 
red que sea portable, modular, distribuido, escalable y multiusuario sobre el cuál se pueda tener 
un modelo general de robot capaz de manejar de la misma forma a robots manipuladores y a 
robots móviles. Así mismo, se tiene la capacidad de teleoperar múltiples robots reales y virtuales 
en el mismo ambiente, utilizando la transmisión de video streaming para el monitoreo remoto de 
los robots reales con múltiples cámaras. Los robots teleoperados se pueden controlar mediante la 
interfaz gráfica del sistema o mediante el uso de joysticks. 
Finalmente, se probó la modularidad del ambiente virtual en red, añadiendo un modulo 
que permite el despliegue del ambiente virtual con librerías gráficas distintas a las definidas 
originalmente. 
ÍNDICE. 
1 Introducción. 
1.1 Planteamiento del problema. 
1.2 Objetivos. 
2 Teleoperación de robots. 
2.1 Los robots y la robótica. 
2.1.1 Robots manipuladores. 
2.1.2 Robots móviles. 
2.2 Teleoperación. 
2.3 Teleoperación en robótica. 
2.3.1 Teleoperación de robots. 
2.3.2 Telerobótica. 
2.4 Control remoto de robots. 
2.4.1 Comunicación remota. 
2.4.2 Interfaces gráficas para el control de robots. 
2.4.3 Monitoreo remoto de robots. 
2.4.3.1 Productos de RealNetworks. 
2.4.3.2 Camserv. 
2.4.3.3 JMF. 
3 Ambientes virtuales en red. 
3. 1 Realidad virtual. 
3 .2 Ambientes virtuales. 
9 
10 
11 
13 
13 
14 
16 
18 
21 
22 
23 
25 
25 
26 
28 
30 
30 
31 
33 
33 
34 
4 
3.2.1 Ambientes virtuales para robótica. 
3.3 Ambientes virtuales en red. 
3.4 Arquitecturas de net-VE's. 
3.4.1 SIMNET. 
3.4.2 DIS. 
3.4.3 HLA. 
3.4.4 NPSNET. 
3.4.5 OODVR. 
4 Trabajos relacionados. 
4.1 Teleoperación de robots vía una página web. 
4.1.1 ROBOSIM. 
4.1.2 RCVVL. 
4.1.3 Robot en línea UJI. 
4.2 Robots en ambientes virtuales. 
4.2.1 OGLSIMROB. 
4.2.2 Webots. 
4.2.3 IGRIP. 
4.3 Sistemas telerobóticos standalone. 
4.3.1 Robonauta. 
4.3.2 Operabotics. 
4.4 Net-VE's para telerobótica. 
4.4.1 VEVI. 
4.4.2 WITS. 
5 Desarrollo. 
5.1 Modificaciones de OODVR. 
5.1.1 Primera aplicación de robótica en OODVR. 
5.1.2 Problemas a solucionar en OODVR. 
5 .1.3 Modificaciones y mejoras externas. 
35 
37 
38 
39 
40 
42 
43 
45 
50 
51 
51 
52 
53 
54 
54 
56 
57 
58 
59 
60 
61 
61 
63 
70 
70 
74 
77 
78 
5 
5.1.4 Modificaciones y mejoras realizadas. 
5.1.4.l Protocolo de red. 
5.1.4.2 Automatización de una clase Robot. 
5.1.4.3 Base de datos. 
5.2 OODVR++. 
5.2.1 Teleoperación de robots virtuales. 
5.2.2 Teleoperación de robots reales. 
5.2.3 Dispositivos de control. 
5.2.4 Video streaming. 
5.3 Otro módulo en OODVR++. 
5.3.1 Despliegue gráfico en OpenGL. 
6 Resultados. 
7 Conclusiones. 
7 .1 Conclusiones particulares. 
7.2 Trabajo a futuro. 
Bibliografia 
79 
80 
83 
86 
92 
93 
98 
107 
111 
118 
119 
123 
126 
126 
128 
130 
6 
7 
LISTA DE FIGURAS Y TABLAS. 
Figura 2-1. El robot manipulador PUMA 560 de Unirnation Inc. 15 
Figura 2-2. El robot móvil Nomad 200 de Nomadic Technologies. 17 
Figura 2-3. Primer sistema de teleoperación. Laboratorio Nacional Argonne. 19 
Figura 2-4. Servomanipulador maestro-esclavo. 20 
Figura 2-5. Sistema teleoperado de un robot PUMA 560. JPL. 23 
Figura 2-6. Diagrama de una telecirugía. 24 
Figura 2-7. Telerobot Sojourner de la NASA. 26 
Figura 2-8. GUI utilizada para un telerobot en el JPL. 27 
Figura 2-9. Mini-telerobot y el monitoreo del mismo con múltiples cámaras. 29 
Figura 2-10. Ejemplo de transmisión de streaming video con camserv. 31 
Figura 2-11. JMStudio de JMF 2.1.1 capturando video de una WebCam. 32 
Figura 3-1. Telepresencia. 36 
Figura 3-2. Ejemplo de un helicóptero en un VE en DIS-Java-VRML. 42 
Figura 3-3. Ejemplo de VE de NPSNET-IV. 44 
Figura 3-4. Esquema de comunicación de OODVR. 47 
Tabla 3-1. Tabla comparativa entre OODVR y las otras arquitecturas de net-VE's. 49 
Figura 4-1. GUI y VE de RoboSiM. 52 
Figura 4-2. Sistema de Entrenamiento en Telerobótica UJI. 54 
Figura 4-3. Dos vistas de una celda de manufactura en OGLSIMROB. 55 
Figura 4-4. Dos simulaciones de robots en la interfaz y el VE de Webots. 57 
Figura 4-5. Dos simulaciones en el software IGRIP. 58 
Figura 4-6. Robonauta teleoperado por un especialista de la NASA. 59 
Figura 4-7. Dos ejemplos de teleoperación con Operabotics. 60 
Figura 4-8. Teleoperación, simulación y monitoreo de un robot submarino en VEVL 63 
Figura 4-9. GUI de WITS. 65 
Tabla 4-1. Parte 1 de una tabla comparativa entre WITS y otros trabajos de robots. 68 
8 
Tabla 4-2. Parte 2 de la tabla comparativa entre WITS y otros trabajos de robots. 69 
Figura 5-1. Aplicación de robots virtuales en la primera versión de OODVR. 76 
Figura 5-2. Arquitectura OODVR para robots virtuales. 76 
Figura 5-3. Diagrama Entidad-Relación de la DB de Robots. 89 
Figura 5-4. Diagrama de clases del paquete oodvr.db. 90 
Figura 5-5. Ventana de la GUI de OODVR++ con el controlador. 93 
Figura 5-6. Primera versión de teleoperación de robots virtuales en OODVR+. 95 
Figura 5-7. Cuatro robots manipuladores virtuales en OODVR++. 96 
Figura 5-8. Un robot manipulador y dos robots móviles en OODVR++. 97 
Figura 5-9. Teleoperación de múltiples robots. 97 
Figura 5-10. Robot móvil AmigoBot. 99 
Figura 5-11. Otros robots móviles de la empresa ActivMedia. 100 
Figura 5-12. Primera imagen de un ejemplo de teleoperación de un robot real. 104 
Figura 5-13. Segunda imagen de un ejemplo de teleoperación de un robot real. 104 
Figura 5-14. Tercera imagen de un ejemplo de teleoperación de un robot real. 105 
Figura 5-15. Cuarta imagen de un ejemplo de teleoperación de un robot real. 105 
Figura 5-16. Quinta imagen de un ejemplo de teleoperación de un robot real. 106 
Figura 5-17. Sexta imagen de un ejemplo de teleoperación de un robot real . 107 
Figura 5-18. Dispositivos de control utilizados. 108 
Figura 5-19. GUI para asignar los movimientos del dispositivo de control. 11 O 
Figura 5-20. Operación del AmigoBot virtualcon un joystick. 110 
Figura 5-21. Operación del Amigobot virtual con un volante. 111 
Figura 5-22. Primera imagen de un ejemplo de telemonitoreo por video streaming. 115 
Figura 5-23. Segunda imagen de un ejemplo de telemonitoreo por video streaming . 116 
Figura 5-24. Tercera imagen de un ejemplo de telemonitoreo por video streaming. 116 
Figura 5-25. Cuarta imagen de un ejemplo de telemonitoreo por video streaming . 117 
Figura 5-26. Quinta imagen de un ejemplo de telemonitoreo por video streaming. 117 
Figura 5-27. Arquitectura OODVR++. 118 
Figura 5-28. Ventana de selección del despliegue gráfico en OODVR++. 121 
Figura 5-29. Despliegue gráfico en OpenGL del robot Pwna 560 en OODVR++ 121 
Figura 5-30. Operación del robot Puma en OpenGL desde la GUI en Java. 122 
Tabla 6-1. Tabla de evaluación de las características de OODVR++. 125 
9 
1 INTRODUCCIÓN. 
A mediados del siglo XX, la teleoperación abarcaba el uso de un manipulador remoto 
controlado por un operador para manejo de sustancias peligrosas [l]. El manipulador remoto, 
llamado esclavo, era un dispositivo mecánico que traducía los movimientos del operador, 
realizados en otro dispositivo mecánico llamado maestro, en movimientos correspondientes en 
una posición remota. Comúnmente, el operador observaba la ejecución de la tarea a través de 
una ventana de cristal plomado o mediante televisión en circuito cerrado . 
En las últimas décadas, el interés en el uso de la robótica fue aumentando en varios países 
del mundo. Dicho interés no solo es en las áreas de investigación e industria, sino también en las 
áreas de educación y entretenimiento. En estas áreas mencionadas, los robots se desempeñan en 
la mayoría de sus aplicaciones de dos maneras: un operador controla los movimientos del robot 
( como sucede en la teleoperación), ó el robot puede .guiarse autónomamente por haber sido 
programado previamente. 
Actualmente, los sistemas de teleoperación han sido implementados en una gran cantidad 
de aplicaciones de robótica, y han evolucionado al controlar distintos robots a grandes distancias 
a través de una red alámbrica, inalámbrica, vía Internet, vía satélite en la Tierra o a través del 
espacio. El dispositivo maestro ya no es necesariamente algo mecánico o eléctrico, sino que 
también ha evolucionado hasta llegar a ser interfaces gráficas controladas desde una o más 
computadoras. Con el avance de las gráficas por computadora, dichas interfaces podrían incluir 
un mundo virtual similar al real en donde se controlaría al robot. Entonces se podrían tener 
10 
"Robots Teleoperados en Ambientes Virtuales". 
1.1 PLANTEAMIENTO DEL PROBLEMA. 
Debido al aumento de la cantidad de equipo de cómputo en las empresas, universidades y 
hogares, y al crecimiento en el acceso a redes de alta velocidad y a la Internet, se puede hacer un 
mayor uso de la teleoperación de robots a grandes distancias. La teleoperación de robots puede 
ser útil también cuando se desea programar un robot autónomamente, ya que se necesita primero 
operarlo normahnente para saber la forma en que se mueve y así poder programarlo para que 
trabaje en lugares lejanos. 
Por otra parte, los robots son todavía escasos en algunos países como México, por sus 
altos costos, siendo dificil tener varios robots para distintas pruebas de investigación o para la 
enseñ.anza y capacitación de muchas personas al mismo tiempo. 
En las últimas décadas, los trabajos hechos en teleoperación de robots han sido 
implementados utilizando cada vez más los nuevos desarrollos en las áreas de realidad virtual y 
de redes computacionales. Tal es el caso de los Ambientes Virtuales en Red en donde se 
aprovechan los últimos avances de la realidad virtual y de la infraestructura tecnológica de red 
para interactuar remotamente con otros usuarios o robots. 
Existen algunos sistemas desarrollados para teleoperación de robots mediante el uso de 
ambientes virtuales, en estos un usuario teleopera un robot real remoto por medio del control de 
un robot virtual en un mundo virtual local. Otros sistemas incluyen la teleoperación de un robot 
virtual. Pero en ambos casos sólo un usuario puede interactuar en el ambiente virtual. 
El problema en los desarrollos actuales es que todavía no se implementan aplicaciones de 
teleoperación de robots en ambientes virtuales en red que estén disponibles para cualquier tipo de 
usuario. Los pocos trabajos en el área son sistemas hechos por laboratorios de la Administración 
11 
Nacional de Aeronáutica y del Espacio o NASA (National Aeronautics and Space Administration) 
de los Estados Unidos y que sólo lo pueden utilizar con toda su funcionalidad los investigadores 
que trabajen o tengan alguna relación con la NASA. 
Por lo tanto, en el área de enseñanza e investigación debe existir un sistema de ambientes 
virtuales en red para teleoperación de robots con las siguientes características: 
• Interacción de múltiples usuarios distantes con uno o varios robots virtuales y reales en un 
ambiente virtual en tiempo real. 
• Colaboración de usuarios entre sí en distintas tareas. 
• Monitoreo en tiempo real del robot real teleoperado por medio de un formato de 
compresión y transmisión de video. 
• Teleoperación de robots virtuales móviles o manipuladores. 
• Distribución de la carga de procesamiento del ambiente virtual compartido en distintas 
plataformas de cómputo. 
• Enseñanza de distintos conceptos de robótica o explicación del uso de distintos robots 
para varios alumnos. 
1.2 OBJETIVOS. 
El objetivo general es desarrollar un sistema de ambiente virtual en red para teleoperación 
y monitoreo mediante video de robots móviles y manipuladores virtuales o reales que sea 
modular, portable, escalable, distribuido y multiusuario. Este sistema podrá ser fácilmente 
utilizado y modificado para integración de nuevos módulos por investigadores en el área de la 
robótica, profesores y alumnos. 
El sistema se basará en una arquitectura para el desarrollo de ambientes virtuales en red, 
llamada Arquitectura Orientada a Objetos para Realidad Virtual Distribuida u OODVR (Object 
Oriented Distributed Virtual Reality). A continuación se mencionan los objetivos específicos que 
se desarrollaron y se explican en este trabajo: 
1. Modificar la arquitectura OODVR. La arquitectura OODVR no fue definida ru 
12 
implementada completamente en su versión original. Por lo tanto, se deben añadir 
algunas características importantes y modificar la arquitectura para mejorarla. 
2. Afiadir la geometría de los robots en la arquitectura. Realizar u obtener el modelo 
geométrico de los robots virtuales que se desean incluir en el ambiente virtual. Incluir los 
modelos virtuales de algunos robots móviles o manipuladores existentes en el Instituto 
Tecnológico de Estudios Superiores de Monterrey Campus Estado de México (ITESM-
CEM). 
3. Hacer un sólo programa genérico con el cual se añada cualquier tipo de robot móvil o 
manipulador al ambiente virtual. 
4. Crear un controlador maestro o interfaz para teleoperar cada robot virtual. 
5. Desarrollar los programas que harán la teleoperación de un robot real desde la 
arquitectura. 
6. Realizar un módulo de monitoreo remoto por medio de video para observar las tareas que 
desempeñ.an los robots reales. El video podrá ser tomado de cámaras que observan al 
robot real o están montadas sobre él. 
7. Integrar un módulo extra en la simulación. Por ejemplo, la teleoperación de un robot 
virtual con otro tipo de despliegue gráfico, un módulo de visión o de planeación de rutas. 
13 
2 TELEOPERACIÓN DE ROBOTS. 
La unión de los primeros trabajos de la teleoperación con la creación de los primeros 
robots dieron lugar a la teleoperación de robots y a la telerobótica. En este trabajo se tiene la 
posibilidad de desarrollar el control remoto de distintos tipos de robots en un mismo sistema. 
Para esto, los primeros trabajos y los conceptos específicos necesariosen los campos de la 
robótica y la teleoperación son explicados a continuación. 
2.1 LOS ROBOTS Y LA ROBÓTICA. 
El término robot fue introducido al vocabulario en 1920 con el drama satírico "Rossum 
Universal Robots" del checo Karel Capek [2]. La palabra robot proviene de la palabra checa 
robota, que significa trabajo forzado. Desde entonces el término ha sido aplicado a una gran 
variedad de dispositivos mecánicos, tales como manipuladores, telemanipuladores, vehículos 
submarinos, vehículos en tierra autónomos, etc. Virtualmente algo que opera con algún grado de 
autononúa, usualmente bajo control de una computadora, tiende a ser llamado robot. En suma, 
un robot es un dispositivo mecánico-electrónico reprogramable de uso general con sensores 
externos que puede efectuar diferentes tareas. Siendo la reprogramabilidad el elemento clave, el 
cerebro computarizado que da al robot su utilidad y adaptabilidad. 
14 
El término robótica se atribuye en 1939 a Isaac Asimov, escritor de ciencia ficción. La 
robótica es una ciencia aplicada que ha sido considerada como una combinación de tecnología de 
las máquinas - herramientas y de la informática [ 1]. Comprende y relaciona campos tan 
aparentemente diferentes como diseño de máquinas, dispositivos mecánicos, teoría de control, 
microelectrónica, programación de computadoras, inteligencia artificial, factores humanos, teoría 
de la producción y a los robots. En las primeras décadas de la robótica, las áreas de investigación 
e industria avanzaron en todos los campos mencionados para mejorar la forma en que trabajaban 
los robots y para que fueran más autónomos. De esta manera, la necesidad de aumentar cada vez 
más la productividad y conseguir productos acabados de una calidad uniforme, hizo que la 
industria girará hacia una automatización basada en la robótica. En consecuencia, la robótica era 
una forma de automatización industrial. Pero en los últimos años la robótica también se está 
utilizando mucho en áreas como la educación, entretenimiento y algunas otras áreas de aplicación 
más específicas que se mencionarán en los siguientes subpuntos. 
Los robots se pueden clasificar de muchas formas: por generaciones, por su aplicación, 
por su configuración fisica, por diversos criterios de distintas asociaciones, por su grado de 
autononúa, etc. Pero se considera que la clasificación más general de los robots es por su tipo y 
se divide en dos: robots manipuladores y robots móviles. Estos son los dos tipos de robots que 
actualmente se construyen y se venden comercialmente en distintas empresas [3]. 
2.1.1 ROBOTS MANIPULADORES. 
Los robots manipuladores son robots con una anatonúa o con la construcción fisica de un 
brazo mecánico controlado por computadora. Estos robots están montados en una base que está 
fija, su cuerpo está formado por varios eslabones conectados por articulaciones, y al final de la 
última articulación se encuentra el efector final o herramienta con la cual realizará una tarea 
específica [l]. Al movimiento individual, ya sea de translación o de rotación con respecto a 
algún eje coordenado, de cada articulación individual del robot se le llama grado de libertad. El 
robot industrial, que fue el robot más común en los inicios de la robótica, es un robot 
manipulador. 
Una definición utilizada por el "Instituto del Robot de América" da una descripción más 
15 
precisa de los robots industriales: "Un robot industrial es un manipulador reprogramable 
multifuncional diseñado para mover materiales, piezas, herramientas ó dispositivos 
especializados a través de movimientos programados variables para la ejecución de una 
diversidad de tareas" [2]. En la figura 2-1 se muestra un ejemplo de robot industrial llamado 
PUMA 560 de la empresa Unimation Inc. 
Figura 2-1. El robot manipulador PUMA 560 de Unimation Inc. 
Los robots manipuladores se utilizan en distintas aplicaciones de la industria. 
Actualmente la mayoría de las aplicaciones se encuentran en los procesos de fabricación en 
celdas de manufactura. Las aplicaciones que se empiezan a desarrollar son en áreas de 
construcción, exploración del espacio, cuidados médicos y educación. La mayoría de las 
aplicaciones industriales de los robots manipuladores se pueden clasificar en tres tipos [1]: 
l. Aplicaciones de manipulación de materiales, carga y descarga. La función del robot 
consiste en desplazar materiales o piezas en la celda de manufactura de un lugar a otro. 
También se incluye la carga y descarga de máquinas de producción. 
2. Aplicaciones de procesos. En esta categoría se incluye la soldadura por puntos, la 
soldadura por arco, la pintura al spray y otras operaciones en las que la función del robot 
es manipular una herramienta para realizar algún proceso de fabricación en la celda de 
manufactura. 
16 
3. Ensamble e inspección. El ensamble de partes es muy utilizado en la industria automotriz 
y se está incrementando en la fabricación de circuitos integrados y electrónicos. Los 
robots de inspección hacen uso de sensores para calibrar y medir características de calidad 
del producto fabricado. 
2.1.2 ROBOTS MÓVILES. 
Un robot móvil es una combinación de varios componentes de hardware y de software, y 
puede ser considerado como una colección de los siguientes cuatro subsistemas [4]. 
l. Locomoción. Con la locomoción el robot se mueve a través de su ambiente. 
Dependiendo del tipo de locomoción los robots móviles se dividen en robots terrestres, 
acuáticos, aéreos y del espacio, siendo los más comunes los robots móviles terrestres y a 
los que se referirá en este trabajo. 
• Hardware: incluye motores, engranajes, la estructura del robot, etc., y el dispositivo 
específico dependiendo del tipo de locomoción como lo son ruedas, orugas ( como 
las de un tanque), patas o piernas, hélices, cohetes, etc. 
• Software: provee los mecanismos o librerías para mover el hardware de 
locomoción. 
2. Sensado. Con el sensado el robot mide propiedades de sí mismo y de su ambiente. 
• Hardware: puede incluir una serie de sensores internos como acelerómetros, 
giroscopios, inclinómetros, etc.; sensores externos no visuales como táctiles, 
infrarrojos, de sonar, de radar, de láser, de posición basados en satélite o GPS 
(Global Positioning System), magnéticos, etc; y sensores de visión basados en 
cámaras. 
• Software: provee los mecanismos o librerías para accesar los datos obtenidos por 
los sensores. 
3. Razonamiento. Con el razonamiento el robot mapea las medidas sensadas en acciones. 
• Hardware: incluye la computadora o computadoras que controlan al robot. 
• Software: incluye los algoritmos que en base a toda la infonnación de los demás 
subsistemas, toma las decisiones de acción del robot. 
4. Comunicación. Con la comunicación el robot se comunica con un operador o con 
17 
computadoras externas. 
• Hardware: puede incluir conecc1ones alámbricas o inalámbricas por medio de 
comunicación serial o por red. 
• Software: provee los mecanismos para enviar y recibir datos a través del hardware 
de comunicación. 
Una gran diferencia entre los robots manipuladores y los robots móviles es que los 
primeros operan dentro de un ambiente de trabajo limitado debido a que mantienen una posición 
fija, y los segundos tienen un ambiente de trabajo variable debido a que pueden cambiar su 
posición a través de la locomoción [5]. En la figura 2-2 se muestra un ejemplo de robot móvil 
llamado Nomad 200 de la empresa Nomadic Technologies. 
Figura 2-2. El robot móvil Nomad 200 de Nomadic Technologies. 
Los robots móviles se utilizan mucho para tareas con ciclos de trabajo demandantes, para 
llegar a ambientes inhóspitos donde enviar a una persona sería muy costoso o muy peligroso, 
para llegar a ambientes inaccesibles para una persona, o para llegar a un ambiente remoto donde 
podría tomar mucho tiempo enviar a una persona [4]. Las áreas de aplicación de los robots 
móviles son: la transportaciónde materiales entre distintas locaciones, la inspección y el 
reconocimiento en procesos industriales, el uso de los mismos como vehículos inteligentes o 
vehículos aéreos, la automatización en minería, la robótica espacial, el reconocimiento militar, la 
desactivación de bombas y minas, la inspección submarina, la agricultura y la ingeniería forestal, 
la ayuda a deshabilitados, el entretenimiento, y la limpieza del hogar. 
18 
2.2 TELEOPERACIÓN. 
La creación de herramientas especiales para "manejo remoto" ha sido una parte integral 
de la adaptación natural de los seres humanos a sus ambientes a través de la historia [6]. 
Alrededor de 1940, se intensificó la realización de sistemas de manejo remoto para que los 
científicos experimentaran la fisica atómica y la radioactividad, permitiéndoles así trabajar con 
ambientes peligrosos. Los primeros sistemas de manejo remoto fueron muy simples. Se 
construyeron paredes de materiales blindados que protegían a los usuarios del ambiente peligroso 
que se encontraba detrás de ellas; por lo tanto, se utilizaban periscopios y arreglos de espejos para 
ver las áreas de trabajo a través de los muros. También se fabricaron varias herramientas largas, 
para que los trabajadores manipularan los objetos detrás de la pared, para realizar los 
experimentos y pruebas con radiación. 
Conforme avanzó la ciencia, los experimentos llegaron a ser más complicados, entonces 
las herramientas para manejo remoto también tuvieron que serlo. Se construyeron muros 
protectores transparentes para que se pudiera observar a través de ellos el área de trabajo. 
También se crearon nuevos sistemas de manipuladores mecánicos a través de los cristales que 
permitían a los operadores realizar mejor las tareas. 
La división de Control Remoto del Laboratorio Nacional Argonne, en Chicago - Estados 
Unidos, tomó el reto de desarrollar un mecanismo que tuviera un controlador maestro donde un 
operador pudiera proporcionar los comandos de posición y orientación a un mecanismo esclavo ó 
sistema de encadenamiento que replicaría los movimientos y fuerzas en un área de trabajo remota 
[6]. Este reto fue logrado en 1948 por Raymond C. Goertz, en el mismo laboratorio, quien 
desarrolló el primer sistema de teleoperación para utilizarlo en el manejo de materiales 
radiactivos (ver figura 2-3) [7]. En las primeras implementaciones de teleoperación, el 
manipulador maestro y el brazo esclavo remoto eran dispositivos mecánicos cinemáticamente 
idénticos, es decir que los límites y movimientos de las articulaciones del manipulador esclavo 
eran exactamente las mismas que las del maestro. También los dos mecanismos maestro-esclavo 
eran copias exactas a distinta ó misma escala. 
19 
Figura 2-3. Primer sistema de teleoperación. Laboratorio Nacional Argonne. 
El Laboratorio Nacional Argonne siguió realizando muchos avances en teleoperación 
durante los siguientes 15 años. Para 1952, Goertz crea un sistema de teleoperación bilateral, es 
decir, con retroalimentación de fuerzas tanto del dispositivo maestro hacia el esclavo, como de 
manera opuesta. Aún así, debido a la construcción mecánica de dichos sistemas, permitían una 
separación fisica promedio de diez metros entre el operador y el área de trabajo [6]. 
Debido al problema de tener una reducida separación fisica, para mediados de la década 
de los 50's se desarrollaron manipuladores maestro-esclavo eléctricos, a los cuales también se les 
llamó servomanipuladores eléctricos. También evolucionó el sistema de observación de la tarea 
remota por medio de televisores en circuito cerrado. En estos últimos sistemas se intentaba 
acomodar al dispositivo maestro, de tal manera que sus articulaciones coincidieran con las del 
operador [8]. 
En la siguiente figura 2-4 se muestra un sistema de teleoperación con servomanipuladores 
desarrollado en el Laboratorio Nacional Argonne. 
20 
Figura 2-4. De arriba hacia abajo: Operador moviendo el dispositivo maestro eléctrico o 
servomanipulador, y monitoreando el dispositivo esclavo por medio de 
televisores de circuito cerrado; dispositivo esclavo eléctrico. Laboratorio 
Nacional Argonne. 
En suma, la teleoperación pennite a un operador en una localidad ejecutar una tarea en 
otra localidad, quizás a gran distancia [7]. Los sistemas de teleoperación tienen los siguientes 
componentes: 
• Una interfaz de operador, incorporando un dispositivo de entrada llamado maestro que el 
operador utiliza para controlar al sistema. 
• Un dispositivo de salida llamado esclavo que ejecuta las acciones solicitadas por el 
operador en un sitio remoto. 
• Un esquema de comunicación entre los dos sitios. 
21 
2.3 TELEOPERACIÓN EN ROBÓTICA. 
A inicios de la década de los 50's el desempeño de los sistemas de teleoperación era muy 
pobre en comparación a la eficiencia de trabajo de una persona, es decir, era entre diez y cien 
veces más lento que operar con herramientas directamente [6]. Por lo tanto, muchos objetivos en 
investigación y desarrollo de teleoperación se enfocaron en distintos caminos para mejorar la 
eficiencia de trabajo de las operaciones remotas. Estos objetivos incluyeron el desarrollo de 
mejores manipuladores, estaciones de control, algoritmos de control, etc. 
En 1954, George Devol, científico de Estados Unidos, diseñó el primer robot bajo la 
patente "transferencia de artículos programada". Dicho robot era un manipulador cuya operación 
podía ser programada, por lo tanto cambiada; es decir, el robot podía seguir una secuencia de 
pasos de movimientos determinados por las instrucciones de un programa [2]. Para 1961, George 
Devol y Joseph Engelberger, con la fundación de su empresa Unimation Inc en Estados Unidos, 
instalan el primer robot industrial comercial, llamado Unimate, en una fábrica automotriz [ 1]. 
Posteriormente, en 1969 Nils Nilsson, de la Universidad de Stanford, desarrolló el primer 
robot móvil, llamado SHAKEY, que incluía una cámara, sensores táctiles y comunicación vía 
radio a una computadora marca DEC [5]. Con la creación de nuevos robots móviles surge el 
concepto de robótica móvil, la cual era una nueva área de investigación que se encarga del 
control y el estudio de algoritmos para los cuatro subsistemas de un robot móvil autónomo o 
semiautónomo [ 4]. 
La forma de operar cualquier robot puede ser de dos maneras: autónoma o semiautónoma 
[4]. Un sistema autónomo es aquel diseñado para que el robot se opere por sí mismo sin control 
humano externo; es decir, el robot puede ser totalmente autónomo por haber sido programado 
previamente así. Un sistema semiautónomo es aquel en el cual es requerido un operador para 
mover al robot, pero también el robot puede tomar decisiones por su cuenta; es decir, el robot 
puede tener cierto grado de autonomía. 
22 
Durante la década de los 70's y hasta finales de la década los 80's, conforme se fueron 
desarrollando robots más sofisticados, fueron utilizados para teleoperación en aplicaciones 
submarinas, militares, del espacio, nucleares y de ambientes peligrosos [6]. Sin embargo, en los 
últimos años la teleoperación se generalizó al control remoto de robots y así ha incrementado su 
uso en aplicaciones como la medicina, la minería, la arqueología, el entretenimiento y la 
educación. 
De manera general, se puede decir que el control remoto de robots se divide en la 
teleoperación de robots y en la telerobótica; es decir, el control remoto de robots es un sistema 
semiautónomo que puede ser operado de dos formas: como un sistema teleoperado o como un 
sistema telerobótico [7]. El ténnino control no se refiere a la teoría de control analógico o digital 
de un robot, sino que se refiere a tener el control de la operación del robot. 
2.3.1 TELEOPERACIÓN DE ROBOTS. 
La teleoperación de robots es una tecnología que implica el uso de un sistema 
teleoperado, el cual se conforma de un operador que remotamente guía de forma directa al robot, 
causandocada incremento de movimiento de sus grados de libertad; es decir, el robot sigue los 
movimientos exactos solicitados por el operador siempre que sus capacidades fisicas se lo 
permitan [8]. 
Los robots teleoperados, también llamados teleoperadores, son parte de un sistema 
teleoperado en el cual el dispositivo remoto o robot es controlado momento a momento por un 
operador con funciones a muy bajo nivel [4]. 
La teleoperación de robots puede recibir datos del hardware de sensado del robot, por 
ejemplo la retroalimentación de fuerzas o la imagen de su cámara, pero realiza las acciones de 
movimiento del robot dictadas por el operador sin considerar algoritmos que procesen esos datos. 
Este tipo de sistema tiene el más bajo grado de autonomía de un sistema semiautónomo, es decir 
que el operador toma todas las decisiones. 
En la figura 2-5 se muestra un ejemplo de los primeros sistemas de teleoperación de 
23 
robots que aprovechaba el uso de la electrónica y las computadoras. Este sistema fue diseñado 
por A. K. Bejczy y J. K. Salisbury, del Laboratorio de Propulsión de Jets o JPL (Jet Propulsion 
Laboratory) de la NASA, a finales de la década de los 70's [8]. Ellos pennitieron que los 
dispositivos maestro y esclavo ya no necesitaran ser cinemáticamente idénticos, ni que fueran 
semejantes pero a distinta escala. El operador movía con una mano el dispositivo maestro, el 
cual era un mecanismo de 6 grados de libertad, entonces la computadora realizaba las 
transformaciones de coordenadas necesarias para mover el dispositivo esclavo, el cual era un 
robot industrial PUMA 560 con 6 grados de libertad y sensores de fuerza. Finalmente, en base a 
la retroalimentación de fuerzas y al monitoreo del robot mediante varias cámaras, entonces, el 
operador tomaba las decisiones sobre los movimientos que seguirían. 
Figura 2-5. Sistema teleoperado de un robot PUMA 560. JPL. 
2.3.2 TELEROBÓTICA. 
La telerobótica es una tecnología que implica el uso de un sistema telerobótico, el cual 
realiza una comunicación a un alto nivel de abstracción en el cual el operador comunica las metas 
y el robot sintetiza una trayectoria o plan para alcanzar la meta [8]. 
En un sistema telerobótico, los comandos de bajo nivel ejecutados por el operador son 
interpretados o filtrados por algoritmos de software, que consideran los datos obtenidos de los 
24 
sensores localizados en el robot, para limitar o interpretar las acciones del operador [ 4]. 
La telerobótica soporta la interacción de información proveniente del sensado, de la 
planeación de rutas, o de la teoría de control aplicada para que el robot pueda tornar decisiones en 
algún momento durante el cual el operador está realizando el control remoto del mismo. 
Dependiendo de cuánta de esa información se considere para la torna de decisiones será el grado 
de autonomía variable que se tendrá en este sistema semiautónomo. 
En la figura 2-6 se muestra un diagrama ejemplificando una aplicación de la telerobótica 
en la medicina; en dicha aplicación al realizar una cirugía telerobótica surge el nuevo término de 
telecirugía que se refiere a la realización de una cirugía remota que puede utilizar varios 
conceptos y dispositivos de realidad virtual [9]. En la telecirugía un cirujano opera locahnente un 
modelo del paciente virtual, entonces sus acciones son transmitidas a un asistente robot que opera 
al paciente en una localidad remota. El primer experimento en telecirugía fue realizado entre el 
JPL, localizado en la ciudad de Pasadena California en Estados Unidos, y el Laboratorio de 
Telerobótica del Politécnico de Milán, localizado en la ciudad de Milán en Italia [1 O]. En este 
experimento se realizó una laparoscopía de un cerdo y la transmisión fue hecha a través de dos 
satélites. 
VIRTUAL INTERFACE 
ENVIRONMENT 
TACTILE 
INPUT/FEEDBACK 
WINDOWS 
REIIOTE 
IIANIPULATION 
Figura 2-6. Diagrama de una telecirugía. 
HEAO-COUPLED 
25 
2.4 CONTROL REMOTO DE ROBOTS. 
Para tener un meJor desempeño y un mayor control en un sistema teleoperado o 
telerobótico se debe tener un medio de comunicación remoto eficiente entre el operador y el 
robot, también se debe mantener un monitoreo remoto de las tareas que ejecuta el robot por 
medio de diversas cámaras de video, además de incluir interfaces gráficas simples que faciliten el 
control de los robots. 
2.4.1 COMUNICACIÓN REMOTA. 
En los primeros sistemas de teleoperación, la distancia entre el operador y el sitio remoto 
estaba restringida a unos pocos metros por la necesidad del operador de ver y monitorear 
directamente las acciones que se llevaban acabo en el ambiente remoto. El medio fisico para la 
comunicación eran sistemas mecánicos. A estos sistemas se les llamó teleoperación de corto 
rango. Debido a que había una separación muy pequeña entre los 2 dispositivos maestro-esclavo, 
entonces no existía un retraso en las comunicaciones. 
Cuando los sistemas de teleoperación se volvieron eléctricos, se podía incrementar en 
muchos metros la separación entre el operador y el ambiente remoto. El monitoreo se realizaba 
por medio de televisores de circuito cerrado. A estos sistemas se les llamó teleoperación de 
mediano rango y el retraso en la comunicación no era perceptible [7]. 
Actuahnente, el control remoto de robots ha sido implementado en muchas aplicaciones 
donde el robot requiere ser operado a grandes distancias. Por lo tanto, ahora la comunicación se 
realiza a través de una red alámbrica local, de una red inalámbrica, vía Internet, vía satélite en la 
Tierra o a través del espacio [7]. A estos sistemas se les llama teleoperación de largo rango y en 
ellos ya existen retrasos de tiempo perceptibles entre los movimientos que solicita el operador y 
los movimientos ejecutados en el robot, por lo tanto son necesarios algoritmos de sincronización 
entre los dispositivos maestro- esclavo. 
26 
Uno de los ejemplos más recientes de teleoperación vía satélite a través del espacio es el 
telerobot móvil Sojoumer, que se muestra en la figura 2-7, el cual fue utilizado por la NASA en 
el proyecto Pathfinder para exploración del planeta Marte en 1997 [4]. Este robot fue operado 
como un sistema telerobótico seleccionando puntos para sus rutas desde el centro de control en la 
Tierra, por lo tanto este robot tuvo un alto grado de autonomía debido a que los retrasos de la 
comurúcación no eran factibles para un continuo control o teleoperación del robot por parte de 
los operadores desde la Tierra. 
Figura 2-7. Telerobot Sojoumer de la NASA. 
2.4.2 INTERFACES GRÁFICAS PARA EL CONTROL DE ROBOTS. 
El dispositivo maestro en teleoperación también ha evolucionado; en sus principios era un 
brazo mecánico o eléctrico, después fue una caja con botones y switches (llamado en inglés 
teach pendant) que mapeaba directamente cada botón a cada movirrúento del robot, 
posteriormente se utilizaron joysticks, dispositivos hápticos, etc. 
Recientemente, con los avances en el área de gráficas por computadora, para realizar el 
control remoto de uno o varios robots se han utilizado dos tipos de sistemas avanzados: las 
Interfaces de Usuario Gráficas o GU/'s (Graphical User Interfaces) controladas por 
computadora, y el reconocirrúento de posiciones de la mano del operador por medio de visión por 
computadora [7]. Al utilizar GUI's que sustituyan al dispositivo maestro que teleopera al robot se 
tiene una implementación más simple y más barata. 
27 
Un ejemplo del uso de este tipo de interfaces de usuario gráficas es el que realizó B. 
Hannaford, en el JPL en 1991, para permitir a un operador seleccionar y controlar en distintos 
modos cada uno de los seis grados de libertad de un telerobot [8]. Esta GUI se muestra en la 
figura 2-8. 
·~ 
.''I 
"-" 
•• 
"~ 
.••. 
m::: 
---,;f,u;. •'\•l•;J 
, H)u,:. 
,1•:;Q(• 
,•f•III• 
,'.~~ ,,.)(,.,1 ,lrl'(.t, 
i~l U'.il -·· 
§1 IB! .. 
• li] [fil .. ' ,.,.. !. 
H,.,11 
Úpil( ·1: 
• • • rE:iC;.:J: 
~ :~.' . 
·.·.·,.' ... ] ~ ... . 
'--~ ·• 
~--- fltl .•• ""'•; -
• , ... ,, . .; - n1 
.. 1tN..r, 
•':•:•• ,¡._..¡_:,,(: 1------------
(ro:::) (-, .. 
Figura 2-8. GUI utilizada para un telerobot en el JPL. 
De la misma manera que para el dispositivo maestro, el dispositivo esclavo también puede 
ser reemplazado por una simulación gráfica tridimensional del robot o modelo virtual del mismo 
que sea muy parecido al robot real. Este avance en las gráficas por computadora ayuda en 
aplicaciones de educación y enseñanza, en los cuales no se tienen siempre disponibles todos los 
robots reales para aprender a utilizarlos. Así, se puede enseñar el funcionamiento de muchos 
tipos de robots por medio de sistemas de simulación que los incluyan virtualmente. 
Paul S. Schenker del JPL menciona que en los últimos aftos las GUI's se han establecido 
como un rol importante en el diseño de los sistemas robóticos donde el usuario tiene que 
interactuar con un robot a través de la computadora, logrando reducir la curva de aprendizaje del 
operador [11]. El manejo de íconos y menús en las GUI's ayuda a representar estructuras 
complejas y relaciones entre objetos y eventos. Además, es importante que una interfaz de 
gráficas 3D sirva como herramienta de simulación de tareas de los robots y como un medio de 
28 
interacción del operador en línea con los robots y su ambiente. En general, es de gran interés el 
diseño interactivo 3D y la animación en tiempo real de robots en VE's como parte de una GUI en 
sistemas robóticos. 
2.4.3 MONITOREO REMOTO DE ROBOTS. 
El monitoreo en el último tipo de sistemas de teleoperación de largo rango se realiza por 
medio de cámaras de video que observan el ambiente de trabajo del robot, o con cámaras 
montadas sobre los robots para ver su ambiente desde su punto de vista. 
En la década de los 90's fue muy común el control de sistemas de cámaras remotas vía 
Internet, desplegándose las imágenes de video en una página de web. Las primeras 
implementaciones de esto mostraban una cafetería de la Universidad de Cambridge y un tanque 
con peces de la empresa Netscape [7]. Posteriormente, estos sistemas se implementaron en 
aplicaciones de control remoto de robots. Pero lo común en la mayoría de estos trabajos era 
capturar una nueva imagen de la cámara cada detenninado tiempo y enviarla a un servidor de 
web; para esto utilizan un formato de imagen pequeña, por ejemplo JPEG. Esto reduce el monto 
de información transmitida al enviar imágenes a través de Internet. Sin embargo, se pierde 
continuidad en el video, y quizás esto podría afectar la teleoperación de los robots. 
En algunos otros sistemas de teleoperación se despliega el video de una manera continua 
y sin retrasos por medio de formatos específicos para compresión y transmisión de video, debido 
a que si se transmitiera el video sin compresión sería muy lento el despliegue. A la transferencia 
remota de flujo de datos con contenido multimedios (audio y/o video) comprimido se le llama 
streaming media, y están basados en el envío de streams o flujos de detenninado tamaño de los 
datos teniendo un indicativo de tiempo [ 12]. La velocidad de transmisión de este tipo de video 
puede tener un desempeño aceptable en el limitado ancho de banda de Internet, pero podría dar 
un desempeño mucho mejor ( despliegue de video en tiempo real) a través de un ancho de banda 
más amplio o dedicado a esa tarea solamente, por ejemplo en redes de área local o en Internet 2. 
En la figura 2-9 se muestra un sistema telerobótico con un mini-telerobot para manejo de 
cristales de protemas, desarrollado en 1997 por la Universidad de Washington, la Universidad de 
29 
Alabama y la compañía del espacio y de la defensa Boeing [8]. Este sistema fue desarrollado 
para realizar experimentos remotos en la Estación Espacial Internacional (EEI); su monitoreo se 
controla a través de íconos de una interfaz de control virtual que permite observar lo que capturan 
las distintas cámaras que observan el área de trabajo del experimento, así como las cámaras que 
están montadas en el robot. En ese proyecto se utiliza compresión de video para la transmisión y 
despliegue. 
\. L -
Figura 2-9. De izquierda a derecha: rnini-telerobot para manejo de cristales de proteínas para la 
EEI, y el monitoreo del mismo con múltiples cámaras. 
Debido a que el streaming media maneja contenido multimedios de audio y/o video, por 
lo tanto se le llama streaming video a la transferencia remota de flujo de datos de video 
comprimido. Las tres formas más comunes para realizar transmisión de ese video comprimido 
por red mediante el manejo de streaming media son: 
• El uso de software comercial como lo son el RealOnePlayer, el Helix Producer Plus y el 
Helix Universal Server de la compañía Real Networks que se describe más adelante en el 
2.4.2.1. 
• El uso de servidores de web dedicados que transmiten streaming video y se pueden 
accesar desde una página web. Un ejemplo de estos es el programa camserv, para el 
sistema operativo Linux, descrito en el siguiente subpunto 2.4.2.2. 
• El uso de librerías de programación de compresión y transmisión de streaming video que 
permitan programar una aplicación interactiva en algún lenguaje de programación. Por 
ejemplo las librerías JMF que se explican a continuación en el 2.4.2.3, utilizadas desde el 
lenguaje de programación orientado a objetos llamado Java de la empresa Sun 
30 
Microsystems [13] que fue escogido como el lenguaje para desarrollar la aplicación de 
este trabajo. 
2.4.3.1 Productos de RealNetworks. 
RealNetworks es una empresa con varios productos enfocados en el streaming media entre 
los cuales se encuentran RealOne Player, Helix Producer Plus y Helix Universal Server [14]. 
Los productos de RealNetworks están más enfocados para web; algunos productos para 
transmisión de video y/o audio en Internet son utilizados por varias empresas radiodifusoras, de 
televisión y otras, y otros productos, más utilizados por usuarios comunes, son para recepción de 
esos datos en el formato de archivo llamado RealMedia que incluye a los formatos llamados 
RealAudio y RealVideo. 
El RealOne Player, llamado RealPlayer en versiones anteriores, es el producto para 
recepción de streaming, despliegue y reproducción de audio y video. Para la captura, edición y 
codificación de formatos RealMedia se utiliza el producto Helix Producer Plus, antes llamado 
Real Producer. El producto Helix Universal Server es el servidor de streaming que envía los 
streams del archivo RealMedia codificado a las computadoras clientes que lo solicitan. 
Algunos trabajos para teleoperación de robots han optado por utilizar esta opción. Pero, 
un problema de utilizar productos comerciales es que son programas sin código abierto, con los 
cuales no se pueden programar módulos extras a lo que el producto ofrece, además de que el 
monitoreo por video estaría por separado de una aplicación que fue desarrollada con algún 
lenguaje de programación. Otro problema es que son productos shareware que tienen un periodo 
de evaluación de unos pocos días y después deben ser comprados por varios miles de dólares. 
2.4.3.2 Camsenr. 
Camserv es un programa libre, de código abierto para Linux, que permite hacer streaming 
video a través del web [15]. La conversión del video a streams se realiza al ejecutarse el servidor 
de streaming camserv, el cual toma un puerto de red para la transferencia. Camserv, en su última 
31 
versión 0.5.1-1, toma como entrada el video capturado desde los dispositivos de video que 
soporta, los cuales son compatibles con el driver Video4Linux que funciona con las cámaras de 
video comunes compatibles a la WebCam (cámara para web de la marca Creative Labs) y con las 
tarjetas de entrada de video o frame grabbers de la empresa Hauppage. Los usuarios pueden 
observar el video al conectarse a una página de web del servidor donde se está corriendo 
camserv.En la figura 2-1 O se observa desde el navegador Netscape el video transmitido por 
camserv de un kit de un robot manipulador desde una WebCam. 
:;;;; Netscape: 
Fiie Edlt Vlew Go Communlcator 
rn if. .;¡. '3 · .. · , ili · ,t~ ~ 
j Back Fo rward Reload . ;, Ho~e ·, Search Netscape 
ill ~ ... Bookmarks ~ Location: ~t~: //192.1.1. 7/p~eba. hbnl 
Figura 2-1 O. Ejemplo de transmisión de streaming video con camserv. 
Un problema de utilizar un servidor de streaming video como camserv es que el 
monitoreo de las acciones de los robots estaría separado de la aplicación a desarrollar, entonces 
no se tendría la posibilidad de realizar procesamiento de imágenes o integrar un módulo de visión 
a la aplicación; además, debido a que camserv transmite video a través del esquema cliente-
servidor rompería con el esquema distribuido que se utilizará en la aplicación a desarrollar en este 
trabajo. 
2.4.3.3 JMF. 
Las librerías de programación llamadas Ambiente de Trabajo de Multimedios en Java o 
32 
JMF (Java Media Framework) son una Interfaz de Programación de Aplicaciones o API 
(Application Programming Interface). Las librerías de programación de JMF sirven para definir 
ambientes que incluyen: el despliegue, la captura, la conferencia y la transferencia de streaming 
media, para ser incorporados en applets y aplicaciones standalone desarrolladas en Java. La 
última versión de JMF (2.1.1) es multiplataforma y portable al igual que Java [ 12] [ 16]. 
JMF soporta múltiples formatos de archivos de multimedios como lo son el video digital, 
MIDI, algoritmos tradicionales de compresión de audio y video (streaming audio y streaming 
video), etc. Los formatos de archivos que soporta son: AIFF, A VI, Flash, GSM, HotMedia, 
MIDI, MPEG-1 Video, MP2, MP3, QuickTime, Sun Audio, Wave; además de soportar varios 
dispositivos comunes de captura de audio y video mediante clases de Java en JMF, en una 
aplicación llamada jmfinit, para buscar dichos dispositivos y registrarlos en un archivo 
Umf properties) junto con las características de captura del mismo. 
En la aplicación de este trabajo, para el desarrollo del monitoreo por medio de video de 
los robots reales teleoperados, se utilizará JMF debido a que sus librerías están hechas en Java y 
no tienen costo. En la figura 2-11 se muestra un demo que incluye el JMF 2.1.1, llamado 
JMStudio, el cual es una aplicación para abrir archivos de video, capturar, desplegar y transmitir 
video en tiempo real. 
Fig~ra 2-11. JMStudio de JMF 2.1.1 capturando video de una WebCam. 
33 
3 AMBIENTES VIRTUALES EN RED. 
Con la evolución de las gráficas por computadora y la invención de la realidad virtual se 
definieron los conceptos de ambientes virtuales como simulaciones gráficas avanzadas que 
involucraban varias tecnologías. Posteriormente, con los avances en telecomunicaciones, el 
concepto se extendió al de ambientes virtuales en red. Actualmente, estos ambientes virtuales en 
red se han vuelto arquitecturas que definen estándares que se implementan para realizar sistemas 
colaborativos de teleoperación de robots en red. 
Este trabajo se basó en una arquitectura de ambientes virtuales en red para implementar el 
sistema de teleoperación de robots. Se explican a continuación los antecedentes y las 
definiciones de la realidad virtual y los ambientes virtuales en red que son útiles para el 
entendimiento de los próximos capítulos. 
3.1 REALIDAD VIRTUAL. 
Grigore Burdea, de la Universidad Estatal de New Jersey en Estados Unidos, define a la 
Realidad Virtual o VR (Virtual Reality) de la siguiente manera: "La Realidad Virtual es una 
interfaz de usuario de alto nivel que involucra simulación e interacciones en tiempo real a través 
de múltiples canales sensoriales. Estas modalidades sensoriales son visual, auditiva, táctil, 
34 
olfativa y gustativa" [9]. 
La VR es una simulación en la cual las gráficas por computadora son utilizadas para crear 
un mundo sintético que se vea realista, y que sea interactivo, es decir que no sea estático y 
responda a entradas o comandos del usuario en tiempo real o de manera inmediata [9]. La 
interactividad contribuye al sentimiento de inmersión del usuario de ser parte de la acción en la 
pantalla. La interacción, la inmersión y la imaginación son las características fundamentales de 
la VR. El usuario puede ver y manipular los objetos gráficos en la pantalla, pero también puede 
tocarlos o sentirlos por medio de dispositivos que se consideran herramientas en la VR. 
Las posibles herramientas a utilizar en VR son: sensores de posición tridimensional o 30, 
que pueden ser magnéticos, ultrasónicos, etc.; guantes de sensado, que pueden ser ópticos, 
mecánicos, eléctricos, etc.; dispositivos de visión estéreo, que pueden ser dispositivos de 
despliegue montados en la cabeza o HMD (Head Mounted Displays), lentes estéreo, pantallas de 
proyección estéreo, etc.; generadores de sonido, etc [9]. Sin embargo, actualmente la VR puede 
ser realizada sin necesidad de tener un HMD, es decir, se puede utilizar la pantalla de una 
estación de trabajo gráfica, o incluso la pantalla de cualquier Computadora Personal o PC 
(Personal Computer) que tenga un procesador suficientemente rápido y una buena tarjeta de 
video; de la misma manera, los guantes de sensado pueden ser reemplazados por dispositivos más 
simples como un joystick, o incluso el uso del dispositivo apuntador o mouse en una GUI. 
3.2 AMBIENTES VIRTUALES. 
Los Ambientes Reales o RE's (Real Environments) son las representaciones de un mundo 
o región de la vida cotidiana, de los cuales no se tiene un modelo geométrico computacional pero 
se puede capturar dentro de la computadora. Los RE's abarcan los datos reales, en 20 o 30, de 
cualquier captura de imagen fotográfica, imagen infrarroja, video, radar, rayos-X, ultrasonido, 
escaneo láser, etc. En cambio, los Ambientes Virtuales o VE's (Virtual Environments) son 
necesariamente la representación del modelado geométrico computacional del ambiente real, al 
cual se le aplica el rendering (proceso de las gráficas por computadora en el cual se aplican un 
35 
conjunto de operaciones para proyectar una vista de un objeto o una escena 3D sobre una 
superficie bidimensional o 2D). Los RE's y los VE's existen como entidades separadas [17]. El 
dominio de la Realidad Virtual se encuentra cerca de los VE's. Algunos autores también le 
llaman mundos reales a los ambientes reales, y mundos virtuales a los ambientes virtuales. 
En 1993 otra definición más específica de un VE fue hecha por Roy S. Kalawsky, de la 
Universidad de Loughborough en Inglaterra, en la cual lo define como "experiencias sensoriales 
sintéticas que comunican componentes fisicos y abstractos a un operador o participante. La 
experiencia sensorial sintética es generada por un sistema computacional que presenta 
interfaces más avanzadas y que en un futuro será indistinguible del mundo fisico real" [18]. 
Kalawsky incorpora el participante como parte importante del VE. 
Hasta mediados de la década de los 80's la mayoría de los VE's eran sistemas para un 
simple usuario, que al no ser aplicaciones en red entonces no soportaban colaboración entre un 
grupo de usuarios; por lo tanto, para tener VE's en sistemas gráficos avanzados y colaborativos se 
desarrollaron VE's basados en red [18]. 
3.2.1 AMBIENTES VIRTUALES PARA ROBÓTICA. 
En la robótica, el desarrollo de sistemas de simulación gráficos o ambientes virtuales se 
aplicó primero en celdas de manufactura para reducir el tiempo que se tarda la programación de 
robots fuera de línea [9]. También las herramientas de realidad virtual y el desarrollo de 
ambientes virtuales fueron utilizados para la teleoperación de robots cuando maduró la 
tecnología. 
A finales de la década de los 80's e inicio de los 90's, Sumumu Tachi, de la Universidad 
de Tokio en Japón, realizó la primera aplicación de los ambientes virtuales en teleoperación de 
robots. Paraesto, definió el nuevo concepto de telepresencia o teleexistencia que es la 
proyección de un usuario a un lugar distante por utilizar un robot remoto, computadoras e 
interfaces hombre-máquina [ 17]. La teleexistencia fue un concepto que ejemplificaba la 
aplicación actual de la realidad virtual en la teleoperación de robots. 
36 
El proyecto de teleexistencia de Tachi, (ver figura 3-1 ), incluía a un dispositivo mecánico 
esclavo que ajustaba con las articulaciones del operador, con el cual el operador teleoperaba a un 
brazo de robot llamado Telesar (Teleexistence Surrogate Anthropomorphic Robot). Mediante el 
movimiento del HMD en su cabeza controlaba la orientación del sistema de cámaras estéreo que 
tenía el robot y veía en el mismo HMD lo que observaban las cámaras [8]. Después incluyó en el 
concepto de teleexistencia la proyección en un ambiente virtual generado por computadora [17]. 
Al sistema de Tachi se le incluyó una simulación gráfica del robot Telesar para hacer más fácil la 
teleoperación. 
Figura 3-1. Telepresencia. De izquierda a derecha y de arriba hacia abajo: operador 
utilizando el dispositivo esclavo y el HMD, el robot Telesar con sistema de 
cámaras estéreo, y el VE con el robot virtual. 
En los últimos años se han desarrollado otros proyectos de teleoperación de robots por 
internet en los cuales se controla el robot real al mover el robot virtual dentro del ambiente virtual 
mostrado en una página web. 
37 
3.3 AMBIENTES VIRTUALES EN RED. 
Un Ambiente Virtual en Red o net-VE (Networked Virtual Environment) es un sistema 
que permite a múltiples usuarios interactuar en tiempo real, no importando que varios usuarios 
estén localizados en distintas partes del mundo [ 19]. Comúnmente, cada usuario accesa su propia 
computadora, utilizando una interfaz de usuario con el contenido del ambiente virtual. Estos 
ambientes proveen a los usuarios de un sentido de realismo por incorporar gráficas realistas 3D y 
sonido estereo, para crear una experiencia inmersiva. 
Para 1995, N. I. Durlach y A. S. Mavor, del MIT (Massachussets Institute ofTechnology) 
en Estados Unidos, definieron a los net-VE's como sistemas que penniten a múltiples usuarios 
geográficamente distantes interactuar en un ambiente virtual común [ 18]. 
Los net-VE's son cada vez más utilizados para entrenamiento de equipos militares e 
industriales, diseño colaborativo, ingeniería, y en juegos multiusuarios [19]. La investigación y 
desarrollo de net-VE's está aumentando en las universidades. En un futuro, los net-VE's podrían 
estar en aplicaciones comerciales incluyendo compra virtual en tiendas, conferencias en linea, 
soporte personalizado remoto, y aprendizaje a distancia. 
Los net-VE's incluyen la integración de varias áreas como lo son: el diseño e 
implementación de protocolos de red, los sistemas paralelos y distribuidos, las gráficas por 
computadora, los sistemas multihilos o multithreading ( ejecución de varios procesos, llamados 
hilos o threads, al mismo tiempo), el desarrollo de bases de datos, y el diseño de GUI's [19]. Sin 
embargo, los net-VE's tienen aún problemas para mantener consistente la información 
distribuida, para garantizar la interactividad en tiempo real, y para competir los recursos de ancho 
de banda de red, de procesamiento y de rendering. Un net-VE se distingue por las siguientes 5 
características: 
l. Un Sentido Compartido de Espacio. Todos los participantes tienen la sensación de estar 
localizados en el mismo lugar, por ejemplo en el mismo cuarto, construcción, ó terreno. 
Aquel lugar compartido representa una localidad común dentro de la cual pueden llevarse 
acabo otras interacciones. El lugar puede ser un modelo de algo real ó ficticio. El 
38 
espacio compartido debe presentar las mismas características a todos los participantes. 
2. Un Sentido Compartido de Presencia. Cuando se entra al espacio compartido, cada 
participante puede ser identificado por una representación gráfica de él mismo en el 
ambiente virtual (llamado avatar), que puede tener forma humana o no. 
3. Un Sentido Compartido de Tiempo. Los participantes deben poder ver el comportamiento 
de otros participantes en el momento en que está ocurriendo. 
4. Una Forma de Comunicarse. Debe existir un medio de comunicación entre los 
participantes, sea hablado, escrito o por gestos de su avatar. 
5. Una Forma de Compartir. La verdadera importancia de los net-VE's radica en la 
habilidad de los usuarios de interactuar con el ambiente virtual y con otros participantes. 
3.4 ARQUITECTURAS DE NET-VE'S. 
En su origen el desarrollo de la VR distribuida en net-VE's 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 permita entre otras cosas la reutilización, compatibilidad y portabilidad 
de componentes. 
Para este trabajo se utilizó una arquitectura orientada a objetos reciente para realizar VR 
distribuida en net-VE's, llamada OODVR, la cual fue diseñada en base a dos arquitecturas, 
llamadas DIS y HLA, que a pesar de que fueron creadas hace varios años siguen utilizándose y 
estando vigentes en cuanto a actualizaciones, además de que son las dos arquitecturas bases para 
otras de las últimas arquitecturas. A continuación se describirán estas tres arquitecturas junto con 
otras dos arquitecturas: la prime_r arquitectura de net-VE's, llamada SIMNET, y otra arquitectura 
más reciente, llamada NPSNET que en su última versión tiene capacidades similares a muchas 
otras arquitecturas existentes actualmente, las cuales ya no se mencionan debido a que no 
muestran mejores características que ésta. 
39 
3.4.1 SIMNET. 
En I 983, el Departamento de Defensa o DoD (Department of Defense) de los Estados 
Unidos inició el desarrollo del primer net-VE llamado SIMNET que se terminó en I 990, este 
sistema fue un ambiente virtual distribuido de propósitos militares para el entrenamiento de 
pequeñas unidades del ejercito como lo son tanques, helicópteros y puestos de comando [ 19]. 
La arquitectura SIMNET fue implementada sólo en estaciones de trabajo y definía los 
siguientes tres componentes básicos: 
I. Una arquitectura objeto-evento. Modelan el mundo como una colección de objetos cuyas 
interacciones con otros objetos son una serie de eventos. Los objetos son los vehículos y 
armas que interactúan en la red; es decir, no son objetos de programación orientada a 
objetos, sino simples elementos en el VE. Los eventos son los mensajes enviados en la 
red indicando el cambio en el estado del objeto o del mundo. Por ejemplo un solo objeto 
es un tanque manejado por una sola computadora y un evento es el mensaje transmitido 
de que el tanque giró a la derecha. 
2. Una noción de nodos de simulación autónomos. Significa que cada nodo (participante en 
una computadora) es responsable de: uno o más objetos en el VE, de colocar paquetes en 
la red representando el estado actual (mensaje cada cinco segundos para avisar a los otros 
participantes si un objeto en particular sigue en el sistema) y los cambios de estado 
(movimientos) de su o sus objetos, y de recibir los paquetes de otros participantes con los 
estados de sus objetos para actualizar su copia de los objetos (llamados fantasmas) en su 
VE. Esto quiere decir que existía un procesamiento distribuido de las tareas en la 
simulación compartida, teniendo una arquitectura distribuida y no un esquema cliente-
servidor ya que no hacía falta la necesidad de un servidor central debido a que se repartía 
el trabajo en todos los nodos. 
3. Un conjunto de algoritmos de predicción y convergencia llamados dead reckoning. Estos 
algoritmos son para reducir el tráfico de paquetes en la red, es decir que no se van a 
enviar paquetes de red en todo momento por cada objeto sino que solo se enviarán si ha 
cambiadosu estado. Un algoritmo de predicción pennite predecir el movimiento de las 
copias fantasmas de los objetos de un nodo dependiendo de los últimos datos reportados 
del estado del objeto original en cuanto a dirección, velocidad y posición, enviando a la 
red un paquete con el cambio de estado del objeto cada cierto grado de umbral o tiempo 
40 
definido. Si llega tarde el paquete o sucede un movimiento de un objeto entre un paquete 
y otro, entonces se tendrá que utilizar un algoritmo de convergencia para que a partir de la 
última dirección y velocidad del objeto original, se modifique la dirección y velocidad del 
objeto fantasma y así vaya en la misma posición al mismo tiempo que el original. 
Los mensajes o eventos enviados por la red por cada objeto o elemento en SIMNET eran 
muy grandes. Esos mensajes incluían tanto datos estáticos ( datos que nunca cambiaban) como 
dinámicos ( datos que cambiaban a cada segundo), los datos del mensaje eran: identificación del 
vehículo por nombre y de la computadora que lo controla, tipo del vehículo, apariencia del 
objeto, localización en el VE, matriz de transfonnación para sus movimientos, capacidades del 
objeto, velocidad normal, vector de velocidad del vehículo y orientación de sus annas, además de 
otros valores que servían como control de tiempo y de características específicas del objeto. Para 
enviar esos mensajes la implementación de SIMNET primero utilizó el protocolo de red llamado 
UDP y al final cambió por el protocolo Multicast, protocolos que serán explicados 
posteriormente en otro capítulo. 
3.4.2 DIS. 
La arquitectura de Simulación Interactiva Distribuida o DIS (Distributed Interactive 
Simulation) es una generalización y extensión de SIMNET, también desarrollada por el DoD en 
1993, con un nuevo protocolo que se convirtió en el estándar 1278 de la IEEE [19]. 
La arquitectura de DIS incluye los nusmos tres componentes básicos de SIMNET 
mencionados en el punto anterior 3.4.1, es decir: una arquitectura objeto-evento (no es lo mismo 
que orientada a objetos), una noción de nodos de simulación autónomos, y un conjunto de 
algoritmos de predicción y convergencia. Pero, la arquitectura de DIS tiene diferencias con 
respecto a SIMNET y afl.ade nuevas características, todas ellas se describen a continuación: 
1. DIS trata como entidades el concepto de objetos que utiliza SIMNET. 
2. DIS tiene soporte para varios tipos de vehículos terrestres y acuáticos, y no sólo para los 
pocos vehículos definidos que soportaba SIMNET. 
3. DIS puede ser ejecutado en más plataformas de cómputo que SIMNET, es decir, DIS 
soporta distintas estaciones de trabajo y PC's. 
41 
4. DIS pennite dentro del VE a tres distintos tipos de participantes: 
• Un participante puede ser controlado por un usuario. 
• El participante puede ser controlado por una computadora. 
• Un sistema de armamento puede controlar al participante. 
5. En DIS se transmiten otro tipo de mensajes por red llamados Unidades de Protocolo de 
Datos o PDU's (Protocol Data Unit), los cuales son 27 diferentes y constituyen el estándar 
de la IEEE. Los 4 principales PDU's para interactuar con el ambiente virtual son: el del 
estado de la entidad, el de disparo, el de detonación y el de colisión. El PDU más 
utilizado es el del estado de la entidad y contiene: la versión del protocolo, el número de 
identificación del ejercicio de simulación, el tipo de PDU, la familia del protocolo, el 
tiempo, la identificación de la entidad por aplicación y computadora, el tipo de entidad, la 
velocidad lineal, la localización, la orientación, los parámetros de dead reckoning, las 
capacidades de esa entidad y otros parámetros de control. Existe un recipiente en cada 
nodo de DIS que recibe el PDU, lo procesa y actualiza lo necesario para que se despliegue 
el cambio. 
6. A diferencia de SIMNET, DIS utiliza otro tipo de algoritmos de predicción y 
convergencia que manejan nuevos parámetros definidos en el PDU, por ejemplo la 
aceleración lineal, la velocidad angular, etc. 
Con la tercera y cuarta diferencia se pueden tener en DIS simulaciones a mayor escala con 
más participantes en una mayor variedad de computadoras. La arquitectura de DIS sigue 
enfocada para aplicaciones militares al igual que en SIMNET, esto se observa en los PDU's 
mencionados en la quinta diferencia los cuales son muy orientados a acciones de vehículos de 
guerra. 
El formato del paquete de un PDU no solo es un estándar de la IEEE sino que es un 
estándar para muchas otras arquitecturas que se basaron en los paquetes de DIS. Existe un 
problema con DIS, al igual que sucedía en SIMNET: aunque existen mecanismos en DIS para 
enviar PDU's solo cuando es necesario, sus mensajes enviados por red son más grandes que en 
SIMNET y siguen teniendo información estática que no se utiliza y debería ser enviada sólo una 
vez. Las primeras implementaciones de DIS enviaban sus PDU's utilizando el protocolo de red 
llamado IP Broadcasting y posteriormente se implementó utilizando el protocolo Multicast 
42 
(protocolos que se explicarán en un capítulo posterior). 
El DoD ocultó muchos detalles de la implementación de DIS, por lo tanto los 
investigadores subsecuentes en el área tuvieron que reinventar varias cosas en sus arquitecturas 
basadas en DIS. En 1997, la Escuela de Posgrado Naval o NPS (Naval Postgraduate School) 
desarrolló DIS-Java-VRML que es un net-VE para web basado en el estándar de DIS. 
En DIS-Java-VRML se realiza el despliegue gráfico utilizando el Lenguaje de Modelado 
de Realidad Virtual o VRML (Virtual Reality Modeling Language) versión 2.0 del consorcio 
llamado Web3D, y se hace el envío y recepción de PDU's por la red a través de threads en Java. 
Actualmente, el consorcio Web3D se hace cargo de distribuir gratuitamente y actualizar DIS-
Java-VRML. En la figura 3-2 se observa un ejemplo de esta implementación de DIS con un 
helicóptero del ejército volando sobre un terreno. 
Figura 3-2. Ejemplo de un helicóptero en un VE en DIS-Java-VRML. 
3.4.3 HLA. 
La Arquitectura de Alto Nivel o HLA (High Level Architecture) fue definida en 1996 por 
la Oficina de Simulación y Modelado de la Defensa del DoD y tenninada en 1999 para sustituir 
el uso de DIS y realizar simulaciones con mayor interoperabilidad y reutilización de sus partes 
[19]. Al igual que en DIS, con HLA también se definió un estándar de la IEEE en el año 2000, el 
estándar número 1516. 
HLA comparte muchas características de DIS y a su vez de SIMNET. En HLA al igual 
43 
que en SIMNET se menciona el concepto de objetos y no entidades como en DIS; sin embargo, 
la arquitectura HLA sigue siendo una arquitectura no orientada a objetos. Las diferencias entre 
HLA y DIS son las siguientes: 
1. HLA separa las funciones de simulación y las de comunicación, debido a que la mayor 
carga del desarrollo de una simulación distribuida se centra en aspectos de comunicación, 
en vez de en comportamientos específicos de la simulación. 
2. HLA permite incorporar nuevos objetos de .interacción dinámicamente sin la necesidad de 
una reconstrucción completa del sistema como sucedía en DIS. 
3. HLA llama federaciones a los participantes de DIS. Cada federación representa a un 
conjunto de objetos, cada objeto teniendo un conjunto de atributos y la capacidad de 
iniciar y recibir eventos. 
4. En HLA se realizó una implementación del protocolo de Infraestructura en Tiempo Real 
o RTI (Real-Time Infraestructure); en ella las federaciones registran sus objetos, y envían 
y reciben infonnación de los estados de los objetos remotos en otras computadoras. 
En general, HLA utiliza a RTI para administrar lo siguiente: las federaciones, los objetos, 
las declaraciones o filtros que cambian atributos de objetos o eventos particulares, el tiempo de 
sincronización común a todas las federaciones, la toma de control sobre un objeto local o remoto, 
y la distribución de los datos. Para el caso de la implementaciónde RTI en HLA, las 
federaciones pueden programarse en los lenguajes de programación C++, Java o Ada. 
3.4.4 NPSNET. 
La arquitectura de Red de NPS o NPSNET (NPS Network) es desarrollada por un grupo 
de investigación dedicado a la creación de ambientes virtuales a gran escala desde finales de la 
década de los 80's [19]. Ellos desarrollaron varias generaciones de software y la posibilidad de 
integrar cada vez un mayor número de usuarios en una simulación. Las primeras dos 
aplicaciones desarrolladas eran para que un usuario tuviera el control de un misil e intentara 
destruir un tanque o un vehículo móvil. Para la conexión de estas dos aplicaciones se utilizó un 
simple intercambio de infonnación por paquetes de red a bajo nivel. Conforme fueron 
integrando estas distintas aplicaciones que habían desarrollado, realiz.aron las primeras tres 
versiones de la arquitectura llamadas NPSNET-1, NPSNET-2 y NPSNET-3. 
44 
Para 1993 se terminó la siguiente versión llamada NPSNET-IV (ver una escena de batalla 
en la figura 3-3), cuyas características nuevas con respecto a sus anteriores versiones fueron las 
siguientes [ 18] [ 19]: 
l. La implementación de NPSNET-IV fue en C++ y las librerías gráficas utilizadas para 
desarrollar el VÉ fueron la API llamada Performer de la compañía SGI, por lo tanto sólo 
podía ejecutarse en estaciones de trabajo de esa empresa. 
2. Añadieron sonido. 
3. Le llaman componentes a los objetos en la simulación. 
4. Incluyeron mejores algoritmos de dead reckoning. 
5. Se podían tener simulaciones en el aire, tierra y mar, teniendo la opción de añadir 
humanos articulados además de incrementar la lista de vehículos utilizados en cada tipo 
de simulación. 
Figura 3-3. Ejemplo de VE de NPSNET-IV. 
En la versión actual NPSNET-V, terminada en el 2001, incluyeron las siguientes 
características [20]: 
1. Tienen cargado dinámico de componentes en cualquier momento de la simulación. 
2. Incluyen modificación dinámica de los comportamientos de los componentes y de los 
protocolos. 
45 
3. Cambiaron la implementación a Java y las librerías gráficas a Java3D, teniendo así la 
posibilidad de ejecutar la aplicación en múltiples plataformas. 
En futuras versiones quieren hacer pruebas para poder tener distintos despliegues gráficos 
además del que ya tienen en Java3D, por ejemplo quieren ver la integración de un despliegue con 
las librerías gráficas X3D del nuevo estándar del consorcio Web3D para VRML. 
3.4.5 OODVR. 
La arquitectura Orientada a Objetos para Realidad Virtual Distribuida u OODVR (Object 
Oriented Distributed Virtual Reality) es una arquitectura de net-VE's que fue definida en el año 
1998 e implementada en su primera versión de prueba para el 2000 por Diego Malpica Chauvet 
del ITESM-CEM dentro del proyecto llamado "Laboratorios Virtuales" apoyado por REDII-
CONACYT (Red de Desarrollo e Investigación en Informática - Consejo Nacional de Ciencia y 
Tecnología). Debido a que este trabajo pertenece al mismo proyecto de "Laboratorios Virtuales" 
apoyado por REDII-CONACYT, se decidió tomar la arquitectura OODVR para realizar la 
aplicación de teleoperación de robots en VE's [21]. También el trabajo de Lourdes Muñoz 
Gómez, llamado "Laboratorios Virtuales Asistidos", pertenecía al mismo proyecto de REDII-
CONACYT y fue desarrollado en paralelo y en colaboración a este trabajo utilizando OODVR. 
La arquitectura OODVR se basó originalmente en algunas características de DIS y HLA, 
pero también incluyó nuevas características, todas ellas están descritas a continuación: 
l. Se les llama entidades a todos los objetos que se encuentran dentro del VE, de la misma 
manera que en DIS. Existen dos tipos de entidades que se explican más adelante. 
2. Se utiliza el término de participante al igual que en DIS, pero no sólo es considerado 
como un usuario que se une a la simulación en red en determinado momento y que va a 
aportar ciertos objetos virtuales, sino que en OODVR un participante es una instancia de 
ejecución del VE donde cabe la posibilidad de que un usuario la ejecute más de una vez 
en una computadora, es decir que pueden existir varios participantes en el net-VE por 
cada usuario. 
3. Un participante de OODVR puede contribuir con distintas entidades locales y entidades 
símiles o proxies al VE [21]. Las entidades locales son aquellas que fueron registradas y 
46 
ejecutadas por un participante en el net-VE y sirven para controlar el despliegue y los 
cambios de estado de los proxies, sin embargo dichas entidades locales no se despliegan. 
Los proxies son la representación de una entidad local en el mismo participante, otro 
participante u otra computadora, teniendo las mismas características de ejecución que la 
entidad local, pero estas entidades símiles son las que se despliegan. 
4. En OODVR la simulación puede tener muchas entidades con las que interactúen distintos 
participantes. Incluso, puede haber un participante en el net-VE que no haya registrado 
ninguna entidad en la simulación, y aún así podrá observar e interactuar con todo lo que 
haya en el VE. 
5. Si el número de participantes crece, la comunicación entre las entidades locales y sus 
proxies puede ser más eficiente en OODVR definiendo regiones de la simulación 
colocando algunos participantes como repetidores de red de dichas regiones. 
6. Al igual que DIS, OODVR maneja la noción de nodos de simulación autónomos. 
7. OODVR es multiplataforma y portable debido a que su implementación fue realizada en 
Java. 
8. La nueva característica y la más importante de OODVR es la de ser una arquitectura 
orientada a objetos. No como HLA que fue implementada en un lenguaje de 
programación orientado a objetos, pero no es una arquitectura orientada a objetos. Una 
arquitectura de net-VE's es orientada a objetos si la transmisión en red utiliza objetos para 
todo lo referente a la actualización de la simulación; es decir, el protocolo de envío de 
paquetes en red de OODVR es más sencillo que en DIS y HLA, ya que no se envían 
paquetes de red a un bajo nivel con una lista de datos, sino que desde objetos locales 
(objetos de orientación a objetos) se envían a ejecutar remotamente a través de la red 
funciones de objetos remotos mediante la arquitectura distribuida de Java llamada 
Invocación de Método Remoto o RMI (Remote Method lnvocation). 
Los RMI's son una API de Java para el desarrollo de aplicaciones distribuidas mediante la 
comunicación entre objetos que se localizan en distintos lugares remotos [22]. RMI realiza la 
invocación de un método en un objeto remoto. Un objeto remoto, el cual puede encontrarse en la 
misma computadora o en otra distinta, permite ejecutar sus métodos remotos desde un objeto 
local a través de una interfaz remota; así, un participante puede instanciar un objeto local y 
ejecutar sus métodos remotos, que se ejecutarán a su vez en el objeto remoto tal y como si 
estuviera interactuando con el objeto remoto. Lo anterior se consigue de manera transparente, sin 
47 
que sea necesario la implementación detallada de los mecanismos de transmisión de paquetes de 
bajo nivel a través de una red 
En la figura 3-4 se muestra el esquema de comunicación en red de OODVR en un 
ejemplo que tiene dos regiones con tres participantes. En ese esquema el participante A tiene una 
entidad local Al que controla a sus proxies Al en el mismo participante y en el participante B; y 
la entidad Al en el participante C es el símil de la entidad Al del participante B (se maneja el 
concepto de proxy del proxy). Análogamente el participante C tiene una entidad local Cl que 
controla a los proxies en el mismo participante y en el participante B; y la entidad Cl en A es el 
proxy del proxy de C 1 en C. En estos dos casos el B funciona como repetidor entre la región que 
incluye a B y A, y la región que incluye a B y C. El caso de las entidades de B es distinto debido 
a que su entidad local B 1 si controla a sus tres

Continuar navegando