一文读懂自动驾驶运行设计域ODD

news2024/11/16 9:17:02

0113530830241ed72270c024ba45586f.jpeg


/ 导读 /

    

在自动驾驶技术发展如此迅速的今天,很多量产车上已经配备了多种的辅助驾驶功能,例如自适应巡航ACC、紧急制动AEB、车道居中保持LKA等等,很多的车主也都体验到了技术带给驾驶的改变。另一方面,由于现在的自动驾驶技术还处于发展阶段,无法保证自动驾驶车在任何天气条件下和任何道路环境中都可以安全行驶的。因此,要根据该系统的能力来提前设定好ODD,通过限制行驶环境和行驶方法,将有可能发生的事故防范于未然。


什么是运营设计域ODD?


首先,我们需要了解何为ODD设计?运营设计域ODD(Operational Design Domain)一词的原始定义来自SAE J3016中,描述为:


特定驾驶自动化系统或其功能专门设计的运行条件,包括但不限于环境、地理和时间限制,和/或某些交通或道路特征的存在或缺失。


简单来说,ODD就是要定义好在哪些工况下是能够自动驾驶的,脱离了这些工况,自动驾驶就不能保证工作。任何一台自动驾驶车辆,都必须有一定限定的工况。而这个工况可以很宽泛,也可以很精准,并决定了自动驾驶车辆能胜任什么样的场景。比如,一台车的自动驾驶系统只能在高速上使用,它可以自动保持车道、自动超车、自动跟车、自动让行、自动通过ETC、自动上下匝道等,但到了城市里就无法完全自动驾驶。同时,要确保自动驾驶测试和验证是完整的,至少需要确保ODD所有方面已经通过确保系统安全运行,或通过确保系统能够识别超出ODD 的范围。


cfe833be4be7c3d347174a0451b6ebc5.jpeg


因此,自动驾驶系统在启动时需要判断当前所处的环境,如是否黑夜,天气状况等等,从而判断能否启动该自动驾驶功能。在运行时需要识别是否超出该ODD,从而判断该自动驾驶系统能否安全运行。同时,在定义自动驾驶系统的设计运行条件时,需要明确自动驾驶系统能够安全启动和运行的外部环境条件。


ODD的分类框架


那么,如何对自动驾驶领域的ODD进行设计与分类呢?这方面,NHTSA给出了很好的分类标准,在《A Framework for Automated Driving System Testable Cases and Scenarios》中采用六大要素构建设计运行域,分为基础设施Physical Infrastructure、驾驶操作限制Operational Constraints、周边物体Objects、互联Connectivity、环境条件Environmental Conditions和区域Zones。


ff847d8ecf9028b98257df0df93db4e1.jpeg


通过对于这六大要素的划分,可以较为清晰地定义出自动驾驶系统可以运行的工况及范围。


在国内,由中国智能网联汽车产业创新联盟预期功能安全工作组发起,清华大学与国汽(北京)智能网联汽车研究院有限公司牵头编制的《智能网联汽车预期功能安全场景库建设报告》,也为自动驾驶ODD的设计提供了很好的参考。


其中,对智能驾驶现有感知技术、定位技术、决策方法、控制方法、人机交互、通信技术等进行了调研与局限性分析,得出对应的智能驾驶预期功能安全测试需求;并基于以上测试需求,设计了面向智能驾驶预期功能安全测试的“7层架构”格式的虚拟场景框架。


e0ac5b4030863d428696275e3c934a7d.jpeg


在该框架中,综合考虑了现有智能驾驶系统设备功能局限、算法缺陷以及人员误用等问题,并参考Pegasus项目,覆盖了传统智能网联汽车道路、交通设施、道路和设施临时改变、交通参与者、气候环境、通信信息这六层结构,为适应预期功能安全场景测试需求,在已有基础上增加了智慧交通设备,如路侧传感器、路侧通信设备、路侧信息处理单元等元素,更加清晰定义了场景分类时的参考标准。


ODD的边界如何测试?


既然ODD的划分标准与框架都有相关的标准可以清晰定义,那么在对ODD场景进行分类之后,如何去测试这些ODD的边界来判断现有的自动驾驶系统是否合格达标呢?


我们知道,自动驾驶汽车的开发满足V字开发模型,在V字开发模型中,涉及的测试方法主要包括软件在环(SIL,即software-in-loop)、硬件在环(HIL,即hardware-in-loop)、车辆在环(VIL,即vehicle-in-loop),再到最后的整车场地、道路测试等方法,涵盖了从零部件到系统再到整车的全链条验证。在测试内容方面,主要包括传感器、执行器、算法、人机界面测试以及整车功能等内容。


首先是在环测试,借助虚拟现实数据生成、传输与交互技术,模拟自动驾驶汽车在真实道路环境行驶,并通过概率分布的危险场景强化模拟方法,进行的自适应加速测试。通过在环测试,可以在大幅节约测试时间和成本的同时,给虚拟测试提供了验证结果,并为实际道路测试提供了较为真实的参考数据。


b97761dcdea26aec922ee25dd8b67074.jpeg


其次是场地测试,结合工业和信息化部、公安部、交通运输部等三部委共同发布的《智能网联汽车道路测试管理规范(试行)》,“考试项目”设置可以包含以下几个方面:一是基本交通管理设施检测与响应能力测试;二是前方车道内动静态目标(机动车、非机动车、行人、障碍物等)识别与响应能力测试;三是遵守规则行车能力测试,测试内容应包含超车、并道、通过交叉口等内容;四是安全接管与应急制动能力测试,测试内容应包含靠边停车与起步、应急车道内停车、人工接管等内容;五是综合能力测试,综合考察自动驾驶汽车对交通语言认知能力、安全文明驾驶能力、复杂环境通行能力、多参与对象协同行驶能力、网联通讯能力等内容。


通过合理设计及严格执行的测试流程,才能保证自动驾驶ODD的边界准确性,为自动驾驶在实际使用的过程中安全做出保障。


总结


总的来说,ODD的场景分类给予非L5级别的自动驾驶非常明确的场景定义以及测试标准,可以极大程度上保障驾驶员在使用这些自动驾驶功能时的安全性,而根据不同场景的业务需求进行合理地ODD设计以及测试已经成为了所有自动驾驶企业们着重关注的目标。在未来,随着自动驾驶技术的不断普及以及量产,对于安全性的关注将越来越高,保障自动驾驶功能在ODD范围内的稳定运行成为了所有车企们的共同研究课题。


- End -

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

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

相关文章

量化选股——基于动量因子的行业风格轮动策略(第2部分—策略回测)

文章目录1. 交易策略2. Backtrader回测程序3. 回测效果3.1 2020年1月1日 - 2021年1月1日3.2 2021年1月1日 — 2022年1月1日3.3 2022年1月1日 — 2023年1月1日动量因子的概述与测算,阿隆指标测算请参考:https://blog.csdn.net/weixin_35757704/article/de…

react源码解析1.开篇介绍和面试题

怎样学习react源码 作为前端最常用的js库之一,熟悉react源码成了高级或资深前端工程师必备的能力,如果你不想停留在api的使用层面或者想在前端技能的深度上有所突破,那熟悉react源码将是你进步的很好的方式。 react的纯粹体现在它的api上&a…

【神经网络】LSTM

1.什么是LSTM 长短期记忆(Long short-term memory, LSTM)是一种特殊的RNN,主要是为了解决长序列训练过程中的梯度消失和梯度爆炸问题。简单来说,相比普通的RNN,LSTM能够在更长的序列中有更好的表现。 LSTM区别于RNN地方…

Java查漏补缺(09)异常概述、Java异常体系、常见的错误和异常、异常的处理、手动抛出异常对象:throw、自定义异常

Java查漏补缺(09)异常概述、Java异常体系、常见的错误和异常、异常的处理、手动抛出异常对象:throw、自定义异常本章专题与脉络1. 异常概述1.1 什么是生活的异常1.2 什么是程序的异常1.3 异常的抛出机制1.4 如何对待异常2. Java异常体系2.1 T…

【JAVA】xxl-job服务搭建

xxl-job服务搭建 1.下载xxl-job项目 https://github.com/xuxueli/xxl-job 2.数据库表创建 3.修改配置 注意:这是两个项目,一个是xxl-job前台,一个是xxl-job执行器,找到这两个项目得配置文件,修改配置。 配置文件地址…

day54【代码随想录】二刷数组

文章目录前言一、二分查找(力扣724)二、移除元素(力扣27)【双指针】三、有序数组的平方(力扣977)【双指针】四、合并两个有序数组(力扣88)五、长度最小的子数组(力扣209&…

前端学习第二阶段-第3章 Flex 伸缩布局

3-1 移动端基础知识 01-移动端基础 02-视口 03-meta视口标签 04-物理像素与物理像素比 05-二倍图 06-背景缩放background-size 07-背景二倍图以及多倍图切图 08-移动端开发选择 09-移动端技术解决方案 10-移动端特殊样式 11-移动端技术选型 12-流式布局 3-2 移动端电商首页制作…

Python基础—while循环

(1)while循环&#xff1a; 语法格式&#xff1a; while 条件&#xff1a;   执行语句1……   执行语句2…… 适用条件&#xff1a;无限循环 死循环 while True:print(条件是真的&#xff01;)代码实例&#xff1a; i 0 # 创建一个计数的变量 while i < 5: # Truepr…

感知趋势,洞察发展:2023(第十届)趋势与预测大会成功举办

2023年2月23日&#xff0c;运联年会&#xff1a;2023&#xff08;第十届&#xff09;趋势与预测大会在深圳机场凯悦酒店成功闭幕。自2014年开始&#xff0c;“运联年会&#xff1a;趋势与预测”已经连续举办九届。这场大会&#xff0c;既是一次行业性的“年终总结”&#xff0c…

【Java开发】JUC基础 01:进程、线程、多线程

1 进程与线程1.1 进程开发写的代码称为程序&#xff0c;那么我们将程序运行起来&#xff0c;我们称之为进程&#xff1b;进程就是申请一块内存空间&#xff0c;将数据放到内存空间中去&#xff0c;是系统进行资源分配和调度的基本单位。&#x1f4cc; 程序与进程的区别程序是数…

QML Item

在QML中所有的可视项目都继承自Item&#xff0c;虽然Item本身没有可视化的外观&#xff0c;但它定义了可视化项目的所有属性。 Item可以作为容器使用&#xff1a; Item{Rectangle{id:retc}Rectangle{id:retc1}Rectangle{id:retc2}Rectangle{id:retc3}} item拥有children属性…

MyBatis学习笔记(七) —— 特殊SQL的执行

7、特殊SQL的执行 7.1、模糊查询 模糊查询的三种方式&#xff1a; 方式1&#xff1a;select * from t_user where username like ‘%${mohu}%’ 方式2&#xff1a;select * from t_user where username like concat(‘%’,#{mohu},‘%’) 方式3&#xff1a;select * from t_u…

DolphinScheduler跨版本升级1.3.8至3.0.1

DolphinScheduler跨版本升级1.3.8至3.0.1Refer背景基础环境依赖版本升级修改pom.xml问题解决MYSQL升级1.文件替换2.修改表结构t_ds_process_definitiont_ds_alertt_ds_process_instance3.时间参数修改4.数据库升级DOLPHIN安装zookeeper集群创建用户dolphinscheduler_env.shinst…

指针变量作为函数参数详解,形参和实参之间的值传递如何传递?如何改变指针变量所指向的变量?

函数的参数不仅可以是整型&#xff0c;浮点型&#xff0c;字符型等数据&#xff0c;还可以是指针类型&#xff1b;它的作用是将一个变量的地址传送到另一个函数中。 关于地址&#xff0c;指针&#xff0c;指针变量可以参考我的上一篇文章&#xff1a; 地址&#xff0c;指针&…

线程的基本方法

线程等待&#xff1a;wait方法 调用wait方法的线程会进入WAITING状态&#xff0c;只有等到其他线程的通知或程序被中断才会返回。调用wait方法后会释放对象的锁&#xff0c;因此 wait方法一般被用于同步方法或同步代码块中 。 线程睡眠&#xff1a;sleep方法 调用sleep方法会导…

Spring Boot 版本升级2.2.11.RELEASE至2.7.4

2.2.11.RELEASE > 2.7.4项目更新spring-boot-starter-parent 主依赖&#xff0c;导致项目跑不起了日志也没有输出有用信息&#xff0c;自己查看源码调试启动入口打断点&#xff0c;一步步进入方法定位项目停止代码我的项目执行到SpringApplication.class 的152行代码会停止项…

华为HCIE学习之Openstack Glance组件(glance对接swift)

文章目录一、Glance的结构二、服务部署流程三、将glance存储在swift中1、默认使用swift来存储2、指定可以存在swift中3、swift版本4、keystone的endpoint地址&#xff08;当glance去找swift时通过keystone去找&#xff09;5、租户名:用户名&#xff0c;用户必须拥有admin角色6、…

【C语言】自定义类型:结构体、枚举、联合

目录 1.结构体 1.1结构体类型 1.2结构体的自引用 1.3结构体的初始化 1.4结构体内存对齐 //对齐 //offsetof //修改默认对齐数 1.5结构体传参 2.位段 2.1位段的内存开辟 2.2位段的内存分配 3.枚举 4.联合&#xff08;共用体&#xff09; //判断大小端 1.结构体…

【GO】k8s 管理系统项目23[前端部分–工作负载-Pod]

k8s 管理系统项目[前端部分–工作负载-Deployment] 1. 代码部分 1.1 准备工作 由于Pod页面和Deployment内容差不多.那么就直接把Deployment的内容复制过来.再做修改. 替换Deployment为Pod替换Deploy为Pod替换deployment为pod替换deploy为pod禁用新增的按钮,删除新增方法,表…

django后端服务、logstash和flink接入VictoriaMetrics指标监控

0.简介 通过指标监控可以设置对应的告警&#xff0c;快速发现问题&#xff0c;并通过相应的指标定位问题。 背景&#xff1a;使用的 VictoriaMetrics(简称 VM) 作为监控的解决方案&#xff0c;需要将 django 服务、logstash 和 flink 引擎接入进来&#xff0c;VM 可以实时的获…