@@ -220,44 +220,29 @@ def compute(self, state: VehicleState, component: Component = None):
220220 desired_steering_angle = 0.0
221221
222222 else :
223- # Use racing velocity profile as target
224- if self .desired_speed_source == 'racing' :
225- desired_speed = self .trajectory .velocities [index ]
226- desired_speed = min (desired_speed , self .speed_limit )
227-
228- next_desired_speed = self .trajectory .velocities [index + 1 ]
229- next_desired_speed = min (next_desired_speed , self .speed_limit )
230- difference_dt = self .trajectory .times [index + 1 ] - self .trajectory .times [index ]
231-
232- feedforward_accel = (next_desired_speed - desired_speed ) / difference_dt
233- feedforward_accel = np .clip (feedforward_accel , - self .max_decel , self .max_accel )
234-
235- if speed < next_desired_speed and feedforward_accel < 0 :
236- feedforward_accel = 0.0
223+ if self .desired_speed_source == 'path' :
224+ current_trajectory_time = self .trajectory .parameter_to_time (self .current_path_parameter )
237225 else :
238- if self .desired_speed_source == 'path' :
239- current_trajectory_time = self .trajectory .parameter_to_time (self .current_path_parameter )
240- else :
241- self .current_traj_parameter += dt
242- current_trajectory_time = self .current_traj_parameter
243- print (current_trajectory_time )
244-
245- deriv = self .trajectory .eval_derivative (current_trajectory_time )
246-
247- # deriv 0 at time 0
248- if np .isnan (deriv [0 ]):
249- desired_speed = 0.0
250- else :
251- desired_speed = min (np .linalg .norm (deriv ), self .speed_limit )
252-
253- difference_dt = 0.1
254- future_t = current_trajectory_time + difference_dt
255- if future_t > self .trajectory .domain ()[1 ]:
256- future_t = self .trajectory .domain ()[1 ]
257- future_deriv = self .trajectory .eval_derivative (future_t )
258- next_desired_speed = min (np .linalg .norm (future_deriv ), self .speed_limit )
259- feedforward_accel = (next_desired_speed - desired_speed ) / difference_dt
260- feedforward_accel = np .clip (feedforward_accel , - self .max_decel , self .max_accel )
226+ self .current_traj_parameter += dt
227+ current_trajectory_time = self .current_traj_parameter
228+ print (current_trajectory_time )
229+
230+ deriv = self .trajectory .eval_derivative (current_trajectory_time )
231+
232+ # deriv 0 at time 0
233+ if np .isnan (deriv [0 ]):
234+ desired_speed = 0.0
235+ else :
236+ desired_speed = min (np .linalg .norm (deriv ), self .speed_limit )
237+
238+ difference_dt = 0.1
239+ future_t = current_trajectory_time + difference_dt
240+ if future_t > self .trajectory .domain ()[1 ]:
241+ future_t = self .trajectory .domain ()[1 ]
242+ future_deriv = self .trajectory .eval_derivative (future_t )
243+ next_desired_speed = min (np .linalg .norm (future_deriv ), self .speed_limit )
244+ feedforward_accel = (next_desired_speed - desired_speed ) / difference_dt
245+ feedforward_accel = np .clip (feedforward_accel , - self .max_decel , self .max_accel )
261246 else :
262247 if desired_speed is None :
263248 desired_speed = 4.0
0 commit comments