-
Notifications
You must be signed in to change notification settings - Fork 55
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_crop_box_filter): reimplementation in core repo #279
base: main
Are you sure you want to change the base?
Conversation
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
fd55475
to
c058c0f
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #279 +/- ##
===========================================
- Coverage 78.75% 19.93% -58.82%
===========================================
Files 11 3 -8
Lines 193 321 +128
Branches 73 140 +67
===========================================
- Hits 152 64 -88
- Misses 11 245 +234
+ Partials 30 12 -18
☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
2fba5f5
to
b6d2303
Compare
01af502
to
1b2c7a5
Compare
According to @mitsudome-r san, we'll implement the
Thank you in advance. |
Sasaki san, @sasakisasaki I double check the pr and remove the sentence “porting autoware_crop_box_filter” Please feel free to leave further comment Best regards 心刚 |
9271b94
to
c18f321
Compare
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.
Please add unit tests to check whether the point cloud passes or does not pass through the filter.
2e18215
to
b52a5ed
Compare
sure kondo san @youtalk Best regards 心刚 |
9bf5343
to
44df055
Compare
Hello ,Kondo san @youtalk Unit test for “filter function check” already added,in this test case :
Have a nice day 心刚 |
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.
It’s difficult to point out specific issues, but overall, it reads as if the memory efficiency is poor.
public: | ||
PCL_MAKE_ALIGNED_OPERATOR_NEW | ||
explicit CropBoxFilter(const rclcpp::NodeOptions & options); | ||
void pointcloud_filter(const PointCloud2ConstPtr & cloud, PointCloud2 & output); |
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.
Function names should be verb phrases. I think filter_pointcloud
or filter
would be correct.
void pointcloud_filter(const PointCloud2ConstPtr & cloud, PointCloud2 & output); | |
void filter(const PointCloud2ConstPtr & cloud, PointCloud2 & output); |
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.
Got it kondo san.
let me double check the code, especially the memory efficiency part.
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.
Good afternoon Kondo san @youtalk
Regarding “memory efficiency”, i picked several code blocks which access memeory
Thanks for your review
Please feel free to leave your further advice
心刚
if (need_postprocess_transform_) { | ||
if (need_preprocess_transform_) { |
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.
With this writing style, if only need_preprocess_transform_
is true
, it will be skipped. Instead of nesting, handling the need_preprocess_transform_
condition first and then processing the need_postprocess_transform_
condition will likely reduce the chance of bugs.
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.
Actually, I think we can remove the condition in this L217.
We can just calculate the following calculation
Eigen::Vector4f point_postprocessed = eigen_transform_postprocess_ * point_preprocessed;
because we already did the following calculation beforehand in L203-L208
Eigen::Vector4f point_preprocessed = point;
// apply pre-transform if needed
if (need_preprocess_transform_) {
point_preprocessed = eigen_transform_preprocess_ * point;
}
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.
Good afternoon mits san @mitsudome-r
That's right , i have already correct the code and push
Thanks
心刚
31b3b98
to
5a45c3d
Compare
5a45c3d
to
4ca6f61
Compare
ef31beb
to
7ed6522
Compare
sensing/autoware_crop_box_filter/include/autoware/crop_box_filter/crop_box_filter_node.hpp
Show resolved
Hide resolved
9a0ac28
to
838d5f4
Compare
838d5f4
to
04ca6ae
Compare
…oware_crop_box_filter, extracted from universe-sensing-pointcloud-preprocessor reimplemented on core repo : v0.0 Signed-off-by: liuXinGangChina <lxg19892021@gmail.com>
…oware_crop_box_filter, add readme: v0.1 Signed-off-by: liuXinGangChina <lxg19892021@gmail.com>
04ca6ae
to
785d1da
Compare
Description
Extracted from universe-sensing-pointcloud-preprocessor and reimplemented on core repo
Reimplementation content
4.1 construct a input pointcloud which contain points both inside and outside the box, and pass it to the filter
4.2 check the total number of points in the output pointcloud, whether it equals expectation
4.3 check every point of the output pointcloud, whether it should pass the filter
What's the difference from original code
Related links
Parent Issue:
How was this PR tested?
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.