Ejemplo n.º 1
0
def run():
    # 初始化设置选项
    ai_settings = Settings()
    func.clean_img(ai_settings)

    # 初始化小车
    car = Car(ai_settings)

    # 初始化深度学习模型
    dlmodel = DLmodel(ai_settings)

    # 初始化算法控制系统
    algo = AlgoControl(ai_settings, car)

    # 创建一个状态类, 用以储存标志物状态
    markstats = MarkStatus()

    # 开始任务的主循环
    while True:
        func.get_image(ai_settings, car, dlmodel)

        algo.angle_prep = func.predict_angle(ai_settings, dlmodel)
        car.angle = ai_settings.angle_formula(algo.angle_prep)

        func.get_label_para(ai_settings, dlmodel, markstats)
        func.algorithmal_control(ai_settings, car, markstats, algo)
 def init_kinematic_cars(self):
     for position, car_index in zip(self.positions_list, range(1, self.cars_nr + 1)):
         car_tag = "car_" + str(car_index)
         car_image_path = self.current_dir + '/resources/cars/' + car_tag + '.png'
         car_image = pygame.image.load(car_image_path).convert_alpha()
         car_image = pygame.transform.scale(car_image, (42, 20))
         car = Car(position[0], position[1], car_tag=car_tag, car_image=car_image)
         car.max_velocity = 10
         if len(position) == 3:
             car.angle = position[2]
         self.kinematic_cars[car_tag] = car
Ejemplo n.º 3
0
    def init_highway_traffic(self):
        # define lanes : (40, 4); (37, 3); (34, 2); (31, 1); (43, 5); (46, 6); (49, 7); (52, 8)
        available_x = np.arange(31, 53, 3)
        available_y = np.arange(self.traffic_safe_space, self.screen_height, 4 * self.traffic_safe_space
                                + self.car_image.get_width())
        available_positions = []
        for x in available_x:
            for y in available_y:
                position = (x, y)
                available_positions.append(position)

        random.shuffle(available_positions)

        for car_index in range(self.traffic_cars_nr):
            # generate random position
            car_position = available_positions[random.randint(0, len(available_positions) - 1)]
            # remove that position from the available position list
            available_positions.remove(car_position)
            # init traffic car and add it to traffic list
            traffic_car = Car(car_position[0], car_position[1])
            traffic_car.angle = -90
            traffic_car.include_next_lane_mechanic = True
            traffic_car.max_velocity = random.randint(10, self.car.max_velocity)
            self.highway_traffic.append(traffic_car)