plan模块需求(一):整体需求

文章目录

0. 参考文献

【1】https://github.com/tier4/AutowareArchitectureProposal.proj/blob/master/design/Planning/Planning.md

1. plan模块作用

plan模块是自动驾驶的大脑,它利用定位、感知、地图等模块的输出,做出决策,并把轨迹发送给控制模块

plan模块作用如下

  1. 计算到达期望目标位置的导航路径
  2. 规划轨迹来跟踪路径:
    (1)确保没有碰撞(人车障碍等)
    (2)确保跟随交通规则,包括交通灯,停止线,交叉路口等
  3. 规划可行驶的轨迹(没有突然转向等问题)

2. use cases

plan模块要满足如下use case

  1. 将车从起点导航到终点
  2. 能保持车道
  3. 能变道
  4. 满足车速限制
  5. 符合交通信号灯
  6. 符合让行/停止信号牌
  7. 交叉路口完成转向
  8. 泊车

3. 需求

  1. 将车从起点导航到终点(uc1)
    (1)规划模块能从起始和终止位置获得起始车道线id和终止车道线id,在earth坐标系下给出,或者在map坐标系下给出
    (2)plan模块要能给出导航路径(一系列lane 序列)满足最小化cost要求
  2. 保持车道(uc2)
    (1)在左右车道线中间行驶
    (2)和其他车至少有2s的间距(这里可以根据法规来
  3. 能换道(uc3)
    (1)换道时机:
    a. 全局路径要求换道(在接近路口前不换刀怎么保证的?
    b. 当前的线路被block了(换了要重新全局规划嘛?
    (2)换道前要打3s转向灯
    (3)要在本车道保持3s中,给其他车辆提醒
    (4)和其他车辆保持2s的车距(可以讨论
    (5)要在路口前30s完成换道
    (6)满足如下条件放弃换道:
    a. 车辆仍然在原先车道内
    b. 和其他车辆没有 保持车距
  4. 满足车速限制(uc4)
    (1)轨迹点的速度限制要低于当前车道的车速限制
  5. 满足交通信号灯要求(uc5)
    (1)plan模块能拿到当前车道线对应的交通信号灯
    (2)轨迹点的速度要保证能在红灯停止线前停下来,要留有足够的停车距离
  6. 在路口左右转(uc6)
    (1)除非车辆有路权,不然要停车让行?(这个可以根据情况再讨论讨论
  7. 泊车(uc8)
    (1)泊车过程不能碰撞(人车路肩障碍)要考虑障碍物的轨迹和自身的轨迹
  8. 通用需求
    (1)要满足来自控制模块的需求:
    (2)轨迹的速度曲线要在acc和jerk的限制范围内,除非遇到紧急状况
    (3)满足车辆运动学约束
    (4)横向acc和jerk要在限制范围之内
    (5)规划轨迹的前n个点不能变,保证车辆运动的连续性:n=vehicle speed * t_configure

4. 输入

  1. 车辆当前位姿
  2. 车辆当前车速
  3. 地图数据:lane情况,lane几何情况,交通规则
  4. 障碍物信息
  5. 目标位姿
  6. 交通信号灯信息

5. 输出

  1. 轨迹
  2. 转向信号灯

6. 设计

将plan模块继续细分,如下图所示:
plan模块需求(一):整体需求

requirement 1 :通过missionplan来完成整体的导航路径规划
requirement 2-7:同过laneDriving Scenario来在导航路径上继续规划轨迹
requirement 8:泊车
requirement 9:所有轨迹都要满足要求才行

这里作者们研究了不同的自动驾驶库,并且得出结论是,从技术上非常难用一个统一的框架解决所有可能的场景,因此,autoware通过采用不同的planner模块并行计算,然后由scenario selector基于场景进行决策。目前,已经有两种场景添加进来:on-road和parking,后续可以进一步扩展,比如高速,in-emergency等等

scenario的方式目前还并不完善,有时候添加一个新的scenario或者在现有的scenario上添加新的feature是矛盾的。

6.1 mission planner

6.1.1 作用

计算从初始位置到终止位置的导航路径,导航路径是一系列lane。

导航路径的计算只利用静态地图信息(lane连接,lane几何,交通规则等等),动态的信息不在考虑范围之内,只要给定一个goal就有一个路径。(这里有个问题就是什么时候进行重规划

6.1.2 输入

  1. 车辆当前位姿
  2. 车辆目标位姿
  3. 静态地图

6.1.3 输出

  1. 导航路径:
    plan模块需求(一):整体需求

6.2 scenario selector

所有的场景模块算出的trajectory都会在这里进行汇总,由这个模块确定向控制发送哪一段路径。

6.2.1 输入

  1. 地图
  2. 车辆当前位置
  3. 导航路径
  4. trajecotry

6.2.2 输出

  1. 当前场景
  2. 轨迹

6.3 场景 scenario

6.3.1 作用

计算trajectory,只有当被selector选择后才工作,这里和上面的有点矛盾,得看看代码怎么解决的

6.3.2 输入

  1. 地图
  2. 导航路径
  3. 障碍物信息
  4. 场景(scenario selector给出来的)

6.3.3 输出

  1. 轨迹
  2. 转向灯信号。
上一篇:BatchNormalization


下一篇:【DB笔试面试597】在Oracle中,获取执行计划有哪几种方法?