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