@@ -642,17 +642,48 @@ void ScanGroundFilterComponent::filter(
642
642
rcl_interfaces::msg::SetParametersResult ScanGroundFilterComponent::onParameter (
643
643
const std::vector<rclcpp::Parameter> & p)
644
644
{
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
+ }
645
672
double global_slope_max_angle_deg{get_parameter (" global_slope_max_angle_deg" ).as_double ()};
646
673
if (get_param (p, " global_slope_max_angle_deg" , global_slope_max_angle_deg)) {
647
674
global_slope_max_angle_rad_ = deg2rad (global_slope_max_angle_deg);
675
+ global_slope_max_ratio_ = std::tan (global_slope_max_angle_rad_);
648
676
RCLCPP_DEBUG (
649
677
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_);
650
679
}
651
680
double local_slope_max_angle_deg{get_parameter (" local_slope_max_angle_deg" ).as_double ()};
652
681
if (get_param (p, " local_slope_max_angle_deg" , local_slope_max_angle_deg)) {
653
682
local_slope_max_angle_rad_ = deg2rad (local_slope_max_angle_deg);
683
+ local_slope_max_ratio_ = std::tan (local_slope_max_angle_rad_);
654
684
RCLCPP_DEBUG (
655
685
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_);
656
687
}
657
688
double radial_divider_angle_deg{get_parameter (" radial_divider_angle_deg" ).as_double ()};
658
689
if (get_param (p, " radial_divider_angle_deg" , radial_divider_angle_deg)) {
@@ -663,9 +694,14 @@ rcl_interfaces::msg::SetParametersResult ScanGroundFilterComponent::onParameter(
663
694
RCLCPP_DEBUG (get_logger (), " Setting radial_dividers_num to: %zu." , radial_dividers_num_);
664
695
}
665
696
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_;
666
699
RCLCPP_DEBUG (
667
700
get_logger (), " Setting split_points_distance_tolerance to: %f." ,
668
701
split_points_distance_tolerance_);
702
+ RCLCPP_DEBUG (
703
+ get_logger (), " Setting split_points_distance_tolerance_square to: %f." ,
704
+ split_points_distance_tolerance_square_);
669
705
}
670
706
if (get_param (p, " split_height_distance" , split_height_distance_)) {
671
707
RCLCPP_DEBUG (get_logger (), " Setting split_height_distance to: %f." , split_height_distance_);
0 commit comments