2.motion panning with autonomous driving

   上一节讲了自动驾驶一些基本的硬件框架以及软件框架,还有一些路径规划的基本概念以及需要考虑的问题,比如路径平滑、交通规则等。本节将讲述自动驾驶中常用的路径规划的方法,约束问题的抽象表达以及路径的平滑等问题。

 motion planning常用的方法有:

apollo motion planner 学习总结2

apollo motion planner 学习总结2

上面这些方法考虑的都是质点模型,车辆是一个刚体,规划过程中,需要考虑刚体与刚体会相交,质点是不会相交,同时,刚体还需要考虑heading等因素

apollo motion planner 学习总结2

 constraint(约束条件)的类型有:障碍物,车辆的转弯半径-曲率,以及最短路径等

apollo motion planner 学习总结2

  在连续空间中,求最短路径不好求,解决办法就是先离散化,然后在离散空间中求最优解,然后扩展到连续空间。

apollo motion planner 学习总结2

离散以后,就可以利用A star等路径规划的方法求解了。

apollo motion planner 学习总结2

现在常用的离散方法有:

apollo motion planner 学习总结2

现在主要的离散化方法使用potential field,用微分的方法直接去处理。

apollo motion planner 学习总结2

RRT:随机撒点

apollo motion planner 学习总结2

apollo motion planner 学习总结2

apollo motion planner 学习总结2

RRT节点之间用折线连接,在节点出不够平滑

apollo motion planner 学习总结2

Lattice利用网格化来离散,利用动态规划来简化运算。

apollo motion planner 学习总结2

     轨迹规划中不仅要将路径离散化,同时也要将时间离散化,当考虑时间以后,动态规划就不好做了,比如,你以1m/s的速度行驶会有一个车辆相遇,当你以2m/s行驶时,情况就不一样了。

apollo motion planner 学习总结2

上图把车辆运动分为沿着道路走的横向运动以及纵向运动。

高维空间的优化问题,就先降维处理,分为path和speed分开最优化,如下图所示节点与节点之间用螺旋线链接。

apollo motion planner 学习总结2

 apollo motion planner 学习总结2

Convex optimization凸优化空间。凸优化在图空间里面有唯一解。

apollo motion planner 学习总结2

从平滑性的角度出发,先生成一些spline,然后再从贝塞尔曲线找这些点,上图是先优化再平滑。

但是这样仍旧有问题:用越高阶的函数去平滑优化后的路径,则平滑后的曲线与优化的路径相差会越大,这样车辆在行驶过程中,如何能保证安全性,比如不撞到障碍物。

总结:

离散求约束条件下的轨迹方法有:

apollo motion planner 学习总结2

第一个就是网格化,通过动态规划的方法将他降维成一个polynomial,polynomial也是一种quadratic programming.

第二个三维空间的search,需要考虑几何形状,路径里面需要包括车的heading,以及bounded model,整个车至少需要当成一个刚体考虑,三位空间的优化方法包括直接在三维空间里面优化,或者是path speed iterative,降维以后处理每个子问题,然后通过不断迭代的方式去寻找最优解,先生成最优的path,然后再生成最优path下的speed,然后根据最优的speed,再生成最优的path,但这种迭代的方式收敛到的不是最优解,可能是一个local 最优。

第三个就是利用动态规划来简化运算,简化那些需要重复计算的。

第四个是一个二次优化问题,在空间中速度非常快,可以找到一个最优解,但是要求空间是凸的,

Smooth spline以及spiral path这些都是连接两个点能够光滑连接的一个方法,贝塞尔曲线是另一种处理方法,贝塞尔就是先生成一些离散的点,然后再平滑,但是平滑曲线阶数高了以后,安全性不好保证。

相关文章: