
Apollo 9.0 规划算法解析
文章平均质量分 96
最新百度APOLLO 9.0 Planning各模块代码解读,规划算法保姆级笔记与调试实战
优惠券已抵扣
余额抵扣
还需支付
¥29.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
Wai-Ngai
智障驾驶PPT算法攻城狮
展开
-
Apollo 9.0 PnC 学习路线图
作为中国自动驾驶的黄埔军校,百度的Apollo 自动驾驶开源框架是每一个刚入行的PnCer都不可错过的“小甜甜”,甚至对于很多做自动驾驶“自研”的公司,该框架也是有很大的借鉴意义(当然它们很多也是这样做的😂)。哪怕是在端到端已经开始横行的2024年,Apollo仍然是你入行自动驾驶,学习PnC算法的不二框架!原创 2024-12-27 17:47:10 · 572 阅读 · 0 评论 -
如何用vscode调试Apollo 9.0?-- 以Planning模块为例
看了百度Apollo代码这么久了,你是不是也想亲自dbug一下,看看代码流程?网上的教程都试了,还是调试失败?你还不会使用断点进行调试?按照下面的步骤,手把手教你在ubuntu系统下用vscode调试Apollo 9.0代码,So easy,妈妈再也不用担心我不会调试代码啦!本教程基于百度Apollo 9.0版本,进行安装和调试,其他版本可能略有差异;本教程使用源码的安装方式,包管理安装方式的调试略有差异。原创 2024-06-18 18:03:27 · 2682 阅读 · 0 评论 -
Apollo 9.0 Planning 初始化都做了什么?
planning_base_的Init()初始化是整个Planning模块初始化过程最复杂的部分,通过断点调试的函数调用栈,可以看到整个调用的过程。最后将init_置为true,标志着Planning模块的初始化完成。看到这里,如果你还有一个疑问:每个task都有一个Init()函数,用于对应的配置参数加载,例如qp求解的权重系数,但是你上面讲的初始化却没有提到,那么它们又是在哪里调用到的呢?那么恭喜你,你看的很仔细。原创 2025-01-03 16:24:11 · 1088 阅读 · 0 评论 -
Apollo 9.0 Planning 中重要的数据结构
在具体深入到Apollo的规划算法之前,首先需要讲清楚算法里贯穿始终的几个重要数据结构。只有搞懂了这些数据结构,才能理清楚具体算法的输入输出,后续看代码也会事半功倍。原创 2025-01-04 15:00:24 · 856 阅读 · 0 评论 -
Apollo 9.0 轨迹拼接和规划起点
在每一帧轨迹规划的开始,我们需要确定规划的起始点P0txyvaheadingkappa,起始点P0给定了规划的初始状态,然后结合当前帧的环境信息并调用规划算法规划生成当前帧轨迹。在确定好规划起点后,Apollo中还会从上周期的规划轨迹中截取一段轨迹,与当前帧规划的轨迹拼接在一起,组成期望轨迹发给控制执行。原创 2025-02-11 16:34:08 · 689 阅读 · 0 评论 -
Apollo 9.0 参考线生成器 -- ReferenceLineProvider
在基于参考线的规划算法中,参考线是Planning一切工作的基础和前提,所以搞清楚参考线怎么来的就变得很重要。为此,首先需要了解Planning 与 Routing的交互,通过交互得到路径片段,这些路径片段就告诉我们该怎么走,再在此基础上生成参考线,最后使用不同的平滑算法对参考线进行平滑,得到一条光滑的参考线。原创 2025-02-11 17:42:37 · 1033 阅读 · 0 评论 -
Apollo 9.0 参考线平滑算法 -- Discrete Points ReferenceLine Smoother
这一章将介绍参考线平滑中的主体部分,即smoother类下的smooth函数和具体的平滑算法。这里我只介绍Apollo 9.0中目前配置参数里正在使用的discrete_points_reference_line_smoother下的smooth函数。该方法通过对原始参考线上的离散点的有限偏移对原始参考线进行平滑。在详解代码之前,有必要先对理论进行讲解。原创 2025-02-11 17:22:17 · 418 阅读 · 0 评论 -
Apollo 9.0 路径规划算法 -- piecewise jerk path optimizer
Apollo 9.0 路径规划算法 – piecewise jerk path optimizer文章目录Apollo 9.0 路径规划算法 -- piecewise jerk path optimizer1. 分段加加速度优化算法2. Apollo 中二次规划问题的构造2.1 定义优化变量2.2 设计目标函数2.3 设计约束条件2.3.1 不等式约束:边界条件2.3.2 等式约束:路径连续性约束2.3.3 等式约束:规划起点2.3.4 约束矩阵3. 代码解析3.1 二次规划问题构建3.2 P矩阵3.3原创 2024-09-09 16:18:00 · 1964 阅读 · 7 评论 -
Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer
PathTimeHeuristicOptimizer算法,实际上是将ST空间进行离散,在这离散的图上寻找“最短”路径的问题,所以可以使用动态规划分而治之的思想进行求解。注意这里的“最短”,并不是路程上的最短,而是指包含障碍物代价,加速度代价等一系列代价最小的一条路径。动态规划Task的入口在。原创 2025-02-13 10:42:24 · 1057 阅读 · 0 评论 -
Apollo 9.0 速度二次规划算法 – piecewise jerk speed optimizer
路径规划的坐标系是sl坐标系,沿着参考线的方向是s轴,垂直于参考线的方向是l轴。(红色坐标轴)速度规划的坐标系是st坐标系,s是沿着规划好的路径方向的位移,t是时间。(蓝色坐标轴)速度二次规划同样采用分段加加速度的算法思想,对时间t进行等间隔△t采样。选取各个时间点t对应的s,s˙,s¨s,\dot{s} ,\ddot{s}s,s˙,s¨作为优化变量,如下:x=[s0s1⋮sn−1s˙0s˙1⋮s˙n−1s¨0s¨1⋮s¨n−1]x=\begin{bmatrix}s_{0} \\s_{1} \原创 2025-02-13 11:22:30 · 110 阅读 · 0 评论 -
Apollo 9.0 控制算法 -- lon based pid controller
参考论文:1808.10134 Baidu Apollo Auto-Calibration System - An这篇论文是Apollo发表的一种基于离线模型和在线学习的(对于纵向动力学)自动校准系统。首先从人类驾驶数据中生成离线标定表。离线表作为后期使用的初始猜测,只需要二十分钟的数据收集和处理。然后,基于实时性能分析,采用在线学习算法适当更新初始表(离线表)。基于人体驾驶数据,生成标定表,将油门、刹车、车速作为输入,加速度作为输出。原创 2025-02-14 16:16:18 · 1130 阅读 · 0 评论