Example #1
0
	def __init__(self, ID, agentType="robot", vehicleType="car", strategyFile=None):
		self.ID = str(ID)

		if vehicleType.lower() == "car":
			self.vehicle = vehicle.Car(self)
		elif vehicleType.lower() == "truck":
			self.vehicle = vehicle.Truck(self)
		elif vehicleType.lower() == "motorcycle":
			self.vehicle = vehicle.Motorcycle(self)
		elif vehicleType.lower() == "bicycle":
			self.vehicle = vehicle.Bicycle(self)
		else:
			print(msgHeader + "Could not initialise Agent " + self.ID + " with vehicle type '" + vehicleType + "'.")
			self.vehicle = vehicle.Car(self)

		self.worldKnowledge = {}

		self.strategy = None
		if strategyFile is not None and strategyFile != "Manual": # Do not look for 'manual' strategy file
			try:
				self.strategy = import_file("strategy", strategyFile)
				print(msgHeader + "Successfully loaded the strategy file for Agent " + self.ID + ".")
			except:
				print(msgHeader + "Could not load the strategy file for Agent " + self.ID + ". (Fatal)")
				exit()
		elif strategyFile is not None and strategyFile == "Manual": # Mark agent as a manual car
			self.strategy = "Manual"
			print(msgHeader + "Manual agent successfully initialised.")

		self.stopped = False
Example #2
0
    def test_load_inputs_from_array(self):
        car = vehicle.Car()

        inputs = [[0.5, 0.25, -15], [0, 0, 0]]
        car.load_inputs(in_list=inputs)

        self.assertEqual(inputs, car.input_buffer)
Example #3
0
    def run(self, FSAngle, FSVelocity):
        car = vehicle.Car(constants.CAR_POS_X, constants.CAR_POS_Y,
                          constants.CAR_ANGLE)

        iteration = 0
        dec = decoder.Decoder(FSAngle, FSVelocity, self.car, False)

        while not self.exit:
            dt = self.clock.get_time() / 1000

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    self.exit = True

            ds, drot = dec.get_movement_params()
            fuzzy_text = dec.fuzzy_text
            self.car.update(dt, ds, drot)

            current_pixel_color = self.draw_screen(fuzzy_text)
            iteration = iteration + 1
            if self.car.is_idle(iteration) or self.car.is_collided(
                    current_pixel_color):
                break

            self.clock.tick(self.ticks)

        pygame.quit()
        return vehicle.distance(self.car.center_position().x,
                                self.car.center_position().y, constants.GOAL.x,
                                constants.GOAL.y)
def main():
    # Creates a Car Object
    car = vehicle.Car('Bugatti', 'Veyron', 0, 3000000, 2)

    # Creates a Truck object
    truck = vehicle.Truck('Dodge', 'Power Wagon', 0, 57000, '4x4')

    # Creates a SUV object
    suv = vehicle.SUV('Jeep', 'Wrangler', 200000, 5000, 4)

    print('Vehcile Inventory')
    print('*****************')

    # Display the vehicles's data
    print('Make: ', car.get_make())
    print('Model: ', car.get_model())
    print('Mileage: ', car.get_mileage())
    print('Price: ', car.get_price())
    print('Doors: ', car.get_doors())
    print('\n')
    print('Make: ', truck.get_make())
    print('Model: ', truck.get_model())
    print('Mileage: ', truck.get_mileage())
    print('Price: ', truck.get_price())
    print('Drive Type: ', truck.get_drive_type())
    print('\n')
    print('Make: ', suv.get_make())
    print('Model: ', suv.get_model())
    print('Mileage: ', suv.get_mileage())
    print('Price: ', suv.get_price())
    print('Pass Cap: ', suv.get_pass_cap())
Example #5
0
    def test_update(self):
        inputs = [[0.75, 0.0, -30]]
        car = vehicle.Car(orientation=30, inputs=inputs)

        t_s = 1

        car.take_next_inputs(input_series=car.input_buffer)
        car.update(timestep=t_s)
Example #6
0
    def test_take_next_inputs(self):
        car = vehicle.Car()

        inputs = [[-0.5, 0.15, 15]]
        car.take_next_inputs(input_series=inputs)
        self.assertEqual(inputs, car.input_buffer)

        car.take_next_inputs(input_series=[])
        self.assertEqual(0, car.st_angle_p)
Example #7
0
    def test_next_pos(self):
        t_s = 1
        car = vehicle.Car()

        inputs = [0, 0, 0]
        pos = [0, 0]

        x, y = car.next_pos(pos, inputs, t_s)
        self.assertEqual(x, 0)
        self.assertEqual(y, 0)
Example #8
0
def test__get_total_daily_toll_for_vehicle():
    config_path = os.path.abspath(
        os.path.dirname(__file__)) + "/full_test_config.json"
    cfg = main._load_config(config_path)
    car = vehicle.Car()
    # 16 sek
    passes = [
        datetime.datetime(2019, 1, 23, 8, 0),
        datetime.datetime(2019, 1, 23, 9, 0),
    ]
    assert main._get_total_daily_toll_for_vehicle(cfg, car, passes) == 16
Example #9
0
    def park(self, registration_num, driver_age):
        if self.num_of_occupied_slots < self.capacity:
            slot_id = self.get_empty_slot()

            self.slots[slot_id] = vehicle.Car(registration_num, driver_age)
            self.slot_id = self.slot_id + 1

            self.num_of_occupied_slots = self.num_of_occupied_slots + 1
            return slot_id + 1
        else:
            return -1
Example #10
0
def test__get_vehicle_and_passes_from_csv():
    test_csv = config_path = os.path.abspath(
        os.path.dirname(__file__)) + "/test.csv"
    expected_passes = [
        datetime.datetime(2019, 1, 23, 8, 0),
        datetime.datetime(2019, 1, 23, 9, 0),
    ]
    car = vehicle.Car()
    v, passes = main._get_vehicle_and_passes_from_csv(test_csv)
    assert car.get_type() == v.get_type()
    assert passes == expected_passes
def main():
    # Create an object from the Car class
    # The car is a 2007 Audi with 12k miles, priced at
    # 21.5k and has 4 doors.
    used_car = vehicle.Car('Audi', 'A3', 12500, 21500.00, 4)

    # Display the cars data
    print('Make: ', used_car.get_make())
    print('Model: ', used_car.get_model())
    print('Mileage: ', used_car.get_mileage())
    print('Price: ', used_car.get_price())
    print('Doors: ', used_car.get_doors())
Example #12
0
    def __init__(self, path, closed_polygon):
        pygame.init()
        pygame.display.set_caption("Trained car")
        self.screen = pygame.display.set_mode(
            (constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT), DOUBLEBUF)
        self.screen.set_alpha(False)
        self.left_screen = pygame.Surface(
            (constants.LEFT_SCREEN_WIDTH, constants.SCREEN_HEIGHT))
        self.right_screen = pygame.Surface(
            (constants.RIGHT_SCREEN_WIDTH, constants.SCREEN_HEIGHT))
        self.font = pygame.font.SysFont('Times New Roman', constants.FONT_SIZE)
        self.clock = pygame.time.Clock()
        self.ticks = 60
        self.exit = False
        self.car = vehicle.Car(constants.CAR_POS_X, constants.CAR_POS_Y,
                               constants.CAR_ANGLE)

        self.path = path
        self.closed_polygon = closed_polygon
def evaluate(FSAngle, FSVelocity, road_matrix, memory):
    """
    Runs a single simulation, movement params are calculated based on the fuzzy systems FSAngle and FSVelocity
    """
    car = vehicle.Car(constants.CAR_POS_X, constants.CAR_POS_Y,
                      constants.CAR_ANGLE)

    iteration = 0
    past_pos = car.center_position()

    dec = decoder.Decoder(FSAngle, FSVelocity, car)
    dt = TIME_STEP

    total_distance = 0
    punishment = 0
    left_right = 0

    while iteration <= MAX_ITERATIONS:

        car.left_sensor_input, car.front_sensor_input, car.right_sensor_input = get_sensors(
            car, road_matrix, memory)
        ds, drot = dec.get_movement_params()
        car.update(dt, ds, drot)

        iteration += 1
        total_distance += ds
        left_right += abs(
            float(car.left_sensor_input) - float(car.right_sensor_input))

        if iteration % 100 == 0:
            past_x, past_y = past_pos
            curr_x, curr_y = car.center_position()
            if vehicle.distance(past_x, past_y, curr_x, curr_y) < MIN_DISTANCE:
                break
            else:
                past_pos = car.center_position()

        if car.is_idle(iteration) or car.is_collided2(road_matrix):
            punishment = 150
            break

    return left_right / iteration + punishment
Example #14
0
    def test_load_inputs_from_file(self):
        car = vehicle.Car()

        inputs = [[0.5, 0.25, -15], [0, 0, 0]]

        test_inputs_file = open('test_inputs.csv', 'w')

        for i in range(len(inputs)):
            test_inputs_file.write(
                f'{inputs[i][0]},{inputs[i][1]},{inputs[i][2]}\n')
        test_inputs_file.close()

        car.load_inputs(file='test_inputs.csv')
        os.remove('test_inputs.csv')

        car_input_buffer = car.input_buffer

        for i in range(len(car_input_buffer)):
            for j in range(len(car_input_buffer[i])):
                car_input_buffer[i][j] = float(car_input_buffer[i][j])

        self.assertEqual(inputs, car_input_buffer)
Example #15
0
import vehicle

if __name__ == "__main__":
    my_car = vehicle.Car()
    my_car.start()
    my_car.accelerate()
    speed_mile = vehicle.change_km_to_mile(my_car.get_speed())
    print('속도:', speed_mile, 'mile')
    my_car.stop()
Example #16
0
 def test_car_orientation(self):
     car = vehicle.Car(orientation=math.radians(360))
     self.assertEqual(car.orientation, 0)
Example #17
0
 def setup_method(self):
     print("setup_method car")
     self.vehicle = vehicle.Car()
     self.vehicle.set_num_wheels(3)
     self.vehicle.set_capacity(4)
     self.vehicle.turn_engine_on()
Example #18
0
from car import Car

tesla = Car('Tesla')
Car.get_number_of_wheels()
print(tesla.get_number_of_wheels())
tesla.start()

print(str(tesla))
print(repr(tesla))

import vehicle

four_by_four = vehicle.Vehicle('zoom', 'fast', fuel='oil')
my_tesla = vehicle.Car('Tesla', 'x99', fuel='diessel')
print(my_tesla.make)
print(my_tesla.model)
print(my_tesla.fuel)
print(my_tesla.num_wheels)
print(my_tesla.is_eco_friendly())
import vehicle

truck1 = vehicle.Truck()
car1 = vehicle.Car()

print(truck1)
Example #20
0
def add_car(rego, model, color, price):
    cars.append(vehicle.Car(rego, model, color, price))