Fdomf/docs (#1883)

* Updated documentation and improvements

* Bp doc generator

* Updated
This commit is contained in:
Francesc Domene 2019-07-26 11:25:49 +02:00 committed by bernat
parent 47cfba6c54
commit a91f0da4b4
17 changed files with 430 additions and 56 deletions

View File

@ -68,6 +68,6 @@ members of the project's leadership.
## Attribution ## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>
[homepage]: https://www.contributor-covenant.org [homepage]: https://www.contributor-covenant.org

View File

@ -43,11 +43,14 @@ GitHub or locally in your machine.
Once you are done with your changes, please submit a pull-request. Once you are done with your changes, please submit a pull-request.
**TIP:** You can build and serve it locally by running `mkdocs` in the project's !!! tip
main folder You can build and serve it locally by running `mkdocs` in the project's
main folder
$ sudo pip install mkdocs ```sh
$ mkdocs serve > sudo pip install mkdocs
> mkdocs serve
```
Code contributions Code contributions
------------------ ------------------
@ -56,12 +59,12 @@ So you are considering making a code contribution, great! we love to have
contributions from the community. contributions from the community.
Before starting hands-on on coding, please check out our Before starting hands-on on coding, please check out our
[issue board][wafflelink] to see if we are already working on that, it would [issue board][issueboard] to see if we are already working on that, it would
be a pity putting an effort into something just to discover that someone else be a pity putting an effort into something just to discover that someone else
was already working on that. In case of doubt or to discuss how to proceed, was already working on that. In case of doubt or to discuss how to proceed,
please contact one of us (or send an email to carla.simulator@gmail.com). please contact one of us (or send an email to <carla.simulator@gmail.com>).
[wafflelink]: https://waffle.io/carla-simulator/carla [issueboard]: https://github.com/carla-simulator/carla/issues
#### Where can I learn more about Unreal Engine? #### Where can I learn more about Unreal Engine?
@ -82,27 +85,6 @@ to hold the new feature. We are aware the developers documentation is still
scarce, please ask us in case of doubt, and of course don't hesitate to improve scarce, please ask us in case of doubt, and of course don't hesitate to improve
the current documentation if you feel confident enough. the current documentation if you feel confident enough.
#### Are there any examples in CARLA to see how Unreal programming works?
You can find an example of how C++ classes work in UE4 in
[`ASceneCaptureToDiskCamera`][capturelink] (and its parent class
`ASceneCaptureCamera`). This class creates an actor that can be dropped into the
scene. In the editor, type _"Scene Capture To Disk"_ in the Modes tab, and drag
and drop the actor into the scene. Now searching for its detail tab you can find
all the `UPROPERTY` members reflected. This shows the basic mechanism to use C++
classes in Unreal Editor.
For a more advanced example on how to extend C++ classes with blueprints, you
can take a look at the _"VehicleSpawner"_ blueprint. It derives from the C++
class `AVehicleSpawnerBase`. The C++ class decides where and when it spawns a
vehicle, then calls the function `SpawnVehicle()`, which is implemented in the
blueprint. The blueprint then decides model and color of the vehicle being
spawned. Note that the blueprint can call back C++ functions, for instance for
getting the random engine. This way there is a back-and-forth communication
between C++ code and blueprints.
[capturelink]: https://github.com/carla-simulator/carla/blob/master/Unreal/CarlaUE4/Plugins/Carla/Source/Carla/Sensor/SceneCaptureToDiskCamera.h
#### Coding standard #### Coding standard
Please follow the current [coding standard](coding_standard.md) when submitting Please follow the current [coding standard](coding_standard.md) when submitting

View File

@ -4,7 +4,8 @@
The main objective for importing and exporting assets is to reduce the size of the distribution build. This is possible since these assets will be imported as independent packages that can be plugged in anytime inside Carla and also exported. The main objective for importing and exporting assets is to reduce the size of the distribution build. This is possible since these assets will be imported as independent packages that can be plugged in anytime inside Carla and also exported.
<h4>How to import assets inside Unreal Engine</h4> How to import assets inside Unreal Engine
-----------------------------------------
The first step is to create an empty folder inside the Carla `Import` folder and rename it with any folder name desired. For simplifying this newly created folder structure, we recommend having as many subfolders as maps to import and one single subfolder containing all the props to import. Inside each subfolder, we will place all the files needed for importing. The first step is to create an empty folder inside the Carla `Import` folder and rename it with any folder name desired. For simplifying this newly created folder structure, we recommend having as many subfolders as maps to import and one single subfolder containing all the props to import. Inside each subfolder, we will place all the files needed for importing.
So basically, for a **map** subfolder, we will need to place the following files: So basically, for a **map** subfolder, we will need to place the following files:
@ -21,6 +22,7 @@ And for the **props** folder, we will need the following files:
Additionally, we have to create a **JSON file inside the package** that will contain information about its assets. The file extension must be `.json`. We recommend the JSON file to have the same name as the package name in order to keep it organized. **Please, keep in mind that the name of this file will used as the name of the distribution package**. Additionally, we have to create a **JSON file inside the package** that will contain information about its assets. The file extension must be `.json`. We recommend the JSON file to have the same name as the package name in order to keep it organized. **Please, keep in mind that the name of this file will used as the name of the distribution package**.
The content of this JSON file should be similar to the following: The content of this JSON file should be similar to the following:
```json ```json
{ {
"maps": [{ "maps": [{
@ -132,15 +134,16 @@ Import
*Please note that the maps exported from **RoadRunner** are also supported for importing them inside Carla. So, basically, once created your **RoadRunner** map, you just need to export it, take the required files and place them following the structure listed above.* *Please note that the maps exported from **RoadRunner** are also supported for importing them inside Carla. So, basically, once created your **RoadRunner** map, you just need to export it, take the required files and place them following the structure listed above.*
Now we have everything ready for importing assets. To do so, you just need to run the command: Now we have everything ready for importing assets. To do so, you just need to run the command:
```sh ```sh
make import make import
``` ```
This command will read the JSON file and take each asset and place it inside the Content in Unreal Engine. Furthermore, it will create a `Package1.Package.json` file inside the package's `Config` folder that will be used for **defining** its props in the Carla blueprint library, **exposing** them in the `PythonAPI` and also for **exporting** those assets if needed. If a package was already imported before, it will overwrite it. This command will read the JSON file and take each asset and place it inside the Content in Unreal Engine. Furthermore, it will create a `Package1.Package.json` file inside the package's `Config` folder that will be used for **defining** its props in the Carla blueprint library, **exposing** them in the `PythonAPI` and also for **exporting** those assets if needed. If a package was already imported before, it will overwrite it.
How to export assets
<h4>How to export assets</h4> --------------------
Once imported all the packages inside Unreal, users could also generate a **cooked package** for each of them. This last step is important in order to have all packages ready to add for distribution versions of Carla and for any supported platform. To export the packages, simply run the command: Once imported all the packages inside Unreal, users could also generate a **cooked package** for each of them. This last step is important in order to have all packages ready to add for distribution versions of Carla and for any supported platform. To export the packages, simply run the command:

292
Docs/bp_library.md Normal file
View File

@ -0,0 +1,292 @@
<h1>Blueprint Library</h1>
### walker
- <font color="#737373">walker.pedestrian.0001</font>
- <font color="#737373">walker.pedestrian.0002</font>
- <font color="#737373">walker.pedestrian.0003</font>
- <font color="#737373">walker.pedestrian.0004</font>
- <font color="#737373">walker.pedestrian.0005</font>
- <font color="#737373">walker.pedestrian.0006</font>
- <font color="#737373">walker.pedestrian.0007</font>
- <font color="#737373">walker.pedestrian.0008</font>
- <font color="#737373">walker.pedestrian.0009</font>
- <font color="#737373">walker.pedestrian.0010</font>
- <font color="#737373">walker.pedestrian.0011</font>
- <font color="#737373">walker.pedestrian.0012</font>
- <font color="#737373">walker.pedestrian.0013</font>
- <font color="#737373">walker.pedestrian.0014</font>
### static
- <font color="#737373">static.prop.advertisement</font>
- <font color="#737373">static.prop.atm</font>
- <font color="#737373">static.prop.barbeque</font>
- <font color="#737373">static.prop.barrel</font>
- <font color="#737373">static.prop.bench01</font>
- <font color="#737373">static.prop.bench02</font>
- <font color="#737373">static.prop.bench03</font>
- <font color="#737373">static.prop.bike helmet</font>
- <font color="#737373">static.prop.bikeparking</font>
- <font color="#737373">static.prop.bin</font>
- <font color="#737373">static.prop.box01</font>
- <font color="#737373">static.prop.box02</font>
- <font color="#737373">static.prop.box03</font>
- <font color="#737373">static.prop.briefcase</font>
- <font color="#737373">static.prop.brokentile01</font>
- <font color="#737373">static.prop.brokentile02</font>
- <font color="#737373">static.prop.brokentile03</font>
- <font color="#737373">static.prop.brokentile04</font>
- <font color="#737373">static.prop.busstop</font>
- <font color="#737373">static.prop.chainbarrier</font>
- <font color="#737373">static.prop.chainbarrierend</font>
- <font color="#737373">static.prop.clothcontainer</font>
- <font color="#737373">static.prop.clothesline</font>
- <font color="#737373">static.prop.colacan</font>
- <font color="#737373">static.prop.constructioncone</font>
- <font color="#737373">static.prop.container</font>
- <font color="#737373">static.prop.creasedbox01</font>
- <font color="#737373">static.prop.creasedbox02</font>
- <font color="#737373">static.prop.creasedbox03</font>
- <font color="#737373">static.prop.dirtdebris01</font>
- <font color="#737373">static.prop.dirtdebris02</font>
- <font color="#737373">static.prop.dirtdebris03</font>
- <font color="#737373">static.prop.doghouse</font>
- <font color="#737373">static.prop.fountain</font>
- <font color="#737373">static.prop.garbage01</font>
- <font color="#737373">static.prop.garbage02</font>
- <font color="#737373">static.prop.garbage03</font>
- <font color="#737373">static.prop.garbage04</font>
- <font color="#737373">static.prop.garbage05</font>
- <font color="#737373">static.prop.garbage06</font>
- <font color="#737373">static.prop.gardenlamp</font>
- <font color="#737373">static.prop.glasscontainer</font>
- <font color="#737373">static.prop.gnome</font>
- <font color="#737373">static.prop.guitarcase</font>
- <font color="#737373">static.prop.ironplank</font>
- <font color="#737373">static.prop.kiosk_01</font>
- <font color="#737373">static.prop.mailbox</font>
- <font color="#737373">static.prop.maptable</font>
- <font color="#737373">static.prop.mobile</font>
- <font color="#737373">static.prop.motorhelmet</font>
- <font color="#737373">static.prop.pergola</font>
- <font color="#737373">static.prop.plantpot01</font>
- <font color="#737373">static.prop.plantpot02</font>
- <font color="#737373">static.prop.plantpot03</font>
- <font color="#737373">static.prop.plantpot04</font>
- <font color="#737373">static.prop.plantpot05</font>
- <font color="#737373">static.prop.plantpot06</font>
- <font color="#737373">static.prop.plantpot07</font>
- <font color="#737373">static.prop.plantpot08</font>
- <font color="#737373">static.prop.plasticbag</font>
- <font color="#737373">static.prop.plasticchair</font>
- <font color="#737373">static.prop.plastictable</font>
- <font color="#737373">static.prop.platformgarbage01</font>
- <font color="#737373">static.prop.purse</font>
- <font color="#737373">static.prop.shop01</font>
- <font color="#737373">static.prop.shoppingbag</font>
- <font color="#737373">static.prop.shoppingcart</font>
- <font color="#737373">static.prop.shoppingtrolley</font>
- <font color="#737373">static.prop.slide</font>
- <font color="#737373">static.prop.streetbarrier</font>
- <font color="#737373">static.prop.streetfountain</font>
- <font color="#737373">static.prop.streetsign</font>
- <font color="#737373">static.prop.streetsign01</font>
- <font color="#737373">static.prop.streetsign04</font>
- <font color="#737373">static.prop.swing</font>
- <font color="#737373">static.prop.swingcouch</font>
- <font color="#737373">static.prop.table</font>
- <font color="#737373">static.prop.trafficcone01</font>
- <font color="#737373">static.prop.trafficcone02</font>
- <font color="#737373">static.prop.trafficwarning</font>
- <font color="#737373">static.prop.trampoline</font>
- <font color="#737373">static.prop.trashbag</font>
- <font color="#737373">static.prop.trashcan01</font>
- <font color="#737373">static.prop.trashcan02</font>
- <font color="#737373">static.prop.trashcan03</font>
- <font color="#737373">static.prop.trashcan04</font>
- <font color="#737373">static.prop.trashcan05</font>
- <font color="#737373">static.prop.travelcase</font>
- <font color="#737373">static.prop.vendingmachine</font>
- <font color="#737373">static.prop.wateringcan</font>
- <font color="#737373">static.trigger.friction</font>
### controller
- <font color="#737373">controller.ai.walker</font>
### sensor
- <font color="#737373">sensor.camera.depth</font>
- <font color="#737373">sensor.camera.rgb</font>
- <font color="#737373">sensor.camera.semantic_segmentation</font>
- <font color="#737373">sensor.lidar.ray_cast</font>
- <font color="#737373">sensor.other.collision</font>
- <font color="#737373">sensor.other.gnss</font>
- <font color="#737373">sensor.other.lane_invasion</font>
- <font color="#737373">sensor.other.obstacle</font>
### vehicle
- <font color="#737373">vehicle.audi.a2</font>
- <font color="#737373">vehicle.audi.etron</font>
- <font color="#737373">vehicle.audi.tt</font>
- <font color="#737373">vehicle.bh.crossbike</font>
- <font color="#737373">vehicle.bmw.grandtourer</font>
- <font color="#737373">vehicle.bmw.isetta</font>
- <font color="#737373">vehicle.carlamotors.carlacola</font>
- <font color="#737373">vehicle.chevrolet.impala</font>
- <font color="#737373">vehicle.citroen.c3</font>
- <font color="#737373">vehicle.diamondback.century</font>
- <font color="#737373">vehicle.dodge_charger.police</font>
- <font color="#737373">vehicle.ford.mustang</font>
- <font color="#737373">vehicle.gazelle.omafiets</font>
- <font color="#737373">vehicle.harley-davidson.low rider</font>
- <font color="#737373">vehicle.jeep.wrangler_rubicon</font>
- <font color="#737373">vehicle.kawasaki.ninja</font>
- <font color="#737373">vehicle.lincoln.mkz2017</font>
- <font color="#737373">vehicle.mercedes-benz.coupe</font>
- <font color="#737373">vehicle.mini.cooperst</font>
- <font color="#737373">vehicle.nissan.micra</font>
- <font color="#737373">vehicle.nissan.patrol</font>
- <font color="#737373">vehicle.seat.leon</font>
- <font color="#737373">vehicle.tesla.model3</font>
- <font color="#737373">vehicle.toyota.prius</font>
- <font color="#737373">vehicle.volkswagen.t2</font>
- <font color="#737373">vehicle.yamaha.yzf</font>

View File

@ -51,7 +51,7 @@ This is the list of sensors currently available
* [sensor.other.lane_invasion](#sensorotherlane_invasion) * [sensor.other.lane_invasion](#sensorotherlane_invasion)
* [sensor.other.obstacle](#sensorotherobstacle) * [sensor.other.obstacle](#sensorotherobstacle)
Camera sensors use [`carla.colorConverter`](python_api.md#carlacolorconverter) in order to convert the pixels of the original image. Camera sensors use [`carla.colorConverter`](python_api.md#carla.ColorConverter) in order to convert the pixels of the original image.
sensor.camera.rgb sensor.camera.rgb
----------------- -----------------

View File

@ -32,6 +32,34 @@ To reload the world using the current active map, use
world = client.reload_world() world = client.reload_world()
``` ```
Graphics Quality
----------------
<h4>Vulkan vs OpenGL</h4>
Vulkan _(if installed)_ is the default graphics API used by Unreal Engine and CARLA on Linux.
It consumes more memory but performs faster.
On the other hand, OpenGL is less memory consuming but performs slower than Vulkan.
!!!note
Vulkan is an experimental build so it may have some bugs when running the simulator.
OpenGL API can be selected with the flag `-opengl`.
```sh
> ./CarlaUE4.sh -opengl
```
<h4>Quality levels</h4>
Currently, there are two levels of quality, `Low` and `Epic` _(default)_. The image below shows how the simulator has to be started with the appropiate flag in order to set a quality level and the difference between qualities.
![](img/epic_quality_capture.png) | ![](img/low_quality_capture.png)
:-------------------------:|:-------------------------:
`./CarlaUE4.sh -quality-level=Epic` | `./CarlaUE4.sh -quality-level=Low`
**Low mode runs significantly faster**, ideal for users that don't rely on quality precision.
Running off-screen Running off-screen
------------------ ------------------
@ -40,9 +68,8 @@ environment variable `DISPLAY` to empty
!!! important !!! important
**DISPLAY= only works with OpenGL**<br> **DISPLAY= only works with OpenGL**<br>
Vulkan is now the default graphics API used by Unreal Engine and CARLA on Unreal Engine currently crashes when Vulkan is used when running
Linux. Unreal Engine currently crashes when Vulkan is used when running off-screen. Therefore the `-opengl` flag must be added to force the engine to
off-screen. Therefore the -opengl flag must be added to force the engine to
use OpenGL instead. We hope that this issue is addressed by Epic in the near use OpenGL instead. We hope that this issue is addressed by Epic in the near
future. future.
@ -162,12 +189,12 @@ at the example [synchronous_mode.py][syncmodelink].
[syncmodelink]: https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/synchronous_mode.py [syncmodelink]: https://github.com/carla-simulator/carla/blob/master/PythonAPI/examples/synchronous_mode.py
Other command-line options Command-line options
-------------------------- --------------------------
* `-carla-rpc-port=N` Listen for client connections at port N, streaming port is set to N+1 by default. * `-carla-rpc-port=N` Listen for client connections at port N, streaming port is set to N+1 by default.
* `-carla-streaming-port=N` Specify the port for sensor data streaming, use 0 to get a random unused port. * `-carla-streaming-port=N` Specify the port for sensor data streaming, use 0 to get a random unused port.
* `-quality-level={Low,Epic}` Change graphics quality level, "Low" mode runs significantly faster. * `-quality-level={Low,Epic}` Change graphics quality level.
* `-no-rendering` Disable rendering. * `-no-rendering` Disable rendering.
* [Full list of UE4 command-line arguments][ue4clilink] (note that many of these won't work in the release version). * [Full list of UE4 command-line arguments][ue4clilink] (note that many of these won't work in the release version).

Binary file not shown.

After

Width:  |  Height:  |  Size: 1017 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

View File

@ -21,6 +21,7 @@
<h3>Advanced topics</h3> <h3>Advanced topics</h3>
* [Python API reference](python_api.md) * [Python API reference](python_api.md)
* [Blueprint Library] (bp_library.md)
* [Running without display and selecting GPUs](carla_headless.md) * [Running without display and selecting GPUs](carla_headless.md)
* [Running in a Docker](carla_docker.md) * [Running in a Docker](carla_docker.md)
* [How to make a new map with RoadRunner](how_to_make_a_new_map.md) * [How to make a new map with RoadRunner](how_to_make_a_new_map.md)

View File

@ -1085,7 +1085,7 @@ Apply a different playback speed to current playback. Can be used several times
- **Parameters:** - **Parameters:**
- `time_factor` (_float_) A value of 1.0 means normal time factor. A value < 1.0 means slow motion (for example 0.5 is half speed) A value > 1.0 means fast motion (for example 2.0 is double speed). - `time_factor` (_float_) A value of 1.0 means normal time factor. A value < 1.0 means slow motion (for example 0.5 is half speed) A value > 1.0 means fast motion (for example 2.0 is double speed).
- <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>)
This function executes the whole list of commands on a single simulation step. For example, to set autopilot on some actors, we could use: [sample_code](https://github.com/carla-simulator/carla/blob/10c5f6a482a21abfd00220c68c7f12b4110b7f63/PythonAPI/examples/spawn_npc.py#L126) We don't have control about the response of each command. If we need that, we can use apply_batch_sync(). This function executes the whole list of commands on a single simulation step. For example, to set autopilot on some actors, we could use: [sample_code](https://github.com/carla-simulator/carla/blob/10c5f6a482a21abfd00220c68c7f12b4110b7f63/PythonAPI/examples/spawn_npc.py#L126). We don't have control about the response of each command. If we need that, we can use `apply_batch_sync()`.
- **Parameters:** - **Parameters:**
- `commands` (_list_) A list of commands to execute in batch. Each command has a different number of parameters. Currently, we can use these [commands](#command.ApplyAngularVelocity): - `commands` (_list_) A list of commands to execute in batch. Each command has a different number of parameters. Currently, we can use these [commands](#command.ApplyAngularVelocity):
SpawnActor SpawnActor
@ -1123,10 +1123,10 @@ Normal impulse result of the collision.
Class that defines a 32-bit BGRA color. Class that defines a 32-bit BGRA color.
<h3>Instance Variables</h3> <h3>Instance Variables</h3>
- <a name="carla.Color.r"></a>**<font color="#f8805a">r</font>** - <a name="carla.Color.r"></a>**<font color="#f8805a">r</font>** (_int_)
- <a name="carla.Color.g"></a>**<font color="#f8805a">g</font>** - <a name="carla.Color.g"></a>**<font color="#f8805a">g</font>** (_int_)
- <a name="carla.Color.b"></a>**<font color="#f8805a">b</font>** - <a name="carla.Color.b"></a>**<font color="#f8805a">b</font>** (_int_)
- <a name="carla.Color.a"></a>**<font color="#f8805a">a</font>** - <a name="carla.Color.a"></a>**<font color="#f8805a">a</font>** (_int_)
<h3>Methods</h3> <h3>Methods</h3>
- <a name="carla.Color.__init__"></a>**<font color="#7fb800">\__init__</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**r**=0</font>, <font color="#00a6ed">**g**=0</font>, <font color="#00a6ed">**b**=0</font>, <font color="#00a6ed">**a**=255</font>) - <a name="carla.Color.__init__"></a>**<font color="#7fb800">\__init__</font>**(<font color="#00a6ed">**self**</font>, <font color="#00a6ed">**r**=0</font>, <font color="#00a6ed">**g**=0</font>, <font color="#00a6ed">**b**=0</font>, <font color="#00a6ed">**a**=255</font>)
@ -1194,7 +1194,7 @@ Class that contains geolocation simulated data.
Map description that provides a Waypoint query system, that extracts the information from the OpenDRIVE file. Map description that provides a Waypoint query system, that extracts the information from the OpenDRIVE file.
<h3>Instance Variables</h3> <h3>Instance Variables</h3>
- <a name="carla.Map.name"></a>**<font color="#f8805a">name</font>** - <a name="carla.Map.name"></a>**<font color="#f8805a">name</font>** (_str_)
Map name. Comes from the Unreal's UMap name if loaded from a Carla server. Map name. Comes from the Unreal's UMap name if loaded from a Carla server.
<h3>Methods</h3> <h3>Methods</h3>

View File

@ -413,7 +413,7 @@ map = world.get_map()
For starters, the map has a [`name`](python_api.md#carla.Map.name) attribute that matches the name of the For starters, the map has a [`name`](python_api.md#carla.Map.name) attribute that matches the name of the
currently loaded city, e.g. Town01. And, as we've seen before, we can also ask currently loaded city, e.g. Town01. And, as we've seen before, we can also ask
the map to provide a list of recommended locations for spawning vehicles, the map to provide a list of recommended locations for spawning vehicles,
`map.get_spawn_points()`. [`map.get_spawn_points()`](python_api.md#carla.Map.get_spawn_points).
However, the real power of this map API comes apparent when we introduce However, the real power of this map API comes apparent when we introduce
waypoints. We can tell the map to give us a waypoint on the road closest to our waypoints. We can tell the map to give us a waypoint on the road closest to our

View File

@ -10,13 +10,79 @@ all classes and methods available can be found at
The user should read the Python API tutorial before reading this document. The user should read the Python API tutorial before reading this document.
[Python API tutorial](python_api_tutorial.md). [Python API tutorial](python_api_tutorial.md).
### Walker skeleton structure ### Walker skeleton structure
All walkers have the same skeleton hierarchy and bone names. Below is an image of the skeleton All walkers have the same skeleton hierarchy and bone names. Below is an image of the skeleton
hierarchy. hierarchy.
![Skeleton Hierarchy](img/skeleton_hierarchy.jpg) ```
crl_root
└── crl_hips__C
├── crl_spine__C
│ └── crl_spine01__C
│ ├── ctrl_shoulder__L
│ │ └── crl_arm__L
│ │ └── crl_foreArm__L
│ │ └── crl_hand__L
│ │ ├── crl_handThumb__L
│ │ │ └── crl_handThumb01__L
│ │ │ └── crl_handThumb02__L
│ │ │ └── crl_handThumbEnd__L
│ │ ├── crl_handIndex__L
│ │ │ └── crl_handIndex01__L
│ │ │ └── crl_handIndex02__L
│ │ │ └── crl_handIndexEnd__L
│ │ ├── crl_handMiddle_L
│ │ │ └── crl_handMiddle01__L
│ │ │ └── crl_handMiddle02__L
│ │ │ └── crl_handMiddleEnd__L
│ │ ├── crl_handRing_L
│ │ │ └── crl_handRing01__L
│ │ │ └── crl_handRing02__L
│ │ │ └── crl_handRingEnd__L
│ │ └── crl_handPinky_L
│ │ └── crl_handPinky01__L
│ │ └── crl_handPinky02__L
│ │ └── crl_handPinkyEnd__L
│ ├── crl_neck__C
│ │ └── crl_Head__C
│ │ ├── crl_eye__L
│ │ └── crl_eye__R
│ └── crl_shoulder__R
│ └── crl_arm__R
│ └── crl_foreArm__R
│ └── crl_hand__R
│ ├── crl_handThumb__R
│ │ └── crl_handThumb01__R
│ │ └── crl_handThumb02__R
│ │ └── crl_handThumbEnd__R
│ ├── crl_handIndex__R
│ │ └── crl_handIndex01__R
│ │ └── crl_handIndex02__R
│ │ └── crl_handIndexEnd__R
│ ├── crl_handMiddle_R
│ │ └── crl_handMiddle01__R
│ │ └── crl_handMiddle02__R
│ │ └── crl_handMiddleEnd__R
│ ├── crl_handRing_R
│ │ └── crl_handRing01__R
│ │ └── crl_handRing02__R
│ │ └── crl_handRingEnd__R
│ └── crl_handPinky_R
│ └── crl_handPinky01__R
│ └── crl_handPinky02__R
│ └── crl_handPinkyEnd__R
├── crl_thigh__L
│ └── crl_leg__L
│ └── crl_foot__L
│ └── crl_toe__L
│ └── crl_toeEnd__L
└── crl_thigh__R
└── crl_leg__R
└── crl_foot__R
└── crl_toe__R
└── crl_toeEnd__R
```
### How to manually control a walker's bones ### How to manually control a walker's bones
@ -40,6 +106,7 @@ client.set_timeout(2.0)
``` ```
#### Spawning a walker #### Spawning a walker
Spawn a random walker at one of the map's spawn points Spawn a random walker at one of the map's spawn points
```py ```py
@ -71,6 +138,3 @@ second_tuple = ('crl_hand__L', carla.Transform(rotation=carla.Rotation(roll=90))
control.bone_transforms = [first_tuple, second_tuple] control.bone_transforms = [first_tuple, second_tuple]
world.player.apply_control(control) world.player.apply_control(control)
``` ```

View File

@ -26,12 +26,16 @@
# - PROPERTIES ------------------------- # - PROPERTIES -------------------------
instance_variables: instance_variables:
- var_name: r - var_name: r
type: int
doc: > doc: >
- var_name: g - var_name: g
type: int
doc: > doc: >
- var_name: b - var_name: b
type: int
doc: > doc: >
- var_name: a - var_name: a
type: int
doc: > doc: >
# - METHODS ---------------------------- # - METHODS ----------------------------
methods: methods:

View File

@ -214,8 +214,8 @@
doc: > doc: >
This function executes the whole list of commands on a single simulation step. This function executes the whole list of commands on a single simulation step.
For example, to set autopilot on some actors, we could use: For example, to set autopilot on some actors, we could use:
[sample_code](https://github.com/carla-simulator/carla/blob/10c5f6a482a21abfd00220c68c7f12b4110b7f63/PythonAPI/examples/spawn_npc.py#L126) [sample_code](https://github.com/carla-simulator/carla/blob/10c5f6a482a21abfd00220c68c7f12b4110b7f63/PythonAPI/examples/spawn_npc.py#L126).
We don't have control about the response of each command. If we need that, we can use apply_batch_sync(). We don't have control about the response of each command. If we need that, we can use `apply_batch_sync()`.
# -------------------------------------- # --------------------------------------
- def_name: apply_batch_sync - def_name: apply_batch_sync

View File

@ -6,8 +6,7 @@
# - DESCRIPTION ------------------------ # - DESCRIPTION ------------------------
doc: > doc: >
Execution result of a command, contains either an error string or and Execution result of a command, contains either an error string or and
actor ID, depending on whether or not the command succeeded. See actor ID, depending on whether or not the command succeeded. See `client.apply_batch_sync()`
`client.apply_batch_sync()`
# - PROPERTIES ------------------------- # - PROPERTIES -------------------------
instance_variables: instance_variables:
- var_name: actor_id - var_name: actor_id

View File

@ -137,6 +137,7 @@
# - PROPERTIES ------------------------- # - PROPERTIES -------------------------
instance_variables: instance_variables:
- var_name: name - var_name: name
type: str
doc: > doc: >
Map name. Comes from the Unreal's UMap name if loaded from a Carla server Map name. Comes from the Unreal's UMap name if loaded from a Carla server
# - METHODS ---------------------------- # - METHODS ----------------------------

View File

@ -17,6 +17,7 @@ nav:
- 'How to build on Windows': 'how_to_build_on_windows.md' - 'How to build on Windows': 'how_to_build_on_windows.md'
- Advanced topics: - Advanced topics:
- 'Python API reference': 'python_api.md' - 'Python API reference': 'python_api.md'
- 'Blueprint Library': 'bp_library.md'
- 'Running without display and selecting GPUs': 'carla_headless.md' - 'Running without display and selecting GPUs': 'carla_headless.md'
- 'Running in a Docker': 'carla_docker.md' - 'Running in a Docker': 'carla_docker.md'
- "How to make a new map with RoadRunner": 'how_to_make_a_new_map.md' - "How to make a new map with RoadRunner": 'how_to_make_a_new_map.md'