feat(autoware_planning_evaluator): new obstacle metrics#11761
feat(autoware_planning_evaluator): new obstacle metrics#11761xtk8532704 merged 13 commits intoautowarefoundation:mainfrom
Conversation
|
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
f3f2bd9 to
213d030
Compare
|
I'm fixing unit tests. |
7074ff8 to
cce02c7
Compare
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
cce02c7 to
be671c3
Compare
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #11761 +/- ##
==========================================
+ Coverage 17.98% 18.37% +0.38%
==========================================
Files 1812 1806 -6
Lines 125542 124965 -577
Branches 43666 43469 -197
==========================================
+ Hits 22581 22959 +378
+ Misses 84121 83394 -727
+ Partials 18840 18612 -228
*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: xtk8532704 <1041084556@qq.com>
|
|
||
| auto start = now(); | ||
| // Calculate planning trajectory metrics | ||
| auto trajectory_start = now(); |
There was a problem hiding this comment.
(minor)
| auto trajectory_start = now(); | |
| const auto trajectory_start = now(); |
other parts too!
| } | ||
|
|
||
| void ObstacleMetricsCalculator::calculatePointToPolygonBoundaryDistances( | ||
| const Pose & pose, const Polygon2d & polygon, double & min_dist, double & max_dist) const |
There was a problem hiding this comment.
( minor: I prefer returning structs over passing them by reference)
| { | ||
| ego_trajectory_points_.clear(); | ||
| ego_max_reachable_distance_ = 0.0; | ||
| double vel_curr = ego_odometry_->twist.twist.linear.x; |
There was a problem hiding this comment.
(minor)
| double vel_curr = ego_odometry_->twist.twist.linear.x; | |
| const double vel_curr = ego_odometry_->twist.twist.linear.x; |
other parts too
There was a problem hiding this comment.
vel_curr is changing during the algorithm loop
| // // Debug prints, uncomment to check trajectory points if needed | ||
| // std::cerr << "Obstacle traj" << std::endl; | ||
| // for (size_t i = 0; i < obstacle_trajectory_points_.size(); ++i) { | ||
| // const auto & p = obstacle_trajectory_points_[i]; | ||
| // std::cerr << "[" << i << "] t: " << p.time_from_start_s << ", pos: (" << p.pose.position.x | ||
| // << ", " | ||
| // << p.pose.position.y << "), is_overlapping: " << | ||
| // p.is_overlapping_with_ego_trajectory << ", is_collision: " | ||
| // << p.is_collision_with_ego_trajectory << ", first_overlapping_idx: " << | ||
| // p.first_overlapping_ego_trajectory_index << ", last_overlapping_idx: " << | ||
| // p.last_overlapping_ego_trajectory_index << std::endl; | ||
| // } | ||
| // std::cerr << "Ego traj" << std::endl; | ||
| // for (size_t i = 0; i < ego_trajectory_points_.size(); ++i) { | ||
| // const auto & p = ego_trajectory_points_[i]; | ||
| // std::cerr << "[" << i << "] t: " << p.time_from_start_s << ", pos: (" << p.pose.position.x | ||
| // << ", " | ||
| // << p.pose.position.y << ")" << std::endl; | ||
| // } | ||
|
|
||
| // ------------------------------------------------------------------------------------------------ |
There was a problem hiding this comment.
| // // Debug prints, uncomment to check trajectory points if needed | |
| // std::cerr << "Obstacle traj" << std::endl; | |
| // for (size_t i = 0; i < obstacle_trajectory_points_.size(); ++i) { | |
| // const auto & p = obstacle_trajectory_points_[i]; | |
| // std::cerr << "[" << i << "] t: " << p.time_from_start_s << ", pos: (" << p.pose.position.x | |
| // << ", " | |
| // << p.pose.position.y << "), is_overlapping: " << | |
| // p.is_overlapping_with_ego_trajectory << ", is_collision: " | |
| // << p.is_collision_with_ego_trajectory << ", first_overlapping_idx: " << | |
| // p.first_overlapping_ego_trajectory_index << ", last_overlapping_idx: " << | |
| // p.last_overlapping_ego_trajectory_index << std::endl; | |
| // } | |
| // std::cerr << "Ego traj" << std::endl; | |
| // for (size_t i = 0; i < ego_trajectory_points_.size(); ++i) { | |
| // const auto & p = ego_trajectory_points_[i]; | |
| // std::cerr << "[" << i << "] t: " << p.time_from_start_s << ", pos: (" << p.pose.position.x | |
| // << ", " | |
| // << p.pose.position.y << ")" << std::endl; | |
| // } | |
| // ------------------------------------------------------------------------------------------------ |
This part can be deleted?
kosuke55
left a comment
There was a problem hiding this comment.
I haven't checked the detail of logic but the diff seems good overall. Leaving some minor comments, but I'll approve it now as code owner
Signed-off-by: xtk8532704 <1041084556@qq.com>
Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com> Signed-off-by: Kem (TiankuiXian) <temkei.kem@tier4.jp>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com> Signed-off-by: Kem (TiankuiXian) <temkei.kem@tier4.jp>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
…dation#11761) * tmp save Signed-off-by: xtk8532704 <1041084556@qq.com> * remove some draft code Signed-off-by: xtk8532704 <1041084556@qq.com> * add new implements Signed-off-by: xtk8532704 <1041084556@qq.com> * polish code, need to update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * pre-commit Signed-off-by: xtk8532704 <1041084556@qq.com> * update readme Signed-off-by: xtk8532704 <1041084556@qq.com> * fix cppcheck Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test bug, and add test cases for ttc, drac. Signed-off-by: xtk8532704 <1041084556@qq.com> * cry to fix ci building error Signed-off-by: xtk8532704 <1041084556@qq.com> * refactor code Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
Description
This PR refactors obstacle metrics implementations and adds 2 new metrics for safety checks.
Refactored metrics:
New metrics:
What has changed
worst_onlyparameter to control whether to publish them for each object.before:
{_metric_name_}/{min, max, mean}after:
{_metric_name_}/{_object_uuid_, worst}obstacle.dist_thr_m->obstacle.collision_thr_m.Related links
Parent Issue:
Private Links (Japanese):
How was this PR tested?
Psim.
Unit Tests for 2 new metrics are added.
Notes for reviewers
You can check this doc first to understand the algorithm for the obstacle metrics.
If the code is hard to read, you can just play with Psim to check if the new metrics' behaviors work well.
Interface changes
None.
ROS Parameter Changes
Additions and removals
obstacle.worst_onlyboolfalseobstacle.use_ego_traj_velboolfalsobstacle.stop_velocity_mpsdouble0.2777obstacle.min_time_interval_sdouble0.05obstacle.min_spatial_interval_mdouble0.1Modifications
obstacle.dist_thr_mdouble0.0obstacle.collision_thr_mdouble0.0Effects on system behavior
The processing time for new planning_evaluator is < 30 ms under peak conditions, and typically < 3 ms if there are no complex trajectory overlaps between the ego and objects present. (verified using Psim; situation under real-world conditions cannot be guaranteed.)