Lecture 3 + Lecture 4 + Lecture 5





目录

  • Lecture 3 + Lecture 4 + Lecture 5
  • 车辆运动模型及SL坐标系
  • SL坐标系下曲线平滑度的要求
  • 用Smoothing Spline生成平滑曲线
  • Spline 2D
  • 二次规划与牛顿法
  • 二次规划 QP




车辆运动模型及SL坐标系

运动模型为Ackermann模型,即自行车模型;SL坐标系即Frenet坐标系。模型和坐标系老生常谈了,这里就不记录啦。



SL坐标系下曲线平滑度的要求

  • 平滑的体现:曲率在一定范围内连续变化
  • SL系下曲线平滑程度很大程度上取决于道路中心线的平滑程度
  • 不能只平滑曲率,比如U-turn转弯时,如果仅对曲率进行平滑而不考虑xy坐标的话,很可能曲率平滑了但车辆会碰撞到马路边缘。

用Smoothing Spline生成平滑曲线

曲线平滑经过顶点python 平滑曲线定义_Apollo

确保曲线经过一系列控制点(或其周围一定范围内的box),在此约束下生成光滑曲线。

  • 数学工具:Smoothing Spline
  • 平滑性的度量:

其中f(x)为坐标系下曲线的表达,第一个表达式表示最小化路径长度,第二个表达式为第一个的简化表达。用n阶导数^2作为目标函数,即使(n-1)阶导数的length达到min,即对(n-2)阶导数进行平滑。尝试画一个图理解一下:

曲线平滑经过顶点python 平滑曲线定义_动态规划_02

  • Smoothing Spline可以帮助满足起始点和终止点的边界条件,且多项式的形式容易计算
  • 当曲线中间出现障碍物,要修正时,可以采用分段多项式,利用泰勒展开去逼近上一步的最优解


Spline 2D

曲线平滑经过顶点python 平滑曲线定义_曲线平滑经过顶点python_03



二次规划与牛顿法

  • 牛顿法:泰勒展开逼近
  • 二次规划:当已知convex problem的二阶导数时,已更快的方式找到最优解。
  • 二次规划的局限:需要问题是凸问题,否则就有收敛到局部极小的可能。
  • Apollo EM Planner的思路:组合优化,先通过动态规划找粗略解,把粗略解提供给二次规划,构造凸空间求解,提高二次规划收敛到全局最优解的可能性。这是一种“启发式搜索”的思想。这和人开车的思路是很像的,需要先有一个“指导思想”。
  • 当问题是凸问题时,二次规划的最优解要么落在边界,要么落在导数为零处。


二次规划 QP

  • 无约束时,导数为零求解。
  • 有等式约束时,引入拉格朗日乘子,构造哈密顿方程,转化为无约束二次规划求解。
    当满秩时,参数没有多余自由度,无需优化,只有一个解。但是当约束很多时需要注意约束之间是否violate导致问题无解。
  • 有不等式约束时,用有效集法求解(active set)
  • 这里简单地提到了一阶必要条件(KKT条件)和有效集法,很笼统,不做记录了。
  • 当目标函数不是二次型,但是为凸函数时,是否还能用QP解决?思想是可以用二次型逼近,进行迭代逼近和求解