Simple Science

Cutting edge science explained simply

# Computer Science # Software Engineering # Robotics

Innovative Road Scenarios for Self-Driving Car Testing

Creating diverse road setups improves safety testing for self-driving vehicles.

Fan Yang, You Lu, Bihuan Chen, Peng Qin, Xin Peng

― 8 min read


Unique Road Sets for Car Unique Road Sets for Car Testing through diverse road scenarios. Enhancing self-driving car safety
Table of Contents

As Self-driving Cars become more common, there is a growing need to test them in different driving situations. However, when it comes to the actual roads that these cars will drive on, not much attention has been given to creating varied road types and layouts. Current methods either make basic road parts without building whole road systems or create entire roads that are just straight and boring. This lack of variety means that the scenarios used to test these cars aren't really up to par. So, we decided to come up with a plan to create more interesting and varied road setups for Testing.

The Need for Testing

Self-driving cars are not just fancy toys; they can help improve safety on the roads. They aim to reduce accidents and offer mobility to those who may not be able to drive. However, before we can truly trust these cars to drive themselves, they need to show that they are at least a bit safer than regular drivers. To do that, companies need to drive these cars over 11 billion miles just to prove they are 20% safer than human drivers. That's a pretty tall order!

On-the-road testing is costly and can't cover every possible problem these cars might face. That's where Simulated scenarios come in. By creating realistic driving situations for the cars to react to, we can test their safety without risking lives.

Current Testing Methods

Companies like Waymo have logged a ton of simulated driving miles - over 15 billion as of early 2021. Various methods have been used to create these driving situations, but most focus on things like how drivers and pedestrians behave, or what the weather is like, and neglect the roads themselves.

Some recent efforts have been made to come up with more varied road situations. However, these efforts still fall short. Either they produce simple road parts or they create full networks without any interesting features. This means the roads all look pretty much the same, which is not what we need for proper testing.

Our Solution

To tackle this issue, we came up with a systematic way to generate diverse road setups. First, we identified eight types of basic road parts. Each of these parts can be adjusted in various ways to reflect different road shapes and designs.

Next, we connected these road parts in creative ways, keeping in mind to choose less common parts to add more variety to the setups. To make sure there aren't any duplicates, we got rid of any roads that looked too similar to others.

In the end, we took the road scenarios we generated and turned them into high-definition maps and 3D scenes. These can be used by simulators, making it easy to test the self-driving cars in various conditions.

The Importance of Diversity

Testing self-driving cars requires a multitude of different road types and layouts. A single type of road won't show us how a car reacts to different scenarios. Therefore, diversity in design is essential. For example, how will a self-driving car handle a winding road compared to a straight one? What about junctions and forks? Each scenario helps engineers test specific functions of the car's self-driving abilities.

The Eight Types of Road Components

To create a strong foundation for our scenarios, we defined eight types of typical road components. Here they are, described in simple terms:

  1. Straight Road: A big ole stretch of pavement that just goes straight ahead.
  2. Curved Road: This road bends and turns, needing the car to adjust its steering to stay on path.
  3. Lane Switch: Just like it sounds, this is where cars change lanes, either increasing or decreasing the number of lanes.
  4. Fork: A road that splits into two, letting cars decide which way they want to go.
  5. T-Intersection: Think of a “T” shape where one road meets another, allowing cars to continue straight or turn.
  6. Intersection: The place where two roads cross, allowing for a good old-fashioned game of chicken.
  7. U-Shaped Road: This is a fun one! It’s like a sharp turn that flips you around 180 degrees.
  8. Roundabout: A circular path where cars can go around a center island, allowing traffic to flow smoothly.

Each of these components could be adjusted in terms of length, number of lanes, and more to create unique setups.

How Do We Connect the Dots?

So, now that we have all this road knowledge, how do we put it all together? We came up with a method to connect these road parts in a way that keeps things fresh.

Our method starts by keeping track of how often we use each road part. This way, we can favor using parts that haven't been used much yet. We then select a part to start with, and from there, we keep making connections until we hit a certain limit, like time spent or number of parts used.

This method ensures we keep things interesting, as it randomly includes the less common parts and combines them creatively. Over time, we build up a set of unique road scenarios that can provide valuable testing situations.

Say Goodbye to Duplicates

Once we've generated a bunch of road setups, we need to ensure we don't have any repeats. Having the same road scenarios can skew results and defeat the purpose of diverse testing, so we put in place a way to measure the similarity between different setups.

We basically treat each road scenario as a graph, where road parts are points, and connections are lines between them. If two scenarios are too similar, we consider one of them a duplicate and toss it out.

Bringing It All Together

With our final batch of unique road scenarios in hand, we're ready to convert them into formats that can be readily used in simulators. We use tools like RoadRunner to turn our scenario scripts into HD map files and 3D scene files.

By using these formats, self-driving cars can be tested in simulated environments that mirror real-world driving much closer than ever before.

Evaluating Our Approach

Now that we’ve generated these diverse road scenarios, how well do they hold up in testing? We aimed to answer two main questions:

  1. Are our generated road scenarios effective?
  2. Can they be used in real simulations?

To evaluate these scenarios, we generated a large number for comparative analysis. We compared our method against a baseline approach that simply picked random road parts. In our tests, we discovered that our method consistently generated more unique road scenarios and did so faster than the baseline.

Success Metrics and Results

In our experiments, we managed to track the number of unique road scenarios generated over time. What we found was that although our method used a bit longer in the beginning as it computed the guidance, it ultimately produced a higher number of unique scenarios in less time.

The uniqueness rate was significantly higher too, showing that our approach effectively created diverse road configurations.

Usability in Real-Life Simulations

After validating the road scenarios, we ran several tests to see how well they worked in actual simulations. We compiled the generated road scenarios into 3D scene files and HD map files, which were then tested within self-driving systems like Apollo.

We were happy to find that over 92% of the scenarios were successfully compiled, which is a good sign for their usability. This means that when it comes time for the self-driving cars to face the simulated world, they will have a rich variety of roads to contend with.

Future Improvements

While our method has shown promising results, there's still room for improvement. We’ve only sketched the outline with the eight types of road components and would love to expand this list to include even more variety.

Additionally, we only focused on road-level scenarios, but there's a whole world of elements above and beyond that, like traffic signs and dynamic objects. We plan to integrate these into our scenarios in the future.

Conclusion

We’ve set out to create a method for generating diverse road scenarios for testing self-driving cars, and the results have been encouraging. By defining different road components, guiding their connections, and ensuring no duplicates sneak in, we’ve laid the groundwork for more effective testing.

As autonomous vehicles continue to evolve, so too will our methods for testing them. We hope that our work will play a role in paving the way for safer roads and smarter cars. And who knows? Maybe one day, these cars will be so good they can even drive us to the coffee shop without us lifting a finger. Now that sounds like a win-win!

More from authors

Similar Articles