Susiklosčiusi situacija buvo tipinė. Autonominis automobilis vyko nustatytu maršrutu. Jį stebėti turėjęs prie vairo sėdintis žmogus buvo nedėmesingas, nes pasitikėjo ne vieną tūkstantį kilometrų sėkmingai įveikusio automobilio sistemomis.
Paryčiai, aplinkui tamsu. Dviratį su savimi turėjusi moteris išlindo prieš automobilį neleistinoje vietoje.
Vairuotojas ir sistemos avarinę situaciją pastebėjo jai jau vykstant, tad net nestabdydamas visu greičiu „Volvo“ visureigis įsirėžė į moterį. Pastaroji patyrė daugybines traumas, dėl kurių ligoninėje mirė.
Iki nelaimės keleivių pervežimo įmonė „Uber“ net trijuose didmiesčiuose vykdė testus identiškais automobiliais. Jei avariją būtų patikėta tirti tik policijai, ko gero, niekas nebūtų išsiaiškinę tikrosios nelaimės priežasties. Vėliau tokių avarijų galėjo būti šimtai. Kiekvienas įmonės automobilis turėjo tą pačią bėdą.
Kas nutiko? Gana greitai paaiškėjo, kad įmonė buvo išjungusi standartines „Volvo XC90“ įmontuotas saugumo sistemas, pasitikėdama savo autonominėmis sistemomis. Prie vairo sėdėjusi stebėtoja kelionės metu net nesijautė kaip vairuotoja, greičiau kaip keleivė. Buvo tamsu, o pėsčioji neturėjo atšvaito. Automobilis tiesiog nusprendė nereaguoti.
Tiek galėjo pateikti policijos tyrimas. Tačiau, kadangi tai buvo naujausių technologijų platforma, o įvykis sukėlė didelį rezonansą, į tyrimą įsitraukė nacionalinės transporto saugos valdybos (NTSB) specialistai. Jie tiria didžiausias JAV įvykusias nelaimes bei katastrofas, kuriose dalyvauja amerikietiškas technologijas turinčios transporto priemonės.
Būtent šis tyrimas atskleidė, kas įvyko ne taip. Problema atsirado dar tik kuriant autonominės sistemos programą. Mašinoje buvę radarai ir jutikliai šalia kelio einančią moterį pamatė likus 6 sekundėms iki avarijos. Daugiau nei užtektinai laiko imtis veiksmų, tačiau „Uber“ nesiėmė nieko.
Detali įvykių chronologija
Viską atskleidžia detali įvykių chronologija:
5,6 sekundės iki nelaimės. Radarai aptiko moterį. Klasifikacija – transporto priemonė. Kelio spėjimas – nesusikirs.
5,2 sekundės iki nelaimės. Lidar (atstumo matavimas lazeriu) aptiko moterį. Klasifikacija – transporto priemonė. Kelio spėjimas – nejudantis objektas, keliai nesusikirs.
3,9 sekundės iki nelaimės. Lidar klasifikuoją objektą kaip transporto priemonę, nustato, kad ji yra iš kairės pusės. Keliai susikirsti neturi.
3,8–2,7 sekundės iki nelaimės. Sistemos objektą identifikuoja kaip transporto priemonę, bet jau nežinomo tipo. Po kelis kartus. Objekto būsena įvardijama nuo nejudančio iki keliaujančio kairiąja puse. Keliai susikirsti neturi.
2,6 sekundės iki nelaimės. Sistema nustato, kad tai dviratis. Būsena įvardijama kaip statiška.
1,5 sekundės iki nelaimės. Sistemoje pokyčiai, objektas priskiriamas nežinomam. Statiškas. Dalinai SUV kelyje.
1,2 sekundės iki nelaimės. Sistema vėl objektą įvardija kaip dviratį. Judantį automobilio kelyje.
0,2 sekundės iki nelaimės. Objektas – dviratis. Pilnai automobilio kelyje. Stabdyti.
Perskaitėte ir nesupratote, kodėl ši chronologija yra svarbi? Esmė – suvokti, kaip veikia programa. Kiekvieną kartą nustačiusi ir identifikavusi objektą, ji skaičiuoja jo kelią, pateikia skaičiavimus, kuriais remdamasi tikrina, koks galimas pavojus, kad keliai susikirs.
Viskas skamba gerai, bet kiekvieną kartą identifikavus objektą kitaip, ankstesni skaičiavimai pamirštami. Todėl chronologija parodė, kad kompiuteris su kiekvienu to paties objekto pervardijimu vykdė vis naujus skaičiavimus logiškai nesiedamas jų tarpusavyje.
Vykdė skaičiavimus todėl, kad niekas kompiuteriui neįdiegė situacijos, kad žmogus gali šalia savęs vestis dviratį. Ne tik būti dviratininku.
Tokie mėtymaisi atvedė iki kitos tragiškos detalės. Kodėl supratęs įvyksiantį susidūrimą automobilis nieko nedarė dar 1 sekundę? Pasirodo, kad toks vėlavimas taip pat buvo sukurtas programiškai. Juo buvo siekiama sumažinti sistemos jautrumą, kad automobilis neteisingai atpažinęs kliūtį nepradėtų „panikuoti“.
Arba kalbant paprasčiau, kad jis be reikalo nesiimtų avarijos išvengimo manevrų. Per tą laiką įsivaizduojama pavojinga situacija analizuojama. Jei sistema apsigavo, mašina dar nebus pradėjusi kelti pavojų eismo dalyviams savo netikėtais manevrais.
Todėl jei sistema būtų žinojusi, kad žmogus gali varytis dviratį, ji nebūtų daug kartų tam pačiam objektui vykdžiusi skaičiavimų. Likus 2,6 sekundėms iki nelaimės kompiuteris suprato, kad pavojus realus, bet po sekundės sistema pakeitė judančio objekto klasifikaciją iš dviračio į nežinomą ir tam nežinomajam pradėjo skaičiuoti naujus kelio duomenis.
Likus 1,2 sekundėms kompiuteris suprato, kad keliai turi susikirsti. Bet prieš imdamasis veiksmų jis palaukė dar sekundę. Toks vėlavimas neleido sumažinti 72 km/val. greičiu judančio visureigio greičio. Mažesnis greitis galėjo sukelti mažesnius sužalojimus.
Avariją tyrę NTSB specialistai pateikė kelis pakeitimų pasiūlymus, kurie turėtų padėti išvengti tokių nelaimių ateityje.
- NTSB atliktos simuliacijos parodė, kad suderinus „Volvo“ integruotų saugos sprendimų ir „Uber“ naudojamų pridėtų stebėsenos sistemų veikimą neatsiranda daugiau netikro pavojaus signalų, tad panaikintas programinis sprendimų priėmimų vėlavimas leis efektyviau reaguoti į situaciją.
- Turi būti pakeistas objektų trajektorijos skaičiavimo principas. Net jei vykstančio proceso metu objekto klasifikacija pasikeičia (šiuo atveju iš dviračio į žmogaus su dviračiu), stebėsena neturi būti pradedama iš naujo. Skaičiavimai turi būti pateikti tiek atpažintam objektui, tiek prieš tai buvusiems.
NTSB bendradarbiaudami tiek su „Uber“, tiek su „Volvo“ atnaujino mašinų programinę įrangą. Dabar pėstįjį sistema identifikuoja likus 4,5 sekundės iki potencialaus susidūrimo. Maždaug 88 metrų atstumu. Sistema leidžia pradėti stabdymą likus 4 sekundėms iki susidūrimo.
Reikia tikėtis, kad ši tragiškai pasibaigusi avarija atskleidė didžiąsias įmonės kuriamo autonominio vairavimo trūkumus. Jais pasinaudos kitos įmonės. O su tokiomis technologijomis dirbantys programuotojai geriau supras šios nelaimės priežastis ir naujose versijose bus veikiama visai kitaip.