Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(object_type_panel): update rosparam name config #6347

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -60,76 +60,125 @@
modules_ = {
"avoidance",
"avoidance_by_lane_change",
"dynamic_avoidance",
"lane_change",
"start_planner",
"goal_planner",
"crosswalk",
"surround_obstacle_checker",
"obstacle_cruise (inside)",
"obstacle_cruise (outside)",
"obstacle_stop",
"obstacle_slowdown"};

// Parameter will be investigated for targets in each module
targets_ = {"car", "truck", "bus", "trailer", "unknown", "bicycle", "motorcycle", "pedestrian"};

// TODO(Horibe): If the param naming strategy is aligned, this should be done automatically based
// on the modules_ and targets_.

// default
ParamNameEnableObject default_param_name;
default_param_name.name.emplace("car", "car");
default_param_name.name.emplace("truck", "truck");
default_param_name.name.emplace("bus", "bus");
default_param_name.name.emplace("trailer", "trailer");
default_param_name.name.emplace("unknown", "unknown");
default_param_name.name.emplace("bicycle", "bicycle");
default_param_name.name.emplace("motorcycle", "motorcycle");
default_param_name.name.emplace("pedestrian", "pedestrian");

// avoidance
{
const auto module = "avoidance";
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "avoidance.target_object";
param_name.name.emplace("car", "car.is_target");
param_name.name.emplace("truck", "truck.is_target");
param_name.name.emplace("bus", "bus.is_target");
param_name.name.emplace("trailer", "trailer.is_target");
param_name.name.emplace("unknown", "unknown.is_target");
param_name.name.emplace("bicycle", "bicycle.is_target");
param_name.name.emplace("motorcycle", "motorcycle.is_target");
param_name.name.emplace("pedestrian", "pedestrian.is_target");
param_name.ns = "avoidance.target_filtering.target_type";
param_name.name = default_param_name.name;
param_names_.emplace(module, param_name);
}

// avoidance_by_lane_change
{
const auto module = "avoidance_by_lane_change";
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "avoidance_by_lane_change.target_object";
param_name.name.emplace("car", "car.is_target");
param_name.name.emplace("truck", "truck.is_target");
param_name.name.emplace("bus", "bus.is_target");
param_name.name.emplace("trailer", "trailer.is_target");
param_name.name.emplace("unknown", "unknown.is_target");
param_name.name.emplace("bicycle", "bicycle.is_target");
param_name.name.emplace("motorcycle", "motorcycle.is_target");
param_name.name.emplace("pedestrian", "pedestrian.is_target");
param_name.ns = "avoidance_by_lane_change.target_filtering.target_type";
param_name.name = default_param_name.name;
param_names_.emplace(module, param_name);
}

// lane_change
{
const auto module = "lane_change";
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "lane_change.target_object";
param_name.name = default_param_name.name;
param_names_.emplace(module, param_name);
}

// start_planner
{
const auto module = "start_planner";

Check warning on line 126 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L126

Added line #L126 was not covered by tests
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "start_planner.path_safety_check.target_filtering.object_types_to_check";
param_name.name.emplace("car", "check_car");
param_name.name.emplace("truck", "check_truck");
param_name.name.emplace("bus", "check_bus");
param_name.name.emplace("trailer", "check_trailer");
param_name.name.emplace("unknown", "check_unknown");
param_name.name.emplace("bicycle", "check_bicycle");
param_name.name.emplace("motorcycle", "check_motorcycle");
param_name.name.emplace("pedestrian", "check_pedestrian");
param_names_.emplace(module, param_name);
}

Check warning on line 140 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L140

Added line #L140 was not covered by tests

// goal_planner
{
const auto module = "goal_planner";

Check warning on line 144 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L144

Added line #L144 was not covered by tests
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "goal_planner.path_safety_check.target_filtering.object_types_to_check";
param_name.name.emplace("car", "check_car");
param_name.name.emplace("truck", "check_truck");
param_name.name.emplace("bus", "check_bus");
param_name.name.emplace("trailer", "check_trailer");
param_name.name.emplace("unknown", "check_unknown");
param_name.name.emplace("bicycle", "check_bicycle");
param_name.name.emplace("motorcycle", "check_motorcycle");
param_name.name.emplace("pedestrian", "check_pedestrian");
param_names_.emplace(module, param_name);
}

Check warning on line 158 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L158

Added line #L158 was not covered by tests

// dynamic_avoidance
{
const auto module = "dynamic_avoidance";

Check warning on line 162 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L162

Added line #L162 was not covered by tests
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner";
param_name.ns = "dynamic_avoidance.target_object";
param_name.name = default_param_name.name;
param_names_.emplace(module, param_name);
}

Check warning on line 169 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L169

Added line #L169 was not covered by tests

// crosswalk
{
const auto module = "crosswalk";

Check warning on line 173 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L173

Added line #L173 was not covered by tests
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner";
param_name.ns = "crosswalk.object_filtering.target_object";
param_name.name = default_param_name.name;
param_names_.emplace(module, param_name);
}

Check warning on line 180 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L180

Added line #L180 was not covered by tests

// obstacle cruise (inside)
{
const auto module = "obstacle_cruise (inside)";
Expand All @@ -152,6 +201,24 @@
param_names_.emplace(module, param_name);
}

// surround_obstacle_check
{
const auto module = "surround_obstacle_checker";

Check warning on line 206 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L206

Added line #L206 was not covered by tests
ParamNameEnableObject param_name;
param_name.node =
"/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker";
param_name.ns = "";
param_name.name.emplace("car", "car.enable_check");
param_name.name.emplace("truck", "truck.enable_check");
param_name.name.emplace("bus", "bus.enable_check");
param_name.name.emplace("trailer", "trailer.enable_check");
param_name.name.emplace("unknown", "unknown.enable_check");
param_name.name.emplace("bicycle", "bicycle.enable_check");
param_name.name.emplace("motorcycle", "motorcycle.enable_check");
param_name.name.emplace("pedestrian", "pedestrian.enable_check");
param_names_.emplace(module, param_name);
}

Check warning on line 220 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L220

Added line #L220 was not covered by tests

Check warning on line 221 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)

❌ Getting worse: Large Method

TargetObjectTypePanel::setParameters increases from 98 to 155 lines of code, threshold = 70. Large functions with many lines of code are generally harder to understand and lower the code health. Avoid adding more lines to this function.
// obstacle stop
{
const auto module = "obstacle_stop";
Expand Down Expand Up @@ -225,7 +292,8 @@
continue;
}

std::string param_name = module_params.ns + "." + module_params.name.at(target);
std::string param_name =
(module_params.ns.empty() ? "" : module_params.ns + ".") + module_params.name.at(target);

Check warning on line 296 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)

❌ Getting worse: Complex Method

TargetObjectTypePanel::updateMatrix increases in cyclomatic complexity from 14 to 15, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.

Check warning on line 296 in common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp

View check run for this annotation

Codecov / codecov/patch

common/tier4_target_object_type_rviz_plugin/src/target_object_type_panel.cpp#L296

Added line #L296 was not covered by tests
auto parameter_result = parameters_client->get_parameters({param_name});

if (!parameter_result.empty()) {
Expand Down
Loading