diff --git a/Docs/img/lidar_intensity.png b/Docs/img/lidar_intensity.png new file mode 100644 index 000000000..5964e14fe Binary files /dev/null and b/Docs/img/lidar_intensity.png differ diff --git a/Docs/ref_sensors.md b/Docs/ref_sensors.md index 58b0fc4fa..616d9da3a 100644 --- a/Docs/ref_sensors.md +++ b/Docs/ref_sensors.md @@ -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: `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: +
+![LidarIntensityComputation](img/lidar_intensity.png) +
+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 dropoff_general_rate. 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 -30.0 Angle in degrees of the lowest laser. +atmosphere_attenuation_rate +float +0.004 +Coefficient that measures the lidar instensity loss per meter. Check the intensity computation above. + +dropoff_general_rate +float +0.45 +General proportion of points that are randomy dropped. + +dropoff_intensity_limit +float +0.8 +For the intensity dropoff, the limit above which we do not drop any point. + +dropoff_zero_intensity +float +0.4 +For the intensity dropoff, the maximum drop off at zero intensity. + sensor_tick float 0.0 @@ -570,7 +596,7 @@ The rotation of the LIDAR can be tuned to cover a specific angle on every simula raw_data bytes -Array of 32-bits floats (XYZ of each point). +Array of 32-bits floats (XYZI of each point). diff --git a/PythonAPI/docs/sensor_data.yml b/PythonAPI/docs/sensor_data.yml index a4e87f0f2..80bd28e3d 100644 --- a/PythonAPI/docs/sensor_data.yml +++ b/PythonAPI/docs/sensor_data.yml @@ -131,7 +131,7 @@ - var_name: raw_data type: bytes 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: - def_name: save_to_disk