首页> 中国专利> 一种驾驶模拟器获得交通环境信息的快速截取引擎

一种驾驶模拟器获得交通环境信息的快速截取引擎

摘要

本发明公开了一种驾驶模拟器获得交通环境信息的快速截取引擎,定位服务模块与被截取仿真对象数据存储空间连接,被截取仿真对象数据存储空间分别与仿真对象定位算法模块、仿真范围截取算法模块连接,仿真对象定位算法模块与仿真场景空间划分模块连接,仿真场景空间划分模块与仿真范围截取算法模块连接,仿真范围截取算法模块与截取服务模块连接,截取服务模块与模拟器子系统数据存储空间连接,模拟器子系统数据存储空间与仿真范围截取算法模块连接,被截取仿真对象与定位服务模块连接,驾驶模拟器各子系统与截取服务模块连接。能够实时准确地截取出驾驶模拟器所代表的车辆周围的交通仿真车辆,为驾驶模拟器交互式系统的计算提供简洁有效的数据。

著录项

  • 公开/公告号CN104834552A

    专利类型发明专利

  • 公开/公告日2015-08-12

    原文格式PDF

  • 申请/专利权人 吉林大学;

    申请/专利号CN201510217591.2

  • 发明设计人 管欣;洪峰;贾鑫;

    申请日2015-04-30

  • 分类号

  • 代理机构四川君士达律师事务所;

  • 代理人芶忠义

  • 地址 130000 吉林省长春市前进大街2699号

  • 入库时间 2023-12-18 10:12:06

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-03-30

    授权

    授权

  • 2016-02-03

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20150430

    实质审查的生效

  • 2015-08-12

    公开

    公开

说明书

技术领域

本发明属于驾驶模拟器应用技术领域,涉及一种驾驶模拟器获得交通环 境信息的快速截取引擎。

背景技术

为使驾驶模拟器中呈现的周围交通环境更加的真实、可信,人们开始越 来越多的采用了驾驶模拟器与交通仿真器联合仿真的方法。驾驶员在操纵驾 驶模拟器的过程中,将驾驶模拟器的动力学计算结果发送到交通仿真器,将 驾驶模拟器所代表的车辆作为交通仿真中的一个交通车辆对象,并将交通仿 真的结果通过交互式的方法呈现给驾驶模拟器中的驾驶员,形成人-车-交通 环境的闭环仿真系统,使驾驶员的驾驶感受更加真实,进而使仿真实验的结 果更加真实可靠。然而即使是微观交通流仿真,仿真对象也会有几千甚至上 万辆车,如何快速的从中选取出驾驶模拟器所代表的车辆周围一定范围内的 交通仿真车辆,对其仿真信息进行提取并通过声响、图像显示等交互式手段 呈现给驾驶模拟器中的驾驶员,成为了影响联合仿真实时性、真实感的关键 因素。

秦雅琴等人在2007年《昆明理工大学学报(工学版)》第32卷第1期 发表的《驾驶模拟器与微观交通仿真VISSIM的数据接口研究》一文中设计 并实现了其自主研发的面向道路交通的高级驾驶模拟器(KMRTS)与微观 交通仿真软件VISSIM的数据传递过程,但该过程是先在VISSIM中进行交 通仿真并将结果导出至文件,再在驾驶模拟器进行仿真时导入上述交通仿真 结果文件。该方法中驾驶模拟器的仿真结果无法作用在交通仿真的结果上, 并不能完全实现驾驶模拟器与交通仿真器的联合仿真。

现有技术的缺点:驾驶模拟器与交通仿真器进行联合仿真的方法目前刚 刚兴起,已出现的仿真平台大多还处于功能实现阶段,但当交通仿真的区域 较大、仿真车辆数量也较大时对于如何从交通仿真器的大量仿真数据中快速 提取有效信息,保证声响、显示等效果的实时性,以提高仿真性能还少有研 究。

发明内容

本发明的目的是提供一种驾驶模拟器获得交通环境信息的快速截取引 擎,为了提高驾驶模拟器中利用交通仿真来模拟交通环境信息时的仿真性 能,保证当驾驶模拟器与大规模交通仿真器进行联合仿真时,能够实时、准 确地截取出驾驶模拟器所代表的车辆周围一定范围内的交通仿真车辆,为视 觉、听觉、触觉等驾驶模拟器交互式系统的计算提供简洁、有效的数据。同 时,该引擎也可以单纯在交通仿真中为交通车辆获取周围信息提供支持。

本发明所采用的技术方案是,一种驾驶模拟器获得交通环境信息的快速 截取引擎,定位服务模块与被截取仿真对象数据存储空间连接,被截取仿真 对象数据存储空间分别与仿真对象定位算法模块、仿真范围截取算法模块连 接,仿真对象定位算法模块与仿真场景空间划分模块连接,仿真场景空间划 分模块与仿真范围截取算法模块连接,仿真范围截取算法模块与截取服务模 块连接,截取服务模块与模拟器子系统数据存储空间连接,模拟器子系统数 据存储空间与仿真范围截取算法模块连接,被截取仿真对象与定位服务模块 连接,驾驶模拟器各子系统与截取服务模块连接。

本发明的有益效果是,解决当与驾驶模拟器进行联合仿真的交通仿真器 仿真区域较大、仿真对象数量也较大时,难以实时、准确、全面的提取驾驶 员周围一定范围内交通仿真对象信息的问题,从而提高了驾驶模拟器的逼真 度,为利用驾驶模拟器进行各类与交通相关的研究奠定了基础。而且,本发 明具有布置方案灵活的特点,当仿真场景很大、参与交通仿真的车辆数很多 时,可以选择将快速截取引擎独立在交通仿真器和驾驶模拟器之外,在一台 单独的计算机上运行,以提高运行速度;当交通仿真车辆数较多时,可以选 择将使快速引擎集成在在交通仿真器上运行,以减小交通仿真器的通信开 销,提高数据传输效率;此外也可以选择将快速截取引擎集成在驾驶模拟器 内部运行。

附图说明

图1是本发明的结构框图。

图2是本发明与驾驶模拟器、交通仿真器的布置方案示意图。

a为快速截取引擎集成在交通仿真器中;b为快速截取引擎独立在交通 仿真器和驾驶模拟器之外;c为快速截取引擎集成在驾驶模拟器中。

图3是为本发明的仿真场景空间划分模块对仿真场景空间进行二维网格 化的过程示意图。

图4为本发明的仿真对象定位算法模块确定仿真对象所处网格的过程示 意图。

图5为本发明的定位服务为被截取的仿真对象提供的三种功能与快速截 取引擎内的被截取仿真对象数据存储空间之间的关系。

图6为本发明的仿真范围截取算法模块确定调用对象截取范围所覆盖网 格过程示意图。

图7为本发明的截取服务为驾驶模拟器子系统提供的四种功能与快速截 取引擎内的模拟器子系统数据存储空间之间的关系。

图中,1.快速截取引擎,2.定位服务模块,3.截取服务模块,4.仿真对象 定位算法模块,5.仿真场景空间划分模块,6.仿真范围截取算法模块,7.被截 取仿真对象数据存储空间,8.模拟器子系统数据存储空间,9.被截取仿真对 象,10.驾驶模拟器各子系统。

具体实施方式

下面结合附图和具体实施方式对本发明进行详细说明。

一种驾驶模拟器获得交通环境信息的快速截取引擎1,结构如图1所示, 包括定位服务模块2、截取服务模块3、仿真对象定位算法模块4、仿真场景 空间划分模块5、仿真范围截取算法模块6共5个模块,还包括被截取仿真 对象数据存储空间7、模拟器子系统数据存储空间8共2个数据存储空间。

定位服务模块2与被截取仿真对象数据存储空间7连接,被截取仿真对 象数据存储空间7分别与仿真对象定位算法模块4、仿真范围截取算法模块 6连接,仿真对象定位算法模块4与仿真场景空间划分模块5连接,仿真场 景空间划分模块5与仿真范围截取算法模块6连接,仿真范围截取算法模块 6与截取服务模块3连接,截取服务模块3与模拟器子系统数据存储空间8 连接,模拟器子系统数据存储空间8与仿真范围截取算法模块6连接,被截 取仿真对象9与定位服务模块2连接,驾驶模拟器各子系统10与截取服务 模块3连接。

定位服务模块2,负责为交通仿真器向快速截取引擎1传递数据提供服 务,交通仿真器中需要被截取的仿真对象称为被截取仿真对象,每一个被截 取仿真对象9在快速截取引擎中都对应有一段被截取仿真对象数据存储空间 7,保存了仿真对象定位算法模块4和驾驶模拟器所需要的被截取仿真对象9 的数据。定位服务模块2为被截取仿真对象9提供了注册、注销、更新三个 功能,其中注册功能在被截取仿真对象9希望加入驾驶模拟器场景时在引擎 中为其创建相应的被截取仿真对象数据存储空间7,同时创建访问该存储空 间的句柄并初始化数据;注销功能在被截取仿真对象9希望退出驾驶模拟器 场景时在引擎中销毁所创建的数据存储空间和句柄;更新功能负责将每次被 截取仿真对象9的计算结果写入引擎中对应的被截取仿真对象数据存储空间 7中。

截取服务模块3,负责为驾驶模拟器与快速截取引擎1之间传递数据提 供服务,驾驶模拟器中每一个需要应用截取功能的子系统对应为图1中驾驶 模拟器各子系统10中的一个,每一个驾驶模拟器各子系统10在快速截取引 擎1中都对应有一段模拟器子系统数据存储空间8,保存了仿真范围截取算 法模块6所需要的数据。截取服务模块3为驾驶模拟器各子系统10提供了 注册、注销、更新、反馈四个功能,其中注册功能在驾驶模拟器各子系统10 希望利用引擎的截取功能时在引擎中为其创建相应的模拟器子系统数据存 储空间8,同时创建访问该存储空间的句柄并初始化数据;注销功能在驾驶 模拟器各子系统10不再需要利用引擎的截取功能时在引擎中销毁所创建的 数据存储空间和句柄;更新功能负责将驾驶模拟器各子系统10每次截取计 算时需要更新的数据写入引擎中对应的模拟器子系统数据存储空间8中;反 馈功能负责将仿真范围截取算法模块6的计算结果反馈给驾驶模拟器各子系 统10。

仿真场景空间划分模块5,负责根据仿真场景在惯性坐标系下x,y方向 的最大尺寸,将仿真场景划分为一组分别沿x、y方向的连续二维正方形网 格,并为每一个划分后的网格创建、维护若干个链表,每个链表中记录了处 于该网格内的相同类型的关于被截取仿真对象9的句柄,该句柄在被截取仿 真对象9向引擎注册时由定位服务模块2创建,并指向了一段被截取仿真对 象数据存储空间7,通过该句柄可以获得该被截取仿真对象9为驾驶模拟器 提供的仿真数据。为每一个网格维护链表的过程包括,将处于当前网格内的 被截取仿真对象9的句柄写入链表,将不再处于当前网格的被截取仿真对象 9的句柄从链表中删除,输出链表中的被截取仿真对象9的句柄,在仿真过 程中对链表的读、写保护机制。读、写保护机制是指保证满足以下要求的一 系列过程:(1)每一个链表在同一时刻只能有一个被截取仿真对象9的句柄 被写入或删除,并且此时不能进行读链表操作;(2)每一个链表在同一时刻 可以有多个访问者从中读取被截取仿真对象9的句柄。所述的被截取仿真对 象9可以是交通仿真器中的交通仿真车辆、行人、动态信息指示牌等动态对 象,也可以是路障、交通标志牌等静态对象。

仿真对象定位算法模块4,负责为被截取仿真对象9提供一种定位算法, 该算法能够根据仿真场景空间划分模块5所划分的网格,以及被截取仿真对 象9的轮廓、位置、姿态确定被截取仿真对象9当前所处的网格,该算法执 行过程中所需要的被截取仿真对象9的数据由定位服务模块2为该对象所创 建的被截取仿真对象数据存储空间7中获得。被截取仿真对象9当前所处的 网格是指,利用表示被截取仿真对象二维轮廓的矩形与仿真场景中的正方形 网格进行计算机图形学意义上的相交检测计算,所有与上述矩形发生相交的 正方形网格,都认为是被截取仿真对象9当前所处的网格,因此被截取仿真 对象9当前所处的网格数是1至4个。

仿真范围截取算法模块6,负责根据仿真场景空间划分模块5所划分的 网格,以及调用该模块的驾驶模拟器各子系统10当前设定的位置、截取范 围,计算出该截取范围所覆盖的正方形网格,然后从被覆盖的正方形网格所 创建的链表中提取被截取仿真对象9在引擎中所对应的被截取仿真对象数据 存储空间7的句柄,该算法执行过程中所需要的驾驶模拟器各子系统10的 数据由截取服务模块3为驾驶模拟器各子系统10所创建的模拟器子系统数 据存储空间8中获得。该仿真范围截取算法模块6可以通过正方形网格所创 建的链表中存储的被截取仿真对象9的句柄,访问被截取仿真对象9所对应 的被截取仿真对象数据存储空间7,从而获得被截取仿真对象9的仿真参数、 仿真结果等信息。调用仿真范围截取算法模块6的驾驶模拟器各子系统10 可以是图像显示系统、声响模拟系统,它们通过被覆盖的网格所创建的链表 获得截取范围以内交通仿真车辆的显示状态、声响状态等所需状态,并通过 驾驶模拟器的成像设备、声响设备、运动模拟设备呈现给驾驶员。同时,调 用仿真范围截取算法模块6的也可以是自行开发的交通仿真器中需要进行一 定区域内交通车辆信息统计的其他对象,比如每一个交通仿真车辆,通过该 算法模块可以获得自己周围一定范围内其他交通仿真车辆的信息,作为自身 驾驶决策的输入。截取范围所覆盖的正方形网格,是指利用表示截取范围的 简单几何图形(如圆形、矩形、等腰三角形等)与仿真场景中的正方形网格 进行计算机图形学意义上的相交检测计算,与上述简单几何图形发生相交的 正方形网格,都认为是截取范围所覆盖的正方形网格。

如图1、2所示,快速截取引擎作为驾驶模拟器与交通仿真器之间的信 息传递媒介,省略了对整个场景中的所有交通仿真对象进行遍历的过程,而 是只需要进行少量的、简单的相交检测计算就可以获得所需范围的交通仿真 对象数据,因此能够大大提高驾驶模拟器中各个子系统从交通仿真器中获得 交通仿真对象信息的运行速度,从而达到提高驾驶模拟器与交通仿真器联合 仿真的性能的目的。并可以根据不同的情况,为快速截取引擎选择不同的布 置方案,本实施例选择如图2所示的a布置方案。

本实施例采用面向对象的C++语言编程实现,本发明设计了截取引擎类 CCullingEngine Class作为快速截取引擎1和仿真场景空间划分模块5的实现 对象,该类完成了根据仿真空间的尺寸和划分网格的大小对仿真空间进行网 格划分的工作,同时,该类负责创建、管理其他类的实例对象。如图3所示, 本发明设计了空间网格类CCell Class作为空间划分后的每一个网格实例对 象,空间网格类CCell Class中包括了针对不同类型被截取仿真对象9所建立 的链表,链表利用C++标准模板库的list实现,从而实现了对链表的读写保 护机制。链表中保存了属于该网格的被截取仿真对象9对应的被截取仿真对 象数据存储空间7的句柄,空间网格类CCell Class还提供了向各个链表中写 入上述句柄、从各个链表中删除句柄、从各个链表中提取出句柄的成员函数, 所有代表网格的空间网格类CCell Class实例构成的二维数组由截取引擎类 CCullingEngine Class来管理。

本实施例设计了被截取对象类CObjectToCull Class,交通仿真器输出的 每一个需要被截取的仿真对象在快速截取引擎1中都由一个被截取对象类 CObjectToCull Class的实例来代表,被截取对象类CObjectToCull Class的成 员变量保存了该交通仿真对象的轮廓、位置、姿态信息,其在空间网格类 CCell Class中应该所属的链表信息,以及其当前所属的网格个数、网格的索 引值,被截取对象类CObjectToCull Class的成员函数实现了仿真对象定位算 法模块4的功能,能够根据仿真对象的轮廓、位置、姿态确定其所处的网格。 所有被截取对象类CObjectToCull Class实例,都存储在被截取对象数据存储 空间7中。

如图4所示,本实施例中仿真对象定位算法采用了计算机图形学中的相 交检测算法,交通仿真对象的轮廓利用有向包围盒(Oriented Bounding Box, OBB)表示,仿真场景空间划分后的网格则用正方形表示,二者之间的求交 计算通过计算机图形学中的标准算法实现,所有与OBB发生相交的正方形 网格,都认为是交通仿真对象当前所处的网格,图4中发生相交的正方形网 格已用网格线纹理标出,图中为清楚表示相交关系,将仿真车辆的尺寸进行 了适当的放大。

如图5所示,被截取对象类CObjectToCull Class实例的数据存储空间由 定位服务负责管理,定位服务的注册功能实现类的构造,注销功能实现类的 析构,更新功能实现对类成员变量的更新。

本实施例设计了截取模型类CCullingModel Class,驾驶模拟器中每一个 需要对交通仿真对象进行截取的子系统在快速截取引擎中都由一个截取模 型类CCullingModel Class实例来代表,截取模型类CCullingModel Class的 成员变量保存了该驾驶模拟器子系统所要截取的范围信息、当前所要截取的 位置信息、所要截取的交通仿真对象类型信息,截取模型类CCullingModel  Class成员函数实现了仿真范围截取算法模块6的功能,能够根据驾驶模拟 器子系统的截取范围、当前位置信息确定截取到的网格。

本实施例中涉及到的驾驶模拟器子系统包括声响系统和图像显示系统, 如图6所示,它们的截取范围都用圆形来表示,范围截取算法模块在进行圆 形与表示仿真场景空间划分后网格的正方形之间的求交计算时,通过计算机 图形学中的标准算法实现,所有与圆形发生相交的正方形网格,都认为是驾 驶模拟器子系统需要提取信息的网格。

如图7所示,截取模型类CCullingModel Class实例的数据存储空间由截 取服务负责管理,截取服务的注册功能实现类的构造,注销功能实现类的析 构,更新功能实现对类成员变量的更新,反馈功能实现将仿真范围截取算法 的计算结果反馈给驾驶模拟器。

快速截取引擎的工作流程分为以下几步:

步骤1、仿真程序初始化阶段,利用截取引擎类CCullingEngine Class 对仿真空间进行划分,并为每一个划分后的网格创建和初始化一个空间网格 类CCell Class实例,生成空间网格类CCell Class实例的二维数组。

步骤2、驾驶模拟器中的图像子系统、声响子系统向截取服务提交注册 申请,截取服务的注册功能在引擎中为两个子系统分别创建与之对应的截取 模型类CCullingModel Class实例,并确定两个子系统的截取范围、分别需要 对交通仿真器中的哪些交通仿真对象进行截取,本发明中两个子系统均只需 对交通仿真车辆进行截取。

步骤3、交通仿真器中每一个希望加入到驾驶模拟器场景中的交通仿真 对象向定位服务提交注册申请,定位服务为每一个交通仿真对象(本发明只 有交通仿真车辆)在引擎中建立与之对应的被截取对象类CObjectToCull  Class实例,并初始化类的成员变量。

步骤4、交通仿真器输出的每一个交通仿真车辆通过定位服务的更新功 能为引擎中的被截取对象类CObjectToCull Class实例更新交通仿真对象的位 置、姿态等成员变量,类实例通过成员函数执行仿真对象定位算法,确定其 所处的仿真空间网格,并将自身句柄写入到所处网格的空间网格类CCell  Class实例的链表中。

步骤5、驾驶模拟器图像子系统通过截取服务的更新功能为引擎中的截 取模型类CCullingModel Class实例更新驾驶员所在的截取位置等成员变量, 类实例通过成员函数执行仿真范围截取算法确定截取范围所覆盖的网格,并 提取出网格所包含的交通仿真对象信息,然后通过定位服务的反馈功能反馈 给驾驶模拟器的图像子系统,由图像子系统实现对这些交通车辆在驾驶模拟 器场景中的显示。驾驶模拟器声响子系统截取交通仿真车辆并对其声响效果 进行播放的过程与之类似。

步骤6、在驾驶模拟器与交通仿真器进行联合仿真的过程中由截取引擎 类CCullingEngine Class控制,分别并发循环执行上述第4、5步。

步骤7、在结束仿真时,驾驶模拟器的图像、声响系统通过截取服务的 注销功能从引擎中退出;交通仿真器的被截取仿真对象通过定位服务的注销 功能从引擎中退出;在全部截取模型类CCullingModel Class实例和被截取对 象类CObjectToCull Class实例成功析构后,将空间网格类CCell Class实例数 组中的实例析构,退出截取引擎。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号