Added ymls and Cross C++ function
This commit is contained in:
parent
fee6a749f5
commit
f90c2c6123
|
@ -2390,15 +2390,15 @@ Y-axis value.
|
|||
- **Parameters:**
|
||||
- `x` (_float_)
|
||||
- `y` (_float_)
|
||||
- <a name="carla.Vector2D.squared_length"></a>**<font color="#7fb800">squared_length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the squared length of the vector.
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector2D.length"></a>**<font color="#7fb800">length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the length of the vector.
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector2D.make_unit_vector"></a>**<font color="#7fb800">make_unit_vector</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns a vector with the same direction and unitary length.
|
||||
- **Return:** _[carla.Vector2D](#carla.Vector2D)_
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)_
|
||||
- <a name="carla.Vector2D.squared_length"></a>**<font color="#7fb800">squared_length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the squared length of the vector.
|
||||
- **Return:** _float_
|
||||
|
||||
##### Dunder methods
|
||||
- <a name="carla.Vector2D.__add__"></a>**<font color="#7fb800">\__add__</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**other**=[carla.Vector2D](#carla.Vector2D)</font>)
|
||||
|
@ -2434,50 +2434,50 @@ Z-axis value.
|
|||
- `x` (_float_)
|
||||
- `y` (_float_)
|
||||
- `z` (_float_)
|
||||
- <a name="carla.Vector3D.length"></a>**<font color="#7fb800">length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the length of the vector.
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.squared_length"></a>**<font color="#7fb800">squared_length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the squared length of the vector.
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.make_unit_vector"></a>**<font color="#7fb800">make_unit_vector</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns a vector with the same direction and unitary length.
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)_
|
||||
- <a name="carla.Vector3D.dot"></a>**<font color="#7fb800">dot</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the dot product between two vectors.
|
||||
- <a name="carla.Vector3D.cross"></a>**<font color="#7fb800">cross</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the cross product between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)_
|
||||
- <a name="carla.Vector3D.distance"></a>**<font color="#7fb800">distance</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the distance between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.distance_squared"></a>**<font color="#7fb800">distance_squared</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the squared distance between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.dot_2d"></a>**<font color="#7fb800">dot_2d</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the 2-dimensional dot product between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.distance_2d"></a>**<font color="#7fb800">distance_2d</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the 2-dimensional distance between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.distance_squared"></a>**<font color="#7fb800">distance_squared</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the squared distance between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.distance_squared_2d"></a>**<font color="#7fb800">distance_squared_2d</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the 2-dimensional squared distance between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.get_vector_angle"></a>**<font color="#7fb800">get_vector_angle</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the angle between two vectors.
|
||||
- <a name="carla.Vector3D.dot"></a>**<font color="#7fb800">dot</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the dot product between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.dot_2d"></a>**<font color="#7fb800">dot_2d</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vector**</font>)
|
||||
Computes the 2-dimensional dot product between two vectors.
|
||||
- **Parameters:**
|
||||
- `vector` (_[carla.Vector3D](#carla.Vector3D)_)
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.length"></a>**<font color="#7fb800">length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the length of the vector.
|
||||
- **Return:** _float_
|
||||
- <a name="carla.Vector3D.make_unit_vector"></a>**<font color="#7fb800">make_unit_vector</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns a vector with the same direction and unitary length.
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)_
|
||||
- <a name="carla.Vector3D.squared_length"></a>**<font color="#7fb800">squared_length</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Computes the squared length of the vector.
|
||||
- **Return:** _float_
|
||||
|
||||
##### Dunder methods
|
||||
- <a name="carla.Vector3D.__abs__"></a>**<font color="#7fb800">\__abs__</font>**(<font color="#00a6ed">**self**</font>)
|
||||
|
@ -3740,90 +3740,6 @@ print("R lane marking change: " + str(waypoint.right_lane_marking.lane_change))
|
|||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.get_spectator-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.get_spectator
|
||||
</p>
|
||||
<div id="carla.World.get_spectator-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe spawns an actor and the spectator camera at the actor's location.
|
||||
|
||||
# ...
|
||||
world = client.get_world()
|
||||
spectator = world.get_spectator()
|
||||
|
||||
vehicle_bp = random.choice(world.get_blueprint_library().filter('vehicle.bmw.*'))
|
||||
transform = random.choice(world.get_map().get_spawn_points())
|
||||
vehicle = world.try_spawn_actor(vehicle_bp, transform)
|
||||
|
||||
# Wait for world to get the vehicle actor
|
||||
world.tick()
|
||||
|
||||
world_snapshot = world.wait_for_tick()
|
||||
actor_snapshot = world_snapshot.find(vehicle.id)
|
||||
|
||||
# Set spectator at given transform (vehicle transform)
|
||||
spectator.set_transform(actor_snapshot.get_transform())
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.get_spectator-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.WalkerAIController.stop-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.WalkerAIController.stop
|
||||
</p>
|
||||
<div id="carla.WalkerAIController.stop-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
#To destroy the pedestrians, stop them from the navigation, and then destroy the objects (actor and controller).
|
||||
|
||||
# stop pedestrians (list is [controller, actor, controller, actor ...])
|
||||
for i in range(0, len(all_id), 2):
|
||||
all_actors[i].stop()
|
||||
|
||||
# destroy pedestrian (actor and controller)
|
||||
client.apply_batch([carla.command.DestroyActor(x) for x in all_id])
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.WalkerAIController.stop-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.spawn_actor-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.spawn_actor
|
||||
</p>
|
||||
<div id="carla.World.spawn_actor-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe attaches different camera / sensors to a vehicle with different attachments.
|
||||
|
||||
# ...
|
||||
camera = world.spawn_actor(rgb_camera_bp, transform, attach_to=vehicle, attachment_type=Attachment.Rigid)
|
||||
# Default attachment: Attachment.Rigid
|
||||
gnss_sensor = world.spawn_actor(sensor_gnss_bp, transform, attach_to=vehicle)
|
||||
collision_sensor = world.spawn_actor(sensor_collision_bp, transform, attach_to=vehicle)
|
||||
lane_invasion_sensor = world.spawn_actor(sensor_lane_invasion_bp, transform, attach_to=vehicle)
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.spawn_actor-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Client.apply_batch_sync-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Client.apply_batch_sync
|
||||
|
@ -3897,6 +3813,61 @@ for i in range(0, len(all_actors), 2):
|
|||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.enable_environment_objects-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.enable_environment_objects
|
||||
</p>
|
||||
<div id="carla.World.enable_environment_objects-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
# This recipe turn visibility off and on for two specifc buildings on the map
|
||||
|
||||
# Get the buildings in the world
|
||||
world = client.get_world()
|
||||
env_objs = world.get_environment_objects(carla.CityObjectLabel.Buildings)
|
||||
|
||||
# Access individual building IDs and save in a set
|
||||
building_01 = env_objs[0]
|
||||
building_02 = env_objs[1]
|
||||
objects_to_toggle = {building_01.id, building_02.id}
|
||||
|
||||
# Toggle buildings off
|
||||
world.enable_environment_objects(objects_to_toggle, False)
|
||||
# Toggle buildings on
|
||||
world.enable_environment_objects(objects_to_toggle, True)
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.enable_environment_objects-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.spawn_actor-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.spawn_actor
|
||||
</p>
|
||||
<div id="carla.World.spawn_actor-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe attaches different camera / sensors to a vehicle with different attachments.
|
||||
|
||||
# ...
|
||||
camera = world.spawn_actor(rgb_camera_bp, transform, attach_to=vehicle, attachment_type=Attachment.Rigid)
|
||||
# Default attachment: Attachment.Rigid
|
||||
gnss_sensor = world.spawn_actor(sensor_gnss_bp, transform, attach_to=vehicle)
|
||||
collision_sensor = world.spawn_actor(sensor_collision_bp, transform, attach_to=vehicle)
|
||||
lane_invasion_sensor = world.spawn_actor(sensor_lane_invasion_bp, transform, attach_to=vehicle)
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.spawn_actor-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.ActorBlueprint.set_attribute-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.ActorBlueprint.set_attribute
|
||||
|
@ -3931,195 +3902,6 @@ camera_bp.set_attribute('image_size_y', 600)
|
|||
|
||||
</div>
|
||||
|
||||
<div id ="carla.DebugHelper.draw_box-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.DebugHelper.draw_box
|
||||
</p>
|
||||
<div id="carla.DebugHelper.draw_box-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe shows how to draw traffic light actor bounding boxes from a world snapshot.
|
||||
|
||||
# ....
|
||||
debug = world.debug
|
||||
world_snapshot = world.get_snapshot()
|
||||
|
||||
for actor_snapshot in world_snapshot:
|
||||
actual_actor = world.get_actor(actor_snapshot.id)
|
||||
if actual_actor.type_id == 'traffic.traffic_light':
|
||||
debug.draw_box(carla.BoundingBox(actor_snapshot.get_transform().location,carla.Vector3D(0.5,0.5,2)),actor_snapshot.get_transform().rotation, 0.05, carla.Color(255,0,0,0),0)
|
||||
# ...
|
||||
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.DebugHelper.draw_box-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
|
||||
<img src="/img/snipets_images/carla.DebugHelper.draw_box.jpg">
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Sensor.listen-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Sensor.listen
|
||||
</p>
|
||||
<div id="carla.Sensor.listen-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe applies a color conversion to the image taken by a camera sensor,
|
||||
# so it is converted to a semantic segmentation image.
|
||||
|
||||
# ...
|
||||
camera_bp = world.get_blueprint_library().filter('sensor.camera.semantic_segmentation')
|
||||
# ...
|
||||
cc = carla.ColorConverter.CityScapesPalette
|
||||
camera.listen(lambda image: image.save_to_disk('output/%06d.png' % image.frame, cc))
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Sensor.listen-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Vehicle.set_wheel_steer_direction-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Vehicle.set_wheel_steer_direction
|
||||
</p>
|
||||
<div id="carla.Vehicle.set_wheel_steer_direction-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
# Sets the appearance of the vehicles front wheels to 40°. Vehicle physics will not be affected.
|
||||
|
||||
vehicle.set_wheel_steer_direction(carla.VehicleWheelLocation.FR_Wheel, 40.0)
|
||||
vehicle.set_wheel_steer_direction(carla.VehicleWheelLocation.FL_Wheel, 40.0)
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Vehicle.set_wheel_steer_direction-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.DebugHelper.draw_string-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.DebugHelper.draw_string
|
||||
</p>
|
||||
<div id="carla.DebugHelper.draw_string-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe is a modification of lane_explorer.py example.
|
||||
# It draws the path of an actor through the world, printing information at each waypoint.
|
||||
|
||||
# ...
|
||||
current_w = map.get_waypoint(vehicle.get_location())
|
||||
while True:
|
||||
|
||||
next_w = map.get_waypoint(vehicle.get_location(), lane_type=carla.LaneType.Driving | carla.LaneType.Shoulder | carla.LaneType.Sidewalk )
|
||||
# Check if the vehicle is moving
|
||||
if next_w.id != current_w.id:
|
||||
vector = vehicle.get_velocity()
|
||||
# Check if the vehicle is on a sidewalk
|
||||
if current_w.lane_type == carla.LaneType.Sidewalk:
|
||||
draw_waypoint_union(debug, current_w, next_w, cyan if current_w.is_junction else red, 60)
|
||||
else:
|
||||
draw_waypoint_union(debug, current_w, next_w, cyan if current_w.is_junction else green, 60)
|
||||
debug.draw_string(current_w.transform.location, str('%15.0f km/h' % (3.6 * math.sqrt(vector.x**2 + vector.y**2 + vector.z**2))), False, orange, 60)
|
||||
draw_transform(debug, current_w.transform, white, 60)
|
||||
|
||||
# Update the current waypoint and sleep for some time
|
||||
current_w = next_w
|
||||
time.sleep(args.tick_time)
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.DebugHelper.draw_string-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.enable_environment_objects-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.enable_environment_objects
|
||||
</p>
|
||||
<div id="carla.World.enable_environment_objects-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
# This recipe turn visibility off and on for two specifc buildings on the map
|
||||
|
||||
# Get the buildings in the world
|
||||
world = client.get_world()
|
||||
env_objs = world.get_environment_objects(carla.CityObjectLabel.Buildings)
|
||||
|
||||
# Access individual building IDs and save in a set
|
||||
building_01 = env_objs[0]
|
||||
building_02 = env_objs[1]
|
||||
objects_to_toggle = {building_01.id, building_02.id}
|
||||
|
||||
# Toggle buildings off
|
||||
world.enable_environment_objects(objects_to_toggle, False)
|
||||
# Toggle buildings on
|
||||
world.enable_environment_objects(objects_to_toggle, True)
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.enable_environment_objects-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Client.__init__-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Client.__init__
|
||||
</p>
|
||||
<div id="carla.Client.__init__-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe shows in every script provided in PythonAPI/Examples
|
||||
# and it is used to parse the client creation arguments when running the script.
|
||||
|
||||
argparser = argparse.ArgumentParser(
|
||||
description=__doc__)
|
||||
argparser.add_argument(
|
||||
'--host',
|
||||
metavar='H',
|
||||
default='127.0.0.1',
|
||||
help='IP of the host server (default: 127.0.0.1)')
|
||||
argparser.add_argument(
|
||||
'-p', '--port',
|
||||
metavar='P',
|
||||
default=2000,
|
||||
type=int,
|
||||
help='TCP port to listen to (default: 2000)')
|
||||
argparser.add_argument(
|
||||
'-s', '--speed',
|
||||
metavar='FACTOR',
|
||||
default=1.0,
|
||||
type=float,
|
||||
help='rate at which the weather changes (default: 1.0)')
|
||||
args = argparser.parse_args()
|
||||
|
||||
speed_factor = args.speed
|
||||
update_freq = 0.1 / speed_factor
|
||||
|
||||
client = carla.Client(args.host, args.port)
|
||||
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Client.__init__-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.TrafficLight.set_state-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.TrafficLight.set_state
|
||||
|
@ -4166,6 +3948,224 @@ if vehicle_actor.is_at_traffic_light():
|
|||
|
||||
</div>
|
||||
|
||||
<div id ="carla.WalkerAIController.stop-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.WalkerAIController.stop
|
||||
</p>
|
||||
<div id="carla.WalkerAIController.stop-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
#To destroy the pedestrians, stop them from the navigation, and then destroy the objects (actor and controller).
|
||||
|
||||
# stop pedestrians (list is [controller, actor, controller, actor ...])
|
||||
for i in range(0, len(all_id), 2):
|
||||
all_actors[i].stop()
|
||||
|
||||
# destroy pedestrian (actor and controller)
|
||||
client.apply_batch([carla.command.DestroyActor(x) for x in all_id])
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.WalkerAIController.stop-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Vehicle.set_wheel_steer_direction-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Vehicle.set_wheel_steer_direction
|
||||
</p>
|
||||
<div id="carla.Vehicle.set_wheel_steer_direction-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
# Sets the appearance of the vehicles front wheels to 40°. Vehicle physics will not be affected.
|
||||
|
||||
vehicle.set_wheel_steer_direction(carla.VehicleWheelLocation.FR_Wheel, 40.0)
|
||||
vehicle.set_wheel_steer_direction(carla.VehicleWheelLocation.FL_Wheel, 40.0)
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Vehicle.set_wheel_steer_direction-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Client.__init__-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Client.__init__
|
||||
</p>
|
||||
<div id="carla.Client.__init__-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe shows in every script provided in PythonAPI/Examples
|
||||
# and it is used to parse the client creation arguments when running the script.
|
||||
|
||||
argparser = argparse.ArgumentParser(
|
||||
description=__doc__)
|
||||
argparser.add_argument(
|
||||
'--host',
|
||||
metavar='H',
|
||||
default='127.0.0.1',
|
||||
help='IP of the host server (default: 127.0.0.1)')
|
||||
argparser.add_argument(
|
||||
'-p', '--port',
|
||||
metavar='P',
|
||||
default=2000,
|
||||
type=int,
|
||||
help='TCP port to listen to (default: 2000)')
|
||||
argparser.add_argument(
|
||||
'-s', '--speed',
|
||||
metavar='FACTOR',
|
||||
default=1.0,
|
||||
type=float,
|
||||
help='rate at which the weather changes (default: 1.0)')
|
||||
args = argparser.parse_args()
|
||||
|
||||
speed_factor = args.speed
|
||||
update_freq = 0.1 / speed_factor
|
||||
|
||||
client = carla.Client(args.host, args.port)
|
||||
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Client.__init__-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.World.get_spectator-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.World.get_spectator
|
||||
</p>
|
||||
<div id="carla.World.get_spectator-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe spawns an actor and the spectator camera at the actor's location.
|
||||
|
||||
# ...
|
||||
world = client.get_world()
|
||||
spectator = world.get_spectator()
|
||||
|
||||
vehicle_bp = random.choice(world.get_blueprint_library().filter('vehicle.bmw.*'))
|
||||
transform = random.choice(world.get_map().get_spawn_points())
|
||||
vehicle = world.try_spawn_actor(vehicle_bp, transform)
|
||||
|
||||
# Wait for world to get the vehicle actor
|
||||
world.tick()
|
||||
|
||||
world_snapshot = world.wait_for_tick()
|
||||
actor_snapshot = world_snapshot.find(vehicle.id)
|
||||
|
||||
# Set spectator at given transform (vehicle transform)
|
||||
spectator.set_transform(actor_snapshot.get_transform())
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.World.get_spectator-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.DebugHelper.draw_box-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.DebugHelper.draw_box
|
||||
</p>
|
||||
<div id="carla.DebugHelper.draw_box-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe shows how to draw traffic light actor bounding boxes from a world snapshot.
|
||||
|
||||
# ....
|
||||
debug = world.debug
|
||||
world_snapshot = world.get_snapshot()
|
||||
|
||||
for actor_snapshot in world_snapshot:
|
||||
actual_actor = world.get_actor(actor_snapshot.id)
|
||||
if actual_actor.type_id == 'traffic.traffic_light':
|
||||
debug.draw_box(carla.BoundingBox(actor_snapshot.get_transform().location,carla.Vector3D(0.5,0.5,2)),actor_snapshot.get_transform().rotation, 0.05, carla.Color(255,0,0,0),0)
|
||||
# ...
|
||||
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.DebugHelper.draw_box-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
|
||||
<img src="/img/snipets_images/carla.DebugHelper.draw_box.jpg">
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.DebugHelper.draw_string-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.DebugHelper.draw_string
|
||||
</p>
|
||||
<div id="carla.DebugHelper.draw_string-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe is a modification of lane_explorer.py example.
|
||||
# It draws the path of an actor through the world, printing information at each waypoint.
|
||||
|
||||
# ...
|
||||
current_w = map.get_waypoint(vehicle.get_location())
|
||||
while True:
|
||||
|
||||
next_w = map.get_waypoint(vehicle.get_location(), lane_type=carla.LaneType.Driving | carla.LaneType.Shoulder | carla.LaneType.Sidewalk )
|
||||
# Check if the vehicle is moving
|
||||
if next_w.id != current_w.id:
|
||||
vector = vehicle.get_velocity()
|
||||
# Check if the vehicle is on a sidewalk
|
||||
if current_w.lane_type == carla.LaneType.Sidewalk:
|
||||
draw_waypoint_union(debug, current_w, next_w, cyan if current_w.is_junction else red, 60)
|
||||
else:
|
||||
draw_waypoint_union(debug, current_w, next_w, cyan if current_w.is_junction else green, 60)
|
||||
debug.draw_string(current_w.transform.location, str('%15.0f km/h' % (3.6 * math.sqrt(vector.x**2 + vector.y**2 + vector.z**2))), False, orange, 60)
|
||||
draw_transform(debug, current_w.transform, white, 60)
|
||||
|
||||
# Update the current waypoint and sleep for some time
|
||||
current_w = next_w
|
||||
time.sleep(args.tick_time)
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.DebugHelper.draw_string-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
<div id ="carla.Sensor.listen-snipet" style="display: none;">
|
||||
<p class="SnipetFont">
|
||||
Snippet for carla.Sensor.listen
|
||||
</p>
|
||||
<div id="carla.Sensor.listen-code" class="SnipetContent">
|
||||
|
||||
```py
|
||||
|
||||
|
||||
# This recipe applies a color conversion to the image taken by a camera sensor,
|
||||
# so it is converted to a semantic segmentation image.
|
||||
|
||||
# ...
|
||||
camera_bp = world.get_blueprint_library().filter('sensor.camera.semantic_segmentation')
|
||||
# ...
|
||||
cc = carla.ColorConverter.CityScapesPalette
|
||||
camera.listen(lambda image: image.save_to_disk('output/%06d.png' % image.frame, cc))
|
||||
# ...
|
||||
|
||||
|
||||
```
|
||||
<button id="button1" class="CopyScript" onclick="CopyToClipboard('carla.Sensor.listen-code')">Copy snippet</button> <button id="button1" class="CloseSnipet" onclick="CloseSnipet()">Close snippet</button><br><br>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -55,6 +55,10 @@ namespace geom {
|
|||
return a * a;
|
||||
}
|
||||
|
||||
static auto Cross(const Vector3D &a, const Vector3D &b) {
|
||||
return Vector3D(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z, a.x * b.y - a.y * b.x);
|
||||
}
|
||||
|
||||
static auto Dot(const Vector3D &a, const Vector3D &b) {
|
||||
return a.x * b.x + a.y * b.y + a.z * b.z;
|
||||
}
|
||||
|
|
|
@ -103,6 +103,10 @@ static auto GetInverseTransformMatrix(const carla::geom::Transform &self) {
|
|||
return BuildMatrix(self.GetInverseMatrix());
|
||||
}
|
||||
|
||||
static auto Cross(const carla::geom::Vector3D &self, const carla::geom::Vector3D &other) {
|
||||
return carla::geom::Math::Cross(self, other);
|
||||
}
|
||||
|
||||
static auto Dot(const carla::geom::Vector3D &self, const carla::geom::Vector3D &other) {
|
||||
return carla::geom::Math::Dot(self, other);
|
||||
}
|
||||
|
@ -173,6 +177,7 @@ void export_geom() {
|
|||
.def("length", &cg::Vector3D::Length)
|
||||
.def("squared_length", &cg::Vector3D::SquaredLength)
|
||||
.def("make_unit_vector", &cg::Vector3D::MakeUnitVector)
|
||||
.def("cross", &Cross, (arg("vector")))
|
||||
.def("dot", &Dot, (arg("vector")))
|
||||
.def("dot_2d", &Dot2D, (arg("vector")))
|
||||
.def("distance", &Distance, (arg("vector")))
|
||||
|
|
|
@ -26,6 +26,24 @@
|
|||
type: float
|
||||
default: 0.0
|
||||
# --------------------------------------
|
||||
- def_name: length
|
||||
return: float
|
||||
params:
|
||||
doc: >
|
||||
Computes the length of the vector.
|
||||
# --------------------------------------
|
||||
- def_name: squared_length
|
||||
return: float
|
||||
params:
|
||||
doc: >
|
||||
Computes the squared length of the vector.
|
||||
# --------------------------------------
|
||||
- def_name: make_unit_vector
|
||||
return: carla.Vector3D
|
||||
params:
|
||||
doc: >
|
||||
Returns a vector with the same direction and unitary length.
|
||||
# --------------------------------------
|
||||
- def_name: __add__
|
||||
params:
|
||||
- param_name: other
|
||||
|
@ -100,6 +118,80 @@
|
|||
type: float
|
||||
default: 0.0
|
||||
# --------------------------------------
|
||||
- def_name: length
|
||||
return: float
|
||||
params:
|
||||
doc: >
|
||||
Computes the length of the vector.
|
||||
# --------------------------------------
|
||||
- def_name: squared_length
|
||||
return: float
|
||||
params:
|
||||
doc: >
|
||||
Computes the squared length of the vector.
|
||||
# --------------------------------------
|
||||
- def_name: make_unit_vector
|
||||
return: carla.Vector3D
|
||||
params:
|
||||
doc: >
|
||||
Returns a vector with the same direction and unitary length.
|
||||
# --------------------------------------
|
||||
- def_name: cross
|
||||
return: carla.Vector3D
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the cross product between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: dot
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the dot product between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: distance
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the distance between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: distance_squared
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the squared distance between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: dot_2d
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the 2-dimensional dot product between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: distance_2d
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the 2-dimensional distance between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: distance_squared_2d
|
||||
return: float
|
||||
params:
|
||||
- param_name: vector
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Computes the 2-dimensional squared distance between two vectors.
|
||||
# --------------------------------------
|
||||
- def_name: __add__
|
||||
params:
|
||||
- param_name: other
|
||||
|
|
Loading…
Reference in New Issue