鉴源实验室|自动驾驶仿真测试技术分析

01

引言

随着科技的不断发展,自动驾驶技术逐渐成为汽车行业的热门话题。然而,要将自动驾驶车辆投放到真实道路上之前,必须进行广泛的测试,以确保其在各种情况下都能安全可靠地运行。自动驾驶车辆的测试是一个复杂而昂贵的过程。在真实道路上进行测试存在许多挑战,包括安全性、成本和时间。为了克服这些问题,仿真测试技术不失为一种有效的解决方法。

自动驾驶仿真测试是通过虚拟环境来模拟各种驾驶场景,以评估自动驾驶系统的性能。自动驾驶汽车的仿真测试的核心技术点主要可以分为虚拟场景仿真、感知系统仿真、车辆动力学仿真以及云加速仿真[1]。

02

虚拟场景仿真

自动驾驶汽车的仿真测试,首先需要模拟构建出一个逼真的虚拟场景,而场景的构建可以分为静态场景构建和动态场景构建两个层面[2]。

2.1 静态场景构建

静态场景主要用于模拟出与车辆行驶相关的静态元素,其中包含的静态元素有道路、建筑、交通标志等。构建静态场景的方法可以采用基于高精度地图及三维重建技术[3]。基于高精度地图及三维重建技术来构建场景,首先需要采集点云、全景图、测绘矢量等非结构化的测绘数据,并将测绘数据结构化,构建厘米级的高精度地图,其中包含路面、道路标线、交通标识等信息,之后以此为基础,使用三维建模软件建立基础设施与周边环境的可视化数字模型。

图1 静态场景(来源于Carsim的demo)

2.2 动态场景构建

动态场景包括天气变化(雨、雪、雾等天气状况)、时间变化(不同时间和季节的光照条件等)、交通流(交通参与者的行为,例如机动车行为、非机动车行为、行人行为)等动态要素。动态场景的构建是在静态场景的基础上,还原出场景中的动态元素,并且使得这些元素的动作及其产生的影响严格遵循现实世界的物理规律以及行为逻辑。动态场景的构建,可以借助物理引擎、AI Agent 等来实现。

物理引擎可以模拟出物体在真实世界中的物理规律,赋予真实的物理属性的方式来计算运动和碰撞行为等。物理引擎可以模拟刚体(硬物体)和软体(如布料、液体等)的运动和变形,从而更全面地模拟多样化的物体行为。

AI Agent (人工智能体)是一种能够感知环境、进行决策和执行动作的智能实体。在虚拟场景中,AI Agent 可以做出决策,选择合适的行为,并规划最优路径以实现目标;可以模拟对环境的感知能力,例如通过传感器获取周围物体的信息,以便做出合适的决策;可以模拟智能体之间的协作行为,例如避让、跟随、协同工作等。此外,Agent AI还具备学习能力,能够根据经验调整其行为。

03

感知系统仿真

自动驾驶车辆依赖于各种传感器,如摄像头、雷达和激光雷达等。仿真测试技术需要能够准确模拟这些传感器的输入,以确保自动驾驶系统在虚拟环境中能够正确地感知和理解周围的环境。传感器仿真指的是数学模型和计算机算法来模拟和重现真实世界中传感器所能感知的物理现象的过程[4]。它可以在虚拟环境中重现传感器的工作情况,从而在没有实际硬件的情况下评估和测试传感器的性能。

3.1 摄像头仿真

摄像头仿真的一般方法是基于环境物体的几何空间信息构建对象的三维模型。根据物体的真实材质与纹理,并通过计算机图形学对三维模型添加颜色与光学属性等,来模拟实现图像合成。摄像头仿真通过坐标系转换的方法,将三维空间中的点通过透视关系变换为图像上的点。

3.2 毫米波雷达仿真

雷达(无线电探测与测距)仿真是一种模拟雷达系统操作的过程,它可以重现雷达波的传播、目标的检测和回波的分析。雷达仿真一般会根据配置的视场角和分辨率信息,向不同方向发射一系列虚拟连续调频毫米波,并接收目标的反射信号。不同车辆的雷达回波强度可使用微表面模型能量辐射计算方式,由车辆模型以及车辆朝向、材质等计算。

3.3 激光雷达仿真

激光雷达(或LiDAR,Light Detection and Ranging)仿真则是模拟使用激光扫描来构建物体或环境的三维图像的过程。激光雷达传感器仿真,需要准确模拟出发射激光束并测量其反射,生成点云数据。生成模拟的激光雷达点云数据,其中包含了周围环境中的物体位置和形状信息。

04

车辆动力学仿真

自动驾驶汽车在仿真测试中,需要借助车辆动力学模型来模拟车辆的横向和纵向运动控制,还原出车辆在真实道路上各种物理条件下的行为[5]。复杂的车辆动力学模型,可以保证车辆有良好的仿真精度,使仿真车辆的行驶反应更贴近真实行为。因此,车辆动力学仿真,可以逼真地模拟出车辆的运动、碰撞检测和处理,以及不同路面条件对车辆行驶的影响等等。

车辆动力学模型包含了车体、悬架系统、转向系统、制动系统、动力系统、 传动系统等多个部分的模型,通过将车辆动力学模型实例参数化之后,就可以实现对仿真车辆模型的转向、加速、制动等行为的模拟和控制。

借助专业的车辆动力学仿真软件可以模拟出高精度的车辆动力学模型,同时,一些强大的车辆动力学仿真软件还可以提供车辆可视化和驾驶场景搭建功能。目前,专业的车辆动力学仿真软件,有 CarSim、Prescan、CarMaker、VI-Grade、VeDYNA 和 PanoSim 等,仿真平台可以接入这些成熟的车辆动力学模型,以获得比较逼真的行驶控制仿真效果。

图2 车辆动力学模型(来源于Carsim的demo)

05

云加速仿真

自动驾驶仿真测试系统在进行仿真任务时需要访问大量采集或者生成的数据,并根据生成的数据利用 CPU 和 GPU 资源对数据进行再处理并还原,或者对已经结构化的数据进行 GPU 渲染再现。这些仿真任务都需要依赖强大的计算和存储能力,而借助云加速仿真的技术,可以高效执行大规模的仿真任务。

云加速仿真是指利用云计算平台的强大计算和存储能力,通过将仿真任务迁移到云端来加速仿真过程。这种方法可以显著提高仿真效率,减少仿真时间,同时降低了对本地硬件资源的依赖。同时,云加速仿真可以通过并行化和分布式计算来加速任务的执行。云平台提供了强大的计算资源,可以同时处理多个任务或者将一个大任务分解成多个子任务并行执行,从而提高仿真效率。

06

小结

自动驾驶仿真测试技术在推动自动驾驶技术的发展中发挥着重要作用。通过在虚拟环境中模拟各种复杂情景,该技术降低了测试成本、提高了安全性,并加速了自动驾驶系统的迭代和创新。然而,仍然有一些挑战需要克服,如提升虚拟场景的逼真度、提高传感器模拟精度等。未来,随着技术的不断发展,自动驾驶仿真测试技术将继续演进,为自动驾驶技术的商业化和普及做出更大的贡献。

参考文献:

[1]中国电动汽车百人会. 中国自动驾驶仿真蓝皮书 [R]. (2020) .

[2]朱冰,张培兴,赵健,陈虹,徐志刚,赵祥模,邓伟文.基于场景的自动驾驶汽车虚拟测试研究进展[J].中国公路学报,2019,32(06):1-19.DOI:10.19721/j.cnki.1001-7372.2019.06.001.

[3]Huang W L, Wang K, Lv Y, et al. Autonomous vehicles testing methods review[C]//2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC). IEEE, 2016: 163-168.

[4]Rosique F, Navarro P J, Fernández C, et al. A systematic review of perception system and simulators for autonomous vehicles research[J]. Sensors, 2019, 19(3): 648.

[5]Schöner H P. Simulation in development and testing of autonomous vehicles[C]//18. Internationales Stuttgarter Symposium: Automobil-und Motorentechnik. Springer Fachmedien Wiesbaden, 2018: 1083-1095.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/634440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

细说CubeIDE——之建立一个工程

博主今天给大家带来新的一个软件,由于公司要上市,盗版软件不让装,IAR,KEIL律师函争相投递,博主只能老老实实把软件卸掉,苦逼工作还得干,怎么办? 你说怎么办?怎么办&#…

常用中间件漏洞

IIS6 IIS7 安装 控制面板-----打开关闭windows功能 添加角色-----添加IIS 启动之后访问localhost 复现 服务器换成IIS7 访问报错 大概就是缺少CGI模块 问题解决 添加php-cgi的路径 添加脚本映射 修改php.ini文件 将 cgi.fix_pathinfo1 然后设置一个图片 访问 在后缀加上/.…

如何使用JS逆向爬取网站数据

引言: JS逆向是指利用编程技术对网站上的JavaScript代码进行逆向分析,从而实现对网站数据的抓取和分析。这种技术在网络数据采集和分析中具有重要的应用价值,能够帮助程序员获取网站上的有用信息,并进行进一步的处理和分析。 基…

Linux第29步_安装“Notepad++”软件

STM32CubeProgrammer脚本文件的后缀为“.tsv”,ST公司官方也叫做FlashLayout。在烧写“TF-A固件”之前,我们需要用“Notepad”软件打开“后缀为.tsv”的脚本文件,根据需求决定哪些文件需要更新,设置好这个脚本文件。 .tsv是文本格…

使用延迟队列处理超时订单

延迟队列是一种更为高效和可控的方式来处理定时任务,特别是在需要处理超时订单这类场景时。延迟队列可以让你将任务按照延迟时间有序地执行,而不需要通过轮询的方式频繁地检查订单表。 在Java中,可以使用Delayed接口和DelayQueue来实现延迟队…

C++ 之LeetCode刷题记录(十三)

😄😊😆😃😄😊😆😃 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 70. 爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可…

浏览器的内核以及区别?

浏览器内核是指浏览器中负责解析和渲染网页的核心模块。它是浏览器的重要组成部分,负责将HTML、CSS、JavaScript等网页资源转化为可视化的网页内容。 常见的浏览器内核有两种:Trident(或称为MSHTML)和Gecko,它们分别由…

【MySQL自身的性能优化】InnoDB 的 Buffer Pool

这里写目录标题 一、引入缓存的重要性二、InnoDB 的 Buffer Pool1. Buffer Pool 内部组成2. free 链表管理空闲页3. flush 链表管理脏页4. LRU 链表提高缓存命中那咱需要咋地解决预读问题呢?那咱需要咋地解决 Buffer Pool 污染问题呢? 5. 脏页什么时候被…

henauOJ 1113: 计算x的n次方

题目描述 给定x和n&#xff0c;计算出x^n。 0<x<10,0<n<9; 要求定义一个函数:int pow1(int x,int n);//返回x^n。 本题只允许提交函数及其内容&#xff0c;提交多余内容会编译错误 C/C函数原型 int pow1(int x,int n); Java函数原型 public static int pow1(int…

94.乐理基础-记号篇-装饰音记号(二)助音的四种类型

内容参考于&#xff1a;三分钟音乐社 上一个内容&#xff1a;93.乐理基础-记号篇-装饰音记号&#xff08;一&#xff09;级进、跳进、经过音、辅助音-CSDN博客 当前写的助音是扩展的辅助音的内容&#xff0c;所以要先看上一个内容 助音的四种类型&#xff1a;下方的三个辅助…

操作系统一些面试

你这个请求队列是属于一写多读对吧&#xff0c;怎么解决冲突的&#xff1f; 可以采用双buffer或者说双缓冲区&#xff0c;一个缓冲区用来写&#xff0c;一个缓冲区用来读&#xff0c;采用交换指针的方法来进行缓存区的交换&#xff0c;这样交换效率是O(1)的&#xff0c;但是交…

自己是如何使用单元测试

前言 自己是如何使用单元测试 进行单元测试能够让我们在编写方法的具体实现代码后&#xff0c;能清晰地看到其是否能实现预期的功能&#xff0c;有助于我们及时修正自己方法中存在的bug&#xff0c;以免在后续使用到某方法时出现意想不到的错误。 一、引入单元测试所使用的依赖…

【ARMv8M Cortex-M33 系列 7.2 -- HardFault 问题定位 1】

文章目录 问题背景堆栈对齐要求Cortex-M33 的 FPU 功能 问题背景 rt-thread 在PendSV_Handler退出的时候发生了HardFault_Handler是什么原因&#xff1f;且 LR 的值为0xfffffffd 堆栈对齐要求 在 ARM Cortex-M 架构中&#xff0c;堆栈指针 (SP) 必须始终保持 8 字节对齐。这…

米贸搜|Facebook新手请查收!如何在FB上定位到B类受众?

一、确定目标受众和营销目标 在利用Facebook进行获客之前&#xff0c;B2B企业需要首先明确目标受众和营销目标。目标受众是指潜在的客户或合作伙伴&#xff0c;而营销目标可能是增加销量、提高品牌知名度、获取客户线索等。 Facebook的受众定位可以分成三大类&#xff1a;人口…

对象存储, 开源MinIO docker-compose.yml 文件

文章目录 python SDK 文档地址&#xff1a;docker-compose.yml 文件控制台使用&#xff1a;应用服务中使用样例&#xff1a; python SDK 文档地址&#xff1a; https://min.io/docs/minio/linux/developers/python/API.html docker-compose.yml 文件 version: 3services:min…

Github项目无法通过 ssh 连接,以前正常使用的,现在无法 push pull

Github项目无法通过 ssh 连接&#xff0c;以前正常使用的&#xff0c;现在无法 push pull 一、问题描述 2024-01-18 这两天遇到一个问题&#xff0c;就是以前正常使用的项目&#xff0c;现在无法 push 或 pull 了。 我所有的项目都是以 gitgithub.com:KyleBing/xxxx.git 的方…

C语言中的浮点数存储

首先明确一个概念&#xff1a;C语言中整形是按照二进制存储在内存中&#xff0c;浮点型是按科学计数法存储在内存中&#xff08;本质上存储的还是二进制数据0和1&#xff09;。 如果没看懂这句话&#xff0c;没关系&#xff01;看完以下正文&#xff0c;你就会豁然开朗&#x…

ACL访问控制列表

ACL&#xff1a;访问控制列表 在路由器流量进或出接口上&#xff0c;匹配流量产生动作-- 允许 拒绝 &#xff08;访问限制&#xff09;定义感兴趣流量--- 匹配流量后&#xff0c;将流量提交给其他的协议进行策略 匹配规则&#xff1a; 至上而下逐一匹配&#xff0c;上条匹配按…

【算法详解】力扣136.只出现一次的数字

一、题目描述 力扣链接&#xff1a;力扣136.只出现一次的数字 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算…

Qt简单使用与初识

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…