Veins教程01 - SUMO & OMNet++ & Veins

学业需要,笔者从零开始学习车联网相关知识。教授指定使用Veins作为仿真平台,这个平台的资料是真的少,于是笔者一边学习一边记录,希望对你有帮助。

SUMO & OMNet++ & Veins

使用Veins必然离不开SUMO和OMNet++,笔者首先来介绍以下三者的功能及关系。

SUMO

官网

SUMO(Simulation of Urban MObility) 用于对交通系统建模,包括道路,车辆,公共交通,行人等等;也就是构建道路系统。SUMO本身可以进行仿真,主要针对交通流量,但是不能有车联网信息交流。

OMNet++

官网

OMNNet++是一个基于C++的仿真库/框架。同时,OMNet++提供基于Eclipse的IDE和图形化运行环境,并支持其他工具,因此被广泛用作仿真平台。OMNet++主攻信息传递,比如网络数据包等。

Veins

官网

Veins是基于OMNet++的仿真框架,给使用者一个预制的无线通信模板(基于802.11p)对车联网进行仿真。同时由于需要对车流进行仿真,因此需要于SUMO通信,来传输车流和建筑相关的仿真数据。

Relations

三者关系如图所示。Veins是主体,通过操作预制的sumo-launchd.pyPython脚本与SUMO通信:本质上SUMO作为服务器通过TraCI提供TCP通信API,而Veins作为客户端,操作Python脚本与SUMO通信。Veins通过OMNet++创建的车辆实例会不断通过TraCI由SUMO仿真后回传显示。

Relations

Installation

说到这里可能还是没有太多感受,没关系,先下载安装,跑一下例子吧。

Vitual Machine

Veins推荐使用预制虚拟机,下载地址及教程

On Linux

如果跟我一样想手动安装,Linux为Veins推荐平台;推荐使用Ubuntu

Install SUMO

SUMO官方教程

1
2
3
sudo add-apt-repository ppa:sumo/stable
sudo apt-get update
sudo apt-get install sumo sumo-tools sumo-doc

可以通过 dpkg -L sumo 获取sumo的安装目录

Install OMNet++

Install Required Packages

1
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

Install OMNet++

切换到想要放置的目录,比如 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++

Download Veins

切换到想要放置的目录,比如 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'

On Windows

TBD

On MacOS

TBD

评论