From cad370ba280e1cbcd2bb132e9477bd3f0ec36767 Mon Sep 17 00:00:00 2001 From: satoshi-ota Date: Tue, 12 Dec 2023 14:41:34 +0900 Subject: [PATCH 1/5] fix(launch): set null to avoid launch error Signed-off-by: satoshi-ota --- .../behavior_planning/behavior_planning.launch.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml index 3a1f417106f54..dbd5a757e1544 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml @@ -97,6 +97,8 @@ /> + + + + From 63d9388d28bb2f118cd56967d160f9c98682d1cb Mon Sep 17 00:00:00 2001 From: satoshi-ota Date: Tue, 12 Dec 2023 14:42:25 +0900 Subject: [PATCH 2/5] fix(behavior): check null Signed-off-by: satoshi-ota --- .../behavior_path_planner/src/behavior_path_planner_node.cpp | 4 ++++ planning/behavior_velocity_planner/src/node.cpp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp index 46057031afd8a..28f77df07f79f 100644 --- a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp +++ b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp @@ -135,6 +135,10 @@ BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & nod planner_manager_ = std::make_shared(*this, p.max_iteration_num, p.verbose); for (const auto & name : declare_parameter>("launch_modules")) { + if (name == "null") { + RCLCPP_INFO(get_logger(), "No modules are registered."); + break; + } planner_manager_->launchScenePlugin(*this, name); } diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp index 7c0036b7812fa..e830bf41636f5 100644 --- a/planning/behavior_velocity_planner/src/node.cpp +++ b/planning/behavior_velocity_planner/src/node.cpp @@ -147,6 +147,10 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio // Initialize PlannerManager for (const auto & name : declare_parameter>("launch_modules")) { + if (name == "null") { + RCLCPP_INFO(get_logger(), "No modules are registered."); + break; + } planner_manager_.launchScenePlugin(*this, name); } From f1da5f8beccde9b5ffd85883786b2999c21afd74 Mon Sep 17 00:00:00 2001 From: satoshi-ota Date: Tue, 12 Dec 2023 14:51:24 +0900 Subject: [PATCH 3/5] chore(behavior): add comment Signed-off-by: satoshi-ota --- .../behavior_path_planner/src/behavior_path_planner_node.cpp | 1 + planning/behavior_velocity_planner/src/node.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp index 28f77df07f79f..52517645cd2e1 100644 --- a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp +++ b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp @@ -135,6 +135,7 @@ BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & nod planner_manager_ = std::make_shared(*this, p.max_iteration_num, p.verbose); for (const auto & name : declare_parameter>("launch_modules")) { + // workaround: Since ROS 2 can't get empty list, launcher set ['null'] on the parameter. if (name == "null") { RCLCPP_INFO(get_logger(), "No modules are registered."); break; diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp index e830bf41636f5..164c32f9396b3 100644 --- a/planning/behavior_velocity_planner/src/node.cpp +++ b/planning/behavior_velocity_planner/src/node.cpp @@ -147,6 +147,7 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio // Initialize PlannerManager for (const auto & name : declare_parameter>("launch_modules")) { + // workaround: Since ROS 2 can't get empty list, launcher set ['null'] on the parameter. if (name == "null") { RCLCPP_INFO(get_logger(), "No modules are registered."); break; From 478e454f7c080985d2df990b6a5bb681ad24ecf9 Mon Sep 17 00:00:00 2001 From: satoshi-ota Date: Wed, 13 Dec 2023 12:36:51 +0900 Subject: [PATCH 4/5] fix(launch): set at the end of list Signed-off-by: satoshi-ota --- .../behavior_planning/behavior_planning.launch.xml | 8 ++------ .../src/behavior_path_planner_node.cpp | 5 ++--- planning/behavior_velocity_planner/src/node.cpp | 4 ++-- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml index dbd5a757e1544..c360d869070d7 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml @@ -95,9 +95,7 @@ value="$(eval "'$(var behavior_path_planner_launch_modules)' + 'behavior_path_planner::AvoidanceByLaneChangeModuleManager, '")" if="$(var launch_avoidance_by_lane_change_module)" /> - - - + @@ -176,9 +174,7 @@ value="$(eval "'$(var behavior_velocity_planner_launch_modules)' + 'behavior_velocity_planner::NoDrivableLaneModulePlugin, '")" if="$(var launch_no_drivable_lane_module)" /> - - - + diff --git a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp index 52517645cd2e1..0350aa0c35c7a 100644 --- a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp +++ b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp @@ -135,9 +135,8 @@ BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & nod planner_manager_ = std::make_shared(*this, p.max_iteration_num, p.verbose); for (const auto & name : declare_parameter>("launch_modules")) { - // workaround: Since ROS 2 can't get empty list, launcher set ['null'] on the parameter. - if (name == "null") { - RCLCPP_INFO(get_logger(), "No modules are registered."); + // workaround: Since ROS 2 can't get empty list, launcher set ['END'] on the parameter. + if (name == "END") { break; } planner_manager_->launchScenePlugin(*this, name); diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp index 164c32f9396b3..988a42bf48770 100644 --- a/planning/behavior_velocity_planner/src/node.cpp +++ b/planning/behavior_velocity_planner/src/node.cpp @@ -147,8 +147,8 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio // Initialize PlannerManager for (const auto & name : declare_parameter>("launch_modules")) { - // workaround: Since ROS 2 can't get empty list, launcher set ['null'] on the parameter. - if (name == "null") { + // workaround: Since ROS 2 can't get empty list, launcher set ['END'] on the parameter. + if (name == "END") { RCLCPP_INFO(get_logger(), "No modules are registered."); break; } From 9aef450f96586a559904f9661bd4d7f81d40c7ae Mon Sep 17 00:00:00 2001 From: satoshi-ota Date: Wed, 13 Dec 2023 13:27:04 +0900 Subject: [PATCH 5/5] fix(launch): fill empty string at the end of module list Signed-off-by: satoshi-ota --- .../behavior_planning/behavior_planning.launch.xml | 6 ++++-- .../src/behavior_path_planner_node.cpp | 4 ++-- planning/behavior_velocity_planner/src/node.cpp | 5 ++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml index c360d869070d7..4539e15a55954 100644 --- a/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml +++ b/launch/tier4_planning_launch/launch/scenario_planning/lane_driving/behavior_planning/behavior_planning.launch.xml @@ -43,6 +43,8 @@ + + - + @@ -174,7 +176,7 @@ value="$(eval "'$(var behavior_velocity_planner_launch_modules)' + 'behavior_velocity_planner::NoDrivableLaneModulePlugin, '")" if="$(var launch_no_drivable_lane_module)" /> - + diff --git a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp index 0350aa0c35c7a..4828a0d62e7f6 100644 --- a/planning/behavior_path_planner/src/behavior_path_planner_node.cpp +++ b/planning/behavior_path_planner/src/behavior_path_planner_node.cpp @@ -135,8 +135,8 @@ BehaviorPathPlannerNode::BehaviorPathPlannerNode(const rclcpp::NodeOptions & nod planner_manager_ = std::make_shared(*this, p.max_iteration_num, p.verbose); for (const auto & name : declare_parameter>("launch_modules")) { - // workaround: Since ROS 2 can't get empty list, launcher set ['END'] on the parameter. - if (name == "END") { + // workaround: Since ROS 2 can't get empty list, launcher set [''] on the parameter. + if (name == "") { break; } planner_manager_->launchScenePlugin(*this, name); diff --git a/planning/behavior_velocity_planner/src/node.cpp b/planning/behavior_velocity_planner/src/node.cpp index 988a42bf48770..5da8df9e70c35 100644 --- a/planning/behavior_velocity_planner/src/node.cpp +++ b/planning/behavior_velocity_planner/src/node.cpp @@ -147,9 +147,8 @@ BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode(const rclcpp::NodeOptio // Initialize PlannerManager for (const auto & name : declare_parameter>("launch_modules")) { - // workaround: Since ROS 2 can't get empty list, launcher set ['END'] on the parameter. - if (name == "END") { - RCLCPP_INFO(get_logger(), "No modules are registered."); + // workaround: Since ROS 2 can't get empty list, launcher set [''] on the parameter. + if (name == "") { break; } planner_manager_.launchScenePlugin(*this, name);