一种在unity中构建自动驾驶仿真测试场景的方法与流程

文档序号:26195317发布日期:2021-08-06 18:49阅读:465来源:国知局
一种在unity中构建自动驾驶仿真测试场景的方法与流程

本发明涉及一种在unity中构建自动驾驶仿真测试场景的方法,属于自动驾驶技术领域。



背景技术:

在自动驾驶商业使用前,往往需要经过大量的仿真测试。目前,自动驾驶在仿真测试时,对于场景构建尚无统一标准,多采用车后跟随视角(习惯上也叫仿真视角)这一单一视角进行测试,车后跟随视角可以很方便地观察仿真时的车辆状态,虽然能够反映仿真时车辆的情况,但是仍然存在一定缺陷。比如在仿真时遇到图1所示的情况,仿真车辆前方遇到一障碍物,车后跟随视角不好判断车辆距离障碍物的准确距离,虽然也可以通过雷达或者激光判断障碍物的距离,但这种判断往往存在一定误差,而且通过这种判断也无法直观地显示仿真记录。也就是说,现有的测试场景无法更全面地观察自动驾驶仿真车辆的驾驶情况。



技术实现要素:

本发明要解决的技术问题是:提供一种可以全面地观察自动驾驶仿真的驾驶情况,从而更容易发现自动驾驶中所遇到的问题的场景构建方法。

为了解决上述技术问题,本发明提出的技术方案是:一种在unity中构建自动驾驶仿真测试场景的方法,包括以下步骤:

步骤一、设置跟随车辆的仿真视角摄像机,以及视角朝向为垂直向下、渲染模式为垂直投影的逻辑视角摄像机;同时,定义逻辑视角用于显示逻辑视角摄像机的渲染目标,仿真视角用于显示仿真视角摄像机的渲染目标;

步骤二、根据预设规则,将unity中用于仿真测试的元素分成以下几类:第一类元素为不需要显示在逻辑视角、只需显示在仿真视角中的元素,第一类元素设置为只能被仿真摄相机渲染的层级;第二类元素为同时在逻辑视角和仿真视角显示为元素本体的元素,第二类元素设置为被仿真视角摄像机和逻辑视角摄像机同时渲染的层级;第三类元素为在仿真视角显示为元素本体、在逻辑视角显示为逻辑图标的元素,其中,第三类元素的元素本体设置为被仿真摄相机渲染的层级,第三类元素的逻辑图标设置为被逻辑视角摄像机同时渲染的层级;

步骤三、创建仿真画面主窗口,用于显示仿真视角;同时创建次要窗口,用于显示逻辑视角。

unity引擎是由unitytechnologies公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。unity引擎为开发者提供了便捷的图像与物理接口,可以方便地创建各种视觉与物理模拟环境并进行各种自定义拓展,在自动驾驶仿真领域具有广泛的应用。

本发明通过在仿真视角摄像机以外,增加一个渲染模式为垂直投影的逻辑视角摄像机,同时在仿真画面主窗口以外,创建用于显示逻辑视角的次要窗口,在逻辑视角上显示出仿真中对应位置对应大小的元素,且没有多余无用信息干扰,可以更直观地观察仿真情况,更容易发现和排查自动驾驶系统的问题。在测试自动驾驶系统时,能够更全面地观察自动驾驶仿真的驾驶情况,更容易发现问题,提高了测试的全面性和准确性。

附图说明

图1是仿真车辆遇到障碍物时的仿真视角示意图。

图2是图1中增加逻辑视角的示意图。

图3是在逻辑视角设置行人、障碍的示意图。

图4是在逻辑视角对交通信号灯的逻辑图标进行偏移的示意图。

具体实施方式

实施例

本实施例的在unity中构建自动驾驶仿真测试场景的方法,包括以下步骤:

步骤一、设置跟随车辆的仿真视角摄像机,以及视角朝向为垂直向下、渲染模式为垂直投影的逻辑视角摄像机。同时,定义逻辑视角用于显示逻辑视角摄像机的渲染目标,仿真视角用于显示仿真视角摄像机的渲染目标。

仿真视角摄像机通常也叫车后相机,用于观察仿真车辆状态;逻辑视角摄像机用于更直观的查看仿真中车辆和各种交通元素的位置,并且俯视逻辑视角便于用户设置元素位置,可以更方便的模拟各种突发情况。设置逻辑视角摄像机的渲染模式为垂直投影(orthographic),这样就不会出现近大远小的情况,只要调整相机高度和渲染距离就可以显示所有需要显示的信息。

步骤二、根据预设规则,将unity中用于仿真测试的元素分成以下几类:

第一类元素为不需要显示在逻辑视角、只需显示在仿真视角中的元素,第一类元素设置为只能被仿真摄相机渲染的层级。第一类元素多是对于仿真测试来说不太重要的元素,比如树木、护栏等。

第二类元素为同时在逻辑视角和仿真视角显示为元素本体的元素,第二类元素设置为被仿真视角摄像机和逻辑视角摄像机同时渲染的层级。第二类元素一般是对仿真测试来说非常重要的元素,比如斑马线、停止线、车道线、地标建筑等。

第三类元素为在仿真视角显示为元素本体、在逻辑视角显示为逻辑图标的元素,其中,第三类元素的元素本体设置为被仿真摄相机渲染的层级,第三类元素的逻辑图标设置为被逻辑视角摄像机同时渲染的层级。第三类元素多是对于仿真测试来说也很重要,比如其他仿真车辆、行人、交通灯、电动车等重要交通元素,但是这些元素通常具有一定的共性,其具体形状并不是特别重要,因此,可以在逻辑视角显示为逻辑图标。而且,通过只渲染对应物体的2d图标,不仅降低了渲染压力,也减少了计算量。

优选的,本实施例中第三类元素的逻辑图标通过unity的ugui实现,首先创建canvas,设置渲染模式为worldspace,可以使图标显示在仿真实际位置。第三类元素的逻辑图标可以绑定鼠标点击选中和鼠标拖拽移动事件。当鼠标点击选中逻辑图标时,此时显示该逻辑图标对应元素的属性窗口;当鼠标拖拽移动时,逻辑图标跟随鼠标移动,用户拖拽逻辑图标操作是通过用户按下鼠标左键时记录逻辑图标被拖拽的初始坐标elementinitialpos,并发出射线,得出射线与地面接触的坐标dragstartpos,在按住左键拖动的时候持续发出射线,获取与地面接触的坐标dragcurrentpos。dragcurrentpos-dragstartpos即为鼠标拖拽的偏移量dragoffset,elementinitialpos+dragoffset即为逻辑图标拖拽时所在坐标。

当用户选中障碍物等逻辑图标需要进行缩放操作时,需要把图标也做对应缩放并且根据物体大小调整进行缩放操作时,需要把图标也做对应缩放并且根据物体大小调整物体偏移量使得图标跟仿真一一对应。

本实施例还给逻辑图标设置了是否可以拖拽、是否可以缩放、是否可以删除的属性,用来设置元素是否响应拖拽事件、是否响应缩放事件以及是否响应删除事件。

步骤三、创建仿真画面主窗口,用于显示仿真视角;同时创建次要窗口,用于显示逻辑视角。仿真画面主窗口使用仿真视角摄像机直接渲染即可,但次要窗口要与仿真画面主窗口区分开不,因此在实施时,通过unity的ugui生成仿真画面主窗口和次要窗口,最好先绑定不同于仿真画面主窗口的材质,然后通过逻辑视角摄像机渲染到该材质,最后将逻辑视角摄像的渲染目标显示到次要窗口上。如图2所示,在图1中右下角增加了逻辑视角,可以直观地表达出障碍物距离仿真车辆的距离。如图3所示,逻辑视角还可以协助手动设置行人、障碍之类,而显然,通过仿真视角无法完成这类操作。

作为本实施例的改进方案,本实施例中所述仿真画面主窗口和次要窗口可切换,即除了在仿真画面主窗口显示仿真视角,在次要窗口中显示逻辑视角外,还可以切换为在仿真画面主窗口中显示逻辑视角,在次要窗口中显示仿真视角。在实施时,可把这个操作写成一个事件绑定到按钮就可以实现一键切换视角步骤。

本实施例还可以让交通信号灯、路标等物体的逻辑图标显示在合适的位置而不是仿真的绝对位置,如图4所示,在仿真视角和逻辑视角交通信号灯均无法准确表达,在仿真画面主窗口和次要窗口切换后,通过在逻辑视角将交通信号灯(即中间方框中的四个圆灯)的逻辑图标进行偏移,可以更直观地表达交通信号灯的状况,方便测试。

本发明通过在逻辑视角上显示出仿真中对应位置对应大小的元素,且没有多余无用信息干扰,可以更直观的观察仿真情况,更容易发现和排查自动驾驶系统的问题。

本发明不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1