萝卜快跑和端到端的自动驾驶(1)
先看一篇论文
2311.18636 (arxiv.org)
这篇论文里有一个非常好的图

比较了一下模块化任务(级联任务)和端到端自动驾驶的区别
首先什么叫模块化任务(级联)
如上图所示,左边的方块中的子方块,是展示了自动驾驶获取数据的途径,这里包括:
- LiDARs(激光雷达):使用激光束创建周围环境的高分辨率3D地图。它们对于检测障碍物、测量距离和提供详细的空间信息至关重要。
- Cameras(摄像头):用于视觉感知,帮助系统识别交通信号、道路标志、车道标记以及其他车辆和行人。摄像头提供的高分辨率图像对于目标检测和分类非常重要。
- RADARs(雷达):使用无线电波检测物体并测量其距离和速度。雷达在恶劣天气条件下(如雾或大雨)尤其有用,因为在这些条件下摄像头和激光雷达可能表现不佳。
- HD Maps(高精度地图):提供详细的道路信息,包括车道结构、交通标志和地理特征,帮助车辆准确定位和导航。
- IMU(惯性测量单元):使用加速度计和陀螺仪测量车辆的加速度和角速度,提供精确的运动信息,有助于定位和稳定控制。
- GPS(全球定位系统):提供车辆的地理位置信息,结合其他传感器数据,实现厘米级的精确定位。
以上的各种sensor其实可以看出来大部分的自动驾驶的输入其实天生就是多模态的,但是可以任务比如纯视觉方案(特斯拉)它就不是多模态的吗?
这是一个错误的理解,特斯拉的纯视觉方案在训练时有text指令的输入,所以它也是多模态的。
或者目前可了解到的,只有特斯拉实现了端到端的模型,是不是只有纯视觉方案才有资格称得上端到端?这些概念都是错误的。
这个也是不正确的理解,那让我们看一下怎么定义端到端。

如图所示,传统的自动驾驶的流程是由多个模型组成的(有些模块甚至不能严格成为模型),比如上面的一个概述:
- Perception(感知):感知模块负责处理来自各种传感器的数据(如摄像头、雷达和激光雷达),识别并理解车辆周围的环境。这包括检测其他车辆、行人、道路标志、交通信号灯等。
- Localization(定位):定位模块通过融合GPS、高精度地图、IMU(惯性测量单元)等数据,确定车辆在环境中的准确位置。这是确保车辆能够正确导航和执行路径规划的基础。
- Tracking(跟踪):跟踪模块持续监控并预测周围移动物体的位置和速度,例如其他车辆和行人,以便系统能够做出及时和准确的反应,避免碰撞。
- Path Planning(路径规划):路径规划模块基于感知和定位信息,计算车辆从当前地点到目的地的最优路径。该路径需要考虑道路状况、交通法规和动态障碍物等因素。
- Decision Making(决策):决策模块根据感知、定位和路径规划的信息,决定车辆的具体行动。例如,选择何时变道、超车或停车等待,这些决策都需要综合考虑安全性和效率。
- Controls(控制):控制模块将决策模块的输出转换为具体的车辆操作指令,如转向、加速、制动等。确保车辆按照规划的路径和速度安全行驶。
这些模块协同工作,构成了一个完整的自动驾驶系统,能够感知环境、确定位置、规划路径、做出决策并执行控制指令,实现自动驾驶的功能。
这些模块,各自有各自的训练任务,而且后一个模块,一般依赖于前一个模块的输出质量。
比如如果你感知做的很垃圾,那么很不幸的是,你的跟踪,路径规划,决策啥的,都会受到影响。
另外对于开发模式来讲,传统的自动驾驶,感知肯定是感知组,拿CV模型做一些工作。
那么决策组里面,很多根本和大模型是不沾边的,是基于非常多人的一个team。来写各种驾驶情况下的policy,通过tree或者其他的可解释的算法来对感知送过来的output来进行决策。
那么对于端到端的自动驾驶来讲,这些以上的模块绝大多数都集成在一个模型里,大概这样

一般来讲目前能做到纯粹上面的那种模式,直接sensor拿到input,进一个端到端的模型,最后直接出控制信号,让比如方向盘刹车来觉得的这种少之又少,相当于你直接拿encoder的各种模态的外界信息,去做一个loss function为控制信号的模型,这个多少还有点那个的,至少损失函数不是特别好定义(你整个车多少控制单元呢)。
相当而言,下面的这个方式,比较好容易被接受,就是把感知,预测,决策这些模块在一个模型了,planning和control这些不用放在模型里执行,在模型外,可以写一些兜底的策略,比如紧急避障,紧急刹车,限速啥的。(据传闻,特斯拉的FSD12,现在主要是这个模式,应该也没做到第一种形态)
我刚到西安,我估计这个内容很多人感兴趣,但是确实写着写着有点累了,先写到这吧,当个连载来更,萝卜快跑,fsd12啥的后面写
相关文章:
萝卜快跑和端到端的自动驾驶(1)
先看一篇论文 2311.18636 (arxiv.org) 这篇论文里有一个非常好的图 比较了一下模块化任务(级联任务)和端到端自动驾驶的区别 首先什么叫模块化任务(级联) 如上图所示,左边的方块中的子方块,是展示了自动驾驶获取数据的途径,这里包括&…...
通信原理学习笔记
一个手机通话需要经过下面三个网络 类别接入网(Access Network)承载网(Transport Network)核心网(Core Network)定义连接终端用户与电信网络的部分。在接入网和核心网之间传输数据的网络。处理、交换和管理…...
系统编程---day4
1. 链接文件 命令行: ln -s 文件名 softlink 1.1 symlink int symlink(const char *oldpath, const char *newpath); 功能:创建一个链接向oldpath文件的新符号链接文件 参数:oldpath:被链接向的文件的路径 newpath:新符号链接文件 返回值:成功返回0,失败返回…...
01:电容的什么,各类电容的优缺点
1.电容是什么? 电容是由两块不连通的导体,已经中间的不导电材料组成 电容结构: 1.2电容的容量计算公式 C ε s d \displaystyle\frac{εs}{d} dεs 1.3常见电容的种类 1.4各类电容的特点...
Android+Jacoco+code-diff全量、增量覆盖率生成实战
背景 主要是记录下Android项目使用jacoco生成代码覆盖率的实战流程,目前已完成全量覆盖方案,仅使用jacoco就能实现; 由于我们的Android端是使用Java和kotlin语言,目前增量的方案code-diff仅针对Java代码,卡在kotlin文件的分析&am…...
乌龟对对碰在线版
爆肝两天使用vue开发了一个在线版的乌龟对对碰小游戏之幸运对对碰。没有找到合适的乌龟素材,现在使用小兔子代替。 体验地址:幸运对对碰 | 乌龟对对碰小游戏 之前的python版本的乌龟对对碰:写文章-CSDN博客 乌龟对对碰-幸运对对碰...
如何更改select option边框颜色和选中的颜色
<!doctype html> <html> <head> <meta charset"utf-8"> <title>如何更改select option边框颜色和选中的颜色</title> </head><style>ul{border: 1px solid #000000;width: 500px;height: auto;background-color: aq…...
6. 数据结构—串的匹配算法
1.BF算法(暴力算法) //模式匹配(暴力算法) int Index(SString S,SString T){int i1,j1;while(i<S.length&&j<T.length){if(S[i]T[i]){i;j;}else{ii-j2; //最开始匹配的位置的后一个j1; //从头匹配 }}if(j>T.length)return i-T.length;return return 0…...
九大服务架构性能优化方式
来源:九大服务架构性能优化方式 目录 性能优化九大方式: 缓存 使用什么样的缓存 缓存常见问题 缓存淘汰 缓存数据一致性 并行化处理 批量化处理 数据压缩合并 无锁化 顺序写 分片化 避免请求 池化 异步处理 总结 最近做了一些服务性能优…...
【RabbitMQ】 相关概念 + 工作模式
本文将介绍一些MQ中常见的概念,同时也会简单实现一下RabbitMQ的工作流程。 MQ概念 Message Queue消息队列。是用来存储消息的队列,多用于分布式系统之间的通信。 系统间调用通常有:同步通信和异步通信。MQ就是在异步通信的时候使用的。 同…...
嵌入式学习 ——(Linux高级编程——进程)
目录 一、进程的含义 二、进程和程序的区别 三、进程的作用 四、进程的状态 五、进程的调度与上下文切换 六、查询进程相关命令 七、fork()函数 八、getpid()和getppid()函数 九、面试题解析: 十、应用场合及测试 一、进程的含义 进程指正在运行的程序&a…...
C++练习备忘录
1. 保留两位小数输出格式 #include <iostream> #include <iomanip> using namespace std; int main() {double S 0;S (15 25) * 20 / 2;cout << fixed << setprecision(2) << S;return 0; }2. 设置输出宽度 #include <iostream> #inclu…...
改善工作流
快捷键管理器 打开Editor->Shortcuts查看和编辑Unity中的快捷键 示例 ShiftSpace 窗口最大化 P 选择预制体 进入预制体编辑模式 单一检视窗口 选择组件,选择Properties打开一个窗口,显示组件信息;切换对象,窗口信息不会改变…...
迭代器失效
一、什么是迭代器失效 迭代器的主要作用就是让算法能够不用关心底层数据结构,其底层实际就是一个指针,或者是对指针进行了封装,比如:vector的迭代器就是原生态指针T* 。因此迭代器失效,实际就是迭代器底层对应指针所指…...
@RequestParam @RequestBody @PathVariable 这三个注解对应的前端使用vue的http请求时不同的调用方式
1. RequestParam 用途:用于提取请求参数,常见于GET请求或表单提交。 Vue HTTP 请求示例: // 使用axios发送GET请求 axios.get(/api/users, { params: { id: 1, name: John } }); 2. RequestBody 用途:用于提取请求体…...
SQL - 索引
索引本质上是数据库引擎用来快速查找数据的数据结构,可以显著提高查询的性能,为了加快运行较慢的查询。创建索引 默认索引 create index 索引名 on 表名 (列名); 通过对列名进行创建索引,在查询的时候,数据库就能通过索引找到匹配…...
Oracle23ai新特性FOR LOOP循环控制结构增强
在Oracle数据库中,FOR LOOP是一种常用的循环控制结构,它允许你重复执行一系列语句固定次数或直到满足特定条件为止。然而,标准的Oracle PL/SQL中的FOR LOOP主要用于遍历集合(如数组或游标的结果集),而不是像…...
DHU OJ 二维数组
思路及代码 #include<iostream> using namespace std; int main(){ //input 多组 //input M,N int 1< <20 //input M 行 N 列 数据 //initialize listint M, N;while (cin >> M >> N){int list[M][N];for (int i 0; i < M-1; i){for (int j 0; j…...
UDP/TCP --- Socket编程
本篇将使用 Linux 中的系统调用来实现模拟 TCP 和 UDP 的通信过程,其中只对 UDP 和 TCP 进行了简单的介绍,本篇主要实现的是代码,至于 UDP 和 TCP 的详细讲解将会在之后的文章中给出。 本篇给出的 tcp 和 udp 的代码中的 echo 都是测试连接是…...
【C语言】最详细的单链表(两遍包会!)
🦄个人主页:小米里的大麦-CSDN博客 🎏所属专栏:C语言数据结构_小米里的大麦的博客-CSDN博客 🎁代码托管:黄灿灿/数据结构 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、单链表的概念 1. 单链表的特点 2. 单链表的基本…...
FairyGUI Unity鼠标悬停与点击对象获取原理与实战
1. 这不是“加个OnMouseEnter就能用”的事:FairyGUI在Unity中处理鼠标交互的真实困境很多人第一次在Unity里集成FairyGUI,想实现“鼠标悬停显示提示”或“点击高亮当前按钮”,下意识就去翻Unity的MonoBehaviour文档,找OnMouseEnte…...
浏览器指纹识别机制深度剖析与反识别技术实现
一、浏览器指纹技术基础认知1.1 浏览器指纹的核心定义在数字化时代,每一台接入互联网的设备都会留下独特的数字标识,浏览器指纹便是其中最关键的识别凭证之一。浏览器指纹是网站通过 JavaScript 脚本、HTTP 请求头、硬件接口调用等多种技术手段ÿ…...
别再瞎拖拽了!Unity Prefab从创建到批量修改的保姆级工作流(含变体与嵌套实战)
Unity Prefab高效工作流:从创建到批量修改的实战指南在Unity项目开发中,Prefab(预制体)是最基础也最强大的工具之一。但很多开发者,尤其是初学者,往往停留在简单的"拖拽-修改"阶段,没…...
D3KeyHelper终极指南:5分钟掌握暗黑3最强自动化工具
D3KeyHelper终极指南:5分钟掌握暗黑3最强自动化工具 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3KeyHelper是一款专为《暗黑破坏神3…...
OpenClaw 源码解析(六):openclaw agent 如何触发一次 Agent 运行?
1. 本期要解决的问题 前几期我们已经从项目整体结构、CLI 命令体系、配置加载、Gateway 运行机制等角度理解了 OpenClaw 的基础框架。到了这一期,可以进一步进入 OpenClaw 最核心的使用动作:用户在终端中执行一条 openclaw agent --message "...&q…...
技术指南:qobuz-dl无损音乐下载器架构解析与实战应用
技术指南:qobuz-dl无损音乐下载器架构解析与实战应用 【免费下载链接】qobuz-dl A complete Lossless and Hi-Res music downloader for Qobuz 项目地址: https://gitcode.com/gh_mirrors/qo/qobuz-dl 在数字音乐时代,音质追求者面临着一个核心矛…...
从酒店评论到情感分析:手把手教你用fastText做文本分类(Python实战避坑指南)
从酒店评论到情感分析:fastText文本分类实战全解析 当产品经理甩给你一份未经处理的酒店评论数据集,要求48小时内给出情感倾向分析报告时,作为工程师的你该如何应对?本文将带你用fastText这个轻量级工具,从原始数据到…...
告别AWCC臃肿:AlienFX Tools终极轻量级Alienware控制方案
告别AWCC臃肿:AlienFX Tools终极轻量级Alienware控制方案 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 你是否厌倦了Alienware Command C…...
端到端天基SAR系统设计
天基SAR是指将雷达子系统部署在轨道飞行器的合成孔径雷达,轨道飞行器包括但不限于地球卫星、其他行星的环绕器、航天飞机等。其中地球卫星星载SAR数量最多,应用最为广泛,本文主要对星载SAR系统设计进行介绍。1. SAR系统设计端到端SAR系统比一…...
告别内存泄漏!Cocos Creator 2.4+ AssetManager资源释放的完整避坑指南
Cocos Creator 2.4 AssetManager资源释放的完整避坑指南在游戏开发中,资源管理一直是影响性能和稳定性的关键因素。随着Cocos Creator 2.4版本推出全新的AssetManager系统,开发者获得了更强大的资源管理能力,但也面临着新的挑战。本文将深入探…...
