@@ -54,6 +54,10 @@ class DarkestRockFinder : public rclcpp::Node {
5454 declare_parameter (" knn_blur_k" , default_knn_blur_k);
5555 declare_parameter (" publish_rate" , default_publish_rate);
5656 declare_parameter (" publish_debug_cloud" , true );
57+ declare_parameter (" roi_x_min" , 0.0 );
58+ declare_parameter (" roi_x_max" , 10000.0 );
59+ declare_parameter (" roi_y_min" , 180.0 );
60+ declare_parameter (" roi_y_max" , 10000.0 );
5761
5862 int queue_size = get_parameter (" queue_size" ).as_int ();
5963
@@ -91,11 +95,23 @@ class DarkestRockFinder : public rclcpp::Node {
9195 std::string map_frame = get_parameter (" map_frame" ).as_string ();
9296 float leaf = get_parameter (" voxel_leaf" ).as_double ();
9397
98+ double x_min = get_parameter (" roi_x_min" ).as_double ();
99+ double x_max = get_parameter (" roi_x_max" ).as_double ();
100+ double y_min = get_parameter (" roi_y_min" ).as_double ();
101+ double y_max = get_parameter (" roi_y_max" ).as_double ();
102+
94103 CloudI::Ptr new_points (new CloudI);
95104
96105 for (auto &det : msg->detections ) {
97106 if (det.results .empty ()) continue ;
98107
108+ double det_x = det.bbox .center .position .x ;
109+ double det_y = det.bbox .center .position .y ;
110+
111+ if (det_x < x_min || det_x > x_max || det_y < y_min || det_y > y_max) {
112+ continue ;
113+ }
114+
99115 // parse luminosity from id - lower means darker
100116 float luminosity = 255 .0f ;
101117 try {
@@ -251,4 +267,4 @@ class DarkestRockFinder : public rclcpp::Node {
251267
252268} // namespace rock_finder
253269
254- RCLCPP_COMPONENTS_REGISTER_NODE (rock_finder::DarkestRockFinder)
270+ RCLCPP_COMPONENTS_REGISTER_NODE (rock_finder::DarkestRockFinder)
0 commit comments