Självkörningsdatorn klarade inte av att lägga upp en plan för att undvika att köra på Elaine Herzberg eftersom bilens radar och lidar ständigt ändrade sina besked om vad för typ av objekt hon var. Det var grundorsaken till att Ubers testbil körde på och dödade en kvinna i Tempe i Arizona i mars i fjol.
Den amerikanska haverimyndigheten NTSB (National Transportation Safety Board) har släppt en ny rapport om dödsolyckan i Tempe i fjol där en kvinna vid namn Elaine Herzberg blev påkörd av en av Ubers testbilar för autonom körning.
Uber har sedermera – bland annat i samarbete med Volvo – konstruerat om sina system så att olyckan idag inte skulle ha inträffat. Det hävdar i alla fall Uber med hänvisning till simuleringar.
Samtidigt kommer inte heller den kritiska situationen i sig att uppträda igen, bland annat eftersom Uber numera endast testkör i upp till 25 mph (40 km/h) och bilen körde i 45 mph (70 km/h) vid olyckan. Det är en av många säkerhetsförbättringar på olika nivåer som Uber vidtagit.
I den film vi tidigare sett av olyckan verkar det som om bilen helt och hållet ignorerar Elaine Herzberg. Den saktar inte ens ner när kollisionen är omedelbart förestående. Det är som om bilen inte ens sett henne.
I själva verket pågår en febril aktivitet i Ubers självkörningssystem. NTSB:s rapport berättar för varje bråkdels sekund vad lidar och radar rapporterade och vad självkörningsdatorn beslutade.
Både radar och lidar har i god tid – 5,6 sekunder innan kollisionen – rapporterat att det finns ett objekt på vägen. Vi vet att idag att objektet var Elaine Herzberg och en cykel lastad med kassar.
Lidarn kan inte bestämma sig för vad den ser. Den växlar fram och tillbaka med att gissa mellan ”fordon”, ”övrigt” och ”cykel”.
Detta snabba växlande mellan olika bedömningar är den kritisk faktorn bakom olyckan.
Varje gång som lidarn ändrar uppfattning om vad det är som den ser, så gör självkörningsdatorn en nollställning. Så är programvaran skriven. Datorn agerar som om den gång på gång upptäcker ett helt nytt objekt på vägen.
Det betyder att detta objekt inte har någon historia – till exempel en tidigare position. Vilket betyder att datorn inte kan skatta hur objektet rört sig sedan den förra rapporten.
Därför märker inte datorn att Elaine Herzberg och hennes cykel rör sig över vägen på väg in i bilens fil.
Idag är programvaran ändrad. Idag formulerar datorn parallella hypoteser om vart objekt kan vara på väg baserat på antaganden om att tidigare skilda klassificeringar egentligen handlat om samma objekt.
Men den gamla programvaran fortsatte att se objektet byta kategori och nollställde gång på gång dess historia. Efter nollställningen görs olika initialantaganden för olika klassificeringar. Om det är ett ”fordon” antas vanligtvis att det kör i sin fil. Ett ”övrigt” objekt antas står stilla.
Enligt vad NTSB redovisat hittills klassades aldrig Elaine Herzberg som ”fotgängare”. Men det hade inte nödvändigtvis gjort skillnad. En självkörande bil kan inte bromsa varje gång den ser en fotgängare eller cykel nära sin fil.
Det som datorn inväntar är en serie samstämmiga besked om vad objektet är – för då kan den prediktera vart objektet är på väg, oavsett om det handlar om en ”cykel”, ”fotgängare”, ”fordon” eller ”okänd”. Ingen av dessa är objekt som bilen är programmerad att köra på.
Men kategoriseringarna fortsatte olyckligtvis att växla. Vid 1,5 sekunder innan kollisionen klassades Elaine Herzberg som en ”övrigt” som dessutom befann sig lite i vägen för bilen. Datorn planerade en lätt undanmanöver.
Vid 1,2 sekunder kvar till kollisionen klassades objektet som en ”cykel”. Dessutom konstaterade datorn att denna cykel befann sig på en position där en lätt undanöver inte räckte och att det krävdes en nödbromsning.
Men tyvärr var datorn programmerad att i detta läge ge sig själv en extra betänketid på en sekund istället för att skrida till handling.
En extra betänketid på 1 sekund när det återstår 1,2 sekunder till kollision? Jo, så absurd var faktiskt programmeringen.
Det finns en bakomliggande orsak: Uber ville undvika att ständigt bromsa för falsklarm.
Uber utvecklar en taxi som ska frakta människor. Falska indikationer var vanliga och att reagera på alla dessa skulle göra fordonet till en obekväm taxi.
Men säkerheten då?! Den var den ensamma säkerhetsförarens ansvar. Ubers plan var att hon ständigt skulle hålla ögonen på vägen och direkt ingripa och avstyra alla farliga situationer.
I väntan på att självkörningssystsemet skulle mogna var säkerhetsföraren en kritisk komponent. Hon hade gått en flera veckor lång utbildning för jobbet. Och i garaget satt stora affischer – ”Använd inte mobilen – den kan vänta!”.
Men likväl använde hon ändå sin mobil. Hon satt och tittade på ett teveprogram. Då och då tittade hon upp från skärmen. Tyvärr missade hon Elaine Herzberg.
När betänketiden var till ända var det bara 200 millisekunder kvar till kollisionen. Bilen insåg att den inte längre hade möjlighet att att avstyra kollisionen.
Så den gjorde – ingenting. Det skulle ju ändå inte hjälpa. Japp – ytterligare ett absurt villkor i koden.
Idag är systemet omkonstruerat. Bilen bromsar även om det är ”försent”. Dessutom hoppar den över betänketiden.
Det omkonstruerade systemet skulle alltså ha gett Elaine Herzberg mer tid att komma över vägen – mer än 1,2 sekunder eftersom bromsningen i sig skulle ökat tidsspannet. Alternativt hade det åtminstone gjort krockvåldet mindre – hon kastades 20 meter – och hon kunde ha klarat sig levande ur händelsen.
Med hänsyn taget även till andra systemändringar skulle datorn vidtagit åtgärder flera sekunder tidigare och Elaine Herzberg skulle definitivt ha klarat sig, enligt Uber. Omkonstruktionen har efteråt heller inte lett till falsklarm.
Idag skulle Elaine Herzfeld dessutom kunna räddas av Volvos säkerhetssystem. En Volvo XC90 – Ubers testfordon – har Auto Emergency Breaking och Forward Collision Detection som ska kunna undvika att köra på fotgängare.
Om de systemen skulle ha reagerat på Elaine Herzfeld den kvällen? Det vet vi inte. Men numera är de i alla fall påslagna ibland. Det var de inte i Tempe. I alla fall inte lika ofta.
Uber hade sitt eget nödsystem, som beskrivs ovan, och det var det som Uber vill utveckla. Volvos system var avstängda för att inte störa.
Numera har Ubers och Volvos programmerare träffat varandra och sytt ihop sina nödsystem – bland annat genom att anpassa radarn – och gett dem olika prioriteter för olika situationer om de ger motstridiga kommandon.