前言
本课程由Apollo平台架构师是樊昊阳主讲,一共是7堂课,属于框架性讲解,需课后自行补充理论知识。下面是随堂记录。

课程一 —— 规划基本概述
规划的本质是搜索最优解问题

现有常用方法如下:

在这里插入图片描述
最基本的两种路径规划方法的基本思想:广度优先BFS、深度优先DFS

A是BFS的基础上往DFS上靠:启发函数。A是目前最广泛最基础的算法。但A star是全局规划,需要对整个环境全知(fully observed)。但智能车很多时候是particularly observed dynamic environment,所以A*一般只用在global routing中(百度地图,且有优化和修改)

在这里插入图片描述
一般紧急情况,驾驶员反应操作时间为400 ~ 500ms,Apollo要求在200 ~ 300ms。

Apollo软件架构:动态信息:perception(感知模块)、localization(定位模块)获得的信息。静态信息:HD map(高精地图:可避免线上处理数据过大,提升速度)。

在这里插入图片描述

在这里插入图片描述

本次课程要论述的问题

在这里插入图片描述
课程二 —— motion planning的基本方法
本堂课讲解motion planning approach,其目录:

在这里插入图片描述
目前针对估计规划问题,学术上已存在各种方法,引用某文献的综述:

在这里插入图片描述

在这里插入图片描述

D*虽然可以用在局部规划中(非全知环境),但他把车辆看作质点,未考虑车辆的动力学性质。因此并不适用于无人车的局部规划。Configuration space就是从数学意义上讲就是那些控制变量可以控制位置和姿态,针对无人车则为自行车模型等。

约束分类:

在这里插入图片描述
路线平滑的定义:曲率,一阶导,二阶导连续

离散化:随机撒点和网格化

在这里插入图片描述
RRT为局部规划,对未知环境进行随机撒点。

在这里插入图片描述
像随机撒点或RRT出现的路线不平滑,且在结构化道路上没必要随机撒点,计算量会指数增长,因此引出在S-D和S-L坐标系下切片撒点离散方法:lattice(动态规划)

动态规划的本质:将重复计算的东西记录下来,以降低计算量。

撒点计算完成后如何连接这些点:螺旋曲线、多项式曲线。另外一种路径和车速分开规划的方法《A Real-Time Motion Planner with Trajectory Optimization for Autonomous Vehicles》

在这里插入图片描述
除了离散化的方法,还有一种:functional optimization。将优化目标函数,此时一般会涉及凸优化的二次规划问题《Trajectory planning for Bertha — A local, continuous method》,二次规划求解速度特别快,但要求目标函数和搜索范围均为凸。但无人车一般为非凸问题。

还有一种方法,先得出解,然后在进行平滑处理。但是平滑后的路径可能会又撞上障碍物,可用插值方法解决上述问题,但会出现龙格现象。

课程三 —— motion planning的理论基础1
本堂课讲motion planning with environment,其目录为

在这里插入图片描述

第一步:设定Configuration space

在这里插入图片描述

第二步:S-L坐标系:一般用于结构化道路上。笛卡尔坐标系和S-L坐标系如何mapping:从SL到XY的mapping是1对1的有具体公式,但XY到SL不是一一对应关系,也很难mapping 如车辆调头场景。

在这里插入图片描述

在这里插入图片描述
S-L坐标系下,只有中心线平滑才能保证轨迹有可能平滑。

在这里插入图片描述

在这里插入图片描述
第三步:研究障碍物是否相交:针对图方块,可用超平面定理

在这里插入图片描述

课程四 —— motion planning的理论基础2
评价有路径是否平滑,就是看曲率是否连续,曲率不能是阶梯函数,另外也可以看曲线的高阶导数是否连续。在平滑时一定注意掉头场景:平滑后可能会撞到马路牙子。

在这里插入图片描述

在这里插入图片描述
高阶的多项式在平滑时还有可能出现龙格现象,如下图,因此可以用分段多项式解决该问题。

在这里插入图片描述

贝塞尔曲线也可以用来平滑

在这里插入图片描述

还有螺旋曲线

在这里插入图片描述

上述的方法:先生成一些点,然后再用曲线进行连接和平滑。会存在一些问题:1)平滑后可能出现碰撞的情况。但piecewise
polynomial是比较好的平滑解决方法:把曲线分成很多节,每节都是一个polynomial

在这里插入图片描述

所以轨迹生成用到动态规划,轨迹平滑用二次规划。
课程五 —— motion planning的理论基础3
求极值时,泰勒展开公式中,用一阶项逼近是二分法(指数收敛),用二阶项逼近是牛顿法(指数平方收敛)。二次规划的核心就是用二阶导数寻找最优解。

在这里插入图片描述

但如果是下面这种问题,单纯的牛顿法容易困在局部最优解,因此可以分段(动态规划)后再进行牛顿法(二次规划)。动态规划是切片撒点行为,可以对环境有大概的感知,然后针对性的进行二次规划求全局最优解。这是Apollo决策规划EM planner的核心思想,是一种启发式搜索。
动态规划也可以解决决策问题,因为它对环境有了大概的感知,因此可以对这种问题进行决策:前方有障碍物,本车应从左侧超车还是从右侧超车。此时可以将非凸问题转化为图问题,然后用二次规划求解。

在这里插入图片描述

二次规划问题详解:二次规划为凸优化,主要求解高维二次的极值问题。这种问题最优解要不再边界上,要不再最终点。

在这里插入图片描述

二次规划的等式约束

在这里插入图片描述

在这里插入图片描述


二次规划的不等式约束

在这里插入图片描述

课程六 —— EM planner
EM的主要思想:求解高维问题时无法同时优化,因此分为多个低维问题进行求解,可得到局部最优解。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

课程七 —— 增强学习和数据驱动
决策可以用POMDP,RL,IRL等
(这节课讲述了前沿性学术研究,不在累述)