Apollo 星火计划课程笔记 ---- Prediction

Apollo Prediction

  • 基本概念
  • 流程概览
  • 预处理模块
  • 评价模块(参考文献)
  • 轨迹生成模块(简)

定义:对无人车周围的障碍物未来N秒的行为轨迹进行预测。
目标:接收原始的感知/定位/地图信息,预测周围障碍物未来的行为轨迹,用以知道无人车下一步的运动规划。

在这里插入图片描述

难点:

  • 上游输入的局限性(误差,干扰,延迟,etc.)
  • 交通参与者意向的不可预测性 (目标障碍物变不变道?)
  • 具体行驶路线的不可预测性(加速变道还是怎么变道?)

责任边界:

  • 只将常规的交通状况纳入考虑范畴,预测最大的几个可能性。
  • 尽可能确保粗动作的可靠性的基础上,降低细化轨迹的误差。

预测并不是处理道路上所有行为和一切情况。

预处理:
把障碍物值得考虑的信息综合整理成算法能够理解的内容

评价器:
评估障碍物将会执行各种动作的可能性

轨迹生成器:
相当于后处理,将障碍物可能采取的动作细化描述为运动轨迹

函数调用顺序:
PredictionComponent::Proc()调用PredictionEndToEndProc()

PredictionEndToEndProc()调用OnPerception()

Apollo所有Component,都应该看Proc()函数。

预测流程

在这里插入图片描述

预处理模块:

  • 将障碍物投影到高精地图上

    • 使用分段树粗略地找出障碍物附近的车道。分段树的具体实现方式可查看AABoxKDTree2dNode类

    • 尝试将障碍物投影到粗筛出的车道上,查看其Frenet坐标是否再车道的给定范围内。对应函数SetCurrentLanes()
      在这里插入图片描述

    • 除了所在车道以外,也同时找出其附近车道。对应函数:SetNearbyLanes()

    • 建立用车道id来检索障碍物和交汇口的类:ObstacleClusters

  • 忽略部分障碍物:
    不满足以下全部4个条件的障碍物将被忽略(任意满足一条都不会ignore)

    • 在车道附近、在自车后方-2m往前的行人障碍物
    • 在自车前方80m,左右6m范围内的障碍物
    • 在车道线上的障碍物
    • 在自车将会经过的那个交叉口附近的障碍物
  • 生成障碍物可能选择的动作(BuildLaneGraph)
    在这里插入图片描述

    为什么分成那么多Lane?障碍物出现投影的时候,一段一段进行比对。如果特别长的时候,比对的效率就特别低。也就是把Lane多层分级,会增加搜索效率。

    • 从障碍物出发的位置开始,向前搜索一段固定距离,或障碍物速度乘以固定时间的距离
    • 先搜索障碍物所在车道的所有可能车道序列(LaneSequence)
    • 再搜索障碍物附近车道的所有可能车道序列
  • 设置重点关注障碍物(CAUTION),对应函数AssignCautionLevel()

    • 基本判断根据:距离自车60m范围内对应函数:SetCautionIfCloseToEgo()

    • 如果自车再交叉路由附近,将交叉路口内的障碍物都设为CAUTION,对应函数:AssignCautionLevelInJunction()
      在这里插入图片描述

    • 在自车车道序列上,自车前方最近的障碍物设为CAUTION

    • 在自车的目标车道序列上,在自车前后方最近的障碍物设为CAUTION,对应函数为:AssignCautionLevelCruiseChangeLane()
      在这里插入图片描述

    • 找出自车将要行驶的道路上的交叉口和汇入口,分两种形式:

      • 并道 (Merge)
      • 交叠 (Overlap)
      • 对应函数:AssignCautionLevelByEgoReference()
        在这里插入图片描述

      使用ObstacleClusters在这条Lane上,有什么障碍物。

    • 即将横穿你要形式的车道的行人
      对应函数:AssignCautionLevelPedestrainByEgoReferenceLine()
      在这里插入图片描述

    • 如果重点关注障碍物过多,根据距离远近,筛选出距离自车最近的几个障碍物重点关注。Apollo Caution设置的是6,剩余的还原成NORMAL,暂时不考虑。

评估模块Evaluator

  1. LaneSequencePredictor

    在这里插入图片描述

    生成的轨迹就是灰色虚线。

  2. MoveSequencePredictor
    在这里插入图片描述

    MoveSequencePredictor 生成的轨迹合理很多。

作业:

  • 预测判断”重点关注障碍物“的标准有哪些,流程是怎么样的?你还想到有哪些判断标准应该被纳入考虑?
  • 轨迹生成器是如何针对车辆在道路上的行动生成具体轨迹的?LaneSequence和MoveSequence的生成方式有什么不同。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值