圖文來源:Forbes ,作者:Lance Eliot
“鷹已經(jīng)著陸。”
也許全世界的人都聽到過“the Eagle had landed”,而這句話中的鷹指的就是登月艙。半個世紀(jì)前的7月20日,阿波羅11號成功登月。
讓我們回到50年前那個不可思議的壯舉的前幾分鐘。
在登月過程中,宇航員尼爾·阿姆斯特朗(Neil Armstrong)和巴茲·奧爾德林(Buzz Aldrin)正在與任務(wù)控制中心進(jìn)行對話。
仔細(xì)聽他們之間的對話錄音。除非你是電腦或航天飛機(jī)的狂熱愛好者或?qū)<遥駝t可能不會注意到當(dāng)時出現(xiàn)的一種提示音,即使注意到了也不會產(chǎn)生擔(dān)憂。
但這其實是一種警報,代表的是錯誤代碼1202和1201。
讓我們揭開這個一般人不知道的緊張故事,并考慮一下可以應(yīng)用到目前正在興起的自動駕駛汽車上的經(jīng)驗教訓(xùn)。
首次登月的焦慮時刻
當(dāng)?shù)窃屡撾x著陸只有7分半鐘時,系統(tǒng)開始報錯。在這樣一個前無古人又極其危險的任務(wù)中出現(xiàn)這種情況肯定不是任何人所希望的。
后來的報告表明,當(dāng)錯誤開始出現(xiàn)時,兩名宇航員的心率急速上升。緊張是肯定的,畢竟,之前進(jìn)行的都是模擬訓(xùn)練,沒有人知道真實情況會怎樣。
宇航員面臨著這樣的選擇:如果在下降過程中出現(xiàn)了什么差錯,可能需要取消著陸。
但如果這么做,對于只有一次著陸機(jī)會的他們來說,就意味著不得不承認(rèn)失敗并失望地返回地球。
這對NASA來說將是一個毀滅性的打擊,對整個美國來說也將是一個令人心碎的時刻,同時還為俄羅斯人打開了一扇更大的窗口,讓他們趕在美國之前登月成為可能。
一切都命懸一線。更糟糕的是,它可能會撞向月球,這種結(jié)果讓人一想到就不寒而栗。
再來看看上面提到的那兩個由4位數(shù)組成的代碼。在月球著陸器系統(tǒng)的設(shè)計過程中,開發(fā)人員提出了一系列錯誤代碼,如果計算機(jī)檢測到飛船上有什么問題,這些代碼就會顯示出來。
但是,當(dāng)宇航員一次又一次地模擬著陸時,并不是所有可能的錯誤代碼都經(jīng)過了測試,因此有些錯誤代碼宇航員從未見過甚至都不知道其存在。
有時就是這么巧,1202和1201這兩個錯誤代碼在他們之前的訓(xùn)練中從沒有顯示出來過。因此,宇航員并不知道這幾個數(shù)字到底意味著什么,大多數(shù)監(jiān)測著陸的任務(wù)管制人員以前也沒有見過。
好吧,讓我們試著重溫歷史。
坐在狹小的登月艙里,距離著陸只有幾分鐘,這時,警報響起、按鈕閃爍,宇航員看到了數(shù)字,雖然不知道什么意思,但不能表現(xiàn)出來,所以他們就平靜地把錯誤代碼匯報給了任務(wù)控制中心。
“是1202。”
場景轉(zhuǎn)到任務(wù)控制室,人們的目光一片空白,因為基本上沒有人知道1202是干什么的。與此同時,指揮官史蒂夫·貝爾斯(Steve Bales)被叫到一個密室,那里聚集著各種各樣的工程師,隨時準(zhǔn)備調(diào)查可能出現(xiàn)的任何系統(tǒng)相關(guān)問題。
“那是什么?”貝爾斯問道。
NASA工程師約翰·加曼(John “Jack” Garman)瀏覽著他手寫的一份清單,上面列著團(tuán)隊提出的許多錯誤代碼。
他意識到1202的意思是登陸器上的導(dǎo)航計算機(jī)正在超負(fù)荷工作。
當(dāng)然,程序員已經(jīng)預(yù)料到這種重載可能會在某一天發(fā)生,因此構(gòu)建了一個系統(tǒng)內(nèi)部機(jī)制,可以自動進(jìn)行快速重啟,然后進(jìn)行內(nèi)存恢復(fù),以使計算機(jī)重新運(yùn)行。
理論上,計算機(jī)能夠解決這個錯誤,而不需要任何人工干預(yù)。加曼也表示,如果1202錯誤代碼在接下來的下降過程中沒有頻繁出現(xiàn),就算系統(tǒng)看似超載,任務(wù)也可以繼續(xù)下去。
“給我們一個1202程序報警的指示。”阿姆斯特朗聯(lián)絡(luò)道。
在錄音中,你可以從他的聲音中感受到包括嚴(yán)肅、嚴(yán)厲和惱怒的多重情感,因為在這種緊急關(guān)頭,竟然還沒有人告訴他們該如何處理這個錯誤。
試想,當(dāng)你收到一個未知的信息,不知道任何處理方法,周圍一片黑暗,接下來可能有生命危險,每過去一秒就可能離毀滅又近了一步,這會是一種多么絕望的感覺。
指揮中心的查理·杜克(Charlie Duke,后來成為阿波羅16號飛船宇航員)給出了回復(fù):“在警報下繼續(xù)任務(wù)。”
由于沒有向宇航員進(jìn)一步說明該做什么,這意味著警報(無論它意味著什么)都可以忽略不計。而“繼續(xù)”意味著登陸。
巴茲·奧爾德林后來指出,一旦控制中心說不用擔(dān)心,他就放手了,不再去想它。確實,與其想知道1202是什么意思,該采取何種行動顯然更重要。
如果接著聽完錄音的剩余幾分鐘,1202錯誤一次又一次地發(fā)生,以及1201的相關(guān)錯誤代碼。指揮中心通知宇航員,這被認(rèn)為是同一類型的錯誤,并暗示沒有必要對警報采取任何措施。
對于當(dāng)時的普通聽眾來說,這就像是宇航員和總部之間進(jìn)行的正常互動,又因為用詞通常是技術(shù)性的,所以一般人并不真正知道他們其實都已經(jīng)開始談?wù)撘灰艞壛恕?/p>
以上就是阿波羅11號登月故事中的故事。
給自動駕駛汽車的經(jīng)驗教訓(xùn)
50年前發(fā)生的與系統(tǒng)相關(guān)的事情,今天還能適用?當(dāng)然可以。
首先,自動駕駛汽車是基于實時的系統(tǒng),需要的是對路況的快速反饋,而在高速公路上行駛時,其速度可以超過每小時100公里。
第二個相同點,是自動駕駛汽車上也有許多計算機(jī)處理器,需要用到多種內(nèi)存來存儲正在執(zhí)行或完成的駕駛程序。
此外,汽車上還有無數(shù)的傳感器,如攝像頭、無線電雷達(dá)、超聲波設(shè)備、激光雷達(dá)等,所有這些傳感器都在駕駛過程中收集數(shù)據(jù),并將這些數(shù)據(jù)傳輸回計算機(jī)處理器和存儲區(qū)中。
簡單來說,“鷹”上出現(xiàn)的1202是由故障的雷達(dá)裝置引起的,導(dǎo)致系統(tǒng)不停地接收到無用的新任務(wù)。計算機(jī)的操作系統(tǒng)允許內(nèi)存被填滿,但這意味著其他任務(wù)將沒有可執(zhí)行的空間。
就像前面說過的,程序員知道機(jī)載計算機(jī)可能會在某一時刻因任務(wù)過重而不堪重負(fù)。通過快速重啟,機(jī)器可以繼續(xù)高優(yōu)先級任務(wù),但請注意,它不一定能解決雷達(dá)不斷“騷擾”系統(tǒng)的根本問題。
有多少次你重啟了你的智能手機(jī)或筆記本電腦,然后發(fā)現(xiàn)它依舊出問題?估計數(shù)不清了吧。
1202代碼也是,重啟可以臨時終止系統(tǒng)運(yùn)行,但這不能從源頭上解決故障。
以下是阿波羅11號給人工智能開發(fā)人員、汽車制造商和為自動駕駛汽車開發(fā)軟件和系統(tǒng)的科技公司的一些建議。
1. 對傳感器的不確定性進(jìn)行預(yù)測和編碼
沒有什么是完美無缺的,自動駕駛汽車上的傳感器也不例外,除了可能被灰塵或碎片遮擋、破壞這種明顯的外部因素之外,傳感器也有可能由于一些內(nèi)部bug或故障而出錯。
確保為這種可能性編寫代碼,并為一旦出現(xiàn)問題時該做些什么做好準(zhǔn)備。
2. 確保自動駕駛汽車的操作系統(tǒng)足夠強(qiáng)大
一些用于自動駕駛汽車的操作系統(tǒng)在某種程度上已被簡化,為的是提高速度,但它還需要能夠處理各種已知的和不可預(yù)測的故障或可能發(fā)生的系統(tǒng)問題。
確保操作系統(tǒng)能夠勝任支持與駕駛相關(guān)的系統(tǒng)任務(wù),安全性上同樣。
3. 不要忽略特殊情況
目前大多數(shù)自動駕駛汽車關(guān)注的重點是在常規(guī)條件下的行駛,而不是處理不尋常或罕見的駕駛情況(所謂的“邊緣”方面)。
然而,真實情況并非如此,根據(jù)國家或地區(qū)的不同,惡劣的天氣、糟糕的道路、不守規(guī)矩的司機(jī)都很常見。
在公路上試運(yùn)行的自動駕駛汽車需要準(zhǔn)備好應(yīng)對邊緣情況。
4. 測試必須詳盡徹底
測試自動駕駛汽車時哪怕忽略了一種測試用例,就給乘客增加了一種潛在的危險,在現(xiàn)實世界中,這種僥幸心理往往會產(chǎn)生非常可怕的后果。
測試需要盡可能的完整。
5. 謹(jǐn)慎地使用重啟,并僅作為最后的手段
想象一下,你坐在一輛自動駕駛汽車?yán)铮诟咚俟飞巷w馳,而人工智能報告說它需要立即重啟。這可與玩游戲時設(shè)備重啟的后果嚴(yán)重性不一樣。
開發(fā)人員應(yīng)該考慮將車載重啟作為最后的手段,并且必須非常謹(jǐn)慎地援用。
結(jié)論
一個好消息是,如今自動駕駛汽車的處理能力比阿波羅11號宇宙飛船上使用的計算機(jī)要強(qiáng)大得多。
我們普遍用得到的計算機(jī)對于1969年的那些程序員來說,簡直就是夢幻一般。甚至智能手機(jī)在性能上也遠(yuǎn)超登月的設(shè)備。
但這只是硬件方面的問題。
從軟件的角度來看,即使過去了半個世紀(jì),我們?nèi)匀粫苋菀椎赜龅酵瑯拥膯栴},包括隱藏的bug或突然出現(xiàn)的報錯。
因此,在設(shè)計、編碼、測試和部署自動駕駛汽車時要格外小心。
感謝NASA和所有參與把人類送上月球的人,希望未來的自動駕駛汽車能夠為任何可能彈出的1202或1201代碼做好準(zhǔn)備。
來源:第一電動網(wǎng)
作者:汽車商業(yè)評論
本文地址:http://m.155ck.com/kol/95096
文中圖片源自互聯(lián)網(wǎng),如有侵權(quán)請聯(lián)系admin#d1ev.com(#替換成@)刪除。