在2004年的一個(gè)涼爽的星期四早上,第一次機器人汽車(chē)比賽在美國莫哈韋沙漠拉開(kāi)了戰幕。隨著(zhù)太陽(yáng)升起,一只沙漠烏龜從洞穴中探出頭來(lái),希望能在迅速變暖的公路上享受一天的陽(yáng)光。今天它發(fā)現自己被困在了洞穴附近,無(wú)論往哪個(gè)方向都寸步難行。 大約20名生物學(xué)家在這個(gè)洞穴和類(lèi)似的洞穴周?chē)O置了路障,以保護瀕臨滅絕的動(dòng)物免受即將駛過(guò)附近公路的機器人汽車(chē)的傷害。他們恰當地預計了這些汽車(chē)無(wú)法保持在公路上行駛,更不用說(shuō)避開(kāi)它們中間的烏龜了。 自動(dòng)駕駛汽車(chē)挑戰賽 當時(shí)人們對賽車(chē)是否能完成比賽的預期大相徑庭。賽事經(jīng)理毫不含糊地聲稱(chēng),勝利者會(huì )在10小時(shí)內跑完142英里的賽程。但有人懷疑是否會(huì )有任何一輛賽車(chē)能完成比賽,機器人社區的很多人都有此懷疑。 百萬(wàn)美元獎金岌岌可危?死锼•厄姆森(Chris Urmson)是角逐這筆獎金的人之一,他是一個(gè)開(kāi)發(fā)自動(dòng)駕駛悍馬汽車(chē)的研究團隊的設計帶頭人?死锼股聿捻犻L(cháng),頂著(zhù)一頭凌亂的金發(fā)。在傳奇機器人專(zhuān)家“老紅”威廉•惠特克的指導下,克里斯正在卡內基–梅隆大學(xué)攻讀博士學(xué)位。 克里斯•厄姆森(Chris Urmson) 他非常專(zhuān)注于自己的研究,在沙漠中花了近兩個(gè)月的時(shí)間對車(chē)隊的悍馬進(jìn)行測試,一度連續工作近40個(gè)小時(shí)。在一次長(cháng)時(shí)間的測試中,他一直守候到午夜時(shí)分,蜷縮在厚厚的毯子下,看著(zhù)悍馬兜圈子。透過(guò)薄霧,車(chē)頭燈光依稀可見(jiàn),只見(jiàn)悍馬突然偏離了路線(xiàn),撞上了鐵絲網(wǎng)圍欄。在另一次實(shí)驗中,悍馬在急轉彎時(shí)翻了車(chē),傳感器被甩掉了,花了幾個(gè)星期才修復?死锼怪,這些事故發(fā)生在比賽前比發(fā)生在比賽中要好得多。 比賽當天,克里斯和他的團隊設計的裝滿(mǎn)了傳感器的悍馬從烏龜洞穴旁邊疾馳而過(guò),緊隨其后的是另一輛賽車(chē)。悍馬已經(jīng)行駛了大約25分鐘,它的車(chē)速并不快,在駛過(guò)的7英里賽程中,它的平均時(shí)速略高于15英里,但它仍然比當天其他參賽車(chē)輛要好得多。這輛機器人汽車(chē)的擋風(fēng)玻璃被大大的“CAT”(卡特彼勒汽車(chē))徽標蓋住,它自信滿(mǎn)滿(mǎn)地向前奔馳。但突然,隨著(zhù)一個(gè)向左的急轉彎,它的視野一片漆黑。由于看不見(jiàn)路,汽車(chē)成了盲眼行駛。 如何設置自動(dòng)駕駛汽車(chē)的速度? 悍馬是如何自動(dòng)行駛7英里的?你可能聽(tīng)說(shuō)過(guò),自動(dòng)駕駛汽車(chē)實(shí)現自動(dòng)駕駛所使用的技術(shù)是機器學(xué)習,特別是深度神經(jīng)網(wǎng)絡(luò )。但是克里斯和他的同事賽后描述他們的悍馬時(shí),根本沒(méi)有提到機器學(xué)習和神經(jīng)網(wǎng)絡(luò )。當時(shí)是2004年,距離人們研究出如何訓練神經(jīng)網(wǎng)絡(luò )可靠地“看到”物體還有將近10年的時(shí)間。 那么,這些早期的自動(dòng)駕駛汽車(chē)使用了什么技術(shù)呢?當人們提供給一輛汽車(chē)要訪(fǎng)問(wèn)的一系列地點(diǎn)時(shí),它如何在偏遠的交通不便的沙漠公路上行駛數英里?在深入探討這些細節,即自動(dòng)駕駛汽車(chē)軟件的各部分之前,讓我們先快速了解一下計算機控制汽車(chē)硬件的方式。 如何設置自動(dòng)駕駛汽車(chē)的速度?簡(jiǎn)而言之,汽車(chē)需要把計算機給它的數字(比如“25”)轉換成具體的東西,即汽車(chē)的行駛速度。讓這比聽(tīng)上去更難的是,物理發(fā)動(dòng)機不知道“25”是什么意思。例如,即使你知道給電動(dòng)發(fā)動(dòng)機施加250伏的電壓會(huì )讓汽車(chē)以每小時(shí)25英里的速度行駛,你也無(wú)法通過(guò)簡(jiǎn)單地調高或調低電壓來(lái)獲得想要的速度。 如果想讓汽車(chē)以每小時(shí)1英里的速度行駛,你不能指望給發(fā)動(dòng)機施加10伏的電壓它就能做到。在10伏電壓下,發(fā)動(dòng)機根本不會(huì )轉動(dòng)。18世紀,人們通過(guò)使用一種叫離心調速器的裝置解決了這個(gè)問(wèn)題,這種裝置創(chuàng )建了一個(gè)反饋回路來(lái)控制發(fā)動(dòng)機的速度。離心調速器是一種帶有兩個(gè)金屬飛球的“旋轉”裝置,如圖所示,你可能會(huì )把它同蒸汽機和啟蒙時(shí)期的機械車(chē)間聯(lián)系起來(lái)。當發(fā)動(dòng)機運轉得更快時(shí),離心調速器就旋轉得更快,金屬飛球被離心力向外拉。通過(guò)一系列杠桿,一個(gè)閥門(mén)會(huì )關(guān)閉進(jìn)入發(fā)動(dòng)機的燃料通路,使發(fā)動(dòng)機減速。如果發(fā)動(dòng)機運轉太慢,裝置就會(huì )增加發(fā)動(dòng)機的燃料,使其加速。通過(guò)調節注入發(fā)動(dòng)機的燃料,離心調速器可以讓發(fā)動(dòng)機的轉速保持穩定。 離心調速器,電子控制系統的前身。當發(fā)動(dòng)機運轉得更快時(shí),帶有金屬飛球的旋轉軸旋轉得也更快,飛球被離心力向外拉。接下來(lái)的一系列杠桿讓發(fā)動(dòng)機的閥門(mén)關(guān)閉。如果發(fā)動(dòng)機運轉太慢,閥門(mén)就會(huì )讓更多的燃料通過(guò) 這個(gè)離心調速器的缺點(diǎn)是,它只知道如何讓發(fā)動(dòng)機保持單一速度運轉,F代自動(dòng)駕駛汽車(chē)使用類(lèi)似的反饋回路,只是它們可以按照計算機程序控制的任意目標速度運轉。在圖中,你可以看到這樣的反饋回路。你的目標速度(例如每小時(shí)25英里)是這個(gè)反饋回路的輸入,回路使用電子速度計而不是旋轉裝置來(lái)測量車(chē)輪速度與目標速度的差異。 人們希望從速度控制算法中得到的直覺(jué)行為是:當汽車(chē)開(kāi)得太慢時(shí),它會(huì )提高發(fā)動(dòng)機的功率;當汽車(chē)開(kāi)得太快時(shí),它會(huì )降低發(fā)動(dòng)機的功率。一種常用的調節發(fā)動(dòng)機功率的方法叫作比例控制,之所以叫比例控制,是因為我們對功率的調節等于目標速度和當前速度的差值乘以一個(gè)固定的系數。比例控制并不完美,如果汽車(chē)爬坡行駛或逆風(fēng)行駛,它的行駛速度往往比我們期望的速度慢。因此,我們通常會(huì )對控制算法做一些其他調整,例如,如果車(chē)速一直太慢,發(fā)動(dòng)機的功率就會(huì )稍微提升一些。 最常見(jiàn)的控制算法由三條簡(jiǎn)單規則組成,它可以使汽車(chē)可靠地達到目標速度。我們在接下來(lái)的幾章中介紹的許多自動(dòng)駕駛汽車(chē)都使用了這種三規則控制器,專(zhuān)家稱(chēng)之為PID(比例–積分–微分)控制器。 既然我們已經(jīng)對硬件的控制方法有了大致的了解,就無(wú)須再過(guò)多思考這些復雜的細節。創(chuàng )建硬件固然重要,但我們可以假設它是一項單獨的挑戰。為了從我們的視角來(lái)控制速度和轉向,我們需要編寫(xiě)一個(gè)軟件來(lái)告訴汽車(chē)應該以什么速度行駛,車(chē)輪應該扭轉多大角度。把開(kāi)車(chē)從硬件問(wèn)題轉變?yōu)檐浖䥺?wèn)題,現在我們便可以只關(guān)注軟件問(wèn)題了。 PID控制器的反饋回路,即上文描述的三規則控制器。該控制器使用速度計的反饋來(lái)調節發(fā)動(dòng)機的輸入,例如功率 自動(dòng)駕駛汽車(chē)的路徑選擇 當悍馬在比賽中行駛時(shí),它并不是朝某個(gè)隨機方向行駛25分鐘,而是沿著(zhù)一條通往特定目的地的道路行駛。汽車(chē)可以朝目的地行駛,是因為車(chē)里有一個(gè)軟件告訴它該去哪里。這個(gè)規劃組件是自動(dòng)駕駛汽車(chē)最重要的部分,它決定了系統其余部分的優(yōu)先級。汽車(chē)所做的其他一切事情,比如利用轉向系統保持在道路上行駛、不撞上巖石等,都是為了進(jìn)一步實(shí)現沿著(zhù)那條路徑行駛的目標。 在比賽開(kāi)始前僅兩個(gè)小時(shí)的時(shí)候,機器人汽車(chē)比賽的組織者才向參賽者提供了一幅電子地圖,因為他們不希望參賽者提前偷看這條路線(xiàn)。這張帶有GPS(全球定位系統)坐標的地圖描繪了賽車(chē)從比賽起點(diǎn)到終點(diǎn)的路線(xiàn)。因此,克里斯和他的團隊為汽車(chē)配備了GPS傳感器來(lái)檢測位置。 從理論上講,汽車(chē)只需要從地圖上的一個(gè)地點(diǎn)導航到另一個(gè)地點(diǎn),用GPS傳感器調整方向,使自身保持沿路線(xiàn)行進(jìn)即可?死锼沟膱F隊自稱(chēng)紅色車(chē)隊。他們知道GPS是導航中最重要的部分,但他們也知道這還不夠。柵欄和巖石之類(lèi)的障礙物會(huì )擋住去路。因此,紅色車(chē)隊還提前繪制了一幅巨大的地圖,稱(chēng)之為“世界上最好的地圖”,以此完善他們在比賽當天早上得到的地圖。在比賽開(kāi)始前的幾周里,他們研究了54000平方英里a沙漠的衛星圖像,以確定障礙物的位置。 接下來(lái),在比賽開(kāi)始前僅兩個(gè)小時(shí)的時(shí)候,他們獲得了路線(xiàn)的GPS坐標,14個(gè)人連忙在幾十臺計算機的幫助下手工標注沿途的地形。當這些工作人員手工標注地圖時(shí),計算機不斷搜索從比賽起點(diǎn)到終點(diǎn)的最佳路線(xiàn),并將最新信息發(fā)送給工作人員,以便其確定研究的優(yōu)先順序?死锼购退膱F隊計劃在比賽開(kāi)始前把這條預先計算好的路徑上傳到他們的自動(dòng)駕駛悍馬上。 僅僅走了5%路程的第一名 悍馬在沙漠中剛剛駛過(guò)7英里里程標后,一頭撞上了一塊巖石。那里有一個(gè)向左的急轉彎,但悍馬轉彎太急了,左側車(chē)輪越過(guò)了路肩。它向前滑行,底盤(pán)陷入沙土中,最終撞上了巖石。比賽計時(shí)器上的時(shí)間一分鐘又一分鐘地流逝,悍馬還在沙土中旋轉著(zhù)車(chē)輪。幾名負責跟蹤悍馬進(jìn)程的賽事官員注視著(zhù)它在晨光中掙扎。 悍馬的車(chē)輪旋轉了將近7分鐘,最終著(zhù)火了。附近的賽事官立刻按下遙控的電子滅火開(kāi)關(guān),停止了機器人,然后跳出來(lái)?yè)錅缌嘶鹧。悍馬的車(chē)輪轉得太快了,當按下電子滅火開(kāi)關(guān)時(shí),它的兩個(gè)半軸全都斷裂了?死锼沟年犖檎酵顺隽吮荣。 DARPA(美國國防部高級研究計劃局)組織了這次機器人汽車(chē)比賽,人們稱(chēng)之為“DARPA無(wú)人車(chē)挑戰賽”(DARPA Grand Challenge)。在106輛報名參賽的車(chē)輛中,有15輛在比賽當天參加了比賽,其中包括克里斯和他的團隊設計的機器人悍馬。 最終,這些自動(dòng)駕駛汽車(chē)沒(méi)有一輛贏(yíng)得百萬(wàn)美元獎金。在旁觀(guān)者看來(lái),這些賽車(chē)看起來(lái)簡(jiǎn)直就像一群可憐蟲(chóng):只見(jiàn)一輛參賽的大卡車(chē)慢慢地從灌木叢中退出來(lái);另一輛車(chē)因為害怕影子而駛離了道路;18那位自動(dòng)駕駛摩托車(chē)的發(fā)明者,在賽前的興奮和歡呼中,忘記了把摩托車(chē)切換到自動(dòng)駕駛模式,它在起跑線(xiàn)就一頭栽倒了。 悍馬行駛了7.4英里,最終在路邊拋了錨。雖然它是比賽中表現最好的車(chē)輛,但它僅僅走完了5%的路程。紅色車(chē)隊研究了他們的比賽記錄,發(fā)表了一份長(cháng)篇報告,概述了這輛悍馬的優(yōu)缺點(diǎn)。他們在報告中列舉了25分鐘行駛過(guò)程中的一些問(wèn)題。報告讀起來(lái)就像電影《福祿雙霸天》(The Blues Brothers,是歷史上損毀車(chē)輛最多的電影)的劇本。
在紅色車(chē)隊的報告中,這些撞擊被描述為“非正常行為”,但保險公司可能會(huì )更恰當地稱(chēng)之為事故。DARPA曾向參賽者宣布,比賽可以用普通四驅皮卡完成,但紅色車(chē)隊選擇了一輛悍馬,因為他們不希望硬件成為瓶頸。這在某些情況下確實(shí)有所幫助,例如,3號圍欄樁是加固過(guò)的,堅固的悍馬推了它近兩分鐘才終于把它推倒,繼續前進(jìn)?死锼股踔练Q(chēng)他們的悍馬為“汽車(chē)破城槌,時(shí)速22英里的猛獸”。但是一輛堅硬的悍馬并不足以贏(yíng)得勝利。 ; _ c) y: ]5 l/ j! Y( k4 U S問(wèn)題是悍馬幾乎看不到它的去向。它的巨眼太原始,視力太差。除了長(cháng)距離導航功能之外,悍馬的大部分智能行為都涉及使用簡(jiǎn)單的規則對傳感器做出反應。紅色車(chē)隊意識到了這些局限,對悍馬進(jìn)行了編程,讓悍馬在數據可能不可靠時(shí)忽略攝像頭和激光掃描儀的數據,然后按照GPS坐標,沿著(zhù)預定路線(xiàn)盲眼行駛。這就是在悍馬致命的撞車(chē)之前發(fā)生的事情。它必須改進(jìn)巨眼和任何支持巨眼的軟件。 一場(chǎng)失敗的比賽,一個(gè)全新的開(kāi)始 對旁觀(guān)者而言,DARPA無(wú)人車(chē)挑戰賽可能看起來(lái)就是一次失敗。美國有線(xiàn)電視新聞網(wǎng)以“機器人折戟挑戰賽”為題總結了這次比賽!洞蟊娍茖W(xué)》(Popular Science)稱(chēng)之為“DARPA的沙漠潰敗”。從好的一面講,正如一位觀(guān)眾所言,這是“拖車(chē)司機的好日子”。 但許多參賽者對結果非常滿(mǎn)意。當晚,參賽者和組織者在位于終點(diǎn)的布法羅比爾賭場(chǎng)聚會(huì ),在那里,他們被一群熱衷于制造機器人汽車(chē)的極客包圍了。很快,所有人都能詳細了解機器人悍馬如何在崎嶇的沙漠里跑7.4英里了!而且,在連續數月的連夜奮戰和周末加班之后,他們終于可以補覺(jué)了。 DARPA的官員也很興奮,互相祝賀這場(chǎng)比賽的成功。在之前的8年中,自從自動(dòng)駕駛汽車(chē)領(lǐng)域的引領(lǐng)者之一恩斯特•迪克曼斯(Ernst Dickmanns)宣稱(chēng)“這個(gè)領(lǐng)域需要等到計算機變得更強大才有希望”,該領(lǐng)域就一直在寒冬中蟄伏。計算機的速度提高了25倍,DARPA無(wú)人車(chē)挑戰賽迅速重燃了這個(gè)領(lǐng)域,讓研究人員得以再度取得進(jìn)展。 DARPA也更接近于實(shí)現國會(huì )的目標—到2015年使1/3的軍用車(chē)輛實(shí)現自動(dòng)駕駛(據我所知,這個(gè)目標并沒(méi)有實(shí)現)。與參賽者一樣,DARPA也擁有來(lái)自世界各地專(zhuān)家的文獻,內容涉及如何制造可以在沙漠中自動(dòng)行駛的汽車(chē)!皩ξ覀兌,是否有車(chē)輛跑完整個(gè)賽程并不重要,”時(shí)任DARPA主任的安東尼•特瑟(Anthony Tether)解釋道,“我們希望激起人們對這個(gè)領(lǐng)域的科學(xué)興趣和工程興趣! 從這個(gè)角度看,這次比賽大獲成功。它吸引了100多名申請者,并在短短幾個(gè)月內就看到了450多家電視媒體和58家報紙的報道!哆B線(xiàn)》(Wired)和《大眾科學(xué)》等28家頂級雜志用大量篇幅報道了這一賽事。盡管他們當時(shí)并不知道,但這至少比重工業(yè)投資自動(dòng)駕駛汽車(chē)技術(shù)提前了15年。 |