0%
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代表曲线的阶数

- 这种方法的缺点是,除了起始点和终点,其它控制点不能保证会被得到的曲线经过
- 生成一条光滑的曲线,涉及到两方面,一方面是目标,另一方面是工具
- Smoothing Spline 具有一些特殊的性质,在给定边界的条件下,它是一个多项式,可以找到最优解
- Spline 2D
- 一个 Piecewise Polynomial 是一维的函数,描述二维曲线是不够的,这时候就有一个 Spline 2D
- 把曲线分成 N 截,每节曲线段它的 X 坐标是一个 Polynomial ,Y 坐标也是一个 Polynomial
- 如下图所示,用 5 阶多项式来表示 X 和Y,称之为 Quintic Spline(五次样条)

- 这种表示有一个很好的特性,就是目标函数具有旋转不变性
- 为了使曲线足够平滑,让它在 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 更好处理,对一些极端情况处理更好
参考资料