关于Apollo5.5-7.0的planning模块初始化的不同点分析

前言

我也是刚刚接触这个项目, 在这里总结一下初始化时的两个不同点, 不然有点混乱
ps:
2021/12/28 Apollo的版本更新到了7.0 https://github.com/ApolloAuto/apollo.

问题一 : 从v5.5开始场景初始化方式不同

v5.0
配置文件路径是在planning_gflags.cc中指定的,相关内容如下:
在这里插入图片描述
接着我们看看这个路径里面的配置文件planning_config.pb.txt:
在这里插入图片描述

v5.5
配置文件路径同样是在planning_gflags.cc中指定的,相关内容如下:

在这里插入图片描述
接着我们看看这个路径里面的配置文件planning_config.pb.txt:
在这里插入图片描述
发现配置文件中的planner_public_road_config变成了空的, 为什么一个场景都没有? 这个跟程序的入口设计有关
关键看apollo/modules/planning/planner/public_road/public_road_planner.cc
的PublicRoadPlanner::Init(.)函数

v5.0的PublicRoadPlanner::Init(.):
在这里插入图片描述
可以看到是通过将planner_public_road_config里面的所有场景加入set当中,然后用这个set去对scenario_manager去初始化. scenario_manager再通过planning_gflags.cc去找各个场景的配置文件路径
在这里插入图片描述
再来看看
v5.5的PublicRoadPlanner::Init(.):
在这里插入图片描述
v6.0-7.0的PublicRoadPlanner::Init(.):
在这里插入图片描述
所以在对scenario_manager初始化时并不需要set, 而是直接去找planning_gflags.cc去找各个场景的配置文件路径完成初始化. 来看一下apollo/modules/planning/scenarios/scenario_manager.cc 的
ScenarioManager::Init(.):
在这里插入图片描述
直接先默认的场景就是LANE_FOLLOW 去初始化
至此就解释了第一个问题, 马上下面会遇到第二个问题

问题二 : 从v6.0开始,初始配置文件planning_config_file的加载方式不同

通过前文我们知道v5.0-5.5的配置文件planning_config_file是在planning_gflags.cc中指定的
来看看v6.0–7.0
配置文件路径本应该是在planning_gflags.cc中指定的,搜一下相关内容:
在这里插入图片描述
在这里插入图片描述

发现planning_gflags.cc找不到planning_config_file的路径了. 这怎么加载配置文件去初始化呢?
可能原因, 关键看apollo/modules/planning/planner/on_lane_planner_dispatcher_test.cc

我们看看v5.0-5.5的on_lane_planner_dispatcher_test.cc:

在这里插入图片描述
再看v6.0-7.0的on_lane_planner_dispatcher_test.cc:
在这里插入图片描述
第44行代码出给出了配置文件路径,所以如果该文件是要在编译当中被用到的话,那么能够解答第二个问题了

结论

从v5.5开始场景初始化方式不同 ,从v6.0开始,初始配置文件planning_config_file的加载方式不同

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值