20 #include <unordered_map> 24 #include "modules/planning/proto/planning_config.pb.h" 37 bool Init(
const PlanningConfig& planning_config);
43 void Update(
const common::TrajectoryPoint& ego_point,
const Frame& frame);
46 void Observe(
const Frame& frame);
48 std::unique_ptr<Scenario> CreateScenario(
49 ScenarioConfig::ScenarioType scenario_type);
51 void RegisterScenarios();
53 ScenarioConfig::ScenarioType SelectBareIntersectionScenario(
56 ScenarioConfig::ScenarioType SelectPullOverScenario(
const Frame& frame);
58 ScenarioConfig::ScenarioType SelectPadMsgScenario(
const Frame& frame);
60 ScenarioConfig::ScenarioType SelectIntersectionScenario(
const Frame& frame);
62 ScenarioConfig::ScenarioType SelectStopSignScenario(
65 ScenarioConfig::ScenarioType SelectTrafficLightScenario(
68 ScenarioConfig::ScenarioType SelectValetParkingScenario(
const Frame& frame);
70 ScenarioConfig::ScenarioType SelectYieldSignScenario(
73 ScenarioConfig::ScenarioType SelectParkAndGoScenario(
const Frame& frame);
75 void ScenarioDispatch(
const Frame& frame);
76 ScenarioConfig::ScenarioType ScenarioDispatchLearning();
77 ScenarioConfig::ScenarioType ScenarioDispatchNonLearning(
const Frame& frame);
79 bool IsBareIntersectionScenario(
80 const ScenarioConfig::ScenarioType& scenario_type);
81 bool IsStopSignScenario(
const ScenarioConfig::ScenarioType& scenario_type);
82 bool IsTrafficLightScenario(
83 const ScenarioConfig::ScenarioType& scenario_type);
84 bool IsYieldSignScenario(
const ScenarioConfig::ScenarioType& scenario_type);
86 void UpdatePlanningContext(
const Frame& frame,
87 const ScenarioConfig::ScenarioType& scenario_type);
89 void UpdatePlanningContextBareIntersectionScenario(
90 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
92 void UpdatePlanningContextEmergencyStopcenario(
93 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
95 void UpdatePlanningContextPullOverScenario(
96 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
98 void UpdatePlanningContextStopSignScenario(
99 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
101 void UpdatePlanningContextTrafficLightScenario(
102 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
104 void UpdatePlanningContextYieldSignScenario(
105 const Frame& frame,
const ScenarioConfig::ScenarioType& scenario_type);
108 std::shared_ptr<DependencyInjector> injector_;
109 PlanningConfig planning_config_;
110 std::unordered_map<ScenarioConfig::ScenarioType, ScenarioConfig,
113 std::unique_ptr<Scenario> current_scenario_;
114 ScenarioConfig::ScenarioType default_scenario_type_;
118 first_encountered_overlap_map_;
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Planning module main class. It processes GPS and IMU as input, to generate planning info...
Frame holds all data for one planning cycle.
Definition: frame.h:61
Definition: dependency_injector.h:29
DependencyInjector * injector()
Definition: scenario_manager.h:41
Scenario * mutable_scenario()
Definition: scenario_manager.h:39
void Update(const common::TrajectoryPoint &ego_point, const Frame &frame)
Definition: scenario.h:39
Definition: scenario_manager.h:31
bool Init(const PlanningConfig &planning_config)
Definition: scenario.h:41
OverlapType
Definition: reference_line_info.h:222