Veins混合交通流仿真整体框架
备注:
本文记载作者本科毕业论文完成过程中使用Veins模拟器进行混合交通流的PLEXE仿真过程(以免忘记);由于论文尚未完成,细节内容不展示。
B站上有较为完整的教学视频:VANET和OMNET++、INET、Veins和SUMO仿真模拟教程_哔哩哔哩_bilibili
1.仿真环境搭建
1.1 OMNeT++下载及安装
Step1:OMNeT++下载
OMNeT++ Downloads (omnetpp.org)
下载文件到新建文件夹(注意:文件夹名不得带中文字符,也不要有空格等特殊字符。作者在编译过程中遇到此问题,TOT)
Step2:修改
打开路径下文件“configure.user”,Edit。将PREFER_CLANG那一行的yes改为no,而后save。
Step3:环境配置
回到下载路径文件夹,双击setenv.bat,自动运行并关闭界面。
(注意:最开始作者未进行这一步直接编译,出现报错:error: Before running 'configure', please use 'source setenv' to set up your environment.)
Step4:编译
回到下载路径文件夹,双击mingwenv.cmd,进入命令行提示符。Enter。
分别输入:
./configure
make
编译过程所需等待时间较长,若出现报错可辅助ChatGPT进行调试。
Step5:打开demo
继续在mingwenv.cmd界面依次输入:
cd samples/aloha
./aloha
出现以下界面,Run
恭喜你,安装成功!
1.2 Veins下载及配置
1.2.1 试错
----------------------------------------------------------------------------------------------------------------
[试错一],失败
按照CSDN的内容给出的操作步骤,在对Veins进行 build project文件的过程中,出现了如下报错:
经过多天的尝试,仍未解决该问题(估计是版本的软件版本问题,但尚未验证该猜想)。
[试错二],失败
受文章:Veins – the open source vehicular network simulation framework的启发,故先下载Instant Veins 5.2-i1进行学习。
仍然没能够解决问题......
----------------------------------------------------------------------------------------------------------------
[试错三],成功!
经过第三种方案的尝试,问题得到解决:即下载的三种软件版本不适配。
由于下载的软件为Veins5.2,根据官方网站给出的推荐版本下载和安装。
网站如下:
Download and Changelog - Veins (car2x.org)
下载的软件版本为:
1.2.2. 文件导入及配置
注:详细步骤参考B站教学视频:VANET和OMNET++、INET、Veins和SUMO仿真模拟教程_哔哩哔哩_bilibili
下载好以上版本软件的文件后,
Step1:打开OMNeT++5.6.2主界面
OMNeT++文件下打开mingwenv.cmd→键入omnetpp→创建workplace如下:
(不同的模型创建不同的workplace文件夹)
Step2:import INET4.2.5
左上角File→Import→Existing Projects into Workspace→Browse(选择INET4.2.5所在文件夹)
(注意:初次选择空白处inet会自动✔选择,Options后的5项不打勾)→Finished
Step2:Import Veins
操作同上
Step3:Build Project
分别右键inet和veins文件夹,点击Build Project,开始自动创建(初次创建需要花费几分钟)
若无报错,最终显示Build Finished,则继续
若电脑卡住,可退出界面再进入后Build Project;出错需要重新创建先Clean Project
Step4:同sumo创建关联
使用veins中的sumo-lauchd.py同sumo.exe及sumo-gui.exe创建关联,以满足后续仿真的交通模型及可视化需求:
首先需要找到sumo-launchd.py和sumo.exe(sumo-gui.exe)的路径:
前者路径在OMNeT++5.6.2主界面,veins文件夹下,复制location找到文件位置
sumo.exe及sumo-gui.exe路径位于SUMO的bin文件夹中
切换到命令行提示符mingwenv.cmd界面,分别键入以下内容(地址根据实际修改)
D:\\Application_downloads\\New_Veins\\Veins5.2\\sumo-launchd.py -vv -c 'D:\\Application_downloads\\New_Veins\\SUMO1.8.0\\bin\\sumo.exe'
D:\\Application_downloads\\New_Veins\\Veins5.2\\sumo-launchd.py -vv -c 'D:\\Application_downloads\\New_Veins\\SUMO1.8.0\\bin\\sumo-gui.exe'
出现Listening on port 9999,成功!
Step5:打开demo
Project Explorer→veins→examples→veins→results→omnetpp.ini,鼠标右键,Run As:1 OMNeT++ Simulation
Config name:(默认)Default → OK
点击左上角,运行
出现以下界面:
成功!
1.3 基础建模
1.3.1 新文件创建
新文件创建某一步骤的代码如下,作为保存:
#
# Use the new message compiler introduced in OMNeT++ 5.3
#
MSGC:=$(MSGC) --msg6
ifeq ($(PLATFORM),win32.x86_64)
#
# on windows we have to link with the ws2_32 (winsock2) library as it is no longer added
# to the omnetpp system libraries by default (as of OMNeT++ 5.1)
#
LIBS += -lws2_32
DEFINES += -DINET_EXPORT
ENABLE_AUTO_IMPORT=-Wl,--enable-auto-import
LDFLAGS := $(filter-out $(ENABLE_AUTO_IMPORT), $(LDFLAGS))
endif