Autonom­ous driv­ing— on every­one’s lips, over­grown with myths. Innov­at­ive tech­no­logy is being gradu­ally developed day by day. How­ever, is 100% code test­ing needed? Will innov­a­tion be dam­aged by strict ISO stand­ards and norms? We talked to Artur Stolar­czuk, a Codelab expert, who devel­ops advanced auto­mot­ive IT pro­jects on a daily basis and yet who, after hours, dreams of the joy of driv­ing a thor­ough­bred, gas­ol­ine V8 🙂

Artur — what are you work­ing on in your cur­rent project?

I am involved in the soft­ware devel­op­ment of an ECU that assists the driver in object and obstacle detec­tion in front of the vehicle. It is a sys­tem based on a cam­era that cap­tures the image in front of the car and sends it out for fur­ther pro­cessing. This makes it pos­sible to detect oth­er vehicles, cyc­lists, ped­es­tri­ans, or any oth­er objects on the road and allows the car to react accord­ingly (if the driver does not react on time). In the future, this sys­tem shall be fur­ther developed and adap­ted to fully autonom­ous driving. 

At this point, it is worth men­tion­ing that it must meet all the strict require­ments imposed by the ISO 26262 (Func­tion­al Safety for Auto­mo­biles) standard.

What is the dif­fer­ence between the devel­op­ment of ISO 26262 com­pli­ant sys­tems and any oth­er software?

First of all, there is a sig­ni­fic­ant focus on two aspects: secur­ity and safety of such sys­tems. To put it simply: the first one deals with all poten­tial out­side threats, while the second one copes with all haz­ards from the sys­tem itself that could have an impact on people and resources (e.g. software/hardware malfunction).

There­fore, for the soft­ware to be com­pli­ant with ISO 26262, it must meet very strict qual­ity require­ments, guar­an­tee the highest pos­sible test cov­er­age at pro­duc­tion stage (e.g. 100% code cov­er­age with unit tests, required num­ber of hours of test drives, etc.), and must be writ­ten in com­pli­ance with soft­ware devel­op­ment stand­ards for the Auto­mot­ive industry (e.g. MISRA).

On the one hand, it makes the devel­op­ment pro­cess quite com­plic­ated and cum­ber­some, and on the oth­er, we must keep in mind that the sys­tem we cre­ate shall be respons­ible for future drivers’ and their pas­sen­gers’ lives. Ergo, I think it is worth both­er­ing a bit more than usu­al about the qual­ity of code we write, at least for our own peace of mind.

Are the cur­rent state-of-the-art Act­ive Safety sys­tems really safe enough?

Nowadays, we can find Act­ive Safety sys­tems in almost every new car avail­able on the mar­ket. In the case of premi­um brands, they have been offered for a couple of years already. I think every­one has heard about fea­tures like adapt­ive cruise con­trol, park­ing assist­ant, or lane depar­ture warn­ing sys­tem, right?

Addi­tion­ally, now we have sys­tems that can detect ped­es­tri­ans and obstacles by cooper­at­ing with the emer­gency brak­ing sys­tem, night vis­ion cam­er­as, traffic jam assist­ants or sway warn­ing systems.

Nev­er­the­less, these are the sys­tems that still oper­ate on level 2 (of autonomy) and OEMs still high­light that the driver should keep their hands on the steer­ing wheel and watch their sur­round­ings care­fully at all times.

I think that every­one who has ever used such good­ies like adapt­ive cruise con­trol or lane depar­ture warn­ing (no mat­ter the man­u­fac­turer) can speak very eas­ily about the pros and cons of such solu­tions and indic­ate at least a few corner cases where the sys­tem did not behave as expec­ted or failed to react at all. The adapt­ive cruise con­trol in my car, for instance, can be very annoy­ing when it loses sight of the vehicle ahead on almost every curve (too nar­row of a radar beam) and starts accel­er­at­ing, just to hit the brakes a few seconds later. On the oth­er hand, I heard about use cases (dif­fer­ent car) where the radar beam was too wide and it would wrongly detect vehicles mov­ing in the oppos­ite dir­ec­tion, employ­ing unex­pec­ted emer­gency brak­ing until com­ing to a full stop. These cases show that there is no per­fect solu­tion and the num­ber of chal­lenges is enormous.

In my opin­ion, there is still much room for improve­ment, but when look­ing at recent state-of-the-art solu­tions, the future looks bright. Every new soft­ware gen­er­a­tion that hits the mar­ket works bet­ter and bet­ter. I am look­ing for­ward to see­ing fully autonom­ous vehicles in the streets. In the end, I am respons­ible for the devel­op­ment of such sys­tems as well…

Shall cars ever be autonomous?

I think there is a very long way to go before we cre­ate fully autonom­ous vehicles, des­pite the fact that some OEMs claim that their sys­tems shall reach level 4, or even 5, very soon. I think that’s just boast­ing for the moment.

Besides, I see two dif­fer­ent approaches here fol­lowed by dif­fer­ent OEMs:

  • Small improve­ments of already developed and deployed sys­tems, incre­ment­al updates with new fea­tures and test­ing these changes in the field, mak­ing their cus­tom­ers beta-test­ers (just like Tesla does for instance)
  • Focus on hon­ing the sys­tem and devel­op­ment and deploy­ment of required road infra­struc­ture in par­al­lel; this includes all needed com­pon­ents that shall be part of highway/speedway infra­struc­ture and shall allow self-driv­ing from the spot. I heard such infra­struc­ture was being con­struc­ted in Ger­many and China already. How­ever, fully autonom­ous driv­ing shall be pos­sible up to 80kph only.

I believe the first step is the most dif­fi­cult one, where some cars shall be autonom­ous among human drivers. This shall pro­duce a lot of unex­pec­ted corner cases that are very hard to fore­see at the devel­op­ment stage. It may pro­duce very dan­ger­ous situ­ations. Inter­est­ingly, it could be much easi­er if all vehicles would become instantly autonom­ous and com­mu­nic­ate with each other.

How­ever, I do hope it will not come true too fast and I will have a chance to get some joy from a good-look­ing Young­timer with a V8 under the hood before it shall become illegal…

Artur Stolar­czuk, soft­ware archi­tect with over 15 years of exper­i­ence in devel­op­ment of embed­ded sys­tems, mostly for the auto­mot­ive industry. Per­son­ally a hus­band and fath­er of two, cas­u­al bass gui­tar play­er and vol­ley­ball fan