Академический Документы
Профессиональный Документы
Культура Документы
TESIS PROFESIONAL
PRESENTA
ASESOR:
COASESOR:
1
2
Índice
Introducción…………………………………………………………………………………3
1.-Teléfono celular…………………………………………………………………………..6
1.1.- Surgimiento del teléfono celular………………………………………………….……6
1.2.- Funcionamiento y aplicaciones de un teléfono celular………………………………...7
1.3.- Infraestructura de la red Celular………………………………………………… …..10
1.4.- Tonos telefónicos……………………………………………………………………..11
Bibliografía ………………………………………………………………………………116
1
Apéndice 1: Funcionamiento del Sistema GSM y Arquitectura del Protocolo…………...84
2
Introducción
El gran avance de la tecnología en el campo de la telefonía celular ha permitido realizar
distintas aplicaciones tales como la transmisión de voz, datos, audio y video con algunas
limitaciones. Con ayuda del sistema global para comunicaciones móviles, al teléfono móvil
se le han agregado cada vez más funciones tales como el servicio de mensajes cortos, entre
otros más.
Con estos servicios surge la idea de controlar un robot por medio de un teléfono celular
con tecnología GSM. Esta idea consiste en que el usuario pueda controlar el robot desde
donde se encuentre, estableciendo la comunicación a través del sistema de telefonía celular.
• Adelante
• Gira
Con el comando adelante se especifica la distancia que se desea mover al robot y dicha
distancia es medida en milímetros. Con respecto al comando gira se debe indicar el
número de grados que se desea que gire el robot.
SimRobot lleva a cabo dichos comandos, además puede enviar la información del estado
del robot a SimGSM.
El módulo 1 asemeja a un teléfono celular, a partir del cual el usuario puede establecer
la comunicación con el robot, en este módulo se muestran los datos del SimRobot, ya sea el
estado del robot, así como el envió y recepción de mensajes para el control del robot, al
igual que el envío de tonos. Con lo anterior podemos ver que contamos con dos maneras de
realizar el control del robot: (1) estableciendo comunicación directa y empleando tonos y
(2) a través del envío de mensajes.
El simulador del robot cuenta con una cámara para obtener las imágenes del mundo en que
se encuentra. Para obtener la distancia del robot a los obstáculos se usan los sónares que
3
posee el robot, la velocidad de adquisición del sonar es de 25Hz y el rango de sensibilidad
del sónar va desde 10cm a aproximadamente 5m.
El módulo 2 simula un MODEM GSM, el cual está conectado con el simulador del robot
(SimRobot).
Modulo1
Modulo2
GSM
Modulo3 MODEM
Robot
Central de Servicio de
Mensajes Cortos y Central
Telefónica (SMSCYCT)
Algunas de las aplicaciones que se han desarrollado con este tipo de teléfonos celulares,
sólo por mencionar tenemos la siguiente:
Se trata de un notificador GSM el cual es un equipo para el envío de mensajes cortos
(mensajes de texto) a teléfonos móviles GSM.
Algunas de las aplicaciones en las que podemos usar este notificador GSM son:
4
El resto de la tesis está constituida de la siguiente manera.
En el capítulo 1 tratamos los antecedentes del teléfono celular con tecnología GSM.
También se explica el funcionamiento de un teléfono móvil y algunas de sus aplicaciones.
En el capítulo 4 tratamos aspectos relacionados con el simulador de las funciones del robot
Pioneer 2, tales como los antecedentes de un robot, así como la historia de cómo surgió, sus
características y el funcionamiento del simulador.
En el capitulo 7 se describe la interfaz del simulador del robot así como también la interfaz
del simulador realizado.
5
Capitulo 1
Teléfono Celular
1.1.- Surgimiento del Teléfono Celular
Las tecnologías inalámbricas han tenido su auge y desarrollo en estos últimos años. Una de
las que ha tenido un mayor desarrollo ha sido la telefonía celular. Uno de los aspectos más
interesantes del teléfono celular es que se trata solamente de un radio extremadamente
sofisticado [1].
A pesar de que la telefonía celular fue concebida estrictamente para la voz, la tecnología
celular de hoy es capaz de brindar otro tipo de servicios, como la transmisión de datos,
audio y vídeo con algunas limitaciones.
6
1.2.- Funcionamiento y Aplicaciones de un Teléfono Celular
Una de las cosas más interesantes acerca de los teléfonos celulares es que en realidad son
radios, unos radios extremadamente sofisticados, pero radios al fin y al cabo [1].
El teléfono celular estándar llamado AMPS (Advanced Mobile Phone System, o sistema de
telefonía móvil avanzada) fue aprobado y usado por primera vez en Chicago en 1983. El
estándar estableció un rango de frecuencias entre los 824 y los 894 Megahertz para
teléfonos análogos. Para enfrentar la competencia y mantener los precios bajos, este
estándar estableció el concepto de dos portadores en cada mercado, conocidos como
portadores A y B. A cada portador se le dá 832 frecuencias de voz, cada una con una
amplitud de 30 Kilohertz. Un par de frecuencias (una para enviar y otra para recibir) son
usadas para proveer un canal dual por teléfono. Las frecuencias de transmisión y recepción
de cada canal de voz están separadas por 45 Megahertz. Cada portador también tiene 21
canales de datos para usar en otras actividades [3].
Hace tiempo, antes de la aparición de los teléfonos celulares, la gente utilizaba radio
teléfonos en sus autos. En los sistemas de radio teléfono existía una antena central por
ciudad y 25 canales disponibles para esa antena. Esta antena central implicaba que su auto
tuviera un transmisor muy potente lo suficiente como para transmitir por 40 o 50 millas.
Esto también significaba que no mucha gente podía usar radio teléfonos, simplemente no
había los suficientes canales.
La gran idea del teléfono celular reside en que una ciudad puede ser dividida en pequeñas
"células" que permiten extender la frecuencia por toda una ciudad.
7
distancia de la reutilización, es decir, la distancia permitida entre las células del co-canal
(células usando el mismo sistema de canales de frecuencia).
Debido a que los teléfonos celulares y las estaciones base utilizan transmisores de bajo
poder, las mismas frecuencias pueden ser reutilizadas en células no adyacentes.
Cada célula tiene una estación base que consta de una torre y un pequeño edificio en donde
se tiene el equipo de radio. Cada célula utiliza un séptimo de los 416 canales duales de voz.
Entonces, cada célula tiene más o menos 59 canales disponibles. En otras palabras, con una
célula pueden hablar 59 personas al mismo tiempo.
8
Los teléfonos celulares poseen transmisores de baja potencia dentro de ellos. Muchos
teléfonos celulares tienen dos intensidades de señal: 0.6 Watts y 3 Watts (en comparación,
la mayoría de los radios de banda civil transmiten a 4 Watts). La estación base también
transmite a baja potencia. Los transmisores de baja potencia tienen dos ventajas:
Vale mencionar que los sistemas digitales han utilizado comúnmente sectores de células
con 120 grados o antenas direccionales más pequeñas a distancias más lejanas, más baja es
la efectividad de la reutilización. Esto permite un número más pequeño de células en el
patrón de la reutilización y hace una fracción más grande del espectro total de la frecuencia
disponible dentro de cada célula.
Digamos que si tenemos un teléfono celular, lo encendemos, y alguien nos trata de llamar,
la MTSO recibe la llamada, y trata de encontrarnos. En primera instancia, la MTSO nos
tratará de encontrar activando el teléfono (utilizando uno de los canales de control, ya que
el teléfono se encuentra siempre escuchando) en cada célula de la región hasta que el
teléfono responda. Entonces la estación base y el teléfono deciden cuál de los 59 canales en
el teléfono celular usarán. Ahora estamos conectados a la estación base y podemos empezar
a hablar y escuchar.
A medida que nos movamos en la célula, la estación base notará que la fuerza de la señal
disminuye. Entre tanto, la estación base de la célula hacia la que nos estamos moviendo
(que está escuchando la señal) será capaz de notar que la señal se hace más fuerte. Las dos
estaciones base se coordinan a sí mismas a través del MTSO, y en algún punto el teléfono
obtiene una señal que le indica que cambie de frecuencia. Este cambio hace que el teléfono
mude su señal a otra célula.
En los sistemas modernos, los teléfonos esperan una señal de identificación del sistema
(IDS) del canal de control cuando se encienden. El teléfono también transmite una
propuesta de registro y la red mantiene unos datos acerca de su ubicación en una base de
datos (de esta forma es que la MTSO sabe en que célula nos encontramos si quiere timbrar
9
nuestro teléfono). A medida que nos movamos entre células, el teléfono detecta los cambios
en la señal, los registra y compara con los de la nueva célula cuando cambia de canal. Si el
teléfono no puede hallar canales para escuchar se sabe que está fuera de rango y muestra un
mensaje de "sin servicio".
La última tendencia son los teléfonos celulares digitales. Utilizan la misma tecnología
radial (en diferentes bandas de frecuencia -por ejemplo, los teléfonos PCS utilizan
frecuencias entre los 1.85 y 1.99 Gigahertz-) pero comprimen su voz en unos y ceros. Esta
compresión permite que entre 3 y 10 llamadas telefónicas ocupen el espacio de una simple
voz análoga. Estos aparatos también ofrecen otras características como correo electrónico y
agenda.
Los enlaces directos entre ciertas MSC’s "locales" pueden también proporcionarse para
permitir la comunicación entre dos usuarios móviles, evitando a la red de la telefonía
cuando hay una circulación de tráfico considerable entre los usuarios móviles que vagan en
las áreas bajo la cobertura de estos MSC’s.
Así, la trayectoria de comunicación entre dos usuarios móviles que vagan bajo cobertura de
dos MSC' s locales puede ó no puede cambiar a través de la red pública de telefonía. Esto
depende de la conectividad proporcionada entre las dos MSC’s. El MSC puede también
conectar con las redes de datos públicas (PDN).
1
Este se da cuando una llamada en progreso puede cruzar la frontera de la celda adyacente. En este, un nuevo
canal debe ser asignado a la llamada en la nueva celda para evitar una terminación forzada de la llamada.
10
1.4.- Tonos Telefónicos
Tono dual de múltiples frecuencias (DTMF), también conocido como marcación por
tonos (Touch Tone) es utilizado para señales telefónicas en la banda de frecuencias de la
voz hacia el centro de conmutación de la llamada.
Antes del DTMF los sistemas telefónicos utilizaban una serie de clics sobre la línea
telefónica para la marcación de los números, este sistema es conocido como marcación por
pulsos. Los clics eran realmente los que empezaban ó rompían la conexión en la línea
telefónica, equivalía a mover un interruptor de luz a prendido ó apagado.
DTMF fue desarrollado en los laboratorios Bell a fin de permitir a la señal de marcado el
empleo de números de larga distancia, y la posibilidad de reestablecer enlaces inalámbricos
a través de microondas ó de satélites. Los codificadores/decodificadores fueron agregados a
las terminales que convertirían el pulso estándar en tonos de DTMF y los pondrían de
vuelta a la terminal remota. En el sitio remoto otros codificadores/decodificadores
descifrarán los tonos y los cambiarán a una serie de clics. Esto era como si se estuviera
conectado directamente a la terminal, las señales trabajarían sobre cualquier clase de
conexión. Esta idea de usar la red existente para señales así como para mensajes se conoce
como in-band signaling.
El sistema Touch Tone también introdujo una disposición de estandarización del teclado.
Después de probar no menos de 18 diversas disposiciones, se eligió uno que eventualmente
sigue siendo similar a los que hoy se usan, con un 1 en la parte superior izquierda y 0 en el
fondo.
Los ingenieros también habían previsto que los teléfonos podrían ser utilizados para tener
acceso a las computadoras, y examinaron un número de compañías para ver lo que
necesitarían para este papel. Esto condujo a la adición de las teclas (#) y el asterisco (*), así
como también un grupo de teclas para la selección del menú, A, B, C y D
Los militares de los Estados Unidos también utilizaron las letras en su sistema de teléfono
Autovon. Aquí las utilizaron antes de marcar un número en el teléfono para darle prioridad
a algunas llamadas, cortando las llamadas existentes si era necesario. La idea era permitir
que el tráfico importante llegara a su destino. Por ejemplo, presionando C, inmediatamente,
antes de marcar haría que el interruptor primero busca cualquier línea libre, y si todas las
líneas estuvieran en uso, colgaría cualquier llamada no prioritaria, y después cualquier
llamada de prioridad, esto quiere decir que primero buscaría una línea libre en tal caso de
no encontrar entonces busca una llamada que no tiene prioridad y si no encontrara alguna,
posteriormente buscara una llamada de prioridad inferior a la prioridad marcada y colgaría
dicha llamada. Si bien el sistema telefónico Autovon ya no existe, se conservan sus nombres
originales que eran (A) “Flash Override”, (B) “Flash”, (C) de inmediato, y (D) la prioridad.
Con presionar una de estas teclas se da prioridad a la llamada, eliminando las otras
conversaciones sobre la red. “Flash Override” es la prioridad más alta.
11
El teclado numérico de DTMF se presenta en una matriz 4 x 4 con cada fila que representa
una frecuencia baja, y cada columna que representa una frecuencia alta. Presionar una sola
tecla tal como '1 'enviará un tono senosoidal de dos frecuencias: 697 y 1209 hertz. Los dos
tonos son la razón de porque se llama multi-frecuencia. Estos tonos entonces son
descifrados por el centro de conmutación para determinar que tecla fue presionada.
Las frecuencias fueron diseñadas inicialmente con un cociente de 21/19, que es levemente
menor que un tono entero, para evitar los armónicos o las frecuencias naturales que podrían
ocurrir cuando se envían los dos tonos. Las frecuencias pueden no variar más que +/- 1.5%
de su frecuencia nominal, o el centro de la conmutación no hará caso de la señal. Los tonos
de alta frecuencia pueden tener el mismo volumen o tener más ruido que los tonos de bajas
frecuencias cuando se están enviando a través de la línea. La diferencia de la intensidad
entre las frecuencias altas y bajas puede ser tan grande como 3 decibeles (dB) y se refiere
como twist [5].
12
Capitulo 2
En el inicio de los años 80, después de que el NMT (“Nordic Mobile Telephone”), el
sistema de telefonía móvil analógico de cobertura escandinava, tuviera éxito, los sistemas
analógicos existentes, tenían limitaciones. Primera, ante la gran demanda de los servicios
móviles, la capacidad de las redes analógicas existentes no era suficiente. Segunda, las
diversas formas en las que opera este tipo de sistema no hacia posible una compatibilidad
entre los usuarios de móviles, por ejemplo: una terminal TACS (servicio de telefonía móvil
analógico puesto en funcionamiento en el Reino Unido en 1985) no podía acceder dentro de
una red NMT, y viceversa. Además, el diseño de un nuevo sistema de telefonía celular
requiere tal cantidad de investigación que ningún país europeo podía afrontarlo de forma
individual. Todas estas circunstancias apuntaron hacia el diseño de un nuevo sistema, hecho
en común entre varios países.
El principal requisito previo para un sistema de radio común es el ancho de banda de radio.
Esta condición había sido ya prevista unos pocos años antes, en 1978, cuando se decidió
reservar la banda de frecuencia de 900 ± 25 MHz para comunicaciones móviles en Europa.
Este problema fue el mayor obstáculo solucionado. Quedaba organizar el trabajo. El mundo
de la telecomunicación en Europa siempre había estado regido por la estandarización. La
CEPT ("Conférence Européene des Postes et Télécommunications") es una organización
para la estandarización presente en más de 20 países europeos. Todos estos factores
llevaron a la creación en 1982 de un nuevo cuerpo de estandarización dentro de la CEPT,
cuya tarea era especificar un único sistema de radiocomunicaciones para Europa a 900
MHz. El recién nacido "Groupe Spécial Mobile" (GSM) tuvo su primer encuentro en
Diciembre de 1982 en Estocolmo, bajo la presidencia de Thomas Haug de la administración
sueca. Treinta y una personas de once países estuvieron presentes en este primer encuentro.
En 1990, por requerimiento del Reino Unido, se añadió al grupo de estandarización la
especificación de una versión de GSM a la banda de frecuencia de 1800 ± 75 MHz. A esta
variante se le llamó DCS1800 ("Digital Cellular System 1800"). En los Estados Unidos, la
FCC (Federal Communications Comission) decidió abrir partes de las frecuencia de los
1900 Mhz para usos móviles, con la elección del sistema por parte de las operadoras. El
PCS1900 fue entonces desarrollado, una variante del GSM para aprovechar la oportunidad
recién abierta en el mercado norteamericano (en el que la mayoría de las operadoras utiliza
el CDMA). En Noviembre de 1995 el primer servicio PCS1900 fue lanzado en los Estados
Unidos Americanos [6].
Actualmente los sistemas GSM900/1800/1900 son utilizados en 135 países, con 345
millones de utilizadores diseminados por 366 redes. El reciente lanzamiento de terminales
tribanda (que operan en la frecuencia 900, 1800 y 1900 Mhz) posibilita capacidades de
13
roaming cada vez mayores, ya que los usuarios pueden utilizar las tres frecuencias
disponibles en los cinco continentes. El significado actual de las siglas GSM ha cambiado
y en la actualidad corresponden a "Global System for Mobile communications" 7 .
El Sistema Global para Comunicaciones Móviles (GSM) posee una serie de características
que lo diferencian dentro del universo de las comunicaciones móviles. Nacido en los años
80 fruto de una cooperación sin precedentes en Europa, el sistema comparte elementos
comunes con otras tecnologías utilizadas en la telefonía móvil, como la transmisión digital
de voz y datos y la utilización de células. A continuación se explican las características
técnicas fundamentales del sistema, así como sus capacidades.
Una red GSM está constituida por los siguientes tres elementos: la terminal, la estación-
base (BSS) y el subsistema de red o nodo. Adicionalmente existen centros de operación
establecidos por las operadoras, para vigilar el estado de la red.
El BSC administra los recursos de radio de una o más BTS. Entre sus funciones se incluyen
el “handoff” (que ocurre cuando el utilizador se mueve de una célula para otra, permitiendo
que la conexión se mantenga), el establecimiento de los canales de radio utilizados y los
cambios de frecuencias. Finalmente, establece la conexión entre el teléfono celular y la
Central Intercambiadora de Servicios Móviles (MSC, “Mobile Service Switching Center”),
el corazón del sistema GSM.
14
TRX VLR HLR
SIM Otros
BTS MSC MSC’s
MS BSC
BTS EIR SMSC SIM
PSTN/
ISDN
Estación
Móvil
(Terminal)
Estación Base Subsistema de
Conmutación y red
! " # # $ %! "
& & % & %
'( ' ) ( ( % '
& & % & % $
*+ * + # # + %, +%
( ( %
% ( %
& ( & % ) #( ( %
& %
-+ - + # # + %, %-
. # .# % .# % #
/ / % ) %") %$ ' %# /0 %
& ( ) & # ( ( % & 1 (
El MSC, como ya fue referido, es el centro de la red, a través del cual se realiza la conexión
entre una llamada realizada desde un teléfono celular hacía las otras redes fijas como las
Redes Telefónicas Analógicas Pública (PSTN, “Public Switched Telephone Network”), las
redes Digitales de Servicios Integrados (ISDN, “Integrated Services Digital Network”) o las
redes móviles. El nodo en el que se encuentra, posee además una serie de equipos
destinados a controlar varias funciones, como el cobro del servicio, la seguridad y el envío
de mensajes SMS.
15
posee un contrato de servicio válido. Si la respuesta es afirmativa el MSC envía un mensaje
de vuelta a la terminal informándole que está autorizado a utilizar la red. El nombre de la
operadora aparece entonces en pantalla, informando que puede efectuar y recibir llamadas.
Cuando el MSC recibe una llamada destinada a un móvil, él va al HLR para verificar la
localización. Paralelamente, la terminal de vez en cuando envía un mensaje para la red,
para informarla del sitio donde se encuentra (este proceso es denominado poleo).
La explicación sobre las bases de datos definidas por GSM así como también la estructura
del canal de Radio, la arquitectura del protocolo se da en el apéndice 1.
Características de GSM
El sistema GSM posee una serie de funcionalidades, que pueden ser implementadas por los
operadores en sus redes. Entre estas características se incluyen:
-La posibilidad de usar la terminal y la tarjeta SIM en redes GSM de otros países
(roaming).
-El servicio de mensajes cortos (SMS) a través del que pueden ser enviadas y recibidos
mensajes con hasta 126 caracteres.
-El reenvío de llamadas a otro número.
-La transmisión y recepción de datos y fax con velocidades de hasta 9.6 Kbps.
-La difusión celular – mensajes con hasta 93 caracteres que pueden ser enviados a todos los
teléfonos celulares en un área geográfica. Los mensajes son recibidos cuando la terminal no
está siendo utilizada y pueden ser recibidos cada dos minutos.
16
-CLIP (Calling Line Identification Presentation) – permite ver en pantalla el número que
nos está llamando. Por oposición, el CLIR (Calling Line Identification Restriction) impide
que el número llamante sea visto por alguien (anónimo) gracias al CLIP.
-La posibilidad de visualización de crédito / costos.
-La notificación de llamadas en espera, cuando estamos hablando por teléfono.
-La posibilidad de colocar una llamada en espera, mientras se contesta otra.
-Las llamadas son encriptadas, lo que impide que sean escuchadas por otros.
-La posibilidad de impedir la recepción / transmisión de ciertas llamadas.
-Las llamadas de emergencia
-La posibilidad de varios usuarios hablar entre sí al mismo tiempo – servicio de conferencia
[8].
17
Capitulo 3
Uno de los servicios ofertados por estas operadoras en los teléfonos celulares de tecnología
GSM es el envío y recepción de mensajes cortos, los conocidos SMS.
El primer tipo permite enviar un mensaje de texto de un teléfono GSM a otro, mientras
SMS/CB permite enviar uno o más mensajes contemporáneamente (broadcast) a todos los
teléfonos que estén dentro de una determinada zona de cobertura de una o más emisores de
señal de radio. El CB puede contener un máximo de 93 caracteres, pero es posible enlazar
hasta 15 mensajes para formar un macro-mensaje. A cada mensaje CB se le asigna una
categoría que permite clasificar el tipo de información que contiene y el idioma empleado,
de modo tal que permita a los teléfonos celulares visualizar selectivamente o de descartar
los mensajes CB.
El envío de un SMS/PP desde un teléfono GSM a otro tiene que ser considerado como la
concatenación de dos operaciones diferentes: la transmisión del mensaje desde el teléfono
celular a una entidad especial de la red, llamada SMSC (Short Message Service Center), y
luego desde el SMSC hasta el teléfono celular receptor. La primera operación se denomina
SMS-MO (SMS Mobile Originated), mientras que la segunda se conoce como SMS-MT
(SMS Mobile terminated):
• SMS-MT permite recibir al usuario mensajes de texto con hasta 160 caracteres en
la pantalla del propio teléfono celular GSM
• SMS-MO permite al abonado enviar mensajes de texto con hasta 160 caracteres a
otra terminal GSM, a un fax o a una dirección de correo electrónico en Internet
[9].
18
Los mensajes SMS son herederos directos de los mensajes de los equipos localizadores de
personas, los llamados “buscas”, pero extendiendo su funcionalidad para permitir que desde
cualquier dispositivo GSM se pueda realizar un envío a otro equipo sin mediar
comunicación vocal con un teleoperador.
El éxito de este servicio, el SMS, parece provenir de la sencillez y facilidad de manejo, por
un lado, y de que “hay alguien al otro lado” con quien realizar el acto de la comunicación.
Estos dos factores han provocado dicho éxito, aún teniendo en contra el precio del servicio
en algunos casos y las limitadas características de esta comunicación.
Las posibilidades de comunicación mediante “mensajes cortos GSM” (SMS) son muchas y
muy variadas, pero siempre limitadas por las características de estos mensajes, 160
caracteres, muy baja velocidad (en comparación con las líneas telefónicas convencionales),
duración limitada (24 ó 48 horas normalmente, sino se entregan antes son cancelados), no
es un servicio garantizado (el mensaje suele llegar pero no hay garantía de ello, ni que
lleguen en el orden en que se han enviado) y posibilidad de comunicación sólo entre
teléfonos celulares GSM entre los que haya “visibilidad” (que los operadores de los dos
teléfonos, emisor y receptor, tengan convenio de intercambio de mensajes).
19
Figura 3.1: Esquema general de una pasarela SMS
El acceso a la red GSM se puede obtener de diferentes formas. El método más sencillo es
utilizando directamente una terminal GSM conectada a la computadora que actúa de
pasarela. En realidad este terminal puede ser un teléfono GSM normal con su kit de
conexión a PC (cable y software) o un MODEM GSM (igual que los módems
convencionales de red telefónica básica –RTB- pero su medio de transmisión es la red
GSM, no el par de hilos telefónicos).
El otro método más habitual para acceder a la red GSM es contactar directamente con un
centro servidor de mensajes (SMSC) del operador de telefonía. Los SMSC de cada
fabricante incorporan también protocolos propietarios, por lo que es necesario realizar en
cada caso un dialogo diferente con cada tipo de SMSC, además de que el medio de
conexión también puede variar de unos a otros (IP, Frame Relay, X.25, RDSI, etc.).
Una vez comprendido el funcionamiento básico de una pasarela de mensajería SMS, nos
centraremos en la unión de las redes GSM, en un lado de la pasarela, e IP, en el otro, dada
su gran extensión y su uso común en todos los tipos de sistemas informáticos [10].
20
Aplicaciones de una pasarela de mensajería SMS
Los posibles usos que se pueden dar a una pasarela SMS entre las redes GSM e IP son
extensas.
Tenemos la siguiente lista como ejemplo de actividades que se realizan en la actualidad con
este tipo de pasarelas de mensajería:
21
• Banca GSM. Servicios financieros y alarmas para el seguimiento de operaciones de
valores.
• Cualquier otro tipo de alarmas debido a caídas de tensión, detección de intrusos en
“firewalls”, etc.
• Domótica. Control y consulta de dispositivos a distancia.
• Avisos de intervención para equipos médicos, mantenimiento, rescate, etc.
Dadas las características de la red GSM que permiten la movilidad a los terminales
(teléfonos) en su zona de cobertura, su pueden imaginar aplicaciones que aprovechen la
posibilidad de localización de un teléfono, en base a la estación base de la red que en ese
momento tiene conexión con él. Sin embargo, esta información no es directamente
accesible desde el exterior de la red del operador de telefonía, por lo que, salvo aplicaciones
fuertemente integradas con la red del operador, no es posible su utilización.
Podríamos imaginar una aplicación que permitiera emitir mensajes SMS a teléfonos
celulares entre las dos y las tres de la tarde en la zona de cobertura de una estación base
situada junto a un restaurante que contratara los servicios de publicidad que un operador
pudiera ofrecer, para que todos los que por allí cerca pasaran supieran donde está dicho
restaurante. Al margen de la aplicación, podrían surgir problemas con la utilización de la
posición de las terminales para operaciones no solicitadas por el propietario de la terminal,
ya que al fin y al cabo, la situación de cada terminal es información privada del propietario.
La pasarela de mensajería SMS/IP trata de ser como un servidor Web, realiza sus tareas de
cambio de formato y ajuste del mensaje, pero precisa de contenidos que realmente le den
una utilidad, aunque en este caso los contenidos son pequeñas o grandes aplicaciones que
permiten interactuar al usuario móvil con otro programa.
Para finalizar con las utilidades de las pasarelas de mensajería SMS/IP, podemos añadir que
no hay un estándar para que las aplicaciones se comuniquen con las pasarelas, en general,
sino que cada una define su propia interfaz, que es diferente en todos los casos. En este
aspecto queda mucho camino por recorrer para, quizás, definir un “wrapper”, una interfaz
intermedia, normalizada, que permita la utilización de diferentes pasarelas SMS sin
necesidad de realizar cambios en la aplicación2
22
3.3.- Servicio de Mensajes Multimedia (MMS)
MMS resulta muy similar al servicio de mensajes cortos (SMS) y, al igual que éste,
requiere su propia interfaz. Técnicamente no utiliza WAP, ya que se trata de una aplicación
de mensajería y no de navegación.
Pero la tecnología MMS ofrece algo más que la simple ampliación del contenido de los
mensajes. Con MMS, no sólo es posible enviar mensajes multimedia de un teléfono a otro,
sino también de un teléfono a correo electrónico y viceversa. Esta función aumenta de
forma espectacular las posibilidades de la comunicación móvil, tanto para uso privado
como profesional [11].
Los principales fabricantes apuestan a que MMS evolucionará rápidamente para convertirse
en un auténtico servicio de alto consumo, tanto para el uso personal como profesional.
Es previsible que los usuarios se adapten fácilmente a MMS, ya que este sistema se puede
reconocer como una forma avanzada de SMS. De este modo, MMS se convierte en un
sólido eslabón para el paso de comunicaciones de 2G a 3G
Compatibilidad
La norma MMS incluye JPEG, GIF, texto, voz AMR y otros formatos como tipos de
soportes admitidos, mientras que los formatos no admitidos se administran de forma
controlada. Al igual que SMS, MMS constituye una norma industrial abierta y los mensajes
MMS se pueden enviar utilizando las redes y protocolos existentes. MMS también es
independiente del portador, lo que significa que no se limita exclusivamente a redes GSM o
WCDMA3.
2
Una especificación segura que permite a los usuarios accesar información de manera instantánea a través
de dispositivos portátiles sin cable como teléfonos celulares o radios de dos vías
3
WCDMA. Wide Band Code Division Multiple Acces, Acceso múltiple por división de código del ancho de
banda
23
Capitulo 4
La palabra robot se empleó por primera vez en 1920 en una obra de teatro llamada
“R.U.R.” o “Los Robots Universales de Rossum” escrita por el dramaturgo checo aren
Capek. La trama era sencilla: el hombre fabrica un robot, luego el robot mata al hombre.
Muchas películas han seguido mostrando a los robots como máquinas dañinas y
amenazadoras [12].
Ahora veamos lo que es un robot. Los expertos en Robótica afirmarían que es complicado
dar una definición. Por lo cual existen varias definiciones de las cuales se presentan
algunas:
1. Ingenio mecánico controlado electrónicamente, capaz de moverse y ejecutar
de forma automática acciones diversas, siguiendo un programa establecido.
2. Máquina que en apariencia o comportamiento imita a las personas o a sus
acciones como, por ejemplo, en el movimiento de sus extremidades.
3. Un robot es una máquina que hace algo automáticamente en respuesta a su
entorno.
4. Un robot es un puñado de motores controlados por un programa de
computadora.
5. Un robot es una computadora con músculos.
El año 1980 fue llamado “primer año de la era robótica” porque la producción de robots
industriales aumentó ese año un 80 % respecto del año anterior.
Con respecto a la historia de cómo surgen los robots tenemos las siguientes generaciones:
En estas generaciones los cambios en robótica suceden tan rápido que ya se ha pasado de
unos robots relativamente primitivos a principios de los años 70, a una segunda generación.
La primera generación de robots era reprogramable, de tipo brazo, dispositivos
manipuladores que sólo podían memorizar movimientos repetitivos, asistidos por sensores
internos que les ayudan a realizar sus movimientos con precisión. La segunda generación
de robots entra en escena a finales de los años 70, tienen sensores externos (tacto y visión
por lo general) que dan al robot información (realimentación) del mundo exterior. Estos
24
robots pueden hacer elecciones limitadas o tomar decisiones y reaccionar ante el entorno de
trabajo, se les conoce como robots adaptativos.
Tercera Generación
La tercera generación acaba de surgir, está surgiendo en estos años, emplean la inteligencia
artificial (IA) y hacen uso de las computadoras más avanzadas de las que se puede disponer
en la actualidad. Estás computadoras no sólo trabajan con números, sino que también
trabajan con los propios programas, hacen razonamientos lógicos y aprenden. La IA
permite a las computadoras resolver problemas inteligentemente e interpretar información
compleja procedente de sensores avanzados.
Tendencias futuras
Durante años los robots han sido considerados útiles sólo si se empleaban como
manipuladores industriales. Recientemente han irrumpido varios roles nuevos para los
robots. A diferencia de los tradicionales robots fijos de manipulación y fabricación, estos
nuevos robots móviles pueden realizar tareas en un gran número de entornos distintos. A
estos robots no industriales se les conoce como robots de servicios.
Existen diferentes tipos de robots entre los cuales tenemos los siguientes:
Androides
Una visión ampliamente compartida es que todos los robots son “androides”. Los
androides son artilugios que se parecen y actúan como seres humanos. Los robots de hoy en
día vienen en todas las formas y tamaños, pero a excepción de los robots que aparecen en
las ferias y espectáculos, no se parecen a las personas y por tanto no son androides.
25
Actualmente, los androides reales sólo existen en la imaginación y en las películas de
ficción.
Móviles
Los robots móviles están provistos de patas, ruedas u orugas que los capacitan para
desplazarse de acuerdo su programación. Elaboran la información que reciben a través de
sus propios sistemas de sensores y se emplean en determinado tipo de instalaciones
industriales, sobre todo para el transporte de mercancías en cadenas de producción y
almacenes. También se utilizan robots de este tipo para la investigación en lugares de difícil
acceso o muy distantes, como es el caso de la exploración espacial y las investigaciones o
rescates submarinos.
Médicos
Los robots médicos son, fundamentalmente, prótesis para disminuidos físicos que se
adaptan al cuerpo y están dotados de potentes sistemas de mando. Con ellos se logra igualar
con precisión los movimientos y funciones de los órganos o extremidades que suplen.
Industriales
La Asociación Japonesa de Robótica Industrial (JIRA) dice: Los robots son “dispositivos
capaces de moverse de modo flexible análogo al que poseen los organismos vivos, con o
sin funciones intelectuales, permitiendo operaciones en respuesta a las órdenes humanas”.
El Instituto de Robótica de América (RIA) define: Un robot industrial es “un manipulador
multifuncional y reprogramable diseñado para desplazar materiales, componentes,
herramientas o dispositivos especializados por medio de movimientos programados
variables con el fin de realizar tareas diversas”.
Teleoperadores
Hay muchos “parientes de los robots” que no encajan exactamente en la definición precisa.
Un ejemplo son los teleoperadores. Dependiendo de cómo se defina un robot, los
teleoperadores pueden o no clasificarse como robots. Los teleoperadores se controlan
remotamente por un operador humano. Cuando pueden ser considerados robots se les llama
26
“telerobots”. Cualquiera que sea su clase, los teleoperadores son generalmente muy
sofisticados y extremadamente útiles en entornos peligrosos tales como residuos químicos y
desactivación de bombas [13].
El simulador del robot utilizado en este proyecto cuenta con las siguientes características:
• 16 sensores
• Cámara
• Entrada serial
El robot simulado es el Pioneer 2D [14].
Como el sistema de simulación de GSM va interactuar con el simulador del robot, en este
capítulo se da una breve explicación de las principales características de algunos de los
simuladores disponibles y que se analizaron para poder seleccionar el simulador de robot a
utilizar, entre ellos tenemos algunos que a continuación mencionamos.
Saphira [36] es una arquitectura para control de robots móviles. Originalmente ésta fue
desarrollada para la investigación del robot Flakey en SRI internacional y después estuvo
en uso por diez años. Fue desarrollada dentro de una arquitectura que soportaba una gran
variedad de investigación y programación de aplicaciones para robots móviles. Saphira y
Flakey aparecieron en 1994.
El sistema Saphira está dividido en dos partes. Las rutinas de bajo nivel han sido
reorganizadas y reimplementadas como un sistema de software separado, Aria. Es
diseñado y mantenido por Activmedia Robotics. Este es un sistema de nivel de producción
para el control del robot, basado sobre un extenso conjunto de clases de C ++. La estructura
de clases Aria hace fácil expandir y desarrollar nuevos programas: añadir nuevos sensores
al sistema.
El sistema Saphira/Aria puede ser pensado como dos arquitecturas, una construida sobre la
otra. La arquitectura del sistema implementada enteramente en Aria es un conjunto
integrado de rutinas para comunicación y control con el robot desde el servidor en una
computadora. La arquitectura del sistema es diseñada para ser fácil la definición de
aplicaciones del robot para la conexión con programas de tipo cliente. Debido a esto, la
arquitectura del sistema es una arquitectura abierta a los usuarios que desean escribir su
propio sistema de control del robot pero no quieren preocuparse acerca de las
complejidades del control de hardware y la comunicación puede ser una ventaja de las
propiedades micro-tarea y reflexión de estado de la arquitectura del sistema.
27
Las rutinas del sistema de arriba es una arquitectura del control de robot, que es un diseño
para controlar robots móviles que solventan algunos de los problemas envueltos en la
navegación.
Player [37] fue originalmente desarrollado por Brian Gerkey y Kasper Stoy, la interfaz del
simulador Stage fue originalmente escrita por Richard T. Vaughan y Andrew Howard, el
desarrollo de Player es administrado por Brian Gerkey, Andrew Howard, y Richard
T.Vaughan.
Player es primeramente desarrollado en los laboratorios “Research Robotics” de la
universidad de “Southem in California”.
Player es software libre, es un servidor multi-hilo de dispositivos del robot, éste da un
simple y completo control sobre los sensores físicos y acciones sobre el robot móvil.
Cuando Player está ejecutándose sobre el robot, el programa de control cliente se conecta a
Player por medio de un socket de TCP, la comunicación se realizará enviando y recibiendo
algunos de los comandos de un pequeño conjunto de mensajes simples.
Player está diseñado para ser un lenguaje y una plataforma independiente. El programa
cliente puede ejecutarse sobre cualquier máquina que tenga conectividad de red para el
robot, y el programa cliente puede ser escrito en cualquier lenguaje que pueda abrir y
controlar un socket TCP. Las características del cliente están actualmente disponibles en C,
C++, TCL, LISP, Java, y Pitón.
Player está también diseñado para soportar virtualmente cualquier número de clientes
Con respecto al simulador JMR [38] es de una arquitectura tipo cliente servidor la cual
puede soportar varios robots, esto quiere decir que puede simular que está controlando
varios robots, estos robots los identifica con un nombre, también puede cargar procesos
sobre algún robot que se elija, puede conectarse con el simulador Saphira para poder tener
comunicación con un robot real.
En el cliente se manejan los dispositivos tales como sonares, cámaras de los robots que se
tengan añadidos, así como también puede regular la velocidad y ver la distancia del robot
con respecto a los obstáculos, otro aspecto más es que podemos ver el estado del robot ya
sea que esté parado, avanzando, que haya chocado con algún obstáculo, etc.
También le podemos enviar la distancia que queremos que avance, al igual que los grados
que queremos que gire.
En el servidor se reciben los comandos que le envía el cliente y los simula, en éste también
se pueden cargar mundos que es por donde va a ir navegando el robot, así como también las
imágenes que capta la cámara del robot, las cuales son enviadas al cliente y mostradas.
28
Esta es una breve explicación del funcionamiento del simulador JMR, un análisis más a
fondo se hace en el capítulo 5.
29
Capitulo 5
El sistema dispone de una aplicación cliente, sobre la que se cargan los robots que se
desean probar, y de una aplicación servidor que se encarga de llevar un control de los
robots conectados, actualizar su situación en el mundo que se haya especificado, y
proporcionar al cliente los datos que se soliciten.
Se persigue con este entorno dos objetivos fundamentales: Uno es definir una interfaz de
comunicación de Java con la librería Saphira de control de robots. De este modo, se podrá
conectar el sistema al simulador de robots de Saphira (Pioneer), y también a los robots
reales que se gestionen con dicha librería. Conviene resaltar aquí la modificabilidad y
modularidad que permite Java, y que haría posible la adaptación del programa a otras
librerías de control de robots.
El otro objetivo que se persigue es proporcionar un sistema propio de simulación,
fácilmente portable, que permita sencillas modificaciones o actualizaciones del mismo. La
estructura de Java permite definir un esqueleto básico sobre el que ir modificando o
ampliando características de forma sencilla, añadiendo nuevas clases que extiendan o
sobrescriban a las anteriores. De esta forma, además de la comunicación con Saphira, se
dispone de un sistema auto-integrado, que permite la prueba de robots y procesos sobre el
mismo sin necesidad de ningún programa adicional, mediante un simulador 3D propio.
Por todo lo anterior, se ha desarrollado un programa cliente-servidor que permite la gestión
de robots, así como algunas librerías auxiliares, algunas de las cuales son utilizadas por
dichos programas, y otras facilitan la elaboración de procesos en los robots por parte del
usuario.
La arquitectura de este simulador es de cliente-servidor la cual se explica enseguida.
Aplicación cliente
El paquete jmr.client contiene la aplicación cliente del sistema. En la parte cliente se tiene
un programa para gestionar los distintos robots que queremos conectar. El programa está
preparado para soportar varios robots simultáneamente (aunque si se está comunicando con
Saphira, sólo se permitirá uno, por las limitaciones de Saphira), y se conseguiría con ello el
mismo efecto que lanzando varias aplicaciones cliente, una por cada robot.
El cliente dispone de controles para elegir a qué servidor conectarse (actualmente, al
simulador Java, al simulador Saphira, o a un robot real a través de Saphira por un puerto
30
serie dado), indicando la dirección donde se encuentra el servidor. Esto permite comunicar
mediante RMI (Remote Method Invocation, Invocación de Método Remoto) con un
servidor situado en una máquina remota, conociendo su dirección IP y el puerto por el que
comunicarse, y también comunicar, si se permite, con un servidor en la máquina local, sin
necesidad de indicar dirección IP ni puerto.
Además, se permite añadir y quitar robots del cliente, y llevar un control de los datos de
cada robot (lecturas de sónares, estado actual, dispositivos, etc.).
El servidor.
En la parte del servidor, se distingue entre los servidores que se tienen:
El simulador 3D JAVA
El servidor SAPHIRA
Para la comunicación con Saphira, se emplea JNI (Java Native Interface), una utilidad de
Java que permite incorporar al código Java fragmentos de código escritos en otros
lenguajes de programación, como C. Así, se definen en una librería un conjunto de
funciones escritas en C que interactuarán con Saphira, y desde Java se define el puente para
poder llamar a las funciones de dicha librería.
31
El programa de configuración.
El paquete jmr.conf contiene una pequeña aplicación que permite definir opciones de
configuración de distintos módulos de JMR: parámetros de configuración del simulador
3D, del cliente, etc. Debemos ejecutar esta aplicación si queremos modificar estos
parámetros antes de ejecutar JMR.
Para el control del robot, se tiene definido el paquete jmr.robots, con distintas clases que
permitirán almacenar datos y llevar un control del comportamiento (influencia de los
procesos en el estado final del robot, procesamiento de imágenes, gestión de dispositivos,
etc.) del robot.
El robot.
El objeto robot propiamente dicho viene dado por una interfaz que define una serie de
métodos que debe implementar todo robot, como son el envío de comandos de velocidad,
envío de otros comandos algo más complejos como avanzar una distancia o girar un
determinado ángulo, toma de datos como el estado, los parámetros, las lecturas de los
sonares, etc. También se tienen definidas rutinas estándar para establecer la conexión entre
cliente y servidor.
Partiendo de esta estructura básica, cada simulador (Java y Saphira) la adaptará a sus
propias necesidades, definiendo el código de cada uno de los métodos propuestos en la
estructura. Para el caso de Saphira, se definen unas llamadas en código nativo C para poder
interactuar con Saphira, y como se ha comentado anteriormente, JNI (Java Native Interface)
es la herramienta Java que se ha utilizado para comunicar el código Java con las llamadas a
las funciones C.
Se tienen los datos del robot repartidos en tres elementos: estado del robot, parámetros del
robot y sónares del robot, si bien estos dos últimos están muy relacionados.
Para gestionar el estado del robot se tiene definida una clase que almacena información
como la posición y orientación del robot, velocidad lineal y rotacional, estado de la batería,
y alguna otra información relevante. Esta información se caracteriza por variar con el
tiempo, y presumiblemente podrá ser distinta cada vez que se tomen datos del robot.
Por parámetros del robot entendemos datos estáticos que definen las dimensiones, datos
internos de trabajo, rangos, etc., del robot, es decir, sus características. Aquí encontramos
datos como los factores de conversión que emplea para las unidades de velocidad, lectura
de sonares, etc., el rango de velocidades (lineales y rotacionales) entre los que puede
moverse, el número de sonares, la disposición de los mismos, etc.
Finalmente, se define otra clase para guardar las lecturas de sonares que vaya tomando el
robot. Para cada lectura, se tomará información detallada sobre la distancia tomada,
coordenadas de la lectura, un contador que servirá para distinguir lecturas ya leídas de las
32
no leídas, etc. Este dato está muy relacionado con los parámetros del robot porque se
encuadra dentro de dicha estructura de datos: junto al número de sonares y la disposición de
los mismos, se almacenan las lecturas de cada uno (aunque sí sean datos dinámicos).
Para poder gestionar la influencia de los procesos que se estén ejecutando en el robot, se
tiene definido un manejador que se encarga de agrupar los distintos procesos que hay en
ejecución sobre un robot, evaluar las prioridades y otros factores a considerar y generar una
respuesta que determinará el nuevo estado en que se encuentre el robot (en realidad,
determinará qué velocidad lineal y rotacional asignar al robot en función de los resultados
ponderados de los procesos).
Se permite que un proceso pueda llamar a otros procesos, y así poder definir procesos más
elaborados mediante módulos simples, como por ejemplo, dirigirse hacia un punto evitando
obstáculos, que podría estar compuesta por la conducta “dirigirse a un punto” y la conducta
“evitar obstáculos”.
Visión
Además, se ha definido un puente que comunica las imágenes que puedan captarse y
procesarse con la herramienta JavaVis desarrollada en el Departamento de Ciencia de la
Computación e Inteligencia Artificial de la Universidad de Alicante, de modo que se
pueden emplear los diversos filtros y funciones que se han desarrollado para dicha librería,
y aplicarlos para procesar imágenes en el servidor y enviarlas al cliente.
33
Dispositivos.
Puede ser útil (e incluso necesario) tener la posibilidad de definir dispositivos sobre el
robot, elementos que actúen en el servidor, procesando determinados datos, y
proporcionando mecanismos para que el cliente pueda adquirir dichos datos procesados. Un
ejemplo puede ser la cámara que pueda tener el robot. Conviene disponer de un mecanismo
que permita definir la cámara, y poder visualizar así en el cliente las imágenes que capture
el robot.
Pero no sólo se trata de dispositivos físicos, como puedan ser una cámara, una pinza, o
cualquier otro elemento, sino también dispositivos lógicos, como fragmentos de código que
preprocesen información en el servidor para ponerla a disposición del cliente cuando lo
requiera. Por ejemplo, aplicar un algoritmo para determinar en qué posición puede estar el
robot, o un procesado de imágenes que también permita especular sobre dicha posición
mediante razonamiento probabilístico.
Librerías auxiliares.
Se han implementado una serie de librerías que, bien serán utilizadas por las aplicaciones
para algunas tareas auxiliares, bien permitirán al usuario definir procesos y programas Java
de forma sencilla. A continuación se comentan brevemente.
La librería jmr.fuzzy contiene un conjunto de clases que permiten emplear lógica difusa en
el comportamiento del robot, así como en otras tareas que se quieran realizar. Dispone de
elementos para poder definir variables difusas, conjuntos difusos, elaborar reglas difusas
34
que obtengan una serie de consecuentes a partir de unas entradas determinadas para sus
antecedentes, etc.
Internamente, se ha empleado la librería fuzzyJ del NRC (National Research Council of
Canada), que incorpora una serie de clases que contienen parte del código que se busca
tener. Se ha adaptado todo de forma que dispone de una librería propia, que se vale de
algunas funciones y clases de fuzzyJ para determinadas tareas, permitiendo así poder
prescindir de dicha librería en caso de considerarlo oportuno, y de ampliar los contenidos
de la misma con nuevas funcionalidades, sin la merma que supondría actuar sobre dicha
librería directamente.
Con esta librería se pueden definir conductas difusas, basadas en reglas de cuyo
cumplimiento dependerá el establecimiento de determinados parámetros como son, sobre
todo, la velocidad lineal y rotacional del robot.
La librería jmr.prob se ha definido para mantener, además de una librería para control
mediante lógica difusa, una librería que permite el control mediante razonamiento
probabilístico. Además, proporciona ayuda a la hora de realizar determinadas tareas, como
generación de datos aleatorios siguiendo una determinada distribución de probabilidades,
etc.
Así, se han definido una serie de distribuciones de probabilidad conocidas y frecuentemente
empleadas, como son la distribución normal, la distribución de Poisson, y otras. También se
ha dado pie a que el usuario pueda definir sus propias distribuciones de probabilidad, tanto
discretas como continuas, dejando simplemente el esqueleto que debe cumplir toda
distribución.
Además, se tiene implementada una versión genérica del algoritmo CONDENSATION
(CONditional DENSity propagATION), un algoritmo que permite realizar estimaciones
sobre diversas características (posición del robot, reconocimiento de imágenes, etc),
mediante la disposición de un conjunto de muestras en el espacio objeto de estudio, y la
evaluación de la probabilidad de cada muestra. Con este algoritmo genérico, se podrán
especificar variantes concretas que actúen sobre un tema específico, como por ejemplo
localizar un robot en un pasillo, evaluar la posición del robot en función de la imagen que
capta, etc.
La librería jmr.loaders es una librería auxiliar empleada para procesar los distintos tipos de
ficheros externos que se utilizan: ficheros de parámetros de robots, de descripciones de
mundos, de configuración, etc, y almacenar la información de los mismos en las estructuras
de datos pertinentes.
Los ficheros de parámetros son los mismos que los que emplea Saphira, añadiendo algunas
palabras clave más como comentarios de Saphira, de modo que en el simulador incorporan
más datos sobre los parámetros, y en Saphira son ignoradas, pero el fichero puede leerse.
Podremos así, por ejemplo, en los mundos del simulador 3D, añadir luces, texturas, etc.
35
Directorios del usuario.
Fuera del núcleo de JMR, se tienen otros directorios o paquetes para que el usuario añada
funcionalidades:
• El paquete “process”, para añadir procesos que queramos cargar en robots
• El paquete “devices”, para añadir dispositivos que queramos cargar en robots
• El paquete “vision”, para añadir procesadores de imágenes para las imágenes que
capturen las cámaras de los robots.
36
Funcionamiento general.
Zona de parámetros
de conexión
Zona de control de
lista de robots
Zona de datos
del robot
Zona de
elementos
añadidos al
robot
37
La interfaz de la aplicación cliente es la mostrada en la figura 5.1 la cual contiene lo
siguiente:
Para una descripción más a detalle de cada uno de los elementos que componen a cada zona
y sobre la cámara del robot puede consultar el apéndice 1 manual de usuario de JMR [38].
38
Capitulo 6
Otro aspecto importante es que el sistema tenga una buena organización para poder evitar
errores que puedan conllevar al mal funcionamiento del sistema o a la insatisfacción del
usuario.
Para llevar acabo la realización de este sistema hicimos uso del lenguaje unificado de
modelado (UML) [15] el cual prescribe un conjunto de notaciones y diagramas para
modelar sistemas orientados a objetos y describe la semántica esencial de lo que estos
diagramas y símbolos significan. UML se puede usar para modelar distintos tipos de
sistemas de software, sistemas de hardware y organización del mundo real.
GSM
MODEM
Robot
Central de Servicio de
Mensajes Cortos y Central
Telefónica (SMSCYCT)
Figura 6.1: Esquema general del sistema SimGSM.
La comunicación es de dos maneras por tonos o por mensajes cortos (SMS). Con respecto a
la comunicación por tonos ésta se hace de la siguiente manera:
39
Desde el simulador del teléfono celular se marca un número telefónico el cual es enviado a
la central telefónica para que ésta establezca o rechace la comunicación con el MODEM
GSM. Establecida la comunicación con el MODEM GSM del robot, se empieza a
introducir el comando, el comando es enviado al MODEM es decir el MODEM reconoce el
tono generado de la tecla oprimida, una vez completado el comando, el verificador de
comandos (VeriComando) toma el comando y verifica si el comando es válido. El
verificador de comandos envía al simulador del robot (SimRobot) los comandos que sean
validos.
1. Conexión aceptada.
2. Conexión rechazada.
3. Comando ejecutado con éxito.
4. Robot colisionó.
5. Robot atascado.
6. Robot moviéndose.
Las cadenas de caracteres establecidas para la definición de los comandos son las
siguientes:
1. ** indica que es el inicio o fin del comando.
2. #**cm. indica que el robot debe avanzar los centímetros indicados.
3. #*#grad indica que el robot debe girar los grados indicados.
Por ejemplo si queremos que el robot se mueva 20cm. La cadena del comando sería de la
siguiente manera: inicio – avanza20cm - fin
** #**20 **
Desde el simulador del teléfono celular se debe acceder al menú o la tecla que nos sirva
para poder escribir un mensaje corto, que para este caso es un comando, así como también
introducir el número a quien se le va a enviar dicho mensaje y pulsar enviar. Este mensaje
se envía al centro de servicio de mensajes cortos y posteriormente éste lo envía al MODEM
GSM, el mensaje que se reciba se pasa al verificador de comandos. En caso de no ser un
comando válido el verificador de comandos debe construir un mensaje corto y enviarlo al
MODEM GSM para que posteriormente el MODEM GSM envíe el mensaje a la central de
servicio de mensajes cortos y posteriormente a SimCelular notificando que el comando es
inválido.
40
En el caso de la comunicación por mensajes cortos la forma del comando a enviar será
igual a la estructura de un mensaje corto.
Al ejecutar el comando el simulador del robot señala la ubicación del robot en el mundo
como lo muestra la figura 6.2
El robot cuenta con una cámara para ir captando imágenes del mundo por donde esta
caminando la cual es presentada en la figura 6.3. Cabe mencionar que la imagen de la
cámara del robot es enviada a la aplicación cliente.
41
Figura 6.3: Cámara del robot
El simulador 3D nos permite ver las dos cámaras, es decir, la cámara del robot y la cámara
de usuario las cuales son presentadas en la figura 6.4
A continuación veamos el proceso de modelado del sistema SimGSM el cual tiene las
siguientes fases:
• Análisis
• Diseño
• Implementación
• Pruebas
42
• Diagrama de estado.
• Diagrama de actividades
Y por último tenemos las Pruebas, para ello utilizaremos el método de caja negra.
Con lo expuesto en el apartado del planteamiento del sistema SimGSM se identificaron dos
casos en la que podemos establecer comunicación con el robot, los cuales son:
• Tonos
• Mensajes cortos (SMS).
Con los elementos citados anteriormente se elaboró el diagrama de casos de uso el cual es
mostrado en la figura 6.2.1 la cual muestra el modelado para SimGSM cuando se ejecuta
la comunicación por tonos.
Marcar
SimRobot
Enviar
comando
SimCelular
Colgar
Marcar.
1. SimCelular requiere comunicarse con el robot.
43
2. SimCelular espera a que introduzcan un número (de 10 dígitos). Los diez
dígitos corresponden al número telefónico sin el 044
3. Establecer la comunicación con el MODEM GSM del robot.
Enviar Comando.
Como la comunicación es por tonos entonces el comando es enviado carácter por carácter
al MODEM GSM del robot, es decir, se genera un tono de la tecla oprimida el cual es el
que recibe el MODEM GSM y el proceso es como sigue:
1. Introducción y envío de caracteres del comando (tonos).
2. El MODEM GSM recibe los caracteres del comando (tonos).
3. SimRobot solicita la información del comando al MODEM, hasta que se
complete el comando.
4. SimRobot verifica el comando y si es válido lo ejecuta.
5. SimRobot envía la información sobre el comando y el estado del robot.
Colgar.
El usuario presiona la tecla colgar.
Rompe la conexión.
Para el diagrama de casos de uso en el caso de comunicación por tonos tenemos los
siguientes escenarios.
• Introducir mensaje corto.
• Enviar.
Ahora veamos el diagrama de casos de uso para el caso de mensajes cortos este diagrama es
mostrado en la figura 6.2.2.
SimRobot
Introducir mensaje
corto
SimCelular
Enviar
Figura 6.2.2: Diagrama de casos de uso para el sistema SimGSM (Mensajes Cortos).
44
Enviar.
1. Pulsar enviar.
2. El mensaje se envía a la central de mensajes cortos para posteriormente ser enviada
al número destino, que para este caso es el número del MODEM GSM del robot.
3. SimRobot obtiene del MODEM el comando enviado.
4. SimRobot envía al MODEM GSM la información del comando y el estado del
robot en forma de mensaje corto para que el MODEM pueda enviarlo.
5. El mensaje llega a la central de servicio de mensajes cortos y éste lo envía a
SimCelular.
Una vez realizados los diagramas de casos de uso abordaremos los diagramas de clases
teniendo en cuenta los requisitos mencionados en el diagrama de casos de uso.
En primer lugar tenemos el diagrama de clases para el caso de comunicación por tonos.
Las clases que se identificaron fueron las siguientes:
La clase SimCelular es la que se encarga de simular alguna de las funciones del celular
entre las cuales tenemos las siguientes:
• Marcar
• Generar tonos
• Colgar
• Envío de mensajes cortos
• Recibir mensajes cortos
Para lo cual se apoya de una clase llamada “recibir información” que es la encargada de
recibir la información que sea enviada al simulador del celular.
45
SimCelular SimSMSCyCT SimModemGSM
ControlCelular
Estarob: string
Comando: string
-Verificar
-Ejecutar
-Enviar información
46
La clase SimCelular tiene los siguientes atributos:
47
Conexión: es el encargado de establecer la conexión con el simulador
del MODEM GSM.
Romper conexión: se encarga de terminar la conexión.
Envrob: Envía la información del Smscyct al MODEM del robot.
Envcel: Envía la información del Smscyct al simulador del celular.
Enviar mensaje corto: Es el que envía el mensaje al destino
especificado.
48
Los métodos de Control Celular
49
6.2.2.- Modelo de Diseño.
Ahora veamos las relaciones entre clases, las cuales se muestran en la figura 6.2.5.
ControlCelular
Estarob: string
Comando: string
SimRobot
-Verificar
-Ejecutar
-Enviar información
La clase SimCelular se comunica con la clase SimSMSCyCT para que ésta pueda establecer
la comunicación con el MODEM del robot (SimModemGSM) el cual se comunica con el
control del robot a través del celular (ControlCelular) la cual es al encargada de verificar el
comando así como también el de su ejecución y posteriormente la clase ControlCelular se
comunica con el paquete SimRobot para la ejecución del comando y para obtener
información del robot. La relación de las dos clases es la misma para los dos casos tonos y
mensajes cortos.
50
A continuación tenemos el diagrama de composición que es presentado en la figura 6.2.6:
SimCelular SimSMSCyCT
1 1
1 1
Recibir información Escuchar
51
SimRobot
1 1
1 1
SimModemGSM ControlCelular
52
Celular: Smscyct: MODEM: Robot:
SimCelular SimSMSCyCT SimModemGSM SimRobot
Marcar
Conexión ()
Recib información ()
Conexión robot ()
Recib información ()
Recib información ()
Figura 6.2.8: Diagrama de Secuencia para el caso de uso marcar del caso comunicación por
tonos.
Figura 6.2.9: Diagrama de secuencia para el caso de uso introducir comando del caso
comunicación por tonos.
53
método “Recibir comando” del objeto Robot. Hasta este punto el comando ha llegado al
robot. Aquí es donde se utiliza el componente ControlCelular del paquete robot. En el cual
se analiza la validez del comando, si el comando es válido entonces chequea/verifica el
estado del robot y si el estado del robot es distinto a “colisión” entonces se podrá ejecutar
cualquiera de los dos comandos ‘girar’ o ‘mover’, pero si el estado es colisión entonces
solo se puede ejecutar el comando ‘girar’. Ya ejecutado el comando se informa al usuario
sobre el resultado de la operación, es decir, sobre la validez del comando o el estado del
robot.
Para enviar la información del robot, el objeto Robot invoca el método “Env inf del robot”
del objeto MODEM y a su vez éste invoca el método “Envcel” del objeto Smscyct para
enviar el mensaje. El objeto Smscyct invoca el método “Recib información” del objeto
Celular para recibir le información del robot.
Recib información ()
Recib información () Éxito o fracaso
Éxito o fracaso
Figura 6.2.10: Diagrama de secuencia para el caso de uso colgar del caso comunicación por
tonos.
54
Celular: SimCelular Smscyct: SimSMSCyCT MODEM: SimModemGSM Robot: SimRobot
Recib informacion ()
Figura 6.2.11: Diagrama de Secuencia para el caso de envió de comandos por mensaje
corto.
En la figura 6.2.11 el usuario invoca el método “introducir mensaje corto” del objeto
Celular, enseguida el objeto Celular invoca el método “Enviar mensaje corto” del objeto
Smscyct y consecutivamente el objeto Smscyct invoca el método “Recibir mensaje” del
objeto MODEM. En seguida el objeto MODEM invoca el método “Recibir comando” del
objeto robot, el objeto robot invoca el método “Env inf de robot” del objeto MODEM,
posteriormente el objeto MODEM invoca el método “Enviar Mensaje Corto” del objeto
Smscyct y éste invoca el método “Recibir mensaje corto” del objeto Celular.
Para poder modelar las interacciones entre objetos en el sistema construiremos el diagrama
de colaboración.
55
En el diagrama de la figura 6.2.12 el objeto Celular es el encargado de establecer la
conexión con el MODEM del robot, posteriormente podemos enviar el comando. Cabe
señalar que el comando se va enviando elemento a elemento, es decir, si queremos enviar el
comando **#**1000** primero se envía el * y así sucesivamente hasta terminar de enviar
el comando, el método “Recibir comando” es el encargado de recibir los elementos
enviados del comando, el método “Env resp comand” se encarga de enviar la información
sobre el robot al celular, el método “recibir información” recibe la información enviada por
el MODEM
Smscyct: SimSMSCyCT
7: Recibir Robot: SimRobot
mensaje 6: enviar
mensaje
2: enviar mensaje corto 5: Env inf
del robot
1: Marcar
3: Recibir mensaje
Celular: SimCelular
4: recibir
comando
MODEM: SimModemGSM
56
El diagrama de estados para el objeto Celular es mostrado en la figura 6.2.14
Recib informacion
Conexión
Marcar Colgar
Celular Celular
Introducir
comando
Sin conexión
La figura 6.2.14 muestra los estados del objeto Celular el cual comienza cuando se invoca
el método marcar del objeto celular, posteriormente pasa a esperar respuesta sobre si se
estableció la conexión. Si la conexión quedó establecida entonces se procede a la
introducción y el envío de comandos o a colgar.
Romper conexión
Conexión
Smscyct
Envrob
Smscyct
Envcel
La figura 6.2.15 muestra los estados del objeto Smscyct el cual está en espera de una
conexión. El ser invocado dicho método identifica hacia donde va ir la información
recibida. Cuando la información va a ir del celular al robot se invoca el método Envrob y
cuando la información va ir del robot al celular se invoca el método Envcel.
57
Liberar
conexión
Enviar
Conexión comando
robot al robot
MODEM MODEM
La figura 6.2.16 muestra el diagrama de estados para el objeto MODEM el cual está
conectado con el robot. Cuando se invoca el método conexión robot el MODEM está en
espera de una instrucción. Para identificar cual método invocar éstos pueden ser el de
liberar conexión o el enviar comando al robot o enviar información.
El método enviar información es cuando se envía la información del robot hacia el celular.
add
Recibir comando
Robot Robot
Verificar estado
Robot
del robot
Robot Ejecutar
58
La figura 6.2.18 muestra los estados del robot. El simulador del robot soporta a varios
robots pero para nuestro caso solo se utiliza un robot. Entonces lo primero que tenemos que
hacer es agregarlo, una vez agregado el robot su estado inicial es de “STOPPED” enseguida
espera por un comando el cual puede ser de avanzar o girar. A la hora del inicio de la
ejecución del comando el estado del robot cambia a “MOVING”, el estado resultante de la
ejecución del comando puede ser de “COLLISION”, este estado quiere decir que el robot a
chocado con algún obstáculo; ó de “STOPPED”, esto quiere decir que el robot esta listo
para ejecutar otro comando. Cuando el estado es de “COLLISION” el robot solo puede
ejecutar comandos de girar.
Celular Colgar
Recibir mensaje corto
La figura 6.2.19 muestra el diagrama de estados para el objeto celular para el caso de
mensajes cortos. Cuando se invoca el método introducir comando el objeto puede estar
esperando por recibir algún mensaje sobre la información del comando enviado o puede
enviar otro mensaje corto.
Enviar
mensaje Cerrar programa
corto
Smscyct
59
Recibir
mensaje
Colgar
MODEM
Recibir
comando Veri comando
Robot Robot
Verificar estado
Robot
del robot
Robot Ejecutar
La figura 6.2.22 muestra el diagrama de estados para el objeto robot. Cuando el método
recibir comando es invocado el objeto robot recibe el comando para su posterior
verificación y ejecución de dicho comando. El estado del robot es mostrado en la figura
6.2.19.
Diagrama de actividades:
60
SimCelular SimModemGSM
SimSMSCyCT
Marcar
Conexión ()
Recib informacion
Recib informacion
SimCelular SimModemGSM
SimSMSCyCT
Introducir comando
Envrob ()
Recibir
comando
Envcel
61
SimCelular SimSMSCyCT SimModemGSM
Colgar
Romper conexión ()
Liberar conexión
()
Recib informacion
Recib informacion
SimCelular SimModemGSM
SimSMSCyCT
Introducir Mensaje
Corto ()
Enviar mensaje ()
Recibir mensaje ()
Recibir
comando ()
Enviar mensaje ()
Figura 6.2.26: Diagrama de actividades para el caso de uso enviar mensaje corto
62
La figura 6.2.23 muestra el diagrama de actividades para el caso de uso marcar el cual
comienza con la invocación del método marcar, posteriormente se pasa a establecer la
conexión con el robot y el envío de la respuesta de la conexión de la central y a
continuación la respuesta de la conexión con el MODEM
La figura 6.2.24 presenta el diagrama de actividades para el caso de uso introducir comando
el cual se introduce el comando y se envía a la central. Posteriormente este lo envía al
MODEM del robot, y éste lo envía al robot y finalmente se envía la información del estado
del robot o del comando.
La figura 6.2.25 nos muestra el diagrama de actividades para el caso de uso colgar. El
usuario invoca el método colgar, el cual pasa esta solicitud a la central para que
posteriormente ésta termine la conexión con el MODEM el cual envía la respuesta de la
operación a la central y ésta la pasa al celular
63
6.2.3.- Modelo de Implementación.
SimGSM
Simrobot
64
La clase SimCelular es la encargada de simular algunas de las funciones del teléfono
celular.
El paquete Simrobot es el simulador JMR (Java Mobile Robot) el cual sólo tenía la función
de simular el robot y para lo cual se le agregó la clase SimModemGSM y la clase
ControlCelular, para simular que el robot está conectado a un MODEM GSM.
El software usado fue el simulador del robot JMR 2.0 (JAVA Mobile Robots) [36].
El software utilizado para la implementación del simulador fue JAVA 1.4.1, la plataforma
en la que se ejecuta este simulador es en el sistema operativo “Windows XP Professional” y
se ejecuta en una computadora con procesador Pentium III a 500Mhz y memoria de
256MB.
El sistema de simulación del control de un robot móvil a través de GSM (SimGSM) consta
de tres módulos los cuales son las siguientes:
• SimCelular.
• Smscyct.
• Paquete de simulación del robot.
65
Comenzaremos con la parte de SimCelular para lo cual nos apoyaremos del siguiente
ejemplo.
El usuario desea controlar el robot para lo cual deberá seguir lo siguientes pasos:
• Marcar el número del MODEM.
• Enviar comando.
• Colgar.
66
2220000002 $ 2220000001 $ Conexión $ 2220000000
La cual contiene el número del celular, el número de destino que es el del MODEM, la
solicitud de conexión y el número de la central telefónica.
Enseguida compara el número de destino con el número del MODEM, si es igual entonces
establece la conexión con el MODEM y envía una respuesta de éxito, de no ser así envía
una respuesta de fracaso al celular.
La cual se pasa al método para separar la información, el cual nos da el siguiente resultado.
67
Conexión aceptada
Al llegar el comando al MODEM éste lo pasa al robot. Como al simulador del MODEM
llega la información éste la separa y envía el mensaje al robot y se invoca el método para
verificar si el comando es válido. Cabe mencionar que el paso de información es por medio
de comandos AT.
Si el comando es válido entonces verifica el estado del robot, si el estado del robot es el de
colisión entonces identifica de que comando se trata, si es de avanzar o girar, si es de
avanzar entonces el comando no se ejecuta pero si es de girar lo ejecuta. Si el estado es de
68
movimiento espera a que termine de moverse y posteriormente ejecuta el comando
verificando de nueva cuenta el estado del robot y si el estado es de parado entonces ejecuta
el comando enviado, la ejecución del comando se presenta en al figura 6.2.31.
**#**1000
La ejecución del comando es mostrada en la figura 6.2.31 la cual muestra la lectura de los
sónares, el estado del robot, así como también los números telefónicos involucrados en la
comunicación, el comando de mover y el comando enviado por el usuario. En la figura
6.2.32 se muestran la cámara de usuario y la cámara del robot, la cámara de usuario es
como si fuera una cámara colocada en la parte de arriba para observar el mundo donde el
robot va interactuar y la cámara del robot es la que tiene colocada el robot.
69
Mover
**#**1000**
70
Posteriormente envía la información sobre el comando en caso de ser inválido, en caso
contrario envía la información sobre el estado del robot de la siguiente manera:
Por otra parte el celular está esperando la respuesta de la validez o invalidez del comando o
la información sobre el estado del robot. Una vez recibida la respuesta se procede a enviar
otro comando o a colgar.
**#**1000**
71
Figura 6.2.34: Introducir número.
Al pulsar el botón de enviar se forma la siguiente estructura para ser enviada a la central de
servicio de mensajes cortos
Primero tenemos el número que corresponde al número del celular, enseguida tenemos el
número corresponde a la central de servicio de mensajes cortos, posteriormente el comando
y finalmente el número del destinatario.
72
En este caso el número de destino es el de la central porque es donde se envía el mensaje, el
número de destinatario es el número del MODEM. La figura 6.2.35 muestra la central
telefónica para este caso.
El robot recibe el mensaje (comando) e invoca el método para verificar el comando como el
comando es válido para este caso entonces chequea el estado del robot para verificar si lo
puede ejecutar, esto quiere decir que para poder ejecutar un comando de mover sólo se
puede ejecutar si el robot no está en estado de colisión y un comando de girar se puede
ejecutar sin importar el estado en el que se encuentre.
73
6.2.4.- Modelo de Pruebas y Resultados.
Prueba 1
La figura 6.2.37 muestra el número de quien marco, el número de destino, el mensaje que
dice que el número es desconocido y que fue una solicitud de conexión.
74
Figura 6.2.37: Central telefónica
Prueba 2.
2220000002$2220000000$**#**1000**$2220000001
La cual separa la información y hace las comparaciones de los números para reencaminar el
mensaje pero como no lo conoce manda el siguiente mensaje al celular:
75
Figura 6.2.38: el número esta fuera de alcance
76
Prueba 3
Cuando el comando enviado es incorrecto.
El comando es introducido y enviado a la central y posteriormente la central lo envía al
robot el cual lo verifica y envía el mensaje de comando incorrecto.
La figura 6.2.39 presenta el caso cuando el comando es incorrecto. Esto es para cuando la
información es enviada por medio de mensajes cortos y para la comunicación por tonos es
similar.
77
Capitulo 7
7.1. SimGSM.
78
Esta interfaz tiene las teclas de marcar y colgar además de la tecla de envío de mensajes
cortos y las teclas que comúnmente tiene un teléfono celular.
Para el marcado de un número sólo debemos dar clic en la tecla del número que se desee y
una vez terminado la introducción del número procedemos a pulsar la tecla marcar.
Por otro lado tenemos el simulador de la central de mensajes cortos y la central telefónica la
cual tiene una interfaz como la mostrada en la figura 7.2.
En la figura 7.2 de la interfaz del componente SMSCyCT se muestra los números de los
teléfonos entrante, intermedio, saliente y el mensaje en caso que se trate del envío de un
mensaje corto.
A la hora de pulsar marcar en el simulador del celular, éste se conecta con la central
telefónica para verificar el número y posteriormente establecer la llamada. En este caso,
como la central telefónica sólo puede establecer la llamada con el MODEM del robot sólo
acepta el numero 2220000001. Si se marcara cualquier otro número entonces se escuchará
un tono de ocupado y no se podrá establecer la comunicación. Esto es para la comunicación
por tonos. Para la comunicación por mensajes cortos la central de mensajes cortos sólo
conoce también el número 2220000001 que corresponde al MODEM del robot. En caso
que se introduzca otro número de destino, la central telefónica respondería con un mensaje
de que el número no existe.
Una vez verificado que el número es correcto se establece la comunicación con el MODEM
del robot por medio de tonos y podemos empezar a introducir los caracteres del comando.
79
7.2. Java Mobile Robots (JMR).
La figura 7.3 muestra la interfaz del cliente del simulador JMR en la cual podemos añadir
más robots así como también quitarlos.
Para añadir un robot solo se pulsa en el botón “add” y se nos presenta un cuadro de diálogo
como el mostrado en la figura 7.4
80
En el cuadro de diálogo mostrado debemos introducir el nombre del robot que deseamos y
pulsar aceptar. A continuación se presentará una ventana para elegir el mundo sobre el cual
el robot se desenvolverá. La ventana es como la mostrada en la figura 7.5. Posteriormente
se carga el mundo elegido en el simulador 3D de java, el cual es mostrado en la figura 8.6.
La figura 7.5 muestra el cuadro de dialogo abrir y los mundos con los que se cuentan.
81
En la figura 7.6 se muestra el simulador 3D de java el cual es el espacio donde el robot se
desenvuelve.
En la figura 7.3 de la interfaz se muestran 5 cuadros de texto en los cuales se despliega la
información que pasa el MODEM al simulador del robot, estos son:
• No. de origen
• No. destino
• Comando
• Número
• VeriComando
No. de origen: Este es el número del celular que esta enviando el comando.
No. destino: Este es el número del MODEM.
Comando: Es el comando enviado para la ejecución.
Número: Es el número intermedio por el cual paso el comando.
VeriComando: Es el que verifica si el comando es válido y ahí se muestra el resultado.
82
8. Conclusiones y observaciones.
Esta tesis ha presentado el modelado, usando UML, del sistema simulador del control de un
robot móvil a través de GSM. El modelado incluye: el modelo de análisis, el modelo de
diseño, modelo de implementación y modelo de pruebas.
Cada modelo esta formado por diferentes diagramas UML. En el modelo de análisis se
tienen los diagramas de casos de uso y diagrama de clases, para el diseño tenemos los
diagramas de clase, secuencia, interacción, estado y actividades, y para la implementación
se tiene el diagrama de componentes. La implementación se desarrolló usando los paquetes
JMR, Java Media Framework, y el lenguaje de programación java. El sistema es una
arquitectura cliente servidor.
Al sistema de simulación del control de un robot móvil a través de GSM se podría hacer un
modelado más a detalle y también mejorar la organización del sistema para así poder
contemplar más aspectos que pudieran con llevar a un mejor funcionamiento del mismo, así
como también el de la transferencia de imágenes que capta la cámara del robot al celular.
Además se puede hacer más eficiente la comunicación por tonos si en lugar de transmitir
caracter a caracter se transmite en una trama GSM, como se realiza en la comunicación por
mensajes cortos.
A futuro la simulación del control de un robot móvil podría ser implementada de manera
real, es decir, que desde un teléfono celular con tecnología GSM se pueda controlar a un
robot, y poder recibir en el celular las imágenes que capta la cámara del robot.
83
Apéndice 1 Funcionamiento del Sistema GSM y Arquitectura del
Protocolo
Redes de bases de datos y estandarización
GSM define un número de bases de datos de la red que son utilizadas en la ejecución de las
funciones del administrador de la movilidad y control de llamadas en una red móvil
terrestre pública (PLMN). Estos elementos incluyen los registros de la localización que
consisten del registro de localización de llamada (HLR), el registro de la localización del
visitante (VLR), el registro de identificación del equipo (EIR), y la central de
autentificación (AC). El HLR mantiene y actualiza la localización del suscriptor móvil y/o
su información de perfil de servicio. El VLR mantiene la misma información localmente,
donde el suscriptor está vagando. El VLR es definido como una función independiente,
pero es visto generalmente por los vendedores como parte del MSC. Estos registros son
llamados puntos de control de servicio (SCP) en la terminología usada en una red
inteligente (IN). El EIR es utilizado para enumerar las identidades del equipo de los
suscriptores, que se utilizan para la identificación del equipo desautorizado del suscriptor, y
por lo tanto la negación del servicio por la red. La AC proporciona las claves y algoritmos
para mantener la seguridad de las identidades del suscriptor, y para la encriptación de la
información pasada sobre el interfaz del aire. El MSC se equipa de un módulo de punto de
conmutación del servicio (SSP) el cual es utilizado para consultar las bases de datos tales
como un registro de la localización para identificar donde encontrar a un suscriptor móvil y
cuál es su perfil de servicio, para el encaminamiento, y procesamiento de las llamadas al
suscriptor.
Las interfaces se especifican vía la parte de aplicación del móvil (MAP) que utiliza la
parte de aplicación de la capacidad de la transacción (TCAP) de (SS7). Estos son todos los
elementos de una IN. GSM se considera una aplicación de IN y proporciona esta
consideración de implementación de GSM como experiencia en establecimiento de una red
inteligente.
Plan de numeración
84
El número de MSISDN es utilizado para marcar por un suscriptor que llama del
PSTN/ISDN, y utilizado para encaminar la llamada a la entrada MSC de la red GSM. El
GSM MSC entonces utiliza el MSISDN para interrogar al HLR apropiado para requerir la
información para el encaminamiento y ampliar la llamada al MSC del teléfono celular que
visita.
Un intercambio local o de tránsito, al recibir una llamada destinada para un móvil, reconoce
el NDC, y encamina la llamada a una entrada MSC. La entrada MSC realiza la pregunta de
HLR para el MSRN, que entonces utiliza para reencaminar la llamada.
Cuando un intercambio local (MSC) recibe una llamada destinada para un teléfono celular,
éste pregunta al HLR del teléfono celular por el número roaming del teléfono celular. En
el recibo del MSRN, encamina la llamada al MSC del teléfono celular llamado.
Otros componentes de una PLMN, los cuales pueden ser direccionados para el
encaminamiento de varios mensajes de señales, son los MSC’s, y los registros de
localización. Si estos elementos se direccionan dentro del mismo PLMN, los códigos de
punto (CP) SS7 pueden ser utilizados. Si no, para el encaminamiento del interPLMN, los
85
títulos globales (GT) derivados, por ejemplo, del código del país móvil (MCC) y de los
códigos de destinación nacionales (NDC) se utilizan.
En GSM, los canales de radio se basan en una estructura de TDMA que es implementada
en las subbandas de múltiple frecuencia (TDMA/FDMA). Cada estación base se equipa
de cierto número de estos canales de frecuencia /tiempo preasignados.
La CEPT ha hecho disponible dos bandas de frecuencia para ser utilizados por el sistema
GSM. Estas son: 890-915MHz para transmitir del teléfono celular a la estación base y 935-
960MHz para transmitir de la estación base al teléfono celular. Estas bandas son divididas
en 124 pares de portadores espaciados por 200KHz, comenzando con el par 890.2MHz.
Cada sitio de la célula tiene una asignación de cierto número de portadores, extendiéndose
de solamente de uno a generalmente no más de 15 canales. La célula alcanza en tamaño de
uno a varios kilómetros.
El esquema de TDMA utiliza un bit total de índice alrededor de 270kb/s (con un cambio
mínimo gaussiano afinando la modulación, GMSK) y requiere adaptar técnicas sofisticadas
de receptor para hacer frente a los problemas de la transmisión causados por la desaparición
multidireccional.
86
El GSM define una variedad de tráfico y los canales de señales/control con diversos índices
de bit. Estos canales son asignados a canales lógicos derivados de la estructuración de las
ocho ranuras básicas de marcos TDMA. Para este propósito, se han definido dos estructuras
de multiframe: una que consiste en 26 marcos de tiempo (dando por resultado un intervalo
de repetición de 120ms), y uno que abarca 51 marcos de tiempo (o 236ms). El multiframe
26 se utiliza para definir los canales del tráfico (TCH), y sus canales asociados lentos y
rápidos de control (SACCH y FACCH) que llevan la información de control del enlace
entre el teléfono celular y las estaciones base.
Los TCH se han definido para proporcionar seis diversas formas de servicios, es decir,
canales de datos o conversación de máxima velocidad (fullrate) soportando velocidades
efectivas de bits de 13kb/s (para conversación), 2.4, 4.8, y 9.6kb/s y canales de velocidad
media con velocidad efectiva de bits de 6.5kb/s (para conversación) y 2.4kb/s, y 4.8kb/s
para datos (nota que la velocidad total de bit sobre estos canales es más alta debido a la
codificación requerida del canal, 22.8kb/s máxima velocidad para conversación) la máxima
velocidad de los TCH’s se implementa en 24 marcos del multiframe, con cada TCH
ocupando una ranura de tiempo de cada marco. El SACCH es implementado en el marco 12
(numerado a partir de la 0), proporcionando ocho canales SACCH, uno dedicado a cada
uno de los ocho canales de TCH. El marco 25 en el multiframe es actualmente ocioso y
reservado para implementar los ocho SACCH adicionales requeridos cuando los canales de
conversación de media velocidad se convierten en una realidad.
El FACCH es obtenido a petición por robo del TCH, y utilizado por cualquier terminal para
señalar las características y la transferencia de la trayectoria física, u otros propósitos tales
como conexión “handover” de control de mensajes. El robo de una ranura de TCH para
señales FACCH se indica a través de una bandera dentro de la ranura de TCH.
El marco 51 del multiframe tiene una estructura más compleja y referiremos al lector a la
recomendación 05.0 del G/M para las posiciones específicas de varios canales lógicos en el
multiframe. La estructura del marco 51, sin embargo, se utiliza para derivar los canales de
señales siguientes y de control.
SDCCH – el canal de control dedicado es único y se utiliza para la transferencia del control
de la llamada que señala a y desde el teléfono celular durante el establecimiento de la
llamada. Como los TCH’s, el SDCCH tiene su propio SACCH y se libera una vez que la
llamada es establecida.
BCCH – el canal del control de la difusión se utiliza del BSS al teléfono celular para emitir
información del sistema tal como los parámetros de sincronización, servicios disponibles y
el ID de célula. Este canal está continuamente activo, con ráfagas ficticias sustituidas
cuando no hay información que transmitir porque la fuerza de las señales es supervisada
por los teléfonos celulares para la determinación de desocupado.
SCH – el canal de la sincronización lleva la información del BSS para la sincronización del
marco.
87
FCCH – el canal del control de la frecuencia lleva la información del BSS para la
sincronización del portador.
CCCH – los canales comunes de control se utilizan para transferir señales de información
entre todos los teléfonos celulares y el BSS en funciones de creación de la llamada y
paginación de la llamada callpaging.
• PCH: el canal de paginación para llamar (paginar) a un teléfono celular del sistema
• RACH: el canal de acceso aleatorio usado por los teléfonos celulares que intentan
tener acceso al sistema. Los usuarios móviles utilizan el esquema ranurado de Aloha
sobre este canal para solicitar un DCCH del sistema en la iniciación de la llamada.
Observe que los AGCH y los PCH nunca son utilizados por un teléfono celular al mismo
tiempo, y por lo tanto son implementados sobre el mismo canal lógico. Todos los canales
de señales de control, excepto el SDCCH, son implementados en la ranura de tiempo 0 en
diversos marcos de TDMA de los 51 multiframes usando una frecuencia portadora dedicada
RF asignada en una por célula base. La estructura del multiframe para el SDCCH y su canal
asociado lento asociado del control (SACC) se pone en ejecución en uno de los canales
físicos (las ranuras de TDM y los portadores del RF) seleccionados por el operador de
sistema.
Administración de la movilidad
Conexiones “handoffs”.
Estas conexiones pueden ser hechas entre los canales en la misma célula, entre los canales
en diversas células bajo misma cobertura de BSS, o entre las células bajo cobertura de
diversos BSS’s, e incluso entre diversos MSC’s. En GSM, el BSS puede autónomamente
manejar las conexiones handoffs en la misma célula, o entre las células bajo su propia
cobertura. Esto se llama conexiones handoffs internas. El MSC está implicado en el manejo
de las conexiones handoffs que necesitan ocurrir entre las células bajo cobertura de dos
diversos BSS’s. Estas son llamadas conexiones handoffs externas.
El MSC original que maneja una llamada mantendrá siempre el control de la llamada en un
handover externo a un MSC diferente e incluso a un MSC subsecuente. Cuando el BSS
realiza una conexión handoff interna, ésta informa al MSC la terminación del proceso. La
necesidad de una conexión handoff se puede indicar por el usuario móvil, a través de
mensajes en el FACH, o por el BSS ya que éste mantiene el rastreo de la calidad de las
88
señales recibidas. El BSS supervisa la calidad de la señal de radio recibida y también
transmite tales resultados al MSC quien mantiene una vista más global sobre los canales de
radio que pertenecen a su BSS’s. El MSC también puede iniciar la necesidad de una
conexión handoff por razones de tráfico en una tentativa de balancear la carga fuera del
tráfico en la red.
Una llamada puede ser iniciada por un usuario móvil a otro móvil o un usuario fijo, o al
revés, por un usuario fijo a un móvil. Para encaminar una llamada a un usuario móvil, sin
embargo, la señal de red necesita primero localizar el móvil. Ilustraremos esto para el caso
cuando una llamada es iniciada por un usuario fijo, y después comentaremos respecto al
panorama en el cual la llamada es iniciada por un móvil a otro móvil. Cuando la llamada es
iniciada por un móvil a un usuario fijo, el procedimiento es un poco directo.
En el caso de una llamada iniciada por un usuario fijo, el PSTN puede utilizar el número
ISDN de la estación móvil, MSISDN, para encaminar la llamada a la entrada más cercana
MSC dentro de PLMN del móvil. El GMSC alternadamente utiliza el MSISDN para
interrogar al HLR del móvil para la información de encaminamiento requerida para ampliar
la llamada al visitante MSC del móvil en ese entonces. Este visitante MSC (o más
específicamente, el VLR dentro del MSC local) es identificado en el HLR del móvil por el
MSRN que especifica el MSC visitante
89
Después de respuesta de paginación, la actual BSS está situada. Se establecen las
conexiones RR y MM, al igual que la autentificación del usuario (para acceder a la red),
además del cifrado.
El VLR entonces envía los parámetros requeridos para establecer la llamada al MSC, y
puede también asignar al teléfono celular un TMSI nuevo para la llamada. El MSC envía un
mensaje de establecimiento a la estación móvil. La estación móvil, al recibir el mensaje de
establecimiento, realiza una comprobación de compatibilidad y retorna un mensaje de
llamada confirmada a la red, que puede incluir la capacidad de portador de la estación
móvil.
El BSS puede en este punto asignar un canal del tráfico, TCH, a la llamada, o puede asignar
éste en una plataforma posterior, siendo los últimos al recibir el “mensaje conectar” de la
estación móvil. Si la alerta de usuario es llevada fuera del MS, un mensaje de alerta se
envía al suscriptor que llama. Cuando, el suscriptor contesta a la llamada, el MS envía un
mensaje de conectar, que en el lado de la red inicia la terminación de la asignación del
canal de tráfico y el intercambio a través de la conexión. El mensaje de conectar progresa al
suscriptor de la llamada. La red también envía un reconocimiento al MS, de entrada en el
estado activo.
La arquitectura del protocolo del GSM usada para el intercambio de señales de mensajes
concierne a la movilidad, los recursos de radio, y las funciones de administración de la
conexión. Las capas del protocolo consisten en la capa física, la capa de transmisión de
datos, y la capa 3. No se deben confundir las funciones de la capa 3 definidas por GSM
con las funciones de la capa 3 del modelo OSI.
Los protocolos de la capa 3 del GSM se utilizan para la comunicación de recursos de red, la
movilidad, el formato del código y los mensajes relativos a llamadas de administración
entre las varias entidades de la red implicadas. Puesto que en el modelo OSI algunas de
estas funciones son proporcionadas realmente por las capas más altas, el término “capa de
mensaje” podría ser más apropiado para referirse a la capa 3 en GSM. La capa de mensaje
(capa 3) del protocolo se compone de tres subcapas llamadas administración de recursos
(RR) implementada sobre el enlace entre el MS y el BSS, el administrador de la movilidad
(MM), y las subcapas de administración de la conexión (CM) que proporcionan la
comunicación entre el MS y el MSC.
La capa 3 también pone en práctica la parte del transporte del mensaje (MTP), nivel 3, y la
parte de control de la señal de conexión del CCITT SS7 sobre el enlace entre el BSS y el
MSC (la interfaz de A) para proporcionar el transporte y las funciones de direccionamiento
para señales de mensajes que pertenecen a las varias llamadas encaminadas a través del
MSC.
Para discutir la funcionalidad proporcionada por la capa 3 en la pila del protocolo GSM, se
debe prestar particular atención en no confundir los detalles de la funcionalidad de esta
capa con la que es proporcionada comúnmente por la capa 3 del modelo de referencia OSI.
90
En GSM, las subcapas CM y MM, por ejemplo, proporcionan realmente algunas de las
funcionalidades que son realizadas por las capas de transporte, de sesión, y presentación de
OSI ver Fig. 2.2.
BSS
MS MSC
CM CM
BSSAP
MM RR MM
Message SCCP
Layer Message
(Layer 3) RR LAPDm BSSAP Layer
MTP SCCP (Layer 3)
LAPDm TDMA/FDMA
Layer2 MTP
Layer2
TDMA/FDMA
Layer1 Layer1
Capa Física
La capa física en el enlace de radio fue discutido en la sección sobre la estructura del canal
de radio. Los canales del tráfico en la telefonía fija se forman de ranuras de TDM puestas
sobre enlaces de 2.048Mb/s (troncos E1). Los canales de señales se multiplexan de modo
lógico en un agregado de las ranuras de TDM.
La capa de transmisión de datos sobre el enlace de radio (que conecta al MS con el BSS) se
basa en un protocolo parecido a LAPD (Link Access Protocol D channel) como el
protocolo, etiquetado como LAPDm, que se ha modificado para la operación dentro de la
limitación fijada por la trayectoria de radio. En particular, LAPDm no utiliza banderas (y
por lo tanto ningún bit de relleno) para la delimitación del marco. En cambio, la
delimitación del marco en LAPDm es hecha por la capa física que define los límites del
marco de transmisión. LAPDm utiliza un campo “Indicador de la longitud” para distinguir
el campo que lleva información de los bits usados para llenar el marco de transmisión.
LAPDm utiliza un campo de dirección para llevar el identificador del punto de acceso del
servicio, (SAPI), (3 bits en este caso) que LAPD también utiliza para identificar al usuario
del servicio proporcionado por el protocolo. Al usar marcos de comando/control, el SAPI
identifica el usuario para quien un marco de comando es dirigido, y el usuario que transmite
un marco de respuesta. Los 2 bits del discriminador del protocolo de enlace (LPD) son
utilizados para especificar una recomendación particular del uso de LAPDm, el C/R es un
91
solo bit que especifica si es un marco de comando o de respuesta según lo utilizado en
LAPD, y una dirección ampliada (EA) de 1-bit se utiliza para extender el campo de
dirección a más de un octeto (el bit EA en el último octeto de la dirección se debe fijar a 1,
si no a 0). El bit 8 es reservado para futuros usos.
LAPDm utiliza un campo de control como se utiliza en LAPD para llevar una serie de
números, y para especificar el tipo de marco. LAPDm utiliza tres tipos de marcos usados
para las funciones de supervisión, la transmisión innumerable de la información y las
funciones de control (modo sin reconocimiento), y la transmisión de información numerada
(modo multiframe reconocido) según lo utilizado en LAPD. LAPDm no utiliza bit
verificador de redundancia cíclica para la detección de error. Los mecanismos de
corrección y detección de error son, en cambio, proporcionados por una combinación del
bloque y de la codificación circunvolucional usados (en conjunción con el bit de
interpolación) en la capa física.
En el enlace terrestre conectando el BSS al MSC (la interfaz A), el nivel 2 de MTP del
protocolo SS7 se utiliza para proporcionar las funciones de la capa 2 de OSI del transporte
confiable para señales de mensajes, tales como recuperación de errores de la transmisión a
través de la detección de error y de la retransmisión.
Estos son los procedimientos usados para establecer, mantener y liberar una conexión MM
entre el MS y la red (MSC) sobre la cual una entidad de la subcapa de la administración de
la conexión (CM) puede intercambiar la información con este par. Más de una conexión
MM puede ser activada al mismo tiempo para servir entidades múltiples CM. Cada entidad
CM dentro del MS tendrá su propia conexión MM, y cada conexión es identificada por el
discriminador del protocolo, y un identificador de la transacción dentro de las señales de
92
mensajes intercambiados. El identificador de transacción es de clase análoga a la referencia
de la llamada usada por ISDN para identificar señales de mensajes de diferentes llamadas
sobre el canal D. Así las llamadas en paralelo que pueden ser soportadas por el mismo MS
son entonces identificadas por un valor diverso para el parámetro del identificador de la
transacción. El establecimiento de una conexión MM requiere que no estén activos
procedimientos específicos MM.
Los procedimientos específicos de MM no instalan una conexión MM. Sólo pueden ser
iniciados cuando otros procedimientos específicos MM no están funcionando, y no esté
establecida la conexión MM. Estos procedimientos consisten en la actualización de la
localización y los procedimientos de la fijación de IMSI.
Actualización de la localización
93
Fijar IMSI
Procedimientos comunes MM
Los procedimientos comunes MM pueden ser iniciados en cualquier momento mientras que
un canal de radio dedicado existe entre la red y el MS. No establecen una conexión MM,
pero pueden ser iniciados durante un procedimiento específico MM, o mientras una
conexión MM tiene lugar. Los procedimientos comunes MM consisten en IMSI de
desconexión, reasignación de TMSI, y autentificación/identificación.
Reasignación TMSI
94
proporcionado por una estación móvil es desconocido en la red, por ejemplo, en el caso de
una falla de la base de datos, el MS tiene que proporcionar su IMSI a petición de la red.
En este caso el procedimiento de identificación tiene que ser realizado antes de que el
procedimiento de TMSI pueda ser iniciado.
Autentificación
Identificación
Este procedimiento es utilizado por la red para solicitar a una estación móvil proporcionar
los parámetros de identificación específicos a la red, tal como los identificadores móviles
internacionales del suscriptor o del equipo del usuario (IMSI o IMEI). La estación móvil
debe estar lista para responder a un mensaje de solicitud de identidad en cualquier
momento mientras que la conexión RR existe entre el teléfono celular y la red.
El SMS es un servicio definido por GSM que proporciona comunicación rápida del modo
de paquete (“sin conexión”) de mensajes hasta 140 bytes entre el MS y un tercer
participante que es el centro de servicio. Estos mensajes se pueden enviar o recibir por la
estación móvil mientras que una llamada de voz ó datos está en el estado activo o inactivo.
Es aceptable, sin embargo, si se aborta el servicio mientras que una llamada está en un
estado transitorio tal como desocupado u ocupado-a-ocioso. El centro de servicio es
responsable de la colección, del almacenaje, y de la entrega de mensajes cortos, y está fuera
del alcance de GSM.
95
administración de aplicación de la BSS (BSSMAP), y el proceso de Aplicación de
Transferencia Directa (DTAP).
El BSSMAP se utiliza para poner todos los procedimientos en ejecución entre el MSC y el
BSS que requieran la interpretación y el procesamiento de la información relacionada para
distinguir llamadas, y la administración de los recursos. Básicamente, el BSSMAP es el
proceso dentro del BSS que controla los recursos de radio en respuesta a instrucciones del
MSC (en ese sentido, el BSSMAP representa la subcapa RR para el MSC). Por ejemplo,
el BSSMAP se utiliza en la asignación y la conmutación de los canales de radio en el
establecimiento de la llamada y los procesos de desocupado.
Los protocolos CCITT SS7 MTP y SCCP se utilizan para poner en práctica la transmisión
de datos y las funciones de transporte de la capa 3 para llevar el control de la llamada y la
administración de la movilidad de señales de mensajes sobre el enlace BSS-MSC. La señal
de información de las subcapas MM y CM de la estación móvil se encaminan sobre los
canales de señales (tales como el DCCH, el SACCH, el FACCH) al BSS de donde
transparentemente se retransmiten a través del proceso DTAP a un SCCP, del tipo CCITT
SS7 canal lógico, asignado para esa llamada, sobre el enlace BSS-MSC para la transmisión
a la par de la entidad CC en el MSC para el procesamiento. De manera semejante, cualquier
información de señal de llamada iniciada por el MSC en la conexión de SCCP se
retransmite con el proceso de DTAP en el BSS al canal de señal asignado, usando el
protocolo de transmisión de datos LAPDm, para la entrega a la estación móvil.
El trabajo entre el protocolo de la capa 2 sobre el lado del radio y el SS7 en el enlace BSS-
MSC es proporcionado por una unidad de distribución de datos dentro del campo de
información del SCCP. Estos parámetros se conocen como la discriminación, y los
parámetros del identificador de la conexión de transmisión de datos (DLCI). El parámetro
de la discriminación (dedicado actualmente un octeto) utiliza un solo bit para direccionar
un mensaje ya sea al proceso DTAP o al proceso BSSMAP. El parámetro de DLCI (un
octeto de tamaño) se compone de dos subparámetros que identifiquen el tipo de canal de
radio (tal como el DCCH, el SACCH, el FACCH), y el valor de la “interfaz del punto de
acceso de servicio” (SAPI) (en el protocolo LAPDm) usado para el mensaje en el enlace de
radio. El SCCP proporciona información para el multiplexado lógico de señales de diversas
llamadas sobre el mismo canal físico en el enlace de BSS-MSC. Por cada llamada
soportada por un BSS, una conexión lógica de SCCP se establece en el enlace de BSS-
MSC. Cualquier información perteneciente a una llamada específica fluye a través de esta
conexión asociada de SCCP y es así cómo el intercambio de señales de información
perteneciente a diversas llamadas son identificadas en el BSS o el MSC.
96
El modo de servicio sin conexión del SCCP también se apoya para la transferencia de
mensajes relacionados OA&M así como los mensajes de BSSMAP que no pertenecen a
ninguna llamada específica (nota: los mensajes de BSSMAP que pertenecen a llamadas
específicas, tales como mensajes hand-off, se transmiten usando la conexión de SCCP
establecida para la llamada). La función de encaminamiento de SCCP utiliza el número del
subsistema (SSN) en el octeto de la información de servicio (SIO) dentro del mensaje del
nivel 3 de MTP para distinguir mensajes diseccionados a la función de OA&M de los
diseccionados ya sea al DTAP o a la parte de aplicación BSSMAP.
El alto nivel de capacidad de traducción de dirección del SCCP, conocida como traducción
del título global, se puede entonces utilizar para proporcionar capacidades de dirección
adicional tales como uso de la enumeración E.164 para direccionar diversas entidades de
OA&M. La característica de la traducción del título global del SCCP también proporciona
el MSC la capacidad para direccionar señales de mensajes a MSC’s remotos que puedan ser
localizados en un diverso PLMN. El íntertrabajo de funciones entre el CM, MM y las
entidades de BSSMAP y las entidades correspondientes del SS7 (es decir, el ISDN-UP),
MAP, SCCP, y la parte de aplicación de las capacidades de las transacciones (TCAP) son
proporcionadas por el MSC.
Paginación
Los mensajes de paginación para los móviles se envían vía el BSSMAP al BSS como
mensaje sin conexión a través del SCCP/MTP. El mensaje de paginación puede incluir el
IMSI del móvil a fin de permitir la derivación del número de la población de la paginación.
Un solo mensaje de paginación transmitido al BSS puede contener una lista de las células
en las cuales la página debe ser difundida. Cuanto más grande es el área de paginación
definida, más baja es la frecuencia de las actualizaciones de la localización y por lo tanto el
tráfico asociado es elevado en la red.
Por otra parte, las áreas grandes de paginación resultan al incrementar el uso de la potencia
de transmisión, además de los recursos de radio (canales). Por lo tanto, el tamaño óptimo
para el área de paginación (área de localización) es determinado por un equilibrio
apropiado entre los costos de paginación y los costos de actualización de la localización.
Los mensajes de paginación recibidos del MSC se almacenan en el BS, y los mensajes
correspondientes de paginación se transmiten sobre el interfaz de radio en el tiempo
apropiado. Cada mensaje de paginación se relaciona con solamente una estación móvil y el
BSS tiene que empaquetar el mensaje pertinente de paginación. Una vez que un mensaje de
paginación es emitido sobre el canal o canales de radio, si un mensaje de respuesta se
recibe del móvil, la conexión de señal relevante se establece hacia el MSC y el mensaje de
respuesta de la página se pasa al MSC [35].
97
Apéndice 2 Manual de usuario JMR (Java Mobile Robots).
APLICACIÓN CLIENTE
Veremos ahora cómo utilizar la aplicación cliente. Haremos un recorrido por los
componentes que contiene.
PANTALLA PRINCIPAL
La zona superior (Connection) tiene una barra con las opciones de conexión:
• Dirección del servidor al que conectar (Server Address)
• Puerto por el que conectar (Server Port)
• Tipo de servidor al que conectar (Server Type), a elegir de la lista:
Simulador 3D de JMR
Simulador Pioneer de Saphira
Robot real a través de puerto serie 1 (COM1)
Robot real a través de puerto serie 2 (COM2).
98
ZONA DE CONTROL DE LA LISTA DE ROBOTS
La segunda zona (Robot List) contiene un panel para controlar los robots activos en cada
momento. Se tendrá una lista con los robots que hay en el cliente en cada momento, y
botones para añadir o quitar robots de la lista. También se tiene un apartado para elegir el
fichero de parámetros que queremos asignar al robot que vayamos a añadir (por defecto se
asignan los parámetros del fichero pion1m.p).
Bajos las dos zonas anteriores se tiene la zona de datos del robot (Robot Data). En esta zona
podremos ver:
• Los parámetros del robot (Parameters): datos estáticos que informan sobre los
factores de conversión internos del robot, tamaño, número de sónares, etc.
• Los sonares del robot (Sonars): aquí se informa sobre las lecturas que tiene cada
sonar del robot, y se muestra gráficamente el entorno del robot, las lecturas que
marca y las velocidades lineal y rotacional que tiene en cada momento.
• El estado del robot (State), donde vemos datos dinámicos acerca del robot: posición
actual, velocidades actuales (lineal y rotacional), estado de la batería, etc.
99
• Server Address: será la dirección IP donde se encuentra la máquina servidor a
la que conectar.
• Server Port: indica el puerto por el que conectar.
• Server Type: indica el tipo de servidor al que nos queremos conectar. Podrá
ser uno de entre:
o Java simulator: el simulador 3D de JMR
o Saphira Pioneer: conexión al simulador Pioneer de Saphira,
utilizando el servidor de JMR para Saphira.
o Saphira COM1: conexión a un robot real a través del puerto
serie 1, utilizando el servidor de JMR para Saphira.
o Saphira com2: conexión a un robot real a través del puerto
serie 2, utilizando el servidor de JMR para Saphira.
Tras especificar estos parámetros, cada vez que se añada un nuevo robot, lo hará
conectándose con las opciones indicadas en estos controles.
CONEXION LOCAL
Para añadir o quitar robots de la escena, se tiene el segundo panel (Robots List), donde:
• La lista Robots contiene los robots que hay conectados en este momento. En los
distintos cuadros de control del robot (parámetros del robot, estado del robot,
lecturas de sónares, etc.) aparecerán los datos relativos al robot actualmente
seleccionado de la lista.
• El botón de añadir robot (Add) sirve para añadir un nuevo robot. Al pulsarlo,
aparecerá un cuadro de diálogo para que indiquemos el nombre del robot:
100
Al conectar el robot, aparecerán sus datos en los distintos cuadros de controles que
hay: parámetros, estado, lecturas de sónares etc.
• El botón de quitar (Remove) elimina al robot actualmente seleccionado,
desconectándolo del servidor.
• El cuadro para el fichero de parámetros (Params File) indica el nombre del fichero
de parámetros que queremos que tenga el robot que vamos a añadir. Podremos
escribirlo directamente en el cuadro de texto, o pulsar el botón con puntos para
buscarlo por el disco. Si vamos a conectar con Saphira, debemos asegurarnos de que
el fichero de parámetros esté también en el directorio params de Saphira, para que
pueda ser cargado.
En la zona de datos del robot (Robot Data) existen una serie de controles para visualizar y
llevar un control de los datos del robot actualmente seleccionado en la lista de robots.
Podremos ver los parámetros que definen al robot con el cuadro de parámetros
(Parameters). En este cuadro se definen:
• Angle Conversion Factor es el factor de conversión de unidades de ángulos, interno
del robot.
• Linear Velocity Conversion Factor es el factor de conversión de unidades de
velocidad lineal, interno del robot.
• Rotational Velocity Conversion Factor es el factor de conversión de unidades de
velocidad rotacional, interno del robot.
• Distance Conversion Factor es el factor de conversión de unidades de distancias,
interno del robot.
• Range Conversion Factor es el factor de conversión de unidades de rangos (lecturas
de sónares), interno del robot.
• Holonomic indica si el robot es holonómico (puede girar sobre sí mismo) o no.
• Robot Radius es el radio del robot en mm.
• Robot Diagonal es la diagonal del robot, en mm.
• Robot Width es la anchura del robot, en mm.
• Robot Length es la longitud del robot, en mm.
• Robot Height es la altura del robot, en mm.
• Maximal Linear Velocity es la máxima velocidad lineal que puede alcanzar, en
• mm/s.
• Maximal Rotational Velocity es la máxima velocidad rotacional que puede alcanzar,
en grados/s.
• Maximal Linear Acceleration es la máxima aceleración lineal que puede adquirir, en
mm/s².
• Class indica la clase de robots a la que pertenece.
• Subclass indica la subclase dentro de la clase de robots.
101
• Name es el nombre del robot (distinto del que se asigna en la conexión, es un
parámetro interno de especificación del robot).
• Number Of Sonars es el número de sónares que tiene.
• Front Buffer indica el número de lecturas que se acumulan en los sónares frontales.
• Side Buffer indica el número de lecturas que se acumulan en los sónares laterales.
Estos son parámetros estáticos, que definen algunas características del robot.
Para llevar un control de las lecturas que toma el robot, se tienen los paneles centrales
(Sonars), donde se muestran los valores numéricos de dichas lecturas (en mm) y una
representación gráfica de las mismas, junto con las velocidades actuales del robot. Se marca
la velocidad lineal con una línea vertical, y la rotacional con una horizontal, y las lecturas
de sónares en azul.
En la zona de elementos añadidos (Robot Add-ons) existen controles para gestionar los
procesos (Processes) que tiene cada robot, y los dispositivos (Devices).
102
PROCESOS DEL ROBOT
Para enviar comandos simples al robot, se tiene el cuadro desplegable en Processes, donde
podremos elegir los distintos comandos simples que podemos enviar:
El cuadro de texto bajo el desplegable se emplea para pasar los parámetros que necesite
cada comando simple, y luego pulsando el botón de enviar (Send) se enviará el comando
seleccionado, con el parámetro introducido.
Para cargar procesos en el robot se tiene el botón de cargar proceso (Add Process). Al
pulsarlo, aparecerá un cuadro de diálogo para que elijamos el proceso a cargar (un fichero
.class ya compilado con el proceso a cargar).
Al elegirlo, se mostrará un cuadro de diálogo para especificar los parámetros del proceso:
103
Al lado de cada parámetro se indica su tipo. Al final hay tres parámetros que tendrá todo
proceso:
• Timeout: tiempo (en ms) que damos al proceso para que termine. Si se indica un
valor negativo, no habrá límite de tiempo.
• Suspend: indica si el proceso se carga con un estado suspendido inicialmente, o se
ejecuta nada más cargarse.
• Process name: nombre que queremos darle al proceso (si queremos darle algún
nombre distinto al de la clase).
Tras introducir los parámetros, el proceso se añadirá al robot.
Con el botón de ver procesos (View Processes) se mostrará un panel con los procesos que
hay ejecutando actualmente sobre el robot seleccionado:
104
En el panel se muestran todos los procesos que hay actualmente cargados en el robot.
Al lado de cada proceso hay un desplegable con los distintos estados en que puede estar el
proceso. Podremos cambiar el estado de los procesos que así lo permitan eligiendo el
estado correspondiente del desplegable. Podremos elegir entre:
• LOADER: el proceso se ha cargado en el robot.
• STOPPED: el proceso ha finalizado anormalmente.
• RUNNING: el proceso está en ejecución.
• SUSPENDED: el proceso ha sido suspendido mientras se ejecutaba.
• DONE: el proceso ha finalizado satisfactoriamente.
• QUIT: no es un estado del proceso. Se empleará cuando el usuario quiera quitar el
proceso del robot.
Además, al lado de este cuadro se muestran dos líneas, de mayor o menor longitud,
indicando la influencia de cada proceso en el movimiento lineal y en el giro. Líneas cortas
indican poca influencia (cercana a 0) y líneas largas mucha influencia (cercana a 1).
Los dispositivos que tenga añadidos el robot y que tengan un visor asociado, podrán
controlarse mediante el panel Devices. En la parte izquierda se tiene una lista con los
dispositivos disponibles, inicialmente puestos a OFF (es decir, ninguno se ve).
Pulsando sobre cualquiera de ellos, su marca se pone en ON, y en la parte derecha se ve el
estado del dispositivo. Volviendo a pulsar sobre él, vuelve a ponerse en OFF y deja de
verse. Al pinchar a ON un dispositivo, el resto pasa a OFF (es decir, sólo podremos ver un
dispositivo simultáneamente).
105
ACTUALIZACIÓN DE DATOS
Los datos que se muestran en la zona de Robot Data y Robot Add-ons para el robot que
tengamos actualmente seleccionado en la lista de Robot List se van actualizando
automáticamente cada cierto tiempo. En la aplicación de configuración tenemos opciones
para poder establecer la frecuencia con la que actualizar estos datos (en ms):
CONFIGURACIÓN
donde:
• Data update freq. (ms) es el período de tiempo (en ms) entre dos actualizaciones
consecutivas de los paneles de datos del robot actualmente seleccionado.
• Device update freq. (ms) es el período de tiempo (en ms) entre dos actualizaciones
consecutivas de los dispositivos del robot actualmente seleccionado.
• Process update freq. (ms) es el período de tiempo (en ms) entre dos actualizaciones
consecutivas de los procesos del robot actualmente seleccionado.
106
Valores pequeños de estas frecuencias proporcionarán actualizaciones constantes, aunque
pueden ralentizar el funcionamiento de JMR.
107
SIMULADOR 3D
Veremos ahora cómo utilizar el simulador 3D Java. Haremos un recorrido por los
componentes que contiene, y veremos cómo utilizar cada uno de ellos. Asumimos que ya se
sabe ejecutar la aplicación, pero en cualquier caso, para ver cómo se ejecuta, consultar los
apartados previos.
PANTALLA PRINCIPAL
• Un canvas (área en negro) donde se podrá ver el mundo y los robots que se tengan
cargados.
• Una zona de menús, con los siguientes menús:
o File: con las opciones para carga de datos y salir del programa:
Load parameters: cargará los parámetros de robots
Load world: carga un mundo por donde mover a los robots.
Exit: cierra el servidor
o Cameras: habilita las distintas cámaras que se tengan definidas:
User: cámara de vista global del mundo.
Robot: las distintas cámaras de cada uno de los robots que haya
conectados.
World: las distintas cámaras que se definan en el mundo.
Show secondary viewer: abre / cierra otro visor además del que se tiene,
donde se tendrá la cámara de usuario.
o Vision: para realizar distintas tareas de visión.
Load processor for: indica el procesador que se cargará sobre el robot que
se seleccione.
About: muestra el logo e información sobre el programa.
108
CARGAR DATOS
CARGAR PARÁMETROS
Para cargar parámetros de un robot, elegimos la opción Load parameters del menú
File. Aparecerá un cuadro de diálogo para elegir el fichero de parámetros que se quiere
cargar, y una vez elegido, se establecerá dicho fichero de parámetros. De este modo,
cuando se conecte algún robot sin especificar qué fichero de parámetros quiere, se le
asignará el que se haya establecido con esta opción.
CARGAR MUNDOS
Para cargar el mundo donde se moverán los robots, elegimos la opción Load World del
menú File. Con esto se abrirá un cuadro de diálogo para que elijamos el mundo a cargar.
Una vez elegido, se visualizará en el canvas del servidor. Por ejemplo, el mundo simple.wld
del directorio world se ve así:
Sobre este mundo se definen una serie de cámaras, que se explican en el apartado de
cámaras. Una de las cámaras, la de usuario, permitirá movernos por el mundo y ver
distintos puntos de vista, como se verá a en el apartado de cámaras.
CÁMARAS
DEFINICIÓN DE CÁMARAS
El sistema tiene una cámara predefinida, que es la cámara de usuario, que se puede
manipular para colocarla en distintos puntos de vista del mundo. Además, tiene las cámaras
propias de cada robot (los “ojos” del robot).
Para definir una cámara adicional (que se englobarían dentro del grupo World en el menú
Camera), se deben definir en el fichero de configuración del mundo (ficheros
109
wld), con la sintaxis:
donde:
Para determinar qué cámara utilizar en cada momento, se tiene el menú Cameras, donde
podremos elegir entre:
MOVIMIENTOS
Podemos mover la cámara de usuario y colocarla en distintas posiciones del mundo, así
como mover a los robots y dejarlos en la posición y orientación que queramos.
Podremos mover esta cámara con las flechas y las teclas Control y Alt, de la siguiente
forma:
110
• Para movernos hacia adelante o hacia atrás, usaremos las flechas de arriba y abajo,
con la tecla Control pulsada.
• Para rotar el mundo en un sentido u otro, sobre el plano de proyección, usaremos las
teclas izquierda y derecha con la tecla Control pulsada.
• Para rotar y mirar hacia arriba abajo, izquierda o derecha de donde estamos,
usaremos la flecha correspondiente, con la tecla Alt pulsada.
MOVIMIENTO DE ROBOTS
Podemos mover y rotar los robots que estén en cada momento sobre el mundo, bien con la
cámara de usuario o con cualquier otra cámara, mediante el ratón:
• Para mover un robot (cambiar su posición (X, Y)), se pulsa el botón derecho del
ratón sobre él y luego se arrastra por el mundo. El robot se moverá también cuando
arrastremos el botón derecho, y luego sólo hay que soltar el botón cuando el robot
esté colocado donde queríamos. El robot se moverá con respecto al sistema de
coordenadas original (si se rota el mundo, el robot seguirá moviéndose según el
sistema original).
• Para rotar un robot, se pulsa el botón izquierdo sobre él, y se arrastra
horizontalmente hacia un lado u otro, dependiendo del giro que queramos dar al
robot.
VISOR SECUNDARIO
La opción Show secondary viewer del menú Cameras permite ampliar el simulador para
mostrar una nueva cámara, que es la de usuario.
De esta forma, en la parte izquierda se tendrá la misma cámara que se tenía seleccionada, y
en la derecha la cámara de usuario, que permitirá una visión más global.
111
VISIÓN
Podemos procesar las imágenes que capturan los distintos robots cargando un procesador
de imágenes en éstos. Para ello, la opción Load processor for del menú
Vision permite elegir el robot sobre el que cargar el procesador. Dicho procesador debe ser
una clase que implemente jmr.robots.vision.ImageProcessor, y defina el método para
procesar las imágenes.
Al elegir el robot, aparecerá un cuadro de diálogo para elegir el fichero .class que contiene
el procesador que queremos cargar. Mostrará todas las clases contenidas en el directorio
${jmr.home}/vision, por lo que deberemos crear nuestro procesadores de imagen en este
directorio.
Una vez elegido, el procesador se dedicará a procesar las imágenes que capture la cámara
del robot, y guardar junto a ellas el resultado de procesar la imagen, para enviarlo a los
clientes que lo soliciten.
CONFIGURACIÓN
Existen una serie de parámetros configurables, que podemos establecer desde la
herramienta de configuración de JMR. Deberemos cargar la aplicación de configuración y
seleccionar la pestaña 3D simulator. Al elegirla, se muestra un cuadro como el siguiente:
112
donde:
• Threshold for the sonar incidente angle (Angulo umbral del sónar) es el ángulo
mínimo en radianes que debe haber entre la dirección del sónar y una superficie
para que la lectura producida por la superficie sea detectada por el sónar (si es
menor, hay muy poco ángulo, y la señal rebota y se pierde):
• Variance for sonar reading error (Error en las lecturas del sónar) es el error que se
comete en las lecturas de los sónares (la varianza). Esto se aplica para dar más
realismo a los datos tomados por el robot, variando la lectura tomada con una
normal de media 0 y varianza la especificada.
• Error in position estimation (Error en el avance a distancia) es el error que se
comete cuando el robot avanza una determinada distancia (la varianza). Al igual que
en el caso anterior, sirve para dar más realismo a las acciones del robot, variando la
distancia con una normal de media 0 y varianza la especificada.
• Error in orientation estimation (Error en el cambio de orientación) es el error que se
comete cuando el robot cambia de orientación (gira). Al igual que en el caso
anterior, sirve para dar más realismo a las acciones del robot, variando la
orientación con una normal de media 0 y varianza la especificada.
• Variance for velocity errors (Error en la velocidad trasnacional) es el error que se
comete al determinar la velocidad lineal del robot. Al igual que en el caso anterior,
sirve para dar más realismo a las acciones del robot, variando la velocidad con una
normal de media 0 y varianza la especificada.
113
• Variance for rotation errors (Error en la velocidad rotacional) es el error que se
comete al determinar la velocidad rotacional del robot. Al igual que en el caso
anterior, sirve para dar más realismo a las acciones del robot, variando la velocidad
con una normal de media 0 y varianza la especificada.
• Installed devices configuration file indica la localización del fichero de definición
de los dispositivos que estamos utilizando en el Simulador 3D.
• IP address es la dirección IP a la que se enlazará el servidor
• Port es el puerto donde el servidor permanecerá a la escucha de peticiones de
conexión mediante RMI.
SERVIDOR SAPHIRA
Veremos ahora cómo utilizar el servidor Saphira. Asumimos que ya se sabe ejecutar la
aplicación, pero en cualquier caso, para ver cómo se ejecuta, consultar los apartados
previos.
FUNCIONAMIENTO
Una vez ejecutado, el programa no tiene ninguna parte visual ni más opciones para el
usuario. Simplemente basta con tener preparado el simulador Pioneer o el robot real al que
se quiere conectar, y realizar la conexión desde alguna aplicación cliente.
Así pues, no se podrán realizar tareas como definir cámaras en el mundo (puesto que sólo
se cuenta con la cámara del único robot que podemos conectar). Sí se podrá procesar la
imagen que captura la cámara del robot, añadiendo un procesador. No se tiene el menú para
hacerlo, como en el caso del simulador 3D, pero también se pueden añadir procesadores
desde el código de los procesos, tomando el dispositivo de tipo cámara y añadiendo el
procesador.
CONFIGURACIÓN
114
donde:
115
Bibliografía.
[1] http://www.Yucatan.com.mx/especiales/celular/historia.asp
[2] http://www.Yucatán.com.mx/especiales/celular/3g.asp
[3] http://www.geocities.com/Sunsetstrip/Amphitheatre/3064/Celular.html.
[4] http://www.Yucatan.com.mx/especiales/celular/comofunciona.asp
[5] http://www.wikipedia.org/wiki/DTMF
[6] http://www.telefonos-moviles.com/articles/item.asp?ID=25
[7] http://www.todomovil.net/gsm/historia.asp
[8] http://www.telefonos-moviles.com/articles/item.asp?ID=30
[9] http://es.gsmbox.com/GSM/SMS/info-descrizione.
[10] http://congreso.hispalinux.es/congreso2001/actividades/ponencias/seco/
html/introduccion.html.
[11] http://www.nokia.es/telefonos/tecnologias/mms_faq.jsp
[12] http://webs.sinectis.com.ar/mcagliani/hrobot.htm.
[13] http://usuarios.bitmailer.com/aperobot/robothistoriatecno.htm
[14] http://activrobots.com
[15] http://es.tldp.org/Tutoriales/doc-modelado-sistemas-UML/multiple-
html/c12.html
[16] http://hypertextbook.com/physics/waves/beats/index.shtml.
[17] http://users.telenet.be/educypedia/electronics/telephone.htm
[18] http://www.rvg.dccia.ua.es/jmr/index.html
[19] http://www.dage.net/dtmf_tut.html.
[20] http://usuarios.bitmailer.com/aperobot/robots.htm
116
[21] http://es.gsmbox.com/wap/come.gsmbox
[22] http://www.3gamericas.org/Spanish/Technology_Center/GSM_sp.cfm
[23] http://www.3gamericas.org/Spanish/Technology_Center/gsmfacts_sp.cfm.
[24] http://www.3gamericas.org/spanish/technology_center/qa/gsmqa_sp.cfm
[25] http://www.todomovil.net/gsm/historia.asp
[26] http://www.hackhispano.com/oldhh/paginas/gsm/gsm_02.htm
[27] http://www.hackhispano.com/oldhh/paginas/gsm.htm.
[28] http://www.progres-spain.com/espanyol/avisadorgsm.html.
[29] http://www.cept.org
[30] http://www.metc.pku.edu.cn/melab/publications/mepaper04.pdf
[31] http://www.cat.csiro.au/cmst/automation
[32] http://ccc.inaoep.mx/~rodrigo/robotica/Robotica.htm
[33] http://www.todomovil.net/gsm/art1.asp
[34] http://www.melodiasmoviles.com/documentacion/intro-gsm.php
117
[35] Overview of the GSM System and protocol Architecture
Moe Rahnema
IEEE Communication Magazine
April 1993.
[36] Saphira Software Manual
Saphira Versión 8.0a
Saphira/Aria integration
Kart G. Konolige.
SRI International, Menlo Park, California.
[37] Player
Version 1.3.1 User Manual
Brian P. Gerkey Richard T. Vaughan Andrew Howard
December 4, 2002
118
[45] TELEASISNET: Sistema de tele-asistencia basado en un robot asistencial
R.Barea, L. M. Bergasa, E. López, M. Escudero, J. A. Hernández e
Y. Willemaers.
CD del SAAEI-EPF`04, Toulouse, 15-17 Sep. 2004.
119