-
Notifications
You must be signed in to change notification settings - Fork 713
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_pointcloud_preprocessor): add pointcloud_densifier package #10226
base: main
Are you sure you want to change the base?
feat(autoware_pointcloud_preprocessor): add pointcloud_densifier package #10226
Conversation
Signed-off-by: Kaan Çolak <kaancolak95@gmail.com>
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: Kaan Çolak <kaancolak95@gmail.com>
Signed-off-by: Kaan Çolak <kaancolak95@gmail.com>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #10226 +/- ##
==========================================
- Coverage 26.24% 26.21% -0.03%
==========================================
Files 1378 1382 +4
Lines 107445 107648 +203
Branches 41428 41532 +104
==========================================
+ Hits 28194 28223 +29
- Misses 76433 76604 +171
- Partials 2818 2821 +3
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
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.
Though I did not tested with real data, it seems okay to me.
geometry_msgs::msg::TransformStamped transform_stamped; | ||
try { | ||
tf2::TimePoint current_time_point = tf2::TimePoint( | ||
std::chrono::nanoseconds(current_msg->header.stamp.nanosec) + | ||
std::chrono::seconds(current_msg->header.stamp.sec)); | ||
tf2::TimePoint prev_time_point = tf2::TimePoint( | ||
std::chrono::nanoseconds(previous_cloud->header.stamp.nanosec) + | ||
std::chrono::seconds(previous_cloud->header.stamp.sec)); | ||
transform_stamped = tf_buffer_->lookupTransform( | ||
current_msg->header.frame_id, current_time_point, previous_cloud->header.frame_id, | ||
prev_time_point, "map"); | ||
} catch (tf2::TransformException & ex) { | ||
RCLCPP_WARN(get_logger(), "Could not transform point cloud: %s", ex.what()); | ||
continue; | ||
} |
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.
[imho]
By maintaining point clouds in the map frame and setting the occupancy grid's origin relative to self-localization, we could reduce the number of transforms required for each point cloud, leading to a simpler and more economical design.
std::memcpy(&x, &transformed_cloud.data[data_offset + x_offset], sizeof(float)); | ||
std::memcpy(&y, &transformed_cloud.data[data_offset + y_offset], sizeof(float)); | ||
|
||
if (occupancy_grid.isOccupied(x, y)) { |
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.
[just a comment]
We may want more detailed condition for the future.
Description
For more details : #10225
Related links
Parent Issue:
Private Links:
How was this PR tested?
run ->
ros2 launch autoware_pointcloud_preprocessor pointcloud_densifier.launch.py
Notes for reviewers
None.
Interface changes
None.
Effects on system behavior
None.