一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

面向自动驾驶规划控制测试的交通流仿真系统与仿真方法与流程

2022-11-16 07:13:17 来源:中国专利 TAG:


1.本发明属于自动驾驶系统测试技术领域,具体涉及面向自动驾驶规划控制测试的交通流仿真系统与仿真方法。


背景技术:

2.自动驾驶汽车是当前国内外汽车行业的重点研发方向,应用前需要完成大量的道路测试以验证其智能性、安全性、稳定性和可靠性。目前对于自动驾驶汽车的测试方式主要为测试场测试和道路测试,这两种测试方法存在成本高、风险大、周期长、场景覆盖率低等显著缺点,制约自动驾驶各系统算法快速迭代开发,使用计算机仿真测试技术能够有效解决以上问题。自动驾驶车辆的技术核心之一为其搭载的自动驾驶系统,当前自动驾驶系统的核心算法模块可划分为感知、定位、规划、控制子模块,分别解决自动驾驶车辆的交通环境信息感知、车辆车道级定位、车辆运动轨迹规划及跟踪目标轨迹车辆控制。
3.公开号为cn114117739a、发明名称为“基于真实数据的交通流仿真场景构建方法和系统”的发明通过获取交通流真实数据,在碰撞约束下,根据所述交通流真实数据中真实场景非基准车辆的原始运动状态,和仿真信息中仿真场景基准车辆的仿真运动状态,计算得到所述真实场景非基准车辆的修正运动状态,得到交通流仿真场景构建结果,避免了传统仿真场景构建中从零开始的复杂运算过程,能够更高效地为自动驾驶或辅助驾驶的开发测试提供环境基础。但使用真实数据的交通流注入方法,需要对各类车流组成下的车辆运动进行图像和点云采集,之后再处理成车辆轨迹,采集成本较高,范围有限,数据处理难度大,直接进行回放车辆轨迹,无法体现其它背景车辆与自动驾驶车辆交互特征,从而导致仿真过程存在错误的碰撞、穿插结果。
4.公开号为cn114186385a、发明名称为“基于时序网络的交通流生成方法和系统”的发明根据至少两帧的交通流历史帧提取交互车辆组的历史运动状态;将交互车辆组的历史运动状态和道路输入时序网络,得到生成帧的交互车辆组运动状态;时序网络是根据样本和标签训练得到的,通过得出包括车辆交互的仿真交通流,实现复杂路况交通流的针对性生成;同时,通过真实数据训练时序网络,能够使得生成的交通流更为贴近人类驾驶员习惯,最终得到的仿真交通流,能够为后续自动驾驶或辅助驾驶的开发、测试和验证提供更为有力的基础。但是存在如下问题:训练时序网络需要大量的路采数据才可能产生比较好的网络模型。网络模型具有不可解释性,仿真产生不正常的背景车辆运动时无法进行问题定位与修改。时序网络的参数多,计算量大,对于大规模交通仿真时其仿真速度受限于当前的计算机的计算能力,仿真较慢。公开号为cn114297827a,发明名称为“一种软件联合自动驾驶系统仿真方法”的发明根据不同仿真需求,利用vissim生成对应的交通流汽车信息;将交通流汽车信息导入到感知与环境模块的非自动驾驶车辆中;simulink根据自动驾驶汽车的功能需求构建规划与控制模块功能,在虚拟场景中实现自动驾驶;汽车动力学模块根据规划与控制模块产生的汽车行为决策实现车辆的位置姿态改变;汽车动力学模块完成自动驾驶车辆位置姿态改变
后将信息逐阶回传给感知与环境模块后,再通过外部接口传递给vissim;可视化模块实时显示当前道路及车辆信息,实现接近真实驾驶场景的虚拟仿真,提高了自动驾驶车辆功能测试的准确性和有效性。但是使用该方案存在如下弊端:用simulink对自动驾驶的算法块化的建模通常处于算法的概念设计阶段,但是此模型尚不能直接在自动驾驶的硬件平台上运行,因此不能满足自动驾驶系统开发完成后的集成测试阶段测试要求。vissim为商业软件,不开源,售价昂贵,无法进行一些定制性的接口开发。


技术实现要素:

5.本发明要解决的问题是自动驾驶车辆规划控制仿真测试过程较慢及测试不便的问题,提出面向自动驾驶规划控制测试的交通流仿真系统与仿真方法。
6.为实现上述目的,本发明通过以下技术方案实现:一种面向自动驾驶规划控制测试的交通流仿真系统,包括sumo仿真模块、传感器仿真模块、车辆动力学模块、仿真场景引擎,所述sumo仿真模块、传感器仿真模块、车辆动力学模块分别连接仿真场景引擎,所述仿真场景引擎连接自动驾驶系统;所述仿真场景引擎包括仿真场景解析子模块、仿真场景生成子模块、仿真数据管理子模块、仿真场景同步子模块、自动驾驶系统网络通信模块;所述仿真场景解析子模块用于读取用户配置的交通流仿真场景参数文件,通过程序解析加载到仿真场景引擎内存中,供仿真过程读取使用;所述仿真场景生成子模块用于对sumo仿真模块、车辆动力学模块、传感器仿真模块进行初始化,生成仿真系统中微观交通车辆、自动驾驶车辆、自动驾驶传感器模型;所述仿真数据管理子模块用于对仿真过程中sumo仿真模块、车辆动力学模块、传感器仿真模块和自动驾驶系统的每一仿真时步的状态数据进行采集,然后转换为目标协议方式数据,并存储在仿真场景引擎内存中;所述仿真场景同步子模块用于调用sumo仿真模块、车辆动力学模块、传感器仿真模块时步计算接口驱动时步计算,更新仿真模型计算结果,进行仿真过程;所述自动驾驶系统网络通信模块用于连接自动驾驶系统,进行网络通信、数据交互。
7.进一步的,所述仿真场景生成子模块获取所述仿真场景解析子模块的仿真场景交通流信息,然后转化生成cfg.xml文件,使用traci模块的start接口启动sumo仿真模块的服务端主程序,生成初始时刻的微观交通车辆和自动驾驶车辆。
8.进一步的,所述自动驾驶系统包括感知算法模块、定位算法模块、规划算法模块、控制算法模块,所述感知算法模块、定位算法模块、规划算法模块、控制算法模块通过消息中间件进行数据交互。
9.一种面向自动驾驶规划控制测试的交通流仿真方法,依托于所述的一种面向自动驾驶规划控制测试的交通流仿真系统实现,包括如下步骤:s1、配置自动驾驶系统模型参数、交通流仿真场景参数,自动驾驶系统模型参数文件、交通流仿真场景参数文件使用yaml文件或者xml文件编写;s2、仿真场景解析子模块解析自动驾驶系统模型参数、交通流仿真场景参数;s3、sumo仿真模块、传感器仿真模块、车辆动力学模块、自动驾驶系统进行初始化
生成;s4、所述的一种面向自动驾驶规划控制测试的交通流仿真系统对自动驾驶系统进行交通流实时仿真、数据传输、数据保存。
10.进一步的,步骤s1的具体实现方法包括如下步骤:s1.1、配置自动驾驶系统模型参数:自动驾驶系统模型参数包括自动驾驶车辆型号、类型、初始位置、目标位置、动力学模型参数、传感器模型参数;所述动力学模型参数包括自动驾驶车辆的动力传动系统、悬架系统、车身系统、底盘系统、悬架系统、轮胎系统以及控制系统的模型参数;所述传感器模型参数,根据用户配置的自动驾驶车辆搭载的传感器类型、传感器相对于车辆的安装相对位置、探测范围、探测角度;s1.2、配置交通流仿真场景参数文件:包括仿真地图、交通流仿真参数;所述交通流仿真参数包括单车属性参数、车流属性参数、或者二者的组合,所述单车属性参数包括车辆类型、车辆路径、发车时间、发车位置、发车速度、跟驰模型、换道模型,所述车流属性参数包括车流的车辆路径、发车时段与发车间隔、发车位置、发车速度、车辆类型比例。
11.进一步的,步骤s1.2中的交通流仿真参数的取得方法包括如下步骤:s1.2.1、车辆类型从车辆类型集中选取,所述车辆类型集={小轿车、suv、出租车、公交车、客车、小货车、牵引车、两轮电动车、自行车};s1.2.2、车辆路径从车辆路径集中选取或者通过dijkstra斯特拉算法选择距离最短的行驶路径;s1.2.2.1、车辆路径集由路网的路段集和交叉口集组合产生,一条车辆的行驶路径按照道路行驶方向前后相连或者跨交叉口节点相连,所述路径集 = {路径1、路径2、路径3、路径4、

、路径n};s1.2.2.2、最短路径的生成和查找方法如下:使用经典的dijkstra斯特拉算法,计算出路网中任意两个节点之间的行驶路径及路径长度;将计算结果以起始节点,目标结点为索引,最短行驶路径为值存储在数据库中,使用时,通过选择起始节点和目标节点查找数据库获取目标路径;s1.2.3、发车时段与发车间隔:对于单个车辆支持配置发车时刻t
发车
,对于车流的发车时间按照设置发车时间间隔或者已知发车数目按照均匀分布进行设置:已知用户设置的发车起始时间t1和终止发车结束时间t2,以及发车间隔interval,车流中第i辆车的发车时间为:t
发车i
= t1 (i-1) * interval
ꢀꢀ
0《 i 《 (t2-t1)/( interval 1)已知用户设置的发车起始时间t1和终止发车结束时间t2,以及发车数量n,根据均分分布设置,车流中第i辆车的发车时间为:t
发车i
= t1 (t2-t1)/(n-1)
ꢀꢀ
0《 i ≤ns1.2.4、发车位置为车辆在起始路段距离道路起点的距离,对于单个车辆和车流的发车位置支持配置发车位置s
发车
,假设起始路段长度为l, 则:0 ≤ s
发车
≤ls1.2.5、发车速度为车辆在起始路段发车时的初始车速,对于单个车辆和车流的
发车位置支持配置发车车速v
发车
,假设起始路段最高车速为v
max
, 则:0≤v
发车
≤v
max
s1.2.6、车辆类型比例:针对车流或者仿真全体车辆设置车辆类型比例,计算各类型车辆数,然后依次根据车辆数间隔设置车辆的类型,假设仿真车辆总数为n,车辆类型比例为pj, pj满足如下约束条件:0《=pj《=1∑pj=1j ∈{小轿车、suv、出租车、公交车、客车、小货车、牵引车、两轮电动车、自行车}则j类型车辆个数mj为:mj= n*pj; s1.2.7、跟驰模型:以sumo仿真模块支持的跟驰模型建立跟驰模型集:跟驰模型集 = {krauss、idm、w99、acc、cacc};s1.2.8、换道模型:以sumo仿真模块默认的lc2013换道模型作为换道模型。
12.进一步的,步骤s2的具体实现方法包括如下步骤:仿真场景引擎的仿真场景解析子模块读取步骤s1配置生成的自动驾驶系统模型参数与交通流仿真场景参数文件,并将相关参数变量名存储在模块内存中。
13.进一步的,步骤s3的具体实现方法包括如下步骤:s3.1、sumo仿真模块初始化:s3.1.1、仿真场景生成子模块通过获取仿真场景解析子模块存储的交通流仿真参数和自动驾驶类型和位置参数,转化生成sumo仿真模块识别的路网文件.net.xml、车辆路径文件.route.xml和配置文件.cfg.xml文件;s3.1.2、仿真场景生成子模块通过调用sumo仿真模块的traci.start接口对sumo仿真模块程序初始化,sumo仿真模块通过读取.route.xml文件对自动驾驶车辆和交通流背景车辆进行初始生成;s3.1.3、交通流背景车辆的运动状态将使用sumo仿真模块的跟驰模型和换道模型进行计算微观交通流车辆的速度、加速度、车辆的位置和朝向;s3.1.4、自动驾驶车辆的速度、加速度、车辆的位置和朝向使用自动驾驶车辆的车辆动力学模型进行计算;s3.2、传感器仿真模块初始化:根据步骤s2解析得到的传感器模型参数,完成传感器仿真模块的初始化;s3.3、车辆动力学模块初始化:根据步骤s2解析得到的动力学模型参数,完成车辆动力学模块的初始化;s3.4、自动驾驶系统初始化:自动驾驶系统进行感知算法模块、定位算法模块、规化算法模块、控制算法模块复位初始化,自动驾驶系统进入待测阶段。
14.进一步的,步骤s4的具体实现方法包括如下步骤:s4.1、sumo仿真模块进行微观车辆运动状态计算和自动驾驶车辆位置更新,具体实现方法包括如下步骤:s4.1.1、仿真场景引擎的仿真场景同步子模块使用sumo仿真模块的traci时步仿真接口控制sumo仿真模块中的微观车辆计算运动状态;
s4.1.2、仿真数据管理子模块通过sumo仿真模块的traci数据获取接口获取sumo仿真模块中该时步下所有交通流车辆的位置、车速、加速度、姿态数据并储存在内存中;s4.1.3、仿真场景同步子模块通过获取仿真数据管理子模块中存储的车辆动力学模型计算得到的自动驾驶车俩位置、车速、加速度、姿态信息,对sumo仿真模块中对应的自动驾驶车辆的位置、车速、加速度、姿态信息通过traci控制接口对自动驾驶车辆的状态同步更新;s4.2、传感器仿真模块更新传感器位置并计算目标级传感器仿真结果,具体实现方法包括如下步骤:s4.2.1、仿真场景同步子模块将仿真数据管理子模块存储的自动驾驶车辆位置信息、交通流车辆的位置、几何尺寸信息传入到传感器仿真模块中;s4.2.2、传感器仿真模块通过步骤s3初始化生成的自动驾驶车辆位置信息、结合车辆传感器相对车辆的安装位置得到传感器在仿真坐标系下的绝对位置;s4.2.3、根据步骤s4.2.1获得的交通流车辆的位置、几何尺寸信息,判断交通流车辆的位置是否在传感器探测范围内,筛选出在传感器探测范围内的车辆;s4.2.4、输出步骤s4.2.3判断的在传感器探测范围内车辆的带高斯噪声的目标级传感器探测结果,并存储到仿真数据管理子模块中;s4.3、自动驾驶系统接收目标级传感器探测结果、自车运动状态信息和定位信息计算车辆的规划路径和控制信号;仿真场景同步子模块获取仿真数据管理子模块中存储的目标级传感器探测结果和车辆动力学模块计算的自动驾驶车辆数据,通过调用自动驾驶系统网络通信模块使用网络通信方式进行传输给自动驾驶系统,自动驾驶系统计算后的结果通过自动驾驶系统的消息中间件的publish接口对外发布,并由仿真场景引擎的自动驾驶系统网络通信模块完成数据接收,并将接收到的数据存储在仿真数据管理子模块的车辆控制消息队列中,仿真场景引擎的自动驾驶系统网络通信模块为消息中间件;s4.4、车辆动力学模块接收车辆控制信号计算自动驾驶车辆运动状态:仿真场景同步子模块从仿真数据管理子模块中的车辆控制消息队列提取车辆油门、制动和转向数据,作为车辆动力学模块的输入,并使用时步计算接口调用车辆动力学模块计算得到当前时步下包括车辆位置、车速、加速度、位姿及各子系统计算结果,并将计算结果同步存储至仿真数据管理子模块中;s4.5、根据判断条件判断仿真是否结束,判断结果为是则执行步骤s4.6,判断结果为否则执行步骤s4.1-s4.4,判断条件为:s4.5.1、到达仿真时间;s4.5.2、自动驾驶车辆发生碰撞;s4.5.3、仿真场景引擎与自动驾驶系统之间网络通信异常;s4.6、记录并保存更模块计算结果:将仿真数据管理子模块中存储的sumo仿真模块、传感器仿真模块、车辆动力学的模块的时步计算仿真结果根据xml或者yaml或者csv的格式以文件的形式进行存储,用于仿真结果回放和自动驾驶系统仿真结果评价。
15.进一步的,步骤s4.3中的所述自动驾驶系统网络通信模块为udp网络通信子模块时,则在自动驾驶系统中设置udp网络通信模块,用于连接自动驾驶系统的消息中间件和仿真场景引擎的自动驾驶系统网络通信模块。
16.本发明的有益效果:本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,提出了一种基于sumo的微观交通流注入的方法,能够帮助生成不同特征需求的交通场景背景车流,对自动驾驶的规划控制算法进行全方位测试。
17.本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,基于开源的sumo微观交通流软件生成背景车流,通过数据接口调用和网络通信方式结合实现sumo、传感器仿真模块、自动驾驶系统和车辆动力学模块的信息交互,从而对自动驾驶的规划控制算法进行仿真测试。
18.本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,能够满足自动驾驶系统对于复杂场景和大规模背景车流进行规划控制算法测试的仿真需求,sumo提供了供使用者根据需求泛化生成交通流的能力。本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,使用目标级的传感器模拟方式,无需使用物理引擎对自动驾驶的车辆的感知环境进行三维渲染,大大减少计算成本,提高仿真速度。本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,使用接口调用与网络通信组合的数据交互方式,自动驾驶系统以容器的形式独立运行,满足自动驾驶系统开发完成后的集成测试阶段的测试要求。本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法,sumo为开源软件,节省研发成本,也可进行二次开发私人定制功能。
附图说明
19.图1为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真系统的结构示意图;图2为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真系统的自动驾驶系统的结构示意图;图3为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法的流程图;图4为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法的步骤s4的流程图;图5为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法的upd通信结构示意图;图6为本发明所述的一种面向自动驾驶规划控制测试的交通流仿真方法的消息中间件通信结构示意图。
具体实施方式
20.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅用以解释本发明,并不用于限定本发明,即所描述的具体实施方式仅仅是本发明一部分实施方式,而不是全部的具体实施方式。通常在此处附图中描述和展示的本发明具体实施方式的组件可以
以各种不同的配置来布置和设计,本发明还可以具有其他实施方式。
21.因此,以下对在附图中提供的本发明的具体实施方式的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定具体实施方式。基于本发明的具体实施方式,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他具体实施方式,都属于本发明保护的范围。
22.为能进一步了解本发明的发明内容、特点及功效,兹例举以下具体实施方式,并配合附图1-附图6详细说明如下:具体实施方式一:一种面向自动驾驶规划控制测试的交通流仿真系统,包括sumo仿真模块1、传感器仿真模块2、车辆动力学模块3、仿真场景引擎4,所述sumo仿真模块1、传感器仿真模块2、车辆动力学模块3分别连接仿真场景引擎4,所述仿真场景引擎4连接自动驾驶系统5;所述sumo仿真模块1用于对道路车辆个体级微观运动进行模拟;进一步的,sumo为开源的微观交通流仿真软件,支持对道路车辆个体级微观运动进行模拟。使用时,通过配置仿真路网文件、信号控制配时文件、车流路径文件,其中车辆文件中包含车辆类型、几何尺寸、加减速性能参数、跟驰换道模型参数等信息,支持使用gui接口对仿真过程进行控制和对车辆的运动状态进行展示。同时sumo还支持使用外部程序使用traci接口对sumo的仿真过程进行控制。traci是sumo开发的对外的python程序api接口模块,包含了仿真过程、车辆、信号灯、道路、车道等各交通元素的运动控制和数据获取接口。traci模块使用c-s框架,包含服务端和客户端,其中sumo的主控程序运动在server端,server端和client端使用了tcp网络通信,而非共享内存的方式;所述传感器仿真模块2用于对自动驾驶系统中的激光雷达、毫米波雷达和摄像头传感器进行目标级模拟;进一步的,传感器仿真模块主要实现对自动驾驶系统中的激光雷达、毫米波雷达和摄像头传感器进行目标级模拟,即提供感知对象的类型、位置、几何尺寸、运动状态等目标级模拟数据,为自动驾驶的规划、控制算法模块提供环境信息。
23.所述车辆动力学模块3,用于计算车辆在不同油门、制动和转向输入下的运动状态;进一步的,车辆动力学模块,用于计算车辆在不同油门、制动和转向输入下的运动状态。由于车辆动力学模型对车辆的动力传动系统、悬架系统、车身系统、底盘系统、悬架系统和轮胎系统以及控制系统进行了物理级动力学和运动学建模,因此具备很高的计算精度。车辆动力学模块可以选取商用度较高的carsim、carmaker,或者根据车辆动力学理论使用c 、c或者python语言建立车辆动力学数学模型。
24.所述仿真场景引擎4包括仿真场景解析子模块4-1、仿真场景生成子模块4-2、仿真数据管理子模块4-3、仿真场景同步子模块4-4、自动驾驶系统网络通信模块4-5;所述仿真场景解析子模块4-1用于读取用户配置的交通流仿真场景参数文件,通过程序解析加载到仿真场景引擎内存中,供仿真过程读取使用;进一步的,仿真场景文件包含内容为:仿真地图名称,仿真步长,微观车流发车时间、位置、路径、车辆类型分布微观交通仿真信息,传感器类型、安装位置、探测范围、探测角度自动驾驶系统传感器模型配置信息,自动驾驶车辆型号、发车位置、目标位置、动力传动
系统参数、转向系统参数、悬架系统参数和轮胎系统参数等自动驾驶车辆动力学模型可配置参数;所述仿真场景生成子模块4-2 用于对sumo仿真模块1、车辆动力学模块3、传感器仿真模块2进行初始化,生成仿真系统中微观交通车辆、自动驾驶车辆、自动驾驶传感器模型;所述仿真数据管理子模块4-3用于对仿真过程中sumo仿真模块1、车辆动力学模块3、传感器仿真模块2和自动驾驶系统5的每一仿真时步的状态数据进行采集,然后转换为目标协议方式数据,并存储在仿真场景引擎内存中;用于同步各仿真模块时进行数据调用及仿真完成后将仿真数据以文件的形式导出,仿真场景数据可视化回放与仿真过程算法评价;所述仿真场景同步子模块4-4用于调用sumo仿真模块1、车辆动力学模块3、传感器仿真模块2时步计算接口驱动时步计算,更新仿真模型计算结果,进行仿真过程;所述自动驾驶系统网络通信模块4-5用于连接自动驾驶系统,进行网络通信、数据交互。
25.进一步的,自动驾驶网络通信模块负责与自动驾驶系统进行网络通信交互数据。因被测自动驾驶系统是一个完整独立的算法系统,和仿真场景引擎不工作在同一计算机系统中,因此只能通过网络进行数据传递;进一步的,所述仿真场景生成子模块4-2获取所述仿真场景解析子模块4-1的仿真场景交通流信息,然后转化生成cfg.xml文件,使用traci模块的start接口启动sumo仿真模块1的服务端主程序,生成初始时刻的微观交通车辆和自动驾驶车辆。
26.进一步的,所述自动驾驶系统5包括感知算法模块5-1、定位算法模块5-2、规划算法模块5-3、控制算法模块5-4,所述感知算法模块5-1、定位算法模块5-2、规划算法模块5-3、控制算法模块5-4通过消息中间件5-5进行数据交互。
27.具体实施方式二:一种面向自动驾驶规划控制测试的交通流仿真方法,依托于具体实施方式一所述的一种面向自动驾驶规划控制测试的交通流仿真系统实现,包括如下步骤:s1、配置自动驾驶系统模型参数、交通流仿真场景参数,自动驾驶系统模型参数文件、交通流仿真场景参数文件使用yaml文件或者xml文件编写;进一步的,步骤s1的具体实现方法包括如下步骤:s1.1、配置自动驾驶系统模型参数:自动驾驶系统模型参数包括自动驾驶车辆型号、类型、初始位置、目标位置、动力学模型参数、传感器模型参数;所述动力学模型参数包括自动驾驶车辆的动力传动系统、悬架系统、车身系统、底盘系统、悬架系统、轮胎系统以及控制系统的模型参数;所述传感器模型参数,根据用户配置的自动驾驶车辆搭载的传感器类型、传感器相对于车辆的安装相对位置、探测范围、探测角度;s1.2、配置交通流仿真场景参数文件:包括仿真地图、交通流仿真参数;所述交通流仿真参数包括单车属性参数、车流属性参数、或者二者的组合,所述单车属性参数包括车辆类型、车辆路径、发车时间、发车位置、发车速度、跟驰模型、换道模型,所述车流属性参数包括车流的车辆路径、发车时段与发车间隔、发车位置、发车速度、车辆
类型比例;进一步的,步骤s1.2中的交通流仿真参数的取得方法包括如下步骤:s1.2.1、车辆类型从车辆类型集中选取,所述车辆类型集={小轿车、suv、出租车、公交车、客车、小货车、牵引车、两轮电动车、自行车};s1.2.2、车辆路径从车辆路径集中选取或者通过dijkstra斯特拉算法选择距离最短的行驶路径;s1.2.2.1、车辆路径集由路网的路段集和交叉口集组合产生,一条车辆的行驶路径按照道路行驶方向前后相连或者跨交叉口节点相连,所述路径集 = {路径1、路径2、路径3、路径4、

、路径n};s1.2.2.2、最短路径的生成和查找方法如下:使用经典的dijkstra斯特拉算法,计算出路网中任意两个节点之间的行驶路径及路径长度;将计算结果以起始节点,目标结点为索引,最短行驶路径为值存储在数据库中,使用时,通过选择起始节点和目标节点查找数据库获取目标路径;s1.2.3、发车时段与发车间隔:对于单个车辆支持配置发车时刻t
发车
,对于车流的发车时间按照设置发车时间间隔或者已知发车数目按照均匀分布进行设置:已知用户设置的发车起始时间t1和终止发车结束时间t2,以及发车间隔interval,车流中第i辆车的发车时间为:t
发车i
= t1 (i-1) * interval
ꢀꢀ
0《 i 《 (t2-t1)/( interval 1)已知用户设置的发车起始时间t1和终止发车结束时间t2,以及发车数量n,根据均分分布设置,车流中第i辆车的发车时间为:t
发车i
= t1 (t2-t1)/(n-1)
ꢀꢀ
0《 i ≤ns1.2.4、发车位置为车辆在起始路段距离道路起点的距离,对于单个车辆和车流的发车位置支持配置发车位置s
发车
,假设起始路段长度为l, 则:0 ≤ s
发车
≤ls1.2.5、发车速度为车辆在起始路段发车时的初始车速,对于单个车辆和车流的发车位置支持配置发车车速v
发车
,假设起始路段最高车速为v
max
, 则:0≤v
发车
≤v
max s1.2.6、车辆类型比例:针对车流或者仿真全体车辆设置车辆类型比例,计算各类型车辆数,然后依次根据车辆数间隔设置车辆的类型,假设仿真车辆总数为n,车辆类型比例为pj, pj满足如下约束条件:0《=pj《=1∑pj=1j ∈{小轿车、suv、出租车、公交车、客车、小货车、牵引车、两轮电动车、自行车}则j类型车辆个数mj为:mj= n*pj; s1.2.7、跟驰模型:以sumo仿真模块支持的跟驰模型建立跟驰模型集:跟驰模型集 = {krauss、idm、w99、acc、cacc};s1.2.8、换道模型:以sumo仿真模块默认的lc2013换道模型作为换道模型;s2、仿真场景解析子模块解析自动驾驶系统模型参数、交通流仿真场景参数;
进一步的,步骤s2的具体实现方法包括如下步骤:仿真场景引擎的仿真场景解析子模块读取步骤s1配置生成的自动驾驶系统模型参数与交通流仿真场景参数文件,并将相关参数变量名存储在模块内存中;s3、sumo仿真模块、传感器仿真模块、车辆动力学模块、自动驾驶系统进行初始化生成(这个需要结合权1的硬件写,不能随意的加系统名称);进一步的,步骤s3的具体实现方法包括如下步骤:s3.1、sumo仿真模块初始化:s3.1.1、仿真场景生成子模块通过获取仿真场景解析子模块存储的交通流仿真参数和自动驾驶类型和位置参数,转化生成sumo仿真模块识别的路网文件.net.xml、车辆路径文件.route.xml和配置文件.cfg.xml文件;s3.1.2、仿真场景生成子模块通过调用sumo仿真模块的traci.start接口对sumo仿真模块程序初始化,sumo仿真模块通过读取.route.xml文件对自动驾驶车辆和交通流背景车辆进行初始生成;s3.1.3、交通流背景车辆的运动状态将使用sumo仿真模块的跟驰模型和换道模型进行计算微观交通流车辆的速度、加速度、车辆的位置和朝向;s3.1.4、自动驾驶车辆的速度、加速度、车辆的位置和朝向使用自动驾驶车辆的车辆动力学模型进行计算;s3.2、传感器仿真模块初始化:根据步骤s2解析得到的传感器模型参数,完成传感器仿真模块的初始化;s3.3、车辆动力学模块初始化:根据步骤s2解析得到的动力学模型参数,完成车辆动力学模块的初始化;s3.4、自动驾驶系统初始化:自动驾驶系统进行感知算法模块、定位算法模块、规化算法模块、控制算法模块复位初始化,自动驾驶系统进入待测阶段;s4、所述的一种面向自动驾驶规划控制测试的交通流仿真系统对自动驾驶系统进行交通流实时仿真、数据传输、数据保存;进一步的,步骤s4的具体实现方法包括如下步骤:s4.1、sumo仿真模块进行微观车辆运动状态计算和自动驾驶车辆位置更新,具体实现方法包括如下步骤:s4.1.1、仿真场景引擎的仿真场景同步子模块使用sumo仿真模块的traci时步仿真接口控制sumo仿真模块中的微观车辆计算运动状态;s4.1.2、仿真数据管理子模块通过sumo仿真模块的traci数据获取接口获取sumo仿真模块中该时步下所有交通流车辆的位置、车速、加速度、姿态数据并储存在内存中;s4.1.3、仿真场景同步子模块通过获取仿真数据管理子模块中存储的车辆动力学模型计算得到的自动驾驶车俩位置、车速、加速度、姿态信息,对sumo仿真模块中对应的自动驾驶车辆的位置、车速、加速度、姿态信息通过traci控制接口对自动驾驶车辆的状态同步更新;s4.2、传感器仿真模块更新传感器位置并计算目标级传感器仿真结果,具体实现方法包括如下步骤:s4.2.1、仿真场景同步子模块将仿真数据管理子模块存储的自动驾驶车辆位置信
息、交通流车辆的位置、几何尺寸信息传入到传感器仿真模块中;s4.2.2、传感器仿真模块通过步骤s3初始化生成的自动驾驶车辆位置信息、结合车辆传感器相对车辆的安装位置得到传感器在仿真坐标系下的绝对位置;s4.2.3、根据步骤s4.2.1获得的交通流车辆的位置、几何尺寸信息,判断交通流车辆的位置是否在传感器探测范围内,筛选出在传感器探测范围内的车辆;s4.2.4、输出步骤s4.2.3判断的在传感器探测范围内车辆的带高斯噪声的目标级传感器探测结果,并存储到仿真数据管理子模块中;进一步的,目标级传感器探测结果包括:激光雷达输出时间戳、车辆类型、id、车辆位姿、包络盒的长宽高;毫米波雷达传感去模型输出的时间戳,id、车辆位置、速度;照相机传感器输出时间戳、id、车辆的类型、车辆的颜色、2d包围框;s4.3、自动驾驶系统接收目标级传感器探测结果、自车运动状态信息和定位信息计算车辆的规划路径和控制信号;仿真场景同步子模块获取仿真数据管理子模块中存储的目标级传感器探测结果和车辆动力学模块计算的自动驾驶车辆数据,通过调用自动驾驶系统网络通信模块使用网络通信方式进行传输给自动驾驶系统,自动驾驶系统计算后的结果通过自动驾驶系统的消息中间件的publish接口对外发布,并由仿真场景引擎的自动驾驶系统网络通信模块完成数据接收,并将接收到的数据存储在仿真数据管理子模块的车辆控制消息队列中,仿真场景引擎的自动驾驶系统网络通信模块为消息中间件;进一步的,自动驾驶系统感知模块可订阅获取激光雷达、毫米波雷达、摄像机传感器数据topic通过自动驾驶系统研发多传感器融合算法进行实现车辆的同步跟踪和信息融合,求解出满足规划所算法要求的融合后障碍物目标融合信息,包括数据的时间戳、目标障碍物类型、包络盒全局坐标系位置和长宽高、朝向、速度、加速度信息等。规划模块还会收到订阅的自车定位数据topic,包括数据获取时间戳,车辆所在精度、纬度、海拔等信息。障碍物融合目标信息和自车定位信息给规划模块提供试了车辆周身交通环境的数据来源,可供规划模块计算自车的局部路径轨迹,实现测试规划算法的智能性、稳定性和鲁棒性的目的。控制模块通过获取到规划模块的局部规划路径结果,经车辆横、纵向控制算法进一步油门、制动和转向数据,将这些数据组成车辆的控制topic消息,经自动驾驶系统的消息中间件的publish接口对外发布,并由仿真场景引擎的自动驾驶系统通信子模块完成数据接收,并将接收到的数据存储在仿真场景数据管理子模块的车辆控制信号数据队列中。
28.针对自动驾驶系统算法开发完成后的集成测试,此时自动驾驶系统是个完整的系统,可以一个或几个独立的进程运行在计算机系统上,通常为了系统的部署移植方便通常使用docker容器的形式进行部署,因此无法使用api接口访问内存的形式进行数据传输和过程控制。通常,自动驾驶系统各算法模块之间通过消息中间进行分布式通信,各模块向消息中间件订阅或者发布对应信道或主题的消息,凡是订阅方都可以收到发布方发出的主题消息,例如appllo的自动系统就以消息中间件cyberrt进行通信,基于ros2开发的自动驾驶系统则以fastdds进行分布式通信。为实现传感器感知的目标级交通流车辆数据和自动驾驶车辆位置数据以及接收车辆控制数据与自动驾驶系统的交互,仿真场景引擎的自动驾驶系统通信子模块和自动驾驶系统可以由本发明提出的方式进行数据交互;利用了两个dds消息中间件模块在同一局域网下可以主动发现主动连接的优点,不使用udp通信转发也可实现消息的交互。使用时,仿真场景引擎中各子模块作为消息中间
件的应用层程序。使用时,仿真场景数据管理子模块将获取的激光雷达、毫米波雷达、照相机等目标级传感器仿真结果数据以及从车辆动力学模块计算的车辆位姿和速度、加速度等状态数据按数据协议组成不同类型的topic消息,序列化后经消息中间件的publish接口发布。使用同种消息中间件的自动驾驶系统的算法,在同一局域网下,同样会收到来自仿真场景引擎消息中间件publish发布的激光雷达、毫米波雷达、摄像机传感器数据topic和车辆状态数据topic。经自动驾驶系统控制算法模块中车辆横、纵向控制算法计算得到的油门、制动和转向信号组成车辆控制topic消息,经自动驾驶系统的消息中间件dds的publish接口发布。仿真场景引擎的仿真场景数据管理子模块通过往消息中间件dds订阅车辆控制topic消息,当自动驾驶系统发出控制topic消息时,仿真场景数据管理子模块即可立即接收车辆控制信息topic消息,并通过解析后存储在车辆的控制消息队列中。s4.4、车辆动力学模块接收车辆控制信号计算自动驾驶车辆运动状态:仿真场景同步子模块从仿真数据管理子模块中的车辆控制消息队列提取车辆油门、制动和转向数据,作为车辆动力学模块的输入,并使用时步计算接口调用车辆动力学模块计算得到当前时步下包括车辆位置、车速、加速度、位姿及各子系统计算结果,并将计算结果同步存储至仿真数据管理子模块中;s4.5、根据判断条件判断仿真是否结束,判断结果为是则执行步骤s4.6,判断结果为否则执行步骤s4.1-s4.4,判断条件为:s4.5.1、到达仿真时间;s4.5.2、自动驾驶车辆发生碰撞;s4.5.3、仿真场景引擎与自动驾驶系统之间网络通信异常;s4.6、记录并保存更模块计算结果:将仿真数据管理子模块中存储的sumo仿真模块、传感器仿真模块、车辆动力学的模块的时步计算仿真结果根据xml或者yaml或者csv的格式以文件的形式进行存储,用于仿真结果回放和自动驾驶系统仿真结果评价。
29.本实施方式使用微观交通仿真软件sumo,提供了供使用者根据仿真需求泛化生成交通流的能力,能够满足自动驾驶系统对于复杂场景和大规模背景车流进行规划控制算法测试的仿真需求。本实施方式使用了可带噪声的目标级的传感器模拟方案,跳过自动系统的感知算法模块,因此不用使用复杂的基于物理级数据的感知融合算法计算自动驾驶车辆的障碍物目标,大大减少了自动驾驶系统的整体计算时间,提高了对自动驾驶系统规划控制算法的测试效率。本实施方式提供了实现场景仿真引擎与自动驾驶系统进行传感器数据和车辆控制数据交互的方法,能够满足自动驾驶系统开发完成后的集成测试阶段的测试要求。
30.本实施方式sumo为开源软件,节省自动驾驶系统交通流仿真注入的研发成本,也可根据需求对sumo进行二次开发私人定制功能。
31.具体实施方式三:本实施方式和具体实施方式二不同的是步骤s4.3中的所述自动驾驶系统网络通信模块为udp网络通信子模块时,则在自动驾驶系统中设置udp网络通信模块,用于连接自动驾驶系统的消息中间件和仿真场景引擎的自动驾驶系统网络通信模块。
32.进一步的,使用udp通信间接通信。即在自动驾驶系统开发一个与自动系统外部通
信的udp网络通信模块,场景仿真引擎中的自动驾驶系统网络通信子模块可命名为udp网络通信子模块。自动驾驶系统中的网络通信模块和规划模块、定位模块一样往消息中间件注册订阅和发布topic消息,对计算机网络端口进行绑定监听,对接收到的目标级交通流车辆感知模拟结果数据和自动驾驶车辆位置数据的udp数据包根据类型进行分包拆包,并按照自动驾驶系统的协议组生成对应主题的topic消息,再通过消息中间件进行发布,同时对消息中间件监听到的自动驾驶系统控制算法模块发出的车辆控制topic消息进行解析并重新组成满足udp通信协议的数据包发送到的仿真场景引擎的udp网络通信子模块。在仿真场景引擎,udp网络通信子模块对目标级交通流车辆感知模拟结果数据和自动驾驶车辆位姿、速度、加速度等状态数据根据udp通信协议进行组包,发送至自动驾驶系统的网络通信模块,并对接收到来自自动驾驶系统网络通信模块的车辆控制信号数据包进行拆包解包得到解析后的油门、制动和转向信号数据,同步存储更新在仿真场景数据管理子模块的车辆控制信号数据队列中。
33.本实施方式使用微观交通仿真软件sumo,提供了供使用者根据仿真需求泛化生成交通流的能力,能够满足自动驾驶系统对于复杂场景和大规模背景车流进行规划控制算法测试的仿真需求。本实施方式使用了可带噪声的目标级的传感器模拟方案,跳过自动系统的感知算法模块,因此不用使用复杂的基于物理级数据的感知融合算法计算自动驾驶车辆的障碍物目标,大大减少了自动驾驶系统的整体计算时间,提高了对自动驾驶系统规划控制算法的测试效率。本实施方式提供了实现场景仿真引擎与自动驾驶系统进行传感器数据和车辆控制数据交互的方法,能够满足自动驾驶系统开发完成后的集成测试阶段的测试要求。
34.本实施方式sumo为开源软件,节省自动驾驶系统交通流仿真注入的研发成本,也可根据需求对sumo进行二次开发私人定制功能。本发明的技术关键点和欲保护点为:一种面向自动驾驶规划控制测试的交通流仿真系统与仿真方法。
35.需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
36.虽然在上文中已经参考具体实施方式对本技术进行了描述,然而在不脱离本技术的范围的情况下,可以对其进行各种改进并且可以用等效物替换其中的部件。尤其是,只要不存在结构冲突,本技术所披露的具体实施方式中的各项特征均可通过任意方式相互结合 起来使用,在本说明书中未对这些组合的情况进行穷举性的描述仅仅是出于省略篇幅和节 约资源的考虑。因此,本技术并不局限于文中公开的特定具体实施方式,而是包括落入权利要求的范围内的所有技术方案。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献