Simulator: blinkers and lane changes (#30107)

blinkers and lane changes
old-commit-hash: ba90bdf7d9
laptop
Justin Newberry 2 years ago committed by GitHub
parent 53e4ca1546
commit db839e887d
  1. 8
      tools/sim/bridge/common.py
  2. 4
      tools/sim/lib/common.py
  3. 4
      tools/sim/lib/keyboard_ctrl.py
  4. 9
      tools/sim/lib/simulated_car.py

@ -109,6 +109,8 @@ Ignition: {self.simulator_state.ignition} Engaged: {self.simulator_state.is_enga
throttle_op = steer_op = brake_op = 0.0 throttle_op = steer_op = brake_op = 0.0
self.simulator_state.cruise_button = 0 self.simulator_state.cruise_button = 0
self.simulator_state.left_blinker = False
self.simulator_state.right_blinker = False
throttle_manual = steer_manual = brake_manual = 0. throttle_manual = steer_manual = brake_manual = 0.
@ -131,6 +133,11 @@ Ignition: {self.simulator_state.ignition} Engaged: {self.simulator_state.is_enga
self.simulator_state.cruise_button = CruiseButtons.CANCEL self.simulator_state.cruise_button = CruiseButtons.CANCEL
elif m[1] == "main": elif m[1] == "main":
self.simulator_state.cruise_button = CruiseButtons.MAIN self.simulator_state.cruise_button = CruiseButtons.MAIN
elif m[0] == "blinker":
if m[1] == "left":
self.simulator_state.left_blinker = True
elif m[1] == "right":
self.simulator_state.right_blinker = True
elif m[0] == "ignition": elif m[0] == "ignition":
self.simulator_state.ignition = not self.simulator_state.ignition self.simulator_state.ignition = not self.simulator_state.ignition
elif m[0] == "reset": elif m[0] == "reset":
@ -140,6 +147,7 @@ Ignition: {self.simulator_state.ignition} Engaged: {self.simulator_state.is_enga
self.simulator_state.user_brake = brake_manual self.simulator_state.user_brake = brake_manual
self.simulator_state.user_gas = throttle_manual self.simulator_state.user_gas = throttle_manual
self.simulator_state.user_torque = steer_manual * 10000
steer_manual = steer_manual * -40 steer_manual = steer_manual * -40

@ -49,9 +49,13 @@ class SimulatorState:
self.user_gas: float = 0 self.user_gas: float = 0
self.user_brake: float = 0 self.user_brake: float = 0
self.user_torque: float = 0
self.cruise_button = 0 self.cruise_button = 0
self.left_blinker = False
self.right_blinker = False
@property @property
def speed(self): def speed(self):
return math.sqrt(self.velocity.x ** 2 + self.velocity.y ** 2 + self.velocity.z ** 2) return math.sqrt(self.velocity.x ** 2 + self.velocity.y ** 2 + self.velocity.z ** 2)

@ -67,6 +67,10 @@ def keyboard_poll_thread(q: 'Queue[str]'):
q.put("brake_%f" % 1.0) q.put("brake_%f" % 1.0)
elif c == 'd': elif c == 'd':
q.put("steer_%f" % -0.15) q.put("steer_%f" % -0.15)
elif c == 'z':
q.put("blinker_left")
elif c == 'x':
q.put("blinker_right")
elif c == 'i': elif c == 'i':
q.put("ignition") q.put("ignition")
elif c == 'r': elif c == 'r':

@ -59,7 +59,7 @@ class SimulatedCar:
msg.append(self.packer.make_can_msg("GEARBOX", 0, {"GEAR": 4, "GEAR_SHIFTER": 8})) msg.append(self.packer.make_can_msg("GEARBOX", 0, {"GEAR": 4, "GEAR_SHIFTER": 8}))
msg.append(self.packer.make_can_msg("GAS_PEDAL_2", 0, {})) msg.append(self.packer.make_can_msg("GAS_PEDAL_2", 0, {}))
msg.append(self.packer.make_can_msg("SEATBELT_STATUS", 0, {"SEATBELT_DRIVER_LATCHED": 1})) msg.append(self.packer.make_can_msg("SEATBELT_STATUS", 0, {"SEATBELT_DRIVER_LATCHED": 1}))
msg.append(self.packer.make_can_msg("STEER_STATUS", 0, {})) msg.append(self.packer.make_can_msg("STEER_STATUS", 0, {"STEER_TORQUE_SENSOR": simulator_state.user_torque}))
msg.append(self.packer.make_can_msg("STEERING_SENSORS", 0, {"STEER_ANGLE": simulator_state.steering_angle})) msg.append(self.packer.make_can_msg("STEERING_SENSORS", 0, {"STEER_ANGLE": simulator_state.steering_angle}))
msg.append(self.packer.make_can_msg("VSA_STATUS", 0, {})) msg.append(self.packer.make_can_msg("VSA_STATUS", 0, {}))
msg.append(self.packer.make_can_msg("STANDSTILL", 0, {"WHEELS_MOVING": 1 if simulator_state.speed >= 1.0 else 0})) msg.append(self.packer.make_can_msg("STANDSTILL", 0, {"WHEELS_MOVING": 1 if simulator_state.speed >= 1.0 else 0}))
@ -68,7 +68,12 @@ class SimulatedCar:
msg.append(self.packer.make_can_msg("DOORS_STATUS", 0, {})) msg.append(self.packer.make_can_msg("DOORS_STATUS", 0, {}))
msg.append(self.packer.make_can_msg("CRUISE_PARAMS", 0, {})) msg.append(self.packer.make_can_msg("CRUISE_PARAMS", 0, {}))
msg.append(self.packer.make_can_msg("CRUISE", 0, {})) msg.append(self.packer.make_can_msg("CRUISE", 0, {}))
msg.append(self.packer.make_can_msg("SCM_FEEDBACK", 0, {"MAIN_ON": 1})) msg.append(self.packer.make_can_msg("SCM_FEEDBACK", 0,
{
"MAIN_ON": 1,
"LEFT_BLINKER": simulator_state.left_blinker,
"RIGHT_BLINKER": simulator_state.right_blinker
}))
msg.append(self.packer.make_can_msg("POWERTRAIN_DATA", 0, msg.append(self.packer.make_can_msg("POWERTRAIN_DATA", 0,
{ {
"ACC_STATUS": int(simulator_state.is_engaged), "ACC_STATUS": int(simulator_state.is_engaged),

Loading…
Cancel
Save