在看Apollo预测部分代码时,一开始被很多的模块搞晕了,一时不知从何下手。而且网上没能找到比较有价值的解析代码结构的博客,因此,在理清了预测部分的结构之后,想到写一篇博客,供同样学习预测模块的伙伴们参考。本篇博客只涉及结构解析,不进行具体的算法分析,如有错误,恳请批评指正。
预测模块的工作是预测感知模块检测到的障碍物的行为。整个模块的输入是障碍物信息(位置、速度、加速度、方位角)、本车的规划轨迹、本车定位信息; 输出是障碍物的预测轨迹及其概率。预测模块与其他模块的关系如图所示。

预测模块主要包括四个部分:container、scenario、evaluator和predictor。
其中,container负责存储输入数据,包括PoseContainer、ADCTrajectoryContainer和ObstacleContainer,分别存储本车定位信息,本车已规划的轨迹信息和障碍物信息。
scenario的作用是分析本车所处场景。
evaluator的作用是预测障碍物的路径和速度,并给出一个概率。
predictor负责生成障碍物的预测轨迹。
调用这些模块

本文详细解析了Apollo自动驾驶系统中的预测模块,包括container、scenario、evaluator和predictor四个部分的功能。container存储输入数据,scenario分析场景,evaluator预测障碍物路径和速度,predictor生成预测轨迹。重点介绍了prediction_component.cc、message_process.cc、scenario_manager.cc、evaluator_manager.cc和predictor_manager.cc中的关键函数和流程,为学习Apollo预测模块提供了清晰的指导。
7257

被折叠的 条评论
为什么被折叠?



