CN103345548B - 微观交通仿真器与多驾驶模拟器整合式网络化实验平台 - Google Patents
微观交通仿真器与多驾驶模拟器整合式网络化实验平台 Download PDFInfo
- Publication number
- CN103345548B CN103345548B CN201310259950.1A CN201310259950A CN103345548B CN 103345548 B CN103345548 B CN 103345548B CN 201310259950 A CN201310259950 A CN 201310259950A CN 103345548 B CN103345548 B CN 103345548B
- Authority
- CN
- China
- Prior art keywords
- data
- client
- server
- simulation device
- control desk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Traffic Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种实现微观交通仿真器与多台驾驶模拟器功能整合的一体化网络实验平台。每个驾驶模拟器作为一个分控制台实时检测记录驾驶员的驾驶行为参数和实验车状态,定时将上述信息通过网络通信协议发送至主控制台微观交通仿真器;微观交通仿真器对每次输入的信息进行处理后,分析计算当前交通流参数并返还给各个驾驶模拟器;驾驶模拟器将收到的路网交通流参数信息进行图像化处理后,驾驶员可在驾驶模拟器显示屏上看到实验车附近的车辆,供驾驶员做驾驶决策。该平台突破了传统驾驶模拟器仅能研究个体驾驶行为的约束,使得研究多人或某一群体的驾驶行为对整体交通流状态的影响成为可能;而且通过整合微观交通仿真器,使得实验车周边交通流的模拟更为逼真,显著提高驾驶模拟器对交通流运行行为的实验能力。
Description
技术领域
本发明属于智能交通系统和交通仿真技术领域,更具体的说,本发明涉及一种实现微观交通仿真器与多台驾驶模拟器整合式网络化实验平台。
背景技术
道路交通系统是由人、车、路、交通环境四大要素构成的复杂系统,这些要素既独立作用又相互制约,共同决定了这个复杂系统的运行状况。传统的运用数学模型方法对交通系统进行理论分析存在很大的难度,而现场实证存在受实际场景的条件限制、实施成本大且安全性不高等问题,因此对驾驶行为进行实验研究是一种新的技术手段。虚拟现实技术的发展使得虚拟驾驶实验越来越成为目前学术研究和企业产品开发的热点。
近年来,随着智能交通系统在我国的逐步实施,微观交通仿真器(或称之为微观交通仿真软件)在我国也得到了广泛的应用,如VISSIM、PARAMICS、AIMSUN等。微观交通仿真器是建立在以每个车辆的运行行为为基本单元,详细描述交通系统的要素及行为细节的交通系统模型。每个车辆在道路上的跟车、超车以及车道变换等微观行为都能得到较真实的反映。微观交通仿真器是在计算中运行,在仿真开始前,一旦驾驶行为参数设定,仿真将按照设定的行为参数运行。它不能实时反映不同驾驶人在不同交通场景中的行为变化情况;同时由于人的行为(Humanfactors)多样性,对于微观交通仿真器中没有涉及的人类交通行为特征参数,则不能进行仿真实验。
目前,驾驶模拟器作为一个专业的虚拟现实实验工具已经成为道路交通研究、管理和设计部门在实验室可控条件下研究交通问题的重要科学工具。它允许研究人员任意建立某个具有交通特定环境及交通动态特征的虚拟场景,并实现对驾驶车辆的动态参数和其它环境因素有条件的控制,在驾驶模拟系统上实现对各类道路交通问题的动态信息采集、参数分析和虚拟实验。传统驾驶模拟器对交通流的仿真主要采取固定式车流设置,即预先设定好除实验车以外其余所有车辆的运动规律按固定的路线行驶,不能体现驾驶员所控制的车辆与周围车辆之间的动态交互行为,更不能体现由于车流交互作用而引起的系统整体变化特征(如交通流的停车波、启动波等)。且传统的驾驶模拟器研究多集中在利用单车驾驶模拟器,对驾驶员的各种驾驶行为进行实验研究,如何研究多辆车或车群对整体交通流的影响目前的技术和方法还“无能为力”。
综上所述,微观交通仿真器和驾驶模拟器各存在优缺点,如果把两者结合起来,在驾驶模拟器上既有真实的驾驶员驾驶行为信息,虚拟场景中又有逼真的微观交通流,就可以实现基于微观交通仿真器的驾驶模拟综合仿真,且通过接入多台驾驶模拟器,可用于研究多人或某一群体的驾驶行为对整体交通流状态的影响。在现有的申请号为2013100811346的发明中,实现了一种微观交通仿真器与单个驾驶模拟器交互式一体化实验平台的方法。这项发明的优点在于它使得驾驶员可以控制微观交通仿真器中的某一辆车作为实验车,由此研究单一车辆行为对交通流的影响。然而该项发明具有很大的局限性:首先,单一车辆对整体交通流的影响能力是有限的;第二,绝大多数驾驶行为并不是某一辆车的个体行为,而是具有群体性的群体行为,如车道变化行为设计本身车道及目标车道的多台车辆;而该项发明并不能对这种多台车辆的交互行为进行高精度的虚拟实验,因此其实用价值也是有限的。
本发明旨在建立微观交通仿真器与多台驾驶模拟器功能整合式的一体化网络实验平台。通过建立一体化网络实验平台,使得多台驾驶员可以分别控制微观交通仿真器中的某几辆车或某个车群,微观交通仿真器中的某几辆车或某个车群能够按照驾驶员真实的驾驶行为或某种特定的驾驶行为进行交通实验。既解决了微观交通仿真器中不能实时反映人的行为多样性的缺点,又克服传统驾驶模拟器单一车辆影响能力小且无法研究车群对交通流影响的局限性。同时本发明与现有技术相比也具有极大的实用价值:本发明使得一些之前在微观交通仿真器中无法进行模拟的仿真场景,比如研究某类特殊驾驶行为,或者某种车群特有的驾驶行为对整体交通流的影响等,能够通过一体化实验平台进行很好的虚拟实验,得到较真实、重要的实验数据。
发明内容
本发明提出的一种微观交通仿真器与多驾驶模拟器整合式网络化实验平台。
本发明提出的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,由微观交通仿真器1、主控制台2、分控制台3、驾驶模拟器4、第一层C/S结构5和第二层C/S结构6组成,微观交通仿真器1通过第二层C/S结构6与主控制台2之间进行双向连接,主控制台2通过第一层C/S结构5与各个分控制台3进行双向连接,各个分控制台3通过第二层C/S结构6与相应的驾驶模拟器4进行双向连接;所述第一层C/S结构5和第二层C/S结构6。采用网络通信协议;所述第一层C/S结构5和第二层C/S结构6通过数据流A和数据流B实现,数据流A为驾驶模拟器向微观交通仿真器输入的驾驶员的驾驶行为参数和实验车状态信息;数据流B为微观交通仿真器向驾驶模拟器输入的当前路网交通流参数信息;数据流A由各个驾驶模拟器负责采集,通过第二层C/S结构传给各自的分控制台,分控制台对数据进行处理后通过第一层C/S结构传给主控制台,主控制台将收到的数据通过第二层C/S结构传给微观交通仿真器;数据流B由微观交通仿真器计算产生,通过第二层C/S结构传给主控制台,主控制台对数据进行处理并将需要发送的数据分别打包,主控制台通过第一层C/S结构将数据分别传给各个分控制台,分控制台将收到的数据通过第二层C/S结构传给相应的驾驶模拟器;
所述主控制台2负责与各个分控制台3的通信以及与微观交通仿真器1的通信;所述分控制台3负责与主控制台2的通信和与驾驶模拟器4的通信;
所述实验平台的工作流程如下:
(1)驾驶员通过驾驶模拟器驾驶实验车;
(2)驾驶模拟器实时检测记录驾驶员的驾驶行为参数和实验车状态,每隔一定间隔将上述信息通过网络通信协议发送给相应的分控制台;
(3)分控制台对输入的数据信息进行处理,通过网络通信协议发送给主控制台;
(4)主控制台对收到的信息进行处理,通过网络通信协议发送给微观交通仿真器;
(5)微观交通仿真器对输入的各驾驶员的驾驶行为参数和实验车状态信息进行处理,分析计算当前交通流参数;
(6)微观交通仿真器将计算后的交通流参数发送给主控制台;
(7)主控制台对收到的信息进行处理,分别发送给各个分控制台;
(8)分控制台对收到的信息进行处理,发送给相应的驾驶模拟器;
(9)驾驶模拟器将收到的路网交通流参数信息进行处理并显示在屏幕上,驾驶员可在驾驶模拟器显示屏上看到实验车附近的车辆,供驾驶员做驾驶决策。
本发明中,所述主控制台1包括一个Sever服务器、一个Client客户端、公用数据库、线程管理模块、数据存储处理模块和数据发送处理模块;
Sever服务器:主控制台内的Sever作为各个分控制台内部各Client端的服务器,既负责从各分控制台收集数据,并通过调用数据存储处理模块将数据存储至公共数据区,又负责将数据发送处理模块处理好的数据按照程序提供的IP地址发送给各分控制台。Sever服务器同时为多台Client客户端服务,因此要借助线程管理模块来统筹各个线程的工作状态,避免线程冲突以及公用数据区调用冲突。
Client客户端:主控制台内的Client客户端负责与微观交通仿真器内的Sever服务器进行通信,将数据发送处理模块处理过的数据包发送给微观交通仿真器,并从微观交通仿真器接收含有当前路网信息的数据包。由于Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理模块,并借此使用公用数据区。为避免和控制台内Sever服务器使用公用数据区的各个线程发生冲突,Client客户端也被纳入了线程管理模块,接收线程管理模块的指令,按统筹进行公共数据区访问。
公用数据库:公用数据库是脱离线程的“物理结构”。它可以接收各个线程的访问,但并不附属于任何一个线程。公用数据区的这个特点使得它可以存放控制台内所有线程需要或收到的数据,方便各个线程之间的协调与整体数据的处理。
线程管理模块:线程管理模块统筹规划各线程的创建、结束以及公用数据区的访问。线程管理模块的调控是为了避免各线程之间由于对某一系统资源的同时调用发生线程冲突,以及避免各线程对公用数据区同时进行修改发生的数据区调用冲突。
数据存储处理模块:数据存储处理模块包含两部分,分别为控制台内的Sever服务器和Client客户端服务。在它们调用数据存储处理模块之前,先要经过线程管理模块的许可才能调用数据存储处理模块。但为保证程序安全性,数据存储程序在访问公共数据区前会再一次向公用数据区确认公用数据区是否被占用,再对公用数据区进行访问,这是一个“双保险”的机制。数据存储处理模块被Sever服务器调用时,会将Sever或Client收到的数据进行筛选,并按照程序设定的格式处理。数据处理结束后,数据存储处理模块会校验数据是否满足设定的格式要求,最后再存入公用数据区。数据存储处理模块被Client客户端调用时,工作步骤与被Sever服务器调用时相同,区别在于数据处理的格式要求不完全相同。
数据发送处理模块:数据发送处理模块也分为两部分,分别为Sever服务器和Client客户端服务。同数据存储处理模块一样,数据发送程序在访问公共数据区前会向公共数据区确认其是否被占用(虽然线程管理模块在允许Sever或Client调用数据发送时已经确认了公共数据区未被占用)。这种双保险的机制是为了程序的安全性和稳定性。数据发送程序在为Sever服务器服务时,会从公用数据区调取之前存储的路网车流信息,并按照IP地址对应的试验车编号对数据进行筛选和分段处理,为每个IP地址筛选出对应的车辆信息。信息筛选结束后,数据发送处理模块再对每个筛选好的数据进行标准化处理,使其符合系统设定的数据格式。最后再检验数据格式正确后将每个IP地址及对应数据包发送给Sever服务器供用其向各个分机发送。数据发送程序为Client客户端服务时,会从公用数据区调取之前存储的各个试验车信息,并将各条信息整合。信息整合完毕后,将信息按照系统设定格式进行格式统一化处理,最后在校验数据格式正确后将数据发送给Client客户端进行发送。
本发明中,所述分控制台3包括一个Sever服务器、一个Client客户端、公用数据库、线程管理模块、数据存储处理模块和数据发送处理模块。
Sever服务器:分控制台内的Sever作为驾驶模拟器内部Client的服务器,既负责从驾驶模拟器收集数据,并通过调用数据存储处理模块将数据存储至公共数据区,又负责将数据发送处理模块处理好的数据发送给驾驶模拟器。该Sever只为一个Client客户端服务,不会涉及线程冲突。但由于调用数据存储处理模块及数据发送处理模块需要访问公用数据区,为避免发生数据区访问冲突,要借助线程管理模块来统筹工作状态,规划其对数据存储或发送处理程序的调用。
Client客户端:分控制台内的Client客户端负责与主控制台内的Sever服务器进行通信,将数据发送处理模块处理过的数据包发送给主控制台内的Sever服务器,并从主控制台内的Sever服务器接收含有本驾驶模拟器实验车附近路网信息的数据包。由于Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理模块,并借此使用公用数据区。为避免和控制台内Sever服务器使用公用数据区的各个线程发生冲突,Client客户端也被纳入了线程管理模块,接收线程管理模块的指令,按统筹进行公共数据区访问。
公用数据库:与主控制台内公用数据库作用相同。
线程管理模块、数据存储处理模块以及数据发送处理模块,虽然与主控制台内程序方式及算法不近相同,但二者作用相同,不再赘述。
本发明中,所述主控制台的工作流程如下:
(1)主控制台中Sever端开启,等待Client端建立连接;
(2)主控制台接收到分控制台中Client端的连接请求,建立连接,记录其IP地址,并为该Client端开启监听线程;
(3)主控制台接收到微观交通仿真器中Client端的连接请求,建立连接,并为该Client端开启监听线程;
(4)主控制台接收到来自微观交通仿真器的信息,将该信息进行分段,然后筛选出发送给不同IP地址(即发给不同的分控制台)的信息,通过网络协议依次向各分控制台发送信息;
(5)若主控制台收到某个分控制台的信息,将该信息处理为微观交通仿真器可以识别的格式并通过网络通信协议向微观交通仿真器发送。
本发明中,所述分控制台的工作流程如下:
(1)分控制台中Sever端开启,等待驾驶模拟器内部的Client端建立连接;
(2)分控制台中Client端开启,向主控制台中的Sever端发送连接请求;
(3)分控制台中Sever端接收到驾驶模拟器内部的Client端的连接请求,建立连接;
(4)分控制台中Client端的连接请求被主控制台中的Sever端收到,建立连接;
(5)若分控制台中的Sever端接收到驾驶模拟器的信息,对信息进行标准化处理,使其符合规定的格式,并通过网络通信协议发送给主控制台;
(6)若分控制台中的Client端接收到主控制台的信息,对信息进行标准化处理,使其符合规定的格式,并通过网络通信协议发送给驾驶模拟器。
本发明中,所述驾驶模拟器的工作流程如下:
(1)驾驶模拟器内部的Client端向相应的控制台C中的Sever端发送连接请求,直到与该Sever端建立连接;
(2)驾驶模拟器的时间控件控制驾驶模拟器的Client端每隔一定极短的时间段向相应的控制台C发送一次数据信息,内容为驾驶员的驾驶行为参数和实验车状态信息;
(3)发送完成后,驾驶模拟器等待相应的控制台C传回实验车附近的车辆状态信息;
(4)驾驶模拟器对传回车辆的ID进行判断:如果传回车辆的ID不存在于当前车辆ID数组中(即有新的车辆进入驾驶员视野),则创建一辆车辆模型置于数据中发送的位置;如果当前车辆的ID数组中不存在传回车辆的ID(即有车辆离开驾驶员视野),则销毁该车辆模型并释放对应ID;
(5)驾驶模拟器根据当前车辆的状态与传回车辆的状态信息,在驾驶模拟器显示屏上对应每一个车辆ID做出每一辆车的移动动画;
(6)返回步骤(2)。
本发明中,所述微观交通仿真器的工作流程如下:
(1)微观交通仿真器内部的Client端向控制台S中的Sever端发送连接请求,直到与该Sever端建立连接,微观交通仿真器对路网进行初始化;
(2)微观交通仿真器等待控制台S的信息,直至接收到驾驶员的驾驶行为参数和实验车状态信息,单步实验开始;
(3)微观交通仿真器首先对进行单步运算的所有车辆的计算参数进行初始化,微观交通仿真器按照车辆ID依次选中路网中车辆,并和接收到的实验车信息中的车辆ID依次进行比对,当微观交通仿真器选定的车辆ID与实验车信息中的某辆车的ID相同时,微观交通仿真器将该车的驾驶行为参数(加速度,是否换道,换道角度等)按照接收到的数据进行修改;
(4)微观交通仿真器对进行单步运算的所有车辆的计算参数初始化后,按照其自身规则进行运算,计算出下一个时间间隔后的路网状况;
(5)微观交通仿真器将计算后的路网交通流参数信息发送给控制台S;
(6)单步运行结束,返回步骤(2)。
本发明的有益效果在于:
1、本发明开发了微观交通仿真器与驾驶模拟器的接口,实现微观交通仿真器与多台驾驶模拟器的高效实时数据交互;
2、本发明基于中央控制式网络技术实现微观交通仿真器与多台驾驶模拟器的连接,解决了现有技术无法改变微观交通仿真器中多台车辆或车群驾驶行为的局限性;
3、本发明建立了微观交通仿真器与多台驾驶模拟器功能整合式的一体化网络实验平台,其双层Client/Server(C/S)结构是在微观交通仿真器与驾驶模拟器的首次应用。
附图说明
图1为实验平台的网络结构图。
图2为一次单步仿真实验过程的流程图。
图3为实验平台框架图。
图中标号:1为微观交通仿真器,2为主控制台,3为分控制台,4为驾驶模拟器,5为第一层C/S结构,6为第二层C/S结构。
具体实施方式
下面通过实施例进一步说明本发明。
实施例1:如图1所示,所述实验平台包括多台驾驶模拟器4、一个主控制台2、与驾驶模拟器4相同数量的分控制台3,以及一个微观交通仿真器1。
微观交通仿真器1与多台驾驶模拟器4整合式一体化网络实验平台为多机相连的中央控制式网络结构,即每台驾驶模拟器1均与微观交通仿真器1通过网络协议进行通讯。每台驾驶模拟器4之间并无直接联系,每台驾驶模拟器4的数据均从微观交通仿真器获得。
平台的网络结构为双层Client/Server(C/S)结构:第一层C/S结构5负责主控制台与各个分控制台之间的数据传输,主控制台2和分控制台3之间通过网络通信协议进行数据传输;第二层C/S结构6负责各控制台与微观交通仿真器或相应的驾驶模拟器进行数据传输,主控制台与微观交通仿真器以及各个分控制台与相应的驾驶模拟器之间也通过网络通信协议进行数据传输。网络结构如图1所示。
数据流分为A、B两种:数据流A为驾驶模拟器向微观交通仿真器输入的驾驶员的驾驶行为参数和实验车状态信息;数据流B为微观交通仿真器向驾驶模拟器输入的当前路网交通流参数信息。
数据流A由各个驾驶模拟器负责采集,通过第二层C/S结构传给各自的分控制台,分控制台对数据进行处理后通过第一层C/S结构传给主控制台,主控制台将收到的数据通过第二层C/S结构传给微观交通仿真器。数据流A包含的内容是驾驶员操作的实验车的状态信息。
数据流B由微观交通仿真器计算产生,通过第二层C/S结构传给主控制台,主控制台对数据进行处理并将需要发送的数据分别打包,主控制台通过第一层C/S结构将数据分别传给各个分控制台,分控制台将收到的数据通过第二层C/S结构传给相应的驾驶模拟器。数据流B包含的内容是微观交通仿真器内当前路网及车辆信息。
所述主控制台位于微观交通仿真器端,负责与各个分控制台的通信以及与微观交通仿真器的通信。主控制台内部包含一个Sever作为各个分控制台内部各Client的服务器,还包含一个Client作为微观交通仿真器内Sever的客户端。在控制台内部由于其数据自由度较大,可以便捷的实现多线程之间的数据共享,方便了数据的整合和处理,这是选用控制台的主要原因之一。
主控制台内包括一个Sever服务器,一个Client客户端,公用数据库,线程管理模块,数据存储处理模块,数据发送处理模块。
Sever服务器:主控制台内的Sever作为各个分控制台内部各Client端的服务器,既负责从各分控制台收集数据,并通过调用数据存储处理程序将数据存储至公共数据区,又负责将数据发送处理程序处理好的数据按照程序提供的IP地址发送给各分控制台。Sever服务器同时为多台Client客户端服务,因此要借助线程管理程序来统筹各个线程的工作状态,避免线程冲突以及公用数据区调用冲突。
Client客户端:主控制台内的Client客户端负责与微观交通仿真器内的Sever服务器进行通信,将数据发送处理程序处理过的数据包发送给微观交通仿真器,并从微观交通仿真器接收含有当前路网信息的数据包。由于Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理程序,并借此使用公用数据区。为避免和控制台内Sever服务器使用公用数据区的各个线程发生冲突,Client客户端也被纳入了线程管理程序,接收线程管理程序的指令,按统筹进行公共数据区访问。
公用数据库:公用数据库是脱离线程的“物理结构”。它可以接收各个线程的访问,但并不附属于任何一个线程。公用数据区的这个特点使得它可以存放控制台内所有线程需要或收到的数据,方便各个线程之间的协调与整体数据的处理。
线程管理模块:线程管理程序统筹规划各线程的创建、结束以及公用数据区的访问。线程管理程序的调控是为了避免各线程之间由于对某一系统资源的同时调用发生线程冲突,以及避免各线程对公用数据区同时进行修改发生的数据区调用冲突。
数据存储处理模块:数据存储处理程序包含两部分,分别为控制台内的Sever服务器和Client客户端服务。在它们调用数据存储处理程序之前,先要经过线程管理程序的许可才能调用数据存储处理程序。但为保证程序安全性,数据存储程序在访问公共数据区前会再一次向公用数据区确认公用数据区是否被占用,再对公用数据区进行访问,这是一个“双保险”的机制。数据存储处理程序被Sever服务器调用时,会将Sever或Client收到的数据进行筛选,并按照程序设定的格式处理。数据处理结束后,数据存储处理程序会校验数据是否满足设定的格式要求,最后再存入公用数据区。数据存储处理程序被Client客户端调用时,工作步骤与被Sever服务器调用时相同,区别在于数据处理的格式要求不完全相同。
数据发送处理模块:数据发送处理程序也分为两部分,分别为Sever服务器和Client客户端服务。同数据存储处理程序一样,数据发送程序在访问公共数据区前会向公共数据区确认其是否被占用(虽然线程管理程序在允许Sever或Client调用数据发送时已经确认了公共数据区未被占用)。这种双保险的机制是为了程序的安全性和稳定性。数据发送程序在为Sever服务器服务时,会从公用数据区调取之前存储的路网车流信息,并按照IP地址对应的试验车编号对数据进行筛选和分段处理,为每个IP地址筛选出对应的车辆信息。信息筛选结束后,数据发送处理程序再对每个筛选好的数据进行标准化处理,使其符合系统设定的数据格式。最后再检验数据格式正确后将每个IP地址及对应数据包发送给Sever服务器供用其向各个分机发送。数据发送程序为Client客户端服务时,会从公用数据区调取之前存储的各个试验车信息,并将各条信息整合。信息整合完毕后,将信息按照系统设定格式进行格式统一化处理,最后在校验数据格式正确后将数据发送给Client客户端进行发送。
所述分控制台位于驾驶模拟器端,负责与主控制台的通信和与驾驶模拟器的通信。分控制台内部包含一个Client作为主控制台内部Sever的客户端,还包含一个Sever作为驾驶模拟器内部Client的服务器。由于控制台内部可以自由的对数据进行处理,可以帮助驾驶模拟器处理大部分数据,且开发起来比开发驾驶模拟器内部程序简单,由此降低了开发难度,提高了处理速度,这也是选用控制台的原因之一。
分控制台内包括一个Sever服务器,一个Client客户端,公用数据库,线程管理模块,数据存储处理模块,数据发送处理模块。
Sever服务器:分控制台内的Sever作为驾驶模拟器内部Client的服务器,既负责从驾驶模拟器收集数据,并通过调用数据存储处理程序将数据存储至公共数据区,又负责将数据发送处理程序处理好的数据发送给驾驶模拟器。该Sever只为一个Client客户端服务,不会涉及线程冲突。但由于调用数据存储处理程序及数据发送处理程序需要访问公用数据区,为避免发生数据区访问冲突,要借助线程管理程序来统筹工作状态,规划其对数据存储或发送处理程序的调用。
Client客户端:分控制台内的Client客户端负责与主控制台内的Sever服务器进行通信,将数据发送处理程序处理过的数据包发送给主控制台内的Sever服务器,并从主控制台内的Sever服务器接收含有本驾驶模拟器实验车附近路网信息的数据包。由于Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理程序,并借此使用公用数据区。为避免和控制台内Sever服务器使用公用数据区的各个线程发生冲突,Client客户端也被纳入了线程管理程序,接收线程管理程序的指令,按统筹进行公共数据区访问。
公用数据库:与主控制台内公用数据库作用相同。
线程管理模块、数据存储处理模块以及数据发送处理模块,虽然与主控制台内程序方式及算法不近相同,但二者作用相同,不再赘述。
微观交通仿真器采用VISSIM5.40版本软件,驾驶模拟器采用利用LogitechG27(方向盘、档位和踏板三大组件)和VIRTOOLS5.0版本软件自主开发的驾驶模拟器。其中,VISSIM软件的数据交换模块为自主开发的适用于该软件的DLL文件,根据权利要求书5中所述,为降低网络延时且驾驶模拟器的数量较少时,主控制台内置于DLL文件中;驾驶模拟器中的数据交换模块为利用VIRTOOLS软件脚本语言开发的适用于该驾驶模拟器的DLL文件;网络通信协议采取TCP/IP协议。
、路网的建立与路网初始信息输入
通过现场测量和拍摄视频,进而获得模拟路段的车道数、车道宽度、路段长度、坡度、匝道位置、交通标志标线等道路基本参数,应用VISSIM软件的相关功能建立符合实际的路网。利用3dsMax软件和VIRTOOLS的Dev模块建立与VISSIM中路网模型完全匹配的路网,务必保证VISSIM和VIRTOOLS中建立的路网完全一致。
建立好路网后,在VISSIM软件中输入模拟路段的交通流信息,包括实际交通量、车流组成及车型比例、期望速度、期望加速度等。
、通信模块初始化与连接建立
(1)开启各个驾驶模拟器,驾驶模拟器的DLL文件中的Client端向主控制台中的Sever端发送连接请求。
(2)VISSIM仿真开始,VISSIM调用其DLL文件,DLL文件初始化并开启主控制台中的Sever端,Sever端开启后接收到来自各个驾驶模拟器DLL文件中的Client的连接请求,分别与其建立TCP/IP连接。
、仿真实验进行过程与数据交换过程
3.1驾驶模拟器端
(1)在每个驾驶模拟器端,驾驶员操纵驾驶模拟器中的实验车。驾驶模拟器每隔0.1秒调用VIRTOOLS的DLL文件,将实验车的信息传入该DLL文件中,由DLL文件通过已建立的TCP/IP连接发送给VISSIM的DLL文件内的Sever端。
(2)当VIRTOOLS的DLL文件接收到来自VISSIM的DLL文件内的Sever端的信息(由VISSIM单步运算得到的实验车视线范围内周边车辆的坐标),便将信息发送给驾驶模拟器。
(3)驾驶模拟器得到实验车周边车辆信息后,对这些车辆ID与驾驶模拟器屏幕上显示的车辆ID进行对比:如果该ID的车辆不存在于当前屏幕上,则创建一辆车并显示于对应坐标位置;如果该ID车辆存在于当前屏幕上,则根据之前屏幕显示坐标与本次收到的坐标做出车辆的移动动画;如果当前屏幕上的某辆车ID不存在于收到的车辆ID中,则在屏幕上消除该车辆模型。
.2微观交通仿真器端
(1)在微观交通仿真器端,VISSIM每次单步实验的第一步为数据输入。VISSIM将车辆ID传入其DLL文件中,然后根据DLL文件的返回信息确定该车辆在本次单步实验中采用的计算数据。DLL文件根据输入车辆ID与DLL文件内部数据区存储的车辆ID进行对比:如果该车辆为实验车,则将DLL数据区内存储的该车辆状态信息返回VISSIM;如果该车辆不是实验车,则返回0。VISSIM根据DLL文件的返回信息,将实验车在本次计算中的数据改为驾驶模拟器传来的数据;而非实验车的数据则仍采用VISSIM自身的模拟数据进行计算;
(2)VISSIM进行单步实验的第二步为仿真计算。VISSIM根据软件内部规则以及当前路网内的车辆信息,对路网的下一个状态进行计算,该计算数据包括路网内每一辆车的具体信息,包括速度、加速度、位置坐标等;
(3)VISSIM进行单步实验的第三步为数据输出。VISSIM将车辆ID及该车辆信息传入DLL文件中,DLL文件对传入的车辆ID进行判断:如果该车辆为实验车,则提取该车辆及该车辆视线范围内周边车辆的当前信息,如速度、加速度、位置坐标等,将这些信息通过已建立的TCP/IP连接发送给对应该实验车的VIRTOOLS的DLL文件内的Client端;
至此,VISSIM一次单步实验结束,开始进行下一次单步实验。
一次单步仿真实验进行过程的流程如图2所示。
微观交通仿真器与多驾驶模拟器整合式一体化网络实验平台充分利用了微观交通仿真器与驾驶模拟器的优势,弥补了二者单独应用时的缺陷,实现了在驾驶模拟器上有真实的驾驶员驾驶行为信息,虚拟场景中又有逼真的微观交通流的理想效果。显著提高了交通仿真器与驾驶模拟器的应用范围与实验能力,提高了虚拟实验的可信度和准确度,且突破了传统驾驶模拟器仅能研究个体驾驶行为的约束,使得研究多人或某一群体的驾驶行为对整体交通流状态的影响成为可能。将来可作为道路交通研究、管理和设计部门在实验室可控条件下研究交通问题的重要科学工具。
Claims (7)
1.一种微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于由微观交通仿真器(1)、主控制台(2)、分控制台(3)、驾驶模拟器(4)、第一层C/S结构(5)和第二层C/S结构(6)组成,微观交通仿真器(1)通过第二层C/S结构(6)与主控制台(2)之间进行双向连接,主控制台(2)通过第一层C/S结构(5)与各个分控制台(3)进行双向连接,各个分控制台(3)通过第二层C/S结构(6)与相应的驾驶模拟器(4)进行双向连接;所述第一层C/S结构(5)和第二层C/S结构(6)采用网络通信协议;所述第一层C/S结构(5)和第二层C/S结构(6)通过数据流A和数据流B实现,数据流A为驾驶模拟器向微观交通仿真器输入的驾驶员的驾驶行为参数和实验车状态信息;数据流B为微观交通仿真器向驾驶模拟器输入的当前实验车周围车辆状态信息;数据流A由各个驾驶模拟器负责采集,通过第二层C/S结构传给各自的分控制台,分控制台对数据进行处理后通过第一层C/S结构传给主控制台,主控制台将收到的数据通过第二层C/S结构传给微观交通仿真器;数据流B由微观交通仿真器计算产生,通过第二层C/S结构传给主控制台,主控制台对数据进行处理并将需要发送的数据分别打包,主控制台通过第一层C/S结构将数据分别传给各个分控制台,分控制台将收到的数据通过第二层C/S结构传给相应的驾驶模拟器;
所述主控制台(2)负责与各个分控制台(3)的通信以及与微观交通仿真器(1)的通信;所述分控制台(3)负责与主控制台(2)的通信和与驾驶模拟器(4)的通信;
所述实验平台的工作流程如下:
(1)驾驶员通过驾驶模拟器驾驶实验车;
(2)驾驶模拟器实时检测记录驾驶员的驾驶行为参数和实验车状态信息,每隔一定间隔将上述信息通过网络通信协议发送给相应的分控制台;
(3)分控制台对输入的数据信息进行处理,通过网络通信协议发送给主控制台;
(4)主控制台对收到的信息进行处理,通过网络通信协议发送给微观交通仿真器;
(5)微观交通仿真器对输入的各驾驶员的驾驶行为参数和实验车状态信息进行处理,分析计算除实验车外其他车辆状态;
(6)微观交通仿真器将计算后的所有车辆状态信息发送给主控制台;
(7)主控制台对收到的信息进行处理,分别发送给各个分控制台;
(8)分控制台对收到的信息进行处理,发送给相应的驾驶模拟器;
(9)驾驶模拟器将收到的实验车周围车辆状态信息进行处理并显示在屏幕上,驾驶员可在驾驶模拟器显示屏上看到实验车附近的车辆,供驾驶员做驾驶决策。
2.根据权利要求1所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述主控制台(2)包括一个Server服务器、一个Client客户端、公共数据区、线程管理模块、数据存储处理模块和数据发送处理模块;
Server服务器:主控制台内的Server作为各个分控制台内部各Client端的服务器,既负责从各分控制台收集数据,并通过调用数据存储处理模块将数据存储至公共数据区,又负责将数据发送处理模块处理好的数据按照程序提供的IP地址发送给各分控制台;Server服务器同时为多台Client客户端服务,因此要借助线程管理模块来统筹各个线程的工作状态,避免线程冲突以及公共数据区调用冲突;
Client客户端:主控制台内的Client客户端负责与微观交通仿真器内的Server服务器进行通信,将数据发送处理模块处理过的数据包发送给微观交通仿真器,并从微观交通仿真器接收含有所有车辆状态信息的数据包;Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理模块,并借此使用公共数据区;为避免和控制台内Server服务器使用公共数据区的各个线程发生冲突,Client客户端也被纳入了线程管理模块,接收线程管理模块的指令,按统筹进行公共数据区访问;
公共数据区:公共数据区是脱离线程的“物理结构”;它可以接收各个线程的访问,但并不附属于任何一个线程;公共数据区的这个特点使得它可以存放控制台内所有线程需要或收到的数据,方便各个线程之间的协调与整体数据的处理;
线程管理模块:线程管理模块统筹规划各线程的创建、结束以及公共数据区的访问;线程管理模块的调控是为了避免各线程之间由于对某一系统资源的同时调用发生线程冲突,以及避免各线程对公共数据区同时进行修改发生的数据区调用冲突;
数据存储处理模块:数据存储处理模块包含两部分,分别为控制台内的Server服务器和Client客户端服务;在它们调用数据存储处理模块之前,先要经过线程管理模块的许可才能调用数据存储处理模块;但为保证程序安全性,数据存储程序在访问公共数据区前会再一次向公共数据区确认公共数据区是否被占用,再对公共数据区进行访问,这是一个“双保险”的机制;数据存储处理模块被Server服务器调用时,会将Server或Client收到的数据进行筛选,并按照程序设定的格式处理;数据处理结束后,数据存储处理模块会校验数据是否满足设定的格式要求,最后再存入公共数据区;数据存储处理模块被Client客户端调用时,工作步骤与被Server服务器调用时相同,区别在于数据处理的格式要求不完全相同;
数据发送处理模块:数据发送处理模块也分为两部分,分别为Server服务器和Client客户端服务;同数据存储处理模块一样,数据发送程序在访问公共数据区前会向公共数据区确认其是否被占用;数据发送程序在为Server服务器服务时,会从公共数据区调取之前存储的所有车辆状态信息,并按照IP地址对应的实验车编号对数据进行筛选和分段处理,为每个IP地址筛选出对应的实验车周围车辆状态信息;信息筛选结束后,数据发送处理模块再对每个筛选好的数据进行标准化处理,使其符合系统设定的数据格式;最后再检验数据格式正确后将每个IP地址及对应数据包发送给Server服务器供用其向各个分机发送;数据发送程序为Client客户端服务时,会从公共数据区调取之前存储的各个实验车信息,并将各条信息整合;信息整合完毕后,将信息按照系统设定格式进行格式统一化处理,最后在校验数据格式正确后将数据发送给Client客户端进行发送。
3.根据权利要求1所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述分控制台(3)包括一个Server服务器、一个Client客户端、公共数据区、线程管理模块、数据存储处理模块和数据发送处理模块;
Server服务器:分控制台内的Server作为驾驶模拟器内部Client的服务器,既负责从驾驶模拟器收集数据,并通过调用数据存储处理模块将数据存储至公共数据区,又负责将数据发送处理模块处理好的数据发送给驾驶模拟器;该Server只为一个Client客户端服务,不会涉及线程冲突;但由于调用数据存储处理模块及数据发送处理模块需要访问公共数据区,为避免发生数据区访问冲突,要借助线程管理模块来统筹工作状态,规划其对数据存储或发送处理程序的调用;
Client客户端:分控制台内的Client客户端负责与主控制台内的Server服务器进行通信,将数据发送处理模块处理过的数据包发送给主控制台内的Server服务器,并从主控制台内的Server服务器接收含有本驾驶模拟器实验车周围车辆状态信息的数据包;由于Client客户端是单线程的,不会发生线程冲突,但是Client在收到数据包后需要调用数据存储处理模块,并借此使用公共数据区;为避免和控制台内Server服务器使用公共数据区的各个线程发生冲突,Client客户端也被纳入了线程管理模块,接收线程管理模块的指令,按统筹进行公共数据区访问;
公共数据区:与主控制台内公共数据区作用相同;
线程管理模块、数据存储处理模块以及数据发送处理模块,虽然与主控制台内程序方式及算法不近相同,二者作用相同。
4.根据权利要求2所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述主控制台的工作流程如下:
(1)主控制台中Server端开启,等待Client端建立连接;
(2)主控制台接收到分控制台中Client端的连接请求,建立连接,记录其IP地址,并为该Client端开启监听线程;
(3)主控制台接收到微观交通仿真器中Client端的连接请求,建立连接,并为该Client端开启监听线程;
(4)主控制台接收到来自微观交通仿真器的信息,将该信息进行分段,然后筛选出发送给不同IP地址(即发给不同的分控制台)的信息,通过网络协议依次向各分控制台发送信息;
(5)若主控制台收到某个分控制台的信息,将该信息处理为微观交通仿真器可以识别的格式并通过网络通信协议向微观交通仿真器发送。
5.根据权利要求3所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述分控制台的工作流程如下:
(1)分控制台中Server端开启,等待驾驶模拟器内部的Client端建立连接;
(2)分控制台中Client端开启,向主控制台中的Server端发送连接请求;
(3)分控制台中Server端接收到驾驶模拟器内部的Client端的连接请求,建立连接;
(4)分控制台中Client端的连接请求被主控制台中的Server端收到,建立连接;
(5)若分控制台中的Server端接收到驾驶模拟器的信息,对信息进行标准化处理,使其符合规定的格式,并通过网络通信协议发送给主控制台;
(6)若分控制台中的Client端接收到主控制台的信息,对信息进行标准化处理,使其符合规定的格式,并通过网络通信协议发送给驾驶模拟器。
6.根据权利要求1所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述驾驶模拟器的工作流程如下:
(1)驾驶模拟器内部的Client端向相应的分控制台中的Server端发送连接请求,直到与该Server端建立连接;
(2)驾驶模拟器的时间控件控制驾驶模拟器的Client端每隔一定极短的时间段向相应的分控制台发送一次数据信息,内容为驾驶员的驾驶行为参数和实验车状态信息;
(3)发送完成后,驾驶模拟器等待相应的分控制台传回实验车周围车辆状态信息;
(4)驾驶模拟器对传回车辆的ID进行判断:如果传回车辆的ID不存在于当前车辆ID数组中,则创建一辆车辆模型置于数据中发送的位置;如果当前车辆的ID数组中不存在传回车辆的ID,则销毁该车辆模型并释放对应ID;
(5)驾驶模拟器根据当前车辆的状态与传回的实验车周围车辆状态信息,在驾驶模拟器显示屏上对应每一个车辆ID做出每一辆车的移动动画;
(6)返回步骤(2)。
7.根据权利要求1所述的微观交通仿真器与多驾驶模拟器整合式网络化实验平台,其特征在于所述微观交通仿真器的工作流程如下:
(1)微观交通仿真器内部的Client端向控制台中的Server端发送连接请求,直到与该Server端建立连接,微观交通仿真器对路网进行初始化;
(2)微观交通仿真器等待主控制台的信息,直至接收到驾驶员的驾驶行为参数和实验车状态信息,单步实验开始;
(3)微观交通仿真器首先对进行单步运算的所有车辆的计算参数进行初始化,微观交通仿真器按照车辆ID依次选中路网中车辆,并和接收到的实验车信息中的车辆ID依次进行比对,当微观交通仿真器选定的车辆ID与实验车信息中的某辆车的ID相同时,微观交通仿真器将该车的驾驶行为参数和实验车状态信息按照接收到的数据进行修改;
(4)微观交通仿真器对进行单步运算的所有车辆的计算参数初始化后,按照其自身规则进行运算,计算出下一个时间间隔后的除实验车外其他车辆状态;
(5)微观交通仿真器将计算后的所有车辆状态发送给主控制台;
(6)单步运行结束,返回步骤(2)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310259950.1A CN103345548B (zh) | 2013-06-27 | 2013-06-27 | 微观交通仿真器与多驾驶模拟器整合式网络化实验平台 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310259950.1A CN103345548B (zh) | 2013-06-27 | 2013-06-27 | 微观交通仿真器与多驾驶模拟器整合式网络化实验平台 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103345548A CN103345548A (zh) | 2013-10-09 |
CN103345548B true CN103345548B (zh) | 2016-04-20 |
Family
ID=49280343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310259950.1A Active CN103345548B (zh) | 2013-06-27 | 2013-06-27 | 微观交通仿真器与多驾驶模拟器整合式网络化实验平台 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103345548B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598295A (zh) * | 2015-01-12 | 2015-05-06 | 北京中交兴路车联网科技有限公司 | 一种车辆行驶仿真脚本的生成系统和方法 |
WO2018098744A1 (zh) * | 2016-11-30 | 2018-06-07 | 深圳益强信息科技有限公司 | 一种基于虚拟驾驶的数据处理方法及系统 |
CN108763733A (zh) * | 2018-05-24 | 2018-11-06 | 北京汽车集团有限公司 | 驾驶仿真测试方法、装置和系统 |
CN111624894B (zh) * | 2020-04-28 | 2022-03-01 | 东风汽车集团有限公司 | 一种用于平行驾驶的仿真测试方法及系统 |
CN111551382A (zh) * | 2020-05-12 | 2020-08-18 | 中国科学院心理研究所 | 一种测试驾驶员车距控制能力的系统和使用方法 |
CN113219944B (zh) * | 2021-04-27 | 2022-05-31 | 同济大学 | 一种用于混合交通流工况的智能车辆控制策略测试平台 |
US20240104008A1 (en) * | 2021-05-13 | 2024-03-28 | Jilin University | A multi-drivers-in-the-loop driving testing platform |
CN115081186B (zh) * | 2022-05-17 | 2023-09-26 | 同济大学 | 一种支持数据驱动的驾驶行为仿真系统及其仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6857115B1 (en) * | 2002-08-08 | 2005-02-15 | Xilinx, Inc. | Placement of objects with partial shape restriction |
CN101533571A (zh) * | 2009-04-24 | 2009-09-16 | 昆明理工大学 | 一种人-车-路环境驾驶模拟实验系统 |
CN103164579A (zh) * | 2013-03-14 | 2013-06-19 | 同济大学 | 一种实现微观交通仿真器与驾驶模拟器交互式一体化实验平台的方法 |
-
2013
- 2013-06-27 CN CN201310259950.1A patent/CN103345548B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6857115B1 (en) * | 2002-08-08 | 2005-02-15 | Xilinx, Inc. | Placement of objects with partial shape restriction |
CN101533571A (zh) * | 2009-04-24 | 2009-09-16 | 昆明理工大学 | 一种人-车-路环境驾驶模拟实验系统 |
CN103164579A (zh) * | 2013-03-14 | 2013-06-19 | 同济大学 | 一种实现微观交通仿真器与驾驶模拟器交互式一体化实验平台的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103345548A (zh) | 2013-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103345548B (zh) | 微观交通仿真器与多驾驶模拟器整合式网络化实验平台 | |
CN108154704B (zh) | 基于区块链的智慧停车系统及方法 | |
Klügl et al. | Agent-based modeling and simulation | |
Wang et al. | Parallel internet of vehicles: ACP-based system architecture and behavioral modeling | |
CN103164579B (zh) | 一种实现微观交通仿真器与驾驶模拟器交互式一体化实验平台的方法 | |
CN105610850A (zh) | 基于车联网的车辆服务与管理系统 | |
Sun et al. | Development and application of an integrated traffic simulation and multi-driving simulators | |
CN109712392A (zh) | 基于区块链的停车信息处理方法、装置、设备和存储介质 | |
CN110349437B (zh) | 一种基于联盟链的停车资源共享管理系统及方法 | |
CN106128147A (zh) | 一种基于云平台的一站式无人管理停车场系统 | |
CN1912837A (zh) | 支持大规模微观交通仿真的可扩展分布式系统 | |
CN107943452A (zh) | 一种多用户协同开发的体系结构设计平台 | |
CN110442041A (zh) | 一种基于异构云计算框架的仿真平台构建方法及仿真系统 | |
CN112904827B (zh) | 一种面向多icu的无人驾驶虚拟仿真测试系统 | |
CN102508955A (zh) | 基于工作流技术的分布式交通仿真平台及仿真方法 | |
Bjørner | From domain to requirements | |
CN115344503B (zh) | 面向自动驾驶规划控制测试的交通流仿真系统与仿真方法 | |
CN106327858A (zh) | 一种基于一机三屏技术的交通管理指挥平台系统 | |
WO2015066542A1 (en) | Video role-play learning system and process | |
CN110189517A (zh) | 一种面向车联网隐私保护研究的仿真实验平台 | |
Zhang | Applying system of systems engineering approach to build complex cyber physical systems | |
CN107766033A (zh) | 一种基于问题框架的敏捷需求拆分方法 | |
Mingrone et al. | Smart urban electric transport system: An innovative real model | |
CN109799729A (zh) | 基于vissim和matlab的车联网仿真平台构建方法 | |
CN116305855A (zh) | 自动驾驶场景构建方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |