
Apollo决策规划模块代码详解
文章平均质量分 86
全网最全apollo planning模块决策规划算法解析;场景决策选择,stage执行,一次规划周期涉及的所有task解析。完整解析apollo planning模块的运行机制,可以快速了解apollo决策规划算法。
自动驾驶Player
分享自动驾驶感知预测决策规划控制算法,分享Apollo决策规划控制算法代码解析,分享Apollo规控算法仿真调试分析,分析自动驾驶从业经验。
展开
-
Apollo9.0 Planning2.0决策规划算法代码详细解析 (5): OnLanePlanning::Init()
Apollo的OnLanePlanning是自动驾驶框架中的一个核心模块,它主要负责在有车道线的道路上进行路径规划。public:private:private:类是一个功能丰富的路径规划模块,它基于车道线进行规划,并考虑了多种场景和约束条件。通过提供的接口和成员函数,它能够生成安全、舒适且符合交通规则的行驶轨迹。此外,该类还提供了丰富的调试信息导出功能,有助于开发者进行问题诊断和性能优化。原创 2024-10-05 15:57:06 · 938 阅读 · 0 评论 -
Apollo9.0 Planning2.0决策规划算法代码详细解析 (4): PlanningComponent::Proc()
PlanningComponent::Proc() 作为整个planning 模块的入口,每个planning周期都会执行一次,主要提供以下一些功能: CheckRerouting() 重新路由判断 更新local_view_,local_view_中包含一次planning需要的所有外部信息 CheckInput() 检查输入 规划器进行规划,并给输出轨迹赋值 更新轨迹的时间戳,并且发布轨迹原创 2024-10-05 12:50:38 · 353 阅读 · 0 评论 -
Apollo Planning2.0决策规划算法代码详细解析 (3):PlanningComponent框架介绍
PlanningComponent是自动驾驶系统中负责决策规划的组件。它基于来自其他模块(如预测、底盘和定位等)的输入信息,计算出车辆在未来一段时间内的行驶轨迹、速度、加速度等关键参数。这些规划结果将直接指导车辆的实际驾驶操作,确保车辆能够安全、高效地行驶。PlanningComponent是一个事件触发的组件,即它不会持续运行,而是等待特定的事件或条件触发时才开始工作。这些事件通常包括同时收到预测、底盘和定位信息等。这种设计有助于减少不必要的计算资源消耗,并提高系统的响应速度和效率。原创 2024-09-28 23:21:51 · 392 阅读 · 0 评论 -
Apollo Planning2.0决策规划算法代码详细解析 (2): vscode gdb单步调试环境搭建
apollo planning2.0 在新版本中在降低学习和二次开发成本上进行了一些重要的优化,重要的优化有接口优化、task插件化、配置参数改造等。GNU symbolic debugger,简称「GDB 调试器」,是 Linux 平台下最常用的一款程序调试器。GDB 编译器通常以 gdb 命令的形式在终端(Shell)中使用,发展至今,GDB 调试器已经对 C、C++、Go、Objective-C、OpenCL、Ada 等多种编程语言提供了支持。实际场景中,GDB 更常用来调试 C 和 C++ 程序原创 2023-10-05 09:51:43 · 1684 阅读 · 0 评论 -
Apollo Planning2.0决策规划算法代码详细解析 (1):环境搭建
1、官方提供连接:git clone https://github.com/ApolloAuto/application-pnc.git。此外,也更新了dreamview对pnc的支持,使得调试更加方便。apollo开源团队近期更新了planning版本,对代码进行了一定程度上的重构。(2)进入docker,并编译整个工程:./apollo.sh build_dbg。下载项目环境后使用aem进行环境配置;2、有一定基础建议直接拉取最新代码,自己手动进行编译。(1)环境安装: ./dev_start.sh。原创 2023-08-13 18:19:37 · 1451 阅读 · 2 评论 -
Apollo Planning决策规划算法代码详细解析 (21): PathDecider详细解析上
在本专栏之前的文章中有对PathDecider这个task进行介绍,最近后台咨询这个task的小伙伴比较多,所以决定重新对这个task进行分析,加入使用vscode 进行调试时的一些中间过程与变量取值分析,帮助大家更好的理解PathDecider 这个task。...原创 2022-08-15 08:00:00 · 2303 阅读 · 7 评论 -
Apollo Planning决策规划算法代码详细解析 (20):SPEED_BOUNDS_FINAL_DECIDER
SPEED_BOUNDS_FINAL_DECIDER 是lanefollow 场景下,所调用的第 14 个 task,属于task中的decider 类别它的作用主要是:正文如下: 一、概述SPEED_BOUNDS_FINAL_DECIDER 是lanefollow 场景下,所调用的第 13 个 task,属于task中的decider 类别...原创 2022-07-03 17:01:55 · 2155 阅读 · 11 评论 -
Apollo Planning决策规划算法代码详细解析 (19):SpeedDecider 障碍物纵向决策下
SpeedDecider 是lanefollow 场景下,Apollo Planning算法所调用的第13 个 task,属于task中的decider 类;本文主要介绍Apollo Planning决策规划算法中纵向决策器SpeedDecider中根据障碍物不同位置,具体的决策逻辑。...原创 2022-06-12 22:32:25 · 2308 阅读 · 0 评论 -
Apollo Planning决策规划算法代码详细解析 (18):SpeedDecider 障碍物纵向决策上
一、概述SpeedDecider 是lanefollow 场景下,Apollo Planning算法所调用的第13 个 task,属于task中的decider 类别它的作用主要是:1、对每个目标进行遍历,分别对每个目标进行决策2、或得mutable_obstacle->path_st_boundary()3、根据障碍物st_boundary的时间与位置的分布,判断是否要忽略4、对于虚拟目标 Virtual obstacle,如果不在referenceline的车道上,则跳过5、如果是原创 2022-05-25 15:51:32 · 2934 阅读 · 3 评论 -
Apollo Planning决策规划算法代码详解 (22):决策规划算法最完整介绍
前言:后台已经写完了Apollo Planning决策规划算法的完整解析,一路从规划模块的入口OnLanePlanning,介绍到常见的规划器PublicRoadPlanner;接着介绍了在PublicRoadPlanner中如何通过类似有限状态机的ScenarioDispatch进行场景决策。之后又介绍了在每个场景Scenario中如何配置以及判断当前所处的stage,以及对于每个stage又是如何注册tasks来执行具体的规划任务。现在回头来看,这个系列应该是目前全网最完整的apollo规划算法原创 2022-05-19 09:30:46 · 14478 阅读 · 4 评论 -
Apollo Planning决策规划算法代码解析 (17):SPEED_HEURISTIC_OPTIMIZER 速度动态规划下
一、概述SPEED_HEURISTIC_OPTIMIZER 是lanefollow 场景下,所调用的第 12个 task,属于task中的optimizer 类别,它的作用主要是:apollo中使用动态规划的思路来进行速度规划,其实更类似于使用动态规划的思路进行速度决策;首先将st图进行网格化,然后使用动态规划求解一条最优路径,作为后续进一步速度规划的输入,将问题的求解空间转化为凸空间本文将详细讲解apollo速度动态规划的代码,用打断点调试的方法一步步解析动态规划的过程。apollo速度的原创 2022-05-14 19:23:48 · 2528 阅读 · 2 评论 -
Apollo Planning决策规划算法代码详细解析 (16):SPEED_HEURISTIC_OPTIMIZER 速度动态规划中
一、概述SPEED_HEURISTIC_OPTIMIZER 是lanefollow 场景下,所调用的第 12个 task,属于task中的optimizer 类别,它的作用主要是:apollo中使用动态规划的思路来进行速度规划,其实更类似于使用动态规划的思路进行速度决策;首先将st图进行网格化,然后使用动态规划求解一条最优路径,作为后续进一步速度规划的输入,将问题的求解空间转化为凸空间本文将详细讲解apollo速度动态规划的代码,用打断点调试的方法一步步解析动态规划的过程。apollo速度的原创 2022-05-11 10:24:42 · 2281 阅读 · 0 评论 -
Apollo Planning决策规划算法代码详细解析 (15): 速度动态规划SPEED_HEURISTIC_OPTIMIZER 上
一、概述SPEED_HEURISTIC_OPTIMIZER 速度动态规划是lanefollow 场景下,所调用的第 12个 task,属于task中的optimizer 类别,它的作用主要是:apollo中使用动态规划的思路来进行速度规划,其实更类似于使用动态规划的思路进行速度决策;首先将st图进行网格化,然后使用动态规划求解一条最优路径,作为后续进一步速度规划的输入,将问题的求解空间转化为凸空间本文将详细讲解apollo速度动态规划的代码,用打断点调试的方法一步步解析动态规划的过程。apo原创 2022-05-06 21:45:34 · 3640 阅读 · 7 评论 -
Apollo Planning决策规划算法代码详细解析 (14):SPEED_BOUNDS_PRIORI_DECIDER
SPEED_BOUNDS_PRIORI_DECIDER 是lanefollow 场景下,所调用的第 11 个 task,属于task中的decider 类别它的作用主要是:(1)将规划路径上障碍物的st bounds 加载到路径对应的st 图上(2)计算并生成路径上的限速信息正文如下:一、概述SPEED_BOUNDS_PRIORI_DECIDER 是lanefollow 场景下,所调用的第 11 个 task,属于task中的decider 类别它的作用主要是:(1)将规划路径上障.原创 2022-05-02 19:59:08 · 4600 阅读 · 3 评论 -
Apollo Planning决策规划算法代码详细解析 (13): RuleBasedStopDecider
一、概述RuleBasedStopDecider 是lanefollow 场景下,所调用的第 8 个 task,属于task中的decider 类别它的作用主要是:根据一些规则来设置停止标志。二、RuleBasedStopDecider的具体逻辑如下:1、PublicRoadPlanner 的 LaneFollowStage 配置了以下几个task 来实现具体的规划逻辑,RuleBasedStopDecider 是第8个task,scenario_type: LANE_FOLLOW.原创 2022-04-29 23:54:39 · 2348 阅读 · 1 评论 -
Apollo Planning决策规划算法代码详细解析 (12): PathDecider
一、概述PathDecider 是lanefollow 场景下,所调用的第 7 个 task,属于task中的decider 类别它的作用主要是:在上一个任务中获得了最优的路径,PathDecider的功能是根据静态障碍物做出自车的决策,对于前方的静态障碍物是忽略、stop还是nudge二、PathDecider的具体逻辑如下:1、PublicRoadPlanner 的 LaneFollowStage 配置了以下几个task 来实现具体的规划逻辑,PathDecider 是第7个task:.原创 2022-04-26 11:19:17 · 2628 阅读 · 10 评论 -
Apollo Planning决策规划算法代码详细解析 (11): PathAssessmentDecider
PathAssessmentDecider 是lanefollow 场景下,所调用的第 6个 task,属于task中的decider 类别它的作用主要是:选出之前规划的备选路径中排序最靠前的路径; 添加一些必要信息到路径中Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析https://blog.csdn.net/nn243823163/category_11685851.html?spm=1001.2014.3001.5482码字不易,辛.原创 2022-04-15 16:27:23 · 3542 阅读 · 3 评论 -
Apollo Planning决策规划算法代码详细解析 (10):PiecewiseJerkPathOptimizer
Apollo Planning决策规划系列文章Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解Apollo Planning决策规划代码详细解析 (5):规划算法流程介绍Apollo Pl...原创 2022-04-15 01:16:27 · 5431 阅读 · 6 评论 -
Apollo Planning决策规划算法代码详细解析 (9): PathBoundsDecider
Apollo Planning决策规划系列文章Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解Apollo Planning决策规划代码详细解析 (5):规划算法流程介绍Apollo Planning决策规划代码详细解...原创 2022-04-06 13:52:02 · 4145 阅读 · 11 评论 -
Apollo Planning决策规划算法代码详细解析 (8): PathLaneBorrowDecider
ApolloPlanning决策规划系列文章Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解Apollo Planning决策规划代码详细解析 (5):规划算法流程介绍Apollo Planning决策规划代码详...原创 2022-04-02 16:16:06 · 2960 阅读 · 7 评论 -
Apollo Planning决策规划算法代码详细解析 (7): PathReuseDecider
Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解Apollo Planning决策规划代码详细解析 (5):规划算法流程介绍Apollo Planning决策规划代码详细解析原创 2022-04-02 12:14:13 · 2456 阅读 · 7 评论 -
Apollo Planning决策规划算法代码详细解析 (6):LaneChangeDecider
Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解Apollo Planning决策规划代码详细解析 (5):规划算法流程介绍正文如下:一、概述LaneChangeDec原创 2022-04-02 01:20:02 · 5326 阅读 · 4 评论 -
Apollo Planning决策规划算法代码详细解析 (5):规划算法流程介绍
Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行Apollo Planning决策规划代码详细解析 (4):Stage逻辑详解之前的章节介绍了planning模块的整体框架,经过scenario与stage的选择,便进入了具体的task任务...原创 2022-03-30 18:08:14 · 5609 阅读 · 6 评论 -
Apollo Planning决策规划算法代码详细解析 (4):Stage逻辑详解
Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行Apollo Planning决策规划代码详细解析 (3):stage执行之前的章节讲到,Apollo在每个palnning周期首先决策当前处于哪个场景Scenario下面的哪个状态stage当中,本章节以最常用的LaneFollowStage为例,介绍了Stage如何注册task,以及原创 2022-03-24 15:23:03 · 3325 阅读 · 6 评论 -
Apollo Planning决策规划算法代码详细解析 (3):stage执行
Apollo Planning决策规划系列文章:Apollo Planning决策规划代码详细解析 (1):Scenario选择Apollo Planning决策规划代码详细解析 (2):Scenario执行通过之前章节的介绍,在经过Scenario的决策与执行之后,Apollo已经可以确定目前处于对应场景下的对应stage,接下来就进入stage类的内部,通过Process() 函数来进行具体的规划过程。本章节将以 LANE_FOLLOW 场景的 LANE_FOLLOW_DEFAULT_S..原创 2022-03-23 19:26:01 · 4251 阅读 · 5 评论 -
Apollo Planning决策规划算法代码详细解析 (2):Scenario执行
上一章节讲Scenario的决策逻辑,当确认当前Scenario后,本章节继续深入讲解在代码中,Scenario的执行过程。Scenario的Process()函数根据配置文件顺序执行stage,并判断目前处于哪个stage。当确认好stage后调用该stage对应的Process()函数,来进行具体的规划任务。码字不易,喜欢的朋友们麻烦点个关注与赞。在本文你将学到下面这些内容:Scenario的Process()函数的作用于调用方式; Scenario对象的初始化方法; 如何给每个Scen原创 2022-03-23 14:51:38 · 5088 阅读 · 0 评论 -
Apollo Planning决策规划算法代码详细解析 (1):Scenario选择
本文重点讲解Apollo代码中怎样配置Scenario以及选择当前Scenario,Scenario决策是Apollo规划算法的第一步,本文会对代码进行详细解析,也会梳理整个决策流程,码字不易,喜欢的朋友们麻烦点个关注与赞。在本文你将学到下面这些内容:规划器planer的种类; 规划器planer的主要函数及逻辑; 场景管理类ScenarioManager的运行机制; 场景注册方法; 场景决策流程,如何选择当前场景 详细的apollo决策规划代码分析代码具体过程如下:1、Scenar原创 2022-03-22 18:11:59 · 15106 阅读 · 5 评论