自动驾驶中planning为什么要把横纵向分开优化?
在自动驾驶系统中,将 横向(Lateral)规划 和 纵向(Longitudinal)规划 分开优化是一种常见的设计范式,其核心原理在于 解耦车辆运动控制的多维复杂性,同时兼顾 计算效率 和 安全性约束。以下从原理、优势和参考文献三个方面详细解析这一设计逻辑。
一、原理:为什么需要区分横纵向?
1. 运动学解耦
自动驾驶车辆的运动可分解为两个独立维度:
- 横向运动(Lateral):控制车辆在车道内的横向位移,如车道保持、变道、转弯等,主要影响车辆的 航向角(Yaw) 和 横向位置。
- 纵向运动(Longitudinal):控制车辆的前后运动,如加速、减速、跟车距离等,主要影响车辆的 速度 和 纵向位置。
从动力学模型来看,横向和纵向的控制输入(如方向盘转角、油门/刹车)对车辆状态的影响 相对独立。解耦后,可分别设计优化目标,简化控制问题。
2. 约束分离
- 横向约束:车道边界、障碍物避让、曲率连续性等。
- 纵向约束:与前车安全距离、交通信号灯时序、速度限制等。
分离开横向和纵向优化,可以更清晰地定义约束条件,避免联合优化时的复杂耦合。
3. 计算效率
联合优化横向和纵向需要高维状态空间搜索(如同时优化位置、速度、航向角),计算复杂度呈指数级增长。分而治之的策略能显著降低计算负担,满足实时性要求。
二、优势:分开优化的核心收益
1. 算法简化
- 横向规划:通常基于 Frenet坐标系(沿车道中心线的曲线坐标系),将问题转化为横向位移的轨迹生成(如多项式曲线、样条插值)。
- 纵向规划:基于时间或距离的 速度剖面优化(如恒定加速度模型、时距图法)。
分拆后,两者可分别采用最适合的算法(如横向用样条插值,纵向用模型预测控制 MPC)。
2. 实时性保障
- 横向规划需高频更新(如应对突发障碍物变道),纵向规划需平滑的速度调整。分开优化允许两者以不同频率运行(如横向 10Hz,纵向 20Hz)。
- 典型应用:Apollo 自动驾驶框架中,横向规划基于 Lattice Planner,纵向规划基于 速度决策器。
3. 安全性增强
- 横向和纵向的安全边界可独立设定。例如:
- 横向安全距离:避免碰撞道路边缘或相邻车道车辆。
- 纵向安全距离:基于 TTC(Time-to-Collision)或 RSS(Responsibility-Sensitive Safety)模型。
- 分开优化可分别校验横向和纵向的安全性,降低联合优化的验证难度。
4. 模块化与可扩展性
- 横向和纵向模块可独立升级(如改进变道策略不影响跟车逻辑)。
- 便于多传感器融合:横向依赖车道线检测,纵向依赖前车雷达/摄像头数据。
三、典型方法与参考文献
1. 横向规划方法
-
Frenet 坐标系下的轨迹生成:
将车辆运动投影到车道中心线的切向(纵向)和法向(横向),生成横向位移的平滑轨迹。
参考文献:
Werling et al., “Optimal Trajectory Generation for Dynamic Street Scenarios in a Frenet Frame”, IEEE IV 2010. -
Lattice Planner(栅格规划器):
在横向和纵向分别离散化状态空间,生成候选轨迹并选择最优解。
参考文献:
Montemerlo et al., “Junior: The Stanford Entry in the Urban Challenge”, Journal of Field Robotics 2008.
2. 纵向规划方法
-
模型预测控制(MPC):
基于车辆动力学模型,优化未来时域内的速度剖面。
参考文献:
Katrakazas et al., “Real-Time Motion Planning for Autonomous Urban Driving: Framework, Algorithms, and Verifications”, IEEE T-ITS 2015. -
时距图法(Time-Gap Model):
根据前车速度和距离,动态调整自身速度以维持安全时距。
参考文献:
Vahidi et al., “Predictive Cruise Control: Utilizing Upcoming Traffic Signal Information for Improving Fuel Economy and Reducing Trip Time”, IEEE T-CST 2005.
3. 横纵向协同优化
- 联合优化框架:
尽管横纵向分开优化是主流,但近年也有研究尝试联合优化(如时空联合轨迹生成)。
参考文献:
Ziegler et al., “Trajectory Planning for Bertha — A Local, Continuous Method”, IEEE IV 2014.
四、挑战与未来方向
1. 解耦优化的局限性
- 耦合场景下的次优解:如紧急避障需同时调整横向和纵向,分开优化可能导致响应延迟。
- 协调复杂性:需设计仲裁机制(如优先级策略)解决横纵向决策冲突。
2. 前沿研究方向
- 时空联合规划:在统一的时空坐标系中生成轨迹(如利用神经网络端到端优化)。
- 强化学习(RL):通过奖励函数隐式学习横纵向协同策略。
- 不确定性建模:在横纵向规划中引入概率推理(如贝叶斯网络)。
总结
自动驾驶中横纵向规划的分开优化,本质上是 通过解耦降低问题维度,从而平衡 实时性、安全性 和 计算效率。尽管存在耦合场景的局限性,但在当前技术阶段,这一策略仍是工程实践中的主流选择。未来随着算力提升和算法进步,联合优化可能逐步成为补充方案。
相关文章:
自动驾驶中planning为什么要把横纵向分开优化?
在自动驾驶系统中,将 横向(Lateral)规划 和 纵向(Longitudinal)规划 分开优化是一种常见的设计范式,其核心原理在于 解耦车辆运动控制的多维复杂性,同时兼顾 计算效率 和 安全性约束。以下从原理…...
Linux 命令大全完整版(06)
2. 系统设置命令 pwunconv 功能说明:关闭用户的投影密码。语法:pwunconv补充说明:执行 pwunconv 指令可以关闭用户投影密码,它会把密码从 shadow 文件内,重回存到 passwd 文件里。 rdate(receive date) 功能说明&a…...
第9章:LangChain结构化输出-示例2(数字提取服务)
如何使用LangChain4j框架创建和使用多种AI服务。它通过定义接口和注解,将自然语言处理任务(如情感分析、数字提取、日期提取、POJO提取等)封装为服务,并通过LangChain4j的AiServices动态生成这些服务的实现。 本章主要讲述基于Lan…...
每天五分钟深度学习pytorch:使用Inception模块搭建GoogLeNet模型
本文重点 前面我们学习了Incetption模块,它的作用类似于vgg块对于VGG网络模型一样,本文我们使用Inception搭建GoogLeNet网络,如果使用卷积层开始从头开始搭建GoogleNet,那么这样看起来会很不清晰,我们使用已经封装好的Inception来搭建GoogLeNet网络 关键点 关键点在于I…...
Ubuntu - Redis 安装、远程访问
参考教程: https://blog.csdn.net/houor/article/details/126672577 https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 查看是否安装 redis-cli --versionUbuntu 上安装 更新: sudo apt update …...
SpringBoot+Vue+微信小程序的猫咖小程序平台(程序+论文+讲解+安装+调试+售后)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当下这个高速发展的时代,网络科技正以令人惊叹的速度不断迭代更新。从 5G …...
二分查找算法的全面解析C++
一、核心原理与特性 二分查找是一种**对数时间复杂度(O(log n))**的高效搜索算法46,需满足两个前提条件: 数据存储在连续内存空间(如数组)数据按升序/降序有序排列35 算法通过折半比较缩小搜索范围: 初始化左右边界…...
深度学习(5)-卷积神经网络
我们将深入理解卷积神经网络的原理,以及它为什么在计算机视觉任务上如此成功。我们先来看一个简单的卷积神经网络示例,它用干对 MNIST数字进行分类。这个任务在第2章用密集连接网络做过,当时的测试精度约为 97.8%。虽然这个卷积神经网络很简单…...
第9章:LangChain结构化输出-示例3(日期和时间提取服务)
如何使用LangChain4j框架创建和使用多种AI服务。它通过定义接口和注解,将自然语言处理任务(如情感分析、数字提取、日期提取、POJO提取等)封装为服务,并通过LangChain4j的AiServices动态生成这些服务的实现。 本章主要讲述基于LangChain调用大模型如何进行结构化输出的真实…...
解决Open WebU无法显示基于OpenAI API接口的推理内容的问题
解决方案 把reasoning content的东西移到content中来 并在reasoning时,手动加上标签。具体做法是截获第三方api返回的stream,并修改其中的内容,再移交给open webUI处理。 在backend\open_webui\routers\openai.py中 找到 generate_chat_com…...
AI颠覆蛋白质工程:ProMEP零样本预测突变效应
概述 在生命科学的“造物革命”中,蛋白质工程一直面临着“试错成本”与“设计效率”的双重挑战——传统方法依赖繁复的多序列比对(MSA)或耗时的实验室筛选,如同在浩瀚的蛋白质宇宙中盲选星辰。而今日,一项发表于《Cel…...
QT闲记-状态栏,模态对话框,非模态对话框
1、创建状态栏 跟菜单栏一样,如果是继承于QMainWindow类,那么可以获取窗口的状态栏,否则就要创建一个状态栏。通过statusBar()获取窗口的状态栏。 2、添加组件 通常添加Label 来显示相关信息,当然也可以添加其他的组件。通过addWidget()添加组件 3、设置状态栏样式 …...
QQ登录测试用例报告
QQ登录测试用例思维导图 一、安全性测试用例 1. 加密传输与存储验证 测试场景:输入账号密码并提交登录请求。预期结果:账号密码通过加密传输(如HTTPS)与存储(如哈希加盐),无明文暴露。 2. 二…...
ipad连接电脑断断续续,不断弹窗的解决办法
因为ipad air 屏幕摔坏,换了一个内外屏,想用爱思检验一下屏幕真伪, 连接电脑时,断断续续,连上几秒钟然后就断开,然后又连上 然后又断开,不断地弹出信任的弹窗。 刚开始以为是数据线问题&#x…...
《FFTformer:基于频域的高效Transformer用于高质量图像去模糊》
paper:2211.12250 GitHub:kkkls/FFTformer: [CVPR 2023] Effcient Frequence Domain-based Transformer for High-Quality Image Deblurring CVPR 2023 目录 摘要 1、介绍 2、相关工作 2.1 基于深度CNN的图像去模糊方法 2.2 Transformer及其在图…...
std::call_once
std::call_once 是 C11 标准库中提供的一个线程安全的一次性调用机制,位于 <mutex> 头文件中。它用于确保在多线程环境中,某个函数(或可调用对象)仅被调用一次,无论有多少线程尝试调用它。这种机制常用于实现线程…...
网络安全研究
1.1 网络安全面临的威胁 网络安全面临的威胁呈现出多样化和复杂化的趋势,给个人、企业和国家的安全带来了严峻挑战。以下是当前网络安全面临的主要威胁: 1.1.1 数据泄露风险 数据泄露是当前网络安全的重大威胁之一。根据国家互联网应急中心发布的《20…...
【软考网工】华为交换机命令
目录 1、华为交换机命令行的三种视图2、修改交换机名称3、关闭和开启信息中心4、vlan附录: 交换机型号:S5700 1、华为交换机命令行的三种视图 <Huaweu> #用户视图。特征:尖括号、用户名。 [Huawei] #系统视图。特…...
【行业解决方案篇十八】【DeepSeek航空航天:故障诊断专家系统 】
引言:为什么说这是“航天故障终结者”? 2025年春节刚过,航天宏图突然官宣"DeepSeek已在天权智能体上线",这个搭载在卫星和空间站上的神秘系统,号称能提前48小时预判99.97%的航天器故障。这不禁让人想起年初NASA禁用DeepSeek引发的轩然大波,更让人好奇:这套系…...
输入菜单关键字,遍历匹配到 menuIds,展开 匹配节点 的所有父节点以及 匹配节点 本身,高亮 匹配节点
菜单检索,名称、地址、权限标志 等 关键字匹配、展开、高亮(全程借助 DeepSeek ) 便捷简洁的企业官网 的后台菜单管理,图示: 改造点: (1)修改 bootstrapTreeTable 的节点class命名方式为:treeg…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
