我是靠谱客的博主 激动小蚂蚁,最近开发中收集的这篇文章主要介绍Apollo 星火计划课程笔记 ---- PredictionApollo 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的生成方式有什么不同。

最后

以上就是激动小蚂蚁为你收集整理的Apollo 星火计划课程笔记 ---- PredictionApollo Prediction的全部内容,希望文章能够帮你解决Apollo 星火计划课程笔记 ---- PredictionApollo Prediction所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部