当前位置: 首页 > news >正文

萝卜快跑和端到端的自动驾驶(1)

先看一篇论文

2311.18636 (arxiv.org)

这篇论文里有一个非常好的图

比较了一下模块化任务(级联任务)和端到端自动驾驶的区别

首先什么叫模块化任务(级联)

如上图所示,左边的方块中的子方块,是展示了自动驾驶获取数据的途径,这里包括:

  • LiDARs(激光雷达):使用激光束创建周围环境的高分辨率3D地图。它们对于检测障碍物、测量距离和提供详细的空间信息至关重要。
  • Cameras(摄像头):用于视觉感知,帮助系统识别交通信号、道路标志、车道标记以及其他车辆和行人。摄像头提供的高分辨率图像对于目标检测和分类非常重要。
  • RADARs(雷达):使用无线电波检测物体并测量其距离和速度。雷达在恶劣天气条件下(如雾或大雨)尤其有用,因为在这些条件下摄像头和激光雷达可能表现不佳。
  • HD Maps(高精度地图):提供详细的道路信息,包括车道结构、交通标志和地理特征,帮助车辆准确定位和导航。
  • IMU(惯性测量单元):使用加速度计和陀螺仪测量车辆的加速度和角速度,提供精确的运动信息,有助于定位和稳定控制。
  • GPS(全球定位系统):提供车辆的地理位置信息,结合其他传感器数据,实现厘米级的精确定位。

以上的各种sensor其实可以看出来大部分的自动驾驶的输入其实天生就是多模态的,但是可以任务比如纯视觉方案(特斯拉)它就不是多模态的吗?

这是一个错误的理解,特斯拉的纯视觉方案在训练时有text指令的输入,所以它也是多模态的。

或者目前可了解到的,只有特斯拉实现了端到端的模型,是不是只有纯视觉方案才有资格称得上端到端?这些概念都是错误的。

这个也是不正确的理解,那让我们看一下怎么定义端到端。

如图所示,传统的自动驾驶的流程是由多个模型组成的(有些模块甚至不能严格成为模型),比如上面的一个概述:

  1. Perception(感知):感知模块负责处理来自各种传感器的数据(如摄像头、雷达和激光雷达),识别并理解车辆周围的环境。这包括检测其他车辆、行人、道路标志、交通信号灯等。
  2. Localization(定位):定位模块通过融合GPS、高精度地图、IMU(惯性测量单元)等数据,确定车辆在环境中的准确位置。这是确保车辆能够正确导航和执行路径规划的基础。
  3. Tracking(跟踪):跟踪模块持续监控并预测周围移动物体的位置和速度,例如其他车辆和行人,以便系统能够做出及时和准确的反应,避免碰撞。
  4. Path Planning(路径规划):路径规划模块基于感知和定位信息,计算车辆从当前地点到目的地的最优路径。该路径需要考虑道路状况、交通法规和动态障碍物等因素。
  5. Decision Making(决策):决策模块根据感知、定位和路径规划的信息,决定车辆的具体行动。例如,选择何时变道、超车或停车等待,这些决策都需要综合考虑安全性和效率。
  6. 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…...

九大服务架构性能优化方式

来源&#xff1a;九大服务架构性能优化方式 目录 性能优化九大方式&#xff1a; 缓存 使用什么样的缓存 缓存常见问题 缓存淘汰 缓存数据一致性 并行化处理 批量化处理 数据压缩合并 无锁化 顺序写 分片化 避免请求 池化 异步处理 总结 最近做了一些服务性能优…...

【RabbitMQ】 相关概念 + 工作模式

本文将介绍一些MQ中常见的概念&#xff0c;同时也会简单实现一下RabbitMQ的工作流程。 MQ概念 Message Queue消息队列。是用来存储消息的队列&#xff0c;多用于分布式系统之间的通信。 系统间调用通常有&#xff1a;同步通信和异步通信。MQ就是在异步通信的时候使用的。 同…...

嵌入式学习 ——(Linux高级编程——进程)

目录 一、进程的含义 二、进程和程序的区别 三、进程的作用 四、进程的状态 五、进程的调度与上下文切换 六、查询进程相关命令 七、fork()函数 八、getpid()和getppid()函数 九、面试题解析&#xff1a; 十、应用场合及测试 一、进程的含义 进程指正在运行的程序&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 选择预制体 进入预制体编辑模式 单一检视窗口 选择组件&#xff0c;选择Properties打开一个窗口&#xff0c;显示组件信息&#xff1b;切换对象&#xff0c;窗口信息不会改变…...

迭代器失效

一、什么是迭代器失效 迭代器的主要作用就是让算法能够不用关心底层数据结构&#xff0c;其底层实际就是一个指针&#xff0c;或者是对指针进行了封装&#xff0c;比如&#xff1a;vector的迭代器就是原生态指针T* 。因此迭代器失效&#xff0c;实际就是迭代器底层对应指针所指…...

@RequestParam @RequestBody @PathVariable 这三个注解对应的前端使用vue的http请求时不同的调用方式

1. RequestParam 用途&#xff1a;用于提取请求参数&#xff0c;常见于GET请求或表单提交。 Vue HTTP 请求示例&#xff1a; // 使用axios发送GET请求 axios.get(/api/users, { params: { id: 1, name: John } }); 2. RequestBody 用途&#xff1a;用于提取请求体…...

SQL - 索引

索引本质上是数据库引擎用来快速查找数据的数据结构&#xff0c;可以显著提高查询的性能&#xff0c;为了加快运行较慢的查询。创建索引 默认索引 create index 索引名 on 表名 (列名); 通过对列名进行创建索引&#xff0c;在查询的时候&#xff0c;数据库就能通过索引找到匹配…...

Oracle23ai新特性FOR LOOP循环控制结构增强

在Oracle数据库中&#xff0c;FOR LOOP是一种常用的循环控制结构&#xff0c;它允许你重复执行一系列语句固定次数或直到满足特定条件为止。然而&#xff0c;标准的Oracle PL/SQL中的FOR LOOP主要用于遍历集合&#xff08;如数组或游标的结果集&#xff09;&#xff0c;而不是像…...

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 的通信过程&#xff0c;其中只对 UDP 和 TCP 进行了简单的介绍&#xff0c;本篇主要实现的是代码&#xff0c;至于 UDP 和 TCP 的详细讲解将会在之后的文章中给出。 本篇给出的 tcp 和 udp 的代码中的 echo 都是测试连接是…...

【C语言】最详细的单链表(两遍包会!)

&#x1f984;个人主页:小米里的大麦-CSDN博客 &#x1f38f;所属专栏:C语言数据结构_小米里的大麦的博客-CSDN博客 &#x1f381;代码托管:黄灿灿/数据结构 (gitee.com) ⚙️操作环境:Visual Studio 2022 目录 一、前言 二、单链表的概念 1. 单链表的特点 2. 单链表的基本…...

Gradio界面定制化:为DAMO-YOLO WebUI添加导出检测结果CSV功能

Gradio界面定制化&#xff1a;为DAMO-YOLO WebUI添加导出检测结果CSV功能 1. 项目背景与需求 如果你用过那个基于DAMO-YOLO的手机检测WebUI&#xff0c;可能会发现一个问题&#xff1a;检测结果只能看&#xff0c;不能存。 每次上传图片&#xff0c;系统会告诉你检测到了几个…...

OpenClaw自动化监控:GLM-4.7-Flash实时解析服务器日志告警

OpenClaw自动化监控&#xff1a;GLM-4.7-Flash实时解析服务器日志告警 1. 为什么需要日志自动化监控 每次服务器出现异常时&#xff0c;手动翻查Nginx日志就像在干草堆里找针。上个月我们线上服务遭遇CC攻击&#xff0c;等我从几百兆的access.log里筛选出异常IP时&#xff0c…...

半导体制冷片温控实战:H桥PWM驱动电路设计与单片机PID参数整定避坑指南

半导体制冷片温控实战&#xff1a;H桥PWM驱动电路设计与单片机PID参数整定避坑指南 在DIY恒温装置或小型冷热台时&#xff0c;半导体制冷片&#xff08;帕尔贴&#xff09;因其紧凑结构和快速温变特性成为理想选择。但真正实现0.5℃级别的精准温控&#xff0c;需要跨越硬件驱动…...

OpenCascade避坑指南:BRepMesh网格生成常见的5个问题与解决方法(含性能对比数据)

OpenCascade网格生成实战&#xff1a;5个高频问题深度解析与性能优化指南 当你在CAD开发中第一次调用BRepMesh_IncrementalMesh时&#xff0c;是否遇到过网格生成失败却找不到原因的情况&#xff1f;或是面对复杂模型时性能急剧下降的困境&#xff1f;这些问题往往让初学者束手…...

OpenClaw定时任务详解:GLM-4.7-Flash每日自动生成工作报告

OpenClaw定时任务详解&#xff1a;GLM-4.7-Flash每日自动生成工作报告 1. 为什么需要自动化日报系统 上周三晚上11点&#xff0c;我盯着空白的周报文档发呆——明明这周完成了3个需求迭代和2次跨部门协作&#xff0c;却怎么都想不起具体细节。翻遍Git记录、邮件和会议纪要才勉…...

论文省心了!2026年实力出众的专业AI论文写作工具

2026年AI论文写作工具已从“内容生成”进化为多维度学术支持系统&#xff0c;核心评价维度包括文献真实性、格式合规性、长文本逻辑、查重降重、AIGC合规与多语言适配能力。本次测评覆盖6款主流工具&#xff0c;涵盖中文与英文场景&#xff0c;支持全流程与专项功能&#xff0c…...

掌握NLP实践:从环境搭建到应用部署的6步学习指南

掌握NLP实践&#xff1a;从环境搭建到应用部署的6步学习指南 【免费下载链接】nlp-tutorial A list of NLP(Natural Language Processing) tutorials 项目地址: https://gitcode.com/gh_mirrors/nlp/nlp-tutorial 自然语言处理&#xff08;NLP&#xff09;作为人工智能领…...

致所有嵌入式学习者:一些比代码更重要的东西

文 / 一只会飞的猫 本文已经加入原创侵权保护&#xff0c;商业行为&#xff0c;禁止任何形式转载&#xff0c;违者必究。 文章所在专栏&#xff1a;嵌入式入行认知指南—芯片老兵带你打破学习信息差 文章目录1 为什么我要写这个专栏2 在这个专栏里&#xff0c;你会了解到什么&a…...

7大监控场景+4步部署:Intel PCM性能监控全攻略

7大监控场景4步部署&#xff1a;Intel PCM性能监控全攻略 【免费下载链接】pcm Intel Performance Counter Monitor (Intel PCM) 项目地址: https://gitcode.com/gh_mirrors/pc/pcm Intel Performance Counter Monitor (Intel PCM) 是一款由Intel官方开发的系统性能分析…...

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

揭秘Synopsys EDA中的AI黑科技&#xff1a;DSO.ai如何重塑芯片设计范式 当芯片制程迈入3纳米时代&#xff0c;单个晶体管尺寸已接近物理极限&#xff0c;设计复杂度却呈指数级增长。传统EDA工具如同手持计算尺的工程师面对摩天大楼蓝图——方法论需要根本性变革。这正是DSO.ai诞…...