Bonnmotion-生成RPGM移动场景并转换为NS2可识别格式(批量)

NS2实验记录--Bonnmotion节点移动场景生成

实验介绍

参考资料:Bonnmotion用户手册http://sys.cs.uos.de/bonnmotion/doc/README.pdf

记录使用Bonnmotion产生RPGM移动场景的方法及具体参数,以便后续调试.
预计产生场景形似于人集群前进的场景,故行进速度在 1-5 m/s, 最大停留时间为 10 s
节点数目分别为5,10,15…50等共10种场景,具体参数见后

实验环境

Ubuntu 16.04
Bonnmotion-3.0.1

参数设定

场景大小 500×500
节点移动速度 1-5 m/s
最大停留时间 10 s
集群交换节点的概率为 0.2
仿真时间300秒,且跳过前3600秒(官方建议跳过一部分时间以保障运动轨迹的正确性)
其余参数默认
第一次生成节点数目为5

终端键入命令如下:

./bm -f RPGM_scen_1 RPGM -x 500 -y 500 -h 5 -l 1 -p 10 -c 0.2 -n 5 -d 300 -i 3600

终端显示如下:
Bonnmotion-生成RPGM移动场景并转换为NS2可识别格式(批量)
同时可以看到bin目录下产生了两个文件,其中
RPGM_scen_1.movements.gz 为产生的记录节点移动的数据,但该数据无法直接用于NS2,所以还需要下一步转换
RPGM_scen_1.params 为场景的参数记录

转换数据格式

参考用户手册,是用如下命令进行转换:
./bm NSFile -f RPGM_scen_1

目录下又生成了两个新文件,其中RPGM_scen_1.ns_movements便是生成后的场景啦,点开看看:
Bonnmotion-生成RPGM移动场景并转换为NS2可识别格式(批量)
果然是印象中NS2使用的场景描述 ^ _ ^

批量生成场景

想要实现批量生成场景,那就需要用到linux自带的shell啦,新建一个1.sh文件,编写程序批量生成场景,代码如下:

#! /bin/bash
echo "Produce scenes"
m=5
#Begin
for((i=1;i<=10;i++))
do
        #Model generated
        node=$[i*m]
        echo $node
        你的安装路径/bonnmotion-3.0.1/bin/bm  -f RPGM_scen_$node  RPGM -x 500 -y 500 -h 5 -l 1 -p 10 -c 0.2 -n $node -d 300 -i 3600
        你的安装路径/bonnmotion-3.0.1/bin/bm NSFile -f RPGM_scen_$node
done
echo "Completed"

在终端输入 chmod +x 1.sh 给.sh文件更改权限
再键入 ./1.sh 即可运行