Python carla.Rotation() Examples
The following are 30
code examples of carla.Rotation().
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: 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 #2
Source File: object_crash_vehicle.py From scenario_runner with MIT License | 6 votes |
def _calculate_base_transform(self, _start_distance, waypoint): lane_width = waypoint.lane_width # Patches false junctions if self._reference_waypoint.is_junction: stop_at_junction = False else: stop_at_junction = True location, _ = get_location_in_distance_from_wp(waypoint, _start_distance, stop_at_junction) waypoint = self._wmap.get_waypoint(location) offset = {"orientation": 270, "position": 90, "z": 0.6, "k": 1.0} 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 = self._trigger_location.z + offset['z'] return carla.Transform(location, carla.Rotation(yaw=orientation_yaw)), orientation_yaw
Example #3
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 #4
Source File: debug_helper.py From ros-bridge with MIT License | 6 votes |
def draw_box(self, marker, lifetime, color): """ draw box from ros marker """ box = carla.BoundingBox() box.location.x = marker.pose.position.x box.location.y = -marker.pose.position.y box.location.z = marker.pose.position.z box.extent.x = marker.scale.x / 2 box.extent.y = marker.scale.y / 2 box.extent.z = marker.scale.z / 2 roll, pitch, yaw = euler_from_quaternion([ marker.pose.orientation.x, marker.pose.orientation.y, marker.pose.orientation.z, marker.pose.orientation.w ]) rotation = carla.Rotation() rotation.roll = math.degrees(roll) rotation.pitch = math.degrees(pitch) rotation.yaw = -math.degrees(yaw) rospy.loginfo("Draw Box {} (rotation: {}, color: {}, lifetime: {})".format( box, rotation, color, lifetime)) self.debug.draw_box(box, rotation, thickness=0.1, color=color, life_time=lifetime)
Example #5
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 #6
Source File: utils.py From pylot with Apache License 2.0 | 6 votes |
def _create_matrix(w, x, y, z): """Creates a Rotation matrix that can be used to transform 3D vectors from body frame to world frame. Note that this yields the same matrix as a Transform object with the quaternion converted to the Euler rotation except this matrix only does rotation and no translation. Specifically, this matrix is equivalent to: Transform(location=Location(0, 0, 0), rotation=self.as_rotation()).matrix[:3, :3] Returns: A 3x3 numpy array that can be used to rotate 3D vectors from body frame to world frame. """ x2, y2, z2 = x * 2, y * 2, z * 2 xx, xy, xz = x * x2, x * y2, x * z2 yy, yz, zz = y * y2, y * z2, z * z2 wx, wy, wz = w * x2, w * y2, w * z2 m = np.array([[1.0 - (yy + zz), xy - wz, xz + wy], [xy + wz, 1.0 - (xx + zz), yz - wx], [xz - wy, yz + wx, 1.0 - (xx + yy)]]) return m
Example #7
Source File: env_utils.py From tensorforce with Apache License 2.0 | 6 votes |
def draw_radar_measurement(debug_helper: carla.DebugHelper, data: carla.RadarMeasurement, velocity_range=7.5, size=0.075, life_time=0.06): """Code adapted from carla/PythonAPI/examples/manual_control.py: - White: means static points. - Red: indicates points moving towards the object. - Blue: denoted points moving away. """ radar_rotation = data.transform.rotation for detection in data: azimuth = math.degrees(detection.azimuth) + radar_rotation.yaw altitude = math.degrees(detection.altitude) + radar_rotation.pitch # move to local coordinates: forward_vec = carla.Vector3D(x=detection.depth - 0.25) global_to_local(forward_vec, reference=carla.Rotation(pitch=altitude, yaw=azimuth, roll=radar_rotation.roll)) # draw: debug_helper.draw_point(data.transform.location + forward_vec, size=size, life_time=life_time, persistent_lines=False, color=carla.Color(255, 255, 255)) # ------------------------------------------------------------------------------------------------- # -- Math # -------------------------------------------------------------------------------------------------
Example #8
Source File: test_canny_lane_detection.py From pylot with Apache License 2.0 | 6 votes |
def main(): global world # Connect to the CARLA instance. client = carla.Client('localhost', 2000) world = client.get_world() settings = world.get_settings() settings.synchronous_mode = True settings.fixed_delta_seconds = 1.0 / 10 world.apply_settings(settings) # Spawn the vehicle. vehicle = spawn_driving_vehicle(client, world) # Spawn the camera and register a function to listen to the images. camera = spawn_rgb_camera(world, carla.Location(x=2.0, y=0.0, z=1.8), carla.Rotation(roll=0, pitch=0, yaw=0), vehicle) camera.listen(process_images) world.tick() return vehicle, camera, world
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: 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 #11
Source File: test_transform.py From macad-gym with MIT License | 6 votes |
def test_named_args(self): rotation = carla.Rotation(pitch=42.0) self.assertEqual(rotation.pitch, 42.0) self.assertEqual(rotation.yaw, 0.0) self.assertEqual(rotation.roll, 0.0) rotation = carla.Rotation(yaw=42.0) self.assertEqual(rotation.pitch, 0.0) self.assertEqual(rotation.yaw, 42.0) self.assertEqual(rotation.roll, 0.0) rotation = carla.Rotation(roll=42.0) self.assertEqual(rotation.pitch, 0.0) self.assertEqual(rotation.yaw, 0.0) self.assertEqual(rotation.roll, 42.0) rotation = carla.Rotation(roll=3.0, pitch=1.0, yaw=2.0) self.assertEqual(rotation.pitch, 1.0) self.assertEqual(rotation.yaw, 2.0) self.assertEqual(rotation.roll, 3.0)
Example #12
Source File: test_transform.py From macad-gym with MIT License | 6 votes |
def test_default_values(self): rotation = carla.Rotation() self.assertEqual(rotation.pitch, 0.0) self.assertEqual(rotation.yaw, 0.0) self.assertEqual(rotation.roll, 0.0) rotation = carla.Rotation(1.0) self.assertEqual(rotation.pitch, 1.0) self.assertEqual(rotation.yaw, 0.0) self.assertEqual(rotation.roll, 0.0) rotation = carla.Rotation(1.0, 2.0) self.assertEqual(rotation.pitch, 1.0) self.assertEqual(rotation.yaw, 2.0) self.assertEqual(rotation.roll, 0.0) rotation = carla.Rotation(1.0, 2.0, 3.0) self.assertEqual(rotation.pitch, 1.0) self.assertEqual(rotation.yaw, 2.0) self.assertEqual(rotation.roll, 3.0)
Example #13
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def as_numpy_array(self): """Retrieves the Rotation as a numpy array.""" return np.array([self.pitch, self.yaw, self.roll])
Example #14
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))
Example #15
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def __str__(self): return 'Rotation(pitch={}, yaw={}, roll={})'.format( self.pitch, self.yaw, self.roll)
Example #16
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def as_rotation(self): """Retrieve the Quaternion as a Rotation in degrees. Returns: :py:class:`.Rotation`: The euler-angle equivalent of the Quaternion in degrees. """ SINGULARITY_THRESHOLD = 0.4999995 RAD_TO_DEG = (180.0) / np.pi singularity_test = self.z * self.x - self.w * self.y yaw_y = 2.0 * (self.w * self.z + self.x * self.y) yaw_x = (1.0 - 2.0 * (self.y**2 + self.z**2)) pitch, yaw, roll = None, None, None if singularity_test < -SINGULARITY_THRESHOLD: pitch = -90.0 yaw = np.arctan2(yaw_y, yaw_x) * RAD_TO_DEG roll = -yaw - (2.0 * np.arctan2(self.x, self.w) * RAD_TO_DEG) elif singularity_test > SINGULARITY_THRESHOLD: pitch = 90.0 yaw = np.arctan2(yaw_y, yaw_x) * RAD_TO_DEG roll = yaw - (2.0 * np.arctan2(self.x, self.w) * RAD_TO_DEG) else: pitch = np.arcsin(2.0 * singularity_test) * RAD_TO_DEG yaw = np.arctan2(yaw_y, yaw_x) * RAD_TO_DEG roll = np.arctan2(-2.0 * (self.w * self.x + self.y * self.z), (1.0 - 2.0 * (self.x**2 + self.y**2))) * RAD_TO_DEG return Rotation(pitch, yaw, roll)
Example #17
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def from_carla_transform(cls, transform): """Creates a pylot transform from a carla transform. Args: transform (carla.Transform): Carla transform. Returns: :py:class:`.Transform`: An instance of a pylot transform. """ import carla if not isinstance(transform, carla.Transform): raise ValueError('transform should be of type carla.Transform') return cls(Location.from_carla_location(transform.location), Rotation.from_carla_rotation(transform.rotation))
Example #18
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def _create_matrix(location, rotation): """Creates a transformation matrix to convert points in the 3D world coordinate space with respect to the object. Use the transform_points function to transpose a given set of points with respect to the object. Args: location (:py:class:`.Location`): The location of the object represented by the transform. rotation (:py:class:`.Rotation`): The rotation of the object represented by the transform. Returns: A 4x4 numpy matrix which represents the transformation matrix. """ matrix = np.identity(4) cy = math.cos(np.radians(rotation.yaw)) sy = math.sin(np.radians(rotation.yaw)) cr = math.cos(np.radians(rotation.roll)) sr = math.sin(np.radians(rotation.roll)) cp = math.cos(np.radians(rotation.pitch)) sp = math.sin(np.radians(rotation.pitch)) matrix[0, 3] = location.x matrix[1, 3] = location.y matrix[2, 3] = location.z matrix[0, 0] = (cp * cy) matrix[0, 1] = (cy * sp * sr - sy * cr) matrix[0, 2] = -1 * (cy * sp * cr + sy * sr) matrix[1, 0] = (sy * cp) matrix[1, 1] = (sy * sp * sr + cy * cr) matrix[1, 2] = (cy * sr - sy * sp * cr) matrix[2, 0] = (sp) matrix[2, 1] = -1 * (cp * sr) matrix[2, 2] = (cp * cr) return matrix
Example #19
Source File: utils.py From pylot with Apache License 2.0 | 5 votes |
def as_carla_transform(self): """Converts the transform to a carla transform. Returns: carla.Transform: Instance representing the current Transform. """ import carla return carla.Transform( carla.Location(self.location.x, self.location.y, self.location.z), carla.Rotation(pitch=self.rotation.pitch, yaw=self.rotation.yaw, roll=self.rotation.roll))
Example #20
Source File: check_3d_2d_conversions.py From pylot with Apache License 2.0 | 5 votes |
def main(argv): global pixels_to_check target_vehicle_transform = carla.Transform(carla.Location(242, 131.24, 0)) sensor_transform = carla.Transform(carla.Location(237.7, 132.24, 1.3)) pixels_to_check = [(200, 370)] run_scenario(target_vehicle_transform, sensor_transform) target_vehicle_transform = carla.Transform(carla.Location(2, 12, 0)) sensor_transform = carla.Transform( carla.Location(0, 18, 1.4), carla.Rotation(pitch=0, yaw=-90, roll=0)) pixels_to_check = [(500, 400), (600, 400), (500, 350), (600, 350)] run_scenario(target_vehicle_transform, sensor_transform)
Example #21
Source File: test_lanenet_lane_detection.py From pylot with Apache License 2.0 | 5 votes |
def main(lane_predictor): # Connect to the CARLA instance. client = carla.Client('localhost', 2000) world = client.get_world() # Spawn the vehicle. vehicle = spawn_driving_vehicle(client, world) # Spawn the camera and register a function to listen to the images. camera = spawn_rgb_camera(world, carla.Location(x=2.0, y=0.0, z=1.8), carla.Rotation(roll=0, pitch=0, yaw=0), vehicle) camera.listen(lane_predictor.process_images) return vehicle, camera, world
Example #22
Source File: carla_spectator_camera.py From ros-bridge with MIT License | 5 votes |
def get_camera_transform(self): """ Calculate the CARLA camera transform """ if not self.pose: rospy.loginfo("no pose!") return None if self.pose.header.frame_id != self.role_name: rospy.logwarn("Unsupported frame received. Supported {}, received {}".format( self.role_name, self.pose.header.frame_id)) return None sensor_location = carla.Location(x=self.pose.pose.position.x, y=-self.pose.pose.position.y, z=self.pose.pose.position.z) quaternion = ( self.pose.pose.orientation.x, self.pose.pose.orientation.y, self.pose.pose.orientation.z, self.pose.pose.orientation.w ) roll, pitch, yaw = euler_from_quaternion(quaternion) # rotate to CARLA sensor_rotation = carla.Rotation(pitch=math.degrees(roll)-90, roll=math.degrees(pitch), yaw=-math.degrees(yaw)-90) return carla.Transform(sensor_location, sensor_rotation)
Example #23
Source File: wrappers.py From Carla-ppo with MIT License | 5 votes |
def print_transform(transform): print("Location(x={:.2f}, y={:.2f}, z={:.2f}) Rotation(pitch={:.2f}, yaw={:.2f}, roll={:.2f})".format( transform.location.x, transform.location.y, transform.location.z, transform.rotation.pitch, transform.rotation.yaw, transform.rotation.roll ) )
Example #24
Source File: wrappers.py From Carla-ppo with MIT License | 5 votes |
def vector(v): """ Turn carla Location/Vector3D/Rotation to np.array """ if isinstance(v, carla.Location) or isinstance(v, carla.Vector3D): return np.array([v.x, v.y, v.z]) elif isinstance(v, carla.Rotation): return np.array([v.pitch, v.yaw, v.roll])
Example #25
Source File: utils.py From Multiverse with Apache License 2.0 | 5 votes |
def setup_static(world, client, scene_elements, actor_list): this_weather = scene_elements["weather"] weather = carla.WeatherParameters( cloudyness=this_weather["cloudyness"], precipitation=this_weather["precipitation"], precipitation_deposits=this_weather["precipitation_deposits"], sun_altitude_angle=this_weather["sun_altitude_angle"], sun_azimuth_angle=this_weather["sun_azimuth_angle"], wind_intensity=this_weather["wind_intensity"]) world.set_weather(weather) spawn_cmds = [] for car in scene_elements["static_cars"]: car_location = carla.Location(x=car["location_xyz"][0], y=car["location_xyz"][1], z=car["location_xyz"][2]) car_rotation = carla.Rotation(pitch=car["rotation_pyr"][0], yaw=car["rotation_pyr"][1], roll=car["rotation_pyr"][2]) car_bp = world.get_blueprint_library().find(car["bp"]) assert car_bp is not None, car_bp # the static car can be walked though spawn_cmds.append( carla.command.SpawnActor( car_bp, carla.Transform( location=car_location, rotation=car_rotation)).then( carla.command.SetSimulatePhysics( carla.command.FutureActor, False))) # spawn the actors needed for the static scene setup if spawn_cmds: response = client.apply_batch_sync(spawn_cmds) all_actors = world.get_actors([x.actor_id for x in response]) actor_list += all_actors
Example #26
Source File: carla09interface.py From coiltraine with MIT License | 5 votes |
def __init__(self, world, camera, agent_vehicle): blueprint_library = world.get_blueprint_library() camera_bp = blueprint_library.find(camera["type"]) camera_bp.set_attribute('image_size_x', str(camera["image_size_x"])) camera_bp.set_attribute('image_size_y', str(camera["image_size_y"])) camera_bp.set_attribute('fov', str(camera["fov"])) yaw = 0 if "rotation_yaw" in camera.keys(): yaw = camera["rotation_yaw"] camera_transform = carla.Transform(carla.Location(x=camera["position_x"], y=camera["position_y"], z=camera["position_z"]), carla.Rotation(pitch=camera["rotation_pitch"])) self.actor = world.spawn_actor(camera_bp, camera_transform, attach_to=agent_vehicle)
Example #27
Source File: route_scenario.py From scenario_runner with MIT License | 5 votes |
def convert_json_to_transform(actor_dict): """ Convert a JSON string to a CARLA transform """ return carla.Transform(location=carla.Location(x=float(actor_dict['x']), y=float(actor_dict['y']), z=float(actor_dict['z'])), rotation=carla.Rotation(roll=0.0, pitch=0.0, yaw=float(actor_dict['yaw'])))
Example #28
Source File: follow_leading_vehicle.py From scenario_runner with MIT License | 5 votes |
def _initialize_actors(self, config): """ Custom initialization """ first_actor_waypoint, _ = get_waypoint_in_distance(self._reference_waypoint, self._first_actor_location) second_actor_waypoint, _ = get_waypoint_in_distance(self._reference_waypoint, self._second_actor_location) first_actor_transform = carla.Transform( carla.Location(first_actor_waypoint.transform.location.x, first_actor_waypoint.transform.location.y, first_actor_waypoint.transform.location.z - 500), first_actor_waypoint.transform.rotation) self._first_actor_transform = carla.Transform( carla.Location(first_actor_waypoint.transform.location.x, first_actor_waypoint.transform.location.y, first_actor_waypoint.transform.location.z + 1), first_actor_waypoint.transform.rotation) yaw_1 = second_actor_waypoint.transform.rotation.yaw + 90 second_actor_transform = carla.Transform( carla.Location(second_actor_waypoint.transform.location.x, second_actor_waypoint.transform.location.y, second_actor_waypoint.transform.location.z - 500), carla.Rotation(second_actor_waypoint.transform.rotation.pitch, yaw_1, second_actor_waypoint.transform.rotation.roll)) self._second_actor_transform = carla.Transform( carla.Location(second_actor_waypoint.transform.location.x, second_actor_waypoint.transform.location.y, second_actor_waypoint.transform.location.z + 1), carla.Rotation(second_actor_waypoint.transform.rotation.pitch, yaw_1, second_actor_waypoint.transform.rotation.roll)) first_actor = CarlaDataProvider.request_new_actor( 'vehicle.nissan.patrol', first_actor_transform) second_actor = CarlaDataProvider.request_new_actor( 'vehicle.diamondback.century', second_actor_transform) first_actor.set_simulate_physics(enabled=False) second_actor.set_simulate_physics(enabled=False) self.other_actors.append(first_actor) self.other_actors.append(second_actor)
Example #29
Source File: scenario_configuration.py From scenario_runner with MIT License | 5 votes |
def parse_from_node(node, rolename): """ static method to initialize an ActorConfigurationData from a given ET tree """ model = node.attrib.get('model', 'vehicle.*') pos_x = float(node.attrib.get('x', 0)) pos_y = float(node.attrib.get('y', 0)) pos_z = float(node.attrib.get('z', 0)) yaw = float(node.attrib.get('yaw', 0)) transform = carla.Transform(carla.Location(x=pos_x, y=pos_y, z=pos_z), carla.Rotation(yaw=yaw)) rolename = node.attrib.get('rolename', rolename) speed = node.attrib.get('speed', 0) autopilot = False if 'autopilot' in node.keys(): autopilot = True random_location = False if 'random_location' in node.keys(): random_location = True color = node.attrib.get('color', None) return ActorConfigurationData(model, transform, rolename, speed, autopilot, random_location, color)
Example #30
Source File: carla_world.py From VerifAI with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, parent_actor, hud): self.sensor = None self._surface = None self._parent = parent_actor self._hud = hud self._recording = False self.images = [] self._camera_transforms = [ carla.Transform(carla.Location(x=-5.5, z=2.8), carla.Rotation(pitch=-15)), carla.Transform(carla.Location(x=1.6, z=1.7))] self._transform_index = 1 self._sensors = [ ['sensor.camera.rgb', cc.Raw, 'Camera RGB'], ['sensor.camera.depth', cc.Raw, 'Camera Depth (Raw)'], ['sensor.camera.depth', cc.Depth, 'Camera Depth (Gray Scale)'], ['sensor.camera.depth', cc.LogarithmicDepth, 'Camera Depth (Logarithmic Gray Scale)'], ['sensor.camera.semantic_segmentation', cc.Raw, 'Camera Semantic Segmentation (Raw)'], ['sensor.camera.semantic_segmentation', cc.CityScapesPalette, 'Camera Semantic Segmentation (CityScapes Palette)'], ['sensor.lidar.ray_cast', None, 'Lidar (Ray-Cast)']] world = self._parent.get_world() bp_library = world.get_blueprint_library() for item in self._sensors: bp = bp_library.find(item[0]) if item[0].startswith('sensor.camera'): bp.set_attribute('image_size_x', str(hud.dim[0])) bp.set_attribute('image_size_y', str(hud.dim[1])) item.append(bp) self._index = None