Funcţionalitate crescută
Maşinile se află într-o continuă evoluţie, trecând de la un dispozitiv electromecanic sub controlul unui şofer uman, la un vehicul complet autonom. Astăzi ne apropiem de limita de trecere, cu majoritatea noilor maşini echipate cu sisteme avansate de asistenţă a şoferului, ADAS (Advanced Driver Assistance Systems), precum urmărire linie, frânare de urgenţă, sisteme de vizualizare avansată şi multe altele, în vreme ce maşinile experimentale complet autonome înregistrează milioane de kilometri de teste.
Sistemele ce oferă aceste funcţii sunt bazate pe senzori, sisteme de activare, sisteme radar şi LIDAR (Light Detection and Ranging), comunicând prin reţele şi controlate de microcontrolere, astfel încât o definiţie a unei maşini poate fi un internet pe roți. Maşinile comunică de asemenea cu alte maşini (comunicare vehicul la vehicul sau V to V), cu infrastructura – iluminare de trafic, semne de circulaţie (V to I) şi cu sateliţi pentru navigare şi raportare.
Dedesubtul tuturor acestora este, desigur, software-ul – mai mult de 100 de milioane de linii de cod. Pe lângă programele de aplicaţie, există sisteme de operare, middleware precum pachete de comunicaţii în reţea şi interfeţe cu senzori, actuatori şi ecrane pentru şofer.
Vulnerabilitate crescută
Datorită acestei complexităţi crescute, problemele de securitate şi siguranţă în funcţionare au devenit îngrijorătoare. Odată cu creşterea comunicaţiilor V to X, maşinile au devenit deschise către atacuri externe: deja un terţ a preluat controlul unui Jeep, trecând peste şofer. O vulnerabilitate mai mare poate fi adăugată de utilizatorul maşinii. Toţi producătorii de maşini utilizează diagnosticare la bord (OBD) pentru a oferi monitorizarea parametrilor motorului, pentru a găsi erorile şi pentru diagnosticare. Conectorul de interfaţare, OBD II, este disponibil publicului, iar dacă veţi căuta OBD2 pe Google veţi găsi o mulţime de conectori OBD Bluetooth care permit şoferului să monitorizeze starea motorului pe un telefon mobil. Acest lucru însă ar putea deschide sistemul de control al motorului către o persoană nedorită. Un articol recent de la Universitatea din Michigan a descris utilizarea conexiunii directe la OBD cu ajutorul unui laptop pentru a trece peste comenzile şoferului în cazul unui camion mare şi a unui autobuz de şcoală.
Cu asemenea cantităţi mari de programe, siguranţa în funcţionare este de asemenea critică. Cazul acceleraţiei neintenţionate de la Toyota a demonstrat că o mare parte din programele moştenite nu respectă standarde ridicate. Noile programe trebuie să fie dezvoltate pentru standarde mult mai ridicate.
Standardizare
Acum numai 5 ani, a fost lansat un standard de siguranţă specific pentru maşini. ISO 26262 este o adaptare a standardului de siguranţă funcţională IEC 61508, care se concentrează pe necesitatea de sisteme electronice şi electrice instalate în maşinile de pasageri aflate în producţie de serie şi se aplică tuturor activităţilor din cadrul ciclului de viaţă în siguranţă al acestor sisteme. Acestea includ şi cerinţe de calitate a software-ului.
Standardul utilizează nivele de integritate de siguranţă auto (ASIL) pentru a oferi o măsură a riscului asociat cu un subsistem. Aceste nivele sunt de la A la D, unde A este nivelul de integritate cel mai redus, iar D este cel mai ridicat, adică cel mai strict şi cu cele mai multe cerinţe. Suplimentar acestor nivele ASIL, clasele de management al calităţii (QM) denotă că nu sunt cerinţe de conformitate cu ISO 26262, ceea ce înseamnă că este la discreţia organizaţiei de dezvoltare să garanteze calitatea. Parametrii severităţii riscului, probabilitatea de expunere şi controlabilitatea determină ASIL.
Controlabilitatea parametrilor necesită o atenţie specială. Se presupune că şoferul este în condiţii potrivite pentru a conduce, că are pregătirea potrivită pentru a şofa (are carnet de şofer) şi se conformează cu toate regulile legale aplicabile, inclusiv cerinţelor de grijă pentru evitarea riscurilor celorlalţi participanţi la trafic: şoferul trebuie să se conformeze legilor rutiere.
Legile vor trebui să se adapteze astfel încât atunci când un sistem automat de conducere este în funcţiune, şoferul să trebuiască să fie atent doar dacă sistemul cere intervenţia acestuia. Funcţionarea corectă a notificării şoferului şi revenirea la controlul uman este crucială. Dacă notificarea eşuează, şoferul uman poate să nu fie atent şi nu va fi capabil să evite accidentul, după cum s-a întâmplat cu recentul accident al Tesla. Astfel, dacă transferul de comandă eşuează, sistemul trebuie să rămână la control.
Asemenea situaţii trebuie întotdeauna să dispună de cea mai ridicată clasă de controlabilitate (C3), însemnând că mai puţin de nouăzeci la sută dintre toţi şoferii şi alţi participanţi la trafic sunt uzual capabili sau abia capabili de a evita accidentul.
Partea a şasea din 26262 este dedicată procesului de dezvoltare al software-ului pentru cod suficient de sigur în funcţionare, atunci când rulează într-un sistem, pentru a răspunde necesităţilor ASIL.
Standardul J3016 al Societăţii inginerilor din industria auto (SAE) împarte automatizarea conducerii în şase clase, de la fără automatizare, la complet automat. Sistemele automate de conducere, definite ca nivel SAE 3 sau mai mare, se bazează pe un software pentru a obţine date de la senzori, pentru a crea un model al mediului şi apoi, pe baza obiectivului final, decid cum să asiste şoferul sau cum să controleze vehiculul. Software-ul are de asemenea alte sarcini critice, precum a determina care senzori funcţionează corect, când să alerteze şoferul şi când să comute pe control uman.
Este vital ca software-ul implicat să se comporte sigur. Alte sarcini ale software-ului, precum modelarea datelor senzoriale, pot fi mai puţin critice, dar vor fi necesare pentru analiza riscurilor.
Legislaţie
Legislaţia rutieră va trebui să se schimbe pentru a se adapta la sistemele de conducere automată, în special în ceea ce priveşte răspunderea şi intimitatea. Fiecare ţară are propria legislaţie rutieră şi există numeroase iniţiative legislative.
În SUA, la nivel naţional, National Highway Traffic Safety Administration a propus un sistem de clasificare formală care defineşte 5 nivele, de la nivelul în care şoferul controlează complet maşina tot timpul, până la nivelul în care vehiculul realizează toate funcţiile critice pe întreaga durată a călătoriei.
La nivel individual, statele au propria abordare: Nevada a fost primul stat care a autorizat funcţionarea vehiculelor autonome, pentru a testa tehnologia de conducere autonomă pe drumuri publice în 2011, urmat de California, Florida, Michigan, North Dakota, Tennessee şi Washington DC.
Un proiect de cercetare european, numit Automated Driving Applications & Technologies for Intelligent Vehicles a început în ianuarie 2014 şi dezvoltă diferite funcţii de conducere automată pentru traficul de zi cu zi, prin adaptarea dinamică a nivelului de automatizare la situaţia şi starea şoferului. Proiectul se adresează de asemenea problemelor legislative, care pot avea impact asupra succesului lansării pe piaţă a produselor.
VRA (Vehicle & Road Automation) este o acţiune suport finanţată de Uniunea Europeană pentru a crea o reţea de colaborare formată din experţi şi părţi interesate, care să lucreze la implementarea de vehicule autonome şi infrastructura aferentă. VRA are ca parteneri unele OEM-uri şi furnizori, dar majoritatea partenerilor sunt institute de cercetare şi universităţi. VRA a identificat o listă de probleme legislative şi norme în EU.
Volkswagen a făcut apel la acţiuni legislative comune, Europene, inclusiv în ceea ce priveşte rectificarea progresivă a ECE Regulation 79 (de asemenea o regulă UN) cu privire la echipamentul de virare. Acesta stipulează că şoferul poate, în orice moment să preia funcţia, şi rămâne în control primar tot timpul.
Guvernul japonez plănuieşte să dezvolte legi cu privire la utilizarea maşinilor fără şofer. Guvernul a creat de asemenea o clasificare a conducerii automate în 4 clase, inclusiv una pentru conducere complet automată.
În China, Baidu (adesea numit Google-ul chinezesc) lucrează de asemenea la o maşină cu conducere automată, împreună cu BMW. Legislaţia din China este destul de flexibilă, astfel încât guvernul are mai multă putere de a face schimbările. Cu toate acestea, vor trebui să facă faţă aceloraşi probleme complexe ca şi celelalte ţări. India se gândeşte de asemenea la conducerea automată, dar există provocări majore, una dintre ele fiind legislaţia care se modifică foarte lent şi dificultatea de a impune reguli, datorită diferitelor infrastructuri.
Abordarea dezvoltării
În acest context, cum se poate crea un cod care să fie şi sigur în funcţionare, dar să prezinte şi siguranţă pentru om? După cum s-a menţionat, ISO 26262 pune înainte un proces de dezvoltare a software-ului, care include utilizarea de standarde de programare şi unelte de verificare.
Securitatea sistemului începe cu proiectarea unor funcţii care să contribuie la un rezultat sigur, precum: separarea aplicaţiilor, în particular cu firewall-uri, între aplicaţii critice (precum virarea şi frânarea) şi aplicaţii mai puţin critice, în special cele care comunică în exterior (precum sistemele de informare şi distracţie); limitarea comunicaţiilor; verificarea şi validarea datelor comunicate şi multe altele.
După cum majoritatea software-ului din această zonă este scris în C, un bun punct de pornire pentru siguranţă îl reprezintă MISRA C:2012 (MISRA 3). Acesta oferă un set de linii directoare pentru scrierea programelor în C, pentru a evita comportamentul nedefinit, incluzând reguli de îmbunătăţire a întreţinerii, testării, portabilităţii şi citirii codului sursă. Există de asemenea o mare suprapunere între regulile MISRA şi tabelul de conformitate ISO 26262-6, făcând ca MISRA să fie o bună alegere atunci când este necesară conformitate cu ISO 26262.
De curând, MISRA a publicat un amendament 1 la MISRA 3. Acesta are 14 noi reguli, pentru a extinde mai departe acoperirea MISRA în dezvoltarea de sisteme sigure.
Uneltele sunt o parte importantă a dezvoltării în acord cu 26262. Uneltele de analiză statică a programelor sunt o parte importantă a gestionării calităţii programelor, oferind atât un control de calitate, dar măsurând şi adaptarea la standarde de programare, precum MISRA. Uneltele de testare oferă mai multă încredere în software, în vreme ce uneltele de verificare măsoară cât de bine face software-ul ceea ce a intenţionat programatorul.
Este posibilă dezvoltarea de sisteme pentru vehicule, sigure în funcţionare şi sigure pentru om. Organizaţiile care şi-au remodelat procesele de dezvoltare pentru a se conforma cu ISO 26262 au descoperit că, după iniţiere şi faza de învăţare, au început să culeagă roadele prin câştiguri în productivitate.
Bibliografie:
www.iso.org
www.iec.ch/functionalsafety
www.sae.org
www.nhtsa.gov
www.adaptive-ip.eu
www.unece.org
www.misra.org.uk
Autor: Dr. Frank van den Beuken – PRQA
Programming Research Ltd | www.prqa.com