车联网设计(基于veins+omnetpp+sumo)

这篇具有很好参考价值的文章主要介绍了车联网设计(基于veins+omnetpp+sumo)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

车联网可以通过veins+omnetpp+sumo联合的方式进行仿真。其中veins可以配置车联网的参数,omnetpp可以仿真网络的连接和衰减,而sumo可以生成道路网和车辆流用于仿真。

目录

第一部分  设计部分

一. 车联网设计背景

1.1 设计背景

1.1.1 社会背景

1.1.2 研究动态

1.1.3 发展趋势

1.2现有车联网相关调研

1.2.1 百度百科的定义

1.2.2 现有车联网体系调研

二.车联网设计条件

三.车联网设计方案

3.1总体设计方案

3.2各个模块详细设计

3.2.1.车辆ID的设计

3.2.2.车辆组网的设计

3.2.3.车辆路由转发设计

第二部分 仿真及验证部分

一.环境的搭建

1.1 编译omnetpp

1.2 软件通信的建立

二.路网的生成

2.1 地图的导出

2.2 配置SUMO_HOME

2.3 生成xml格式的路网文件

2.4 车辆流的生成

2.5 创建配置文件并运行

三、网络的配置及仿真

四. 设计的验证

4.1 突发事件的响应速度

4.2 链路传播

4.3 整体性能分析


第一部分  设计部分

一. 车联网设计背景

1.1 设计背景

1.1.1 社会背景

近年来,随着汽车数量持续增长,城市交通拥堵日趋凸显,再加上道路的越发增多,如没有一种手段使道路信息实时更新,人们出行难度与出行效率就会越发不尽如人意。车辆的增多不仅引发了交通堵塞、空气污染等诸多现实问题,并给交通安全带来了较大影响,严重影响到人们的生活质量和社会的发展。车联网的出现,使得道路信息的传递方便快捷,使得人们能够更好的认识道路与周边信息,改善了出行效率,保障了驾驶安全。

1.1.2 研究动态

车联网于国外起步较早,旨在推动车间网联系统的发展,其中基本的功能包括导航或者求救,且近年来已经能够实现简单的实时通信(如实时导航与实时监控)。目前车联网的进一步发展将建立在互联网技术之上。

1.1.3 发展趋势

目前,发展车联网已经逐步提到了国家创新战略层面。在未来,车载互联网将与人工智能和大数据分析等技术结合在一起,并逐步与移动互联网相结合,不仅能为用户提供更具个性化的定制服务,更能够推动自动驾驶等的智能交通系统的发展。

1.2现有车联网相关调研

1.2.1 百度百科的定义

车联网(Internet of Vehicles)概念引申自物联网(Internet of Things),是以车内网、车际网和车载移动互联网为基础,按照约定的通信协议和数据交互标准,在车-X(X:车、路、行人及互联网等)之间,进行无线通讯和信息交换的大系统网络,是能够实现智能化交通管理、智能动态信息服务和车辆智能化控制的一体化网络,是物联网技术在交通系统领域的典型应用。

1.2.2 现有车联网体系调研

车联网的实现需要多端协作推动标准化的制定,但目前而言,这个目标还远远没有达成。

在布局方面:有的车企自主研发,有的车企与互联网技术公司合作,比如奥迪中国、通用、一汽大众、奔驰、宝马等大型汽车制造商都纷纷与百度达成了战略合作。

现在车联网的实现分为三类:

(1)每个车企各自为战

自建“智能、联网”汽车,例如:福特SYNC、宝马iDrive、通用OnStar、上汽inkaNet、长安Incall等,不同牌子的车无法交互。

究其根本,主要是他们还停留在端的层面,他们能完成汽车内容的信息传输和交换,但真正的车联网还需要接入互联网,通过互联网与车外的一切(路况、前后车、行人等)实现交互。

(2)对操作系统应用车载App的开发

利用联网技术,使汽车与手机连接,实现司机对汽车更便捷、智能化的控制。

但carplay基于ios系统运行,有些应用基于Android系统运行,这解决了云端的问题,但如何实现两者信息互通,也是未来标准化的方向。甚至出现了以手机为端,通过投屏的方式投射到中控大屏显示。这种方式固然解决端与云的问题,但交互的不便使得其不能长久发展。

第三类,是盒子+App的组合,通过盒子,完成数据传输到云,并显示在App上的一种方法。

这种方法可以说是目前比较进步的做法,既能获取到相应的汽车状况数据也能实现数据的传输与显示。

这三类方式是在探索车联网最终实现的不断尝试,但目前车联网的实现仍然面临不少问题:

(1)产业链的多方博弈,缺少领头

涉及车联网的主要有以下几方:汽车制造、内容提供及移动通信,车联网为他们都带来不少机遇。

汽车行业可以由单纯的汽车销售,转化为硬件、内容、服务一体化的移动出行服务商;同时又能让通信运营商及内容提供商,迅速绑定车主高端客户群体。

但是车联网产业链上有汽车厂商、移动运营商、汽车电子企业、互联网科技公司等诸多玩家,他们都从自身资源及技术优势入局,试图在未来车联网市场上分一杯羹,但是由谁来主导、制定标准、分配利益,进而实现整个产业的协同发展,至今仍是一个难题。

(2)核心技术的突破问题

车联网涉及多个领域的技术突破,例如通信速度和运行速度提升,智能语音技术的准确度,视觉识别系统的准确性,车辆标识与互通等,这些都是需要一步步进行技术升级与革新的。

(3)数据互通问题

这个问题与问题一类似,每个车企都希望自己能首先实现车联网,这种前提下的各自开发存在数据不互通的问题,数据是车联网的根本,通过对数据的统一处理和算法方能造就统一的车车互联,或者是制定一个大家共同遵守的标准。

在这种情况下,最好的方式是通过一个统一的云端平台实现,在这方面,互联网行业的大佬们或许更有能力。

但是,随着技术的不断发展,车联网的实现前景是可以期待的。在政府政策的扶持下,各方共同努力下,人们对智慧城市的满腔期望中,车联网的步伐正一步一步向前迈进。

二.车联网设计条件

  1. 无基础设施

本车联网是基于无基础设施设计的,考虑到一些地区和道路上,设置基站耗资或者偏远地区设置基站投资不成正比等原因,采用无基础设施的模式。此外采用无基础设计的模式车联网的设计还比较灵活。

  1. 通信速度要求快

车联网当中,车辆之间的通信要求很高,以便对车辆的行为进行及时快速的协调。

三.车联网设计方案

3.1总体设计方案

设计思路:主要基于目前计算机通信网络的网络设计理念来进行车联网的设计

设计对照:详见下图

车联网设计(基于veins+omnetpp+sumo)

图一.设计对照图

参照计算机通信网络的内容,先对车辆进行ID的设计,之后把车辆当作路由器可以进行消息的转发和组网互联。最后就需要考虑车辆之间的路由转发,把计算机通信网络中的路由转发方案进行改进,应用到我们的车联网设计当中。

设计流程:在我们的设想中,车联网中的每一辆汽车只会与它附近的车辆直接通信,通过下文将要提到的车联网ID系统识别对方的身份,同时考虑到路况多变,车联网中的链接应该是动态的,笔者设想的链接方式如下:

车联网设计(基于veins+omnetpp+sumo)

 

图二.组网示意图

图中中心×号的为当前车辆,其他的为其他车辆。当其他车辆进入虚线框中时,我们的当前车辆会和它建立预链接但是不传递除位置外过多信息。当车辆进一部进入实线框中时,我们的车辆会和它建立全连接。此时它们之间通过这个局域网共享许多的行驶信息。

当车辆之间建立局域网之后,就是车辆之间的消息发送和接收。因为该车联网的设计是没有基础设施(基站等)进行支撑的。所以我们就采用分布式设计,采用分布式路由算法进行路由转发。

3.2各个模块详细设计

3.2.1.车辆ID的设计

考虑到在同一个车联网组成的局域网中,我们只需要区分这个局域网内的每一辆车并且使得新加入局域网内部的车辆他的ID不会和局域网内已有的车辆ID重复。

我们的设想是,当车辆启动时,它会和一个管理车联网的大平台进行通信,此时平台要分配给它一个ID。那么我们是怎么做到同一局域网内ID不同的呢?因为我们车辆的通信一般是一个小范围的通信,所以每个车联网的大平台只需要管理它这一部分地区的车辆的ID信息不重复,当车辆行驶到另一个平台管理的区域时,就像移动通信互联一样,平台会重新给他分配一个ID,这样就可以实现我们所要求的功能。

车联网设计(基于veins+omnetpp+sumo)

 

图三.车辆IP设计

3.2.2.车辆组网的设计

 

关于车辆互联组网的逻辑过程如下图所示:

车联网设计(基于veins+omnetpp+sumo)

图四.组网简易流程图

具体流程如下:当车辆在行驶的过程当中,如果在车辆设定组网半径的范围内没有其他车辆,车辆就无法与其他车辆进行组网;反之,在组网半径内的车辆都可以进行组网进行通信。

关于组网的具体方式是

每隔一定的时间,车辆会定时向外界广播自己的信息(自己的ID,当前节点的位置、速度、所处道路ID等信息)。然后周围的车辆接收到这些相关信息之后会加入自己的邻居节点信息表内。

3.2.3.车辆路由转发设计

由前面的组网方式可以知道,车辆在一定范围内可以进行组网。在构成一张网络拓扑图之后,由于在整个车联网当中,车辆的数目有限,我们直接采用分布式路由中的洪泛协议进行转发。

具体流程就是:车辆当有信息要转发的时候,就把信息向邻接的路由器进行转发,之后相应的进行转发,不转发入口处的路由信息。

车辆路由转发洪泛的详细设计:

车联网设计(基于veins+omnetpp+sumo)

 

图五.路由洪泛

当车辆有消息要进行转发时,就会进行洪泛,指导匹配到目的IP 的车辆。洪泛过程中也会采用一定的措施来解决广播风暴等问题。

第二部分 仿真及验证部分

在仿真及验证部分,我们查阅资料,了解到车联网可以通过veins+omnetpp+sumo联合的方式进行仿真。其中veins可以配置车联网的参数,omnetpp可以仿真网络的连接和衰减,而sumo可以生成道路网和车辆流用于仿真。

一.环境的搭建

由于本次仿真采取三个软件联合仿真的方式,三个软件之间版本需要互相适配。通过veins官网的查询和前人的经验,最终决定采用veins-4.7.1+omnetpp-5.4.1+sumo-0.30.0的版本进行仿真。

1.1 编译omnetpp

在编译omnetpp之前电脑上应该首先安装好python和mingwenv,否则会导致编译失败。之后打开omnetpp文件夹中的mingwenv.cmd便可以进入命令行,输入./configure后等待便可以完成编译。完成编译后输入omnetpp便可打开窗口如下:

车联网设计(基于veins+omnetpp+sumo)

 

1.2 软件通信的建立

通过在上文中的命令行中使用cd指令进入veins中的examples/veins文件中,通过命令C:/che/sumo-0.30.0/bin/sumo.exe -c erlangen.sumo.cfg让sumo基于sumo.cfg的配置文件运行。之后用命令C:/che/veins-veins-4.7.1/sumo-launchd.py -vv -c C:/che/sumo-0.30.0/bin/sumo.exe建立omnetpp和sumo的连接。当显示“Listening on port 9999”说明应用间的TCP通信已经建立。

二.路网的生成

2.1 地图的导出

通过OpenStreeMap导出想要仿真的路段,网址为https://www.openstreetmap.org/

车联网设计(基于veins+omnetpp+sumo)

 

通过选中区域后导出,便可以得到.osm格式的文件。

2.2 配置SUMO_HOME

要想完成路网的转换并且生成车辆流文件,必须完成对SUMO_HOME的配置。否则在调用.py文件时会报错找不到SUMO_HOME。

配置方法:打开系统的环境变量设置,添加一个变量为SUMO_HOME,路径为sumo的文件夹。

车联网设计(基于veins+omnetpp+sumo)

 

之后在Path中讲sumo文件夹下的bin和tools都加入其中。

车联网设计(基于veins+omnetpp+sumo)

 

在系统变量和用户变量中都进行同样的操作后关机重启。

2.3 生成xml格式的路网文件

将第一步中生成的osm文件放入sumo下的tools文件夹中,在此文件夹中打开cmd控制台。通过命令netconvert --osm-files map.osm -o map.net.xml便可以生成路网文件。在生成的过程中可能会有很多warning,这是因为有些类型的路面,如铁轨等被视为不稳定路面,我们可以不用在意他,只要最后提示success即为成功。

2.4 车辆流的生成

基于已经生成的路网文件,我们便可以继续调用sumo给的工具生成随机车辆流。通过命令python randomTrips.py -n map.net.xml -r map.rou.xml -e 200 -p 0.1 -l便可以生成车辆流文件。其中-e后表示车辆流结束时间,要与之后的仿真时间对应。

2.5 创建配置文件并运行

当有了路网文件和车辆流文件后,我们需要使用配置文件来连接和运行他们。在同一个文件夹中新建记事本后写入以下内容:

<?xml version="1.0" encoding="iso-8859-1"?>

<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.sf.net/xsd/sumoConfiguration.xsd">

    <input>
        <net-file value="erlangen.net.xml"/>
        <route-files value="erlangen.rou.xml"/>
        <additional-files value="erlangen.poly.xml"/>
    </input>

    <output>
        <tripinfo-output value="tripinfos.xml"/>
        <fcd-output value="fcd.xml"/>
    </output>

    <time>
        <begin value="0"/>
        <end value="1000"/>
        <step-length value="0.1"/>
    </time>

    <report>
        <no-step-log value="true"/>
    </report>

    <gui_only>
        <start value="true"/>
    </gui_only>

</configuration>

其中重要的内容为input和output。通过input选择路网文件、车辆流文件以及建筑物文件。通过output可以输出仿真结果,最后通过画图展示。

保存后重命名为erlangen.sumo.cfg。之后使用sumo.gui.exe的方式打开。能够正常在sumo中仿真说明路网文件和车辆流文件没问题。

车联网设计(基于veins+omnetpp+sumo)

 

三、网络的配置及仿真

我们将每辆车定义为一个网络节点,其网络信息由网络层管理并且传输到其应用层控制车辆的行为。其结构图如下:

车联网设计(基于veins+omnetpp+sumo)

 

其中nic为网络控制器接口,我们采用802.11p协议,这个协议本身为了快速车辆之间互联而设计。

之后再修改omnetpp.ini文件,配置车辆网络的衰减模型、车辆之间的连接方式以及连接距离等重要参数后便可以开始仿真。

具体的仿真窗口如下:

车联网设计(基于veins+omnetpp+sumo)

 

其中最左边的窗口可以看到我们整个仿真文件的结构。

车联网设计(基于veins+omnetpp+sumo)

 

而下方窗口可以看到实时的事件情况。

车联网设计(基于veins+omnetpp+sumo)

 

四. 设计的验证

4.1 突发事件的响应速度

车联网设计(基于veins+omnetpp+sumo)

 

图中红圈标注的70号车在103s000ms002us216ns455ps时发出突发事件提醒给周围车辆。

车联网设计(基于veins+omnetpp+sumo)

 

大概一秒的时间,周围车辆便全部收到提醒。

车联网设计(基于veins+omnetpp+sumo)

 

之后再过1s的时间后70号车收到ack。可以看到消息传递的速度非常快,能够满足车联网对于实时性的要求。

4.2 链路传播

车辆在路中行驶时,极易形成一个车队的形式,那么消息从车队的头部传导到尾部的时间也是其中的一个重要参考指标。

车联网设计(基于veins+omnetpp+sumo)

 

第31秒时,车队的头端发送突发事件,最终用时两秒多完成从车队头到车队尾11个车的传递。

车联网设计(基于veins+omnetpp+sumo)

 

4.3 整体性能分析

车辆的速度与事件的关系图如下:

车联网设计(基于veins+omnetpp+sumo)

 

图中不同颜色代表不同车辆随时间的速度变化。可以看到大部分车辆在大多数时候都可以保持较高的车速,只有在出现突发状况(红绿灯、变道、车辆汇入)的时候车速会下降。说明此车联网具有高效性,能够保证车辆尽量快地运行。文章来源地址https://www.toymoban.com/news/detail-424675.html

到了这里,关于车联网设计(基于veins+omnetpp+sumo)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 考研证件照可以自己用手机拍吗?考研证件照p过可以通过审核吗?考研证件照有什么要求

    现在的智能手机相机技术先进,大多都配备了高像素摄像头,使得自拍照片的质量有了大幅提升。相较于传统的证件照拍摄,使用手机自拍考研证件照理论上是可行的。然而,考研证件照需要满足一定的规定和标准,包括照片的背景颜色、人物的服装、姿势等方面。 在拍摄考

    2024年02月19日
    浏览(72)
  • 小程序可以通过以下几种方式下发消息

    1.模板消息 小程序可以通过模板消息向用户发送通知,例如订单状态更新、活动提醒等。开发者需要先在小程序后台设置好模板消息,并获取到模板消息的模板ID。然后在代码中调用相应的API,将模板消息的内容填充并发送给用户。 以下是一个示例代码,用于发送小程序模板

    2024年02月07日
    浏览(41)
  • 设备分散怎么办? 可以通过链路层发现协议

    大型网络中,连接清晰是很重要滴。网络越大,逻辑上和物理上都越难理清。再加上还有冗余链路和链路聚合,会大大增加理清网络中设备互连情况的难度。而且,问题还不止于此。混合使用来自不同供应商的网络产品,会让设备发现协议无所适从。 首先,我要讲一个背景故

    2024年02月07日
    浏览(48)
  • 语音识别功能测试:90%问题,可以通过技术解决

    现在市面上的智能电子产品千千万,为了达到人们使用更加方便的目的,很多智能产品都开发了语音识别功能,用来语音唤醒进行交互;另外,各大公司也开发出来了各种智能语音机器人,比如小米公司的“小爱”,百度公司的“小度”,三星公司的“bixby”,苹果的“siri”

    2024年02月03日
    浏览(40)
  • 电脑可以通过蓝牙发送文件吗?电脑蓝牙怎么发送文件

    蓝牙(bluetooth)是一种支持设备短距离通信的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。蓝牙技术让数据传输变得更加迅速高效,为无线通信拓宽道路。随着蓝牙技术的发展,其应用领域越来越广泛,那么,

    2024年02月09日
    浏览(70)
  • 制造企业可以通过数字工厂管理系统降低采购成本吗

    制造企业可以通过数字工厂管理系统降低采购成本。制造业数字工厂系统是一种基于数字化技术的管理系统,可以帮助企业实现生产过程的数字化管理,提高生产效率和降低生产成本。下面具体介绍数字工厂管理系统如何降低制造企业的采购成本。   一、优化采购计划 数字

    2024年02月11日
    浏览(45)
  • 将一张RGB图像转换为BGR格式可以通过以下步骤实现

    读取图像:使用图像处理库(如OpenCV)读取一张RGB格式的图像,并将其存储为NumPy数组。 转换通道顺序:使用np.transpose函数将图像数组的通道顺序从RGB转换为BGR。 在这里,np.transpose函数的第一个参数是图像数组,第二个参数是元组,表示要交换的维度顺序。由于RGB格式的图像

    2024年02月11日
    浏览(67)
  • python函数可以通过列表索引放到button事件 by chatgpt

    Python函数可以通过列表索引放到按钮事件中。在按钮事件处理函数中,你可以使用`event.widget`属性获取触发事件的按钮,然后使用`grid_info()`方法获取按钮的行和列索引,最后使用索引从列表中获取函数并调用它。   以下是示例代码:   ```python import tkinter as tk   # 创建主窗口

    2023年04月25日
    浏览(57)
  • 稳了,终于可以通过外网访问 Sealos 中的数据库了!

    喜大普奔,Sealos 中的数据库功能现已全面升级,支持外网访问! 现在你可以从互联网的任何地方访问 Sealos 中的数据库 ,无论您的应用部署在何种环境,现在都可以轻松通过外网连接到 Sealos 中的数据库,打破地理限制,提升工作效率和灵活性。 目前数据库是通过 NodePort 暴

    2024年02月05日
    浏览(48)
  • 【the import cannot be resolved问题可以通过以下方法解决】

    eclipse 导入的项目后,src源码类文件代码的import xx.xxx.xx 识别不了其他包的类。提示the import can not be resolved project-clean ,重新编译项目; 引入源码文件 , 右键项目-build path - Config build path-source-add folder-选中每个module中的src; 重新导入依赖jar包 ,右键项目-build path - Config buil

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包