-
Notifications
You must be signed in to change notification settings - Fork 674
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
feat(autoware_detected_object_validation): add height filter in lanelet filtering #10003
Changes from 6 commits
a451986
bbe92b0
f2d08cb
1a08968
f722682
f94bdcf
7206f1d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -1,4 +1,4 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||
// Copyright 2022 TIER IV, Inc. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Check warning on line 1 in perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)❌ New issue: Overall Code Complexity
|
||||||||||||||||||||||||||||||||||||||||||||||||||
// | ||||||||||||||||||||||||||||||||||||||||||||||||||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
// you may not use this file except in compliance with the License. | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -66,6 +66,12 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
filter_settings_.debug = declare_parameter<bool>("filter_settings.debug"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
filter_settings_.lanelet_extra_margin = | ||||||||||||||||||||||||||||||||||||||||||||||||||
declare_parameter<double>("filter_settings.lanelet_extra_margin"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
filter_settings_.use_height_threshold = | ||||||||||||||||||||||||||||||||||||||||||||||||||
declare_parameter<bool>("filter_settings.use_height_threshold"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
filter_settings_.max_height_threshold = | ||||||||||||||||||||||||||||||||||||||||||||||||||
declare_parameter<double>("filter_settings.max_height_threshold"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
filter_settings_.min_height_threshold = | ||||||||||||||||||||||||||||||||||||||||||||||||||
declare_parameter<double>("filter_settings.min_height_threshold"); | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
// Set publisher/subscriber | ||||||||||||||||||||||||||||||||||||||||||||||||||
map_sub_ = this->create_subscription<autoware_map_msgs::msg::LaneletMapBin>( | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -146,6 +152,17 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
RCLCPP_ERROR(get_logger(), "Failed transform to %s.", lanelet_frame_id_.c_str()); | ||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
// vehicle base pose :map -> base_link | ||||||||||||||||||||||||||||||||||||||||||||||||||
try { | ||||||||||||||||||||||||||||||||||||||||||||||||||
ego_base_height_ = tf_buffer_ | ||||||||||||||||||||||||||||||||||||||||||||||||||
.lookupTransform( | ||||||||||||||||||||||||||||||||||||||||||||||||||
lanelet_frame_id_, "base_link", transformed_objects.header.stamp, | ||||||||||||||||||||||||||||||||||||||||||||||||||
rclcpp::Duration::from_seconds(0.5)) | ||||||||||||||||||||||||||||||||||||||||||||||||||
.transform.translation.z; | ||||||||||||||||||||||||||||||||||||||||||||||||||
} catch (const tf2::TransformException & ex) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
RCLCPP_ERROR_STREAM(get_logger(), "Failed to get transform: " << ex.what()); | ||||||||||||||||||||||||||||||||||||||||||||||||||
return; | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
Check warning on line 165 in perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)❌ New issue: Complex Method
Check warning on line 165 in perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp Codecov / codecov/patchperception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp#L165
|
||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @YoshiRi
Suggested change
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks! Fixed in 7206f1d. |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
if (!transformed_objects.objects.empty()) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
// calculate convex hull | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -199,6 +216,16 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||
return false; | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
// 0. check height threshold | ||||||||||||||||||||||||||||||||||||||||||||||||||
if (filter_settings_.use_height_threshold) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
const double object_height = transformed_object.shape.dimensions.z; | ||||||||||||||||||||||||||||||||||||||||||||||||||
if ( | ||||||||||||||||||||||||||||||||||||||||||||||||||
object_height > ego_base_height_ + filter_settings_.max_height_threshold || | ||||||||||||||||||||||||||||||||||||||||||||||||||
object_height < ego_base_height_ + filter_settings_.min_height_threshold) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
return false; | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
Check warning on line 228 in perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)❌ Getting worse: Complex Method
Check warning on line 228 in perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main)❌ New issue: Bumpy Road Ahead
|
||||||||||||||||||||||||||||||||||||||||||||||||||
bool filter_pass = true; | ||||||||||||||||||||||||||||||||||||||||||||||||||
// 1. is polygon overlap with road lanelets or shoulder lanelets | ||||||||||||||||||||||||||||||||||||||||||||||||||
if (filter_settings_.polygon_overlap_filter) { | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@YoshiRi
Please add description which frame_id is based for these parameters?
I think it should be
map/lanelet_frame_id_
as there is a transformation tolanelet_frame_id_
atautoware.universe/perception/autoware_detected_object_validation/src/lanelet_filter/lanelet_filter.cpp
Lines 149 to 154 in f83aa01
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Fixed in the latest test.