Skip to content

18.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:07

Abstract

In this pull-request, a noise for LiDAR point cloud is introduced.
The noise parameters are based on one in detected objects.
And the noises are calculated independently for each point cloud.

Details

noise coordinate system

In this figure, I applied radial and tangental noises with +1.0m mean and 0.0m standard_deviation parameters for the left car.

image

parameters

You can specify noise for

  • radial direction to simulate distance errors of lidar points
  • tangental direction to simulate beam angle errors of lidar points

Each noise has mean and standard_deviation parameter array with eclipse coordinate based value selection.

Actual parameters
    /perception/obstacle_segmentation/pointcloud:
      version: 20240605 # architecture_type suffix (mandatory)
      seed: 0 # If 0 is specified, a random seed value will be generated for each run.
      noise:
        model:
          version: 1 # LiDAR point cloud noise model version. Currently only v1 is supported.
        v1: # This clause is used only if `model.version` is 1.
          no_noise_to_all:
            noise_application_entities:
              types: ["*"]
              subtypes: ["*"]
              names: ["*"]
            ellipse_y_radii: [10.0, 20.0, 40.0, 60.0, 80.0, 120.0, 150.0, 180.0, 1000.0]
            distance:
              radial:  # Radial direction (from sensor to point)
                mean:
                  ellipse_normalized_x_radius: 1.0
                  values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
                standard_deviation:
                  ellipse_normalized_x_radius: 1.0
                  values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
              tangential:  # Tangential direction (perpendicular to radial)
                mean:
                  ellipse_normalized_x_radius: 1.0
                  values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
                standard_deviation:
                  ellipse_normalized_x_radius: 1.0
                  values: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
            true_positive:
              rate:
                ellipse_normalized_x_radius: 1.0
                values: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]

performance

I measured the processing time of raycast( Raycaster::raycast ) and noise ( LidarNoiseModelV1::applyNoise ) time, with 2 entity scenario like the image in coordinate system section.
I measured this on my desktop PC(Intel(R) Core(TM) i9-14900K)

Configuration:
  Avg Beam Count:      5776
  Avg Entity Count:    2.0
  Avg Hit Point Count: 237

Raycast Statistics (Total):
  Mean:    261.7 μs
  Std Dev: 47.8 μs
  Samples: 1000

Noise Statistics:
  Mean:    20.6 μs
  Std Dev: 5.3 μs
  Samples: 1000

gallery

Apply radial noise to the left car.

simplescreenrecorder-2025-10-21_14.27.01.mp4

References

Regression Test: OK

Destructive Changes

None

The default parameters do not apply any noises that is same behavior before this pull-request.

Known Limitations

None

Related Issues