@开发者,请收下这封有关“Apollo轨迹规划”的大帖

百度 Apollo 团队上一场的技术分享爆棚全场,以至于交流当天不得不临时再建一个微信群以承载大家的热情。

这次,百度 Apollo 团队又为我们带来了什么?

轨迹规划是无人驾驶系统的核心模块之一。轨迹规划模块承接上游感知、预测、决策等模块,规划无人驾驶车一段时间内的具体的驾驶行为,以轨迹的形式输出给下游控制模块执行。轨迹规划算法的优劣直接决定了无人驾驶车的安全性和舒适性,在无人驾驶系统中发挥着至关重要的作用。

在百度 Apollo 无人驾驶开源平台中,轨迹规划分为路径规划和速率规划两个顺序过程。路径规划结合道路边界线、静态障碍物的信息,产生轨迹的几何信息。速率规划在给定的路径下,考虑动态障碍物的预测轨迹、道路限速信息和决策信息,产生安全舒适的速率分配。

在这次分享中,我们将讨论:

1. 在 Frenet 坐标系下的轨迹规划的路径和速率分解

2. 基于离散分段的路径规划算法

3. 基于离散分段的速率规划算法

目前文章和交流实录都已经出炉
直接扫描下方二维码就能获取

只需 0.99 元哦

??


@开发者,请收下这封有关“Apollo轨迹规划”的大帖_第1张图片


当晚的交流特别酣畅淋漓,

同学们都不愿意放老师休息了

不信你看同学们问的那些问题

问:每个实时规划的初始状态量,比如 s、速度、加速度等是以车体底盘实时反馈为主还是从组合导航获得,还是说通过一定方式从上帧规划结果获得参考量?交给控制去执行的连续两帧轨迹如何联系起来,才能保证控制模块在连接处速度、加速度、曲率等不发生突变?

答:这个问题非常好,在今天的分享中没有专门的介绍。我这里简要描述一下,车辆的状态是由上游的定位模块获得的,融合了多种传感器的数据,包括当前地图坐标系下的坐标、朝向、转向角度、速度、加速度等等。

轨迹规划模块以固定的频率进行,我们使用了轨迹拼接的算法(trajectory stitching)保证相邻帧的轨迹在控制器看来是平滑的。假设我们的周期时间是 dt 秒,如果我们没有上一周期的轨迹,那我们使用运动学模型, 对当前从定位模块获得的车辆状态进行外推,获得dt时间之后的状态作为规划起始点,我们称之为重新规划(replan);如果上一周期的轨迹存在,我们会根据当前系统时间 T,在上一周期的轨迹中找到相对应的轨迹点,然后,我们进行一个比较,比较这个轨迹点与定位模块获得的当前车辆状态的差异,如果这个差异在一定范围内,我们找到 T+dt 时间的上一周期轨迹点作为规划起始点;如果这个差异超过设定范围,说明控制器有了较大的误差,我们会做第一种情况的 replan。

这种机制保证了在控制误差允许的情况下,做到相邻帧轨迹的平滑拼接。在控制器看起来,规划模块发出的轨迹是一小段一小段 dt 长度的轨迹光滑拼接起来的。

问:路径规划的分段加加速度优化算法中,架设障碍物在车道中间,可通行区间被分割成了上下两个区间,约束条件不再是简单的一个[lmin,lmax],而变为或条件,请问这种情况要怎么处理?

答:对于同一个离散点,我们会有不同的区间。我们设计了一个类,称为 PathBoundsDecider,会处理不连续的区间。在实现中,我们会将不同的区间使用启发式方法加以排序,在时间允许的情况下,对每一种离散的区间都做路径规划。

还有几十个问题回答都在当晚的交流实录里

直接扫描下方二维码即可获取

关键只要 0.99 元

??

@开发者,请收下这封有关“Apollo轨迹规划”的大帖_第2张图片



你可能感兴趣的:(@开发者,请收下这封有关“Apollo轨迹规划”的大帖)