-
Notifications
You must be signed in to change notification settings - Fork 65
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(hesai): implement mask-based pruning filter for Hesai #251
Conversation
🟢 Self-Evaluation🟢 PerformanceTake-aways:
The below performance measurements have been performed with a modified decoder that measures timings of the
|
9cde2d2
to
cb20367
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #251 +/- ##
==========================================
- Coverage 29.32% 29.28% -0.04%
==========================================
Files 108 112 +4
Lines 9580 9733 +153
Branches 3177 3252 +75
==========================================
+ Hits 2809 2850 +41
- Misses 6265 6359 +94
- Partials 506 524 +18
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
f15429d
to
2931084
Compare
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…ibration files Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
6e47dbb
to
5fdca2a
Compare
commit 6e47dbb Author: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon Feb 17 05:47:57 2025 +0000 ci(pre-commit): autofix commit 2931084 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:32:01 2025 +0900 docs(point_filters): add compatibility table for hesai Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 07ee5bf Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:31:24 2025 +0900 feat(hesai): add downsample mask filter to decoder Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 3349bdd Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:29:59 2025 +0900 chore(hesai): add FoV and resolution information to sensor definitions Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit ed23f8c Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:29:17 2025 +0900 chore(hesai): add optional point_filters parameter to schema Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 5400657 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:28:56 2025 +0900 chore(hesai): add downsample_mask_path config parameter Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 20a5c44 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:27:07 2025 +0900 chore(nebula_ros): modernize how file extensions are replaced for calibration files Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 4cdc44a Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:18:47 2025 +0900 chore(hesai_decoders): remove rclcpp logging dependency Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit cec2c76 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Mon Feb 17 14:32:42 2025 +0900 chore(angles): introduce `AngleUnit`s, make angle ranges support `end < start`angle. Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit a85ea4b Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Mon Feb 17 14:31:47 2025 +0900 chore(downsample_mask): fix imports Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit e18ae38 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Fri Feb 14 16:46:05 2025 +0900 fix(downsample_mask): add input validation for constructor parameters Add input validation checks for azimuth peak resolution, azimuth range extent, and number of channels to prevent divide-by-zeros and other issues Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 3082e0d Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 15:51:49 2025 +0900 fix(downsample_mask): make `excluded()` function resilient to rounding errors Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 5655e32 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 15:26:46 2025 +0900 chore(downsample_mask): explicitly cast instead of implicit conversions Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 1cadf2a Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 15:06:10 2025 +0900 chore(downsample_mask): remove `.` before the exported mask's suffix Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 8e52dd9 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 15:01:56 2025 +0900 chore(cspell): add milli-degrees (`mdeg`) to dictionary Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit fb6045f Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:15:26 2025 +0900 docs(downsample_filter): add downsample filter docs Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit a14a069 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:10:34 2025 +0900 test(downsample_mask): add unit tests for dithering and filtering Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit e2aed9b Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Thu Jan 16 12:08:57 2025 +0900 chore(downsample_mask): make debug mask output optional, clean up code Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 72aafb3 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Wed Jan 15 16:09:32 2025 +0900 chore(downsample_mask): add dependencies to nebula_decoders/package.xml Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 3c474d7 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Wed Jan 15 16:04:19 2025 +0900 chore(nebula_ros): add schema for point filters, and the downsample mask Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 219b789 Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Wed Jan 15 16:03:45 2025 +0900 chore(downsample_mask): add downsample_mask filter class The filter takes a path to a PNG image (will be converted to grayscale) and expected resolution/channel count of the mask. The grayscale mask is then dithered into a black/white mask of the same dimensions, and an `excluded(NebulaPoint const&)` function is provided to test whether a point shall be excluded according to the mask. For debug purposes, the dithered mask is written to the same directory as the input mask, with the file ending changed to `_dithered.png`. If this fails, the filter will not throw but log a warning. Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> commit 65ed6ed Author: Max SCHMELLER <max.schmeller@tier4.jp> Date: Wed Jan 15 16:03:37 2025 +0900 chore(nebula_decoders): add utility types for angle pairs, ranges, and FoVs Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp> Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
…t and detailed Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
Before, an empty string was used to signal a disabled downsample filter but this was not very readable. Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
@drwnz I changed the |
Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
… sensor models Signed-off-by: Max SCHMELLER <max.schmeller@tier4.jp>
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.
Awesome, LGTM!
PR Type
Related Links
Description
This PR implements the mask-based pruning filter introduced in #250 for all Hesai sensors. For more specifics on sensor configuration changes and filter behavior, see #250.
Review Procedure
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.
Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.
Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.
CI Checks