First version of the documentation. Yet to be completed.

This commit is contained in:
Daniel Santos-Olivan 2020-07-02 18:25:49 +02:00 committed by Marc Garcia Puig
parent d18ba38144
commit 97cf13700c
3 changed files with 29 additions and 3 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -472,7 +472,13 @@ This sensor simulates a rotating Lidar implemented using ray-casting.
The points are computed by adding a laser for each channel distributed in the vertical FOV. The rotation is simulated computing the horizontal angle that the Lidar rotated in a frame. The point cloud is calculated by doing a ray-cast for each laser in every step: The points are computed by adding a laser for each channel distributed in the vertical FOV. The rotation is simulated computing the horizontal angle that the Lidar rotated in a frame. The point cloud is calculated by doing a ray-cast for each laser in every step:
`points_per_channel_each_step = points_per_second / (FPS * channels)` `points_per_channel_each_step = points_per_second / (FPS * channels)`
A Lidar measurement contains a packet with all the points generated during a `1/FPS` interval. During this interval the physics are not updated so all the points in a measurement reflect the same "static picture" of the scene. A Lidar measurement contains a packet with all the points generated during a `1/FPS` interval. During this interval the physics are not updated so all the points in a measurement reflect the same "static picture" of the scene. The information of the Lidar measurement is enconded 4D points. Being the first three, the space points in xyz coordinates and the last one intensity loss during the travel. This intensity is computed by:
<br>
![LidarIntensityComputation](img/lidar_intensity.png)
<br>
where a is the attenuation coefficient and d is the distance to the sensor.
In order to increase the realism we add the possibiliy of dropping cloud points. This is done in two different ways. In a general way, we can randomly drop points with a probability given by <b>dropoff_general_rate</b>.
This output contains a cloud of simulation points and thus, can be iterated to retrieve a list of their [`carla.Location`](python_api.md#carla.Location): This output contains a cloud of simulation points and thus, can be iterated to retrieve a list of their [`carla.Location`](python_api.md#carla.Location):
@ -526,6 +532,26 @@ The rotation of the LIDAR can be tuned to cover a specific angle on every simula
<td>-30.0</td> <td>-30.0</td>
<td>Angle in degrees of the lowest laser.</td> <td>Angle in degrees of the lowest laser.</td>
<tr> <tr>
<td><code>atmosphere_attenuation_rate</code></td>
<td>float</td>
<td>0.004</td>
<td>Coefficient that measures the lidar instensity loss per meter. Check the intensity computation above.</td>
<tr>
<td><code>dropoff_general_rate</code></td>
<td>float</td>
<td>0.45</td>
<td>General proportion of points that are randomy dropped.</td>
<tr>
<td><code>dropoff_intensity_limit</code></td>
<td>float</td>
<td>0.8</td>
<td>For the intensity dropoff, the limit above which we do not drop any point.</td>
<tr>
<td><code>dropoff_zero_intensity</code></td>
<td>float</td>
<td>0.4</td>
<td>For the intensity dropoff, the maximum drop off at zero intensity.</td>
<tr>
<td><code>sensor_tick</code></td> <td><code>sensor_tick</code></td>
<td>float</td> <td>float</td>
<td>0.0</td> <td>0.0</td>
@ -570,7 +596,7 @@ The rotation of the LIDAR can be tuned to cover a specific angle on every simula
<tr> <tr>
<td><code>raw_data</code></td> <td><code>raw_data</code></td>
<td>bytes</td> <td>bytes</td>
<td>Array of 32-bits floats (XYZ of each point).</td> <td>Array of 32-bits floats (XYZI of each point).</td>
</tbody> </tbody>
</table> </table>

View File

@ -131,7 +131,7 @@
- var_name: raw_data - var_name: raw_data
type: bytes type: bytes
doc: > doc: >
List of 3D points received as data. Received list of 4D points. Each point consists in a 3D-xyz data plus the intensity computed for that point.
# - METHODS ---------------------------- # - METHODS ----------------------------
methods: methods:
- def_name: save_to_disk - def_name: save_to_disk