APP下载

智能车辆仿真场景建模方法*

2020-06-17周穆雄

交通信息与安全 2020年1期
关键词:视景物理层传感

高 岩 苏 虎 于 洋 周穆雄

(1.公安部交通管理科学研究所 江苏 无锡 214151;2.西南交通大学电气工程学院 成都 610000)

0 引 言

科学完善的测试与评价方法对于提高自动驾驶汽车研发效率、保障交通安全,促进产业健康发展至关重要[1]。基于场景的虚拟测试是智能汽车测试评价不可或缺的重要环节[2]。基于软件的虚拟仿真测试方法具有成本低、测试效率高的优点[1]。在对智能汽车进行仿真开发与测试时,需要构建高逼真度的仿真道路场景,以满足不同视景仿真、动力学仿真、传感器仿真等方面的数据需求。这些仿真计算所使用的数据并不相同,如将其在同一模型中表达,会存在信息冗余、访问效率低等问题。应将这些数据根据其内容、数据组织结构进行分类处理。目前,各类智能汽车仿真测试系统的模型分类方法也不尽相同。如吉林大学洪峰、管欣将智能汽车虚拟测试平台所使用的模型分为:几何层、物理层、逻辑层、特征层,每层模型具有不同的属性,分别应用于不同类型的仿真计算中[3-4]。道路场景中的同一对象可能在不同层次或类型的模型中存在数据表达问题,其表达应具有空间上的一致性。在建立这些数据或模型时,需要考虑保证场景对象的空间匹配关系。为提高建模效率、减少模型匹配误差,应采用自动或半自动方式实现上述模型的建模。

目前,在道路场景建模相关领域,相关研究人员提出过多种自动或半自动建模的方法,用于不同目的的道路场景模型的建立。Wilkie等[5]提出了一种通过GIS数据创建集合和拓扑一致的大场景道路模型的方法,用于交通仿真和智能汽车导航等领域。刘健[6]对基于车载激光雷达的无人驾驶车辆环境建模关键技术进行了研究。王贤隆[7]基于SUMO仿真平台和 OpenSceneGraph三维图形引擎,提出一种大规模道路交通通场景的自动构建算法。Zhou Mo[8]提出了一种从地理信息系统中提取多源异构数据用于建立高速公路的三维数字模型的方法。Ines Ernst等[9]采用计算机视觉技术建立道路的3D模型。吕希奎等[10]采用CityEngine CGA语言编写道路建模规则,利用路网的二维矢量数据实现城市道路三维模型的快速建模。这些方法主要面向视景模型的建立,对于仿真环境多类或多层模型的建模方法,则鲜有文献提及。

笔者对不同类型模型的特点进行分析,根据其联系与区别,提出了一种建模方法。在该方法中,以三维基础道路模型的建立为基础,通过扩展可实现3类不同层次模型的建立。

1 智能汽车仿真场景的数据需求

构建智能汽车仿真运行环境至少需要2类场景:①静态场景,场景内容主要包括:道路、交通设施设备、交通标志标线、路口、桥隧、地形、建筑、植被等;②动态对象,包括:机动车、非机动车、行人等。本文主要讨论静态场景的建模问题。如前所述,在智能车辆仿真系统中,各类仿真子系统或模块对于模型或数据有着不同的需求,这里将其分为:视景模型、物理层模型、传感层模型。

视景模型范围最大,涵盖了视锥内的所有可见对象的模型。主要数据内容为:物体对象的几何拓扑关系、几何图元数据、纹理数据、光照材质数据等。视觉传感器仿真的基本原理是对三维视景模型进行高逼真度的实时渲染。不同之处在于,渲染所用的虚拟摄像机参数需根据所仿真视觉传感器的参数设置,并进行必要标定。可将视景仿真子系统所用的三维场景模型用于视觉传感器的仿真。

进行汽车动力学仿真计算时,需要获得所行驶路面的高程、摩擦系数等参数。碰撞检测计算需要对本车及可能发生碰撞的场景对象进行几何求交运算。大多数碰撞检测算法求交所使用的几何体为场景对象的包围体。检测到碰撞,需进行碰撞响应的计算。碰撞响应模块则需要场景对象的质量、重心、刚度等物理参数。上述3类计算所涉及的场景对象,其范围限于道路及路侧车辆可达区域,包含道路、道路两侧可能发生碰撞的物体。对于远离道路的场景对象,则不需要进行数据描述。

除视觉传感器外,智能汽车还会安装激光雷达、毫米波雷达等传感器。可采用光线投射、深度渲染等方法对此类传感器进行仿真。用于这类传感器仿真的模型应包含精确的几何信息和反射特征。场景范围限定在以可行驶范围内车载激光雷达或毫米波传感器感知包络区域。

表1 3类场景模型特点Tab.1 Characteristics of three scene models

3类场景模型区域范围示意图见图1。假设视景模型包含的物体为集合A,物理层模型包含的物体为集合B,传感层模型中包含的物体为集合C,存在这样的关系:B⊂C⊂A。

为实现大规模场景的实时渲染,视景模型的几何模型必须经过一定程度的简化,其中存在大量Level of Detail(LOD)模型节点。经过简化的几何模型配合纹理、光照材质等图形属性,能够在现有图形硬件设备上实现较高逼真度视景画面的实时生成。激光雷达、毫米波雷达等传感器仿真需要场景对象精确的几何信息。传感层模型中场景对象的几何模型应该保证足够的精度,不能进行简化,而纹理、光照材质则为冗余数据。另外,超出传感器探测范围的场景对象无法被传感器仿真模块感知,也不被纳入传感层模型。

图1 3类模型范围及映射关系示意图Fig.1 Scope and Mapping relationship of three models

由于仿真过程中,不同类型仿真计算对数据范围要求不同。视景或视觉传感器仿真需要用的视域内的全部场景对象模型,物理层仿真需要当前仿真周期行驶范围内的道路或周围场景对象的物理属性或几何数据。激光雷达及毫米波雷达仿真需要用到当前时刻可探测范围内的所有场景对象的高精度几何模型。为实现数据的高效访问,这3类模型的组织结构存在较大区别。

2 智能汽车仿真场景的建模方法

2.1 基本步骤

一体化建模方法是通过1次建模同时生成视景模型、物理层模型和传感层模型的方法,需解决的主要问题包括:物理层模型和传感层模型的区域划分、所包含物体的判定、确定物体与模型节点对应关系等。可采用等距线算法[8]将道路线形曲线平移得到物理层模型和传感层模型所描述的场景区域边界,然后将边界数据作为多边形顶点数组,物体位置作为待测点,进而通过PNPoly算法[9-10]判断得到场景包含的物体,最后通过物体位置与模型文件的映射关系实现不同场景中物体位置的准确对应,实现一次建模生成3类场景模型。基本步骤如下。

1)加载地形模型。地形数据可以是规则格网或不规则格网的数字高程数据,也可从GIS系统或地图系统导入的地形数据。

2)构建道路基础模型。创建桩点,计算获得完整的三维道路线形数据。通过等距线算法将道路线形数据沿道路横断面左右平移得到完整的道路模型,采用约束Delaunay三角构网方法完成道路模型与地形模型的拼接,实现道路基础模型的建立。

3)构建完整场景模型。向地形、道路场景模型中添加路旁设备、建筑物、植被等物体,完成场景模型的初步构建。该模型经过结构优化后,可被作为视景模型用于场景的可视化、视觉传感器的仿真。

4)获得物理层模型及传感层模型的范围。采用等距线算法将得到的三维道路线形向两侧外推。外推不同的距离,获得不同类型模型的范围。

5)根据4)的结果,采用PNPoly算法判断物理层模型和传感层模型中所包含的物体对象,并获得其ID。

6)建立物理层模型。根据物体对象ID,获得该物体的几何图元数据(顶点坐标等)。利用这些数据计算该物体的包围体参数。向该物体添加必要的物理属性。将与物体对象ID关联的物理属性、包围体参数存入模型数据库。

7)建立传感层模型。根据物体对象ID,获得该物体的位置、姿态、比例参数。根据这些参数,在传感层模型中放置从模型库中调取的该物体对象的高精度几何模型。

8)利用优化的四叉树算法对视景模型结构进行组织,利用包围体层次树算法对物理层模型、传感层模型的结构进行组织,存储相关模型数据。

2.2 道路基础模型的建立

构建道路的三维线形。道路线形可分为平面曲线与竖曲线,以平面曲线计算为例介绍线形计算方法,篇幅所限,竖曲线计算略。平面曲线由直线、缓和曲线、圆曲线组合而成。直线结构简单,可采用较大的采样间隔,缓和曲线和圆曲线则需要较小的采样间隔才能准确描述其形状。平面曲线的设计是通过连续3个桩点逐段地计算,进而得到完整的线形数据。积木法又称线元设计法,它是将组合复杂的公路平面曲线分解成若干个单元。

在给定桩点后,通过3个桩点的坐标,依次计算直线、入缓和曲线、圆曲线、出缓和曲线、直线上点的坐标,同时将其作为下一组桩点计算的起始信息,按此方法计算直至计算完所有桩点内的线形数据,最后将各段内的线段首尾相连,得到完整的平面曲线。其完成平面曲线点的计算的完整步骤见图2。

为使设计的公路模型线形符合标准,参考《公路路线设计规范》对线形以及圆曲线极限最小半径、一般最小半径和最小半径等的要求,圆曲线的半径要大于等于规定的最小半径,缓和曲线的长度要大于等于规定的最小缓和曲线长度;同时根据各要素的含义及实际的几何意义,圆曲线角与缓和曲线线角的和应大于缓和曲线角的和,切线总长要小于相邻2个桩点之间的距离。

图2 积木法计算平面曲线流程图Fig.2 Building blocks method to calculate the plane curve

得到道路的三维线形数据后,还需设计道路横断面,以构建完整的模型。道路横断面包括:设计线、地面线,是道路中心线任意一点的法向切面。设计线包括:行车道、路肩、分隔带、边沟、边坡、截水沟、护坡道以及取土坑、弃土堆、环境保护设施等。地面线则是表征地面起伏变化的线,通过现场地形数据获得。一个典型的道路横断面结构[11-13]见图3。根据所建道路模型的需求,通过人机交互的方式进行道路参数的设定,可获得设计线的全部几何参数,进而完成道路横断面的设计工作。

图3 道路横断面结构示意图Fig.3 Road cross section structure

平、纵曲线经设计、优化后,得到道路的三维线形数据。将道路横断面设计沿三维线形拉伸,构建出完整的三维道路模型。基于约束Delaunay三角网理论,实现道路模型与地形模型的拼合,完成道路模型构网。具体可利用三维图形引擎中Delaunay三角形相关的类实现,基本步骤如下。

1)创建一个三角网对象,向该对象中添加地形数据中所有的高程点。

2)设置一个三角网约束对象,将边坡的底边数据作为约束边界数据构建约束边界,并去除地形中在约束边界内的点。

3)在三角网对象中添加线形约束对象,对该三角网进行重构。

4)将路肩的边界数据作为约束边界数据,再次构建约束边界。

5)将线形约束对象添加到三角网对象中,重构三角网,完成道路模型的整体建模。

2.3 3类模型的建立

在完成道路模型的基础上,通过人工方式从预先建立的模型库中选择道路交通设备、建筑物、植被等场景对象模型,经旋转、平移、缩放等变换后置入场景,完成视景模型的初步构建。各场景对象在场景树中具有独立的节点结构与不重复的ID,方便查询、遍历,也用于建立同一场景对象在不同类别模型中的关联关系。模型库中的场景对象模型自带纹理、光照材质、多级LOD模型。加入场景后,需要重新计算顶点法向量、纹理及材质索引、包围体参数等。根据变换后的坐标及尺寸将其置于场景树形结构的某区域节点下。这些过程可通过遍历场景树及对应几何体参数自动完成。经过如上处理后得到的视景模型,可用于视景仿真及视觉传感器仿真。

物理层模型包含了具有足够精度的路面模型以及这些路面的摩擦系数等参数、可碰撞场景对象的包围体、重量、质心等。其范围被限定在道路及道路两侧的一定距离内,超过这个范围的场景对象不予考虑。可采用等距线算法将三维道路线形根据物理层模型的范围向两侧外推,获得1个条带状的空间。利用PNPoly算法从前面建立视景模型中判断物理层模型所包含的场景对象,获得其ID及对应的节点。将这些节点下最高级LOD模型在去除纹理、光照材质等图形属性后用于建立物理层模型。对于路面模型,需根据给定的误差阈值、三维线形数据重新进行三角形化,以满足动力学仿真计算对路面高程的精度要求。摩擦系数等参数可通过人机交互的方式输入。可碰撞场景对象的包围体数据也应根据碰撞误差精度的要求重新计算、细分。

传感层模型中包含高精度路面模型和传感器探测范围内的场景对象模型。物理层模型中的路面模型可被传感层模型复用。根据激光雷达、毫米波雷达的探测距离,可用前述方法获得传感层模型的有效范围,并选出所包含的场景对象。根据场景对象的ID在预先建立的模型库中对应的用于传感器仿真的高精度几何模型。这些模型无纹理、光照材质等图形属性信息,也未经过简化,比视景模型具有更高的精度。经过同样旋转、平移、缩放等变换后置入传感层场景树中。为提高访问效率,物理层和传感层模型的组织结构需要进行必要优化。

3 场景模型的组织结构

3.1 视景场景的组织结构

在视景场景中,大部分对象在地形表面呈单层面状分布,适合采用四叉树的方式实现场景对象的管理。四叉树利用包围四边形对场景进行递归四叉分割[14],直至每个节点中的场景足够简单。场景的简单程度可以用场景中对象数量、几何体的多边形数量或场景块边长等参数综合判定。在本方法中,使用物理层模型构建过程中得到的AABB包围盒来替代物体用于场景剖分。为与四叉树剖分平面进行对应,可只使用AABB盒中底面的4个顶点来表示,不考虑场景对象的高度数据。通过PNPoly算法依次对物体包围盒底面4个顶点进行判断,进而判断物体是否在某个子场景中。四叉树剖分场景示意见图4。

图4 四叉树划分场景结构图Fig.4 Quadtree partition scene structure diagram

图4 中的场景结构,场景对象B,D正好处于剖分边界上。在传统四叉树场景管理算法中,场景对象只能存储在树的节点上。对象B,D将被分别存储在2个对应节点上,其结构见图5。或用边界将B,D剖分为多个子对象,分别存储在对应的节点中。重复存储会导致四叉树数据出现冗余,增加不必要的存储空间增大,降低遍历速度。而多次剖分场景对象会给增加场景复杂度,并为建立场景对象映射关系造成困难。可以将横跨多个节点区域的场景对象分配到能完全包围其包围盒的上级节点区域。根据此方法,可将上图中的对象B存放到根节点中,物体D存放到二级节点中,则通过此法优化的四叉树结构[15]见图6。

图5 传统四叉树结构Fig.5 Traditional quadtree structure

图6 优化四叉树结构Fig.6 Optimized quadtree structure

优化后的四叉树,其根节点和中间节点也存储有空间实体信息,从而减少存储空间浪费,控制四叉树深度,提升空间数据窗口查询效率。

3.2 物理层及传感层场景模型的组织结构

物理层场景、传感层场景沿道路两侧呈条带状或网状分布。根据这一特点,采用包围体层次树对这2类场景对象加以组织。包围体层次树是另一种常用的空间剖分结构,基本结构是一个k叉树[16]。根据某种规则将整个场景进行空间的递归剖分,直到达到设定的不再剖分条件。为每个子场景、场景对象建立包围盒,并以树形结构进行管理。根据道路场景的特点,可沿道路走向进行场景剖分。

hical Tree

基本方法是:进行等间距子区域剖分,建立树形结构;查找各个子区域中包含的场景对象,并将其加入节点中。如果子区域较为复杂,可在子区域内继续采用四叉空间剖分。对于部分包含在区域的对象,若其包围盒几何中心处于子区域外,则予以剔除;否则予以保留。对于跨区域边界的对象,加入其包围盒几何中心所在的子区域对应的节点。

图7 基于包围体层次树的场景划分Fig.7 Scene Partition based on Enclosure hierarc

在对物理层进行碰撞检测和在传感层进行雷达仿真时,通过包围体层次树可预先剔除大量无关对象,缩小计算范围,节省计算时间。

4 实验结果

为验证上述方法,选用1块大小为1 024×1 024个高程点的规则格网作为地形数据。在该地形上采用如上述方法建立用于智能汽车仿真的场景模型。建立的视景四叉树为5层。设置激光雷达的扫描范围为120 m,传感层包围体层次树包含35个子区域。通过上述判别方法得到每个子场景的范围及包含物体,最后将相应的数据分别填入对应的子节点中,完成场景树的构建。

在智能汽车仿真环境中,对上述场景模型进行了测试。视景帧速率可保持在60帧/s,激光雷达仿真周期为8~12 ms,获得汽车动力学仿真所需高程及路面属性数据的时间低于1 ms,碰撞检测计算则可在2 ms内完成。各子系统的截图见图8~图10。

表2 3类场景模型内容Tab.2 Content of three scene models

图8 视景仿真运行结果Fig.8 Visual simulation running results

图9 物理层场景示意图(路面及碰撞包围体)Fig.9 Schematic diagram of physical scene(road and collision enclosure)

图10 激光雷达仿真结果(采用64线激光雷达仿真)Fig.10 LiDAR simulation results(with 64-line LiDAR simulation)

5 结束语

为提高智能汽车仿真场景的建模效率、使用效率,提出了一种能够对视景模型、物理层模型和传感层模型进行协同建模的方法,并初步实现了该方法。实践表明,该方法能够较快速地建立具有空间映射关系的异构模型,模型内容、结构能够较好满足仿真系统的功能及效率的要求。在今后的工作中,将进一步研究更为复杂的道路环境的建模方法,包括隧道、桥梁、立交桥、道路交叉及匝道等设施,并将微观交通仿真所需的车道定义、车道关系等逻辑层场景要求纳入。

猜你喜欢

视景物理层传感
《传感技术学报》期刊征订
新型无酶便携式传感平台 两秒内测出果蔬农药残留
基于K-ML-MPWFRFT的物理层安全传输技术
虚拟现实技术在游戏设计中的应用及研究
公路联网电子不停车收费系统路侧单元物理层自动测试软件研发
IPv6与ZigBee无线传感网互联网关的研究
一种应用于5G基于LDPC码的物理层包编码
全回转拖轮运动建模与视景仿真
卫星通信物理层安全技术探析
某型Fabry-Perot光纤应变计的传感特性试验