modules/planning/planners/public_road/README_cn.md
planning-planner-public-road 是包含PublicRoadPlanner的插件包,PublicRoadPlanner是开放道路规划器,是planning默认使用的规划器,基于场景机制进行规划。
planning模块从apollo 3.5开始使用了双层状态机的场景机制,相比于apollo 3.0之前的版本,每个驾驶用例都被当作不同的驾驶场景,现在在特定场景中报告的问题可以在不影响其他场景的工作的情况下得到修复,其中问题修复不会影响其他驾驶用例。
双层状态机的Top Layer是Scenario状态机,BottomLayer是Stage状态机。在Top Layer中进行场景切换,ScenarioManager根据周围的环境和地图信息,决定需要切换到哪个场景,如LaneFollow沿道路行驶的场景,PullOver靠边停车的场景。在Bottom Layer中进行Stage的切换,如果上个Stage已经执行完成,继续执行下一个Stage。如果所有的Stage都执行完毕,认为当前Scenario也执行完毕。
目前planning支持以下几种场景:
enable_pull_over_at_destination 设置为 true, 当车辆到达终点附近时,将自动切入 PullOverScenario 并完成靠边停车。
modules/planning/planner/public_road
├── public_road
├── conf // 配置文件
├── docs // 说明文档
├── proto // 配置定位文件
├── public_road_planner.h // PublicRoadPlanner头文件
├── public_road_planner.cc // PublicRoadPlanner源文件
├── scenario_manager.h // 场景管理类头文件
├── scenario_manager.cc // 场景管理类源文件
├── public_road_planner_test.cc // 单元测试文件
├── BUILD // 构建规则文件
├── cyberfile.xml // 包管理配置文件
├── plugins.xml // 插件描述说明文件
└── README_cn.md // 说明文档
| 文件路径 | 类型/结构 | <div style="width: 300pt">说明</div> |
|---|---|---|
modules/planning/planners/public_road/conf/planner_config.pb.txt | apollo::planning::PlannerPublicRoadConfig | PublicRoadPlanner的配置文件 |