Skip to content

Commit 016b29f

Browse files
authored
fix(planning_evaluator): incorrect DRAC formula (#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 c0e777a commit 016b29f

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
@@ -430,8 +430,8 @@ void ObstacleMetricsCalculator::ProcessObstaclesTrajectory()
430430

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

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)