Autonomous vehicles may seem to be a very noble concept for future mobility. But, in its essence, it involves a range of complexities. If one cast a critical look at the architecture and working principle of autonomous vehicles, nothing except complexity and artificial intelligence would be found. The general public may consider obstacle avoidance and path planning as just the advanced version of conventional vehicles. But those who are familiar with autonomous vehicles, they know that all this autonomy and intelligence comes at the cost of complexity. In its typical operations, the autonomous vehicle has to deal with the constant data feeding by the perception model, rigorous processing of information, and the intelligent decision making to forward commands to the vehicle control system.
The point to ponder directs to the question that what is the one thing that ensures coordination of such complex systems, and how is it ensured on such a vast scale? The simplest answer to it is Software Architecture. The main purpose to introduce software architectures in autonomous vehicles is to manage the complexities in the autonomous driving systems. It helps in the assessment of both the non-functional and functional attributes of the autonomous driving systems.
To have a better insight into software architectures, there is a need to look at what they offer and how can they help mitigate the complexity and safety-related issues of autonomous vehicles.
While the use of the software architecture in autonomous vehicles varies from company to company but for the sake of the overview, general considerations about AV software architecture will be discussed.
The software architecture in autonomous vehicles is recommended to be a sort of layered one. The foremost benefit of layered architecture resides in different layers where individual systems of the autonomous vehicle are mapped. These layers are responsible for fulfilling their respective responsibilities. By using this architecture, the division of different responsibilities is formed in the system, which consequently helps in better understanding and troubleshooting of the autonomous vehicle. Furthermore, such layers make the system more manageable and counter the system’s complexity. The general layer architecture can comprise of the input normalization layer, action planning layer, control layer, and output layer. Depending on the system’s constraints, these layers can further be divided into the sublayers. The general working mechanism of autonomous vehicle’s layered software architecture is as follow:
Given the autonomous vehicle models and features, it is possible to include the data logging and network layer too. While the network layer will assist in the communication and UI/UX interface, the data logging layer will help to maintain the logs of the itinerary and the overall operations of the autonomous vehicle.
Apart from focusing on the software architectures of the autonomous vehicles, it would be disastrous to ignore the safety considerations. When it comes to autonomous vehicles, reliability and safety are the two most sought features. There are multiple ways by which both safety and reliability can be ensured in autonomous vehicles.
The emergency brake system should be made an essential part of the software architecture of autonomous vehicles. Given the importance of the emergency brake system, a separate layer can be defined in the software architecture of autonomous vehicles so that when triggered, it does not suffer any time lag.
Self-adaptation is another way by which the safety of the system can be ensured. Such mechanisms are capable of adapting to the required changes with the help of a feedback loop. With a feedback loop, the current status of autonomous vehicles can be incorporated in the ongoing computation so that computations related to steering angle and speed should be made more authentic and safer.
Besides both of these key safety considerations, a timeout mechanism can also be inducted in the action planning layer. This consideration proves to be helpful in the situation when no new image or data is being fed from the sensing environment and the vehicle needs to react reasonably.
The way complex systems operate in autonomous vehicles, the inclusion of software architectures is very much needed. With the use of layered architecture, not only do jobs have been segmented, but the system’s reliability is also expected to increase a lot. Each layer is responsible to do its job and then pass it on to the next layer. Another advantage of this layered architecture is the increase in processing power. From information processing to the control system, each segment will only do its designated job, thereby relieving them from the unnecessary burden. Along with all these considerations, safety should be prioritized. The acceptance of autonomous vehicles in the eyes of the general public is associated with the intense safety and reliability of autonomous vehicles.
Answering a question online, I just found a slide deck I have used in the… Read More
Agile leadership is a modern approach to management that focuses on empowering teams to deliver… Read More
I was recently surprised by the notification coming from Starlink: My area will be available… Read More
Most recently, I was creating my first YouTube video, explaining what a Product Owner in… Read More
I proposed the Hyundai Kona EV to my mother. Read More
With the evolution of electric vehicles, a lot of debate has been started on its… Read More