| 591 | |
| 592 | |
| 593 | class Context(object): |
| 594 | def __init__(self, args): |
| 595 | self.args = args |
| 596 | self.rng = random.Random(args.seed) |
| 597 | |
| 598 | with (DATA_PATH/'{}.sim_bounds'.format(args.dataset)).open('r') as f: |
| 599 | self.bounds_min = carla.Vector2D(*[float(v) for v in f.readline().split(',')]) |
| 600 | self.bounds_max = carla.Vector2D(*[float(v) for v in f.readline().split(',')]) |
| 601 | self.bounds_occupancy = carla.OccupancyMap(self.bounds_min, self.bounds_max) |
| 602 | |
| 603 | self.forbidden_bounds_min = None |
| 604 | self.forbidden_bounds_max = None |
| 605 | self.forbidden_bounds_occupancy = None |
| 606 | |
| 607 | self.sumo_network = carla.SumoNetwork.load(str(DATA_PATH/'{}.net.xml'.format(args.dataset))) |
| 608 | self.sumo_network_segments = self.sumo_network.create_segment_map() |
| 609 | self.sumo_network_spawn_segments = self.sumo_network_segments.intersection(carla.OccupancyMap(self.bounds_min, self.bounds_max)) |
| 610 | self.sumo_network_spawn_segments.seed_rand(self.rng.getrandbits(32)) |
| 611 | self.sumo_network_occupancy = carla.OccupancyMap.load(str(DATA_PATH/'{}.network.wkt'.format(args.dataset))) |
| 612 | |
| 613 | self.sidewalk = self.sumo_network_occupancy.create_sidewalk(1.5) |
| 614 | self.sidewalk_segments = self.sidewalk.create_segment_map() |
| 615 | self.sidewalk_spawn_segments = self.sidewalk_segments.intersection(carla.OccupancyMap(self.bounds_min, self.bounds_max)) |
| 616 | self.sidewalk_spawn_segments.seed_rand(self.rng.getrandbits(32)) |
| 617 | self.sidewalk_occupancy = carla.OccupancyMap.load(str(DATA_PATH/'{}.sidewalk.wkt'.format(args.dataset))) |
| 618 | |
| 619 | self.client = carla.Client(args.host, args.port) |
| 620 | self.client.set_timeout(10.0) |
| 621 | self.world = self.client.get_world() |
| 622 | self.crowd_service = Pyro4.Proxy('PYRO:crowdservice.warehouse@localhost:{}'.format(args.pyroport)) |
| 623 | |
| 624 | self.pedestrian_blueprints = self.world.get_blueprint_library().filter('walker.pedestrian.*') |
| 625 | self.vehicle_blueprints = self.world.get_blueprint_library().filter('vehicle.*') |
| 626 | self.car_blueprints = [x for x in self.vehicle_blueprints if int(x.get_attribute('number_of_wheels')) == 4] |
| 627 | self.car_blueprints = [x for x in self.car_blueprints if x.id not in ['vehicle.bmw.isetta']] # This dude moves too slow. |
| 628 | self.bike_blueprints = [x for x in self.vehicle_blueprints if int(x.get_attribute('number_of_wheels')) == 2] |
| 629 | |
| 630 | class Statistics(object): |
| 631 | def __init__(self, log_file): |
no outgoing calls
no test coverage detected