When I think about self-driving cars, the first question that pops into my mind is, “When are they going to get here?” I’m tired of driving myself around town and getting stuck in traffic! You might ask the same question if you are a software developer for autonomous vehicles or cars with advanced driver assistance systems (ADAS). Up until now, the answer has been, “When they’re extremely safe.”
In the United States, the National Highway Traffic Safety Administration estimates that vehicles with high levels of autonomy will not arrive until after 2025. This is primarily because ADAS-enabled vehicles are held to a higher standard of safety than human drivers, and this standard is extremely difficult to meet. The RAND Corporation recently released research that shows that allowing autonomous vehicles on the roads before they’re even 90% safe could help save lives. This research, and laws being considered by the US Congress, could help put self-driving cars on the roads before they meet stringent safety requirements.
Most ADAS vehicle car wrecks are caused by other human drivers.
Safety Difficulties in ADAS Enabled Vehicles
There are two main components to an ADAS-enabled car that make it difficult to guarantee safety: complex software and the possibility of hardware failures.
You know how tricky things can be on the software side because you work on it. A microcontroller is either parsing object data or interpreting raw data from a variety of sensors around the car. Programs also run all of the infotainment and other high tech features of the car. Meanwhile, your system makes decisions based on incoming information from your sensor arrays and activates safety-critical features like automatic braking. To even analyze and certify a system that is this complex you need special tools like a static analyzer. With all of these moving pieces, it can be very difficult to guarantee the safety of a self-driving car. You can try to use other tools, such as a deep neural network (DNN), to do that. However, even artificial intelligence (AI) has its faults, and it’s essentially impossible to predict with 100% certainty what it will do. To ensure safety, you can add supervisory features to check your DNN, but that adds more complexity and cost.
While bugs in your code can cause serious problems, cybersecurity can also be a safety issue. Cars with ADAS features have very large attack surfaces, which are not currently well protected. Securing embedded systems in the field is difficult even when they’re not interacting with users. Self-driving cars will certainly be used as taxis, giving passengers access to their systems and increasing the likelihood of attempted breaches.
We also need to worry about redundant systems in the hardware. Many smart vehicles now combine an array of different kinds of sensors to reduce the risk of the car incorrectly sensing its environment. We all know that car parts break all the time, which means that the sensors that an autonomous vehicle uses to navigate will eventually fail. To guarantee safety, it is important to constantly check components and have a redundant system that is ready to take over if a component fails. Many of these sensors, like LIDAR, are so expensive that manufacturers might be reluctant to provide backups. Another option is to use a parallel system like GPS and high quality maps to navigate. However, satellite positioning systems aren’t sophisticated enough to do that yet. The bottom line is that it is difficult and expensive to ensure redundancy in self-driving cars.
Fleets of cars equipped with ADAS will enable developers to improve their systems more rapidly
How Early Implementation Could Save Lives
If we can’t ensure that our cars won’t crash when driving themselves, what’s the point of putting them out on the roads? The RAND study suggests that we should start implementing autonomous vehicles as soon as they become more reliable than human drivers. While that may not mean zero crashes, it will mean safer roads. In addition, faster deployment will let manufacturers and developers collect driving data more quickly, leading to faster advances in the technology.
On the face of it, allowing cars whose safety isn’t ensured doesn’t sound like a great idea. ADAS vehicles may end up in accidents. However, ADAS vehicles are likely to crash less often than vehicles that are driven by human drivers. To save lives, autonomous vehicles don’t have to be perfect; they just have to less fallible than human drivers.
As far as time goes, sending cars out onto the streets sooner rather than later will help them learn more quickly. If we consider ADAS-enabled vehicles “teen drivers,” then we should enable them to learn as quickly as possible. Cars equipped with AI primarily learn through the act of driving. The more vehicles that are out there experiencing the intricacies of the open road, the more rapidly they will learn how to navigate it safely.
When I was a child I knew I’d be driving a flying car by the time I hit 30. Now, though, I just hope to have self-driving cars before I reach 50. There are many roadblocks standing in the way of ensuring autonomous vehicle safety. Their software is complex and difficult to verify and also presents a soft target for hackers. It’s even difficult to guarantee that if one sensor goes down there will be a redundant system ready to take over. But if we wait around for these problems to be fixed, we could be waiting a long time; and each year people will die on the roads from accidents that might have been avoided. Early deployment of vehicles with high-level ADAS features will save lives and allow developers to train their systems more quickly. Let’s not let the perfect be the enemy of the good.
You may not be bothered by the long development time for your vehicle’s software because you know it could be years before it’s operating in the field. If these ideas take hold, though, you might need to start working a little more quickly. That’s why you should take a look at TASKING products. They have developed things like a standalone debugger and a great static analysis tool that can help you speed development and make your software safer.
Have more questions about autonomous vehicles? Call an expert at TASKING.