NS3和SUMO联合仿真浅析

3 篇文章 1 订阅

NS3与 SUMO的联合仿真主要分为两种类型,一种是单向的,根据车联网仿真场景中的道路拓扑、车辆分布及车辆运行状态等对 SUMO进行配置,SUMO 仿真运行完毕产生相应的轨迹文件,再将轨迹文件作为输入导入到 NS3中作为通信节点的移动轨迹, NS3仿真运行产生仿真结果;另一种是双向的,根据车联网仿真场景中的道路拓扑、车辆初始分布及运行状态对 SUMO进行配置,SUMO 与NS3进行实时动态的双向交互,仿真运行结束后产生联合仿真结果。

第一种类型的联合仿真,只需要运行相应的 SUMO命令,并在NS3 环境中实现处理 XML 或者 TCL格式的数据的脚本文件即可,虽然实现简单(NS3中已有处理TCL格式数目的脚本文件,相关博客有http://www.cnblogs.com/cyf1995/p/6595584.html),但是由于车辆运行轨迹是静态的输入数据,不可能随着车联网通信而改变,因而该类型仿真无法对车联网通信协议对车辆运行状态的影响进行仿真。

第二种类型的联合仿真,NS3每个时隙依据车联网通信协议对车辆通信节点进行模拟、通信、处理,并将车辆最新的驾驶行为及参数通过命令的形式发送给SUMO,SUMO根据内部的跟驰模型以及换道模型等对车辆行为进行交通模拟,NS3再通过查询命令获取车辆节点最新的运行状态信息,如此循环,直到仿真结束,这样车辆运行轨迹总是动态的输入数据,且能够被车联网通信协议所影响。

TraCI(Traffic Control Interface)是一种基于 socket的C/S 架构的中间件技术,它主要有两个功能,一个是实时的从连接的交通仿真器中获取仿真对象的运行状态;另一个是实时的改变连接的交通仿真器中仿真对象的运行状态。现阶段版本的SUMO已经绑定了TraCI的服务器端,只需要我们实现TraCI的客户端。Veins是基于C++实现的OMNeT++与SUMO的联合仿真平台(http://veins.car2x.org/),在其Mobility模块中实现了TraCI的客户端(TraCIScenarioManager类等)。因而,实现第二种类型的仿真,可以通过参考Veins中TraCI客户端的代码进行。由于Veins与NS3的内核不同,因而,主要的工作量在于移植过程中使用NS3的功能函数替代Veins中的功能函数(比如随机数等)。

仅供参考。

 




https://blog.csdn.net/nibudong124/article/details/70197621
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值