@@ -211,11 +211,11 @@ TEST(LaserSegmentationTest, filterSegments) {
211
211
212
212
// Set the parameters
213
213
nav2_util::declare_parameter_if_not_declared (
214
- node, " min_points_segment" , rclcpp::ParameterValue (2 ));
214
+ node, " min_points_segment" , rclcpp::ParameterValue (1 ));
215
215
nav2_util::declare_parameter_if_not_declared (
216
- node, " max_points_segment" , rclcpp::ParameterValue (4 ));
216
+ node, " max_points_segment" , rclcpp::ParameterValue (3 ));
217
217
nav2_util::declare_parameter_if_not_declared (
218
- node, " min_avg_distance_from_sensor" , rclcpp::ParameterValue (0.1 ));
218
+ node, " min_avg_distance_from_sensor" , rclcpp::ParameterValue (1.0 ));
219
219
nav2_util::declare_parameter_if_not_declared (
220
220
node, " max_avg_distance_from_sensor" , rclcpp::ParameterValue (10.0 ));
221
221
nav2_util::declare_parameter_if_not_declared (
@@ -228,19 +228,15 @@ TEST(LaserSegmentationTest, filterSegments) {
228
228
node, " noise_reduction" , rclcpp::ParameterValue (0.1 ));
229
229
node->configure ();
230
230
231
- // Set a segment list with 1 segments
231
+ // Set a segment list with 0 segments
232
232
std::vector<slg::Segment2D> segment_list;
233
- slg::Segment2D segment;
234
- segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
235
- segment_list.push_back (segment);
236
- // Filter the segments
237
233
auto filtered_segments = node->filter_segments (segment_list);
238
234
// Check the filtered segments
239
235
EXPECT_EQ (filtered_segments.size (), 0 );
240
236
241
237
// Set a segment list with 4 segments of 1 point
242
238
segment_list.clear ();
243
- segment. clear () ;
239
+ slg::Segment2D segment;
244
240
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
245
241
segment_list.push_back (segment);
246
242
segment_list.push_back (segment);
@@ -251,60 +247,82 @@ TEST(LaserSegmentationTest, filterSegments) {
251
247
// Check the filtered segments
252
248
EXPECT_EQ (filtered_segments.size (), 0 );
253
249
254
- // Set a segment list with 1 segment with centroid below the minimum distance
250
+ // Set a segment list with 2 segments with centroid below the minimum distance
255
251
segment_list.clear ();
256
252
segment.clear ();
257
253
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
258
254
segment_list.push_back (segment);
255
+ segment.clear ();
256
+ segment.add_point (slg::Point2D (0.5 , 0.5 , slg::BACKGROUND));
257
+ segment_list.push_back (segment);
259
258
// Filter the segments
260
259
filtered_segments = node->filter_segments (segment_list);
261
260
// Check the filtered segments
262
261
EXPECT_EQ (filtered_segments.size (), 0 );
263
262
264
- // Set a segment list with 1 segment with centroid above the maximum distance
263
+ // Set a segment list with 2 segments with centroid above the maximum distance
265
264
segment_list.clear ();
266
265
segment.clear ();
267
266
segment.add_point (slg::Point2D (11.0 , 11.0 , slg::BACKGROUND));
268
267
segment_list.push_back (segment);
268
+ segment.clear ();
269
+ segment.add_point (slg::Point2D (12.0 , 12.0 , slg::BACKGROUND));
270
+ segment_list.push_back (segment);
269
271
// Filter the segments
270
272
filtered_segments = node->filter_segments (segment_list);
271
273
// Check the filtered segments
272
274
EXPECT_EQ (filtered_segments.size (), 0 );
273
275
274
- // Set a segment list with 1 segment with width below the minimum width
276
+ // Set a segment list with 2 segments with width below the minimum width
275
277
segment_list.clear ();
276
278
segment.clear ();
277
279
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
278
280
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
279
281
segment_list.push_back (segment);
282
+ segment.clear ();
283
+ segment.add_point (slg::Point2D (1.0 , 1.0 , slg::BACKGROUND));
284
+ segment.add_point (slg::Point2D (1.0 , 1.0 , slg::BACKGROUND));
285
+ segment_list.push_back (segment);
280
286
// Filter the segments
281
287
filtered_segments = node->filter_segments (segment_list);
282
288
// Check the filtered segments
283
289
EXPECT_EQ (filtered_segments.size (), 0 );
284
290
285
- // Set a segment list with 1 segment with width above the maximum width
291
+ // Set a segment list with 2 segments with width above the maximum width
286
292
segment_list.clear ();
287
293
segment.clear ();
288
294
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
289
295
segment.add_point (slg::Point2D (10.0 , 10.0 , slg::BACKGROUND));
290
296
segment_list.push_back (segment);
297
+ segment.clear ();
298
+ segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
299
+ segment.add_point (slg::Point2D (15.0 , 15.0 , slg::BACKGROUND));
300
+ segment_list.push_back (segment);
291
301
// Filter the segments
292
302
filtered_segments = node->filter_segments (segment_list);
293
303
// Check the filtered segments
294
304
EXPECT_EQ (filtered_segments.size (), 0 );
295
305
296
- // Set a segment list with 1 segment with 2 points
306
+ // Set a segment list with 2 segment with 2 points
297
307
segment_list.clear ();
298
308
segment.clear ();
299
309
segment.add_point (slg::Point2D (0.0 , 0.0 , slg::BACKGROUND));
300
310
segment.add_point (slg::Point2D (1.0 , 1.0 , slg::BACKGROUND));
311
+ std::cout << " Width: " << segment.width_squared () << std::endl;
312
+ std::cout << " Centroid: " << segment.centroid ().x << " " << segment.centroid ().y << std::endl;
313
+ segment_list.push_back (segment);
314
+ segment.clear ();
315
+ segment.add_point (slg::Point2D (2.0 , 2.0 , slg::BACKGROUND));
316
+ segment.add_point (slg::Point2D (3.0 , 3.0 , slg::BACKGROUND));
317
+ std::cout << " Width: " << segment.width_squared () << std::endl;
318
+ std::cout << " Centroid: " << segment.centroid ().x << " " << segment.centroid ().y << std::endl;
301
319
segment_list.push_back (segment);
302
320
// Filter the segments
303
321
filtered_segments = node->filter_segments (segment_list);
304
322
// Check the filtered segments
305
323
EXPECT_EQ (filtered_segments.size (), 1 );
306
- EXPECT_EQ (filtered_segments[0 ].centroid ().x , 0 .5 );
307
- EXPECT_EQ (filtered_segments[0 ].centroid ().y , 0 .5 );
324
+ EXPECT_EQ (filtered_segments[0 ].centroid ().x , 2 .5 );
325
+ EXPECT_EQ (filtered_segments[0 ].centroid ().y , 2 .5 );
308
326
}
309
327
310
328
int main (int argc, char ** argv)
0 commit comments