决策规划planning模块简要分析
入口
初始化
Planning模块的初始化见Planning::Init()
(apollo/modules/planning/planning.cc)。
业务逻辑
Planning模块的业务逻辑见Planning::RunOnce()
(apollo/modules/planning/planning.cc),该函数每隔一段时间执行一次(100ms?),由定时器Planning::OnTimer
定时调用。
定时任务Planning::RunOnce()大体步骤如下:
- 获取定位数据与底盘数据
AdapterManager::GetLocalization()->GetLatestObserved()
AdapterManager::GetChassis()->GetLatestObserved()
- 计算拼接轨迹
TrajectoryStitcher::ComputeStitchingTrajectory
- 根据拼接轨迹进行决策
Planning::Plan()
决策Planning::Plan()大体步骤:
- 调用
planner
子模块Planner::Plan()
进行实际决策 - 输出决策结果
ReferenceLineInfo::ExportDecision()