Prescan和sumo的联合仿真操作说明

本篇内容主要是介绍Prescan和Sumo的联合仿真方式,可以掌握sumo和prescan联合的方式。

01.Sumo简介

Sumo是比较目前比较常见也是开源的交通流仿真软件。他是一个微观的,空间上连续,时间上离散的交通仿真软件,采用c++语言开发,其宏观特征包括带变道的多车道道路,基于道路交叉口的靠右侧行驶规则,支持动态路由,可以管理超过10000条街道的网络。其微观特征包括允许碰撞自由的车辆移动模式,支持单车路由。该软件特点是具有快速的OpenGL图形界面,支持多种网络格式输入,缺点是Sumo本身不能提供网络仿真器所需要的轨迹文件。

Sumo可去官网下载,解压后就可以使用,图形界面软是在解压后bin文件夹下的sumo-gui.exe。使用前最好设置环境变量SUMO_HOME。其实不设置似乎也可以使用,但是会有警告。SUMO_HOME的内容就是安装文件的位置,也就是bin文件夹的上一级目录。

Sumo解压之后,作重要的是bin文件夹下的程序和tools文件夹下的程序。bin文件夹下大部分是可执行文件,但是并不像普通的可执行文件一样打开,而是需要用命令行打开,换句话说,整个功能程序并没有被包装起来,这是出于可裁剪和可维护性角度考虑的。tools下的工具则更多的是用Python写的。

02.Sumo简单建模

由于本篇主题是Prescan和Sumo的联合仿真所以在此简单讲一种在Sumo中快速建模的方式,其他方式有待大家自己学习。

第一步,安装sumo 和对应版本的Python(https://sumo.dlr.de/docs/Downloads.php)

第二步,生成交通流,打开开始菜单栏启动OsmWebWizard,该Python程序会打开OSM官网,大家可以选择感兴趣区域并利用sumo工具设定交通参与者数量(如下图),生成结束后会自动弹出仿真窗口,并且在相应路径下会产生对应工程文件,我们着重关注的是如下几个文件:

  • osm.sumocfg:sumo的配置文件

  • osm.net.xml:路网信息

  • osm.passenger.trips.xml: 交通流信息

图片

第三步:为了能够使得prescan和sumo联合仿真需要在sumo的配置文件中设定于第三方的网络通讯接口(选择未被占用的网络端口如29010)。

图片

第四步:将sumo地图转换成Opendrive导入Prescan。可以利用一下命令将sumo路网转换成可导入Prescan的Opendrive高精度地图

netconvert -s osm.net.xml --opendrive-output WhateverNameYouLike.xodr

第五步:建立prescan实验放置车辆若干,并且放置主车。在实验文件中新建simcpp文件夹,并且编写Prescan C++ main程序和CMakeLists.txt(样本程序可向Prescan技术支持索取)(该联合仿真基于的是Prescan C++版本)

第六步:将Prescan与sumo的接口函数也放置于该实验文件中(接口函数可以向Prescan技术支持索取)。

第七步:修改prescan main.cpp 中的通讯端口使其与在sumo配置文件中的端口一致。

图片

修改实验路径。

图片

第八步:利用Cmake编译Prescan工程(具体步骤见Prescan C++ 版本操作介绍)

图片

第九步:利用vs 编译工程形成可执行文件。

第十步:打开sumo,打开sumo时Starting server on port 1156,说明sumo正在等待prescan打开。运行第九步生成的可执行文件启动prescan当prescan启动后,运行sumo,即可。

更多详细信息,敬请关注公众号【经纬数智】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值