-
Notifications
You must be signed in to change notification settings - Fork 63
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 <[email protected]>
…ibration files Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
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 <[email protected]> Date: Thu Jan 16 12:32:01 2025 +0900 docs(point_filters): add compatibility table for hesai Signed-off-by: Max SCHMELLER <[email protected]> commit 07ee5bf Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:31:24 2025 +0900 feat(hesai): add downsample mask filter to decoder Signed-off-by: Max SCHMELLER <[email protected]> commit 3349bdd Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:29:59 2025 +0900 chore(hesai): add FoV and resolution information to sensor definitions Signed-off-by: Max SCHMELLER <[email protected]> commit ed23f8c Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:29:17 2025 +0900 chore(hesai): add optional point_filters parameter to schema Signed-off-by: Max SCHMELLER <[email protected]> commit 5400657 Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:28:56 2025 +0900 chore(hesai): add downsample_mask_path config parameter Signed-off-by: Max SCHMELLER <[email protected]> commit 20a5c44 Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit 4cdc44a Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:18:47 2025 +0900 chore(hesai_decoders): remove rclcpp logging dependency Signed-off-by: Max SCHMELLER <[email protected]> commit cec2c76 Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit a85ea4b Author: Max SCHMELLER <[email protected]> Date: Mon Feb 17 14:31:47 2025 +0900 chore(downsample_mask): fix imports Signed-off-by: Max SCHMELLER <[email protected]> commit e18ae38 Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit 3082e0d Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 15:51:49 2025 +0900 fix(downsample_mask): make `excluded()` function resilient to rounding errors Signed-off-by: Max SCHMELLER <[email protected]> commit 5655e32 Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 15:26:46 2025 +0900 chore(downsample_mask): explicitly cast instead of implicit conversions Signed-off-by: Max SCHMELLER <[email protected]> commit 1cadf2a Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 15:06:10 2025 +0900 chore(downsample_mask): remove `.` before the exported mask's suffix Signed-off-by: Max SCHMELLER <[email protected]> commit 8e52dd9 Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 15:01:56 2025 +0900 chore(cspell): add milli-degrees (`mdeg`) to dictionary Signed-off-by: Max SCHMELLER <[email protected]> commit fb6045f Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:15:26 2025 +0900 docs(downsample_filter): add downsample filter docs Signed-off-by: Max SCHMELLER <[email protected]> commit a14a069 Author: Max SCHMELLER <[email protected]> Date: Thu Jan 16 12:10:34 2025 +0900 test(downsample_mask): add unit tests for dithering and filtering Signed-off-by: Max SCHMELLER <[email protected]> commit e2aed9b Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit 72aafb3 Author: Max SCHMELLER <[email protected]> Date: Wed Jan 15 16:09:32 2025 +0900 chore(downsample_mask): add dependencies to nebula_decoders/package.xml Signed-off-by: Max SCHMELLER <[email protected]> commit 3c474d7 Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit 219b789 Author: Max SCHMELLER <[email protected]> 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 <[email protected]> commit 65ed6ed Author: Max SCHMELLER <[email protected]> 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 <[email protected]> Signed-off-by: Max SCHMELLER <[email protected]>
…t and detailed Signed-off-by: Max SCHMELLER <[email protected]>
Before, an empty string was used to signal a disabled downsample filter but this was not very readable. Signed-off-by: Max SCHMELLER <[email protected]>
@drwnz I changed the |
Signed-off-by: Max SCHMELLER <[email protected]>
… sensor models Signed-off-by: Max SCHMELLER <[email protected]>
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