38 const double kMaxCheckRelativeTime = FLAGS_trajectory_time_length;
39 for (
const auto& p : trajectory) {
40 double t = p.relative_time();
41 if (t > kMaxCheckRelativeTime) {
45 if (!WithinRange(lon_v, FLAGS_speed_lower_bound, FLAGS_speed_upper_bound)) {
46 ADEBUG <<
"Velocity at relative time " << t
47 <<
" exceeds bound, value: " << lon_v <<
", bound ["
48 << FLAGS_speed_lower_bound <<
", " << FLAGS_speed_upper_bound
54 if (!WithinRange(lon_a, FLAGS_longitudinal_acceleration_lower_bound,
55 FLAGS_longitudinal_acceleration_upper_bound)) {
56 ADEBUG <<
"Longitudinal acceleration at relative time " << t
57 <<
" exceeds bound, value: " << lon_a <<
", bound ["
58 << FLAGS_longitudinal_acceleration_lower_bound <<
", "
59 << FLAGS_longitudinal_acceleration_upper_bound <<
"].";
63 double kappa = p.path_point().kappa();
64 if (!WithinRange(kappa, -FLAGS_kappa_bound, FLAGS_kappa_bound)) {
65 ADEBUG <<
"Kappa at relative time " << t
66 <<
" exceeds bound, value: " << kappa <<
", bound ["
67 << -FLAGS_kappa_bound <<
", " << FLAGS_kappa_bound <<
"].";
72 for (
size_t i = 1; i < trajectory.
NumOfPoints(); ++i) {
76 if (p1.relative_time() > kMaxCheckRelativeTime) {
82 double dt = p1.relative_time() - p0.relative_time();
83 double d_lon_a = p1.a() - p0.a();
84 double lon_jerk = d_lon_a / dt;
85 if (!WithinRange(lon_jerk, FLAGS_longitudinal_jerk_lower_bound,
86 FLAGS_longitudinal_jerk_upper_bound)) {
87 ADEBUG <<
"Longitudinal jerk at relative time " << t
88 <<
" exceeds bound, value: " << lon_jerk <<
", bound ["
89 << FLAGS_longitudinal_jerk_lower_bound <<
", "
90 << FLAGS_longitudinal_jerk_upper_bound <<
"].";
94 double lat_a = p1.v() * p1.v() * p1.path_point().kappa();
95 if (!WithinRange(lat_a, -FLAGS_lateral_acceleration_bound,
96 FLAGS_lateral_acceleration_bound)) {
97 ADEBUG <<
"Lateral acceleration at relative time " << t
98 <<
" exceeds bound, value: " << lat_a <<
", bound ["
99 << -FLAGS_lateral_acceleration_bound <<
", "
100 << FLAGS_lateral_acceleration_bound <<
"].";