-
Notifications
You must be signed in to change notification settings - Fork 684
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(autonomous_emergency_braking): filter and crop aeb pointcloud #6875
feat(autonomous_emergency_braking): filter and crop aeb pointcloud #6875
Conversation
1a3382e
to
74d6251
Compare
@@ -65,6 +67,33 @@ using visualization_msgs::msg::MarkerArray; | |||
using Path = std::vector<geometry_msgs::msg::Pose>; | |||
using Vector3 = geometry_msgs::msg::Vector3; | |||
|
|||
// For debugging | |||
class DebugTimer |
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.
We have tier4_autoware_utils::StopWatch for this
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.
Deleted
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.
Ok, so you are filtering out the obstacle pointclouds that belong to clusters on the (inflated) ego footprint convex hull on the path. And then find the closest point (not the center of the cluster) along ego's path and check safety in the conventional way.
Is it possible to move cropeed_pointcloud_ptr
from the member to a local variable / argument ? I prefer having less internal state variables.
Exactly, I think it is fine to move the point cloud to a local variable, I will push a commit with the fix tomorrow! |
Could you update Readme ? |
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
This reverts commit b5091fc. Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
74d6251
to
4d6cbeb
Compare
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Done! |
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Done |
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
80eca5e
into
autowarefoundation:main
…utowarefoundation#6875) * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add clustering method to eliminate small objects/noise Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove comments Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Crop points outside of EGO predicted path Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove offset Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Update library use Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add check for empty cloud Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add extra width for pointcloud cropping Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use single PC ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove problematic option Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Revert "Use single PC ptr" This reverts commit b5091fc. Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * refactoring Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Add back timestamp Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * consider all points in clusters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * USe object hull to detect collisions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use only closest object point Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused functions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove debug timer out of code Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * make it so the clustering uses parameters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * solve type problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update comment Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update README Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate member var in favor of local pointcloud ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused chrono dependency Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> --------- Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
…utowarefoundation#6875) * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add clustering method to eliminate small objects/noise Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove comments Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Crop points outside of EGO predicted path Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove offset Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Update library use Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add check for empty cloud Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add extra width for pointcloud cropping Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use single PC ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove problematic option Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Revert "Use single PC ptr" This reverts commit b5091fc. Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * refactoring Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Add back timestamp Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * consider all points in clusters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * USe object hull to detect collisions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use only closest object point Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused functions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove debug timer out of code Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * make it so the clustering uses parameters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * solve type problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update comment Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update README Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate member var in favor of local pointcloud ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused chrono dependency Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> --------- Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
…utowarefoundation#6875) * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * enable aeb, fix topic problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate unused var Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add clustering method to eliminate small objects/noise Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove comments Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Crop points outside of EGO predicted path Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove offset Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Update library use Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add check for empty cloud Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * add extra width for pointcloud cropping Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use single PC ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove problematic option Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Revert "Use single PC ptr" This reverts commit b5091fc. Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * refactoring Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Add back timestamp Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * consider all points in clusters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * USe object hull to detect collisions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * Use only closest object point Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused functions Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove debug timer out of code Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * make it so the clustering uses parameters Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * solve type problem Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update comment Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * update README Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * eliminate member var in favor of local pointcloud ptr Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> * remove unused chrono dependency Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com> --------- Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
Description
This PR introduces an overhaul to the autonomous_emergency_braking (AEB) module.
The goal of these changes is to avoid false positive triggering of the AEB by noisy points, reduce computation time by cropping out unrelated points off of the AEB point cloud, and simplify collision detection by checking the closest point
Example of AEB ignoring objects far from path (AEB points show as red points, normal are grey):
cap-.2024-04-24-14-57-47.mp4
Related links
Tests performed
PSIM tests
LSIM
Replayed these rosbags where AEB was wrongly activated, and there was no longer an activation
TIER IV INTERNAL LINK
TIER IV INTERNAL LINK
Notes for reviewers
Requires changes to Launch: autowarefoundation/autoware_launch#966
Interface changes
Effects on system behavior
Reduced false positive detection for AEB
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.