Apollo星火计划学习笔记|预测模块

系列文章目录

L1 Apollo平台安装

L2 CyberRT学习

L5 Routing简介

L7 控制模块

L8 预测模块


基本概念

定义:接收原始感知/定位/地图信息,对无人车周围的障碍物未来n秒的行为轨迹进行预测,指导无人车下一步的运动轨迹
在这里插入图片描述难点:

  • 上游输入的局限性
  • 交通参与者的不可预测性
  • 具体路线行驶的不可预测性
    责任边界:
    将常规的交通状况纳入考虑范畴,同时主要预测大动作。

流程概览

step1:预处理(把障碍物信息综合整理为算法能够理解的内容)
将障碍物投影到高敬地图
首先使用分段树粗略找出障碍物附近的车道 ,详见AABOXKDTREE2D()。判断障碍物的坐标是否在粗筛出的车道上,详见SetCurrentLanes()。同时也会找出障碍物附近五米的车道。最后以车道id为索引建立类ObstacleCluster。
忽略一部分不重要的障碍物
需要注意的障碍物有:车道附近(2m)的行人、车辆前方80m内,左右6m范围内的障碍物、交叉路口障碍物。
生成障碍物可能选择的动作
先搜索所在车道可能的车道序列,再搜索附近车道的所有可能序列。
选择要注意的障碍物
等级分为:ignore,normal和caution,详见AssignCautionLevel。

step2:评价器(评估障碍物会执行各种动作的可能性)
evaluator用于评估障碍物在动作空间的可能性,大部分都是深度学习模型,有少量的基于规则的模型。

step3:轨迹生成器(类似后处理,将障碍物的动作细化为运动轨迹)
一共有三类predictor:FreeMovePredictor、LanceSequencePredictor和MoveSequencePredictor。
FreeMovePredictor主要预测不在路上所有类型的障碍物以及行人行为,通过运动学进行推断,可信度较低。
LaneSequencePredictor分析在车道线上车辆类型障碍物(normal级别)未来的行为。纵向:固定车速推进;横向: l t = r a t t r e s . l 0 一 般 设 置 r a = 0.9 m , t r e s = 0.1 s l_t=r_a^{\frac{t}{ t_{res}}}.l_0 一般设置ra=0.9m,t_res= 0.1s lt=ratrest.l0ra=0.9mtres=0.1s在这里插入图片描述

MoveSequencePredictor分析在车道线上车辆类型障碍物(caution级别)未来的行为。本质是多项式拟合,希望用一个光滑的曲线链接始末点,同时满足一些额外的限制,如加速度等。可以细分为纵向和横向。纵向处理需要满足的约束有初始位置,初始速度,初始加速度,终末位置,终末速度共5个,因此至少需要一个四阶多项式拟合;横向处理需要满足的约束有初始位置,初始速度,终末位置,终末速度。需要一个三阶多项式拟合。
在这里插入图片描述

Apollo相关代码

详见APOLLO/modules/Prediction。
PredictionComponent::Proc()调用PredictionEndToEndProc()
PredictionEndToEndProc()调用Onperception()

参考文献

公众号关于预测的文章
蛇老师的代码解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值