Why Making Cars Self-Driving Is So Difficult
It is easy to drive a car. That is if you are human, of course. For a car to drive it self (i.e. Self-Driving Car), why are there so many challenges? Automation has improved productivity with the start of the steam engine and the use of electricity. It just doesn’t seem to apply to self-driving or autonomous systems at the moment for a variety of reasons.
We have to get real when it comes to self-driving cars. The promise of a fully autonomous vehicle does not happen overnight. The highest autonomy of any production vehicle is Honda’s limited edition Legend, which has been certified as SAE Level 3. Not even Tesla has attained that level, despite having a feature called FSD (Full Self-Driving), which can sound misleading (more like Faux Self-Driving?). A fully autonomous vehicle (no driver required) is SAE Level 5. Most cars that have self-driving features are Level 2 and still require driver intervention for proper use.
For years, automakers have been talking about self-driving. Tesla and Waymo have a lead on the competition, but not even they have achieved the level of autonomy where a driver is no longer needed (as of early 2022). That is the true definition of self-driving, and unless that is achieved, you cannot really call a car that can drive on cruise control or perform self-parking a real self-driving car. Why is it so difficult to develop? Let’s take a look at how humans and machines differ when it comes to driving.
Humans learn through a cognitive process. We acquire knowledge through input from sensory perception. This is a lifelong process that begins from birth, as our spinal column is formed to support the nervous system. We learn from the world around us through experience. We have a built-in mechanism that defends us from danger, by releasing certain chemicals that cause the “flight-or-fight” response.
We also live in a society with rules and regulations. This is done for public safety to moderate behavior in normal society. That is why before we can drive a car, we have to learn from a school that teaches proper operation of a motor vehicle along with traffic rules with regards to the law. We then need to obtain a driver’s license, which can only be issued by a state or government upon passing a driving exam. Once we have our driver license, we are good to go.
Machines (i.e. computers) perform tasks in a more linear manner. The reason machines can do things much better than humans is because they don’t have the same physical limitations. They can work tirelessly for hours in a packing assembly, being able to package more goods than their human counterpart. This is true when it comes to repetitive tasks, like in manufacturing. Machines are suited for strenuous physical work that is repetitive in nature. It can be programmed to the point where they are more efficient than their human counterparts.
There is no easy way to train machines, which is something that can be overlooked. Many might have the idea that you can program robots or computers to do just about anything. That is true, but they are really only good at performing determinable tasks like packing, welding, sorting and other manual processes. These systems are programmed with precision and accuracy, but for a specific task.
AI techniques that utilize ML (Machine Learning) help to improve performance and decision-making on automated systems. However, this is quite limited and is often referred to as narrow artificial intelligence or weak AI. The machines are taught to perform a task through an algorithm, but they cannot apply what they learned outside of that task.
The system is only as good as the amount of accurate data you provide. For example, if you train a system for packing boxes it won’t be able to apply that ability to let’s say sorting items on an assembly line. The advantage humans have is they can adapt and learn based on a given situation.
When it comes to driving, machines don’t have the same capabilities as humans. That is because driving is far more complex since it requires multi-tasking. A driver needs to have awareness of the road, visual on the environment, knowledge of driving rules, good eye-and-hand coordination and quick reaction to danger. Humans are always taught about safety first, in order to value life above all. How do you teach a car to learn or understand all this?
Training A Car To Drive Itself
Machines, while excellent at performing a specific task, are not the best when it comes to doing many things at once and being aware of what they are doing. Driving is a process that requires being able to do many things at once. Machines are really just computerized programs that do their task, without any critical thinking behind the actions. Humans on the other hand have both critical thinking and multi-tasking abilities which help in reacting to non-deterministic (i.e. probabilistic) situations.
The challenge is building a system that consists of various parts working together similar to how humans perceive the world. It is implemented in both software and hardware to mimic how humans perceive a situation when driving. The earliest systems made use of sensors like LiDAR (used in computer vision).
A sensor allows cars to have an awareness of their environment. It helps to create a visual map of the road, allowing the car to “see” what is ahead. That would be reinforced with cameras, to create a better if not the best visual mapping. Other types of sensors like radar, ultrasonic and infrared can also be used. Combining various sensors together is called sensor fusion. This provides the eyes or visual system for a self-driving car.
A visual system would be useless if it cannot interpret what it is seeing. To a machine, data coming from sensors are nothing but pixels. They must be able to recognize patterns in the pixels. It then needs to be processed into information that can be interpreted by the car. This process involves the following:
- Image or object detection
- Feature extraction
- Recognition or Identification
The logic behind the self-driving car is implemented in software installed as an embedded systems application on a chip. This is where the software is installed and executes from in order to load into the car’s memory system. In addition to that, it has access to a database of information. This makes use of the data from ML techniques (e.g. deep learning) that allow the car to identify what is around them and what action to take when it encounters objects.
When the LiDAR system detects stalled objects ahead, the car should slow down and prepare to brake within a safe distance from the object to prevent a collision. Being able to create a visual map is not the only things sensors are used for. The car’s camera system must also be able to identify road signs using OCR (Optical Character Recognition). For example, to be in compliance with the law, when a camera captures a street sign with a speed limit then the car must slow down and not exceed this limit.
Developers would probably need to apply certifications or standards like the SAE driving levels to certify a self-driving car. That is like a driver license for humans, but this can be a slippery slope if there is no agreed upon standards across the board. If one automaker believes its features are safe enough, there might be disagreement from others. It is best to have a standards committee on regulations for self-driving cars.
Understanding Critical Situations
A car’s reaction time is probably never going to match the intuitive reaction from humans. We are wired to perceive danger at every step since the beginning of mankind. It is part of the survival mechanism that has allowed our species to exist. Machines cannot be taught this, so they are less likely to treat a dangerous situation with the same reaction. This is because machines cannot be programmed with true emotions.
Our foundation of critical thinking is based on logic, but we also have a psychological component which are emotions. We react to danger knowing it can affect our life and those of our loved ones. Machines don’t have any such connection with emotions, and trying to create “artificial emotions” is not going to be the same as authentic human emotions. It may even backfire, because now you introduce an element of uncertainty which can lead to horrible things when it comes to machines.
In self-driving cars, it is not enough to just program them to apply the brakes to stop or obey traffic rules. What is the certainty that when a self-driving car makes a right turn on red that it won’t hit crossing pedestrians? A human driver always yields to pedestrians or should do so if they follow the rules of driving set by the DMV (In the United States). Sure, you can train self-driving cars too, but now you have to add context to the situation.
For humans and computers, if A = 3, then:A + 5 = 8If there is a context to this, then A = 3 only if C = 1. Let's say C = 0.Using the context, humans will interpret the equation as:A != 3 therefore A + 5 != 8Without the context, a computer will still compute it the same way and the result is (A = 3) and (A + 5 = 8).Adding context to situations is one way of applying deep learning techniques.
What if a pedestrian suddenly runs in front of the car even though it has the right of way? It should still apply the brakes and let the pedestrian cross safely. If we were to take the self-driving car’s perspective, its decision would be to go since it clearly has the right of way. Engineers will need to develop policies that take into consideration the many probabilistic outcomes given such situations when developing the logic for self-driving cars.
Often times, situations like the previous occur in split seconds. As responsible human drivers, we can react quickly enough to prevent disaster (unlike the Uber accident). A self-driving car must also be able to do the same, but machines will need to have the same react time. These situations are also probable, so no programming in a self-driving car will lead to a pre-determined result. There is no conclusive study or test that confirms this (as of 2022), so it can only be analyzed once more self-driving cars are on the road encountering real world situations.
If humans were allowed to drive unregulated, there would be more accidents that can lead to fatalities. Yet, even with all the regulations people still get into accidents that lead to fatalities. One of the most important reasons for self-driving cars is to prevent human related driving errors that lead to accidents (e.g. drunk driving, reckless drivers, road rage, elderly drivers). It aims to reduce fatalities. According to reports:
- 1.35 million people die in road crashes each year; on average 3,700 people lose their lives every day on the roads (Globally).
- 38,000 people die every year in US road crashes (12.4 deaths per 100,000 inhabitants).
- Road crashes cost the US more than $380 Million in direct medical costs.
Self-driving cars have not made any major impact in reducing fatalities, since they are not widely on the road. Not everyone has a car with self-driving features, so there is no way to determine until then if they will really contribute to overall safety and reduce costs from accidents.
It’s not only to reduce accidents, but to help people. Self-driving cars can help transport disabled persons, senior citizens who cannot drive and assist drivers during an emergency. It can help with shortages in drivers for trucks and buses as well.
Perhaps what needs to be addressed for mass self-driving car deployment is an upgrade in infrastructure. With roads, bridges and other infrastructure (using V2X protocols) being able to communicate data with self-driving cars, in theory it makes the environment safer. It is safer in terms of navigation, since a self-driving car will be more aware of its surroundings. This makes things much more deterministic for self-driving cars. It is still up to the sensors and software inside the car when driving autonomously.
The driver should also be taken out of the equation. You cannot really have full self-driving if a driver is allowed to intervene at any time. The point is a fully autonomous vehicle after all. The idea is still hard for many to grasp, since that would probably mean no more human driving and everything will be by machine. Most people will probably not like the idea of not having to drive any more. It would sound ideal to apply self-driving systems in public transport vehicles, so people can still drive their own cars.
In the end, self-driving features could still become popular but not at Level 5. It has benefits by giving the car some level of control allowing a driver to temporarily be preoccupied with other things without their eye on the road. What is important here is safety, meaning zero failure rates as much as possible. This is what makes self-driving cars so difficult to develop. It sounds feasible but nearly impossible to make a reality.
(Cover Photo Credit: Taras Makarenko)