Skip to content

Commit 4429f1e

Browse files
changing desired speed for PID back to derivative eval and changing max speed back to 10.0
1 parent 2edbfcd commit 4429f1e

3 files changed

Lines changed: 24 additions & 40 deletions

File tree

GEMstack/knowledge/vehicle/gem_e2_fast_limits.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
max_steering_rate: 4.0 #radians/s
2-
max_speed: 6.0 #m/s, approx 20 mph
2+
max_speed: 10.0 #m/s, approx 20 mph
33
max_reverse_speed: 2.5 #m/s, approx 5 mph
44
max_acceleration: 3.0 #m/s^2
55
max_deceleration: 5.0 #m/s^2

GEMstack/onboard/planning/stanley.py

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -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

GEMstack/state/trajectory.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def racing_velocity_profile(self) -> Trajectory:
8888
times = [0.0]
8989
points = self.points
9090
times, velocities = compute_velocity_profile(points)
91-
return Trajectory(frame=self.frame,points=points,times=times, velocities=velocities)
91+
return Trajectory(frame=self.frame,points=points,times=times)
9292

9393
def closest_point(self, x : List[float], edges = True) -> Tuple[float,float]:
9494
"""Returns the closest point on the path to the given point. If
@@ -273,7 +273,6 @@ def det(matrix):
273273
class Trajectory(Path):
274274
"""A timed, piecewise linear path."""
275275
times : List[float]
276-
velocities : Optional[List[float]] = None
277276

278277
def domain(self) -> Tuple[float,float]:
279278
"""Returns the time parameter domain"""

0 commit comments

Comments
 (0)