自动驾驶之轨迹规划2——Apollo规划与控制公开课

前言

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

课程一 —— 规划基本概述

  1. 规划的本质是搜索最优解问题

  2. 现有常用方法如下:
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第1张图片

  3. 最基本的两种路径规划方法的基本思想:广度优先BFS、深度优先DFS

  4. A是BFS的基础上往DFS上靠:启发函数。A是目前最广泛最基础的算法。但A star是全局规划,需要对整个环境全知(fully observed)。但智能车很多时候是particularly observed dynamic environment,所以A*一般只用在global routing中(百度地图,且有优化和修改)
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第2张图片

  5. 一般紧急情况,驾驶员反应操作时间为400 ~ 500ms,Apollo要求在200 ~ 300ms。

  6. Apollo软件架构:动态信息:perception(感知模块)、localization(定位模块)获得的信息。静态信息:HD map(高精地图:可避免线上处理数据过大,提升速度)。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第3张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第4张图片

  7. 本次课程要论述的问题
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第5张图片

课程二 —— motion planning的基本方法

  1. 本堂课讲解motion planning approach,其目录:
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第6张图片

  2. 目前针对估计规划问题,学术上已存在各种方法,引用某文献的综述:
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第7张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第8张图片

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

  4. 约束分类:
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第9张图片

  5. 路线平滑的定义:曲率,一阶导,二阶导连续

  6. 离散化:随机撒点和网格化
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第10张图片

  7. RRT为局部规划,对未知环境进行随机撒点。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第11张图片

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

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

  10. 撒点计算完成后如何连接这些点:螺旋曲线、多项式曲线。另外一种路径和车速分开规划的方法《A Real-Time Motion Planner with Trajectory Optimization for Autonomous Vehicles》
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第12张图片

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

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

课程三 —— motion planning的理论基础1

  1. 本堂课讲motion planning with environment,其目录为
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第13张图片
  2. 第一步:设定Configuration space
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第14张图片
  3. 第二步:S-L坐标系:一般用于结构化道路上。笛卡尔坐标系和S-L坐标系如何mapping:从SL到XY的mapping是1对1的有具体公式,但XY到SL不是一一对应关系,也很难mapping 如车辆调头场景。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第15张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第16张图片
    S-L坐标系下,只有中心线平滑才能保证轨迹有可能平滑。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第17张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第18张图片
  4. 第三步:研究障碍物是否相交:针对图方块,可用超平面定理
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第19张图片

课程四 —— motion planning的理论基础2

  1. 评价有路径是否平滑,就是看曲率是否连续,曲率不能是阶梯函数,另外也可以看曲线的高阶导数是否连续。在平滑时一定注意掉头场景:平滑后可能会撞到马路牙子。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第20张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第21张图片
  2. 高阶的多项式在平滑时还有可能出现龙格现象,如下图,因此可以用分段多项式解决该问题。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第22张图片
  3. 贝塞尔曲线也可以用来平滑
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第23张图片
  4. 还有螺旋曲线
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第24张图片
  5. 上述的方法:先生成一些点,然后再用曲线进行连接和平滑。会存在一些问题:1)平滑后可能出现碰撞的情况。但piecewise
    polynomial是比较好的平滑解决方法:把曲线分成很多节,每节都是一个polynomial
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第25张图片
    所以轨迹生成用到动态规划,轨迹平滑用二次规划。

课程五 —— motion planning的理论基础3

  1. 求极值时,泰勒展开公式中,用一阶项逼近是二分法(指数收敛),用二阶项逼近是牛顿法(指数平方收敛)。二次规划的核心就是用二阶导数寻找最优解。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第26张图片
    但如果是下面这种问题,单纯的牛顿法容易困在局部最优解,因此可以分段(动态规划)后再进行牛顿法(二次规划)。动态规划是切片撒点行为,可以对环境有大概的感知,然后针对性的进行二次规划求全局最优解。这是Apollo决策规划EM planner的核心思想,是一种启发式搜索。
    动态规划也可以解决决策问题,因为它对环境有了大概的感知,因此可以对这种问题进行决策:前方有障碍物,本车应从左侧超车还是从右侧超车。此时可以将非凸问题转化为图问题,然后用二次规划求解。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第27张图片
  2. 二次规划问题详解:二次规划为凸优化,主要求解高维二次的极值问题。这种问题最优解要不再边界上,要不再最终点。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第28张图片
    二次规划的等式约束
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第29张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第30张图片
    二次规划的不等式约束
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第31张图片

课程六 —— EM planner

  1. EM的主要思想:求解高维问题时无法同时优化,因此分为多个低维问题进行求解,可得到局部最优解。
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第32张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第33张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第34张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第35张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第36张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第37张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第38张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第39张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第40张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第41张图片
    自动驾驶之轨迹规划2——Apollo规划与控制公开课_第42张图片

课程七 —— 增强学习和数据驱动

  1. 决策可以用POMDP,RL,IRL等
    (这节课讲述了前沿性学术研究,不在累述)

你可能感兴趣的:(自动驾驶软件开发,人工智能,深度学习,自动驾驶,经验分享,程序人生)