这是我还在读书时翻译过的一篇文章,最近因为一些原因又从头翻了翻。第一感觉是这篇文章与其说是一篇学术论文,倒更不如说是一篇思路清晰的设计 告。第二感觉是,这篇文章能为做交通流仿真的人提供很多基础的概念,也能帮助大家绕一些弯路。因此,值得一读。
另外我也发现,同样的内容,不同的时间点来看,收获是完全不同的。比如说现在的我,看到的就是类的功能接口设计,这是以前没有的感受。
文章翻自《Advanced Traffic Simulation Framework for Networked Driving Simulators》,其对我们构建交通流仿真模型具有很强的指导作用。
研究工作
学术界相关工作
1. Espie and Auberlet(2007)中提出了交通仿真的符 视觉模型。该模型允许每辆交通车辆观察其周围环境的各种要素,如其他交通车辆、路标、车道标志等。因此,每个交通对象都可以根据交通状况以及感知到的道路环境来调整自己的行为。
2. Bonakdarian等人(1998)提出了一种使用分层并发状态机(HCSM)的方法。该模型允许每辆交通车辆检查情况,从而在不同的决策之间自动切换,如车道跟踪或换道、目标跟踪、交通避碰、静态目标避碰等。
3. (Wright et al.(2002))提出了一种利用模糊逻辑方法进行交通仿真的模型。通过引入一定程度的不确定性,模拟了典型人类驾驶员的行为。
4. 为了减少计算量,在(Olstam(2003))中引入了在指定候选区域内仿真交通车辆的概念。
5. Olstam (2005a)对过往交通模拟方法进行了一个比较全面的综述。
产业界相关工作
6. 来自DLR的SUMO是一个开放和灵活的套件,用于模拟包括道路车辆和行人在内的交通系统(Behrisch et al.(2011))。
7. 来自dSPACE的ASM是一个由Simulink模型组成的框架(Amelunxen(2015))。该模型模拟了一辆试验车和多达15辆独立交通车辆,可用于交互式驾驶仿真。
8. IPG Automotive的IPGTraffic为驾驶模拟器提供模型来表示交通车辆之间的交互作用(Miquet et al.(2010))。可以创建无限数量的交通对象,并可以为每个交通对象分别分配操作。
9. 一些商业解决方案在驾驶模拟器车辆周围定义了一个模拟区域,在那里生成交通对象。VIRES Simulation Technology的v-TRAFFIC是一个交通场景仿真引擎,可以与驾驶模拟器一起模拟周围的交通对象(Neumann-Cosel et al., 2009)。基本上,可以创建的交通对象的数量没有限制。此外,v-TRAFFIC利用模拟区域/窗口概念来减少计算量。
10. 大多数商业解决方案的一个问题是,它们模拟整个地理区域。对于较宽的区域或较长的道路,许多交通车辆都必须进行仿真,尤其是在进行长时间驾驶模拟器实验时。这对算力的要求太高了。
交通流仿真框架总览
与传统交通流仿真的区别在于,该框架中车辆对象中其中一辆或多辆是由人控制的,也就是说,交通车辆不仅要对彼此做出反应,还的对人工车辆做出反应。
动态窗口生成模块
为了减少运算成本,该框架不是模拟整个地理区域,而是开发了模型和方法来仅在模拟车辆的最近邻近区域生成交通车(Olstam(2005b))。在本工作中,我们考虑了一个多驱动模拟器的环境,交通车辆只会在选定的模拟车辆的邻近范围内进行模拟,即目标模拟器车辆。该邻域以目标模拟器车辆为中心,其运动速度相同。它被称为仿真窗口。为了避免交通车辆的突然出现和消失,仿真窗口的设计要求至少与目标仿真车辆前后的视线距离一样长。
一般来说,道路设计中的视线距离被定义为驾驶员可以看到的道路长度(Hang et al.(2008))。与现实生活中的情况一样,三维环境中的道路几何形状是影响仿真驾驶员视程可用性的因素之一。为了简单起见,我们选择了一条没有十字路口和坡道的道路;这是一条在每个方向上都有两条车道的直线。动态窗口生成功能接收所有参与模拟器车辆的位置,一个指示目标模拟器车辆的信 ,以及设定的视距。后两个信 从流量初始化函数接收。该功能不仅为目标模拟器车辆定义了邻域,而且还为每个参与模拟器车辆定义了邻域。在这种情况下,邻近区域称为移动窗口,下图为动态窗口生成函数的主要输入/输出信 。
交通车辆只在仿真车辆所在的仿真窗口生成。考虑到不能使司机经历不切实际的交通行为。将目标仿真车与其他参与仿真车之间的距离与设定的视距进行连续比较。当仿真车的移动窗口开始与目标仿真车的仿真窗口重叠时,将目标仿真车的仿真窗口调整为将两辆仿真车包围起来,从而将两辆仿真车在所谓的整体仿真窗口内进行仿真。
该函数接收目标仿真车的信息,所有仿真车的运动窗口,交通车辆的位置,以及交通车辆的最大长度。该功能的主要任务是连续监测哪些交通车辆位于哪个移动窗口。针对不同的情况,将使用不同flag。
例如,考虑下图所示的情况,其中目标模拟器车辆正在加速,整个仿真窗口正在重置。如果交通车辆偶然停留在非目标模拟器车辆的移动窗口内,这些车辆不得丢弃。
根据所需的速度和密度水平,该功能调整交通车辆的偏移速度和/或目标模拟器车辆前后每视距的交通车辆数量。此信息被转发到下面小节讨论的车辆生成/丢弃模块。
交通生成、丢弃模块
车辆生成/丢弃模块的目标是让交通车辆只存在于仿真窗口内。该模块接收关于仿真窗口、所需的交通特性、当前交通车辆位置和最终关键情况的信息。下图为车辆产生/丢弃模块的输入/输出信 。
驾驶员模块
驾驶员模型根据感知到的交通状况来控制交通车辆的行为。交通仿真有几种行为模型,如:跟车、速度适应、变道、超车、从旁经过(passing)和迎面避让(Yu et al.(2013))。在这项工作中,驾驶员模型是通过汽车跟车实现的.
如果驾驶员模型没有检测到前面的车辆,则交通车辆模型接收设置的速度,并激活PIcontroller来保持该速度。
如果前面的车辆被驾驶员模型检测到,则交通车辆模型接收被检测车辆的当前位置,并激活附加的pid控制器以保持安全距离。在这两种情况下,交通车辆模型都类似于一个典型的延迟速度行为,该行为被集成在一起来推断交通车辆的位置。通过适当的模型和控制器参数化,实现了流量控制。
文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览34798 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!