def __init__(self, model_path): # Load configuration self.car_mapping = cm.CarMapping() self.dir_center_label = round(len(self.car_mapping.label_to_raw_dir_mapping) / 2) # Init label for debug mode self.meta_label = None self.l_label = {} # Racing_status self.racing = False self.pause = False # Load model self.model = load_model(model_path) # Init engines self.pwm = Adafruit_PCA9685.PCA9685() self.pwm.set_pwm_freq(50) # Create a *threaded *video stream, allow the camera sensor to warm_up self.video_stream = PiVideoStream().start() time.sleep(2) # self.video_stream.test() self.frame = self.video_stream.read() self.buffer = None # Debug and print self.start_time = 0 self.elapsed_time = 0 self.nb_pred = 0 self.sampling = 0 self.debug = 0 print("RaceOn initialized")
def __init__(self, delay, output_dir, pwm_freq=50): # Setup Camera self.camera, self.rawCapture = init_cam() self.delay = float(delay) self.label = [-1, 2] self.buffer = [] self.car_mapping = cm.CarMapping() # set controls self.x_cursor = 0 self.trigger = 0 self.pwm = Adafruit_PCA9685.PCA9685() self.pwm.set_pwm_freq(pwm_freq) # Init speed direction self.speed = self.car_mapping.label_to_raw_speed_mapping[0] self.direction = (MAX_DIRECTION_RIGHT + MAX_DIRECTION_LEFT) / 2 self.head = HEAD_DOWN # Set head down self.pwm.set_pwm(2, 0, self.head) # Setup xbox pad self.joy = xbox.Joystick() # Init Label self.meta_label = label_handler.Label(picture_dir=output_dir, camera_position=self.head, car_mapping=self.car_mapping)
def __init__(self, picture_dir=None, camera_position="unknown", car_mapping=None, raise_error=True): self._template = {} self.picture_dir = picture_dir self.car_mapping = cm.CarMapping( ) if car_mapping is None else car_mapping self.init_label_template(camera_position, raise_error=raise_error)
def test_car_mapping_get_normalized_speed_min(): car_mapping = cm.CarMapping() speed = STOP_SPEED assert 0 == car_mapping.get_normalized_speed(speed)
def test_car_mapping_get_raw_speed_from_label_1(): car_mapping = cm.CarMapping() raw_speed = LABEL_TO_RAW_SPEED_MAPPING[1] assert raw_speed == car_mapping.get_raw_speed_from_label(1)
def test_car_mapping_get_raw_direction_from_label_1(): car_mapping = cm.CarMapping() raw_dir = LABEL_TO_RAW_DIR_MAPPING[1] assert raw_dir == car_mapping.get_raw_dir_from_label(1)
def test_car_mapping_get_normalized_dir_left(): car_mapping = cm.CarMapping() direction = MAX_DIRECTION_LEFT assert -1 == car_mapping.get_normalized_direction(direction)
def test_car_mapping_linear_joystick_full_right(): car_mapping = cm.CarMapping() direction = car_mapping.get_raw_dir_from_xbox_joystick(1) assert direction == MAX_DIRECTION_RIGHT
def test_car_mapping_get_normalized_dir_center(): car_mapping = cm.CarMapping() direction = (MAX_DIRECTION_RIGHT + MAX_DIRECTION_LEFT) / 2 assert 0 == car_mapping.get_normalized_direction(direction)
def test_car_mapping_get_normalized_dir_right(): car_mapping = cm.CarMapping() direction = MAX_DIRECTION_RIGHT assert 1 == car_mapping.get_normalized_direction(direction)
def test_car_mapping_get_raw_speed_from_label_outofrange(): car_mapping = cm.CarMapping() i = len(car_mapping.label_to_raw_speed_mapping) + 1 with pytest.raises(IndexError): raw_speed = car_mapping.get_raw_speed_from_label(i)
def test_car_mapping_get_normalized_speed_max(): car_mapping = cm.CarMapping() speed = MAX_SPEED assert 1 == car_mapping.get_normalized_speed(speed)
def test_car_mapping_get_normalized_speed_middle(): car_mapping = cm.CarMapping() speed = (MAX_SPEED + STOP_SPEED) / 2 assert 0.5 == car_mapping.get_normalized_speed(speed)
def test_car_mapping_linear_trigger_middle(): car_mapping = cm.CarMapping() speed = car_mapping.get_raw_speed_from_xbox_trigger(0.5) assert speed == round((MAX_SPEED + STOP_SPEED) / 2)
def test_car_mapping_linear_trigger_max(): car_mapping = cm.CarMapping() speed = car_mapping.get_raw_speed_from_xbox_trigger(1) assert speed == MAX_SPEED
def test_car_mapping_linear_trigger_min(): car_mapping = cm.CarMapping() speed = car_mapping.get_raw_speed_from_xbox_trigger(0) assert speed == STOP_SPEED
def test_car_mapping_linear_joystick_center(): car_mapping = cm.CarMapping() direction = car_mapping.get_raw_dir_from_xbox_joystick(0) assert direction == round((MAX_DIRECTION_LEFT + MAX_DIRECTION_RIGHT) / 2)