0%

apollo学习笔记-day13

Motion Planning with Environment

  • 运动规划根据环境的变化在算法和处理方法上有很大的不同,涉及到模型建立、平滑优化和坐标转换以及障碍物投影等

Vehicle Model的建立

  • 将汽车运动模型简化为自行车模型,将四轮抽象成两个轮子,前轮中心和后轮中心的运动方向和自行车一样
  • 自行车运动的时候具有以下特点,旋转车头的时候,前轮和后轮都围绕一个中心点转动,并且后轮的转向半径(1/k)与方向盘转动角度(w)满足k=(tan(w))/L,L为前轮中心和后轮中心的距离
  • 在实际的自行车运动模型中,后轴中心是沿着如上图所示的一条平滑的轨迹运行

SL坐标系

  • 它以道路中心线为参考,S表示道路中心线的方向,L表示与道路中心线垂直的方向
  • 在结构化道路上行驶的时候,SL坐标系比XY坐标系更加贴合实际需求
  • SL坐标系到XY坐标系的投影:
    • 因为很多信息是全局的,例如红绿灯位置,参考的是XY世界坐标系
    • 在给定SL坐标系时,每一个点的S坐标本身对应一个(x_r,y_r)坐标
    • X = x_r - L * sin(theta),Y = y_r - L * cos(theta)
    • L为该点的横向偏移距离,theta是切线方向
  • XY坐标系到SL坐标系的投影:
    • SL坐标系并不是唯一的,XY会在曲线上产生很多投影
    • 投影点是经过XY坐标,且垂直于曲线的线段与曲线的交点
    • 通常情况下会增加一些限制,例如投影距离不能超曲率值

曲线平滑

  • 多项式
    • 在轨迹上以等距离的方式随机选择一些点,然后用高阶多项插值的方式来近似表示轨迹,对多项式进行优化
    • 但是高阶多项式不能用于平滑,因为高阶的多项式抖动太大,没有办法控制幅度
  • Bezier Spline
    • Bezier Spline 曲线是由一系列控制点定义的,例如P0到Pn,其中n代表曲线的阶数
    • image-20200727104345433
    • 这种方法的缺点是,除了起始点和终点,其它控制点不能保证会被得到的曲线经过
    • 生成一条光滑的曲线,涉及到两方面,一方面是目标,另一方面是工具
    • Smoothing Spline 具有一些特殊的性质,在给定边界的条件下,它是一个多项式,可以找到最优解
  • Spline 2D
    • 一个 Piecewise Polynomial 是一维的函数,描述二维曲线是不够的,这时候就有一个 Spline 2D
    • 把曲线分成 N 截,每节曲线段它的 X 坐标是一个 Polynomial ,Y 坐标也是一个 Polynomial
    • 如下图所示,用 5 阶多项式来表示 X 和Y,称之为 Quintic Spline(五次样条)
    • image-20200727104635678
    • 这种表示有一个很好的特性,就是目标函数具有旋转不变性
    • 为了使曲线足够平滑,让它在 X 坐标上的变化率,也就是三阶导的平方是最小的,Y 上的变化率三阶导也是最小的,代价函数就是这两个变化率的和
    • 端点约束条件保证节点处是平滑,需要保证 X 和 Y 方向的倒数是相等的,一般要求到三阶导都是相等的
  • Spiral Path(螺旋曲线)
    • 它通过一个极坐标形式定义
    • 一个点 S 的曲率是知道的,假设它的原点在 (0,0)的位置,可以唯一定义出一条经过 S 的曲线,也就是 Spiral Path
  • Spiral Path 和 Spline 2D 的区别
    • 任何的曲线在足够密的时候都可以用Piecewise Spiral path 或者是 Piecewise Polynomial 表示
    • 但是它们的出发点不一样,Polynomial 计算很快很简单,Spline 2D 是一个凸空间里面生成一个 Spline 曲线
    • 理论上来讲,螺旋曲线生成的线是要比 Spline 更好处理,对一些极端情况处理更好

参考资料