本文整理匯總了Python中carla.Rotation方法的典型用法代碼示例。如果您正苦於以下問題:Python carla.Rotation方法的具體用法?Python carla.Rotation怎麽用?Python carla.Rotation使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類carla
的用法示例。
在下文中一共展示了carla.Rotation方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: get_opponent_transform
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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
示例2: _initialize_actors
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例3: _calculate_base_transform
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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
示例4: draw_radar_measurement
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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
# -------------------------------------------------------------------------------------------------
示例5: test_default_values
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例6: test_named_args
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例7: start_scenario
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例8: _create_matrix
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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
示例9: __init__
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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])
示例10: spawn_rgb_camera
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例11: main
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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
示例12: draw_box
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例13: convert_json_to_transform
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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'])))
示例14: _initialize_actors
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)
示例15: parse_from_node
# 需要導入模塊: import carla [as 別名]
# 或者: from carla import Rotation [as 別名]
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)