在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就需要看源码了。
主要配置的proto定义
在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。
RTK
对应modules/planning/planner/rtk
PUBLIC_ROAD
对应modules/planning/planner/public_road
NAVI
对应modules/planning/planner/navi
LATTICE
对应modules/planning/planner/lattice