overview

Veins——一个开源车联网模拟仿真框架,为车联网络集成一系列仿真模型。这些模型在与车辆交通状况模拟器(SUMO)交互的时候运行在事件网络模拟器(OMNeT++)之上。Veins的其他构成部分负责设置、运行和监控模型。
Veins构建了一个模型框架。这意味着Veins是面向特定仿真模型的代码编程。可以不加修改的使用Veins,比如只是对于特定场景修改了部分参数,但对于使用者所写的代码而言,Veins这时只是程序运行所需要的环境。这类Veins用户所写的代码只是利用仿真来评估具体应用场景的表现。这个框架关心剩下的事情:网络的底层协议和节点移动性,关注如何构建模型,确保它的正常的运行,在模拟开始和结局后收集结果数据。
Veins包含了大量的仿真模型以能够更一般化配适车辆网络。对于每个仿真来说并不是所有的模型都必须使用,事实上,可能对于特定的仿真应用只需要其中的一个模型即可。Veins仿真模型就像是一个工具箱:用来构建一个广泛的、丰富内容仿真的车辆网络。同时,一个研究者所构造的仿真实验需要清楚知晓哪一个可用的模型用于哪一类工作。为了能够给出一个比较一般化的实例,研究人员可能并不需要在城市设计一个道路损耗模型来仿真一个高速公路场景。
Veins作为一个开源车辆网络仿真模拟框架,这意味着可以随时随地免费下载。没有什么是保密的。任何仿真结果都可以分享给感兴趣的同时,不仅仅是这个结果,同时也是完整的工具链,从而可以复现一个同样的结果,可以验证他们如何产生。

正如之前所讨论的那样,Veins的每个仿真并行运行在两个仿真器上:OMNeT++(用于网络仿真)、SUMO(用于车辆交通仿真)。所有的仿真器都是通过TCP套接字连接。这意味着道路交通流量和网络流量是双向耦合的。由道路交通仿真器SUMO所仿真的车辆移动将会被映射为OMNeT仿真软器中的移动节点。节点能够于正在运行的道路交通仿真器进行交互,譬如,能够模拟道路交通的进气门关闭的影响。
更多信息请查阅下面的网站:

  1. Veins Tutorial
  2. Frequently Asked Questions (FAQ)
  3. Modules
  4. sumo-launchd

关于模拟器和TraCI的信息分别将在以下网站能被查询到:

  1. OMNeT++ - The Objective Modular Network Testbed
  2. SUMO - Simulation of Urban MObility
  3. TraCI description on the SUMO wiki

Modules

更深层次信息来选择组成部分

Veins提供全面的特定的IVC模型。这些IVC模型能够作为模型框架来仿真应用场景。每个模型将会被OMNeT++定义的模型使用一次或者多次,这将会在运行的仿真软件中被实例化并提供需要的功能。

至于怎样去使用每个模型,每个模型的使用方法由doxygen comments的形式组织成文档。这些文档利用点击在IDE中的Project>Generate NED Documentation方法自动形成API文档。或者形式化为命令行,利用make doxy。请利用浏览器打开doc/index.html 来开始学习。通过这样的方式,你将能够获取最新版本的Veins的技术文档。
接下来的页面将会简要介绍以下Veins的核心模块的作用。有些模块并没有被标准的版本所包含。有些模块需要更详细的文档,特别是视频和图片模块。


MiXiM

为了更加精确的模拟物理层的效果,特别是模型化和工作在时间和空间上的分布上,Veins依赖MiXiM所提供的功能,并被整合进Veins中。

TraCI

Veins将SUMO中的每一辆行驶的车辆实例化成一个网络节点。这个任务由TraCIScenarioManagerLaunchd模块处理:这个模块连接上一个TraCI服务器(SUMO或者是sumo-launchd)并且订阅像创造车辆和移动车辆的事件。对于每个在SUMO中创造的车辆,都将在OMNeT++仿真软件中实例化一个OMNeT++组合模块。这个模块被假定包含一个TraCIMobility类型的移动子模块。每隔一段时间,这个模块将会被SUMO用于高阶仿真并且根据车辆的行为来更新节点的移动信息(例如位置、速度和方向)。为了更快的测试,这个TraCIMobility模块同时包含了一个函数功能来使得车辆能够在一个预先定义的时刻停止(由参数accidentStartaccidentDuration来配置)。
整个模块的API文档在之前讨论过的文档中。TraCIScenarioManagerLaunchd中最重要的参数如下所示:
updateInternval
SUMO仿真更新的时间间隔
moduleType
选择那一个种OMNeT++模块来实例化每个正在行驶的车辆
port
使用哪一个TCP端口来连接sumo-launchd
seed
选择哪一个随机的种子来配置SUMO
roiRects
用来仅仅仿真指定区域的车辆,ROI的意思指感兴趣的区域(Region of Interest)
应用模型能够使用TraCIScenarioManagerLaunchd类和相关类,很方便的就能从TraCIMobility中拿到想要的东西。下面这个例子显示出车辆如何在意识到一条名为Second Street的街道拥有缓慢的交通环境,可能改变原先的路线而避开这条拥挤的街道。

mobility = TraCIMobilityAccess().get(getParentModule());
traci = mobility->getCommandInterface();
traciVehicle = mobility->getVehicleCommandInterface();
traciVehicle->changeRoute("Second Street", 3600);

其它的车辆相关联的指令像setSpeed或者setParking。相似的方法将被利用到整个仿真,例如(addVehicleaddPolygon),在道路上拿到平均速度(getMeanSpeed),单独某条车道getShape。交通指示灯setProgram。多边形setShape。任何感兴趣的点,如路口、路线、车辆类型或者用户图形界面。
如何使用这些模型,你需要阅读Veins的源代码,同时,总共有80+的方法能够在raCIScenarioManagerLaunchd中找到,或者是自动生成的模型文档。

IEEE 802.11p and IEEE 1609.4 DSRC/WAVE

Veins包含了适合车联网网络的802.11协议模型,这包括IEEE802.11p。这包含了符合EDCA的QoS通道访问机制(包含四条队列拥有不一样的访问类别)。这个协议能够抓取时间帧,模型化,编程和通道模型。

未完持续

ARIB STD-T109

Two-Ray Interference Model

Obstacle Shadowing

车辆之间的广播信号的传递被信号阴影效应(signal shadowing effects)严重影响。精确的抓取信号信息对于运行在城市环境的车联网络系统相当重要,建筑物能够屏蔽掉广播信号的传播。Veins包含了一个简单的账号阴影模型,这个模型已经被现实世界验证并校准,如下图所示:


这个模型将会精确的抓取大型建筑限制传播的效果以及不太厚的墙壁降低传播的效果。

Vehicle Obstacle Shadowing

Antenna Patterns

Veins_INET Subproject

Veins_INET Subproject


sumo-launchd

为OMNeT++设计的SUMO交通控制接口模型和一个小的守护进程共同作用来让模拟仿真过程更加简单:
设计好的守护进程和sumo-launchd运行在后台,监听着发生的请求。在每笔发生的输入连接中,该守护进程接受XML格式的仿真建立文件,并依此构建一个单独的SUMO实例以及OMNeT++和SUMO之间的优先请求。
所有的网络节点的管理和tempfile管理由daemon完成。SUMO实例被创造并在需要的时候被毁灭,简言之就是简化版本的运行模型。

Veins文档(中文)相关推荐

  1. Ubuntu 11.04解决txt文档中文乱码方法

    Ubuntu 11.04解决txt文档中文乱码方法: $ gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferen ...

  2. pinia中文文档 指导文档中文翻译版 pinia指导中文翻译

    Pinia 指导文档 中 文 翻 译 版 翻译者:jcLee95 Pinia 指导手册中文翻译地址(本文): https://blog.csdn.net/qq_28550263/article/det ...

  3. ReactiveX文档中文翻译

    ReactiveX/RxJava文档中文版 项目地址:https://github.com/mcxiaoke/RxDocs,欢迎Star和帮忙改进. 有任何意见或建议,到这里提出 Create New ...

  4. NirCmd v2.37帮助文档中文译本

    NirCmd v2.37帮助文档中文译本 简述 NirCmd是一款命令行使用小工具,通过它可以完成很多实用的任务,而不用显示任何用户界面.通过添加一些非常简单的命令选项,可以完成:写入.删除 注册表项 ...

  5. 手机打开PDF文档中文英文支持(乱码问题)解决攻略

    手机打开PDF文档中文英文支持(乱码问题)解决攻略 参考文章: (1)手机打开PDF文档中文英文支持(乱码问题)解决攻略 (2)https://www.cnblogs.com/seachal/p/52 ...

  6. Pushy入门文档中文翻译

    本文为博主原创,允许转载,但请声明原文地址:http://www.coselding.cn/article/2016/12/01/Pushy入门文档中文翻译/ pushy 这是我自己的翻译版本,原文地 ...

  7. axios 文档中文翻译

    axios中文文档(完全中文翻译) 由于使用网上一些翻译文档时发现,内容多被广告隔离成小块.用起来有点不方便同时夹杂部分英文.于是索性把 axios 自己翻译了一遍,贡献给大家便查. 原文档地址-- ...

  8. iText 中写Word RTF 文档 中文字体设置

    传统使用iTextAsian.jar中定义的字体 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "Un ...

  9. Word文档中文繁体简体的转换

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

最新文章

  1. 天翼云从业认证(1.4)计算机网络
  2. 示例:工具提示对象---享元模式应用
  3. 20165305 苏振龙 《Java 程序设计》第一次测试总结
  4. Python之路【第二篇】:Python基础(一)
  5. Qt UDP的初步使用
  6. linux用户登录实验,Linux用户和组相关命令及实验
  7. LeetCode 29. 两数相除(位运算)
  8. Python 下的 lambda 算子
  9. git 使用之三 remote 操作 添加 修改 远程库
  10. Pygame 安装教程
  11. C++三种继承方式--------私有继承(private)
  12. 发微博利器 FaWave(发微)---- chrome扩展程序
  13. 智力题:13 个球一个天平,现知道只有一个和其它的重量不同,问怎样称才能用三次就找到那个球?
  14. [转] 如何用BSP树生成游戏地图
  15. 企业项目实战k8s篇(十)Volumes配置管理
  16. 美国的做法致芯片市值持续暴跌5000亿美元,美国芯片则祈求中国买更多芯片
  17. 非系统管理员打开Internet Information Services (IIS)管理器
  18. VINS理论与代码详解2——单目视觉跟踪
  19. 07数据库设计(概念结构、逻辑结构)
  20. 计算机 库 英文翻译,计算机专业英文翻译

热门文章

  1. canvas实现蜘蛛网动态背景特效
  2. 计算机视觉技术 - 图像阈值
  3. Python非常适合副业,以私单的形式接一些小型项目
  4. Emoji表情分类整理,写blog速查用
  5. OBS无图像(黑屏)的终极解决办法(含切换集显无效办法)
  6. 莫顿码(Morton code)介绍
  7. 可视化界面:Activity 详解
  8. js 调用手机返回按钮
  9. python多台电脑聊天室_python的多人多功能聊天室
  10. vcs 覆盖率收集2——覆盖率选项 + 合并覆盖率