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.
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 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"