apollo中的EM Planner采用优化的思路做轨迹规划,并将轨迹分为path和speed 2部分,分别优化,求取5次多项式曲线,最终合并为一条trajectory。优化过程分为动态规划DP和二次规划QP。我打算分多篇文章介绍DP-Path、QP-Path、DP-Speed、QP-Speed 4部分对应的代码。目前只看完了DP-Path的代码,那就从这个最简单的部分开始...
这部分的代码比较抽象,但是底层逻辑与QP Path Optimizer是相同的,类和函数也是相同的,大家可以参考 silver bullet:Baidu Apollo代码解析之EM Planner中的QP Path Optimizer 313 赞同 · 0 评论文章 来理解下面的代码。 当然,对于speed的优化,Apollo使用了不同的目标函数,分为7部分,在代码注释中说明。 Status QpSp...
因为其他交通参与者的存在,使得S-L-T三维时空域是动态的,且不确定的,尤其是障碍物高速、稠密时,需要多轮路径和速度规划的迭代让轨迹收敛下来,即EM过程 本节的EM Planner路径规划的DP过程涉及到的代码链接为: modules\planning\tasks\optimizers\r...
HD-Map在 Planning 模块内作为封装了多个数据的库来使用,提供不同特点的地图数据查询需求。EM Planner执行具体的 Planning 任务,继承自Planner类。Apollo 2.0 中的EM Planner类和之前发布的RTK Planner类都继承自Planner类。 例如,在EM Planner执行的一次 Planning 循环的内部,采用迭代执行的方法,Tasks的三个类别交替执...
内容提示: 【最新版】BaiduApollo代码详细解析——EMPlanner中的DPSpeedOpt。。。 EM Planner中的速度规划,是在路径规划之后,为路径点规划合适的速度。主要包括构建STGraph,计算cost_table,规划速度三个部分。 构建STGraph主要是针对每个障碍物,⽣成StBoundary,⽤于计算cost。boundary,是边界、界限;StBoundary简单来...
EM Planner 在之前的博客中通过对论文详细学习了一遍, 这次通过代码学习一下 Apollo 的 Lattice Planner, 听说某些 ACC 等功能的量产的方案与其非常相似, 值得学习一下. 后面的过程基本上按照代码的执行顺序进行的解读.启动流程 见下图: lattice_planner_init.png...
EM Planner:下文中我们会看到,Apollo系统中内置了好几个Planner,但目前默认使用的是EM Planner,这也是专门为开放道路设计的。该模块的实现可以说是整个Planning模块的灵魂所在。因此其算法值得专门用另外一篇文章来讲解。读者也可以阅读其官方论文来了解:Baidu Apollo EM Motion Planner。
EM Planner:下文中我们会看到,Apollo系统中内置了好几个Planner,但目前默认使用的是EM Planner,这也是专门为开放道路设计的。该模块的实现可以说是整个Planning模块的灵魂所在。因此其算法值得专门用另外一篇文章来讲解。读者也可以阅读其官方论文来了解:《Baidu Apollo EM Motion Planner》。 Planning模块是一个比较大的...
Apollo项目Planning模块的EMPlanner中使用动态规划生成代价(Cost)最小的多项式路径(DP路径,见Apollo项目中的DPRoadGraph类)和速度(DP速度,见Apollo项目中的DpStGraph类),DP路径算法和DP速度算法的示意性描述如下图所示(来自百度Apollo项目公开课PPT): ▲图1. DP路径算法 ▲图2. DP速度算法 DP路径算法的基本思路是,...