自动驾驶---聊聊传统规控和端到端
1 背景
在自动驾驶领域中,端到端模型的兴起确实对传统的规划控制方法(笔者并不同意网上以Rule-Base称呼传统规控,传统的规控其实也使用了很多优化算法和博弈算法)产生了挑战,但这就意味着传统规控方法就完全没有应用了吗?这里笔者画下一个问号。同时模型的应用和发展也对传统的自动驾驶工程师的职业发展也产生了挑战。
从各家用户发布的视频来看,经常会有车辆在开启智能驾驶功能下,有一些不友好的行为,比如闯红灯、压实线变道、不礼让行人等。如果模型无法输出轨迹或者输出的轨迹不合理,甚至有安全风险时,又该如何处理呢?带着这几个问题,进入本篇博客的内容。
2 端到端
从特斯拉开始,各家智驾公司都开始了端到端的量产工作,那么端到端到底有哪些优势呢?很多公司花重金挖到相关的人才研究端到端,端到端的概念并不是最近几年才出现,在上个世纪就有相关研究了,只不过随着技术的发展以及大语言模型在前几年的成功应用,在自动驾驶领域也受到了高度重视,并且特斯拉珠玉在前,证明了该方案的可行性以及可靠性。
2.1 优势
端到端模型的优势总结下来有以下几点:
(1)结构上的简化
- 端到端模型通过直接从原始传感器数据到驾驶决策,甚至到轨迹层或者控制层,如此简单的映射,简化了自动驾驶系统的结构,提高了信息传达的效率。
- 该模型能够实现数据的无损传递,避免了传统模块化方法中数据在不同模块间传递时可能出现的信息损失。
(2)学习能力强
- 端到端模型通过深度学习,能够更好地处理复杂的交通环境和长尾场景。
- 减少人为偏见:通过学习数据中的模式,减少了人为偏见的影响,使系统更加依赖于数据驱动的决策。
- 全局优化:在整个流程中实现全局优化,而不是在独立的模块中进行局部优化,从而提高了整体性能。
- 数据驱动的决策:通过大规模数据训练,系统能够学习到复杂的驾驶场景和行为。
- 提高系统的泛化能力:能够从大量多样化的数据中学习,提高在未见过的场景中的表现。
(3)减少标注
- 降低对数据标注的依赖:系统可以直接从原始传感器数据中学习,而不需要详细的中间标注,同时也减少数据信息的丢失。
2.2 不足
模型的发展,主要依赖于算力和数据,但这两者都是比较烧钱的。算力依赖于大量的GPU或者其它加速计算单元,数据需要流量和车辆的保有量。
- 数据需求极高:端到端系统的训练需要大量的驾驶数据,包括多种驾驶场景、异常情况和极端条件,这对企业的数据收集、处理和存储能力提出了极高的要求。
- 决策过程不透明:由于端到端系统依赖于深度学习模型,其决策过程难以解释,存在“黑箱”问题,这可能带来安全性和合规性方面的担忧。
- 泛化能力不足:受训练数据局限,当系统遇到未曾见过的场景或条件时,可能无法做出正确的决策。
- 安全性问题:罕见的corner case,特别是有安全风险的case很少见,如何收集此类数据并泛化给模型训练成为一个待解决的问题。
3 传统规控
虽然大模型的发展如火如荼,但是据笔者了解,目前并没有一家完全舍弃传统规控,比如在轨迹优化层。传统规控方法在未来的发展中仍有其价值,当然也存在一些弊病。
3.1 优势
(1)安全兜底
- 安全兜底在笔者认为,就是对端到端模型最重要的补充,目前看到的市面上端到端算法(不论是一段式还是多段式)模型无法解决的场景,都需要人为接管。如果模型给出的轨迹不安全呢,又该如何处理?
- 在安全兜底的问题上,笔者认为是传统规控的价值所在,不管是正常的fallback,还是紧急情况下的AEB,都需要保证用户的生命和财产安全。
(2)可解释性
- 尽管端到端模型在某些情况下表现出色,但传统规控方法在可解释性、安全性和可靠性方面仍具有优势。
- 在某些特定的驾驶场景或应用中,传统规控方法可能更简单、更直接、成本更低。
- 可解释性强:传统规控的决策过程相对清晰易懂,工程师可以明确地知道每个控制环节的依据和逻辑。例如在路径规划中,基于图搜索算法(如 A * 算法)的路径规划或者基于优化思想的算法,其搜索/优化过程和结果都可以直观地进行分析和验证。这种可解释性使得在出现问题时,能够更容易地进行故障排查和修复,从而提高整个系统的可靠性和安全性。
(3)处理长尾场景
-
传统 Planner 可以针对罕见或极端场景设计专门的规则,弥补大模型的不足。
3.2 不足
- 依赖人工设计:传统规控方法中的许多规则和算法需要依赖人工进行设计和调整。
- 难以应对复杂场景:在面对高度复杂和多变的驾驶场景时,传统规控方法可能无法做出及时和准确的决策。
4 未来发展
随着技术的发展和自动驾驶应用场景的不断拓展,端到端和传统规控方法之间的融合趋势日益明显。一些自动驾驶系统开始采用混合策略,将两者相结合以充分利用各自的优势。在需要高度精确性和安全性的场景中,传统规控方法可能更为可靠;而在一些相对简单和标准化的场景中,端到端方法则可能表现出更高的效率和适应性。因此,两者在自动驾驶系统中具有互补性。
(1)两者的结合
为了兼顾安全性和灵活性,自动驾驶系统通常采用 分层架构,将大模型与传统 Planner 结合使用:
-
大模型和传统 Planner 并行运行,相互验证和补充。
-
当大模型的输出不符合安全标准时,传统 Planner 接管控制。
-
根据场景复杂度和安全性需求,动态切换大模型和传统 Planner 的主导权。
(2)未来应用
- 随着技术的发展,端到端模型可能会逐渐取代一些传统的规控任务,但在可预见的几年,传统规控方法仍将在自动驾驶系统中发挥作用,特别是在需要高可靠性(安全性)的场合。
- 当高低速的端到端紧急刹停(或者称之为高低速一体的AEB)逐渐成熟,可以逐渐替代传统planner,安全性也可由大模型替代。
端到端模型在自动驾驶中的应用前景广阔,但传统规控方法仍将在确保系统安全性和可靠性方面发挥关键作用。
5 总结
未来自动驾驶系统的发展可能会趋向于将两者相结合,形成更加灵活和多样化的策略。通过不断优化算法和模型、加大数据收集和训练的力度,以及加强与传统自动驾驶技术的融合等措施,端到端技术有望在未来自动驾驶领域中发挥更加重要的作用,但车上的大模型完全取代传统规控方法还需要经历一个复杂的过程。
相关文章:

自动驾驶---聊聊传统规控和端到端
1 背景 在自动驾驶领域中,端到端模型的兴起确实对传统的规划控制方法(笔者并不同意网上以Rule-Base称呼传统规控,传统的规控其实也使用了很多优化算法和博弈算法)产生了挑战,但这就意味着传统规控方法就完全没有应用了…...

node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码
node.js html Sealos容器云 搭建简易多人实时聊天室demo 带源码 前言功能介绍(demo演示)sealos官网配置node.js 编写服务端代码前端ui 调用接口整体项目目录部署到服务器 前言 hello哦盆友们,这次我们来十几行代码做一个超简单的多人聊天…...

OpenFeign远程调用返回的是List<T>类型的数据
在使用 OpenFeign 进行远程调用时,如果接口返回的是 List 类型的数据,可以通过以下方式处理: 直接定义返回类型为List Feign 默认支持 JSON 序列化/反序列化,如果服务端返回的是 List的JSON格式数据,可以直接在 Feig…...

PCL 计算多边形的面积【2025最新版】
目录 一、算法原理1、概述2、主要函数3、函数源码二、代码实现三、结果展示博客长期更新,本文最近更新时间为:2025年1月17日。 一、算法原理 1、概述 根据给定的多边形的点云计算多边形的面积 A r e a = 1 2 ∑...

著名大模型评测榜单(不同评测方式)
在评估大语言模型的性能时,一种主流的途径就是选择不同的能力维度并且构建对应的评测任务,进而使用这些能力维度的评测任务对模型的性能进行测试与对比。由大型机构或者研究院所排出榜单。 评测指标 不同评测任务有不同的评指标,衡量模型的…...

国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用
课程名称 《Deepseek人工智能大模型实践应用》 课程目标 全面了解Deepseek人工智能大模型的技术原理、功能特点及应用场景。 熟练掌握Deepseek大模型的提示词工程技巧,能够编写高质量的提示词。 掌握Deepseek大模型在办公、营销等领域的应用方法,提升…...

【AIGC】冷启动数据与多阶段训练在 DeepSeek 中的作用
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯冷启动数据的作用冷启动数据设计 💯多阶段训练的作用阶段 1:冷启动微调阶段 2:推理导向强化学习(RL࿰…...

如何打造一个更友好的网站结构?
在SEO优化中,网站的结构往往被忽略,但它其实是决定谷歌爬虫抓取效率的关键因素之一。一个清晰、逻辑合理的网站结构,不仅能让用户更方便地找到他们需要的信息,还能提升搜索引擎的抓取效率 理想的网站结构应该像一棵树,…...
【ROS2】RViz2自定义面板插件(rviz_common::Panel)的详细步骤
【ROS】郭老二博文之:ROS目录 1、简述 RViz2 的插件基于 ROS2 的插件库(pluginlib)机制,通过动态加载共享库实现功能扩展。 注意:RViz2 使用 QT 作为 UI 框架,虽然 QT 也有插件机制,但是 RViz2 并没有使用QT的插件机制,而是通过 pluginlib 加载功能模块来实现。 2、…...

漏洞分析 Spring Framework路径遍历漏洞(CVE-2024-38816)
漏洞概述 VMware Spring Framework是美国威睿(VMware)公司的一套开源的Java、JavaEE应用程序框架。该框架可帮助开发人员构建高质量的应用。 近期,监测到Spring Framework在特定条件下,存在目录遍历漏洞(网宿评分&am…...
《手札·避坑篇》2025年传统制造业企业数字化转型指南
一、引言 在数字化浪潮的推动下,传统制造业企业正加速向智能化、数字化转型。开源软件技术与制造MES(制造执行系统)产品的结合,为企业提供了高效、灵活且低成本的转型路径。本指南旨在为传统制造业企业的信息化负责人提供一套完整的数字化转型方案,助力企业实现高效、智能…...
MySQL中DDL操作是否支持事务
MySQL中DDL不支持事务。 传统MySQL(5.7及以前版本): DDL操作不支持事务执行DDL操作时会隐式提交当前会话的事务无法回滚DDL操作 MySQL 8.0版本: 引入了原子DDL特性(Atomic DDL)DDL操作变为原子性的&…...

GWO优化决策树回归预测matlab
灰狼优化算法(Grey Wolf Optimizer,简称 GWO)是一种群智能优化算法,由澳大利亚格里菲斯大学的 Mirjalii 等人于 2014 年提出。该算法的设计灵感源自灰狼群体的捕食行为,核心思想是模仿灰狼社会的结构与行为模式。 在本…...

掌握Spring @SessionAttribute:跨请求数据共享的艺术
SessionAttribute注解在Spring中的作用,就像是一个“数据中转站”。 在Web应用中,我们经常需要在多个请求之间共享数据。比如,用户登录后,我们需要在多个页面或请求中保持用户的登录状态。这时,SessionAttribute注解就…...

python读取Excel表格内公式的值
背景:在做业务周报的时候,有一个Excel模板,表里面包含了一些公式,dataframe写入到Excel的时候,有公式的部分通过python读出来的结果是None,需要进行优化参考链接: 如何使用openpyxl读取Excel单元…...
第三十八章:阳江自驾之旅:挖蟹与品鲜
经历了惠州海边那趟温馨又欢乐的自驾之旅后,小冷和小颖心中对旅行的热情愈发高涨。闲暇时,两人总会坐在客厅里,翻看着旅行杂志,或是在网上搜索各地的美景,那些充满魅力的地方不断吸引着他们,也让他们对下一…...

C++小等于的所有奇数和=最大奇数除2加1的平方。
缘由 三种思路解题:依据算术推导得到一个规律:小等于的所有奇数和等于最大奇数除以2加1的平方。将在后续发布,总计有十种推导出来的实现代码。 int a 0,aa 1,aaa 0;cin >> a; while (aa<a) aaa aa, aa 2;cout << aaa;i…...

设置IDEA的内存大小,让IDEA更流畅: 建议设置在 2048 MB 及以上
文章目录 引言I 更改内存设置基于窗口界面进行内存设置修改内存配置文件II IDEA中的一些常见问题及其解决方案引言 方式一:基于窗口界面进行内存设置方式二:修改内存配置文件I 更改内存设置 基于窗口界面进行内存设置 打开IDEA,上方菜单栏 Help > Change Memory Settin…...
Ranger Hive Service连接测试失败问题解决
个人博客地址:Ranger Hive Service连接测试失败问题解决 | 一张假钞的真实世界 异常信息如下: org.apache.ranger.plugin.client.HadoopException: Unable to connect to Hive Thrift Server instance.. Unable to connect to Hive Thrift Server inst…...
车机音频参数下发流程
比如以audioControlWrapper.setParametersToAmp(keyPairValues); 下发banlance为例,链路如下 hal层 1. AudioControl.cpp hardware\interfaces\automotive\audiocontrol\aidl\default\AudioControl.cpp ndk::ScopedAStatus AudioControl::setParametersToAmp(co…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...

Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...