Skip to content

Commit d9ff5f0

Browse files
committed
fix(planning_evaluator): incorrect DRAC formula (autowarefoundation#12124)
* fix drac calculation Signed-off-by: xtk8532704 <1041084556@qq.com> * fix unit test Signed-off-by: xtk8532704 <1041084556@qq.com> --------- Signed-off-by: xtk8532704 <1041084556@qq.com>
1 parent 2af75ab commit d9ff5f0

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

evaluator/autoware_planning_evaluator/src/obstacle_metrics_calculator.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -429,8 +429,8 @@ void ObstacleMetricsCalculator::ProcessObstaclesTrajectory()
429429

430430
// calculate DRAC
431431
const double distance_to_collision = ego_trajectory_point.distance_from_start_m;
432-
const double point_drac = (ego_end_vel * ego_end_vel - ego_start_vel * ego_start_vel) /
433-
(2.0 * distance_to_collision + 1e-6);
432+
const double point_drac =
433+
std::pow(ego_end_vel - ego_start_vel, 2) / (2.0 * distance_to_collision + 1e-6);
434434
obstacle_drac = std::max(obstacle_drac, std::abs(point_drac));
435435
}
436436

evaluator/autoware_planning_evaluator/test/test_planning_evaluator_node.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,8 @@ TEST_F(EvalTest, TestObstacleDRAC)
662662
const double ego_baselink_at_collision = ego_initial_x + ego_velocity * t_collision;
663663
const double ego_travel_distance = ego_baselink_at_collision - ego_initial_x;
664664

665-
const double expected_drac = std::abs(
666-
(obj_velocity * obj_velocity - ego_velocity * ego_velocity) / (2.0 * ego_travel_distance));
665+
const double expected_drac =
666+
std::abs(std::pow(obj_velocity - ego_velocity, 2) / (2.0 * ego_travel_distance));
667667

668668
// Create a moving obstacle (same direction as ego, but slower)
669669
Objects objs;

0 commit comments

Comments
 (0)