fix joystick

pull/34410/head
Shane Smiskol 3 months ago
parent 1d919221e4
commit 733206fdd9
  1. 4
      tools/joystick/joystick_control.py
  2. 4
      tools/joystick/joystickd.py

@ -34,7 +34,7 @@ class Keyboard:
elif key in self.axes_map:
axis = self.axes_map[key]
incr = self.axis_increment if key in ['w', 'a'] else -self.axis_increment
self.axes_values[axis] = np.clip(self.axes_values[axis] + incr, -1, 1)
self.axes_values[axis] = float(np.clip(self.axes_values[axis] + incr, -1, 1))
else:
return False
return True
@ -83,7 +83,7 @@ class Joystick:
self.max_axis_value[event[0]] = max(event[1], self.max_axis_value[event[0]])
self.min_axis_value[event[0]] = min(event[1], self.min_axis_value[event[0]])
norm = -np.interp(event[1], [self.min_axis_value[event[0]], self.max_axis_value[event[0]]], [-1., 1.])
norm = -float(np.interp(event[1], [self.min_axis_value[event[0]], self.max_axis_value[event[0]]], [-1., 1.]))
norm = norm if abs(norm) > 0.03 else 0. # center can be noisy, deadzone of 3%
self.axes_values[event[0]] = EXPO * norm ** 3 + (1 - EXPO) * norm # less action near center for fine control
else:

@ -45,13 +45,13 @@ def joystickd_thread():
joystick_axes = [0.0, 0.0]
if CC.longActive:
actuators.accel = 4.0 * np.clip(joystick_axes[0], -1, 1)
actuators.accel = 4.0 * float(np.clip(joystick_axes[0], -1, 1))
if CC.latActive:
max_curvature = MAX_LAT_ACCEL / max(sm['carState'].vEgo ** 2, 5)
max_angle = math.degrees(VM.get_steer_from_curvature(max_curvature, sm['carState'].vEgo, sm['liveParameters'].roll))
actuators.steer = np.clip(joystick_axes[1], -1, 1)
actuators.steer = float(np.clip(joystick_axes[1], -1, 1))
actuators.steeringAngleDeg, actuators.curvature = actuators.steer * max_angle, actuators.steer * -max_curvature
pm.send('carControl', cc_msg)

Loading…
Cancel
Save