-
Notifications
You must be signed in to change notification settings - Fork 5
Intro to SUMO & OMNet & Veins
介绍三者功能及关系
SUMO(Simulation of Urban MObility) 用于对交通系统建模,包括道路,车辆,公共交通,行人等等;也就是构建道路系统。SUMO本身可以进行仿真,主要针对交通流量,但是不能有车联网信息交流。
OMNNet++是一个基于C++的仿真库/框架。同时,OMNet++提供基于Eclipse的IDE和图形化运行环境,并支持其他工具,因此被广泛用作仿真平台。OMNet++主攻信息传递,比如网络数据包等。
Veins是基于OMNet++的仿真框架,给使用者一个预制的无线通信模板(基于802.11p)对车联网进行仿真。同时由于需要对车流进行仿真,因此需要于SUMO通信,来传输车流和建筑相关的仿真数据。
三者关系如图所示。Veins是主体,通过操作预制的sumo-launchd.py
Python脚本与SUMO通信:本质上SUMO作为服务器通过TraCI提供TCP通信API,而Veins作为客户端,操作Python脚本与SUMO通信。Veins通过OMNet++创建的车辆实例会不断通过TraCI由SUMO仿真后回传显示。
Veins推荐使用预制虚拟机,下载地址及教程
Linux为Veins推荐平台;推荐使用Ubuntu
sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc
可以通过 dpkg -L sumo
获取sumo的安装目录
sudo apt-get install build-essential gcc g++ bison flex perl tcl-dev tk-dev blt libxml2-dev zlib1g-dev default-jre doxygen graphviz libwebkitgtk-1.0-0 openmpi-bin libopenmpi-dev libpcap-dev autoconf automake libtool libproj-dev libgdal1-dev libfox-1.6-dev libxerces-c-dev qt4-dev-tools
切换到想要放置的目录,比如 cd ~/Downloads
下载OMNet++,版本目录 wget https://github.com/omnetpp/omnetpp/releases/download/omnetpp-5.6.2/omnetpp-5.6.2-src-linux.tgz
解压 tar xzf omnetpp-5.6.2-src-linux.tgz
切换到OMNet++目录 cd omnetpp-5.6.2
配置 ./configure
编译 make
按照上一命令的输出(结尾),先打开环境变量配置文件~/.bashrc
,然后添加工作目录到PATH,比如
export PATH=$PATH:/home/YOUR_USER_NAME/Downloads/omnetpp-5.6.2/bin
重开Terminal或者刷新环境变量 source ~/.bashrc
启动OMNet++ omnet++
切换到想要放置的目录,比如 cd ~/Downloads
下载Veins,版本目录 wget https://veins.car2x.org/download/veins-5.0.zip
解压 unzip veins-5.0.zip
连接Veins和SUMO,请替换Veins目录以及SUMO命令位置(可以通过which sumo
),比如
~/Downloads/veins-5.0/sumo-launchd.py -vv -c /usr/bin/sumo
为方便之后使用,可以为以上命令添加alias,打开~/.bashrc
,比如nano ~/.bashrc
然后在适当位置(系统定义的alias附近或者文件最后)添加自己的alias,请替换Veins目录以及SUMO命令位置,比如
alias veins='python /home/YOUR_USER_NAME/Downloads/veins-veins-5.0/sumo-launchd.py -vv -c /usr/bin/sumo'
TBD
TBD