提交 c106b15c 编写于 作者: K kechxu 提交者: Kecheng Xu

Planning: [lattice] separate yield and ovetake buffer in collision cost function

上级 ee38e7e6
......@@ -409,6 +409,9 @@ DEFINE_double(weight_opposite_side_offset, 10.0,
DEFINE_double(weight_dist_travelled, 10.0, "Weight of travelled distance cost");
DEFINE_double(weight_target_speed, 1.0, "Weight of target speed cost");
DEFINE_double(lat_offset_bound, 3.0, "The bound of lateral offset");
DEFINE_double(lon_collision_buffer, 1.0, "Longitudinal collision buffer");
DEFINE_double(lon_collision_yield_buffer, 1.0,
"Longitudinal collision buffer for yield");
DEFINE_double(lon_collision_overtake_buffer, 5.0,
"Longitudinal collision buffer for overtake");
DEFINE_double(lon_collision_cost_std, 0.5,
"The standard deviation of logitudinal collision cost function");
......@@ -217,7 +217,8 @@ DECLARE_double(weight_opposite_side_offset);
DECLARE_double(weight_dist_travelled);
DECLARE_double(weight_target_speed);
DECLARE_double(lat_offset_bound);
DECLARE_double(lon_collision_buffer);
DECLARE_double(lon_collision_yield_buffer);
DECLARE_double(lon_collision_overtake_buffer);
DECLARE_double(lon_collision_cost_std);
#endif // MODULES_PLANNING_COMMON_PLANNING_GFLAGS_H
......@@ -233,14 +233,14 @@ double TrajectoryEvaluator::LonCollisionCost(
double sigma = FLAGS_lon_collision_cost_std;
for (const auto& m : pt_interval) {
double cost = 0.0;
if (traj_s > m.first - FLAGS_lon_collision_buffer &&
traj_s < m.second + FLAGS_lon_collision_buffer) {
if (traj_s > m.first - FLAGS_lon_collision_yield_buffer &&
traj_s < m.second + FLAGS_lon_collision_overtake_buffer) {
cost = 1.0;
} else if (traj_s < m.first) {
double dist = traj_s - m.first + FLAGS_lon_collision_buffer;
double dist = (m.first - FLAGS_lon_collision_yield_buffer) - traj_s;
cost = std::exp(-dist * dist / (2.0 * sigma * sigma));
} else if (traj_s > m.second) {
double dist = m.second + FLAGS_lon_collision_buffer - traj_s;
double dist = traj_s - (m.second + FLAGS_lon_collision_overtake_buffer);
cost = std::exp(-dist * dist / (2.0 * sigma * sigma));
}
cost_sqr_sum += cost * cost;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册