Veins、OMNeT++、SUMO仿真实验

  1. 环境搭建

Veins基于OMNeT++离散事件仿真环境,通过TraCI接查询和调度SUMO中的车辆运动状态。我们需要首先安装OMNeT++和SUMO仿真环境,然后在OMNeT++中导入Veins代码,配置并调用安装的SUMO仿真环境。

由于Veins、OMNeT++、SUMO三者目前依然是开发状态,其版本更新较为频繁,不同版本接口和功能各不相同,因此在安装时需要注意版本搭配。Veins不同版本需要的OMNeT++和SUMO版本可以在Veins的Changelog部分查询。编写本文时,Veins的最新版本为veins-4.6,后文均以此版本为例进行。

  1. 1安装OMNeT++

Veins-4.6需要OMNeT++版本为5.1.1,因此首先需要从OMNeT++的官方网站下载OMNeT++5.1.1版本。

Veins、OMNeT++、SUMO均为跨平台软件,各平台操作过程类似,本文所用系统为Windows平台(OMNeT++5.0是最后一个支持32位Windows系统的版本,因此安装5.1.1需要使用64位Windows系统)。

软件下载完毕后为zip压缩包形式,其安装过程为原地安装,因此首先将其解压至需要安装的位置。解压后,首先阅读OMNeT++目录下README.txt文件。阅读该文件可知doc目录下InstallGuide.pdf中有非常详细的安装配置说明。

一般而言,安装过程仅需执行根目录下mingwenv.cmd文件。第一次运行mingwenv.cmd时软件会解压压缩后的MinGW环境,等待软件自动解压完成之后,会自动弹出MinGW提供的控制台界面,如图 所示。

默认配置下,仅需要输入“./configure”进行配置,等配置完成后输入“make”进行编译即可。如需进一步修改编译配置,请自行查阅InstallGuide.pdf,此处不做进一步描述。

  1. 2安装SUMO

SUMO是一种城市车辆运动过程仿真软件,Veins使用SUMO完成了车辆运动过程的仿真过程。由于TraCI接口API版本因SUMO版本不同而不同,因此需要安装对应接口版本的SUMO才能正常使用Veins。

Veins-4.6需要的SUMO版本为SUMO 0.30.0。查阅SUMO版本更新说明可知,SUMO 0.30.0的TraCI 版本为15,因此需要下载对应版本的SUMO(目前仅有SUMO 0.30.0使用版本为15的TraCI)

下载地址:SourceForgeSUMO 0.30.0

SUMO提供多种版本下载,一般而言Windows平台仅需要下载.zip格式的文件即可(不需要下载.msi版本,.zip版本解压即用)。SUMO运行过程不需要特别设置Path路径,因此将.zip压缩包解压至需要安装的位置即可。

  1. 3安装和编译Veins

完成OMNeT++和SUMO的安装后,就可以进行Veins的安装和编译工作了。

Veins官方主页为http://veins.car2x.org/,打开对应的下载部分可以找到最新版本的下载地址。

下载的Veins是仿真过程的代码包,要安装和编译Veins需要首先打开OMNeT++开发环境。安装完成的OMNeT++执行程序位于OMNeT++根目录下ide文件夹内。可以通过双击ide文件夹内omnetpp.exe开启,也可以运行OMNeT++根目录下mingwenv.cmd,键入命令omnetpp启动,如图 1-2所示

OMNeT++启动后需要选择或者创建一个工作空间(workspace),用于进行代码编写和编译执行。默认的工作空间为OMNeT++目录下samples文件夹,为了便于管理一般需要为自己的项目设置一个新的路径,如图 所示。

由于Veins可以独立于inet运行,而且inet也可以在此之后自行下载导入,因此这里可以直接点击Cancel跳过导入,或者取消以上内容的勾选,点击OK跳过导入。

OMNeT++仿真环境是基于eclipse开发的,因此除其特有的功能外,其界面和用法与eclipse几乎完全一致

(1)与eclipse类似,依次点击顶部菜单栏File-Import,即可打开导入菜单

(2)Veins是打包好的已有项目代码,因此选择导入Existing Projects into Workspace。点击Next开始选择要导入的文件

(3)选择Select archive file,并指定我们下载的Veins 4.6代码包,选择需要导入的项目veins,点击Finish即可完成Veins 4.6的项目导入工作

(4)导入项目后,OMNeT++会自动对项目代码进行索引,待索引完成后我们就可以对Veins代码进行编译了。可以通过按键Ctrl+B,或者从菜单栏依次选择Project-Build All完成

(5)等待编译过程完成之后我们就可以开始下一步的操作,运行Veins示例或者构造自己的仿真场景。

猜你喜欢

转载自blog.csdn.net/sunaxp/article/details/82764711