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