def step(self, carstate: State, command: Command): if self.front_stuck > 15: d = min(carstate.distances_from_edge) command.accelerator = max(0, min(1, 1.3 - 0.7 * d)) command.gear = -1 command.brake = 0.0 command.clutch = 0.0 command.steering = -1 * carstate.angle * np.pi / (180.0 * 0.785398) else: if carstate.speed_x < 3: command.gear = 1 if carstate.rpm > 8000: command.gear = min(6, command.gear + 1) if carstate.rpm < 2500: command.gear = command.gear - 1 if command.gear <= 0: command.gear = 1 command.accelerator = 1 command.gear = 1 if carstate.gear <= 0 else carstate.gear command.brake = 0.0 command.clutch = 0.0 command.steering = carstate.angle * np.pi / (180.0 * 0.785398) command.steering -= 0.35 * np.sign( carstate.distance_from_center) * min( 1.5, math.fabs(carstate.distance_from_center)) return True
def step(self, carstate: State, command: Command): command.accelerator = min( 1, (carstate.distance_from_center - 0.2)**4) #2 - min(carstate.distances_from_edge) command.gear = -1 command.brake = 0.0 command.clutch = 0.0 command.steering = -1 * carstate.angle * np.pi / (180.0 * 0.785398) * 1.5 return True