Skip to content

Configuring Perception Topics#

This section describes properties for configuring perception topics that scenario_simulator_v2 publishes to Autoware.

Overview#

Syntax#

Perception topics are configurable with the following syntax:

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "isEgo"
                  value: "true"
                - name: "<NAME>"
                  value: "<VALUE>"

where <NAME> and <VALUE> can be set to:

Name Value Default Description
detectedObjectMissingProbability A double type value between 0.0 and 1.0 0.0 Do not publish the perception topic with the given probability.
detectedObjectPositionStandardDeviation A positive double type value 0.0 Randomize the positions of other vehicles included in the perception topic according to the given standard deviation.
detectedObjectPublishingDelay A positive double type value 0.0 Delays the publication of the perception topic by the specified number of seconds.
detectedObjectGroundTruthPublishingDelay A positive double type value 0.0 Delays the publication of the perception ground truth topic by the specified number of seconds.
detectionSensorRange A positive double type value 300.0 Specifies the sensor detection range for detected object.
isClairvoyant A boolean type value false Specifies whether the detected object is a Clairvoyant. If this parameter is not defined explicitly, the property of detectionSensorRange is not reflected and only detected object detected by lidar is published.
pointcloudChannels A positive integer type value 16 Number of channels of pseudo LiDAR inside the simulator used to generate pointclouds.
pointcloudHorizontalResolution A positive double type value 1.0 Horizontal angular resolution of the pseudo LiDAR inside the simulator used to generate the pointcloud.
pointcloudVerticalFieldOfView A positive double type value 30.0 Vertical field of view of the pseudo LiDAR inside the simulator used to generate the pointcloud.
randomSeed A positive integer type value 0 Specifies the seed value for the random number generator.

These properties are not exclusive. In other words, multiple properties can be specified at the same time. However, these properties only take effect for entities that have the ObjectController's property isEgo set to true (that is, entities controlled by Autoware). Otherwise the property is silently ignored.

Property detectedObjectMissingProbability#

Summary - Do not publish the perception topic with the given probability.

Purpose - scenario_simulator_v2 publishes the position of the vehicle in the simulation space as it is to Autoware as a perception result. This is the desired behavior for testing the planning module in isolation of performance and accuracy concerns of the perception module. Because, as long as the simulation is accurate, the perception result will not lose the position of other vehicles. However, on the other hand, there is a problem that the fault tolerance performance of the planning module cannot be tested. This property addresses this problem by providing a means to avoid publishing perception results with a certain probability.

Specification - The property value must be a real number between 0 and 1. The value is the probability of not publishing the perception result. That is, a value of 0 will publish all perception results and a value of 1 will not publish any perception results. It is an error if the value is outside the range of 0 to 1.

Guarantee - Since the random number generator is a pseudo-random number generator, its behavior is deterministic. Therefore, as long as scenario_simulator_v2 can run at the specified frame rate, the loss of sight of other vehicles is reproducible. However, since Autoware's behavior is nondeterministic, if the scenario is such that vehicles interact with each other, or if the scenario defines triggers for events that depend on Autoware's behavior, the progress of the scenario itself will be nondeterministic. In other words, scenario_simulator_v2 makes every effort to reproducible results, but the reproducibility of test results involving Autoware is not guaranteed.

Note - This property shares the random number generator with the property detectedObjectPositionStandardDeviation.

Default behavior - If the property is not specified, the default value is "0.0", meaning no missing other vehicles.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "isEgo"
                  value: "true"
                - name: "detectedObjectMissingProbability"
                  value: "0.7"

Property detectedObjectPositionStandardDeviation#

Summary - Randomize the positions of other vehicles included in the perception topic according to the given standard deviation.

Purpose - scenario_simulator_v2 publishes the position of the vehicle in the simulation space as it is to Autoware as a perception result. This is the desired behavior for testing the planning module in isolation of performance and accuracy concerns of the perception module. Because, as long as the simulation is accurate, the perception result will always point to the true position. However, on the other hand, there is a problem that the fault tolerance performance of the planning module cannot be tested. This property addresses this problem by randomizing the vehicle positions included in the perception results by the specified standard deviation.

Specification - The property's value must be a positive real number. The value is the standard deviation. It is an error if the value is negative. The vehicle position is randomized by adding normally distributed pseudorandom numbers generated by a 32-bit Mersenne Twister to each of the x and y axes. The random numbers added to the x-axis and y-axis are generated separately. See the property randomSeed for how to set the pseudo-random number seed value.

Guarantee - Since the random number generator is a pseudo-random number generator, its behavior is deterministic. Therefore, as long as scenario_simulator_v2 can run at the specified frame rate, the randomized perception results by scenario_simulator_v2 are reproducible. However, since Autoware's behavior is nondeterministic, if the scenario is such that vehicles interact with each other, or if the scenario defines triggers for events that depend on Autoware's behavior, the progress of the scenario itself will be nondeterministic. In other words, scenario_simulator_v2 makes every effort to reproducible results, but the reproducibility of test results involving Autoware is not guaranteed.

Note - Distribution generators other than normal distribution are currently not supported.

Note - This property shares the random number generator with the property detectedObjectMissingProbability.

Default behavior - If the property is not specified, the default value is "0.0", meaning no randomization.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "isEgo"
                  value: "true"
                - name: "detectedObjectPositionStandardDeviation"
                  value: "3"

Property detectedObjectPublishingDelay#

Summary - Delays the publication of the perception topic by the specified number of seconds.

Purpose - Normally, Autoware reflects the surrounding situation in the steering operation by processing the data in the order of the sensing module, perception module, planning module, and vehicle driver. However, when not connected with AWSIM, scenario_simulator_v2 skips the sensing module and perception module and directly generates the data of the perception result, and sends it to the planning module. This behavior is desirable as a test of the planning module, but on the other hand, there is a problem that the time until the perception result is generated is unrealistically fast in response to changes in the environment surrounding the vehicle. This property works around this problem by setting an interval of the specified number of seconds between scenario_simulator_v2 generating a perception result and publishing it.

Specification - The property's value must be a positive real number. The unit is seconds. It is an error if the value is negative. Since the delay is set to the same value for each topic, it is not possible to delay only a specific topic.

Guarantee - This delay setting ensures that scenario_simulator_v2 publishes the perception results in a consistent order. They are published according to their original order. However, while scenario_simulator_v2 guarantees to publish in order, it does not guarantee that it reaches the planning module in order. This is because the arrival order of topics in ROS 2 is not guaranteed.

Note - This feature only adjusts the interval between ssv2 generating a perception result and publishing it. Note that there is another kind of delay between when scenario_simulator_v2 publishes the perception result and when it reaches the planning module.

Default behavior - If the property is not specified, the default value is "0.0", meaning no delay.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "isEgo"
                  value: "true"
                - name: "detectedObjectPublishingDelay"
                  value: "3"

Property detectedObjectGroundTruthPublishingDelay#

Summary - Delays the publication of the perception ground truth topic by the specified number of seconds.

Purpose - Unlike the detected object's topic, which mimics the actual perception topic, the perception ground truth topic's delay does not need to be fine-tuned. On the other hand, in some cases you may want to receive the ground truth of perception for evaluation sooner rather than later. Also, in some cases, there is a need to receive the perception ground truth topic at the same timing as the perception topic with noise. To accommodate these, simple_sensor_simulator flexibly delays the perception ground truth topic according to the detectedObjectGroundTruthPublishingDelay value.

Specification - Same as one for detectedObjectPublishingDelay

Guarantee - Same as one for detectedObjectPublishingDelay

Note - This feature only adjusts the interval between scenario_simulator_v2 generating a perception ground truth and publishing it. Note that there is another kind of delay between when scenario_simulator_v2 publishes the perception ground truth and when it reaches the receiver node.

Default behavior - If the property is not specified, the default value is "0.0", meaning no delay.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "isEgo"
                  value: "true"
                - name: "detectedObjectGroundTruthPublishingDelay"
                  value: "3"

Property pointcloudChannels#

Summary - Number of channels of pseudo LiDAR inside the simulator used to generate pointclouds.

Purpose - The simple_sensor_simulator simulates a simple LiDAR, such as a horizontally rotating vertically aligned laser, typical of the VLP-16, to generate a pointcloud. The default settings produce a pointcloud that exactly mimics the sensing results from the VLP-16. However, VLP-16 is a relatively low pointcloud density LiDAR used with Autoware, so if a higher pointcloud density LiDAR is to be installed, it will be necessary to simulate a scenario with a higher pointcloud density to match the actual vehicle. This property addresses this issue by providing a means to specify the number of pseudo LiDAR channels.

Specification - The property value must be a real number greater than or equal to 1. Zero or negative values are errors. The upper limit of values is the maximum value of a 64-bit unsigned integer, but computer performance effectively limits the value to much lower values.

Guarantee - The simple_sensor_simulator does not simulate a realistic LiDAR. For example, in the case of a LiDAR with a mechanically rotating laser structure, the resulting point cloud will be distorted when moving at high speeds, but simple_sensor_simulator cannot simulate such behavior and produces an undistorted pointcloud.

Default behavior - If the property is not specified, the default value is "16". When the properties pointcloudChannels and pointcloudVerticalFieldOfView are both at their default values, the behavior mimics Velodyne VLP-16.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: 'isEgo'
                  value: 'true'
                - name: 'pointcloudChannels'
                  value: '128'

Property pointcloudHorizontalResolution#

Summary - Horizontal angular resolution of the pseudo LiDAR inside the simulator used to generate the pointcloud.

Purpose - To address the same issues as the property pointcloudChannels, this property provides a means to specify the angular resolution of the pseudo LiDAR.

Specification - The property value must be a real number greater than zero. The unit is degrees. If the value is zero or negative, it is an error.

Guarantee - Same as one for pointcloudChannels

Default behavior - If the property is not specified, the default value is "1.0".

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: 'isEgo'
                  value: 'true'
                - name: 'pointcloudHorizontalResolution'
                  value: '1.5'

Property pointcloudVerticalFieldOfView#

Summary - Vertical field of view of the pseudo LiDAR inside the simulator used to generate the pointcloud.

Purpose - To address the same issues as the property pointcloudChannels, this property provides a means to specify the vertical field of view of the pseudo LiDAR.

Specification - The property value must be a real number greater than zero. The unit is degrees. A value of zero or negative is an error. The specified angle is assigned equally up and down to the horizontal plane as viewed from the pseudo LiDAR. For example, if the value 30.0 is specified, the vertical field of view is +15° to -15°.

Guarantee - Same as one for pointcloudChannels

Default behavior - If the property is not specified, the default value is "30.0". When the properties pointcloudChannels and pointcloudVerticalFieldOfView are both at their default values, the behavior mimics Velodyne VLP-16.

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: 'isEgo'
                  value: 'true'
                - name: 'pointcloudVerticalFieldOfView'
                  value: '45.678'

Property randomSeed#

Summary - Specifies the seed value for the random number generator.

Purpose - By fixing the seed value of the random number generator, the random number sequence is reproducible.

Specification - Gives the specified value as the seed value for the random number generator. The random number generator is shared by the various properties covered in this section.

Guarantee - Since the random number generator is a pseudo-random number generator, the generated random number sequence is always the same as long as the same seed value is given. Note, however, that obtaining the same sequence of random numbers does not necessarily mean that the same scenario execution results will be obtained since the progress of the scenario is not deterministic.

Default behavior - If the property is not specified, the default value is "0".

Example -

        ObjectController:
          Controller:
            name: '...'
            Properties:
              Property:
                - name: "randomSeed"
                  value: "0"