Autonomous driving— on everyone’s lips, overgrown with myths. Innovative technology is being gradually developed day by day. However, is 100% code testing needed? Will innovation be damaged by strict ISO standards and norms? We talked to Artur Stolarczuk, a Codelab expert, who develops advanced automotive IT projects on a daily basis and yet who, after hours, dreams of the joy of driving a thoroughbred, gasoline V8 🙂
Artur — what are you working on in your current project?
I am involved in the software development of an ECU that assists the driver in object and obstacle detection in front of the vehicle. It is a system based on a camera that captures the image in front of the car and sends it out for further processing. This makes it possible to detect other vehicles, cyclists, pedestrians, or any other objects on the road and allows the car to react accordingly (if the driver does not react on time). In the future, this system shall be further developed and adapted to fully autonomous driving.
At this point, it is worth mentioning that it must meet all the strict requirements imposed by the ISO 26262 (Functional Safety for Automobiles) standard.
What is the difference between the development of ISO 26262 compliant systems and any other software?
First of all, there is a significant focus on two aspects: security and safety of such systems. To put it simply: the first one deals with all potential outside threats, while the second one copes with all hazards from the system itself that could have an impact on people and resources (e.g. software/hardware malfunction).
Therefore, for the software to be compliant with ISO 26262, it must meet very strict quality requirements, guarantee the highest possible test coverage at production stage (e.g. 100% code coverage with unit tests, required number of hours of test drives, etc.), and must be written in compliance with software development standards for the Automotive industry (e.g. MISRA).
On the one hand, it makes the development process quite complicated and cumbersome, and on the other, we must keep in mind that the system we create shall be responsible for future drivers’ and their passengers’ lives. Ergo, I think it is worth bothering a bit more than usual about the quality of code we write, at least for our own peace of mind.
Are the current state-of-the-art Active Safety systems really safe enough?
Nowadays, we can find Active Safety systems in almost every new car available on the market. In the case of premium brands, they have been offered for a couple of years already. I think everyone has heard about features like adaptive cruise control, parking assistant, or lane departure warning system, right?
Additionally, now we have systems that can detect pedestrians and obstacles by cooperating with the emergency braking system, night vision cameras, traffic jam assistants or sway warning systems.
Nevertheless, these are the systems that still operate on level 2 (of autonomy) and OEMs still highlight that the driver should keep their hands on the steering wheel and watch their surroundings carefully at all times.
I think that everyone who has ever used such goodies like adaptive cruise control or lane departure warning (no matter the manufacturer) can speak very easily about the pros and cons of such solutions and indicate at least a few corner cases where the system did not behave as expected or failed to react at all. The adaptive cruise control in my car, for instance, can be very annoying when it loses sight of the vehicle ahead on almost every curve (too narrow of a radar beam) and starts accelerating, just to hit the brakes a few seconds later. On the other hand, I heard about use cases (different car) where the radar beam was too wide and it would wrongly detect vehicles moving in the opposite direction, employing unexpected emergency braking until coming to a full stop. These cases show that there is no perfect solution and the number of challenges is enormous.
In my opinion, there is still much room for improvement, but when looking at recent state-of-the-art solutions, the future looks bright. Every new software generation that hits the market works better and better. I am looking forward to seeing fully autonomous vehicles in the streets. In the end, I am responsible for the development of such systems as well…
Shall cars ever be autonomous?
I think there is a very long way to go before we create fully autonomous vehicles, despite the fact that some OEMs claim that their systems shall reach level 4, or even 5, very soon. I think that’s just boasting for the moment.
Besides, I see two different approaches here followed by different OEMs:
- Small improvements of already developed and deployed systems, incremental updates with new features and testing these changes in the field, making their customers beta-testers (just like Tesla does for instance)
- Focus on honing the system and development and deployment of required road infrastructure in parallel; this includes all needed components that shall be part of highway/speedway infrastructure and shall allow self-driving from the spot. I heard such infrastructure was being constructed in Germany and China already. However, fully autonomous driving shall be possible up to 80kph only.
I believe the first step is the most difficult one, where some cars shall be autonomous among human drivers. This shall produce a lot of unexpected corner cases that are very hard to foresee at the development stage. It may produce very dangerous situations. Interestingly, it could be much easier if all vehicles would become instantly autonomous and communicate with each other.
However, I do hope it will not come true too fast and I will have a chance to get some joy from a good-looking Youngtimer with a V8 under the hood before it shall become illegal…
Artur Stolarczuk, software architect with over 15 years of experience in development of embedded systems, mostly for the automotive industry. Personally a husband and father of two, casual bass guitar player and volleyball fan