Utilizando o BonnMotion, um gerador de cenários de mobilidade

On 1 de março de 2015 by Fernando Silva

Introdução

BM Logo
O BonnMotion é um software Java desenvolvido pelo  “Communication Systems group” do Instituto de Ciência da Computação 4 da University of Bonn, Alemanha. O BonnMotion cria e analisa cenários de mobilidade para investigação de ambientes de redes móveis Ac-Hoc (MANETs) e  permite gerar cenários de mobilidade para simuladores como o ns-2, ns-3,  GloMoSim/QualNet, COOJA, MiXiM, and ONE. Vários cenários de simulação são suportados como

  1. Random Waypoint model,
  2. Random Walk model,
  3. Gauss-Markov model,
  4. Manhattan Grid model,
  5. Reference Point Group Mobility model,
  6. Disaster Area model,
  7. Random Street model,

Visão geral

Quando simulamos qualquer ambiente real em um computacional, devemos abstrair as características significativas para nosso modelo. Ao modelarmos ambientes de rede com dispositivos móveis, o padrão de movimentação dos elementos impacta diretamente na topologia da rede. De acordo com o caso de uso, os elementos podem apresentar padrões de movimentos diversos. A literatura dispõe de uma gama de padrões conhecidos para simulação de vários cenários.

O BonnMotion é um framework para produção de cenários de mobilidade conhecidos e também o desenvolvimento de novos cenários. Tendo a capacidade de exportar os cenários para várias ferramentas de simulação populares, o bonnMotion permite que simulações existentes ou em desenvolvimento possam ser verificadas com vários cenários diferentes para análise.

Instalação

O bonnMotion está disponível na páginas do projeto http://net.cs.uni-bonn.de/wg/cs/applications/bonnmotion/.

A instalação do bonnMotion requer um SDK Java compatível com Java5. Após o download, deve-se descompactar o pacote zip e executar o install.sh

[code language=”shell” collapse=”false”]
$ unzip bonnmotion-2.0.zip
$ cd bonnmotion-2.0/
$ sh install
[/code]

Utilização

O binário gerado pela instalação é o bm, que pode ser encontrado no diretório bin da instalação.

A execução do bm –h  mostra as opções básicas de uso:

[code language=”shell” collapse=”false”]
$ ./bin/bm -h
[/code]

A geração de um cenário de mobilidade é feita pela linha de comando. No geral a sintaxe segue o seguinte padrão

[code language=”shell” collapse=”false”]$ bm -f [-I ] <opções do modelo>[/code]

O <cenario> é um nome atribuído a essa instância de mobilidade pelo usuário. Em <MODELO> , deve ser utilizado um dos modelos do bonnmotion. Para listar os modelos disponíveis, utilize o comendo.

[code langueage=”shell” collapse=”false”]$bm -hm[/code]

As <opções do modelo> dependem do modelo escolhido, mas alguns são comuns a todos.

[code language=”shell” collapse=”false”]
-d &lt;duração&gt; #Duração em segundos do cenário
-i #Numero de segundos de &quot;salto&quot; do início do cenário
-n &lt;número de nós&gt;
-x #Largura do ambiente em unidades
-y #Altura do ambiente em unidades
-R #Uma semente de aleatoriedade fixa
[/code]


Exemplo:
Vamos gerar um cenário usando o RandomWaypoint, com 150 segundos de duração, em um ambiente de 500mx500m com 50 nós moveis. Esse cenário receberá o nome de RWP50:

[code language=”shell” collapse=”false”]
$bm /bm -fRWP50 RandomWaypoint -x 500 -y 500 -n 50
[/code]

O BonnMotion irá gerar dois arquivos correspondentes ao cenário, o RWP50.movements.gz e o RWP50.params. O primeiro é o cenário de movimentação em sí. Para o MiXiM, esse arquivo deve somente ser descomprimido. O segundo arquivo .params, contem os parâmetros utilizados na geração do modelo. É possível reutilizá-lo usando a opção -i arquivo.

Modelos

O BonnMotion pode gerar cenários de acordo com vários modelos disponíveis, para listar os modelos disponíveis, utilize o parâmetro –hm.
Dentre os modelos disponíveis vamos analizar 3 deles, o RandomWaypoint (RWP), o Reference Point Group Mobility model (RPGM) e o Pursue Mobility model (Pursue).

RandomWaypoint
O modelo RandomWaypoint, ou RWP, é um modelo bastante utilizado no estudo de redes móveis ad-hoc (MANETS). Ele simula o caminhar de elementos através de caminhos pré-estabelecidos. A geração do cenário segue os seguinte os passos a seguir:
Configuração

  1. Em um dado um espaço finito R2, define se um número finito de caminhos
  2. São definidos um número finito de caminhos ligando pares dos pontos em R2
  3. Os nós são distribuídos aleatoriamente entre nos pontos.

Execução

  1. Cada nó permanece parado por um período de tempo entre um intervalo definido
  2. Os nós escolhem aleatóriamente um dos caminhos possíveis a partir de seu ponto inicial, em uma velocidade distribuída entre parâmetros MAX e MIN
  3. Ao chegar ao destino o nó permanece parado um determinado tempo e reinicia o processo.

Vejâmos alguns parâmetros relevantes para o RandomWaypoint no bonnmotion

[code language=”shell” collapse=”false”]
-h #velocidade máxima em unidades de área por segundo
-l #velocidade mínima em unidades de área por segundo
-p #Tempo de parada máximo nos pontos
[/code]

ex: Cenário utilizando 30 nós, área 500×500 com velocidade mínima de 2m/s e máxima de 5m/s, máximo de 1 segundo de parada em cada ponto

[code language=”shell” collapse=”false”]
$ bm –f cenarioRWP-30 RandomWaypoint –n 30 –x 500 –y 500 –l 2 –h 5 –p 1
[/code]

Reference Point Group Mobility
O RPGM é um modelo de movimentação que permite simular movimentação de grupos ao redor de um centro, simulando características de cooperação. Esse centro pode ser definido como um líder ou somente a idéia de um grupo em sí.
No RPGM, os nós movimentam-se em conjunto mas não exatamente da mesma forma, mas a direção e a velocidade média ficam em torno da velocidade e direção do centro. Quando dois grupos se encontram, existe a possibilidade de um nó migrar de grupo. Esse tipo de movimentação assemelha-se a encontrada no cenário de turistas onde os grupos passeiam juntos pelos pontos disponíveis ou atrás de um guia.
Parâmetros do RPGM no bonnmotion

[code language=”shell” collapse=”false”]
-a #Média de nós por grupo
-c #Probabilidade de um membro mudar de grupo
-r &lt;distância&gt; #Distância máxima do centro do grupo
-s #desvio padrão do número de elementos do grupo.
[/code]

ex: Cenário utilizando 30 nós, área 500×500 com velocidade mínima de 2m/s e máxima de 5m/s, máximo de 1 segundo de parada em cada ponto, sem possibilidade de troca de grupo e média de 5 elementos por grupo

[code language=”shell” collapse=”false”]
bm –f cenarioRPGM-30 RPGM –n 30 –x 500 –y 500 –l 2 –h 5 –p 1 –c0 –a5
[/code]

Pursue Mobility model

O modelo pursue tenta simular grupos de pessoas seguindo um nó meta. A movimentação do nó objetivo segue os padrões do RandomWaypoint. A movimentação dos nós seguidores segue a formula

[code]
Nova Posição = Posição anterior + aceleração(posição anterior do nó objetivo) + vetor aleatório
[/code]

O vetor aleatório é um parámetro de geração do cenário.

Parâmetros do Pursue para o bonnmotion

[code language=”shell” collapse=”false”]
-o #Velocidade Máxima
-p # Velocidade mínima
-m fator de aleatoriedade do vetor
[/code]

ex: Cenário utilizando 30 nós, área 500×500 com velocidade mínima de 2m/s e máxima de 5m/s, aleatoriedade do vetor de 0.2

[code language=”shell” collapse=”false”]
bm –f cenarioPursue-10 pursue –n 30 –x 500 –y 500 –o 5 -p 2 –m 0.2 [/code]

Utilizando o BonnMotion com o MiXiM
O MiXiM é uma suíte de modelagem de redes sem fio para o Omnet++. Um dos módulos principais do MiXiM é o módulo de movimentação. Ele possibilita o uso de padrões de movimentação internos como o movimento browniano e movimentação circular. Além dos modelos nativos, o MiXiM permite que os nós sigam um modelo produzido pelo bonnmotion.
Para utilizarmos os cenários gerados no bonnmotion, precisaremos somente do arquivo movements.gz, só que descompactado.

A utilização do cenário no MiXiM é feita somente alterando o arquivo .ini da simulação omnetpp. Utilizando os nós padrão do MiXiM host80211 ou Wireless Node, faça a seguinte alteração no ini

[code language=”shell” collapse=”false”]
**.node[*].mobilityType = &quot;BonnMotionMobility&quot;
**.node[*].mobility.nodeId = -1
**.node[*].mobility.traceFile = “/caminho/do/arquivo/movements”
[/code]

Agora a simulação irá se comportar segundo o modelo gerado no bonnmotion.

Links

 http://sys.cs.uos.de/bonnmotion/

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *