Python carla.Location() Examples
The following are 30
code examples of carla.Location().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
carla
, or try the search function
.
Example #1
Source File: utils.py From pylot with Apache License 2.0 | 9 votes |
def from_gps(cls, latitude, longitude, altitude): """Creates Location from GPS (latitude, longitude, altitude). This is the inverse of the _location_to_gps method found in https://github.com/carla-simulator/scenario_runner/blob/master/srunner/tools/route_manipulation.py """ EARTH_RADIUS_EQUA = 6378137.0 # The following reference values are applicable for towns 1 through 7, # and are taken from the corresponding CARLA OpenDrive map files. LAT_REF = 49.0 LON_REF = 8.0 scale = math.cos(LAT_REF * math.pi / 180.0) basex = scale * math.pi * EARTH_RADIUS_EQUA / 180.0 * LON_REF basey = scale * EARTH_RADIUS_EQUA * math.log( math.tan((90.0 + LAT_REF) * math.pi / 360.0)) x = scale * math.pi * EARTH_RADIUS_EQUA / 180.0 * longitude - basex y = scale * EARTH_RADIUS_EQUA * math.log( math.tan((90.0 + latitude) * math.pi / 360.0)) - basey # This wasn't in the original carla method, but seems to be necessary. y *= -1 return cls(x, y, altitude)
Example #2
Source File: nav_utils.py From macad-gym with MIT License | 6 votes |
def get_next_waypoint(world, location, distance=1.0): """Return the waypoint coordinates `distance` meters away from `location` Args: world (carla.World): world to navigate in location (tuple): [x, y, z] distance (float): Desired separation distance in meters Returns: The next waypoint as a list of coordinates (x,y,z) """ # TODO: Use named tuple for location current_waypoint = world.get_map().get_waypoint( carla.Location(location[0], location[1], location[2])) current_coords = current_waypoint.transform.location next_waypoints = current_waypoint.next(distance) if len(next_waypoints) > 0: current_coords = next_waypoints[0].transform.location return [current_coords.x, current_coords.y, current_coords.z]
Example #3
Source File: test_transform.py From macad-gym with MIT License | 6 votes |
def test_values(self): t = carla.Transform() self.assertEqual(t.location.x, 0.0) self.assertEqual(t.location.y, 0.0) self.assertEqual(t.location.z, 0.0) self.assertEqual(t.rotation.pitch, 0.0) self.assertEqual(t.rotation.yaw, 0.0) self.assertEqual(t.rotation.roll, 0.0) t = carla.Transform(carla.Location(y=42.0)) self.assertEqual(t.location.x, 0.0) self.assertEqual(t.location.y, 42.0) self.assertEqual(t.location.z, 0.0) self.assertEqual(t.rotation.pitch, 0.0) self.assertEqual(t.rotation.yaw, 0.0) self.assertEqual(t.rotation.roll, 0.0) t = carla.Transform(rotation=carla.Rotation(yaw=42.0)) self.assertEqual(t.location.x, 0.0) self.assertEqual(t.location.y, 0.0) self.assertEqual(t.location.z, 0.0) self.assertEqual(t.rotation.pitch, 0.0) self.assertEqual(t.rotation.yaw, 42.0) self.assertEqual(t.rotation.roll, 0.0)
Example #4
Source File: utils.py From pylot with Apache License 2.0 | 6 votes |
def get_angle_and_magnitude(self, target_loc): """Computes relative angle between the transform and a target location. Args: target_loc (:py:class:`.Location`): Location of the target. Returns: Angle in radians and vector magnitude. """ target_vec = target_loc.as_vector_2D() - self.location.as_vector_2D() magnitude = target_vec.magnitude() if magnitude > 0: forward_vector = Vector2D( math.cos(math.radians(self.rotation.yaw)), math.sin(math.radians(self.rotation.yaw))) angle = target_vec.get_angle(forward_vector) else: angle = 0 return angle, magnitude
Example #5
Source File: utils.py From pylot with Apache License 2.0 | 6 votes |
def transform_locations(self, locations): """Transforms the given set of locations (specified in the coordinate space of the current transform) to be in the world coordinate space. This method has the same functionality as transform_points, and is provided for convenience; when dealing with a large number of points, it is advised to use transform_points to avoid the slow conversion between a numpy array and list of locations. Args: points (list(:py:class:`.Location`)): List of locations. Returns: list(:py:class:`.Location`): List of transformed points. """ points = np.array([loc.as_numpy_array() for loc in locations]) transformed_points = self.__transform(points, self.matrix) return [Location(x, y, z) for x, y, z in transformed_points]
Example #6
Source File: atomic_behaviors.py From scenario_runner with MIT License | 6 votes |
def update(self): """ Update road friction. Spawns new friction blueprint and removes the old one, if existing. returns: py_trees.common.Status.SUCCESS """ for actor in CarlaDataProvider.get_world().get_actors().filter('static.trigger.friction'): actor.destroy() friction_bp = CarlaDataProvider.get_world().get_blueprint_library().find('static.trigger.friction') extent = carla.Location(1000000.0, 1000000.0, 1000000.0) friction_bp.set_attribute('friction', str(self._friction)) friction_bp.set_attribute('extent_x', str(extent.x)) friction_bp.set_attribute('extent_y', str(extent.y)) friction_bp.set_attribute('extent_z', str(extent.z)) # Spawn Trigger Friction transform = carla.Transform() transform.location = carla.Location(-10000.0, -10000.0, 0.0) CarlaDataProvider.get_world().spawn_actor(friction_bp, transform) return py_trees.common.Status.SUCCESS
Example #7
Source File: test_transform.py From macad-gym with MIT License | 6 votes |
def test_default_values(self): location = carla.Location() self.assertEqual(location.x, 0.0) self.assertEqual(location.y, 0.0) self.assertEqual(location.z, 0.0) location = carla.Location(1.0) self.assertEqual(location.x, 1.0) self.assertEqual(location.y, 0.0) self.assertEqual(location.z, 0.0) location = carla.Location(1.0, 2.0) self.assertEqual(location.x, 1.0) self.assertEqual(location.y, 2.0) self.assertEqual(location.z, 0.0) location = carla.Location(1.0, 2.0, 3.0) self.assertEqual(location.x, 1.0) self.assertEqual(location.y, 2.0) self.assertEqual(location.z, 3.0)
Example #8
Source File: weather_sim.py From scenario_runner with MIT License | 6 votes |
def __init__(self, carla_weather, dtime=None, animation=False): """ Class constructor """ self.carla_weather = carla_weather self.animation = animation self._sun = ephem.Sun() # pylint: disable=no-member self._observer_location = ephem.Observer() geo_location = CarlaDataProvider.get_map().transform_to_geolocation(carla.Location(0, 0, 0)) self._observer_location.lon = str(geo_location.longitude) self._observer_location.lat = str(geo_location.latitude) #@TODO This requires the time to be in UTC to be accurate self.datetime = dtime if self.datetime: self._observer_location.date = self.datetime self.update()
Example #9
Source File: test_canny_lane_detection.py From pylot with Apache License 2.0 | 6 votes |
def spawn_rgb_camera(world, location, rotation, vehicle): """ This method spawns an RGB camera with the default parameters and the given location and rotation. It also attaches the camera to the given actor. Args: world: The world inside the current simulation. location: The carla.Location instance representing the location where the camera needs to be spawned with respect to the vehicle. rotation: The carla.Rotation instance representing the rotation of the spawned camera. vehicle: The carla.Actor instance to attach the camera to. Returns: An instance of the camera spawned in the world. """ camera_bp = world.get_blueprint_library().find('sensor.camera.rgb') camera_bp.set_attribute('image_size_x', '1280') camera_bp.set_attribute('image_size_y', '720') transform = carla.Transform(location=location, rotation=rotation) return world.spawn_actor(camera_bp, transform, attach_to=vehicle)
Example #10
Source File: carla_data_provider.py From scenario_runner with MIT License | 6 votes |
def get_trafficlight_trigger_location(traffic_light): # pylint: disable=invalid-name """ Calculates the yaw of the waypoint that represents the trigger volume of the traffic light """ def rotate_point(point, angle): """ rotate a given point by a given angle """ x_ = math.cos(math.radians(angle)) * point.x - math.sin(math.radians(angle)) * point.y y_ = math.sin(math.radians(angle)) * point.x - math.cos(math.radians(angle)) * point.y return carla.Vector3D(x_, y_, point.z) base_transform = traffic_light.get_transform() base_rot = base_transform.rotation.yaw area_loc = base_transform.transform(traffic_light.trigger_volume.location) area_ext = traffic_light.trigger_volume.extent point = rotate_point(carla.Vector3D(0, 0, area_ext.z), base_rot) point_location = area_loc + carla.Location(x=point.x, y=point.y) return carla.Location(point_location.x, point_location.y, point_location.z)
Example #11
Source File: no_rendering_mode.py From scenario_runner with MIT License | 6 votes |
def _render_vehicles(self, surface, list_v, world_to_pixel): for v in list_v: color = COLOR_SKY_BLUE_0 if int(v[0].attributes['number_of_wheels']) == 2: color = COLOR_CHOCOLATE_1 if v[0].attributes['role_name'] == 'hero': color = COLOR_CHAMELEON_0 # Compute bounding box points bb = v[0].bounding_box.extent corners = [carla.Location(x=-bb.x, y=-bb.y), carla.Location(x=bb.x - 0.8, y=-bb.y), carla.Location(x=bb.x, y=0), carla.Location(x=bb.x - 0.8, y=bb.y), carla.Location(x=-bb.x, y=bb.y), carla.Location(x=-bb.x, y=-bb.y) ] v[1].transform(corners) corners = [world_to_pixel(p) for p in corners] pygame.draw.lines(surface, color, False, corners, int(math.ceil(4.0 * self.map_image.scale)))
Example #12
Source File: test_transform.py From macad-gym with MIT License | 6 votes |
def test_named_args(self): location = carla.Location(x=42.0) self.assertEqual(location.x, 42.0) self.assertEqual(location.y, 0.0) self.assertEqual(location.z, 0.0) location = carla.Location(y=42.0) self.assertEqual(location.x, 0.0) self.assertEqual(location.y, 42.0) self.assertEqual(location.z, 0.0) location = carla.Location(z=42.0) self.assertEqual(location.x, 0.0) self.assertEqual(location.y, 0.0) self.assertEqual(location.z, 42.0) location = carla.Location(z=3.0, x=1.0, y=2.0) self.assertEqual(location.x, 1.0) self.assertEqual(location.y, 2.0) self.assertEqual(location.z, 3.0)
Example #13
Source File: utils.py From pylot with Apache License 2.0 | 6 votes |
def is_within_distance_ahead(self, dst_loc, max_distance): """Checks if a location is within a distance. Args: dst_loc (:py:class:`.Location`): Location to compute distance to. max_distance (:obj:`float`): Maximum allowed distance. Returns: bool: True if other location is within max_distance. """ d_angle, norm_dst = self.get_angle_and_magnitude(dst_loc) # Return if the vector is too small. if norm_dst < 0.001: return True # Return if the vector is greater than the distance. if norm_dst > max_distance: return False return d_angle < 90.0
Example #14
Source File: basic_scenario.py From scenario_runner with MIT License | 6 votes |
def _initialize_environment(self, world): """ Default initialization of weather and road friction. Override this method in child class to provide custom initialization. """ # Set the appropriate weather conditions world.set_weather(self.config.weather) # Set the appropriate road friction if self.config.friction is not None: friction_bp = world.get_blueprint_library().find('static.trigger.friction') extent = carla.Location(1000000.0, 1000000.0, 1000000.0) friction_bp.set_attribute('friction', str(self.config.friction)) friction_bp.set_attribute('extent_x', str(extent.x)) friction_bp.set_attribute('extent_y', str(extent.y)) friction_bp.set_attribute('extent_z', str(extent.z)) # Spawn Trigger Friction transform = carla.Transform() transform.location = carla.Location(-10000.0, -10000.0, 0.0) world.spawn_actor(friction_bp, transform)
Example #15
Source File: utils.py From pylot with Apache License 2.0 | 6 votes |
def __init__(self, location=None, rotation=None, matrix=None): if matrix is not None: self.matrix = matrix self.location = Location(matrix[0, 3], matrix[1, 3], matrix[2, 3]) # Forward vector is retrieved from the matrix. self.forward_vector = Vector3D(self.matrix[0, 0], self.matrix[1, 0], self.matrix[2, 0]) pitch_r = math.asin(self.forward_vector.z) yaw_r = math.acos( np.clip(self.forward_vector.x / math.cos(pitch_r), -1, 1)) roll_r = math.asin(matrix[2, 1] / (-1 * math.cos(pitch_r))) self.rotation = Rotation(math.degrees(pitch_r), math.degrees(yaw_r), math.degrees(roll_r)) else: self.location, self.rotation = location, rotation self.matrix = Transform._create_matrix(self.location, self.rotation) # Forward vector is retrieved from the matrix. self.forward_vector = Vector3D(self.matrix[0, 0], self.matrix[1, 0], self.matrix[2, 0])
Example #16
Source File: env_utils.py From tensorforce with Apache License 2.0 | 6 votes |
def random_spawn_point(world_map: carla.Map, different_from: carla.Location = None) -> carla.Transform: """Returns a random spawning location. :param world_map: a carla.Map instance obtained by calling world.get_map() :param different_from: ensures that the location of the random spawn point is different from the one specified here. :return: a carla.Transform instance. """ available_spawn_points = world_map.get_spawn_points() if different_from is not None: while True: spawn_point = random.choice(available_spawn_points) if spawn_point.location != different_from: return spawn_point else: return random.choice(available_spawn_points)
Example #17
Source File: follow_leading_vehicle.py From scenario_runner with MIT License | 6 votes |
def _initialize_actors(self, config): """ Custom initialization """ first_vehicle_waypoint, _ = get_waypoint_in_distance(self._reference_waypoint, self._first_vehicle_location) self._other_actor_transform = carla.Transform( carla.Location(first_vehicle_waypoint.transform.location.x, first_vehicle_waypoint.transform.location.y, first_vehicle_waypoint.transform.location.z + 1), first_vehicle_waypoint.transform.rotation) first_vehicle_transform = carla.Transform( carla.Location(self._other_actor_transform.location.x, self._other_actor_transform.location.y, self._other_actor_transform.location.z - 500), self._other_actor_transform.rotation) first_vehicle = CarlaDataProvider.request_new_actor('vehicle.nissan.patrol', first_vehicle_transform) first_vehicle.set_simulate_physics(enabled=False) self.other_actors.append(first_vehicle)
Example #18
Source File: object_crash_vehicle.py From scenario_runner with MIT License | 6 votes |
def _initialize_actors(self, config): """ Custom initialization """ _start_distance = 40 lane_width = self._reference_waypoint.lane_width location, _ = get_location_in_distance_from_wp(self._reference_waypoint, _start_distance) waypoint = self._wmap.get_waypoint(location) offset = {"orientation": 270, "position": 90, "z": 0.4, "k": 0.2} position_yaw = waypoint.transform.rotation.yaw + offset['position'] orientation_yaw = waypoint.transform.rotation.yaw + offset['orientation'] offset_location = carla.Location( offset['k'] * lane_width * math.cos(math.radians(position_yaw)), offset['k'] * lane_width * math.sin(math.radians(position_yaw))) location += offset_location location.z += offset['z'] self.transform = carla.Transform(location, carla.Rotation(yaw=orientation_yaw)) static = CarlaDataProvider.request_new_actor('static.prop.container', self.transform) static.set_simulate_physics(True) self.other_actors.append(static)
Example #19
Source File: object_crash_vehicle.py From scenario_runner with MIT License | 6 votes |
def _spawn_blocker(self, transform, orientation_yaw): """ Spawn the blocker prop that blocks the vision from the egovehicle of the jaywalker :return: """ # static object transform shift = 0.9 x_ego = self._reference_waypoint.transform.location.x y_ego = self._reference_waypoint.transform.location.y x_cycle = transform.location.x y_cycle = transform.location.y x_static = x_ego + shift * (x_cycle - x_ego) y_static = y_ego + shift * (y_cycle - y_ego) spawn_point_wp = self.ego_vehicles[0].get_world().get_map().get_waypoint(transform.location) self.transform2 = carla.Transform(carla.Location(x_static, y_static, spawn_point_wp.transform.location.z + 0.3), carla.Rotation(yaw=orientation_yaw + 180)) static = CarlaDataProvider.request_new_actor('static.prop.vendingmachine', self.transform2) static.set_simulate_physics(enabled=False) return static
Example #20
Source File: render.py From gym-carla with MIT License | 6 votes |
def _render_hist_actors(self, surface, actor_polygons, actor_type, world_to_pixel, num): lp=len(actor_polygons) color = COLOR_SKY_BLUE_0 for i in range(max(0,lp-num),lp): for ID, poly in actor_polygons[i].items(): corners = [] for p in poly: corners.append(carla.Location(x=p[0],y=p[1])) corners.append(carla.Location(x=poly[0][0],y=poly[0][1])) corners = [world_to_pixel(p) for p in corners] color_value = max(0.8 - 0.8/lp*(i+1), 0) if ID == self.hero_id: # red color = pygame.Color(255, math.floor(color_value*255), math.floor(color_value*255)) else: if actor_type == 'vehicle': # green color = pygame.Color(math.floor(color_value*255), 255, math.floor(color_value*255)) elif actor_type == 'walker': # yellow color = pygame.Color(255, 255, math.floor(color_value*255)) pygame.draw.polygon(surface, color, corners)
Example #21
Source File: change_lane.py From scenario_runner with MIT License | 6 votes |
def _initialize_actors(self, config): # add actors from xml file for actor in config.other_actors: vehicle = CarlaDataProvider.request_new_actor(actor.model, actor.transform) self.other_actors.append(vehicle) vehicle.set_simulate_physics(enabled=False) # fast vehicle, tesla # transform visible fast_car_waypoint, _ = get_waypoint_in_distance(self._reference_waypoint, self._fast_vehicle_distance) self.fast_car_visible = carla.Transform( carla.Location(fast_car_waypoint.transform.location.x, fast_car_waypoint.transform.location.y, fast_car_waypoint.transform.location.z + 1), fast_car_waypoint.transform.rotation) # slow vehicle, vw # transform visible slow_car_waypoint, _ = get_waypoint_in_distance(self._reference_waypoint, self._slow_vehicle_distance) self.slow_car_visible = carla.Transform( carla.Location(slow_car_waypoint.transform.location.x, slow_car_waypoint.transform.location.y, slow_car_waypoint.transform.location.z), slow_car_waypoint.transform.rotation)
Example #22
Source File: map_explore.py From macad-gym with MIT License | 6 votes |
def start_scenario(): car_bp = random.choice(world.get_blueprint_library().filter('vehicle')) car_bp.set_attribute("role_name", "hero") car1_loc_s = carla.Location(*spawn_locs["car1"]["S"]) car2_loc_s = carla.Location(*spawn_locs["car2"]["S"]) ped1_loc_s = carla.Location(*spawn_locs["ped1"]["S"]) car1 = world.spawn_actor( car_bp, carla.Transform(car1_loc_s, carla.Rotation(yaw=0))) car1.set_autopilot(True) car2 = world.spawn_actor( car_bp, carla.Transform(car2_loc_s, carla.Rotation(yaw=-90))) car2.set_autopilot(True) ped_bp = random.choice(world.get_blueprint_library().filter('walker')) ped1 = world.spawn_actor( ped_bp, carla.Transform(ped1_loc_s, carla.Rotation(yaw=0))) start_walker(ped1)
Example #23
Source File: map_explore.py From macad-gym with MIT License | 6 votes |
def get_traffic_lights(loc=carla.Location(0, 0, 0)): tls = {} for a in world.get_actors().filter("traffic.traffic_light"): tls[a.id] = [ a.get_location().x, a.get_location().y, a.get_location().z ] print("ID:", a.id, "loc:", a.get_location().x, a.get_location().y, a.get_location().z) # Sort traffic lights by their location.x ans = sorted(tls.items(), key=lambda kv: kv[1][0]) return ans # Main:
Example #24
Source File: object_crash_intersection.py From scenario_runner with MIT License | 6 votes |
def get_opponent_transform(added_dist, waypoint, trigger_location): """ Calculate the transform of the adversary """ lane_width = waypoint.lane_width offset = {"orientation": 270, "position": 90, "k": 1.0} _wp = waypoint.next(added_dist) if _wp: _wp = _wp[-1] else: raise RuntimeError("Cannot get next waypoint !") location = _wp.transform.location orientation_yaw = _wp.transform.rotation.yaw + offset["orientation"] position_yaw = _wp.transform.rotation.yaw + offset["position"] offset_location = carla.Location( offset['k'] * lane_width * math.cos(math.radians(position_yaw)), offset['k'] * lane_width * math.sin(math.radians(position_yaw))) location += offset_location location.z = trigger_location.z transform = carla.Transform(location, carla.Rotation(yaw=orientation_yaw)) return transform
Example #25
Source File: spawn_control.py From macad-gym with MIT License | 5 votes |
def inner_wp_draw(self, helper, wp, depth=4): if depth < 0: return for w in wp.next(4.0): t = w.transform begin = t.location + carla.Location( z=40) # TODO, the wp Z-coord is set as 0, not visiable angle = math.radians(t.rotation.yaw) end = begin + carla.Location(x=math.cos(angle), y=math.sin(angle)) helper.draw_arrow(begin, end, arrow_size=0.1, life_time=1.0) self.inner_wp_draw(helper, w, depth - 1)
Example #26
Source File: test_transform.py From macad-gym with MIT License | 5 votes |
def test_print(self): t = carla.Transform( carla.Location(x=1.0, y=2.0, z=3.0), carla.Rotation(pitch=4.0, yaw=5.0, roll=6.0)) s = 'Transform(Location(x=1, y=2, z=3), Rotation(pitch=4, yaw=5, roll=6))' self.assertEqual(str(t), s)
Example #27
Source File: spawn_control.py From macad-gym with MIT License | 5 votes |
def spawn_new_vehicle(self, vehicle_m): wps = self.map.get_waypoint(vehicle_m.get_location()) # TODO: still a failure chance, # if smallvehicle.size = 1m, while the spawn # largeVehicle.size = 20m, it will collipse. bbox = vehicle_m._vehicle.bounding_box dist = math.sqrt((bbox.extent.x * 2)**2 + (bbox.extent.y * 2)**2) next_wps = list(wps.next(dist)) if not next_wps: raise RuntimeError("no more waypoints in spawn new vehicle") location = next_wps[-1].transform.location location += carla.Location(z=40) # TODO blueprint = self._get_random_blueprint() detector = Detecter(location, self.vehicle_list) s_location = detector.collision() if type(s_location) == bool: return None # TODO: yaw to along street line transform = carla.Transform( carla.Location(x=s_location.x, y=s_location.y, z=s_location.z), carla.Rotation(yaw=0.0)) vehicle = self.world.try_spawn_actor(blueprint, transform) if vehicle is not None: self.vehicle_list.append(vehicle) vmanager = VehicleManager(vehicle) self.prev_measurements[ self.num_vehicles] = vmanager.read_observation( self.scenario, self.config) self.num_vehicles += 1 self.done.append(False) self.vehicle_manager_list.append(vmanager) return vehicle
Example #28
Source File: misc.py From macad-gym with MIT License | 5 votes |
def draw_waypoints(world, waypoints, z=0.5): """ Draw a list of waypoints at a certain height given in z. :param world: carla.world object :param waypoints: list or iterable container with the waypoints to draw :param z: height in meters :return: """ for w in waypoints: t = w.transform begin = t.location + carla.Location(z=z) angle = math.radians(t.rotation.yaw) end = begin + carla.Location(x=math.cos(angle), y=math.sin(angle)) world.debug.draw_arrow(begin, end, arrow_size=0.3, life_time=1.0)
Example #29
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def from_carla_location(cls, location): """Creates a pylot Location from a CARLA location. Args: location (carla.Location): An instance of a CARLA location. Returns: :py:class:`.Location`: A pylot location. """ import carla if not (isinstance(location, carla.Location) or isinstance(location, carla.Vector3D)): raise ValueError( 'The location must be a carla.Location or carla.Vector3D') return cls(location.x, location.y, location.z)
Example #30
Source File: map_explore.py From macad-gym with MIT License | 5 votes |
def get_transform(vehicle_location, angle, d=6.4): a = math.radians(angle) location = carla.Location(d * math.cos(a), d * math.sin(a), 2.0) + vehicle_location return carla.Transform(location, carla.Rotation( yaw=180 + angle, pitch=-15))