Unlocking Safer Roads with Scenarios & Variations

  • Published
  • 6 mins read

This blog dives into the world of scenario creation and variation generation, exploring their critical role in building safer, more reliable ADAS features. From simulating sudden pedestrian crossings to diverse weather conditions, these virtual worlds help refine decision-making, ultimately shaping the future of safer and more reliable self-driving technology.

What is a scenario?

Imagine you’re creating a play for a robot car to follow. In the Advanced Driver Assistance Systems (ADAS) world, a scenario is like a scene from that play. It describes a specific situation the car might encounter while driving, like:

  • A child suddenly running across the street.
  • Another car swerving into your lane.
  • Heavy fog limiting visibility. ?
  • A traffic light malfunctioning.

Each scenario has different “actors” (cars, people, objects) and their actions like moving, stopping, or appearing unexpectedly. It is like giving the car a script to follow and test how it reacts in different situations.

The need for scenarios

They help developers identify weaknesses in the ADAS system before it hits the road. They ensure the system works in various situations, just like preparing an actor for different scenes. This is especially true for edge cases. In the real world, it is difficult to find good data of cases such as collisions and accidents. Using scenarios and simulations, the ADAS system can be trained to be prepared for even the most unlikely of situations. Moreover, they make testing safer and more efficient, saving time and money compared to real-world testing.

Figure 1: ADAS systems require a large amount of training data to be safe on real?roads

Levels of Abstraction

A scenario can be divided into categories based on how much detail is provided in the scenario. Under the OpenScenario 2.0 standard, a scenario can be abstract, logical and concrete.

An Abstract scenario can be thought of as the outline for a scene. It gives the basic idea without all the details:

  • Situation: The car is driving on a road.
  • Challenge: An object appears in the car’s path.
  • Possible actors: The object could be a pedestrian, another car, an animal, or anything else.
  • Goal: The car needs to react safely to avoid a collision.

This is helpful for preparing different situations the car might face, but it is not specific enough to actually test the system.

A Logical scenario has some more details attached to it, with ranges or probability distributions assigned to some parameters.

  • Situation: The car is driving on a road with a speed between 30 to 60 kmph
  • Challenge: An object appears in the car’s path from behind a parked car 15 to 25 metres ahead.
  • Possible actors: The object must be a pedestrian but of any age group (child, adult, old).
  • Goal: The car needs to react safely to avoid a collision.

This type of scenario helps to paint a more specific picture of what needs to happen and can serve as a blueprint to generate variations, but it still cannot be used for testing.

Figure 2: Small example representing levels of abstraction in OpenScenario 2.0

A Concrete scenario is like a detailed scene description in the script:

  • Situation: The car is driving at 30 kmph on a sunny day.
  • Challenge: A child darts out from behind a parked car 10 meters ahead.
  • Actors: The child is running at 5 kmph, wearing a red jacket.
  • Goal: The car must brake safely and come to a complete stop before hitting the child.

This level of detail allows engineers to program the car’s response and test it in a simulator to see if it behaves as expected. This type of scenario can be obtained by finalizing values from the ranges defined in the Logical Scenario.

The need for scenario variations

In real-world driving, situations rarely happen exactly the same way twice. A child running across the street might be wearing different clothes, the sun might be obscured by clouds or the car might be going slightly faster. That’s where scenario variations come in, playing a critical role in testing ADAS systems for several reasons:

  • Exposing edge cases: Imagine testing a car’s response to a child running out only on a sunny day at 30 kmph. What if it is raining and the car is going 40 kmph? Variations help explore borderline situations not covered by a single concrete scenario, potentially revealing weaknesses in the ADAS system’s ability to adapt to different conditions.
  • Building robustness: By testing across various scenarios, you do not just check if the system works once, but if it consistently performs well under different circumstances. This builds robustness and generalizability, making the ADAS system less likely to be surprised by unexpected factors on the road.
  • Identifying hidden biases: Imagine the car always stops safely for children in red jackets but struggles with those in blue. Scenario variations help uncover such hidden biases that might not be apparent in limited testing. This ensures the system treats all situations fairly and does not rely on specific, unintended cues.
  • Improving decision-making: By observing how the ADAS system reacts in different variations, engineers can understand its decision-making process better. This allows them to refine the algorithms and logic behind the system, leading to more sophisticated and reliable responses in diverse situations.

Generating scenario variations

Generating scenario variations is one of the services we provide at SimDaaS, with the capability of generating a multitude of scenario variations from just the base scenario provided. Our module takes a base scenario as input and generates variations based on that. It has a collection of supported parameters, such as speed, vehicle model, acceleration, deceleration and lane change action speed. It performs permutations on the instances of the supported parameters present in the base file, based on distribution logic, and generates variations of the base scenario.

Figure 3: Example of a Cut-in scenario with multiple variations

Figure 2 shows a generated case where, using the variation engine module developed by SimDaaS, a base scenario of a cut-in maneuver is used to generate scenario variations by changing vehicle models, environment and time. Having a large number of scenarios is crucial for training any ADAS system and generating variations of existing scenarios helps smooth the gaps in the learning process of the model.

As technology evolves and the world throws even more unexpected situations our way, the dedication to diverse and challenging scenarios will be paramount. By embracing this virtual testing ground, we can refine ADAS not just for today’s roads, but for the unpredictable future, ensuring a smoother, safer ride for all. Visit our company’s website to learn more about our work.