一 Lattice 算法
以预测、routing、高精度地图和定位的结果作为输入,通过算法输出一条平稳、安全、舒适的轨迹,最后交给控制模块去执行。
二 算法工作流程
1.Sample Candidate Trajectories 采样候选轨迹
2.Assign Candidate Trajectories 分配候选轨迹
3.选择最低代价的轨迹 碰撞检测和道路限制
4.输出轨迹
三 Lattice Planner的采样过程
第一步 在Frenet坐标系下采样一个T1时刻的末状态
第二步 将初状态和末状态做多项式拟合。分别形成横向和纵向的多项式轨迹。
第三步 二维合成 给定时刻t,可以计算出横向和纵向偏移量,在通过参考线即 可还原成一个二维平面中的轨迹点。多个轨迹点连接起来,最终形成一条完整的轨迹。
四 如何采样横向轨迹和纵向轨迹
采样横向轨迹
横向轨迹的采样需要涵盖多种横向运动状态。设计三个末状态横向偏移量,-0.5,0.0,0.5,以及四个到达这些横向偏移量的纵向位移,
分别为10,20,30,40。用两层循环遍历各种组合,在通过多项式拟合,即可获得一系列的横向轨迹。
采样纵向轨迹
考虑巡航、跟车或超车、停车这三种状态。
五 轨迹COST的实现方法
- 到达目的地的cost。有停车指令时,速度大cost就大;无停车指令,速度小,代价大;
- 横向偏移cost;
- 碰撞cost;
- 纵向加加速度(jerk)cost;cost等于加加速度的最大值
- 横向加速度的cost;
- 向心加速度的cost;
开发者根据产品需要调试留个cost的占比权重。