-
Notifications
You must be signed in to change notification settings - Fork 698
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_lidar_centerpoint): added the cuda_blackboard to centerpoint #9453
base: main
Are you sure you want to change the base?
feat(autoware_lidar_centerpoint): added the cuda_blackboard to centerpoint #9453
Conversation
…point Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
@knzo25 Thank you for your great work 🎉 Do you have any documentation for the cuda_blackboard package? Just a simple API references and overall design in a readme would be helpful to review the PRs. |
@kminoda |
@kminoda |
…terpoint Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
std::bind(&LidarCenterPointNode::pointCloudCallback, this, std::placeholders::_1)); | ||
pointcloud_sub_ = | ||
std::make_unique<cuda_blackboard::CudaBlackboardSubscriber<cuda_blackboard::CudaPointCloud2>>( | ||
*this, "~/input/pointcloud", false, |
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.
Would you write a documentation for bool add_compatible_sub
in cuda_blackboard repository? It is difficult to tell whether this "false" value is OK or not from the current documentation.
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.
@amadeuszsz
Minoda-san will probably not be able to handle these comments. Could you continue these as well 🙏 ?
The add_compatible_sub
was a missing auto detection feature, that is being addressed here:
autowarefoundation/cuda_blackboard#1
The value will become unused and deprecated soon
...eption/autoware_image_projection_based_fusion/src/pointpainting_fusion/pointpainting_trt.cpp
Show resolved
Hide resolved
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@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.
Great improvement, as cuda blackboard is 🚀! Apart from review comments, please take a look on pre-commit log (missing header).
@@ -45,15 +45,17 @@ class CenterPointTRT | |||
virtual ~CenterPointTRT(); | |||
|
|||
bool detect( | |||
const sensor_msgs::msg::PointCloud2 & input_pointcloud_msg, const tf2_ros::Buffer & tf_buffer, | |||
std::vector<Box3D> & det_boxes3d, bool & is_num_pillars_within_range); | |||
const std::shared_ptr<const cuda_blackboard::CudaPointCloud2> & input_pointcloud_msg_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.
If you use pointer as an argument, please remove dereference in node.cpp for detect call.
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.
Sorry, which de-reference?
void LidarCenterPointNode::pointCloudCallback(
const std::shared_ptr<const cuda_blackboard::CudaPointCloud2> & input_pointcloud_msg)
...
bool is_success = detector_ptr_->detect(
input_pointcloud_msg, tf_buffer_, det_boxes3d, is_num_pillars_within_range);
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.
You addressed it in 3893f19
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.
Ahh sorry, had not pushed the branch 🙏
perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
Show resolved
Hide resolved
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #9453 +/- ##
==========================================
- Coverage 25.92% 25.91% -0.01%
==========================================
Files 1382 1382
Lines 106811 106833 +22
Branches 40907 40911 +4
==========================================
Hits 27690 27690
- Misses 76418 76440 +22
Partials 2703 2703
*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:
|
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
Signed-off-by: Kenzo Lobos-Tsunekawa <kenzo.lobos@tier4.jp>
…autoware.universe into feat/cuda_blackboard_centerpoint
Description
This is part of the series of PR related to #9722
List of PRs:
Depending on your machine and how many nodes are in a container, the following branch may also be required:
https://github.com/knzo25/launch_ros/tree/fix/load_composable_node
There seems to be a but in ROS where if you send too many services at once some will be lost and
ros_launch
can not handle that.Related links
Parent Issue:
How was this PR tested?
The sensing/perception pipeline was tested until centerpoint for TIER IV's taxi using the logging simulator.
The following tests were executed in a laptop equipped with a RTX 4060 (laptop) GPU and a Intel(R) Core(TM) Ultra 7 165H (22 cores)
Notes for reviewers
Note 1:
The main branch that I used for development is
feat/cuda_acceleration_and_transport_layer2
.However, the changes were too big so I split the PRs. That being said, development, if any will still be on that branch (and then cherrypicked to the respective PRs), and the review changes will be cherrypicked into the development branch.
Note 2:
Now that the cuda blackboard itself has been added to autoware, this PR can be tested in a standalone fashion as well
Note 3:
Due to a missing feature in the blackboard, the following version is needed for now: autowarefoundation/cuda_blackboard#1
How that feature will be merged into autoware is explained in the respective PR
Interface changes
An additional topic is added to perform type negotiation:
Example:
input/pointcloud
->input/pointcloud
andinput/pointcloud/cuda
Effects on system behavior
Enabling this preprocessing in the launchers should provide a much reduced latency and cpu usage (at the cost of a higher GPU usage)