Compare commits
72 Commits
9f33bafeee
...
5ab4425403
Author | SHA1 | Date |
---|---|---|
Daraan | 5ab4425403 | |
MattRoweEAIF | 2a2cc5f1be | |
Daraan | 0a095b948d | |
MattRoweEAIF | f7ed6c25e9 | |
Blyron | 4feeb77b2b | |
Daniel | dad5f5dc7b | |
Daniel | 944d0e225e | |
Daniel | cdb2664350 | |
Daniel | e9d9a1cd36 | |
Daniel | 9bb1e52581 | |
Daniel | dee22b138d | |
Daniel | a74476e9eb | |
Daniel | fd8d6122dd | |
Daniel | fa0b470a78 | |
Daniel | b5b1168892 | |
Daniel | db2697108a | |
Ylmdrin | 92a6e71c6b | |
Sergio Paniego Blanco | c7339367b9 | |
Jorge Virgos | 4d09f0a660 | |
AreopagX | 9e94feb3a5 | |
Blyron | 00df447670 | |
MattRoweEAIF | c097d7acf1 | |
Daniel | 334740ae53 | |
Daniel | 7633334063 | |
Daniel | 2b465bcd66 | |
Daniel | aec0b261af | |
Daniel | 58e0374f4f | |
Daniel | 26dc386724 | |
Daniel | 798c9e144c | |
Daniel | 77856f467c | |
Daniel | ca81e35d59 | |
Daniel | da80757e27 | |
Daniel | 453ceca112 | |
Daniel | a959577ccf | |
Daniel | b061f9e951 | |
Daniel | f797e1593a | |
Daniel | 41e595c056 | |
Daniel | d9c217ee3c | |
Daniel | a089c3b800 | |
Daniel | 19b892f76b | |
Daniel | 8df99c0414 | |
Daniel | 2935897950 | |
Daniel | ddb5834e38 | |
Daniel | e765559384 | |
Daniel | df1eb25721 | |
Daniel | caac503fdb | |
Daniel | 4c086ad7d9 | |
Daniel | 1d4450b026 | |
Daniel | 0197e0ae5b | |
Daniel | de33210abd | |
Daniel | a0cff71434 | |
Daniel | 232cb8c250 | |
Daniel | 755c0d827d | |
Daniel | 4c1104dc47 | |
Daniel | f275e47f4e | |
Daniel | 7b2c1db39b | |
Daniel | 251b293d61 | |
Daniel | bc6e7cd5ea | |
Daraan | be8735fc28 | |
Daniel | 951fcc4cc9 | |
Minokori | fd44ea0ca1 | |
Blyron | e83b79be74 | |
Blyron | 32f97eae66 | |
Blyron | c83c045ada | |
Blyron | 7c47e7db37 | |
Blyron | 17963902e5 | |
Blyron | 5043ad73fc | |
Blyron | b86b1997fc | |
Blyron | 2a507990d3 | |
Blyron | d854ab5f89 | |
Blyron | 649e2aa56b | |
Blyron | 5be0e2fd17 |
|
@ -1,4 +1,5 @@
|
|||
## Latest Changes
|
||||
* Fixed a bug that caused navigation information not to be loaded when switching maps
|
||||
* Prevent from segfault on failing SignalReference identification when loading OpenDrive files
|
||||
* Added vehicle doors to the recorder
|
||||
* Added functions to get actor' components transform
|
||||
|
@ -18,6 +19,7 @@
|
|||
* PythonAPI `Sensor.is_listening` was defined twice (property and method), cleaned and clarified it as a method.
|
||||
* Added V2X sensors for cooperative awareness message and custom user-defined messages to support vehicle-to-vehicle communication
|
||||
* Added named tuples for BasicAgent.py's detection result to allow for type-hints and better semantics.
|
||||
* Added type-hint support for the PythonAPI
|
||||
|
||||
|
||||
## CARLA 0.9.15
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
|
||||
The __Digital Twin Tool__ enables procedural generation of unique 3D environments based on road networks derived from the [OpenStreetMap](https://www.openstreetmap.org) (OSM) service. Through the Digital Twin Tool interface in CARLA's Unreal Engine editor a user can select a region of map from OSM and download the road network as the basis for a new CARLA map. The tool then fills the spaces between the roads with procedurally generated 3D buildings that adjust to the layout of the road, creating a realistic 3D road environment with high variability.
|
||||
|
||||
<iframe width="100%" height="400px" src="https://www.youtube.com/embed/gTutXdS2UkQ?si=hssM3YRCAjSIzdXM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
|
||||
|
||||
## Building the OSM renderer
|
||||
|
||||
If you are using Linux, you have the option of using the OSM renderer in the CARLA interface to navigate a large OSM map region that you have downloaded. You first need to build the OSM renderer before proceeding to build CARLA. Run `make osmrenderer` inside the CARLA root directory. You may need to upgrade your version of CMake to v3.2 or above in order for this to work. This will create two folders in your build directory called `libosmcout-source` and `libosmcout-build`. Before proceeding to build CARLA, you need to then edit the `Build.sh` file in the directory `$CARLA_ROOT/Build/libosmcout-source/maps` like so, to ensure the executable is found:
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
!!! warning
|
||||
This is a work in progress!! This version of CARLA is not considered a stable release. Over the following months many significant changes may be made to this branch which could break any modifications you make. We advise you to treat this branch as experimental.
|
||||
|
||||
# Building CARLA in Windowswith Unreal Engine 5.3
|
||||
# Building CARLA in Windows with Unreal Engine 5.3
|
||||
|
||||
## Set up the environment
|
||||
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 38 KiB |
|
@ -1,4 +1,4 @@
|
|||
#Python API reference
|
||||
# Python API reference
|
||||
This reference contains all the details the Python API. To consult a previous reference for a specific CARLA release, change the documentation version using the panel in the bottom right corner.<br>This will change the whole documentation to a previous state. Remember that the <i>latest</i> version is the `dev` branch and may show features not available in any packaged versions of CARLA.<hr>
|
||||
|
||||
## carla.AckermannControllerSettings<a name="carla.AckermannControllerSettings"></a>
|
||||
|
@ -95,21 +95,21 @@ _</font>
|
|||
|
||||
##### Getters
|
||||
- <a name="carla.Actor.get_acceleration"></a>**<font color="#7fb800">get_acceleration</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the actor's 3D acceleration vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's 3D acceleration vector the client received during last tick. The method does not call the simulator.
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)<small> - m/s<sup>2</sup></small>_
|
||||
- <a name="carla.Actor.get_angular_velocity"></a>**<font color="#7fb800">get_angular_velocity</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the actor's angular velocity vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's angular velocity vector the client received during last tick. The method does not call the simulator.
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)<small> - deg/s</small>_
|
||||
- <a name="carla.Actor.get_location"></a>**<font color="#7fb800">get_location</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the actor's location the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's location the client received during last tick. The method does not call the simulator.
|
||||
- **Return:** _[carla.Location](#carla.Location)<small> - meters</small>_
|
||||
- **Setter:** _[carla.Actor.set_location](#carla.Actor.set_location)_
|
||||
- <a name="carla.Actor.get_transform"></a>**<font color="#7fb800">get_transform</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the actor's transform (location and rotation) the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's transform (location and rotation) the client received during last tick. The method does not call the simulator.
|
||||
- **Return:** _[carla.Transform](#carla.Transform)_
|
||||
- **Setter:** _[carla.Actor.set_transform](#carla.Actor.set_transform)_
|
||||
- <a name="carla.Actor.get_velocity"></a>**<font color="#7fb800">get_velocity</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the actor's velocity vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's velocity vector the client received during last tick. The method does not call the simulator.
|
||||
- **Return:** _[carla.Vector3D](#carla.Vector3D)<small> - m/s</small>_
|
||||
- <a name="carla.Actor.get_world"></a>**<font color="#7fb800">get_world</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Returns the world this actor belongs to.
|
||||
|
@ -505,15 +505,16 @@ Client constructor.
|
|||
- `host` (_str_) - IP address where a CARLA Simulator instance is running. Default is localhost (127.0.0.1).
|
||||
- `port` (_int_) - TCP port where the CARLA Simulator instance is running. Default are 2000 and the subsequent 2001.
|
||||
- `worker_threads` (_int_) - Number of working threads used for background updates. If 0, use all available concurrency.
|
||||
- <a name="carla.Client.apply_batch"></a>**<font color="#7fb800">apply_batch</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**commands**</font>)
|
||||
- <a name="carla.Client.apply_batch"></a>**<font color="#7fb800">apply_batch</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**commands**</font>, <font color="#00a6ed">**do_tick**=False</font>)
|
||||
Executes a list of commands on a single simulation step and retrieves no information. If you need information about the response of each command, use the __<font color="#7fb800">apply_batch_sync()</font>__ method. [Here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/generate_traffic.py) is an example on how to delete the actors that appear in [carla.ActorList](#carla.ActorList) all at once.
|
||||
- **Parameters:**
|
||||
- `commands` (_list_) - A list of commands to execute in batch. Each command is different and has its own parameters. They appear listed at the bottom of this page.
|
||||
- <a name="carla.Client.apply_batch_sync"></a>**<font color="#7fb800">apply_batch_sync</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**commands**</font>, <font color="#00a6ed">**due_tick_cue**=False</font>)<button class="SnipetButton" id="carla.Client.apply_batch_sync-snipet_button">snippet →</button>
|
||||
- `do_tick` (_bool_) - A boolean parameter to specify whether or not to perform a [carla.World.tick](#carla.World.tick) after applying the batch in _synchronous mode_. Defaults to __False__.
|
||||
- <a name="carla.Client.apply_batch_sync"></a>**<font color="#7fb800">apply_batch_sync</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**commands**</font>, <font color="#00a6ed">**do_tick**=False</font>)<button class="SnipetButton" id="carla.Client.apply_batch_sync-snipet_button">snippet →</button>
|
||||
Executes a list of commands on a single simulation step, blocks until the commands are linked, and returns a list of <b>command.Response</b> that can be used to determine whether a single command succeeded or not. [Here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/generate_traffic.py) is an example of it being used to spawn actors.
|
||||
- **Parameters:**
|
||||
- `commands` (_list_) - A list of commands to execute in batch. The commands available are listed right above, in the method **<font color="#7fb800">apply_batch()</font>**.
|
||||
- `due_tick_cue` (_bool_) - A boolean parameter to specify whether or not to perform a [carla.World.tick](#carla.World.tick) after applying the batch in _synchronous mode_. It is __False__ by default.
|
||||
- `do_tick` (_bool_) - A boolean parameter to specify whether or not to perform a [carla.World.tick](#carla.World.tick) after applying the batch in _synchronous mode_. Defaults to __False__.
|
||||
- **Return:** _list(command.Response)_
|
||||
- <a name="carla.Client.generate_opendrive_world"></a>**<font color="#7fb800">generate_opendrive_world</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**opendrive**</font>, <font color="#00a6ed">**parameters**=(2.0, 50.0, 1.0, 0.6, true, true)</font>, <font color="#00a6ed">**reset_settings**=True</font>)
|
||||
Loads a new world with a basic 3D topology generated from the content of an OpenDRIVE file. This content is passed as a `string` parameter. It is similar to `client.load_world(map_name)` but allows for custom OpenDRIVE maps in server side. Cars can drive around the map, but there are no graphics besides the road and sidewalks.
|
||||
|
@ -545,7 +546,7 @@ Reload the current world, note that a new world is created with default settings
|
|||
- `reset_settings` (_bool_) - Option to reset the episode setting to default values, set to false to keep the current settings. This is useful to keep sync mode when changing map and to keep deterministic scenarios.
|
||||
- **Return:** _[carla.World](#carla.World)_
|
||||
- **Raises:** RuntimeError when corresponding.
|
||||
- <a name="carla.Client.replay_file"></a>**<font color="#7fb800">replay_file</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**name**</font>, <font color="#00a6ed">**start**</font>, <font color="#00a6ed">**duration**</font>, <font color="#00a6ed">**follow_id**</font>, <font color="#00a6ed">**replay_sensors**</font>)
|
||||
- <a name="carla.Client.replay_file"></a>**<font color="#7fb800">replay_file</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**name**</font>, <font color="#00a6ed">**start**</font>, <font color="#00a6ed">**duration**</font>, <font color="#00a6ed">**follow_id**</font>, <font color="#00a6ed">**replay_sensors**=False</font>)
|
||||
Load a new world with default settings using `map_name` map. All actors present in the current world will be destroyed, __but__ traffic manager instances will stay alive.
|
||||
- **Parameters:**
|
||||
- `name` (_str_) - Name of the file containing the information of the simulation.
|
||||
|
@ -931,7 +932,7 @@ Initializes a color, black by default.
|
|||
---
|
||||
|
||||
## carla.GBufferTextureID<a name="carla.GBufferTextureID"></a>
|
||||
Defines the of each GBuffer texture (See the method `[carla.Sensor.listen_to_gbuffer](#carla.Sensor.listen_to_gbuffer)`).
|
||||
Defines the identifiers of each GBuffer texture (See the method [carla.Sensor.listen_to_gbuffer](#carla.Sensor.listen_to_gbuffer)).
|
||||
|
||||
### Instance Variables
|
||||
- <a name="carla.GBufferTextureID.SceneColor"></a>**<font color="#f8805a">SceneColor</font>**
|
||||
|
@ -1845,7 +1846,19 @@ If __True__, the mesh at junctions will be smoothed to prevent issues where road
|
|||
- <a name="carla.OpendriveGenerationParameters.enable_mesh_visibility"></a>**<font color="#f8805a">enable_mesh_visibility</font>** (_bool_)
|
||||
If __True__, the road mesh will be rendered. Setting this to __False__ should reduce the rendering overhead. __Default is `True`__.
|
||||
- <a name="carla.OpendriveGenerationParameters.enable_pedestrian_navigation"></a>**<font color="#f8805a">enable_pedestrian_navigation</font>** (_bool_)
|
||||
If __True__, Pedestrian navigation will be enabled using Recast tool. For very large maps it is recomended to disable this option. __Default is `True`__.
|
||||
If __True__, Pedestrian navigation will be enabled using Recast tool. For very large maps it is recommended to disable this option. __Default is `True`__.
|
||||
|
||||
### Methods
|
||||
- <a name="carla.OpendriveGenerationParameters.__init__"></a>**<font color="#7fb800">\__init__</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**vertex_distance**=2.0</font>, <font color="#00a6ed">**max_road_length**=50.0</font>, <font color="#00a6ed">**wall_height**=1.0</font>, <font color="#00a6ed">**additional_width**=0.6</font>, <font color="#00a6ed">**smooth_junctions**=True</font>, <font color="#00a6ed">**enable_mesh_visibility**=True</font>, <font color="#00a6ed">**enable_pedestrian_navigation**=True</font>)
|
||||
OpendriveGenerationParameters constructor.
|
||||
- **Parameters:**
|
||||
- `vertex_distance` (_float<small> - meters</small>_)
|
||||
- `max_road_length` (_float<small> - meters</small>_)
|
||||
- `wall_height` (_float<small> - meters</small>_)
|
||||
- `additional_width` (_float<small> - meters</small>_)
|
||||
- `smooth_junctions` (_bool_)
|
||||
- `enable_mesh_visibility` (_bool_)
|
||||
- `enable_pedestrian_navigation` (_bool_)
|
||||
|
||||
---
|
||||
|
||||
|
@ -1999,7 +2012,7 @@ Iterate over the [carla.RadarDetection](#carla.RadarDetection) retrieved as data
|
|||
|
||||
## carla.Rotation<a name="carla.Rotation"></a>
|
||||
Class that represents a 3D rotation and therefore, an orientation in space. CARLA uses the Unreal Engine coordinates system. This is a Z-up left-handed system. <br>
|
||||
<br>The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`. <br> <br>![UE4_Rotation](https://d26ilriwvtzlb.cloudfront.net/8/83/BRMC_9.jpg) *Unreal Engine's coordinates system*.
|
||||
<br>The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`. <br> <br>![UE4_Rotation](/img/unreal_lhcs.png) *Unreal Engine's coordinates system*.
|
||||
|
||||
### Instance Variables
|
||||
- <a name="carla.Rotation.pitch"></a>**<font color="#f8805a">pitch</font>** (_float<small> - degrees</small>_)
|
||||
|
@ -2321,10 +2334,6 @@ Sensors compound a specific family of actors quite diverse and unique. They are
|
|||
- [Obstacle detector](ref_sensors.md#obstacle-detector)<br>
|
||||
- [V2X sensor](ref_sensors.md#v2x-sensor).
|
||||
|
||||
### Instance Variables
|
||||
- <a name="carla.Sensor.is_listening"></a>**<font color="#f8805a">is_listening</font>** (_boolean_)
|
||||
When **True** the sensor will be waiting for data.
|
||||
|
||||
### Methods
|
||||
- <a name="carla.Sensor.disable_for_ros"></a>**<font color="#7fb800">disable_for_ros</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Commands the sensor to not be processed for publishing in ROS2 if there is no any listen to it.
|
||||
|
@ -2495,7 +2504,7 @@ Time register of the frame at which this measurement was taken given by the OS i
|
|||
|
||||
## carla.TrafficLight<a name="carla.TrafficLight"></a>
|
||||
<small style="display:block;margin-top:-20px;">Inherited from _[carla.TrafficSign](#carla.TrafficSign)_</small></br>
|
||||
A traffic light actor, considered a specific type of traffic sign. As traffic lights will mostly appear at junctions, they belong to a group which contains the different traffic lights in it. Inside the group, traffic lights are differenciated by their pole index.
|
||||
A traffic light actor, considered a specific type of traffic sign. As traffic lights will mostly appear at junctions, they belong to a group which contains the different traffic lights in it. Inside the group, traffic lights are differentiated by their pole index.
|
||||
|
||||
Within a group the state of traffic lights is changed in a cyclic pattern: one index is chosen and it spends a few seconds in green, yellow and eventually red. The rest of the traffic lights remain frozen in red this whole time, meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red. However, the state of a traffic light can be changed manually.
|
||||
|
||||
|
@ -2786,14 +2795,18 @@ Describes a rotation for an object according to Unreal Engine's axis system.
|
|||
- **Parameters:**
|
||||
- `location` (_[carla.Location](#carla.Location)_)
|
||||
- `rotation` (_[carla.Rotation](#carla.Rotation)<small> - degrees (pitch, yaw, roll)</small>_)
|
||||
- <a name="carla.Transform.inverse_transform"></a>**<font color="#7fb800">inverse_transform</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**in_point**</font>)
|
||||
Applies the inverse of `transform` by translating a 3D point in place from global to local coordinates using the current transformation as frame of reference.
|
||||
- **Parameters:**
|
||||
- `in_point` (_[carla.Vector3D](#carla.Vector3D)_) - Location in the space to which the inverse transformation will be applied.
|
||||
- <a name="carla.Transform.transform"></a>**<font color="#7fb800">transform</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**in_point**</font>)
|
||||
Translates a 3D point from local to global coordinates using the current transformation as frame of reference.
|
||||
Translates a 3D point in place from local to global coordinates using the current transformation as frame of reference.
|
||||
- **Parameters:**
|
||||
- `in_point` (_[carla.Location](#carla.Location)_) - Location in the space to which the transformation will be applied.
|
||||
- <a name="carla.Transform.transform_vector"></a>**<font color="#7fb800">transform_vector</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**in_vector**</font>)
|
||||
Rotates a vector using the current transformation as frame of reference, without applying translation. Use this to transform, for example, a velocity.
|
||||
- `in_point` (_[carla.Vector3D](#carla.Vector3D)_) - Location in the space to which the transformation will be applied.
|
||||
- <a name="carla.Transform.transform_vector"></a>**<font color="#7fb800">transform_vector</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**in_point**</font>)
|
||||
Rotates a vector in place using the current transformation as frame of reference, without applying translation. Use this to transform, for example, a velocity.
|
||||
- **Parameters:**
|
||||
- `in_vector` (_[carla.Vector3D](#carla.Vector3D)_) - Vector to which the transformation will be applied.
|
||||
- `in_point` (_[carla.Vector3D](#carla.Vector3D)_) - Vector to which the transformation will be applied.
|
||||
|
||||
##### Getters
|
||||
- <a name="carla.Transform.get_forward_vector"></a>**<font color="#7fb800">get_forward_vector</font>**(<font color="#00a6ed">**self**</font>)
|
||||
|
@ -2957,7 +2970,7 @@ Returns the axis values for the vector parsed as string.
|
|||
|
||||
## carla.Vehicle<a name="carla.Vehicle"></a>
|
||||
<small style="display:block;margin-top:-20px;">Inherited from _[carla.Actor](#carla.Actor)_</small></br>
|
||||
One of the most important groups of actors in CARLA. These include any type of vehicle from cars to trucks, motorbikes, vans, bycicles and also official vehicles such as police cars. A wide set of these actors is provided in [carla.BlueprintLibrary](#carla.BlueprintLibrary) to facilitate differente requirements. Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client-side by the <b>traffic manager</b>.
|
||||
One of the most important groups of actors in CARLA. These include any type of vehicle from cars to trucks, motorbikes, vans, bicycles and also official vehicles such as police cars. A wide set of these actors is provided in [carla.BlueprintLibrary](#carla.BlueprintLibrary) to facilitate different requirements. Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client-side by the <b>traffic manager</b>.
|
||||
|
||||
### Instance Variables
|
||||
- <a name="carla.Vehicle.bounding_box"></a>**<font color="#f8805a">bounding_box</font>** (_[carla.BoundingBox](#carla.BoundingBox)_)
|
||||
|
@ -3515,7 +3528,7 @@ Will return <b>None</b> if the lane does not exist.
|
|||
|
||||
## carla.WeatherParameters<a name="carla.WeatherParameters"></a>
|
||||
This class defines objects containing lighting and weather specifications that can later be applied in [carla.World](#carla.World). So far, these conditions only intervene with [sensor.camera.rgb](ref_sensors.md#rgb-camera). They neither affect the actor's physics nor other sensors.
|
||||
Each of these parameters acts indepently from the rest. Increasing the rainfall will not automatically create puddles nor change the road's humidity. That makes for a better customization but means that realistic conditions need to be scripted. However an example of dynamic weather conditions working realistically can be found [here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/dynamic_weather.py).
|
||||
Each of these parameters acts independently from the rest. Increasing the rainfall will not automatically create puddles nor change the road's humidity. That makes for a better customization but means that realistic conditions need to be scripted. However an example of dynamic weather conditions working realistically can be found [here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/dynamic_weather.py).
|
||||
|
||||
### Instance Variables
|
||||
- <a name="carla.WeatherParameters.cloudiness"></a>**<font color="#f8805a">cloudiness</font>** (_float_)
|
||||
|
@ -3626,31 +3639,31 @@ World objects are created by the client to have a place for the simulation to ha
|
|||
|
||||
### Instance Variables
|
||||
- <a name="carla.World.id"></a>**<font color="#f8805a">id</font>** (_int_)
|
||||
The ID of the episode associated with this world. Episodes are different sessions of a simulation. These change everytime a world is disabled or reloaded. Keeping track is useful to avoid possible issues.
|
||||
The ID of the episode associated with this world. Episodes are different sessions of a simulation. These change every time a world is disabled or reloaded. Keeping track is useful to avoid possible issues.
|
||||
- <a name="carla.World.debug"></a>**<font color="#f8805a">debug</font>** (_[carla.DebugHelper](#carla.DebugHelper)_)
|
||||
Responsible for creating different shapes for debugging. Take a look at its class to learn more about it.
|
||||
|
||||
### Methods
|
||||
- <a name="carla.World.apply_color_texture_to_object"></a>**<font color="#7fb800">apply_color_texture_to_object</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**object_name**</font>, <font color="#00a6ed">**material_parameter**</font>, <font color="#00a6ed">**texture**</font>)
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
- **Parameters:**
|
||||
- `object_name` (_str_)
|
||||
- `material_parameter` (_[carla.MaterialParameter](#carla.MaterialParameter)_)
|
||||
- `texture` (_TextureColor_)
|
||||
- <a name="carla.World.apply_color_texture_to_objects"></a>**<font color="#7fb800">apply_color_texture_to_objects</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**objects_name_list**</font>, <font color="#00a6ed">**material_parameter**</font>, <font color="#00a6ed">**texture**</font>)
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
- **Parameters:**
|
||||
- `objects_name_list` (_list(str)_)
|
||||
- `material_parameter` (_[carla.MaterialParameter](#carla.MaterialParameter)_)
|
||||
- `texture` (_TextureColor_)
|
||||
- <a name="carla.World.apply_float_color_texture_to_object"></a>**<font color="#7fb800">apply_float_color_texture_to_object</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**object_name**</font>, <font color="#00a6ed">**material_parameter**</font>, <font color="#00a6ed">**texture**</font>)
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
- **Parameters:**
|
||||
- `object_name` (_str_)
|
||||
- `material_parameter` (_[carla.MaterialParameter](#carla.MaterialParameter)_)
|
||||
- `texture` (_TextureFloatColor_)
|
||||
- <a name="carla.World.apply_float_color_texture_to_objects"></a>**<font color="#7fb800">apply_float_color_texture_to_objects</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**objects_name_list**</font>, <font color="#00a6ed">**material_parameter**</font>, <font color="#00a6ed">**texture**</font>)
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
- **Parameters:**
|
||||
- `objects_name_list` (_list(str)_)
|
||||
- `material_parameter` (_[carla.MaterialParameter](#carla.MaterialParameter)_)
|
||||
|
@ -3705,7 +3718,7 @@ Loads the selected layers to the level. If the layer is already loaded the call
|
|||
- `map_layers` (_[carla.MapLayer](#carla.MapLayer)_) - Mask of level layers to be loaded.
|
||||
- **Warning:** <font color="#ED2F2F">_This only affects "Opt" maps. The minimum layout includes roads, sidewalks, traffic lights and traffic signs._</font>
|
||||
- <a name="carla.World.on_tick"></a>**<font color="#7fb800">on_tick</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**callback**</font>)
|
||||
This method is used in [__asynchronous__ mode](https://[carla.readthedocs.io](#carla.readthedocs.io)/en/latest/adv_synchrony_timestep/). It starts callbacks from the client for the function defined as `callback`, and returns the ID of the callback. The function will be called everytime the server ticks. It requires a [carla.WorldSnapshot](#carla.WorldSnapshot) as argument, which can be retrieved from __<font color="#7fb800">wait_for_tick()</font>__. Use __<font color="#7fb800">remove_on_tick()</font>__ to stop the callbacks.
|
||||
This method is used in [__asynchronous__ mode](https://[carla.readthedocs.io](#carla.readthedocs.io)/en/latest/adv_synchrony_timestep/). It starts callbacks from the client for the function defined as `callback`, and returns the ID of the callback. The function will be called every time the server ticks. It requires a [carla.WorldSnapshot](#carla.WorldSnapshot) as argument, which can be retrieved from __<font color="#7fb800">wait_for_tick()</font>__. Use __<font color="#7fb800">remove_on_tick()</font>__ to stop the callbacks.
|
||||
- **Parameters:**
|
||||
- `callback` (_[carla.WorldSnapshot](#carla.WorldSnapshot)_) - Function with a snapshot as compulsory parameter that will be called when the client receives a tick.
|
||||
- **Return:** _int_
|
||||
|
@ -3722,13 +3735,13 @@ Stops the callback for `callback_id` started with __<font color="#7fb800">on_tic
|
|||
- `callback_id` (_callback_) - The callback to be removed. The ID is returned when creating the callback.
|
||||
- <a name="carla.World.reset_all_traffic_lights"></a>**<font color="#7fb800">reset_all_traffic_lights</font>**(<font color="#00a6ed">**self**</font>)
|
||||
Resets the cycle of all traffic lights in the map to the initial state.
|
||||
- <a name="carla.World.spawn_actor"></a>**<font color="#7fb800">spawn_actor</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**blueprint**</font>, <font color="#00a6ed">**transform**</font>, <font color="#00a6ed">**attach_to**=None</font>, <font color="#00a6ed">**attachment**=Rigid</font>)<button class="SnipetButton" id="carla.World.spawn_actor-snipet_button">snippet →</button>
|
||||
- <a name="carla.World.spawn_actor"></a>**<font color="#7fb800">spawn_actor</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**blueprint**</font>, <font color="#00a6ed">**transform**</font>, <font color="#00a6ed">**attach_to**=None</font>, <font color="#00a6ed">**attachment_type**=Rigid</font>)<button class="SnipetButton" id="carla.World.spawn_actor-snipet_button">snippet →</button>
|
||||
The method will create, return and spawn an actor into the world. The actor will need an available blueprint to be created and a transform (location and rotation). It can also be attached to a parent with a certain attachment type.
|
||||
- **Parameters:**
|
||||
- `blueprint` (_[carla.ActorBlueprint](#carla.ActorBlueprint)_) - The reference from which the actor will be created.
|
||||
- `transform` (_[carla.Transform](#carla.Transform)_) - Contains the location and orientation the actor will be spawned with.
|
||||
- `attach_to` (_[carla.Actor](#carla.Actor)_) - The parent object that the spawned actor will follow around.
|
||||
- `attachment` (_[carla.AttachmentType](#carla.AttachmentType)_) - Determines how fixed and rigorous should be the changes in position according to its parent object.
|
||||
- `attachment_type` (_[carla.AttachmentType](#carla.AttachmentType)_) - Determines how fixed and rigorous should be the changes in position according to its parent object.
|
||||
- **Return:** _[carla.Actor](#carla.Actor)_
|
||||
- <a name="carla.World.tick"></a>**<font color="#7fb800">tick</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**seconds**=10.0</font>)
|
||||
This method is used in [__synchronous__ mode](https://[carla.readthedocs.io](#carla.readthedocs.io)/en/latest/adv_synchrony_timestep/), when the server waits for a client tick before computing the next frame. This method will send the tick, and give way to the server. It returns the ID of the new frame computed by the server.
|
||||
|
@ -3737,13 +3750,13 @@ This method is used in [__synchronous__ mode](https://[carla.readthedocs.io](#ca
|
|||
- **Return:** _int_
|
||||
- **Note:** <font color="#8E8E8E">_If no tick is received in synchronous mode, the simulation will freeze. Also, if many ticks are received from different clients, there may be synchronization issues. Please read the docs about [synchronous mode](https://[carla.readthedocs.io](#carla.readthedocs.io)/en/latest/adv_synchrony_timestep/) to learn more.
|
||||
_</font>
|
||||
- <a name="carla.World.try_spawn_actor"></a>**<font color="#7fb800">try_spawn_actor</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**blueprint**</font>, <font color="#00a6ed">**transform**</font>, <font color="#00a6ed">**attach_to**=None</font>, <font color="#00a6ed">**attachment**=Rigid</font>)
|
||||
- <a name="carla.World.try_spawn_actor"></a>**<font color="#7fb800">try_spawn_actor</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**blueprint**</font>, <font color="#00a6ed">**transform**</font>, <font color="#00a6ed">**attach_to**=None</font>, <font color="#00a6ed">**attachment_type**=Rigid</font>)
|
||||
Same as __<font color="#7fb800">spawn_actor()</font>__ but returns <b>None</b> on failure instead of throwing an exception.
|
||||
- **Parameters:**
|
||||
- `blueprint` (_[carla.ActorBlueprint](#carla.ActorBlueprint)_) - The reference from which the actor will be created.
|
||||
- `transform` (_[carla.Transform](#carla.Transform)_) - Contains the location and orientation the actor will be spawned with.
|
||||
- `attach_to` (_[carla.Actor](#carla.Actor)_) - The parent object that the spawned actor will follow around.
|
||||
- `attachment` (_[carla.AttachmentType](#carla.AttachmentType)_) - Determines how fixed and rigorous should be the changes in position according to its parent object.
|
||||
- `attachment_type` (_[carla.AttachmentType](#carla.AttachmentType)_) - Determines how fixed and rigorous should be the changes in position according to its parent object.
|
||||
- **Return:** _[carla.Actor](#carla.Actor)_
|
||||
- <a name="carla.World.unload_map_layer"></a>**<font color="#7fb800">unload_map_layer</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**map_layers**</font>)<button class="SnipetButton" id="carla.World.unload_map_layer-snipet_button">snippet →</button>
|
||||
Unloads the selected layers to the level. If the layer is already unloaded the call has no effect.
|
||||
|
@ -3846,10 +3859,10 @@ _</font>
|
|||
- <a name="carla.World.set_pedestrians_seed"></a>**<font color="#7fb800">set_pedestrians_seed</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**seed**</font>)
|
||||
- **Parameters:**
|
||||
- `seed` (_int_) - Sets the seed to use for any random number generated in relation to pedestrians.
|
||||
- **Note:** <font color="#8E8E8E">_Should be set before pedestrians are spawned. If you want to repeat the same exact bodies (blueprint) for each pedestrian, then use the same seed in the Python code (where the blueprint is choosen randomly) and here, otherwise the pedestrians will repeat the same paths but the bodies will be different.
|
||||
- **Note:** <font color="#8E8E8E">_Should be set before pedestrians are spawned. If you want to repeat the same exact bodies (blueprint) for each pedestrian, then use the same seed in the Python code (where the blueprint is chosen randomly) and here, otherwise the pedestrians will repeat the same paths but the bodies will be different.
|
||||
_</font>
|
||||
- <a name="carla.World.set_weather"></a>**<font color="#7fb800">set_weather</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**weather**</font>)
|
||||
Changes the weather parameteres ruling the simulation to another ones defined in an object.
|
||||
Changes the weather parameters ruling the simulation to another ones defined in an object.
|
||||
- **Parameters:**
|
||||
- `weather` (_[carla.WeatherParameters](#carla.WeatherParameters)_) - New conditions to be applied.
|
||||
- **Getter:** _[carla.World.get_weather](#carla.World.get_weather)_
|
||||
|
@ -3880,7 +3893,7 @@ The maximum number of physics substepping that are allowed. By default, the valu
|
|||
- <a name="carla.WorldSettings.max_culling_distance"></a>**<font color="#f8805a">max_culling_distance</font>** (_float_)
|
||||
Configure the max draw distance for each mesh of the level.
|
||||
- <a name="carla.WorldSettings.deterministic_ragdolls"></a>**<font color="#f8805a">deterministic_ragdolls</font>** (_bool_)
|
||||
Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation. When enabled, pedestrians have less realistic death animation but ensures determinism. When disabled, pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured.
|
||||
Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation. When enabled, pedestrians have less realistic death animation but ensures determinism. When disabled, pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinism can be ensured.
|
||||
- <a name="carla.WorldSettings.tile_stream_distance"></a>**<font color="#f8805a">tile_stream_distance</font>** (_float_)
|
||||
Used for large maps only. Configures the maximum distance from the hero vehicle to stream tiled maps. Regions of the map within this range will be visible (and capable of simulating physics). Regions outside this region will not be loaded.
|
||||
- <a name="carla.WorldSettings.actor_active_distance"></a>**<font color="#f8805a">actor_active_distance</font>** (_float_)
|
||||
|
@ -3922,6 +3935,8 @@ This snapshot comprises all the information for every actor on scene at a certai
|
|||
A value unique for every snapshot to differentiate them.
|
||||
- <a name="carla.WorldSnapshot.frame"></a>**<font color="#f8805a">frame</font>** (_int_)
|
||||
Simulation frame in which the snapshot was taken.
|
||||
- <a name="carla.WorldSnapshot.elapsed_seconds"></a>**<font color="#f8805a">elapsed_seconds</font>** (_float<small> - seconds</small>_)
|
||||
Simulated seconds elapsed since the beginning of the current episode.
|
||||
- <a name="carla.WorldSnapshot.timestamp"></a>**<font color="#f8805a">timestamp</font>** (_[carla.Timestamp](#carla.Timestamp)<small> - seconds</small>_)
|
||||
Precise moment in time when snapshot was taken. This class works in seconds as given by the operative system.
|
||||
|
||||
|
|
|
@ -736,7 +736,7 @@ The following tags are currently available (Note, tags changed from version 0.9.
|
|||
| `14` | Car | `(0, 0, 142)` | Cars, vans |
|
||||
| `15` | Truck | `(0, 0, 70)` | Trucks |
|
||||
| `16` | Bus | `(0, 60, 100)` | Busses |
|
||||
| `17` | Train | `(0, 60, 100)` | Trains |
|
||||
| `17` | Train | `(0, 80, 100)` | Trains |
|
||||
| `18` | Motorcycle | `(0, 0, 230)` | Motorcycle, Motorbike |
|
||||
| `19` | Bicycle | `(119, 11, 32)` | Bicylces |
|
||||
| `20` | Static | `(110, 190, 160)` | Elements in the scene and props that are immovable. <br> E.g. fire hydrants, fixed benches, fountains, bus stops, etc. |
|
||||
|
@ -940,21 +940,19 @@ While the visibility is simulated within CARLA, the scenario can be configured b
|
|||
* __Output:__ [carla.CAMData](python_api.md#carla.CAMData), triggered according to the ETSI CAM standard, unless configured otherwise
|
||||
|
||||
Triggering conditions according to ETSI standard:
|
||||
- Heading angle change > $4$°
|
||||
- Position difference > $4$ m
|
||||
- Speed change > $5$ m/s
|
||||
- Heading angle change > 4°
|
||||
- Position difference > 4 m
|
||||
- Speed change > 5 m/s
|
||||
- Time elapsed > CAM Generation time (configurable)
|
||||
- Low Frequency Container Time Elapsed $> 500$ ms
|
||||
- Low Frequency Container Time Elapsed > 500 ms
|
||||
|
||||
For the CAM V2X sensor, additional blueprint attributes apply:
|
||||
|
||||
| Blueprint attribute | Type | Default | Description |
|
||||
|-------------------------|--------|-------------------------|------------------------------------|
|
||||
| <td colspan=4> Message generation |
|
||||
| gen\_cam\_min | float | $0.1$ | Minimum elapsed time between two successive CAMs in seconds (s) |
|
||||
| gen\_cam\_max | float | $1.0$ | Maximum elapsed time between two successive CAMs in seconds (s) |
|
||||
| gen\_cam\_min | float | 0.1 | Minimum elapsed time between two successive CAMs in seconds (s) |
|
||||
| gen\_cam\_max | float | 1.0 | Maximum elapsed time between two successive CAMs in seconds (s) |
|
||||
| fixed\_rate | bool | false [true] | Generate a CAM in every CARLA tick (only for debug purposes, will result in slowdown) |
|
||||
| <td colspan=4> Data generation |
|
||||
| `noise_vel_stddev_x` | float | 0\.0 | Standard deviation parameter in the noise model for velocity (X axis). |
|
||||
| `noise_accel_stddev_x` | float | 0\.0 | Standard deviation parameter in the noise model for acceleration (X axis). |
|
||||
| `noise_accel_stddev_y` | float | 0\.0 | Standard deviation parameter in the noise model for acceleration (Y axis). |
|
||||
|
@ -993,14 +991,14 @@ Example:
|
|||
|
||||
| Blueprint attribute | Type | Default | Description |
|
||||
|-------------------------|--------|-------------------------|------------------------------------|
|
||||
| transmit\_power | float | $21.5$ | Sender transmission power in dBm |
|
||||
| receiver\_sensitivity | float | $-99$ | Receiver sensitivity in dBm |
|
||||
| frequency\_ghz | float | $5.9$ | Transmission frequency in GHz. 5.9 GHz is standard for several physical channels. |
|
||||
| noise\_seed | int | $0$ | Random parameter for initialization of noise |
|
||||
| filter\_distance | float | $500$ | Maximum transmission distance in meter, path loss calculations above are skipped for simulation speed |
|
||||
| <td colspan=4> __Path loss model parameters__ |
|
||||
| combined\_antenna\_gain | float | $10.0$ | Combined gain of sender and receiver antennas in dBi, parameter for radiation efficiency and directivity |
|
||||
| d\_ref | float | $ 1.0 $ | reference distance for Log-distance path loss model in meter |
|
||||
| transmit\_power | float | 21.5 | Sender transmission power in dBm |
|
||||
| receiver\_sensitivity | float | -99 | Receiver sensitivity in dBm |
|
||||
| frequency\_ghz | float | 5.9 | Transmission frequency in GHz. 5.9 GHz is standard for several physical channels. |
|
||||
| noise\_seed | int | 0 | Random parameter for initialization of noise |
|
||||
| filter\_distance | float | 500 | Maximum transmission distance in meter, path loss calculations above are skipped for simulation speed |
|
||||
| __Path loss model parameters__ | | | |
|
||||
| combined\_antenna\_gain | float | 10.0 | Combined gain of sender and receiver antennas in dBi, parameter for radiation efficiency and directivity |
|
||||
| d\_ref | float | 1.0 | reference distance for Log-distance path loss model in meter |
|
||||
| path\_loss\_exponent | float | 2.7 | Loss parameter for non-line of sight due to building obstruction |
|
||||
| scenario | string | urban | Options: [urban, rural, highway], defines the fading noise parameters |
|
||||
| path\_loss\_model | string | geometric | general path loss model to be used. Options: [geometric, winner] |
|
||||
|
|
|
@ -88,6 +88,12 @@ namespace detail {
|
|||
const auto id = GetCurrentEpisode().GetId();
|
||||
_client.LoadEpisode(std::move(map_name), reset_settings, map_layers);
|
||||
|
||||
// delete the pointer to _episode so that the Navigation information
|
||||
// will be loaded for the correct map
|
||||
assert(_episode.use_count() == 1);
|
||||
_episode.reset();
|
||||
GetReadyCurrentEpisode();
|
||||
|
||||
// We are waiting 50ms for the server to reload the episode.
|
||||
// If in this time we have not detected a change of episode, we try again
|
||||
// 'number_of_attempts' times.
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <boost/asio/connect.hpp>
|
||||
#include <boost/asio/read.hpp>
|
||||
#include <boost/asio/write.hpp>
|
||||
#include <boost/asio/post.hpp>
|
||||
#include <boost/asio/bind_executor.hpp>
|
||||
|
||||
#include <exception>
|
||||
|
@ -86,7 +85,6 @@ namespace tcp {
|
|||
|
||||
void Client::Connect() {
|
||||
auto self = shared_from_this();
|
||||
boost::asio::post(_strand, [this, self]() {
|
||||
if (_done) {
|
||||
return;
|
||||
}
|
||||
|
@ -139,18 +137,15 @@ namespace tcp {
|
|||
|
||||
log_debug("streaming client: connecting to", ep);
|
||||
_socket.async_connect(ep, boost::asio::bind_executor(_strand, handle_connect));
|
||||
});
|
||||
}
|
||||
|
||||
void Client::Stop() {
|
||||
_connection_timer.cancel();
|
||||
auto self = shared_from_this();
|
||||
boost::asio::post(_strand, [this, self]() {
|
||||
_done = true;
|
||||
if (_socket.is_open()) {
|
||||
_socket.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void Client::Reconnect() {
|
||||
|
@ -165,7 +160,6 @@ namespace tcp {
|
|||
|
||||
void Client::ReadData() {
|
||||
auto self = shared_from_this();
|
||||
boost::asio::post(_strand, [this, self]() {
|
||||
if (_done) {
|
||||
return;
|
||||
}
|
||||
|
@ -182,7 +176,7 @@ namespace tcp {
|
|||
// Move the buffer to the callback function and start reading the next
|
||||
// piece of data.
|
||||
// log_debug("streaming client: success reading data, calling the callback");
|
||||
boost::asio::post(_strand, [self, message]() { self->_callback(message->pop()); });
|
||||
self->_callback(message->pop());
|
||||
ReadData();
|
||||
} else {
|
||||
// As usual, if anything fails start over from the very top.
|
||||
|
@ -219,7 +213,6 @@ namespace tcp {
|
|||
_socket,
|
||||
message->size_as_buffer(),
|
||||
boost::asio::bind_executor(_strand, handle_read_header));
|
||||
});
|
||||
}
|
||||
|
||||
} // namespace tcp
|
||||
|
|
|
@ -79,7 +79,6 @@ namespace tcp {
|
|||
DEBUG_ASSERT(message != nullptr);
|
||||
DEBUG_ASSERT(!message->empty());
|
||||
auto self = shared_from_this();
|
||||
boost::asio::post(_strand, [=]() {
|
||||
if (!_socket.is_open()) {
|
||||
return;
|
||||
}
|
||||
|
@ -111,11 +110,8 @@ namespace tcp {
|
|||
log_debug("session", _session_id, ": sending message of", message->size(), "bytes");
|
||||
|
||||
_deadline.expires_from_now(_timeout);
|
||||
boost::asio::async_write(
|
||||
_socket,
|
||||
message->GetBufferSequence(),
|
||||
handle_sent);
|
||||
});
|
||||
boost::asio::async_write(_socket, message->GetBufferSequence(),
|
||||
boost::asio::bind_executor(_strand, handle_sent));
|
||||
}
|
||||
|
||||
void ServerSession::Close() {
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"""
|
||||
This module implements an agent that roams around a track following random
|
||||
waypoints and avoiding other vehicles. The agent also responds to traffic lights.
|
||||
It can also make use of the global route planner to follow a specifed route
|
||||
It can also make use of the global route planner to follow a specified route
|
||||
"""
|
||||
|
||||
import carla
|
||||
|
@ -31,7 +31,7 @@ class BasicAgent(object):
|
|||
|
||||
def __init__(self, vehicle, target_speed=20, opt_dict={}, map_inst=None, grp_inst=None):
|
||||
"""
|
||||
Initialization the agent paramters, the local and the global planner.
|
||||
Initialization the agent parameters, the local and the global planner.
|
||||
|
||||
:param vehicle: actor to apply to agent logic onto
|
||||
:param target_speed: speed (in Km/h) at which the vehicle will move
|
||||
|
@ -102,7 +102,7 @@ class BasicAgent(object):
|
|||
|
||||
# Get the static elements of the scene
|
||||
self._lights_list = self._world.get_actors().filter("*traffic_light*")
|
||||
self._lights_map = {} # Dictionary mapping a traffic light to a wp corrspoing to its trigger volume location
|
||||
self._lights_map = {} # Dictionary mapping a traffic light to a wp corresponding to its trigger volume location
|
||||
|
||||
def add_emergency_stop(self, control):
|
||||
"""
|
||||
|
@ -325,7 +325,7 @@ class BasicAgent(object):
|
|||
"""
|
||||
Method to check if there is a vehicle in front of the agent blocking its path.
|
||||
|
||||
:param vehicle_list (list of carla.Vehicle): list contatining vehicle objects.
|
||||
:param vehicle_list (list of carla.Vehicle): list containing vehicle objects.
|
||||
If None, all vehicle in the scene are used
|
||||
:param max_distance: max freespace to check for obstacles.
|
||||
If None, the base threshold value is used
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"""
|
||||
This module implements an agent that roams around a track following random
|
||||
waypoints and avoiding other vehicles. The agent also responds to traffic lights.
|
||||
It can also make use of the global route planner to follow a specifed route
|
||||
It can also make use of the global route planner to follow a specified route
|
||||
"""
|
||||
|
||||
import carla
|
||||
|
|
|
@ -199,7 +199,7 @@ class PIDLateralController():
|
|||
def run_step(self, waypoint):
|
||||
"""
|
||||
Execute one step of lateral control to steer
|
||||
the vehicle towards a certain waypoin.
|
||||
the vehicle towards a certain waypoint.
|
||||
|
||||
:param waypoint: target waypoint
|
||||
:return: steering control in the range [-1, 1] where:
|
||||
|
|
|
@ -151,7 +151,7 @@ class LocalPlanner(object):
|
|||
|
||||
def follow_speed_limits(self, value=True):
|
||||
"""
|
||||
Activates a flag that makes the max speed dynamically vary according to the spped limits
|
||||
Activates a flag that makes the max speed dynamically vary according to the speed limits
|
||||
|
||||
:param value: bool
|
||||
:return:
|
||||
|
@ -316,7 +316,7 @@ def _retrieve_options(list_waypoints, current_waypoint):
|
|||
options = []
|
||||
for next_waypoint in list_waypoints:
|
||||
# this is needed because something we are linking to
|
||||
# the beggining of an intersection, therefore the
|
||||
# the beginning of an intersection, therefore the
|
||||
# variation in angle is small
|
||||
next_next_waypoint = next_waypoint.next(3.0)[0]
|
||||
link = _compute_connection(current_waypoint, next_next_waypoint)
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -120,30 +120,30 @@
|
|||
return: carla.Vector3D
|
||||
return_units: m/s<sup>2</sup>
|
||||
doc: >
|
||||
Returns the actor's 3D acceleration vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's 3D acceleration vector the client received during last tick. The method does not call the simulator.
|
||||
# --------------------------------------
|
||||
- def_name: get_angular_velocity
|
||||
return: carla.Vector3D
|
||||
return_units: deg/s
|
||||
doc: >
|
||||
Returns the actor's angular velocity vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's angular velocity vector the client received during last tick. The method does not call the simulator.
|
||||
# --------------------------------------
|
||||
- def_name: get_location
|
||||
return: carla.Location
|
||||
return_units: meters
|
||||
doc: >
|
||||
Returns the actor's location the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's location the client received during last tick. The method does not call the simulator.
|
||||
# --------------------------------------
|
||||
- def_name: get_transform
|
||||
return: carla.Transform
|
||||
doc: >
|
||||
Returns the actor's transform (location and rotation) the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's transform (location and rotation) the client received during last tick. The method does not call the simulator.
|
||||
# --------------------------------------
|
||||
- def_name: get_velocity
|
||||
return: carla.Vector3D
|
||||
return_units: m/s
|
||||
doc: >
|
||||
Returns the actor's velocity vector the client recieved during last tick. The method does not call the simulator.
|
||||
Returns the actor's velocity vector the client received during last tick. The method does not call the simulator.
|
||||
# --------------------------------------
|
||||
- def_name: get_world
|
||||
return: carla.World
|
||||
|
@ -252,7 +252,7 @@
|
|||
parent: carla.Actor
|
||||
# - DESCRIPTION ------------------------
|
||||
doc: >
|
||||
One of the most important groups of actors in CARLA. These include any type of vehicle from cars to trucks, motorbikes, vans, bycicles and also official vehicles such as police cars. A wide set of these actors is provided in carla.BlueprintLibrary to facilitate differente requirements. Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client-side by the <b>traffic manager</b>.
|
||||
One of the most important groups of actors in CARLA. These include any type of vehicle from cars to trucks, motorbikes, vans, bicycles and also official vehicles such as police cars. A wide set of these actors is provided in carla.BlueprintLibrary to facilitate different requirements. Vehicles can be either manually controlled or set to an autopilot mode that will be conducted client-side by the <b>traffic manager</b>.
|
||||
# - PROPERTIES -------------------------
|
||||
instance_variables:
|
||||
- var_name: bounding_box
|
||||
|
@ -591,7 +591,7 @@
|
|||
parent: carla.TrafficSign
|
||||
# - DESCRIPTION ------------------------
|
||||
doc: >
|
||||
A traffic light actor, considered a specific type of traffic sign. As traffic lights will mostly appear at junctions, they belong to a group which contains the different traffic lights in it. Inside the group, traffic lights are differenciated by their pole index.
|
||||
A traffic light actor, considered a specific type of traffic sign. As traffic lights will mostly appear at junctions, they belong to a group which contains the different traffic lights in it. Inside the group, traffic lights are differentiated by their pole index.
|
||||
|
||||
Within a group the state of traffic lights is changed in a cyclic pattern: one index is chosen and it spends a few seconds in green, yellow and eventually red. The rest of the traffic lights remain frozen in red this whole time, meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red. However, the state of a traffic light can be changed manually.
|
||||
# - PROPERTIES -------------------------
|
||||
|
|
|
@ -23,7 +23,7 @@ except IndexError:
|
|||
print(" .---------------------------------------------------.")
|
||||
print(" | Make sure the python client is compiled! |")
|
||||
print(" '---------------------------------------------------'\n")
|
||||
# We don't provide an error to prvent Travis checks failing
|
||||
# We don't provide an error to prevent Travis checks failing
|
||||
sys.exit(0)
|
||||
|
||||
import carla
|
||||
|
|
|
@ -41,6 +41,11 @@
|
|||
type: list
|
||||
doc: >
|
||||
A list of commands to execute in batch. Each command is different and has its own parameters. They appear listed at the bottom of this page.
|
||||
- param_name: do_tick
|
||||
type: bool
|
||||
default: false
|
||||
doc: >
|
||||
A boolean parameter to specify whether or not to perform a carla.World.tick after applying the batch in _synchronous mode_. Defaults to __False__.
|
||||
doc: >
|
||||
Executes a list of commands on a single simulation step and retrieves no information. If you need information about the response of each command, use the __<font color="#7fb800">apply_batch_sync()</font>__ method.
|
||||
[Here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/generate_traffic.py) is an example on how to delete the actors that appear in carla.ActorList all at once.
|
||||
|
@ -51,11 +56,11 @@
|
|||
type: list
|
||||
doc: >
|
||||
A list of commands to execute in batch. The commands available are listed right above, in the method **<font color="#7fb800">apply_batch()</font>**.
|
||||
- param_name: due_tick_cue
|
||||
- param_name: do_tick
|
||||
type: bool
|
||||
default: false
|
||||
doc: >
|
||||
A boolean parameter to specify whether or not to perform a carla.World.tick after applying the batch in _synchronous mode_. It is __False__ by default.
|
||||
A boolean parameter to specify whether or not to perform a carla.World.tick after applying the batch in _synchronous mode_. Defaults to __False__.
|
||||
return: list(command.Response)
|
||||
doc: >
|
||||
Executes a list of commands on a single simulation step, blocks until the commands are linked, and returns a list of <b>command.Response</b> that can be used to determine whether a single command succeeded or not. [Here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/generate_traffic.py) is an example of it being used to spawn actors.
|
||||
|
@ -169,6 +174,7 @@
|
|||
ID of the actor to follow. If this is 0 then camera is disabled.
|
||||
- param_name: replay_sensors
|
||||
type: bool
|
||||
default: false
|
||||
doc: >
|
||||
Flag to enable or disable the spawn of sensors during playback.
|
||||
doc: >
|
||||
|
@ -793,4 +799,36 @@
|
|||
- var_name: enable_pedestrian_navigation
|
||||
type: bool
|
||||
doc: >
|
||||
If __True__, Pedestrian navigation will be enabled using Recast tool. For very large maps it is recomended to disable this option. __Default is `True`__.
|
||||
If __True__, Pedestrian navigation will be enabled using Recast tool. For very large maps it is recommended to disable this option. __Default is `True`__.
|
||||
# - METHODS ----------------------------
|
||||
methods:
|
||||
- def_name: __init__
|
||||
params:
|
||||
- param_name: vertex_distance
|
||||
type: float
|
||||
param_units: meters
|
||||
default: 2.0
|
||||
- param_name: max_road_length
|
||||
type: float
|
||||
param_units: meters
|
||||
default: 50.0
|
||||
- param_name: wall_height
|
||||
type: float
|
||||
param_units: meters
|
||||
default: 1.0
|
||||
- param_name: additional_width
|
||||
type: float
|
||||
param_units: meters
|
||||
default: 0.6
|
||||
- param_name: smooth_junctions
|
||||
type: bool
|
||||
default: true
|
||||
- param_name: enable_mesh_visibility
|
||||
type: bool
|
||||
default: true
|
||||
- param_name: enable_pedestrian_navigation
|
||||
type: bool
|
||||
default: true
|
||||
doc: >
|
||||
OpendriveGenerationParameters constructor
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ class MarkdownFile:
|
|||
|
||||
def first_title(self):
|
||||
self._data = join([
|
||||
self._data, '#Python API reference\n'])
|
||||
self._data, '# Python API reference\n'])
|
||||
|
||||
def title(self, strongness, buf):
|
||||
self._data = join([
|
||||
|
|
|
@ -328,7 +328,7 @@
|
|||
Class that represents a 3D rotation and therefore, an orientation in space. CARLA uses the Unreal Engine coordinates system. This is a Z-up left-handed system. <br>
|
||||
|
||||
<br>The constructor method follows a specific order of declaration: `(pitch, yaw, roll)`, which corresponds to `(Y-rotation,Z-rotation,X-rotation)`. <br>
|
||||
<br>![UE4_Rotation](https://d26ilriwvtzlb.cloudfront.net/8/83/BRMC_9.jpg)
|
||||
<br>![UE4_Rotation](/img/unreal_lhcs.png)
|
||||
*Unreal Engine's coordinates system*
|
||||
# - PROPERTIES -------------------------
|
||||
instance_variables:
|
||||
|
@ -438,20 +438,29 @@
|
|||
- def_name: transform
|
||||
params:
|
||||
- param_name: in_point
|
||||
type: carla.Location
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Location in the space to which the transformation will be applied.
|
||||
doc: >
|
||||
Translates a 3D point from local to global coordinates using the current transformation as frame of reference.
|
||||
Translates a 3D point in place from local to global coordinates using the current transformation as frame of reference.
|
||||
# --------------------------------------
|
||||
- def_name: inverse_transform
|
||||
params:
|
||||
- param_name: in_point
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Location in the space to which the inverse transformation will be applied.
|
||||
doc: >
|
||||
Applies the inverse of `transform` by translating a 3D point in place from global to local coordinates using the current transformation as frame of reference.
|
||||
# --------------------------------------
|
||||
- def_name: transform_vector
|
||||
params:
|
||||
- param_name: in_vector
|
||||
- param_name: in_point
|
||||
type: carla.Vector3D
|
||||
doc: >
|
||||
Vector to which the transformation will be applied.
|
||||
doc: >
|
||||
Rotates a vector using the current transformation as frame of reference, without applying translation. Use this to transform, for example, a velocity.
|
||||
Rotates a vector in place using the current transformation as frame of reference, without applying translation. Use this to transform, for example, a velocity.
|
||||
# --------------------------------------
|
||||
- def_name: get_forward_vector
|
||||
return: carla.Vector3D
|
||||
|
|
|
@ -26,10 +26,6 @@
|
|||
- [V2X sensor](ref_sensors.md#v2x-sensor)
|
||||
# - PROPERTIES -------------------------
|
||||
instance_variables:
|
||||
- var_name: is_listening
|
||||
type: boolean
|
||||
doc: >
|
||||
When **True** the sensor will be waiting for data.
|
||||
# - METHODS ----------------------------
|
||||
methods:
|
||||
- def_name: listen
|
||||
|
|
|
@ -880,7 +880,7 @@
|
|||
- class_name: GBufferTextureID
|
||||
# - DESCRIPTION ------------------------
|
||||
doc: >
|
||||
Defines the of each GBuffer texture (See the method `carla.Sensor.listen_to_gbuffer`).
|
||||
Defines the identifiers of each GBuffer texture (See the method carla.Sensor.listen_to_gbuffer).
|
||||
# - PROPERTIES -------------------------
|
||||
instance_variables:
|
||||
- var_name: SceneColor
|
||||
|
|
|
@ -17,6 +17,11 @@
|
|||
type: int
|
||||
doc: >
|
||||
Simulation frame in which the snapshot was taken.
|
||||
- var_name: elapsed_seconds
|
||||
type: float
|
||||
var_units: seconds
|
||||
doc: >
|
||||
Simulated seconds elapsed since the beginning of the current episode.
|
||||
- var_name: timestamp
|
||||
type: carla.Timestamp
|
||||
var_units: seconds
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
# - DESCRIPTION ------------------------
|
||||
doc: >
|
||||
This class defines objects containing lighting and weather specifications that can later be applied in carla.World. So far, these conditions only intervene with [sensor.camera.rgb](ref_sensors.md#rgb-camera). They neither affect the actor's physics nor other sensors.
|
||||
Each of these parameters acts indepently from the rest. Increasing the rainfall will not automatically create puddles nor change the road's humidity. That makes for a better customization but means that realistic conditions need to be scripted. However an example of dynamic weather conditions working realistically can be found [here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/dynamic_weather.py).
|
||||
Each of these parameters acts independently from the rest. Increasing the rainfall will not automatically create puddles nor change the road's humidity. That makes for a better customization but means that realistic conditions need to be scripted. However an example of dynamic weather conditions working realistically can be found [here](https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/dynamic_weather.py).
|
||||
# - PROPERTIES -------------------------
|
||||
instance_variables:
|
||||
- var_name: cloudiness
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
doc: >
|
||||
Defines wether to use deterministic physics for pedestrian death animations or physical ragdoll simulation.
|
||||
When enabled, pedestrians have less realistic death animation but ensures determinism.
|
||||
When disabled, pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinsm can be ensured.
|
||||
When disabled, pedestrians are simulated as ragdolls with more realistic simulation and collision but no determinism can be ensured.
|
||||
- var_name: tile_stream_distance
|
||||
type: float
|
||||
doc: >
|
||||
|
@ -460,7 +460,7 @@
|
|||
- var_name: id
|
||||
type: int
|
||||
doc: >
|
||||
The ID of the episode associated with this world. Episodes are different sessions of a simulation. These change everytime a world is disabled or reloaded. Keeping track is useful to avoid possible issues.
|
||||
The ID of the episode associated with this world. Episodes are different sessions of a simulation. These change every time a world is disabled or reloaded. Keeping track is useful to avoid possible issues.
|
||||
- var_name: debug
|
||||
type: carla.DebugHelper
|
||||
doc: >
|
||||
|
@ -485,7 +485,7 @@
|
|||
doc: >
|
||||
Function with a snapshot as compulsory parameter that will be called when the client receives a tick.
|
||||
doc: >
|
||||
This method is used in [__asynchronous__ mode](https://carla.readthedocs.io/en/latest/adv_synchrony_timestep/). It starts callbacks from the client for the function defined as `callback`, and returns the ID of the callback. The function will be called everytime the server ticks. It requires a carla.WorldSnapshot as argument, which can be retrieved from __<font color="#7fb800">wait_for_tick()</font>__. Use __<font color="#7fb800">remove_on_tick()</font>__ to stop the callbacks.
|
||||
This method is used in [__asynchronous__ mode](https://carla.readthedocs.io/en/latest/adv_synchrony_timestep/). It starts callbacks from the client for the function defined as `callback`, and returns the ID of the callback. The function will be called every time the server ticks. It requires a carla.WorldSnapshot as argument, which can be retrieved from __<font color="#7fb800">wait_for_tick()</font>__. Use __<font color="#7fb800">remove_on_tick()</font>__ to stop the callbacks.
|
||||
# --------------------------------------
|
||||
- def_name: remove_on_tick
|
||||
params:
|
||||
|
@ -538,7 +538,7 @@
|
|||
default: None
|
||||
doc: >
|
||||
The parent object that the spawned actor will follow around.
|
||||
- param_name: attachment
|
||||
- param_name: attachment_type
|
||||
type: carla.AttachmentType
|
||||
default: Rigid
|
||||
doc: >
|
||||
|
@ -562,7 +562,7 @@
|
|||
default: None
|
||||
doc: >
|
||||
The parent object that the spawned actor will follow around.
|
||||
- param_name: attachment
|
||||
- param_name: attachment_type
|
||||
type: carla.AttachmentType
|
||||
default: Rigid
|
||||
doc: >
|
||||
|
@ -744,7 +744,7 @@
|
|||
doc: >
|
||||
New conditions to be applied.
|
||||
doc: >
|
||||
Changes the weather parameteres ruling the simulation to another ones defined in an object.
|
||||
Changes the weather parameters ruling the simulation to another ones defined in an object.
|
||||
# --------------------------------------
|
||||
- def_name: cast_ray
|
||||
return: list(carla.LabelledPoint)
|
||||
|
@ -831,7 +831,7 @@
|
|||
Sets the seed to use for any random number generated in relation to pedestrians.
|
||||
note: >
|
||||
Should be set before pedestrians are spawned.
|
||||
If you want to repeat the same exact bodies (blueprint) for each pedestrian, then use the same seed in the Python code (where the blueprint is choosen randomly) and here, otherwise the pedestrians will repeat the same paths but the bodies will be different.
|
||||
If you want to repeat the same exact bodies (blueprint) for each pedestrian, then use the same seed in the Python code (where the blueprint is chosen randomly) and here, otherwise the pedestrians will repeat the same paths but the bodies will be different.
|
||||
# --------------------------------------
|
||||
- def_name: apply_color_texture_to_object
|
||||
params:
|
||||
|
@ -842,7 +842,7 @@
|
|||
- param_name: texture
|
||||
type: TextureColor
|
||||
doc: >
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
# --------------------------------------
|
||||
- def_name: apply_float_color_texture_to_object
|
||||
params:
|
||||
|
@ -853,7 +853,7 @@
|
|||
- param_name: texture
|
||||
type: TextureFloatColor
|
||||
doc: >
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to `object_name`.
|
||||
# --------------------------------------
|
||||
- def_name: apply_textures_to_object
|
||||
params:
|
||||
|
@ -879,7 +879,7 @@
|
|||
- param_name: texture
|
||||
type: TextureColor
|
||||
doc: >
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
# --------------------------------------
|
||||
- def_name: apply_float_color_texture_to_objects
|
||||
params:
|
||||
|
@ -890,7 +890,7 @@
|
|||
- param_name: texture
|
||||
type: TextureFloatColor
|
||||
doc: >
|
||||
Applies a `texture` object in the field corresponfing to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
Applies a `texture` object in the field corresponding to `material_parameter` (normal, diffuse, etc) to the object in the scene corresponding to all objects in `objects_name_list`.
|
||||
# --------------------------------------
|
||||
- def_name: apply_textures_to_objects
|
||||
params:
|
||||
|
|
|
@ -685,11 +685,11 @@ class HUD(object):
|
|||
self._show_ackermann_info = False
|
||||
self._ackermann_control = carla.VehicleAckermannControl()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
self._notifications.tick(world, clock)
|
||||
|
|
|
@ -282,12 +282,12 @@ class HUD(object):
|
|||
self._info_text = []
|
||||
self._server_clock = pygame.time.Clock()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
"""Gets informations from the world at every tick"""
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame_count
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
"""HUD method for every tick"""
|
||||
|
|
|
@ -685,11 +685,12 @@ class HUD(object):
|
|||
self._show_ackermann_info = False
|
||||
self._ackermann_control = carla.VehicleAckermannControl()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
self._notifications.tick(world, clock)
|
||||
|
|
|
@ -575,11 +575,12 @@ class HUD(object):
|
|||
self._info_text = []
|
||||
self._server_clock = pygame.time.Clock()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
self._notifications.tick(world, clock)
|
||||
|
|
|
@ -594,11 +594,12 @@ class HUD(object):
|
|||
self._info_text = []
|
||||
self._server_clock = pygame.time.Clock()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
self._notifications.tick(world, clock)
|
||||
|
|
|
@ -399,11 +399,12 @@ class HUD(object):
|
|||
self._info_text = []
|
||||
self._server_clock = pygame.time.Clock()
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, world, clock):
|
||||
self._notifications.tick(world, clock)
|
||||
|
|
|
@ -993,7 +993,7 @@ class World(object):
|
|||
|
||||
# Register event for receiving server tick
|
||||
weak_self = weakref.ref(self)
|
||||
self.world.on_tick(lambda timestamp: World.on_world_tick(weak_self, timestamp))
|
||||
self.world.on_tick(lambda world_snapshot: World.on_world_tick(weak_self, world_snapshot))
|
||||
|
||||
def select_hero_actor(self):
|
||||
"""Selects only one hero actor if there are more than one. If there are not any, it will spawn one."""
|
||||
|
@ -1081,7 +1081,7 @@ class World(object):
|
|||
self._hud.add_info('HERO', hero_mode_text)
|
||||
|
||||
@staticmethod
|
||||
def on_world_tick(weak_self, timestamp):
|
||||
def on_world_tick(weak_self, world_snapshot):
|
||||
"""Updates the server tick"""
|
||||
self = weak_self()
|
||||
if not self:
|
||||
|
@ -1089,7 +1089,7 @@ class World(object):
|
|||
|
||||
self.server_clock.tick()
|
||||
self.server_fps = self.server_clock.get_fps()
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def _show_nearby_vehicles(self, vehicles):
|
||||
"""Shows nearby vehicles of the hero actor"""
|
||||
|
|
|
@ -616,11 +616,12 @@ class HUD(object):
|
|||
self._server_clock = pygame.time.Clock()
|
||||
self.rss_state_visualizer = RssStateVisualizer(self.dim, self._font_mono, self._world)
|
||||
|
||||
def on_world_tick(self, timestamp):
|
||||
def on_world_tick(self, world_snapshot):
|
||||
"""Gets information from the world at every tick"""
|
||||
self._server_clock.tick()
|
||||
self.server_fps = self._server_clock.get_fps()
|
||||
self.frame = timestamp.frame
|
||||
self.simulation_time = timestamp.elapsed_seconds
|
||||
self.frame = world_snapshot.frame
|
||||
self.simulation_time = world_snapshot.elapsed_seconds
|
||||
|
||||
def tick(self, player, clock):
|
||||
self._notifications.tick(clock)
|
||||
|
|
|
@ -138,7 +138,7 @@ LibCarla.client.rss.release: setup ad-rss
|
|||
plugins:
|
||||
@${CARLA_BUILD_TOOLS_FOLDER}/Plugins.sh $(ARGS)
|
||||
|
||||
setup downloadplugins:
|
||||
setup: downloadplugins
|
||||
@${CARLA_BUILD_TOOLS_FOLDER}/Setup.sh $(ARGS)
|
||||
|
||||
ad-rss:
|
||||
|
|
Loading…
Reference in New Issue