Converting html tags (table, image, link, etc.) into markdown (#3629)

* Converting html tags (table, image, link, etc.) into markdown, fixing an issue with python marrkdown generation script

* Converting tables for pandoc

* Incorrect code block

* Changelog is updated

Co-authored-by: Corinne <38050983+corkyw10@users.noreply.github.com>
Co-authored-by: Marc Garcia Puig <marcgpuig@gmail.com>
This commit is contained in:
Hamid Ebadi 2020-12-14 13:15:32 +01:00 committed by GitHub
parent c8a330897a
commit adb0e9f8ca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 1338 additions and 3140 deletions

View File

@ -1,4 +1,6 @@
## Latest
* Improved the documentation for use with pandoc tool by converting html tags to their markdown equivalent
* Added parameter to carla settings to control culling
* Added `load_map_layer` and `unload_map_layer` to control map layers on new maps that support subleveling
* Added `get_environment_objects`call to get all the placed objects in the level

View File

@ -62,28 +62,16 @@ A playback can be started at any point during a simulation. Besides the path to
client.replay_file("recording01.log", start, duration, camera)
```
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
<th>Notes</th>
</thead>
<tbody>
<td><code>start</code> </td>
<td>Recording time in seconds to start the simulation at.</td>
<td>If positive, time will be considered from the beginning of the recording. <br>If negative, it will be considered from the end.</td>
<tr>
<td><code>duration</code></td>
<td>Seconds to playback. 0 is all the recording.</td>
<td>By the end of the playback, vehicles will be set to autopilot and pedestrians will stop.</td>
<tr>
<td><code>camera</code></td>
<td>ID of the actor that the camera will focus on. </td>
<td>Set it to <code>0</code> to let the spectator move freely.</td>
</tbody>
</table>
| Parameter | Description | Notes |
| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `start` | Recording time in seconds to start the simulation at. | If positive, time will be considered from the beginning of the recording. <br> If negative, it will be considered from the end. |
| `duration` | Seconds to playback. 0 is all the recording. | By the end of the playback, vehicles will be set to autopilot and pedestrians will stop. |
| `camera` | ID of the actor that the camera will focus on. | Set it to `0` to let the spectator move freely. |
<br>
### Setting a time factor
The time factor will determine the playback speed. It can be changed any moment without stopping the playback.
@ -92,22 +80,14 @@ The time factor will determine the playback speed. It can be changed any moment
client.set_replayer_time_factor(2.0)
```
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Default</th>
<th>Fast motion</th>
<th>Slow motion</th>
</thead>
<tbody>
<td><code>time_factor</code> </td>
<td><b>1.0</b></td>
<td><b>>1.0</b></td>
<td><b> <1.0 </b></td>
</tbody>
</table>
| Parameter | Default | Fast motion | Slow motion |
| ------------- | ------------- | ------------- | ------------- |
| `time_factor` | **1\.0** | **\>1.0** | ** <1.0 ** |
<br>
!!! Important
If `time_factor>2.0`, the actors' position interpolation is disabled and just updated. Pedestrians' animations are not affected by the time factor.
@ -221,23 +201,14 @@ Detects vehicles that where stucked during the recording. An actor is considered
print(client.show_recorder_actors_blocked("recording01.log", min_time, min_distance))
```
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
<th>Default</th>
</thead>
<tbody>
<td><code>min_time</code> </td>
<td>Minimum seconds to move `min_distance`.</td>
<td>30secs.</td>
<tr>
<td><code>min_distance</code> </td>
<td>Minimum centimeters to move to not be considered blocked.</td>
<td>10cm.</td>
</tbody>
</table>
<br>
| Parameter | Description | Default |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `min_time` | Minimum seconds to move \`min\_distance\`. | 30secs. |
| `min_distance` | Minimum centimeters to move to not be considered blocked. | 10cm. |
---
!!! Note
Sometimes vehicles are stopped at traffic lights for longer than expected.
@ -277,102 +248,63 @@ client.replay_file("col3.log", 34, 0, 173)
Some of the provided scripts in `PythonAPI/examples` facilitate the use of the recorder.
* __start_recording.py__ starts the recording. The duration of the recording can be set, and actors can be spawned at the beginning of it.
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
</thead>
<tbody>
<td><code>-f</code> </td>
<td>Filename.</td>
<tr>
<td><code>-n</code><small> (optional)</small></td>
<td>Vehicles to spawn. Default is 10.</td>
<tr>
<td><code>-t</code><small> (optional)</small></td>
<td>Duration of the recording.</td>
</tbody>
</table>
<br>
| Parameter | Description |
| ------------------------------------------------------------- | ------------------------------------------------------------- |
| `-f` | Filename. |
| `-n`<small> (optional)</small> | Vehicles to spawn. Default is 10. |
| `-t`<small> (optional)</small> | Duration of the recording. |
* __start_replaying.py__ starts the playback of a recording. Starting time, duration, and actor to follow can be set.
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
</thead>
<tbody>
<td><code>-f</code> </td>
<td>Filename.</td>
<tr>
<td><code>-s</code><small> (optional)</small></td>
<td>Starting time. Default is 10.</td>
<tr>
<td><code>-d</code><small> (optional)</small></td>
<td>Duration. Default is all.</td>
<tr>
<td><code>-c</code><small> (optional)</small></td>
<td>IDof the actor to follow.</td>
</tbody>
</table>
<br>
| Parameter | Description |
| ----------------------------- | ----------------------------- |
| `-f` | Filename. |
| `-s`<small> (optional)</small> | Starting time. Default is 10. |
| `-d`<small> (optional)</small> | Duration. Default is all. |
| `-c`<small> (optional)</small> | IDof the actor to follow. |
* __show_recorder_file_info.py__ shows all the information in the recording file. By default, it only shows frames where an event is recorded. However, all of them can be shown.
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
</thead>
<tbody>
<td><code>-f</code> </td>
<td>Filename.</td>
<tr>
<td><code>-s</code><small> (optional)</small></td>
<td>Flag to show all details.</td>
</tbody>
</table>
<br>
| Parameter | Description |
| ------------------------------------------------------------- | ------------------------------------------------------------- |
| `-f` | Filename. |
| `-s`<small> (optional)</small> | Flag to show all details. |
* __show_recorder_collisions.py__ shows recorded collisions between two flags of actors of types __A__ and __B__. `-t = vv` would show all collisions between vehicles.
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
</thead>
<tbody>
<td><code>-f</code> </td>
<td>Filename.</td>
<tr>
<td><code>-t</code></td>
<td>Flags of the actors involved. <br> <code>h</code> = hero <br> <code>v</code> = vehicle <br> <code>w</code> = walker <br> <code>t</code> = traffic light <br> <code>o</code> = other <br> <code>a</code> = any</td>
</tbody>
</table>
<br>
| Parameter | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-f` | Filename. |
| `-t` | Flags of the actors involved. <br>`h` = hero <br> `v` = vehicle <br> `w` = walker <br> `t` = traffic light <br>`o` = other <br>`a` = any |
* __show_recorder_actors_blocked.py__ lists vehicles considered blocked. Actors are considered blocked when not moving a minimum distance in a certain time.
<table class ="defTable">
<thead>
<th>Parameter</th>
<th>Description</th>
</thead>
<tbody>
<td><code>-f</code> </td>
<td>Filename.</td>
<tr>
<td><code>-t</code><small> (optional)</small></td>
<td>Time to move <code>-d</code> before being considered blocked.</td>
<tr>
<td><code>-d</code><small> (optional)</small></td>
<td>Distance to move to not be considered blocked.</td>
</tbody>
</table>
<br>
| Parameter | Description |
| -------------------------------------------------- | -------------------------------------------------- |
| `-f` | Filename. |
| `-t`<small> (optional)</small> | Time to move `-d` before being considered blocked. |
| `-d`<small> (optional)</small> | Distance to move to not be considered blocked. |
---
Now it is time to experiment for a while. Use the recorder to playback a simulation, trace back events, make changes to see new outcomes. Feel free to say your word in the CARLA forum about this matter.

View File

@ -39,21 +39,17 @@ The simulation runs significantly faster in __Low__ mode. This is not only used
The images below compare both modes. The flag used is the same for Windows and Linux. There is no equivalent option when working with the build, but the UE editor has its own quality settings. Go to `Settings/Engine Scalability Settings` for a greater customization of the desired quality.
<table class ="defTable">
<tbody>
<td><b>Epic mode</b></td>
<tr>
<td><code>./CarlaUE4.sh -quality-level=Epic</code></td>
<tr>
<td><img src="../img/rendering_quality_epic.jpg"><br><br><div align="right"><i>Epic mode screenshot</i></div></td>
<tr>
<td><b>Low mode</b></td>
<tr>
<td><code>./CarlaUE4.sh -quality-level=Low</code></td>
<tr>
<td><img src="../img/rendering_quality_low.jpg"><br><br><div align="right"><i>Low mode screenshot</i></div></td>
</tbody>
</table>
#### Epic mode
`./CarlaUE4.sh -quality-level=Epic`
![Epic mode screenshot](img/rendering_quality_epic.jpg)
*Epic mode screenshot*
#### Low mode
`./CarlaUE4.sh -quality-level=Low`
![Low mode screenshot](img/rendering_quality_low.jpg)
*Low mode screenshot*
<br>

View File

@ -148,24 +148,14 @@ world.on_tick(lambda world_snapshot: do_something(world_snapshot))
The configuration of time-step and synchrony, leads for different settings. Here is a brief summary on the possibilities.
<table class ="defTable">
<thead>
<th></th>
<th><b>Fixed time-step</b></th>
<th><b>Variable time-step</b></th>
</thead>
<tbody>
<td><b>Synchronous mode</b></td>
<td>Client is in total control over the simulation and its information.</td>
<td>Risk of non reliable simulations.</td>
<tr>
<td><b>Asynchronous mode</b></td>
<td>Good time references for information. Server runs as fast as possible.</td>
<td>Non easily repeatable simulations.</td>
</tbody>
</table>
| | **Fixed time-step** | **Variable time-step** |
| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| **Synchronous mode** | Client is in total control over the simulation and its information. | Risk of non reliable simulations. |
| **Asynchronous mode** | Good time references for information. Server runs as fast as possible. | Non easily repeatable simulations. |
<br>
* __Synchronous mode + variable time-step.__ This is almost for sure a non-desirable state. Physics cannot run properly when the time-step is bigger than 0.1s and. If the server has to wait for the client to compute the steps, this is likely to happen. Simulation time and physics will not be in synchrony. The simulation will not be reliable.
* __Asynchronous mode + variable time-step.__ This is the default CARLA state. Client and server are asynchronous. The simulation time flows according to the real time. Reenacting the simulation needs to take into account float-arithmetic error, and possible differences in time steps between servers.

View File

@ -39,9 +39,11 @@ Users must have some control over the traffic flow by setting parameters that al
---
## Architecture
<div style="text-align:center">
<img src="../img/tm_2_architecture.jpg">
</div>
![Architecture](img/tm_2_architecture.jpg)
The previous diagram is a summary of the internal architecture of the Traffic Manager. The inner structure of the TM can be easily translated to code, and each relevant component has its equivalent in the C++ code (.cpp files) inside `LibCarla/source/carla/trafficmanager`. The functions and relations of these components are explained in the following sections.
@ -202,41 +204,15 @@ First of all there are some general behaviour patterns the TM will generate that
The TM provides a set of possibilities so the user can establish specific behaviours. All the methods accessible from the Python API are listed in the [documentation](../python_api/#carla.TrafficManager). However, here is a brief summary of what the current possibilities are.
<table class ="defTable">
<tbody>
<td><b>General:</b> </td>
<td><br>
<b>1.</b> Use a carla.Client to create a TM instance connected to a port.<br>
<b>2.</b> Retrieve the port where a TM is connected.</td>
<tr>
<td><b>Safety conditions:</b> </td>
<td><br>
<b>1.</b> Set a minimum distance between stopped vehicles (for a vehicle or all of them). This will affect the minimum moving distance. <br>
<b>2.</b> Set an intended speed regarding current speed limitation (for a vehicle or all of them). <br>
<b>3.</b> Reset traffic lights.
</td>
<tr>
<td><b>Collision managing:</b> </td>
<td><br>
<b>1.</b> Enable/Disable collisions between a vehicle and a specific actor. <br>
<b>2.</b> Make a vehicle ignore all the other vehicles. <br>
<b>3.</b> Make a vehicle ignore all the walkers. <br>
<b>4.</b> Make a vehicle ignore all the traffic lights.
</td>
<tr>
<td><b>Lane changes:</b> </td>
<td><br>
<b>1.</b> Force a lane change disregarding possible collisions. <br>
<b>2.</b> Enable/Disable lane changes for a vehicle.
</td>
<tr>
<td><b>Hybrid physics mode:</b> </td>
<td><br>
<b>1.</b> Enable/Disable the hybrid physics mode. <br>
<b>2.</b> Change the radius where physics are enabled.
</td>
</tbody>
</table>
| Topic | Description |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **General:** | <br> **1\.** Use a carla.Client to create a TM instance connected to a port.<br> **2\.** Retrieve the port where a TM is connected. |
| **Safety conditions:** | <br> **1\.** Set a minimum distance between stopped vehicles (for a vehicle or all of them). This will affect the minimum moving distance. <br> **2\.** Set an intended speed regarding current speed limitation (for a vehicle or all of them). <br> **3\.** Reset traffic lights. |
| **Collision managing:** | <br> **1\.** Enable/Disable collisions between a vehicle and a specific actor. <br> **2\.** Make a vehicle ignore all the other vehicles. <br> **3\.** Make a vehicle ignore all the walkers. <br>**4\.** Make a vehicle ignore all the traffic lights. |
| **Lane changes:** | <br> **1\.** Force a lane change disregarding possible collisions. <br> **2\.** Enable/Disable lane changes for a vehicle. |
| **Hybrid physics mode:** | <br> **1\.** Enable/Disable the hybrid physics mode. <br> **2\.** Change the radius where physics are enabled. |
<br>
<br>
### Creating a Traffic Manager

View File

@ -314,36 +314,16 @@ make PythonAPI ARGS="--python-version=2"
Now CARLA is ready to go. Here is a brief summary of the most useful `make` commands available.
<table class ="defTable">
<thead>
<th>Command</th>
<th>Description</th>
</thead>
<tbody>
<td><code>make help</code> </td>
<td>Prints all available commands.</td>
</tr>
<tr>
<td><code>make launch</code></td>
<td>Launches CARLA server in Editor window.</td>
</tr>
<tr>
<td><code>make PythonAPI</code></td>
<td>Builds the CARLA client.</td>
</tr>
<tr>
<td><code>make package</code></td>
<td>Builds CARLA and creates a packaged version for distribution.</td>
</tr>
<tr>
<td><code>make clean</code></td>
<td>Deletes all the binaries and temporals generated by the build system.</td>
</tr>
<tr>
<td><code>make rebuild</code></td>
<td><code>make clean</code> and <code>make launch</code> both in one command.</td>
</tbody>
</table>
| Command | Description |
| ------- | ------- |
| `make help` | Prints all available commands. |
| `make launch` | Launches CARLA server in Editor window. |
| `make PythonAPI` | Builds the CARLA client. |
| `make package` | Builds CARLA and creates a packaged version for distribution. |
| `make clean` | Deletes all the binaries and temporals generated by the build system. |
| `make rebuild` | `make clean` and `make launch` both in one command. |
---

View File

@ -44,36 +44,16 @@ make LibCarla
Two configurations:
<table class ="defTable">
<thead>
<th> </th>
<th>Server</th>
<th>Client</th>
</thead>
<tbody>
<td><b>Unit tests<b></td>
<td> Yes </td>
<td> No </td>
<tr>
<td><b>Requirements</b></td>
<td> rpclib, gtest, boost </td>
<td> rpclib, boost </td>
<tr>
<td><b>std runtime</b></td>
<td> LLVM's <code>libc++</code></td>
<td> Default <code>libstdc++</code> </td>
<tr>
<td><b>Output</b></td>
<td> headers and test exes </td>
<td> <code>ibcarla_client.a</code></td>
<tr>
<td><b>Required by</b></td>
<td> Carla plugin </td>
<td> PythonAPI </td>
</tbody>
</table>
<br>
| | Server | Client |
| ---------- | ---------- | ---------- |
| **Unit tests** | Yes | No |
| **Requirements** | rpclib, gtest, boost | rpclib, boost |
| **std runtime** | LLVM's `libc++` | Default `libstdc++` |
| **Output** | headers and test exes | `ibcarla_client.a` |
| **Required by** | Carla plugin | PythonAPI |
---
## CarlaUE4 and Carla plugin

View File

@ -178,36 +178,16 @@ python3 dynamic_weather.py
Now CARLA is ready to go. Here is a brief summary of the most useful `make` commands available.
<table class ="defTable">
<thead>
<th>Command</th>
<th>Description</th>
</thead>
<tbody>
<td><code>make help</code> </td>
<td>Prints all available commands.</td>
</tr>
<tr>
<td><code>make launch</code></td>
<td>Launches CARLA server in Editor window.</td>
</tr>
<tr>
<td><code>make PythonAPI</code></td>
<td>Builds the CARLA client.</td>
</tr>
<tr>
<td><code>make package</code></td>
<td>Builds CARLA and creates a packaged version for distribution.</td>
</tr>
<tr>
<td><code>make clean</code></td>
<td>Deletes all the binaries and temporals generated by the build system.</td>
</tr>
<tr>
<td><code>make rebuild</code></td>
<td><code>make clean</code> and <code>make launch</code> both in one command.</td>
</tbody>
</table>
| Command | Description |
| ------- | ------- |
| `make help` | Prints all available commands. |
| `make launch` | Launches CARLA server in Editor window. |
| `make PythonAPI` | Builds the CARLA client. |
| `make package` | Builds CARLA and creates a packaged version for distribution. |
| `make clean` | Deletes all the binaries and temporals generated by the build system. |
| `make rebuild` | `make clean` and `make launch` both in one command. |
---

View File

@ -180,133 +180,44 @@ So far there are seven different maps available. Each one has unique features an
!!! Note
Users can [customize a map](tuto_A_map_customization.md) or even [create a new map](tuto_A_add_map.md) to be used in CARLA.
<table class ="defTable">
<thead>
<th>Town</th>
<th>Summary</th>
</thead>
<tbody>
<td><b>Town01</b></td>
<td>A basic town layout with all "T junctions".</td>
</tr>
<tr>
<td><b>Town02</b></td>
<td>Similar to <b>Town01</b>, but smaller.</td>
</tr>
<tr>
<td><b>Town03</b></td>
<td>The most complex town, with a 5-lane junction, a roundabout, unevenness, a tunnel, and much more. Essentially a medley.</td>
</tr>
<tr>
<td><b>Town04</b></td>
<td>An infinite loop with a highway and a small town.</td>
</tr>
<tr>
<td><b>Town05</b></td>
<td>Squared-grid town with cross junctions and a bridge. It has multiple lanes per direction. Useful to perform lane changes.</td>
</tr>
<tr>
<td><b>Town06</b></td>
<td>Long highways with many highway entrances and exits. It also has a <a href="https://en.wikipedia.org/wiki/Michigan_left"><b>Michigan left</b></a>.</td>
<tr>
<td><b>Town07</b></td>
<td>A rural environment with narrow roads, barely non traffic lights and barns.</td>
<tr>
<td><b>Town10</b></td>
<td>A city environment with with different environments such as an avenue or a promenade, and more realistic textures.</td>
</tbody>
</table>
| Town | Summary |
| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| **Town01** | A basic town layout with all "T junctions". |
| **Town02** | Similar to **Town01**, but smaller. |
| **Town03** | The most complex town, with a 5-lane junction, a roundabout, unevenness, a tunnel, and much more. Essentially a medley. |
| **Town04** | An infinite loop with a highway and a small town. |
| **Town05** | Squared-grid town with cross junctions and a bridge. It has multiple lanes per direction. Useful to perform lane changes. |
| **Town06** | Long highways with many highway entrances and exits. It also has a [**Michigan left**](<https://en.wikipedia.org/wiki/Michigan_left>). |
| **Town07** | A rural environment with narrow roads, barely non traffic lights and barns. |
| **Town10** | A city environment with with different environments such as an avenue or a promenade, and more realistic textures. |
<br>
<!--container -->
<div class="townslider-container">
<!-- Town slide images -->
<div class="townslide fade">
<img src="../img/Town01.jpg">
<div class="text">Town01</div>
</div>
<div class="townslide fade">
<img src="../img/Town02.jpg">
<div class="text">Town02</div>
</div>
![Town01](img/Town01.jpg)
*Above: Town01*
<div class="townslide fade">
<img src="../img/Town03.jpg">
<div class="text">Town03</div>
</div>
![Town02](img/Town02.jpg)
*Above: Town02*
<div class="townslide fade">
<img src="../img/Town04.jpg">
<div class="text">Town04</div>
</div>
![Town03](img/Town03.jpg)
*Above: Town03*
<div class="townslide fade">
<img src="../img/Town05.jpg">
<div class="text">Town05</div>
</div>
![Town04](img/Town04.jpg)
*Above: Town04*
<div class="townslide fade">
<img src="../img/Town06.jpg">
<div class="text">Town06</div>
</div>
![Town05](img/Town05.jpg)
*Above: Town05*
<div class="townslide fade">
<img src="../img/Town07.jpg">
<div class="text">Town07</div>
</div>
![Town06](img/Town06.jpg)
*Above: Town06*
<div class="townslide fade">
<img src="../img/Town10.jpg">
<div class="text">Town10</div>
</div>
![Town07](img/Town07.jpg)
*Above: Town07*
![Town10](img/Town10.jpg)
*Above: Town10*
<!-- Next and previous buttons -->
<a class="prev" onclick="plusSlides(-1)">&#10094;</a>
<a class="next" onclick="plusSlides(1)">&#10095;</a>
</div>
<!-- The dots -->
<div style="text-align:center">
<span class="dot" onclick="currentSlide(1)"></span>
<span class="dot" onclick="currentSlide(2)"></span>
<span class="dot" onclick="currentSlide(3)"></span>
<span class="dot" onclick="currentSlide(4)"></span>
<span class="dot" onclick="currentSlide(5)"></span>
<span class="dot" onclick="currentSlide(6)"></span>
<span class="dot" onclick="currentSlide(7)"></span>
<span class="dot" onclick="currentSlide(8)"></span>
</div>
<script>
var slideIndex = 1;
showSlides(slideIndex);
function plusSlides(n) {
showSlides(slideIndex += n);
}
function currentSlide(n) {
showSlides(slideIndex = n);
}
function showSlides(n) {
var i;
var slides = document.getElementsByClassName("townslide");
var dots = document.getElementsByClassName("dot");
if (n > slides.length) {slideIndex = 1}
if (n < 1) {slideIndex = slides.length}
for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
for (i = 0; i < dots.length; i++) {
dots[i].className = dots[i].className.replace(" active", "");
}
slides[slideIndex-1].style.display = "block";
dots[slideIndex-1].className += " active";
}
</script>
<br>
@ -327,4 +238,4 @@ CARLA forum</a>
4th. Sensors and data</a>
</p>
</div>
</div>
</div>

View File

@ -83,28 +83,16 @@ Most sensor data objects have a function to save the information to disk. This w
Sensor data differs a lot between sensor types. Take a look at the [sensors reference](ref_sensors.md) to get a detailed explanation. However, all of them are always tagged with some basic information.
<table class ="defTable">
<thead>
<th>Sensor data attribute</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>frame</code> </td>
<td>int</td>
<td>Frame number when the measurement took place.</td>
<tr>
<td><code>timestamp</code> </td>
<td>double</td>
<td>Timestamp of the measurement in simulation seconds since the beginning of the episode.</td>
<tr>
<td><code>transform</code> </td>
<td><a href="../python_api#carlatransform">carla.Transform</a></td>
<td>World reference of the sensor at the time of the measurement.</td>
</tbody>
</table>
| Sensor data attribute | Type | Description |
| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| `frame` | int | Frame number when the measurement took place. |
| `timestamp` | double | Timestamp of the measurement in simulation seconds since the beginning of the episode. |
| `transform` | [carla.Transform](<../python_api#carlatransform>) | World reference of the sensor at the time of the measurement. |
<br>
!!! Important
`is_listening` is a __sensor attribute__ that enables/disables data listening at will.
`sensor_tick` is a __blueprint attribute__ that sets the simulation time between data received.
@ -118,96 +106,53 @@ Take a shot of the world from their point of view. The helper class [carla.Color
* __Retrieve data__ every simulation step.
<table class ="defTable">
<thead>
<th>Sensor</th>
<th>Output</th>
<th>Overview</th>
</thead>
<tbody>
<td>Depth</td>
<td><a href="../python_api#carlaimage">carla.Image</a></td>
<td>Renders the depth of the elements in the field of view in a gray-scale map.</td>
<tr>
<td>RGB</td>
<td><a href="../python_api#carlaimage">carla.Image</a></td>
<td>Provides clear vision of the surroundings. Looks like a normal photo of the scene.</td>
<tr>
<td>Semantic segmentation</td>
<td><a href="../python_api#carlaimage">carla.Image</a></td>
<td>Renders elements in the field of view with a specific color according to their tags.</td>
</tbody>
</table>
| Sensor | Output | Overview |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Depth | [carla.Image](<../python_api#carlaimage>) | Renders the depth of the elements in the field of view in a gray-scale map. |
| RGB | [carla.Image](<../python_api#carlaimage>) | Provides clear vision of the surroundings. Looks like a normal photo of the scene. |
| Semantic segmentation | [carla.Image](<../python_api#carlaimage>) | Renders elements in the field of view with a specific color according to their tags. |
<br>
---
### Detectors
Retrieve data when the object they are attached to registers a specific event.
* __Retrieve data__ when triggered.
<table class ="defTable">
<thead>
<th>Sensor</th>
<th>Output</th>
<th>Overview</th>
</thead>
<tbody>
<td>Collision</td>
<td><a href="../python_api#carlacollisionevent">carla.CollisionEvent</a></td>
<td>Retrieves collisions between its parent and other actors.</td>
<tr>
<td>Lane invasion</td>
<td><a href="../python_api#carlalaneinvasionevent">carla.LaneInvasionEvent</a></td>
<td>Registers when its parent crosses a lane marking.</td>
<tr>
<td>Obstacle</td>
<td><a href="../python_api#carlaobstacledetectionevent">carla.ObstacleDetectionEvent</a></td>
<td>Detects possible obstacles ahead of its parent.</td>
</tbody>
</table>
| Sensor | Output | Overview |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Collision | [carla.CollisionEvent](<../python_api#carlacollisionevent>) | Retrieves collisions between its parent and other actors. |
| Lane invasion | [carla.LaneInvasionEvent](<../python_api#carlalaneinvasionevent>) | Registers when its parent crosses a lane marking. |
| Obstacle | [carla.ObstacleDetectionEvent](<../python_api#carlaobstacledetectionevent>) | Detects possible obstacles ahead of its parent. |
<br>
### Other
Different functionalities such as navigation, measurement of physical properties and 2D/3D point maps of the scene.
* __Retrieve data__ every simulation step.
<table class ="defTable">
<thead>
<th>Sensor</th>
<th>Output</th>
<th>Overview</th>
</thead>
<tbody>
<td>GNSS</td>
<td><a href="../python_api#carlagnssmeasurement">carla.GNSSMeasurement</a></td>
<td>Retrieves the geolocation of the sensor.</td>
<tr>
<td>IMU</td>
<td><a href="../python_api#carlaimumeasurement">carla.IMUMeasurement</a></td>
<td>Comprises an accelerometer, a gyroscope, and a compass.</td>
<tr>
<td>LIDAR</td>
<td><a href="../python_api#carlalidarmeasurement">carla.LidarMeasurement</a></td>
<td>A rotating LIDAR. Generates a 4D point cloud with coordinates and intensity per point to model the surroundings.</td>
<tr>
<td>Radar</td>
<td><a href="../python_api#carlaradarmeasurement">carla.RadarMeasurement</a></td>
<td>2D point map modelling elements in sight and their movement regarding the sensor. </td>
<tr>
<td>RSS</td>
<td><a href="../python_api#carlarssresponse">carla.RssResponse</a></td>
<td>Modifies the controller applied to a vehicle according to safety checks. This sensor works in a different manner than the rest, and there is specific <a href="../adv_rss">RSS documentation</a> for it. </td>
<tr>
<td>Semantic LIDAR</td>
<td><a href="../python_api#carlasemanticlidarmeasurement">carla.SemanticLidarMeasurement</a></td>
<td>A rotating LIDAR. Generates a 3D point cloud with extra information regarding instance and semantic segmentation.</td>
</tbody>
</table>
| Sensor | Output | Overview |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| GNSS | [carla.GNSSMeasurement](<../python_api#carlagnssmeasurement>) | Retrieves the geolocation of the sensor. |
| IMU | [carla.IMUMeasurement](<../python_api#carlaimumeasurement>) | Comprises an accelerometer, a gyroscope, and a compass. |
| LIDAR | [carla.LidarMeasurement](<../python_api#carlalidarmeasurement>) | A rotating LIDAR. Generates a 4D point cloud with coordinates and intensity per point to model the surroundings. |
| Radar | [carla.RadarMeasurement](<../python_api#carlaradarmeasurement>) | 2D point map modelling elements in sight and their movement regarding the sensor. |
| RSS | [carla.RssResponse](<../python_api#carlarssresponse>) | Modifies the controller applied to a vehicle according to safety checks. This sensor works in a different manner than the rest, and there is specific [RSS documentation](<../adv_rss>) for it. |
| Semantic LIDAR | [carla.SemanticLidarMeasurement](<../python_api#carlasemanticlidarmeasurement>) | A rotating LIDAR. Generates a 3D point cloud with extra information regarding instance and semantic segmentation. |
<br>
---
That is a wrap on sensors and how do these retrieve simulation data.

View File

@ -52,7 +52,7 @@ A client can connect and retrieve the current world fairly easily.
```py
world = client.get_world()
```
The client can also get a list of available maps to change the current one. This will destroy the current world and create a new one.
```py
@ -274,4 +274,4 @@ CARLA forum</a>
2nd. Actors and blueprints</a>
</p>
</div>
</div>
</div>

View File

@ -15,27 +15,27 @@
/************************* DEFAULT TABLES **************************/
table.defTable {
table {
border: 1px solid #242424;
background-color: #f3f6f6;
text-align: left;
border-collapse: collapse;
}
table.defTable thead {
background: #ffffff;
table thead {
background: #ffffff;
border-bottom: 1px solid #444444;
}
table.defTable tr:nth-child(even) {
table tr:nth-child(even) {
background: #ffffff;
}
table.defTable thead th {
table thead th {
padding: 7px 13px;
}
table.defTable tbody td{
table tbody td{
padding: 7px 13px;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -164,17 +164,13 @@ To modify the way CARLA works along with the ROS bridge, edit [`share/carla_ros_
To control the step update when in synchronous mode, use the following topic. The message contains a constant named `command` that allows to __Pause/Play__ the simulation, and execute a __single step__.
<table class ="defTable">
<thead>
<th>Topic</th>
<th>Message type</th>
</thead>
<tbody>
<td><code>/carla/control</code> </td>
<td><a href="../ros_msgs#carlacontrolmsg">carla_msgs.CarlaControl</a></td>
</tbody>
</table>
<br>
| Topic | Message type |
| ------------------------------------------------ | ------------------------------------------------ |
| `/carla/control` | [carla\_msgs.CarlaControl](<../ros_msgs#carlacontrolmsg>) |
The [Control rqt plugin](https://github.com/carla-simulator/ros-bridge/blob/master/rqt_carla_control/README.md) launches a new window with a simple interface. It is used to manage the steps and publish in the corresponding topic. Simply run the following when CARLA in synchronous mode.
```sh

View File

@ -17,30 +17,14 @@ CARLA forum</a>
Information shared between ROS and CARLA regarding an actor.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>id</code> </td>
<td>uint32</td>
<td>The ID of the actor.</td>
<tr>
<td><code>parent_id</code> </td>
<td>uint32</td>
<td>The ID of the parent actor. `0` if no parent available.</td>
<tr>
<td><code>type</code> </td>
<td>string</td>
<td>The identifier of the blueprint this actor was based on.</td>
<tr>
<td><code>rolename</code> </td>
<td>string</td>
<td>Role assigned to the actor when spawned.</td>
</tbody>
</table>
| Field | Type | Description |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `id` | uint32 | The ID of the actor. |
| `parent_id` | uint32 | The ID of the parent actor. \`0\` if no parent available. |
| `type` | string | The identifier of the blueprint this actor was based on. |
| `rolename` | string | Role assigned to the actor when spawned. |
---
@ -48,44 +32,24 @@ Information shared between ROS and CARLA regarding an actor.
A list of messages with some basic information for CARLA actors.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>actors</code> </td>
<td><a href="#carlaactorinfomsg">CarlaActorInfo</a></td>
<td>List of messages with actors' information.</td>
</tobody>
</table>
| Field | Type | Description |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `actors` | [CarlaActorInfo](<#carlaactorinfomsg>) | List of messages with actors' information. |
---
## CarlaCollisionEvent.msg
Data retrieved on a collision event detected by the collision sensor of an actor.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>header</code> </td>
<td><a href="http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html">Header</a></td>
<td>Time stamp and frame ID when the message is published.</td>
<tr>
<td><code>other_actor_id</code> </td>
<td>uint32</td>
<td>ID of the actor against whom the collision was detected.</td>
<tr>
<td><code>normal_impulse</code> </td>
<td>geometry_msgs/Vector3</td>
<td>Vector representing resulting impulse from the collision.</td>
</tbody>
</table>
| Field | Type | Description |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `header` | [Header](<http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html>) | Time stamp and frame ID when the message is published. |
| `other_actor_id` | uint32 | ID of the actor against whom the collision was detected. |
| `normal_impulse` | geometry\_msgs/Vector3 | Vector representing resulting impulse from the collision. |
---
@ -93,18 +57,10 @@ Data retrieved on a collision event detected by the collision sensor of an actor
These messages control the simulation while in synchronous mode. The constant defined is translated as stepping commands.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>command</code> </td>
<td>int8</td>
<td><b>PLAY</b>=0 <br> <b>PAUSE</b>=1 <br> <b>STEP_ONCE</b>=2</td>
</tbody>
</table>
| Field | Type | Description |
| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- |
| `command` | int8 | **PLAY**=0 <br>**PAUSE**=1 <br>**STEP\_ONCE**=2 |
<br>
!!! Important
@ -115,46 +71,16 @@ These messages control the simulation while in synchronous mode. The constant de
Messages sent to apply a control to a vehicle in both modes, autopilot and manual. These are published in a stack.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>header</code> </td>
<td><a href="http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html">Header</a></td>
<td>Time stamp and frame ID when the message is published.</td>
<tr>
<td><code>throttle</code> </td>
<td>float32</td>
<td>Scalar value to cotrol the vehicle throttle: <b>[0.0, 1.0]</b></td>
<tr>
<td><code>steer</code> </td>
<td>float32</td>
<td>Scalar value to control the vehicle steering direction: <b>[-1.0, 1.0]</b> to control the vehicle steering</td>
<tr>
<td><code>brake</code> </td>
<td>float32</td>
<td>Scalar value to control the vehicle brakes: <b>[0.0, 1.0]</b></td>
<tr>
<td><code>hand_brake</code> </td>
<td>bool</td>
<td>If <b>True</b>, the hand brake is enabled.</td>
<tr>
<td><code>reverse</code> </td>
<td>bool</td>
<td>If <b>True</b>, the vehicle will move reverse.</td>
<tr>
<td><code>gear</code> </td>
<td>int32</td>
<td>Changes between the available gears in a vehicle.</td>
<tr>
<td><code>manual_gear_shift</code> </td>
<td>bool</td>
<td>If <b>True</b>, the gears will be shifted using <code>gear</code>.</td>
</tbody>
</table>
| Field | Type | Description |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| `header` | [Header](<http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html>) | Time stamp and frame ID when the message is published. |
| `throttle` | float32 | Scalar value to cotrol the vehicle throttle: **[0.0, 1.0]** |
| `steer` | float32 | Scalar value to control the vehicle steering direction: **[-1.0, 1.0]** to control the vehicle steering |
| `brake` | float32 | Scalar value to control the vehicle brakes: **[0.0, 1.0]** |
| `hand_brake` | bool | If **True**, the hand brake is enabled. |
| `reverse` | bool | If **True**, the vehicle will move reverse. |
| `gear` | int32 | Changes between the available gears in a vehicle. |
| `manual_gear_shift` | bool | If **True**, the gears will be shifted using `gear`. |
<br>
---
@ -162,78 +88,26 @@ Messages sent to apply a control to a vehicle in both modes, autopilot and manua
Static information regarding a vehicle, mostly the attributes used to define the vehicle's physics.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>id</code> </td>
<td>uint32</td>
<td>ID of the vehicle actor.</td>
<tr>
<td><code>type</code> </td>
<td>string</td>
<td>The identifier of the blueprint this vehicle was based on.</td>
<tr>
<td><code>type</code> </td>
<td>string</td>
<td>The identifier of the blueprint this vehicle was based on.</td>
<tr>
<td><code>rolename</code> </td>
<td>string</td>
<td>Role assigned to the vehicle.</td>
<tr>
<td><code>wheels</code> </td>
<td><a href="#carlaegovehicleinfowheelmsg">CarlaEgoVehicleInfoWheel</a></td>
<td>List of messages with information regarding wheels.</td>
<tr>
<td><code>max_rpm</code> </td>
<td>float32</td>
<td>Maximum RPM of the vehicle's engine.</td>
<tr>
<td><code>moi</code> </td>
<td>float32</td>
<td>Moment of inertia of the vehicle's engine.</td>
<tr>
<td><code>damping_rate_full_throttle</code> </td>
<td>float32</td>
<td>Damping rate when the throttle is at maximum.</td>
<tr>
<td><code>damping_rate_zero_throttle</code><br><code>_clutch_engaged</code> </td>
<td>float32</td>
<td>Damping rate when the throttle is zero with clutch engaged.</td>
<tr>
<td><code>damping_rate_zero_throttle</code><br><code>_clutch_disengaged</code> </td>
<td>float32</td>
<td>Damping rate when the throttle is zero with clutch disengaged.</td>
<tr>
<td><code>use_gear_autobox</code> </td>
<td>bool</td>
<td>If <b>True</b>, the vehicle will have an automatic transmission.</td>
<tr>
<td><code>gear_switch_time</code> </td>
<td>float32</td>
<td>Switching time between gears.</td>
<tr>
<td><code>clutch_strength</code> </td>
<td>float32</td>
<td>The clutch strength of the vehicle. Measured in <b>Kgm^2/s</b>.</td>
<tr>
<td><code>mass</code> </td>
<td>float32</td>
<td>The mass of the vehicle measured in Kg.</td>
<tr>
<td><code>drag_coefficient</code> </td>
<td>float32</td>
<td>Drag coefficient of the vehicle's chassis.</td>
<tr>
<td><code>center_of_mass</code> </td>
<td>geometry_msgs/Vector3</td>
<td>The center of mass of the vehicle.</td>
</tbody>
</table>
| Field | Type | Description |
| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- |
| `id` | uint32 | ID of the vehicle actor. |
| `type` | string | The identifier of the blueprint this vehicle was based on. |
| `type` | string | The identifier of the blueprint this vehicle was based on. |
| `rolename` | string | Role assigned to the vehicle. |
| `wheels` | [CarlaEgoVehicleInfoWheel](<#carlaegovehicleinfowheelmsg>) | List of messages with information regarding wheels. |
| `max_rpm` | float32 | Maximum RPM of the vehicle's engine. |
| `moi` | float32 | Moment of inertia of the vehicle's engine. |
| `damping_rate_full_throttle` | float32 | Damping rate when the throttle is at maximum. |
| `damping_rate_zero_throttle`<br>`_clutch_engaged` | float32 | Damping rate when the throttle is zero with clutch engaged. |
| `damping_rate_zero_throttle`<br>`_clutch_disengaged` | float32 | Damping rate when the throttle is zero with clutch disengaged. |
| `use_gear_autobox` | bool | If **True**, the vehicle will have an automatic transmission. |
| `gear_switch_time` | float32 | Switching time between gears. |
| `clutch_strength` | float32 | The clutch strength of the vehicle. Measured in **Kgm^2/s**. |
| `mass` | float32 | The mass of the vehicle measured in Kg. |
| `drag_coefficient` | float32 | Drag coefficient of the vehicle's chassis. |
| `center_of_mass` | geometry\_msgs/Vector3 | The center of mass of the vehicle. |
<br>
@ -242,42 +116,17 @@ Static information regarding a vehicle, mostly the attributes used to define the
Static information regarding a wheel that will be part of a [CarlaEgoVehicleInfo.msg](#carlaegovehicleinfomsg) message.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>tire_friction</code> </td>
<td>float32</td>
<td>A scalar value that indicates the friction of the wheel.</td>
<tr>
<td><code>damping_rate</code> </td>
<td>float32</td>
<td>The damping rate of the wheel.</td>
<tr>
<td><code>max_steer_angle</code> </td>
<td>float32</td>
<td>The maximum angle in degrees that the wheel can steer.</td>
<tr>
<td><code>radius</code> </td>
<td>float32</td>
<td>The radius of the wheel in centimeters.</td>
<tr>
<td><code>max_brake_torque</code> </td>
<td>float32</td>
<td>The maximum brake torque in Nm.</td>
<tr>
<td><code>max_handbrake_torque</code> </td>
<td>float32</td>
<td>The maximum handbrake torque in Nm.</td>
<tr>
<td><code>position</code> </td>
<td>geometry_msgs/Vector3</td>
<td>World position of the wheel.</td>
</tbody>
</table>
| Field | Type | Description |
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `tire_friction` | float32 | A scalar value that indicates the friction of the wheel. |
| `damping_rate` | float32 | The damping rate of the wheel. |
| `max_steer_angle` | float32 | The maximum angle in degrees that the wheel can steer. |
| `radius` | float32 | The radius of the wheel in centimeters. |
| `max_brake_torque` | float32 | The maximum brake torque in Nm. |
| `max_handbrake_torque` | float32 | The maximum handbrake torque in Nm. |
| `position` | geometry\_msgs/Vector3 | World position of the wheel. |
<br>
---
@ -285,34 +134,16 @@ Static information regarding a wheel that will be part of a [CarlaEgoVehicleInfo
Current status of the vehicle as an object in the world.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>header</code> </td>
<td><a href="http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html">Header</a></td>
<td>Time stamp and frame ID when the message is published.</td>
<tr>
<td><code>velocity</code> </td>
<td>float32</td>
<td>Current speed of the vehicle.</td>
<tr>
<td><code>acceleration</code> </td>
<td>geometry_msgs/Accel</td>
<td>Current acceleration of the vehicle.</td>
<tr>
<td><code>orientation</code> </td>
<td>geometry_msgs/Quaternion</td>
<td>Current orientation of the vehicle.</td>
<tr>
<td><code>control</code> </td>
<td><a href="#carlaegovehiclecontrolmsg">CarlaEgoVehicleControl</a></td>
<td>Current control values as reported by CARLA.</td>
</tbody>
</table>
| Field | Type | Description |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `header` | [Header](<http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html>) | Time stamp and frame ID when the message is published. |
| `velocity` | float32 | Current speed of the vehicle. |
| `acceleration` | geometry\_msgs/Accel | Current acceleration of the vehicle. |
| `orientation` | geometry\_msgs/Quaternion | Current orientation of the vehicle. |
| `control` | [CarlaEgoVehicleControl](<#carlaegovehiclecontrolmsg>) | Current control values as reported by CARLA. |
<br>
---
@ -320,54 +151,30 @@ Current status of the vehicle as an object in the world.
These messages publish lane invasions detected by a lane-invasion sensor attached to a vehicle. The invasions detected in the last step are passed as a list with a constant definition to identify the lane crossed.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>header</code> </td>
<td><a href="http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html">header</a></td>
<td>Time stamp and frame ID when the message is published.</td>
<tr>
<td><code>crossed_lane_markings</code> </td>
<td>int32[]</td>
<td><b>LANE_MARKING_OTHER</b>=0 <br> <b>LANE_MARKING_BROKEN</b>=1 <br> <b>LANE_MARKING_SOLID</b>=2</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `header` | [header](<http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html>) | Time stamp and frame ID when the message is published. |
| `crossed_lane_markings` | int32[] | **LANE\_MARKING\_OTHER**=0 <br>**LANE\_MARKING\_BROKEN**=1 <br>**LANE\_MARKING\_SOLID**=2 |
<br>
---
## CarlaScenario.msg
Details for a test scenario.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>name</code> </td>
<td>string</td>
<td>Name of the scenario.</td>
<tr>
<td><code>scenario_file</code> </td>
<td>string</td>
<td>Test file for the scenario.</td>
<tr>
<td><code>destination</code> </td>
<td>geometry_msgs/Pose</td>
<td>Goal location of the scenario.</td>
<tr>
<td><code>target_speed</code> </td>
<td>float64</td>
<td>Desired speed during the scenario.</td>
</tbody>
</table>
| Field | Type | Description |
| ---------------------------------- | ---------------------------------- | ---------------------------------- |
| `name` | string | Name of the scenario. |
| `scenario_file` | string | Test file for the scenario. |
| `destination` | geometry\_msgs/Pose | Goal location of the scenario. |
| `target_speed` | float64 | Desired speed during the scenario. |
<br>
---
@ -375,18 +182,12 @@ Details for a test scenario.
List of test scenarios to run in ScenarioRunner.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>scenarios</code> </td>
<td><a href="#carlascenariomsg">CarlaScenario[]</a></td>
<td>List of scenarios.</td>
</tbody>
</table>
| Field | Type | Description |
| -------------------------------------- | -------------------------------------- | -------------------------------------- |
| `scenarios` | [CarlaScenario[]](<#carlascenariomsg>) | List of scenarios. |
<br>
---
@ -394,365 +195,156 @@ List of test scenarios to run in ScenarioRunner.
Current state of the ScenarioRunner. It is managed using a constant.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>status</code> </td>
<td>uint8</td>
<td>Current state of the scenario as an enum: <br> <b>STOPPED</b>=0 <br> <b>STARTING</b>=1 <br> <b>RUNNING</b>=2 <br> <b>SHUTTINGDOWN</b>=3 <br> <b>ERROR</b>=4</td>
</tbody>
</table>
<br>
---
| Field | Type | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `status` | uint8 | Current state of the scenario as an enum: <br>**STOPPED**=0 <br>**STARTING**=1 <br>**RUNNING**=2 <br>**SHUTTINGDOWN**=3 <br>**ERROR**=4 |
## CarlaStatus.msg
Current world settings of the simulation.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>frame</code> </td>
<td>uint64</td>
<td>Current frame number.</td>
<tr>
<td><code>fixed_delta_seconds</code> </td>
<td>float32</td>
<td>Simulation time between last and current step.</td>
<tr>
<td><code>synchronous_mode</code> </td>
<td>bool</td>
<td>If <b>True</b>, synchronous mode is enabled.</td>
<tr>
<td><code>synchronous_mode_running</code> </td>
<td>bool</td>
<td><b>True</b> when the simulation is running. <b>False</b> when it is paused.</td>
</tbody>
</table>
<br>
---
| Field | Type | Description |
| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- |
| `frame` | uint64 | Current frame number. |
| `fixed_delta_seconds` | float32 | Simulation time between last and current step. |
| `synchronous_mode` | bool | If **True**, synchronous mode is enabled. |
| `synchronous_mode_running` | bool | **True** when the simulation is running. **False** when it is paused. |
## CarlaTrafficLightStatus.msg
Constant definition regarding the state of a traffic light.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>id</code> </td>
<td>uint32</td>
<td>ID of the traffic light actor.</td>
<tr>
<td><code>state</code> </td>
<td>uint8</td>
<td><b>RED</b>=0 <br> <b>YELLOW</b>=1 <br> <b>GREEN</b>=2 <br> <b>OFF</b>=3 <br> <b>UNKNOWN</b>=4</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| `id` | uint32 | ID of the traffic light actor. |
| `state` | uint8 | **RED**=0 <br>**YELLOW**=1 <br>**GREEN**=2 <br>**OFF**=3 <br>**UNKNOWN**=4 |
---
## CarlaTrafficLightStatusList.msg
List of traffic lights with their status.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>scenarios</code> </td>
<td><a href="#carlatrafficlightstatusmsg">CarlaTrafficLightStatus[]</a></td>
<td>A list of messages summarizing traffic light states.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- |
| `scenarios` | [CarlaTrafficLightStatus[]](<#carlatrafficlightstatusmsg>) | A list of messages summarizing traffic light states. |
---
## CarlaWalkerControl.msg
Information needed to apply a movement controller to a walker.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>direction</code> </td>
<td>geometry_msgs/Vector3</td>
<td>Vector that controls the direction of the walker.</td>
<tr>
<td><code>speed</code> </td>
<td>float32</td>
<td>A scalar value to control the walker's speed.</td>
<tr>
<td><code>jump</code> </td>
<td>bool</td>
<td>If <b>True</b>, the walker will jump.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- |
| `direction` | geometry\_msgs/Vector3 | Vector that controls the direction of the walker. |
| `speed` | float32 | A scalar value to control the walker's speed. |
| `jump` | bool | If **True**, the walker will jump. |
---
## CarlaWaypoint.msg
Data contained in a waypoint object.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>road_id</code> </td>
<td>int32</td>
<td>OpenDRIVE road's id.</td>
<tr>
<td><code>section_id</code> </td>
<td>int32</td>
<td>OpenDRIVE section's id, based on the order that they are originally defined.</td>
<tr>
<td><code>lane_id</code> </td>
<td>int32</td>
<td>OpenDRIVE lane's id, this value can be positive or negative which represents the direction of the current lane with respect to the road.</td>
<tr>
<td><code>is_junction</code> </td>
<td>bool</td>
<td><b>True</b>, if the current Waypoint is on a junction as defined by OpenDRIVE.</td>
<tr>
<td><code>is_junction</code> </td>
<td><a href="http://docs.ros.org/api/geometry_msgs/html/msg/Pose.html">geometry_msgs/Pose</a></td>
<td><b>True</b> when the simulation is running. <b>False</b> when it is paused.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `road_id` | int32 | OpenDRIVE road's id. |
| `section_id` | int32 | OpenDRIVE section's id, based on the order that they are originally defined. |
| `lane_id` | int32 | OpenDRIVE lane's id, this value can be positive or negative which represents the direction of the current lane with respect to the road. |
| `is_junction` | bool | **True**, if the current Waypoint is on a junction as defined by OpenDRIVE. |
| `is_junction` | [geometry\_msgs/Pose](<http://docs.ros.org/api/geometry_msgs/html/msg/Pose.html>) | **True** when the simulation is running. **False** when it is paused. |
---
## CarlaWorldInfo.msg
Information about the current CARLA map.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>map_name</code> </td>
<td>string</td>
<td>Name of the CARLA map loaded in the current world.</td>
<tr>
<td><code>opendrive</code> </td>
<td>string</td>
<td>.xodr OpenDRIVE file of the current map as a string.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- |
| `map_name` | string | Name of the CARLA map loaded in the current world. |
| `opendrive` | string | .xodr OpenDRIVE file of the current map as a string. |
---
## EgoVehicleControlCurrent.msg
Current time, speed and acceleration values of the vehicle. Used by the controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>time_sec</code> </td>
<td>float32</td>
<td>Current time when the controller is applied.</td>
<tr>
<td><code>speed</code> </td>
<td>float32</td>
<td>Current speed applied by the controller.</td>
<tr>
<td><code>speed_abs</code> </td>
<td>float32</td>
<td>Speed as an absolute value.</td>
<tr>
<td><code>accel</code> </td>
<td>float32</td>
<td>Current acceleration applied by the controller.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- |
| `time_sec` | float32 | Current time when the controller is applied. |
| `speed` | float32 | Current speed applied by the controller. |
| `speed_abs` | float32 | Speed as an absolute value. |
| `accel` | float32 | Current acceleration applied by the controller. |
---
## EgoVehicleControlInfo.msg
Current values within an Ackermann controller. These messages are useful for debugging.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>header</code> </td>
<td><a href="http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html">header</a></td>
<td>Time stamp and frame ID when the message is published.</td>
<tr>
<td><code>restrictions</code> </td>
<td><a href="#egovehiclecontrolmaximamsg">EgoVehicleControlMaxima</a></td>
<td>Limits to the controller values.</td>
<tr>
<td><code>target</code> </td>
<td><a href="#egovehiclecontroltargetmsg">EgoVehicleControlTarget</a></td>
<td>Limits to the controller values.</td>
<tr>
<td><code>current</code> </td>
<td><a href="#egovehiclecontrolcurrentmsg">EgoVehicleControlCurrent</a></td>
<td>Limits to the controller values.</td>
<tr>
<td><code>status</code> </td>
<td><a href="#egovehiclecontrolstatusmsg">EgoVehicleControlStatus</a></td>
<td>Limits to the controller values.</td>
<tr>
<td><code>output</code> </td>
<td><a href="#carlaegovehiclecontrolmsg">CarlaEgoVehicleControl</a></td>
<td>Limits to the controller values.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `header` | [header](<http://docs.ros.org/melodic/api/std_msgs/html/msg/Header.html>) | Time stamp and frame ID when the message is published. |
| `restrictions` | [EgoVehicleControlMaxima](<#egovehiclecontrolmaximamsg>) | Limits to the controller values. |
| `target` | [EgoVehicleControlTarget](<#egovehiclecontroltargetmsg>) | Limits to the controller values. |
| `current` | [EgoVehicleControlCurrent](<#egovehiclecontrolcurrentmsg>) | Limits to the controller values. |
| `status` | [EgoVehicleControlStatus](<#egovehiclecontrolstatusmsg>) | Limits to the controller values. |
| `output` | [CarlaEgoVehicleControl](<#carlaegovehiclecontrolmsg>) | Limits to the controller values. |
---
## EgoVehicleControlMaxima.msg
Controller restrictions (limit values). It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>max_steering_angle</code> </td>
<td>float32</td>
<td>Max. steering angle for a vehicle.</td>
<tr>
<td><code>max_speed</code> </td>
<td>float32</td>
<td>Max. speed for a vehicle.</td>
<tr>
<td><code>max_accel</code> </td>
<td>float32</td>
<td>Max. acceleration for a vehicle.</td>
<tr>
<td><code>max_decel</code> </td>
<td>float32</td>
<td>Max. deceleration for a vehicle. Default: <b>8m/s^2</b></td>
<tr>
<td><code>min_accel</code> </td>
<td>float32</td>
<td>Min. acceleration for a vehicle. When the Ackermann taget accel. exceeds this value, the input accel. is controlled.</td>
<tr>
<td><code>max_pedal</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Min. pedal.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| `max_steering_angle` | float32 | Max. steering angle for a vehicle. |
| `max_speed` | float32 | Max. speed for a vehicle. |
| `max_accel` | float32 | Max. acceleration for a vehicle. |
| `max_decel` | float32 | Max. deceleration for a vehicle. Default: **8m/s^2** |
| `min_accel` | float32 | Min. acceleration for a vehicle. When the Ackermann taget accel. exceeds this value, the input accel. is controlled. |
| `max_pedal` | float32 | Min. pedal. |
---
## EgoVehicleControlStatus.msg
Current status of the ego vehicle controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>status</code> </td><!---- TBF> <---->
<td>string</td>
<td>Current control status.</td>
<tr>
<td><code>speed_control_activation_count</code> </td><!---- TBF> <---->
<td>uint8</td>
<td>Speed controller.</td>
<tr>
<td><code>speed_control_accel_delta</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Speed controller.</td>
<tr>
<td><code>speed_control_accel_target</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Speed controller.</td>
<tr>
<td><code>accel_control_pedal_delta</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Acceleration controller.</td>
<tr>
<td><code>accel_control_pedal_target</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Acceleration controller.</td>
<tr>
<td><code>brake_upper_border</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Borders for lay off pedal.</td>
<tr>
<td><code>throttle_lower_border</code> </td><!---- TBF> <---->
<td>float32</td>
<td>Borders for lay off pedal.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| -------------------------------- | -------------------------------- | -------------------------------- |
| `status` | string | Current control status. |
| `speed_control_activation_count` | uint8 | Speed controller. |
| `speed_control_accel_delta` | float32 | Speed controller. |
| `speed_control_accel_target` | float32 | Speed controller. |
| `accel_control_pedal_delta` | float32 | Acceleration controller. |
| `accel_control_pedal_target` | float32 | Acceleration controller. |
| `brake_upper_border` | float32 | Borders for lay off pedal. |
| `throttle_lower_border` | float32 | Borders for lay off pedal. |
---
## EgoVehicleControlTarget.msg
Target values of the ego vehicle controller. It is part of a `Carla_Ackermann_Control.EgoVehicleControlInfo.msg` message.
<table class ="defTable">
<thead>
<th>Field</th>
<th>Type</th>
<th>Description</th>
</thead>
<tbody>
<td><code>steering_angle</code> </td>
<td>float32</td>
<td>Target steering angle for the controller.</td>
<tr>
<td><code>speed</code> </td>
<td>float32</td>
<td>Target speed for the controller. </td>
<tr>
<td><code>speed_abs</code> </td>
<td>float32</td>
<td>Speed as an absolute value.</td>
<tr>
<td><code>accel</code> </td>
<td>float32</td>
<td>Target acceleration for the controller.</td>
<tr>
<td><code>jerk</code> </td>
<td>float32</td>
<td>Target jerk for the controller.</td>
</tbody>
</table>
<br>
| Field | Type | Description |
| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |
| `steering_angle` | float32 | Target steering angle for the controller. |
| `speed` | float32 | Target speed for the controller. |
| `speed_abs` | float32 | Speed as an absolute value. |
| `accel` | float32 | Target acceleration for the controller. |
| `jerk` | float32 | Target jerk for the controller. |
<br>

View File

@ -47,17 +47,12 @@ According to their system suspension, vehicles in CARLA can be classified in fiv
The five groups are: *Coupe*, *Off-road*, *Truck*, *Urban*, and *Van*. In closer observation, the parameterization of these groups follows a specific pattern.
<table class ="defTable">
<tbody>
<td><b>Stiff suspension</b></td>
<td>Coupe</td>
<td>Urban</td>
<td>Van</td>
<td>Off-road</td>
<td>Truck</td>
<td><b>Soft suspension</b></td>
</tbody>
</table>
| Stiff suspension | Coupe | Urban | Van | Off-road | Truck | Soft suspension |
| ---------------- | ---------------- | ---------------- | ---------------- | ---------------- | ---------------- | ---------------- |
<br>
When moving from a soft to a stiff suspension, there are some clear tendencies in the parameterization.
@ -69,83 +64,29 @@ When moving from a soft to a stiff suspension, there are some clear tendencies i
Vehicles with the stiffest suspension.
<table class ="defTable">
<thead>
<th>Parameterization</th>
<th>Vehicles</th>
</thead>
<tbody>
<td>
<code>Suspension Force Offset</code><code>0.0</code><br>
<code>Suspension Max Raise</code><code>7.5</code><br>
<code>Suspension Max Drop</code><code>7.5</code><br>
<code>Suspension Natural Frequency</code><code>9.5</code><br>
<code>Suspension Damping Ratio</code><code>1.0</code><br>
<code>Sweep Type</code><code>SimpleAndComplex</code><br>
</td>
<td>
<code>vehicle.audi.tt</code><br>
<code>vehicle.lincoln.mkz2017</code><br>
<code>vehicle.mercedes-benz.coupe</code><br>
<code>vehicle.seat.leon</code><br>
<code>vehicle.tesla.model3</code><br>
</td>
</tbody>
</table>
<br>
| Parameterization | Vehicles |
| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `Suspension Force Offset``0.0`<br>`Suspension Max Raise` — `7.5`<br>`Suspension Max Drop` — `7.5`<br>`Suspension Natural Frequency` — `9.5`<br>`Suspension Damping Ratio` — `1.0`<br>`Sweep Type` — `SimpleAndComplex`<br> | `vehicle.audi.tt`<br>`vehicle.lincoln.mkz2017`<br>`vehicle.mercedes-benz.coupe`<br>`vehicle.seat.leon`<br>`vehicle.tesla.model3`<br> |
### Off-road
Vehicles with a soft suspension.
<table class ="defTable">
<thead>
<th>Parameterization</th>
<th>Vehicles</th>
</thead>
<tbody>
<td>
<code>Suspension Force Offset</code><code>0.0</code><br>
<code>Suspension Max Raise</code><code>15.0</code><br>
<code>Suspension Max Drop</code><code>15.0</code><br>
<code>Suspension Natural Frequency</code><code>7.0</code><br>
<code>Suspension Damping Ratio</code><code>0.5</code><br>
<code>Sweep Type</code><code>SimpleAndComplex</code><br>
</td>
<td>
<code>vehicle.audi.etron</code><br>
<code>vehicle.jeep.wrangler_rubicon</code><br>
<code>vehicle.nissan.patrol</code><br>
<code>vehicle.tesla.cybertruck</code><br>
</td>
</tbody>
</table>
<br>
| Parameterization | Vehicles |
| ----------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
| `Suspension Force Offset``0.0`<br>`Suspension Max Raise` — `15.0`<br>`Suspension Max Drop` — `15.0`<br>`Suspension Natural Frequency` — `7.0`<br>`Suspension Damping Ratio` — `0.5`<br>`Sweep Type` — `SimpleAndComplex`<br> | `vehicle.audi.etron`<br>`vehicle.jeep.wrangler_rubicon`<br>`vehicle.nissan.patrol`<br>`vehicle.tesla.cybertruck`<br> |
### Truck
Vehicles with the softest suspension.
<table class ="defTable">
<thead>
<th>Parameterization</th>
<th>Vehicles</th>
</thead>
<tbody>
<td>
<code>Suspension Force Offset</code><code>0.0</code><br>
<code>Suspension Max Raise</code><code>17.0</code><br>
<code>Suspension Max Drop</code><code>17.0</code><br>
<code>Suspension Natural Frequency</code><code>6.0</code><br>
<code>Suspension Damping Ratio</code><code>0.4</code><br>
<code>Sweep Type</code><code>SimpleAndComplex</code><br>
</td>
<td>
<code>vehicle.carlamotors.carlacola</code><br>
</td>
</tbody>
</table>
| Parameterization | Vehicles |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Suspension Force Offset``0.0`<br>`Suspension Max Raise` — `17.0`<br>`Suspension Max Drop` — `17.0`<br>`Suspension Natural Frequency` — `6.0`<br>`Suspension Damping Ratio` — `0.4`<br>`Sweep Type` — `SimpleAndComplex`<br> | `vehicle.carlamotors.carlacola`<br> |
<br>
@ -153,59 +94,24 @@ Vehicles with the softest suspension.
Vehicles with a soft suspension.
<table class ="defTable">
<thead>
<th>Parameterization</th>
<th>Vehicles</th>
</thead>
<tbody>
<td>
<code>Suspension Force Offset</code><code>0.0</code><br>
<code>Suspension Max Raise</code><code>8.0</code><br>
<code>Suspension Max Drop</code><code>8.0</code><br>
<code>Suspension Natural Frequency</code><code>9.0</code><br>
<code>Suspension Damping Ratio</code><code>0.8</code><br>
<code>Sweep Type</code><code>SimpleAndComplex</code><br>
</td>
<td>
<code>vehicle.audi.a2</code><br>
<code>vehicle.bmw.grandtourer</code><br>
<code>vehicle.chevrolet.impala</code><br>
<code>vehicle.citroen.c3</code><br>
<code>vehicle.dodge_charger.police</code><br>
<code>vehicle.mini.cooperst</code><br>
<code>vehicle.mustang.mustang</code><br>
<code>vehicle.nissan.micra</code><br>
<code>vehicle.toyota.prius</code><br>
</td>
</tbody>
</table>
| Parameterization | Vehicles |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Suspension Force Offset``0.0`<br>`Suspension Max Raise` — `8.0`<br>`Suspension Max Drop` — `8.0`<br>`Suspension Natural Frequency` — `9.0`<br>`Suspension Damping Ratio` — `0.8`<br>`Sweep Type` — `SimpleAndComplex`<br> | `vehicle.audi.a2`<br>`vehicle.bmw.grandtourer`<br>`vehicle.chevrolet.impala`<br>`vehicle.citroen.c3`<br>`vehicle.dodge_charger.police`<br>`vehicle.mini.cooperst`<br>`vehicle.mustang.mustang`<br>`vehicle.nissan.micra`<br>`vehicle.toyota.prius`<br> |
<br>
### Van
Vehicles with a middle-ground suspension.
<table class ="defTable">
<thead>
<th>Parameterization</th>
<th>Vehicles</th>
</thead>
<tbody>
<td>
<code>Suspension Force Offset</code><code>0.0</code><br>
<code>Suspension Max Raise</code><code>9.0</code><br>
<code>Suspension Max Drop</code><code>9.0</code><br>
<code>Suspension Natural Frequency</code><code>8.0</code><br>
<code>Suspension Damping Ratio</code><code>0.8</code><br>
<code>Sweep Type</code><code>SimpleAndComplex</code><br>
</td>
<td>
<code>vehicle.volkswagen.t2</code><br>
</td>
</tbody>
</table>
<br>
| Parameterization | Vehicles |
| -------------------------------------------------------------------- | -------------------------------------------------------------------- |
| `Suspension Force Offset``0.0`<br>`Suspension Max Raise` — `9.0`<br>`Suspension Max Drop` — `9.0`<br>`Suspension Natural Frequency` — `8.0`<br>`Suspension Damping Ratio` — `0.8`<br>`Sweep Type` — `SimpleAndComplex`<br> | `vehicle.volkswagen.t2`<br> |
---

View File

@ -6,13 +6,17 @@ There are two approaches to create the new colliders, but they are not completel
* __Raycast colliders__ — This approach requires some basic 3D modelling skills. A secondary collider is added to the vehicle so that raycast-based sensors such as the LIDAR retrieve more precise data.
* __Physics colliders__ — This approach follows the [tutorial](https://bitbucket.org/yankagan/carla-content/wiki/Home) created by the contributor __[Yan Kaganovsky / yankagan](https://github.com/yankagan)__ to create a mesh with no need of manual modelling. This mesh is then used as main collider for the vehicle, for physics and sensor detection (unless a secondary collider is added).
---
* [__Raycast colliders__](#raycast-colliders)
* [1-Export the vehicle FBX](#1-export-the-vehicle-fbx)
* [2-Generate a low density mesh](#2-generate-a-low-density-mesh)
* [3-Import the mesh into UE](#3-import-the-mesh-into-ue)
* [4-Add the mesh as collider](#4-add-the-mesh-as-collider)
---
* [__Physics colliders__](#physics-colliders)
* [0-Prerequisites](#0-prerequisites)
* [1-Define custom collision for wheels in Unreal Editor](#1-define-custom-collision-for-wheels-in-unreal-editor)
@ -133,4 +137,4 @@ Open CARLA and mess around for a while. If there are any doubts, feel free to po
<a href="https://forum.carla.org/" target="_blank" class="btn btn-neutral" title="Go to the CARLA forum">
CARLA forum</a>
</p>
</div>
</div>

View File

@ -15,34 +15,15 @@ If we need to generate this `.BIN` file for a custom map, we need to follow this
We have several types of meshes for navigation. The meshes need to be identified as one of those types, using specific nomenclature.
<table class ="defTable">
<thead>
<th>Type</th>
<th>Start with</th>
<th>Description</th>
</thead>
<tbody>
<td>Ground</td>
<td><code>Road_Sidewalk</code></td>
<td>Pedestrians can walk over these meshes freely (sidewalks...).</td>
<tr>
<td>Grass</td>
<td><code>Road_Crosswalk</code></td>
<td>Pedestrians can walk over these meshes but as a second option if no ground is found.</td>
<tr>
<td>Road</td>
<td><code>Road_Grass</code></td>
<td>Pedestrians won't be allowed to walk on it unless we specify some percentage of pedestrians that will be allowed.</td>
<tr>
<td>Crosswalk</td>
<td><code>Road_Road</code>, <code>Road_Curb</code>, <code>Road_Gutter</code>, <code>Road_Marking</code></td>
<td>Pedestrians can cross the roads only through these meshes.</td>
<tr>
<td>Block</td>
<td>Any other name</td>
<td>Pedestrians will avoid these meshes always (are obstacles like traffic lights, trees, houses...).</td>
</tbody>
</table>
| Type | Start with | Description |
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Ground | `Road_Sidewalk` | Pedestrians can walk over these meshes freely (sidewalks...). |
| Grass | `Road_Crosswalk` | Pedestrians can walk over these meshes but as a second option if no ground is found. |
| Road | `Road_Grass` | Pedestrians won't be allowed to walk on it unless we specify some percentage of pedestrians that will be allowed. |
| Crosswalk | `Road_Road`, `Road_Curb`, `Road_Gutter`, `Road_Marking` | Pedestrians can cross the roads only through these meshes. |
| Block | Any other name | Pedestrians will avoid these meshes always (are obstacles like traffic lights, trees, houses...). |
<br>

View File

@ -14,6 +14,7 @@ The first thing to do is use [OpenStreetMap](https://www.openstreetmap.org) to g
__1.1. Go to [openstreetmap.org](https://www.openstreetmap.org)__. If the map is not properly visualized, try changing the layer in the righ pannel.
__1.2 Search for a desired location__ and zoom in to a specific area.
![openstreetmap_view](img/tuto_g_osm_web.jpg)
!!! Warning

View File

@ -91,7 +91,7 @@ class MarkdownFile:
def inherit_join(self, inh):
self._data = join([
self._data, '<small style="display:block;margin-top:-20px;">**Inherited from ', inh, '**</small></br>\n'])
self._data,'<div class="Inherited"><small><b>Inherited from ',inh,'</b></small></div>'])
def note(self, buf):
self._data = join([self._data, buf])
@ -674,7 +674,7 @@ class Documentation:
md.textn(create_hyperlinks(md.prettify_doc(cl['doc'])))
# Generate instance variable doc (if any)
if valid_dic_val(cl, 'instance_variables'):
md.title_html(3, 'Instance Variables')
md.title(3, 'Instance Variables')
for inst_var in cl['instance_variables']:
add_doc_inst_var(md, inst_var, class_key)
# Generate method doc (if any)
@ -693,19 +693,19 @@ class Documentation:
set_list.append(method)
else:
method_list.append(method)
md.title_html(3, 'Methods')
md.title(3, 'Methods')
for method in method_list:
add_doc_method(md, method, class_key)
if len(get_list)>0:
md.title_html(5, 'Getters')
md.title(5, 'Getters')
for method in get_list:
add_doc_getter_setter(md, method, class_key, True, set_list)
if len(set_list)>0:
md.title_html(5, 'Setters')
md.title(5, 'Setters')
for method in set_list:
add_doc_getter_setter(md, method, class_key, False, get_list)
if len(dunder_list)>0:
md.title_html(5, 'Dunder methods')
md.title(5, 'Dunder methods')
for method in dunder_list:
add_doc_dunder(md, method, class_key)
md.separator()