Skip to content

Commit 0be0c01

Browse files
committed
fix: add lacking parameter callback
Signed-off-by: taisa1 <kento.osa@tier4.jp>
1 parent 5dbd0f1 commit 0be0c01

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

perception/ground_segmentation/src/scan_ground_filter_nodelet.cpp

+36
Original file line numberDiff line numberDiff line change
@@ -642,17 +642,48 @@ void ScanGroundFilterComponent::filter(
642642
rcl_interfaces::msg::SetParametersResult ScanGroundFilterComponent::onParameter(
643643
const std::vector<rclcpp::Parameter> & p)
644644
{
645+
if (get_param(p, "grid_size_m", grid_size_m_)) {
646+
grid_mode_switch_grid_id_ = grid_mode_switch_radius_ / grid_size_m_;
647+
grid_size_rad_ =
648+
normalizeRadian(std::atan2(grid_mode_switch_radius_ + grid_size_m_, virtual_lidar_z_)) -
649+
normalizeRadian(std::atan2(grid_mode_switch_radius_, virtual_lidar_z_));
650+
tan_grid_size_rad_ = std::tan(grid_size_rad_);
651+
RCLCPP_DEBUG(get_logger(), "Setting grid_size_m to: %f.", grid_size_m_);
652+
RCLCPP_DEBUG(
653+
get_logger(), "Setting grid_mode_switch_grid_id to: %f.", grid_mode_switch_grid_id_);
654+
RCLCPP_DEBUG(get_logger(), "Setting grid_size_rad to: %f.", grid_size_rad_);
655+
RCLCPP_DEBUG(get_logger(), "Setting tan_grid_size_rad to: %f.", tan_grid_size_rad_);
656+
}
657+
if (get_param(p, "grid_mode_switch_radius", grid_mode_switch_radius_)) {
658+
grid_mode_switch_grid_id_ = grid_mode_switch_radius_ / grid_size_m_;
659+
grid_mode_switch_angle_rad_ = std::atan2(grid_mode_switch_radius_, virtual_lidar_z_);
660+
grid_size_rad_ =
661+
normalizeRadian(std::atan2(grid_mode_switch_radius_ + grid_size_m_, virtual_lidar_z_)) -
662+
normalizeRadian(std::atan2(grid_mode_switch_radius_, virtual_lidar_z_));
663+
tan_grid_size_rad_ = std::tan(grid_size_rad_);
664+
RCLCPP_DEBUG(get_logger(), "Setting grid_mode_switch_radius to: %f.", grid_mode_switch_radius_);
665+
RCLCPP_DEBUG(
666+
get_logger(), "Setting grid_mode_switch_grid_id to: %f.", grid_mode_switch_grid_id_);
667+
RCLCPP_DEBUG(
668+
get_logger(), "Setting grid_mode_switch_angle_rad to: %f.", grid_mode_switch_angle_rad_);
669+
RCLCPP_DEBUG(get_logger(), "Setting grid_size_rad to: %f.", grid_size_rad_);
670+
RCLCPP_DEBUG(get_logger(), "Setting tan_grid_size_rad to: %f.", tan_grid_size_rad_);
671+
}
645672
double global_slope_max_angle_deg{get_parameter("global_slope_max_angle_deg").as_double()};
646673
if (get_param(p, "global_slope_max_angle_deg", global_slope_max_angle_deg)) {
647674
global_slope_max_angle_rad_ = deg2rad(global_slope_max_angle_deg);
675+
global_slope_max_ratio_ = std::tan(global_slope_max_angle_rad_);
648676
RCLCPP_DEBUG(
649677
get_logger(), "Setting global_slope_max_angle_rad to: %f.", global_slope_max_angle_rad_);
678+
RCLCPP_DEBUG(get_logger(), "Setting global_slope_max_ratio to: %f.", global_slope_max_ratio_);
650679
}
651680
double local_slope_max_angle_deg{get_parameter("local_slope_max_angle_deg").as_double()};
652681
if (get_param(p, "local_slope_max_angle_deg", local_slope_max_angle_deg)) {
653682
local_slope_max_angle_rad_ = deg2rad(local_slope_max_angle_deg);
683+
local_slope_max_ratio_ = std::tan(local_slope_max_angle_rad_);
654684
RCLCPP_DEBUG(
655685
get_logger(), "Setting local_slope_max_angle_rad to: %f.", local_slope_max_angle_rad_);
686+
RCLCPP_DEBUG(get_logger(), "Setting local_slope_max_ratio to: %f.", local_slope_max_ratio_);
656687
}
657688
double radial_divider_angle_deg{get_parameter("radial_divider_angle_deg").as_double()};
658689
if (get_param(p, "radial_divider_angle_deg", radial_divider_angle_deg)) {
@@ -663,9 +694,14 @@ rcl_interfaces::msg::SetParametersResult ScanGroundFilterComponent::onParameter(
663694
RCLCPP_DEBUG(get_logger(), "Setting radial_dividers_num to: %zu.", radial_dividers_num_);
664695
}
665696
if (get_param(p, "split_points_distance_tolerance", split_points_distance_tolerance_)) {
697+
split_points_distance_tolerance_square_ =
698+
split_points_distance_tolerance_ * split_points_distance_tolerance_;
666699
RCLCPP_DEBUG(
667700
get_logger(), "Setting split_points_distance_tolerance to: %f.",
668701
split_points_distance_tolerance_);
702+
RCLCPP_DEBUG(
703+
get_logger(), "Setting split_points_distance_tolerance_square to: %f.",
704+
split_points_distance_tolerance_square_);
669705
}
670706
if (get_param(p, "split_height_distance", split_height_distance_)) {
671707
RCLCPP_DEBUG(get_logger(), "Setting split_height_distance to: %f.", split_height_distance_);

0 commit comments

Comments
 (0)