在Apollo中,有基础和探索的多种PlannerType的模式,而由于迭代比较快,文档说明、代码注释和配置文件中也并没有特别清晰的说明。
Talk is cheap, show me the code来解决吧。我们来看目前Apollo6.0中的主要代码。
比较直接的切入点是modules/planning/conf/planning_conf.pb.txt
# NO_LEARNING / E2E / HYBRID / RL_TEST / E2E_TEST / HYBRID_TEST
learning_mode: NO_LEARNING
standard_planning_config {
planner_type: PUBLIC_ROAD
planner_public_road_config {
}
}
可以看到有learning_mode和planner_type。learning_mode有注释,而planner_type就需要看源码了。
在modules/planning/proto/planning_config.proto中有
enum PlannerType {
RTK = 0;
PUBLIC_ROAD = 1; // public road planner
NAVI = 2; // navigation planner
LATTICE = 3; // lattice planner
}
可以看到有RTK、PUBLIC_ROAD、NAVI、LATTICE的四种Planner。
对应modules/planning/planner/rtk
对应modules/planning/planner/public_road
对应modules/planning/planner/navi
对应modules/planning/planner/lattice