From ecd0ff56d789a965061b61dba3772c8a7bcf57c4 Mon Sep 17 00:00:00 2001 From: jmtao Date: Fri, 28 Sep 2018 16:14:37 -0700 Subject: [PATCH] planning: update planning_config proto --- .../conf/lane_follow_scenario_config.pb.txt | 15 ++++++++---- modules/planning/proto/planning_config.proto | 9 ++++---- .../lane_follow/lane_follow_scenario.cc | 23 +++++++++++++------ .../dp_st_speed/dp_st_graph_test.cc | 2 +- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/modules/planning/conf/lane_follow_scenario_config.pb.txt b/modules/planning/conf/lane_follow_scenario_config.pb.txt index b1e2fd8602..5f9e67e3bc 100644 --- a/modules/planning/conf/lane_follow_scenario_config.pb.txt +++ b/modules/planning/conf/lane_follow_scenario_config.pb.txt @@ -1,6 +1,11 @@ scenario_type : LANE_FOLLOW +task : DP_POLY_PATH_OPTIMIZER +task : PATH_DECIDER +task : DP_ST_SPEED_OPTIMIZER +task : SPEED_DECIDER +task : QP_SPLINE_ST_SPEED_OPTIMIZER scenario_task_config : { - task : DP_POLY_PATH_OPTIMIZER + task_type : DP_POLY_PATH_OPTIMIZER dp_poly_path_config { waypoint_sampler_config { sample_points_num_each_level: 7 @@ -28,10 +33,10 @@ scenario_task_config : { } } scenario_task_config : { - task : PATH_DECIDER + task_type : PATH_DECIDER } scenario_task_config : { - task : DP_ST_SPEED_OPTIMIZER + task_type : DP_ST_SPEED_OPTIMIZER dp_st_speed_config { total_path_length: 149 total_time: 7.0 @@ -78,7 +83,7 @@ scenario_task_config : { } } scenario_task_config : { - task : SPEED_DECIDER + task_type : SPEED_DECIDER dp_st_speed_config { total_path_length: 149 total_time: 7.0 @@ -119,7 +124,7 @@ scenario_task_config : { } } scenario_task_config : { - task : QP_SPLINE_ST_SPEED_OPTIMIZER + task_type : QP_SPLINE_ST_SPEED_OPTIMIZER qp_st_speed_config { total_path_length: 250.0 total_time: 7.0 diff --git a/modules/planning/proto/planning_config.proto b/modules/planning/proto/planning_config.proto index e64af6cc23..1651d6c030 100644 --- a/modules/planning/proto/planning_config.proto +++ b/modules/planning/proto/planning_config.proto @@ -40,10 +40,8 @@ message ScenarioConfig { INTERSECTION_TRAFFIC_LIGHT_RIGHT_TURN = 7; INTERSECTION_TRAFFIC_LIGHT_GO_THROUGH = 8; } - optional ScenarioType scenario_type = 1; - message ScenarioTaskConfig { - optional TaskType task = 1; + optional TaskType task_type = 1; oneof task_config { DpPolyPathConfig dp_poly_path_config = 2; DpStSpeedConfig dp_st_speed_config = 3; @@ -53,7 +51,10 @@ message ScenarioConfig { PathDeciderConfig path_decider_config = 7; } } - repeated ScenarioTaskConfig scenario_task_config = 2; + + optional ScenarioType scenario_type = 1; + repeated TaskType task = 2; + repeated ScenarioTaskConfig scenario_task_config = 3; } message PlannerOnRoadConfig { diff --git a/modules/planning/scenarios/lane_follow/lane_follow_scenario.cc b/modules/planning/scenarios/lane_follow/lane_follow_scenario.cc index b041520ba9..b71aa5e6a3 100644 --- a/modules/planning/scenarios/lane_follow/lane_follow_scenario.cc +++ b/modules/planning/scenarios/lane_follow/lane_follow_scenario.cc @@ -87,17 +87,26 @@ bool LaneFollowScenario::Init() { CHECK(apollo::common::util::GetProtoFromFile( FLAGS_lane_follow_scenario_config_file, &config_)); - for (const auto task_cfg : config_.scenario_task_config()) { - tasks_.emplace_back(task_factory_.CreateObject(task_cfg.task())); - AINFO << "Created task:" << tasks_.back()->Name(); + // get all active tasks + std::vector tasks; + for (int i = 0; i < config_.task_size(); ++i) { + tasks.push_back(config_.task(i)); } - for (size_t i = 0; i < tasks_.size(); ++i) { - if (!tasks_[i]->Init(config_.scenario_task_config(i))) { - AERROR << "Init task[" << tasks_[i]->Name() << "] failed."; - return false; + // init task with conf + for (int i = 0; i < config_.scenario_task_config_size(); ++i) { + auto task_cfg = config_.scenario_task_config(i); + TaskType task_type = task_cfg.task_type(); + if (std::find(tasks.begin(), tasks.end(), task_type) != tasks.end()) { + tasks_.emplace_back(task_factory_.CreateObject(task_type)); + AINFO << "Created task:" << TaskType_Name(task_type); + if (!tasks_.back()->Init(task_cfg)) { + AERROR << "Init task[" << TaskType_Name(task_type) << "] failed."; + return false; + } } } + is_init_ = true; return true; } diff --git a/modules/planning/toolkits/optimizers/dp_st_speed/dp_st_graph_test.cc b/modules/planning/toolkits/optimizers/dp_st_speed/dp_st_graph_test.cc index 58efe6ab41..a9a45d987e 100644 --- a/modules/planning/toolkits/optimizers/dp_st_speed/dp_st_graph_test.cc +++ b/modules/planning/toolkits/optimizers/dp_st_speed/dp_st_graph_test.cc @@ -43,7 +43,7 @@ class DpStGraphTest : public ::testing::Test { FLAGS_lane_follow_scenario_config_file, &config)); for (const auto& cfg : config.scenario_task_config()) { - if (cfg.task() == DP_ST_SPEED_OPTIMIZER) { + if (cfg.task_type() == DP_ST_SPEED_OPTIMIZER) { dp_config_ = cfg.dp_st_speed_config(); break; } -- GitLab