参考: 【干货篇】轻舟智航:自动驾驶中的决策规划技术(附视频回放 +PPT 下载) - AIQ
如图所示,
各模块介绍
定位模块主要负责解答的问题是"车现在在哪里",是在道路上还是在路口,是在高架桥上还是在停车场里。
感知模块则负责解答"车周围有什么"这个问题。
预测模块,预测模块主要解答"周围的车现在想干什么",比如前面的车要cut in,预测模块就会给出前方车辆切入本车道的意图。(所以有他车意图预测的这个任务)
预测对于高级别自动驾驶的决策规划是非常关键的,就像人开车一样,通常都会通过预测周围交通参与者的行为来灵活调整当前的动作。所以预测越智能,最后自动驾驶的行为也越智能。
高精度地图的作用
对于感知来说,利用高精度地图的信息可以过滤掉障碍物。像马路牙子上一般不太可能停大卡车,高速公路上一般也不太可能有横穿马路的行人,所以感知通常会通过高精度地图信息来做一些预处理
预测也会利用高精度地图中的语义信息去预测车辆行为。比如路口有一辆车正停在左转车道上,那么预测模块会根据这个信息来判断,在接下来绿灯亮时它大概率会左转,而不会直行或右转。
决策规划模块
主要通过接收上游的定位、地图和预测信息,来决定车辆应该怎么走。
决策规划模块会根据自身当前位置和状态以及周围路况,输出一条轨迹 下发给下游控制模块,然后控制模块 将轨迹信息转译成可发送给下游执行器的命令,如油门、刹车、方向盘角度等等,控制车辆按照规划的路径去行驶。
主要包括三个子模块,分别是导航模块、决策模块和轨迹规划模块.
导航模块
首先是导航模块,我们开车出去或要远行都会首先拿出手机地图软件选定一个目的地,然后规划一条路线(此时的路线还是比较粗粒度的, 只是一个routing的信息)。 对于自动驾驶来说,导航模块 功能也是类似,主要在给定地图上任意两点a点和b点之后,寻找一条从a点到b点的导航路线。以上图为例,假如车辆位置是a点,然后又给定了终点b点,导航模块最终会根据路网信息来决定应该通过什么样的车道级路线到达b点。
决策--车道决策
对于自动驾驶来说,一般包含两级决策,第一级决策叫做车道决策,指在路上行驶时,我们是应该保持当前车道直行,还是借旁边车道再返回本车道,或因为某个目的而进行变道(上图分别对应这三种情况)
障碍物决策
当有了车道决策和障碍物决策后,就可以共同为下游的轨迹规划提供一个可行解空间,做进一步的轨迹优化了。
最后一个部分就是轨迹规划,主要指当我们给定导航路线,以及车道决策、障碍物决策后,怎么去定量地规划一条从当前位置指向目的地的轨迹。
通常轨迹规划所输出的轨迹需要满足一些性质,第一是一定要保证安全,不能与周围的障碍物发生碰撞;第二是需要比较舒适,加减速尽量平滑,在通过一些曲率比较大的路口时,速度也不要太快;第三是要求遵守交通规则,满足道路限速,遇到人行横道上的行人要礼貌让行。满足以上要求后,还要求轨迹能尽量快地将车辆引导到目的地。