Automobily procházejí neustálým vývojem a z elektromechanického zařízení, které má pod kontrolou řidič, se stává zcela autonomní vozidlo. Blížíme se k bodu zlomu, kdy už je většina nových vozů vybavena vyspělými asistenčními systémy, jako je sledování jízdních pruhů, automatické nouzové brzdění, zdokonalené systémy vidění a další, přičemž experimentální plně autonomní automobily už mají ve zkušebních jízdách najeto miliony kilometrů.
Systémy poskytující tyto funkce jsou složeny ze snímačů, aktivátorů, radarových a laserových měřicích zařízení, komunikují prostřednictvím sítí a jsou řízeny mikrořadiči, takže jedna ze současných definic automobilu je internet na kolech. Automobily komunikují s jinými vozidly (komunikace vozidla s vozidlem neboli V2V), s infrastrukturou (semafory a dopravní značky – V2I), i s družicemi kvůli navigaci a hlášení polohy.
Za tím vším je samozřejmě software – více než 100 milionů řádků kódu. Kromě kódů pro aplikace jsou zapotřebí také operační systémy, middleware (například sady programů pro síťovou komunikaci) i různá rozhraní k senzorům, ovladačům nebo třeba k displeji pro řidiče.
Vzhledem k rostoucí složitosti systémů nabývá na významu otázka bezpečnosti a zabezpečení. S nárůstem komunikace prostřednictvím kooperativních systémů (V2X) začínají být automobily napadnutelné zvenčí – už se stal i případ, kdy řidič převzal kontrolu nad cizím vozem. Ke zranitelnosti může přispět také sám uživatel automobilu. Všichni výrobci automobilů používají diagnostické systémy OBD (On‑Board Diagnostics) pro sledování různých parametrů motoru, vyhledávání poruch a diagnostiku při údržbě. Připojené rozhraní OBD II je veřejně dostupné, a když zadáte OBD2 do Googlu, najdete nepřeberné množství OBD konektorů fungujících přes Bluetooth, s jejichž pomocí může řidič sledovat stav motoru svého vozu na mobilním telefonu. Také toto zařízení může vystavit řídicí systém motoru útoku nepřátelské osoby. Studie Michiganské univerzity nedávno popsala způsob převzetí řízení velkého nákladního automobilu i školního autobusu pomocí přímého připojení k systému OBD přes notebook.
Při tak obrovském množství kódu je také zcela zásadní otázka bezpečnosti. Soudní případ, který řešil samovolné přidávání rychlosti ve vozidlech Toyota, ukázal, že starší kódy nejsou z velké části příliš kvalitní. Nově vyvíjený kód musí být na mnohem vyšší úrovni.
Teprve před pěti lety byla vydána zvláštní bezpečnostní norma pro automobily. ISO 26262 je přepracovaná bezpečnostní norma IEC 61508, která se zaměřuje na potřeby elektrických a elektronických systémů instalovaných v sériově vyráběných osobních automobilech a vztahuje se na všechny činnosti v rámci bezpečného životního cyklu těchto bezpečnostních systémů. To zahrnuje i požadavky na kvalitu softwaru.
Tato norma využívá úroveň integrity bezpečnosti automobilů (ASIL), která určuje míru rizika souvisejícího s podsystémem. Ta může být třídy A až D, kde A je nejnižší stupeň integrity bezpečnosti a D je nejvyšší stupeň, který je u většiny požadavků tím nejpřísnějším. Kromě těchto úrovní ASIL existuje také třída QM (řízení jakosti), která splnění požadavků normy ISO 26262 nevyžaduje, což znamená, že zajištění kvality záleží na dané vývojové organizaci. Úroveň ASIL se určuje podle parametrů: dopad hrozby, pravděpodobnost okolností a kontrolovatelnost situace obsluhou.
Zvláštní pozornost si zaslouží především parametr kontrolovatelnosti situace obsluhou. Předpokládá se, že řidič je ve stavu způsobilém k řízení, má odpovídající výcvik řidičů (řidičský průkaz) a dodržuje všechny platné právní předpisy, včetně požadavků na řádnou péči, aby neohrozil ostatní účastníky provozu – musí dodržovat dopravní zákony.
Zákony se budou muset upravit tak, že když bude v provozu automatický systém řízení, řidič nebude muset věnovat pozornost řízení, pokud systém nepožádá o jeho zásah. Zcela zásadní roli tak hraje správná funkčnost systému upozornění řidiče a možnost přepnout zpět na řízení člověkem. Pokud upozornění selže v okamžiku, kdy se člověk zrovna nebude věnovat řízení, nebude moci zabránit nehodě, jako například nedávno při nehodě elektromobilu Tesla. Selže‑li přepnutí na řízení člověkem, může si systém udržovat kontrolu nad vozem místo toho, aby dovolil řidiči zasáhnout a zabránit nehodě. Takovým situacím musí být vždy přiřazena nejvyšší třída kontrolovatelnosti situace (C3), což znamená, že méně než devadesát procent všech řidičů nebo jiných účastníků provozu je obvykle schopno, nebo alespoň nějak schopno, zabránit nehodě.
Šestá část normy popisuje proces vývoje softwaru za účelem vytvoření kódu, který bude při běhu v systému dostatečně spolehlivý, aby splňoval požadovanou úroveň ASIL.
Norma J3016 vydaná Sdružením automobilových inženýrů (SAE) dělí automatizaci řízení do šesti tříd od nulové automatizace až po plně automatické řízení. Automatické systémy řízení, které spadají do třídy SAE 3 nebo vyšší, se spoléhají na software, který shromažďuje data ze snímačů, vytváří model okolního prostředí a potom na základě stanoveného cíle rozhodne, jak bude pomáhat řidiči nebo sám řídit vozidlo. Kromě toho má další kritické úkoly, například určit, zda správně fungují snímače, kdy upozornit řidiče a kdy aktivovat přepnutí na řízení člověkem.
Spolehlivost softwaru je životně důležitá. Jiné softwarové úlohy, například modelování dat ze snímačů, mohou být méně kritické, avšak i pro ně je nutné provádět analýzu rizik.
Dopravní zákony se budou muset změnit tak, aby upravovaly i automatické systémy řízení, zejména v oblasti odpovědnosti a soukromí. Každý stát má vlastní dopravní zákony a v mnoha jurisdikcích existují legislativní iniciativy.
V USA například Národní správa bezpečnosti silničního provozu navrhla formální klasifikační systém na úrovni jednotlivých států, který definuje pět stupňů od úrovně, kdy řidič neustále a plně ovládá svůj vůz, až po úroveň, kdy všechny bezpečnostně kritické funkce provádí po celou dobu jízdy samo vozidlo a od řidiče se neočekává, že by vozidlo vůbec řídil.
Každý stát přistupuje k této problematice jinak – prvním státem, který v roce 2011 povolil provoz autonomních vozidel a otestoval technologii autonomního řízení na veřejných komunikacích, byla Nevada. Po ní následovala Kalifornie, Florida, Michigan, Severní Dakota, Tennessee a Washington DC.
V roce 2014 byl spuštěn evropský výzkumný projekt AdaptIVe (Aplikace a technologie automatického řízení pro inteligentní vozidla) zaměřený na vývoj nejrůznějších funkcí automatického řízení pro každodenní provoz, které dynamicky upravují míru automatizace podle dopravní situace a stavu řidiče. Projekt řeší i právní otázky, jež by mohly ovlivnit jejich úspěšné uvedení na trh.
Podpůrná akce Automatizace vozidel a silnic (VRA) financovaná Evropskou unií má za úkol vytvořit síť spolupracujících expertů a dalších zainteresovaných osob pracujících na vývoji automatických vozidel a s tím spojené infrastruktury. VRA spolupracuje také s některými výrobci OEM a dodavateli, nicméně většina partnerů jsou výzkumné ústavy a univerzity. VRA vypracovala i soupis právních a regulačních otázek v EU.
Společnost Volkswagen vyzvala k zavedení kolektivních právních kroků na celoevropské úrovni, včetně postupné změny předpisu EHK č. 79 (také pravidlo OSN) o mechanismech řízení vozidel. Ten vyžaduje, aby řidič mohl autonomní řízení kdykoliv zrušit a zachovat si po celou dobu primární kontrolu nad vozidlem.
Japonská vláda chce vypracovat zákony upravující používání automobilů bez řidiče. Vytvořila také klasifikaci dělící automatické řízení do čtyř tříd, z nichž jedna je určena pro zcela autonomní řízení.
V Číně zase společnost Baidu, která je často nazývaná čínským Googlem, pracuje ve spolupráci s firmou BMW na výrobě automobilu s vlastním pohonem. Čínská legislativa je poměrně flexibilní, takže vláda má větší pravomoc, aby potřebné změny prosadila. Bude však muset vyřešit stejně složité problémy jako ostatní země.
Také Indie uvažuje o autonomním řízení, zde je však velkým problémem mimo jiné i pomalá legislativa nebo obtížné zavádění očekávaných pravidel kvůli odlišné infrastruktuře.
Jak tedy v této souvislosti vytvořit kód, který bude bezpečný i dostatečně zabezpečený? Norma ISO 26262, jak už bylo zmíněno, stanovuje proces pro vývoj softwaru, který zahrnuje použití kódovacích standardů a nástrojů pro kontrolu kódu.
Bezpečnost systému začíná navrhováním funkcí, které přispějí k bezpečnému výsledku. K nim například patří:
Vzhledem k tomu, že většina softwaru v této oblasti je napsána v jazyce C, dobrým výchozím bodem pro bezpečný a dobře zabezpečený kód je standard MISRA C: 2012 (MISRA 3). Ten poskytuje soubor zásad pro psaní programů v jazyce C, které, kromě vyhýbání se nedefinovanému chování, obsahují pravidla pro zlepšení udržovatelnosti, testovatelnosti, přenositelnosti a čitelnosti zdrojového kódu. Pravidla standardu MISRA se z velké části překrývají s tabulkami shody v normě ISO 26262‑6, takže pokud je požadována shoda s normou ISO 26262, je standard MISRA značně přesvědčivou volbou.
Společnost MISRA nedávno publikovala dodatek 1 ke standardu MISRA 3. Ten obsahuje 14 nových pravidel, která ještě rozšiřují oblast vývoje bezpečných systémů pokrytou standardem MISRA. Při vyvíjení softwaru v souladu s normou ISO 26262 hrají významnou úlohu také nástroje. Důležitou součástí řízení kvality kódu jsou nástroje pro statickou analýzu kódu, které poskytují jak kontrolu kvality kódu, tak i měření dodržování kódovacích standardů, například standardu MISRA. Testovací nástroje ještě zvyšují důvěru v software, zatímco ověřovací nástroje měří, jak dobře software dělá to, co návrhář zamýšlel.
Je v lidských silách vyvinout bezpečné a dobře zabezpečené systémy pro automobily. Organizace, které uzpůsobily své vývojové procesy podle normy ISO 26262, zjistily, že po počáteční fázi zavádění a učení se rovněž zvýšila jejich produktivita.