-
Notifications
You must be signed in to change notification settings - Fork 649
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(ndt_scan_matcher): visualize matching score each point #8856
feat(ndt_scan_matcher): visualize matching score each point #8856
Conversation
Signed-off-by: yuhei <[email protected]>
Signed-off-by: yuhei <[email protected]>
Signed-off-by: yuhei <[email protected]>
Signed-off-by: yuhei <[email protected]>
Signed-off-by: yuhei <[email protected]>
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
Signed-off-by: yuhei <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8856 +/- ##
==========================================
- Coverage 27.92% 27.81% -0.12%
==========================================
Files 1324 1324
Lines 98877 98664 -213
Branches 39821 39606 -215
==========================================
- Hits 27615 27441 -174
+ Misses 71210 71143 -67
- Partials 52 80 +28
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. |
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.
I left some comments. Please either fix them or confirm if they can stay as they are.
pcl::PointCloud<pcl::PointXYZI> nvs_points_in_map_ptr_i; | ||
nvs_points_in_map_ptr_i = | ||
ndt_ptr_->calculateNearestVoxelScoreEachPoint(*sensor_points_in_map_ptr); |
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.
I think it's fine to directly assign the value.
pcl::PointCloud<pcl::PointXYZRGB>::Ptr visualize_point_score( | ||
const pcl::shared_ptr<pcl::PointCloud<PointSource>> & sensor_points_in_map_ptr, | ||
const float & lower_nvs, const float & upper_nvs); |
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.
I like that this function returns pcl::PointCloud<pcl::PointXYZRGB>
instead of pcl::PointCloud<pcl::PointXYZRGB>::Ptr
.
nvs_points_in_map_ptr_i = | ||
ndt_ptr_->calculateNearestVoxelScoreEachPoint(*sensor_points_in_map_ptr); | ||
pcl::PointCloud<pcl::PointXYZRGB>::Ptr nvs_points_in_map_ptr_rgb{ | ||
new pcl::PointCloud<pcl::PointXYZRGB>}; |
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.
To avoid multiple memory allocations, I think it would be better to call reserve before the for loop.
const float upper_nvs = 3.5f; | ||
if (voxel_score_points_pub_->get_subscription_count() > 0) { | ||
pcl::PointCloud<pcl::PointXYZRGB>::Ptr nvs_points_in_map_ptr_rgb{ | ||
new pcl::PointCloud<pcl::PointXYZRGB>}; |
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.
Does 'nvs' stand for 'nvtl_score'? If so, it is better to replace it.
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.
I will address the points I mentioned in a different pull request.
I have confirmed that logging_simulator
works well the same as before.
@SaltUhey
Thank you so much!
029b394
into
autowarefoundation:main
Description
This PR visualizes the matching score each point to evaluate it qualitatively as shown in the figure.
The closer the color of the point is to red, the better the score, and the closer it is to blue, the worse the score.
It is important to know how well the map point cloud matches the sensor(LiDAR) point cloud.
Now, Autoware uses nearest voxel transform probability(NVTL) as a quantitative evaluation of matching score in each frame.
This implementation is expected to facilitate understanding for people.
Related links
tier4/ndt_omp#66
How was this PR tested?
Tests were conducted in some environments in real-time.
Notes for reviewers
Dependency with ndt_omp.
Interface changes
Add topic (not shown by default)
Topic changes
Additions and removals
/voxel_score_points
sensor_msgs::msg::PointCloud2
Effects on system behavior
None.