Skip to content

Commit 8fbed2e

Browse files
qwetqwelx18233184051
authored andcommitted
Planning:fix traffic light scenarion selection bug
Planning always use traffic light unprotected scenario in turn left lane Change-Id: I009535e584df4b76d4038594201b112d7e93d103
1 parent 24f1829 commit 8fbed2e

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

modules/planning/scenarios/scenario_manager.cc

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,8 @@ ScenarioConfig::ScenarioType ScenarioManager::SelectTrafficLightScenario(
515515

516516
bool traffic_light_scenario = false;
517517
bool red_light = false;
518-
518+
bool left_turn_signal = false;
519+
const auto hdmap_ptr = HDMapUtil::BaseMapPtr();
519520
// note: need iterate all lights to check no RED/YELLOW/UNKNOWN
520521
for (const auto& traffic_light_overlap : next_traffic_lights) {
521522
const double adc_distance_to_traffic_light =
@@ -538,7 +539,15 @@ ScenarioConfig::ScenarioType ScenarioManager::SelectTrafficLightScenario(
538539
ADEBUG << "traffic_light_id[" << traffic_light_overlap.object_id
539540
<< "] start_s[" << traffic_light_overlap.start_s << "] color["
540541
<< signal_color << "]";
541-
542+
apollo::hdmap::Id signal_id;
543+
signal_id.set_id(traffic_light_overlap.object_id);
544+
auto signal = hdmap_ptr->GetSignalById(signal_id)->signal();
545+
for (auto subsignal : signal.subsignal()) {
546+
if (subsignal.type() == apollo::hdmap::Subsignal::ARROW_LEFT) {
547+
left_turn_signal = true;
548+
break;
549+
}
550+
}
542551
if (signal_color != perception::TrafficLight::GREEN) {
543552
red_light = true;
544553
break;
@@ -565,7 +574,7 @@ ScenarioConfig::ScenarioType ScenarioManager::SelectTrafficLightScenario(
565574
scenario_config.start_traffic_light_scenario_distance()) {
566575
traffic_light_unprotected_right_turn_scenario = true;
567576
}
568-
} else if (left_turn) {
577+
} else if (left_turn && !left_turn_signal) {
569578
// check TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN
570579
const auto& scenario_config =
571580
config_map_[ScenarioConfig::TRAFFIC_LIGHT_UNPROTECTED_LEFT_TURN]

0 commit comments

Comments
 (0)