談起自動駕駛的歷史,DARPA 挑戰(zhàn)賽可以代表十年前的最高水平。DARPA,全名“Advanced Research Projects”,指的是預(yù)先研究項目。在 21 世紀(jì)初,出于對無人駕駛車輛的關(guān)注,DARPA 在 2004 年、2005 年和 2007 年針對越野環(huán)境與城市環(huán)境組織相關(guān)自動駕駛競賽。2007 年,卡內(nèi)基梅隆大學(xué)的 BOSS 自動駕駛汽車 4 小時 10 分完成了 96 千米的城市道路比賽,獲得第一名。在這項比賽中,BOSS 在與人類駕駛場景非常接近的環(huán)境中,遵守所有的交通規(guī)則,并與其他交通參與者和障礙物進(jìn)行交互,順利完成任務(wù)。
以 BOSS 為代表的無人車采用由攝像頭、激光雷達(dá)、毫米波雷達(dá)、組合慣導(dǎo)、線控系統(tǒng)、計算單元等構(gòu)成的硬件系統(tǒng),由多傳感器融合、運動物體檢測與跟蹤、運動規(guī)劃和行為規(guī)劃等算法構(gòu)成的軟件系統(tǒng),由軟件和硬件結(jié)合構(gòu)成自動駕駛系統(tǒng),奠定了無人車的基礎(chǔ)路線。時隔多年,依然可稱為無人車中的一座標(biāo)桿,值得無人駕駛研究人員學(xué)習(xí)和研討。
1.基礎(chǔ)路線一:感知子系統(tǒng)與框架
BOSS 周身布置了包括激光雷達(dá)、攝像頭、毫米波雷達(dá)、組合慣導(dǎo)在內(nèi)的十幾個傳感器,使用多傳感器組合提供冗余設(shè)計和全方位覆蓋設(shè)計,以確保在城市環(huán)境中安全行駛。具體傳感器配置如下。
傳感器 |
數(shù)量 |
作用 |
特征 |
Applanix POS-LV 220/420 GPS/IMU (APLX) |
1 |
姿態(tài)估計、組合定位 |
亞米級精度 |
SICK LMS 291-S05/S14 LIDAR (LMS) |
6 |
中距離檢測 |
FOV:180/90deg×0.9deg, 1/0.5deg 角度分辨率; 最大測量范圍:80m |
Velodyne HDL-64 LIDAR (HDL) |
1 |
360°環(huán)境感知 |
FOV:360×26deg, 0.1deg 角度分辨率; 最大測量范圍:70m |
Continental ISF 172 LIDAR (ISF) |
2 |
可調(diào)整視線范圍,覆蓋固定傳感器配置無法觀測到的十字路口 |
FOV: 12×3.2deg 最大測量范圍:150m |
IBEO Alasca XT LIDAR (XT) |
2 |
遠(yuǎn)距離環(huán)境感知 |
FOV:240×3.2 deg; 最大測量范圍:300m |
Continental ARS 300 Radar (ARS) |
5 |
中 / 遠(yuǎn)距離環(huán)境感知 |
FOV:60/17 deg×3.2 deg; 最大測量范圍:60-m/200-m |
Point Grey Fireflfly (PGF) |
2 |
圖像感知 |
高動態(tài)范圍攝像機; FOV:45-deg |
感知子系統(tǒng)為無人駕駛系統(tǒng)的其余部分提供世界的復(fù)合模型(composite model),包括一個靜態(tài)障礙地圖、一個全局移動車輛列表,以及 Boss 相對于道路的位置。
1.1 基于多傳感器融合的運動物體檢測和跟蹤
運動物體檢測和跟蹤系統(tǒng)負(fù)責(zé)檢測和跟蹤自動駕駛汽車車身周圍環(huán)境中障礙物的運動狀態(tài),為智能車輛做出自主決策和規(guī)劃提供一系列參考信息。BOSS 采用多傳感器融合的方法來提高環(huán)境感知能力,整個系統(tǒng)分為兩層:傳感器層和數(shù)據(jù)融合層。傳感器層從傳感器數(shù)據(jù)中提取特征,生成用于根據(jù)點模型或盒模型描述移動障礙物假設(shè)。傳感器層還嘗試將特征與來自融合層的當(dāng)前預(yù)測假設(shè)相關(guān)聯(lián)。如果無法關(guān)聯(lián),將生成新的移動障礙物建議信息。如果可以關(guān)聯(lián),封裝成更新假設(shè)狀態(tài)估計所需的所有觀測信息。數(shù)據(jù)融合層根據(jù)傳感器層提供的觀測信息和建議信息,為每個假設(shè)選擇最佳跟蹤模型,并使用卡爾曼濾波器對運動物體狀態(tài)進(jìn)行最優(yōu)估計。
1.2 靜態(tài)障礙地圖構(gòu)建與表示
靜態(tài)障礙地圖系統(tǒng)將車輛上無數(shù)掃描激光器的數(shù)據(jù)結(jié)合在一起,生成周邊環(huán)境的理解。對于允許自主車輛在公共道路上安全行駛而不與障礙物(如路標(biāo)、路緣)碰撞至關(guān)重要。如路沿檢測算法,主要步驟分為:預(yù)處理、小波特征提取和后處理。預(yù)處理階段提供了兩個重要的特征:減少由于遮擋和稀疏數(shù)據(jù)造成的誤報,以及格式化數(shù)據(jù)以進(jìn)行特征提取?;谛〔ǖ奶卣魈崛∈菍︻A(yù)處理后的點集進(jìn)行離散小波變換。后處理應(yīng)用一些額外的啟發(fā)式來消除誤報和檢測一些額外的非道路點,對預(yù)處理階段進(jìn)行補充。整個路線網(wǎng)絡(luò)定義文件(RNDF),采用拓?fù)鋱D表示(與度量圖表示法對應(yīng))。道路網(wǎng)絡(luò)包括一個或多個路段,每個路段包括一個或多個車道。路段的特征是車道數(shù)、街道名稱和速度限制。車道的特征是車道的寬度、車道標(biāo)線和一組航路點。車道之間的連接以出口和入口航路點為特征。圖中的每個節(jié)點表示一個航路點,方向邊緣表示將該節(jié)點連接到它可以到達(dá)的所有其他航路點的車道。基于多個因素的組合,將成本分配給邊緣,這些因素包括穿過與邊緣相關(guān)聯(lián)的車道的預(yù)期時間、車道長度和環(huán)境的復(fù)雜性。
1.3 車道輔助定位
大多數(shù)城市駕駛可以被認(rèn)為是對固定路網(wǎng)約束內(nèi)的局部干擾的響應(yīng),因此在組合慣導(dǎo)定位失效時,相對于車道邊界正確定位不失為一種方法。使用 SICK LMS 激光來檢測道路上繪制的車道標(biāo)記。車道標(biāo)記通常比周圍的道路材料亮,并通過使用斜率函數(shù)對線掃描中的強度進(jìn)行卷積來檢測。響應(yīng)中的波峰和波谷代表潛在車道標(biāo)記邊界的邊緣。為了減少誤報,僅將適當(dāng)間隔的峰和谷對視為車道標(biāo)記。結(jié)果是一組潛在的車道標(biāo)記位置。將車道標(biāo)記位置與道路模型車道位置進(jìn)行匹配,并通過閾值判斷,生成一個平滑的、基于道路網(wǎng)絡(luò)的位置估計。
2.基礎(chǔ)路線二:規(guī)劃子系統(tǒng)與框架
規(guī)劃子系統(tǒng)分為三層設(shè)計:任務(wù)規(guī)劃(Mission planning),行為規(guī)劃(Behavioral planning)和動作規(guī)劃(Motion planning)。其中,任務(wù)規(guī)劃也可稱之為路徑規(guī)劃或者路由規(guī)劃(Route planning), 負(fù)責(zé)全局的路由尋徑,如起點到終點的路徑選擇;行為規(guī)劃也可稱之為行為決策(Decision),負(fù)責(zé)根據(jù)結(jié)合全局路徑信息、當(dāng)前交通信息和障礙物等情況,給運動規(guī)劃模塊輸入一系列的決策信息,如在十字路口通行優(yōu)先級、交通堵塞處理、車輛匯流合理判斷問題等;動作規(guī)劃接收行為規(guī)劃信息,生成一系列的動作以達(dá)到某種目的,如安全規(guī)避障礙物、準(zhǔn)確進(jìn)入停車位。
2.1 任務(wù)規(guī)劃
根據(jù)道路網(wǎng)絡(luò)定義文件(RNDF)中提供的數(shù)據(jù)來創(chuàng)建道路編碼圖形,對環(huán)境中的航路連通性進(jìn)行描述,主要包括道路與道路之間的連接情況、通行規(guī)則以及道路的路寬等信息。任務(wù)規(guī)劃器根據(jù)路網(wǎng)信息,計算每條道路的 cost,生成車輛可行駛的路徑。當(dāng)然,在車輛動態(tài)行駛過程中,車輛會檢測道路堵塞(blockage)等情況,添加新的觀測數(shù)據(jù)進(jìn)行路網(wǎng)圖更新。任務(wù)規(guī)劃器也會根據(jù)實時的路網(wǎng)信息進(jìn)行可行駛路徑規(guī)劃。主要處理步驟為:
1. 根據(jù)路網(wǎng)信息,計算每條道路的 cost,以進(jìn)行任務(wù)規(guī)劃;
2. 車輛實時檢測阻塞或者根據(jù)靜態(tài)障礙地圖,進(jìn)行路網(wǎng)信息更新;
3. 在阻塞前后進(jìn)行 U 形轉(zhuǎn)彎操作,將 U 形轉(zhuǎn)彎賦予較低的 cost,將通過阻塞賦予較高的 cost;
4. 檢測阻塞算法中漏過的一些障礙物,添加虛擬阻塞;
5. 道路信息是變化的,車輛會重新再次訪問(Revisit)原來到過的地方,并通過指數(shù)型 cost 更新函數(shù)進(jìn)行降低通過阻塞的 cost。
2.2 行為規(guī)劃
行為規(guī)劃負(fù)責(zé)執(zhí)行任務(wù)規(guī)劃生成的路線,基于三種主要駕駛環(huán)境進(jìn)行相應(yīng)駕駛行為。三個環(huán)境分別是:道路(road)、交叉路口(intersection)和區(qū)域(zone)。
它們的相應(yīng)駕駛行為分別是進(jìn)行車道行駛,交叉路口處理和實現(xiàn)區(qū)域姿態(tài)處理(停車等)。
State estimator:將車輛的位置與世界模型結(jié)合起來,使用 RNDF 生成車輛位置。
Goal selector:使用狀態(tài)估算器報告的當(dāng)前邏輯位置來生成下一系列本地目標(biāo),以供運動計劃者執(zhí)行;這些將是道路目標(biāo)或區(qū)域目標(biāo)。
Lane selector: 使用周圍的交通狀況來確定最佳車道隨時進(jìn)入,并在可行時執(zhí)行合并到該車道的操作。
Merge planner: 確定 lane selector 建議的車道的可行性。
Current scene reporter:將已知車輛和離散障礙物的列表提煉為幾個離散數(shù)據(jù)元素,最值得注意的是當(dāng)前車道中距 Boss 前方最近車輛的距離和速度。
Distance keeper: 利用周圍的交通狀況來確定必要的車道內(nèi)車輛安全距離,并據(jù)此控制車輛的速度。
Vehicle driver: 將 Distance keeper 和 Lane selector 的輸出與其自己的內(nèi)部規(guī)則結(jié)合起來,以生成所謂的“運動參數(shù)”消息,可控制諸如速度,加速度和所需跟蹤車道之類的細(xì)節(jié)。
Precedence estimator:使用已知的其他車輛列表及其狀態(tài)信息來確定交叉路口的優(yōu)先級。
Pan-head planner:傳感器獲取相關(guān)的信息,以進(jìn)行交叉路口優(yōu)先決策。
Transition manager:管理行為規(guī)劃和運動規(guī)劃之間的離散目標(biāo)序列,確定何時傳輸?shù)较乱粋€目標(biāo)序列。
場景:兩車道匯流
主要判斷指標(biāo)包括:自車車道是否滿足 merge 過去的空間;目標(biāo)車道各障礙物前后以及障礙物之間是否滿足自車 merge 過來后需要的空間;自車與 merge 目標(biāo)點前后障礙物車的速度、加速度等指標(biāo)是否合理。根據(jù)以上指標(biāo)在目標(biāo)車道挑選最好的 merge 目標(biāo)點。
2.3 動作規(guī)劃
動作規(guī)劃接收行為規(guī)劃的目標(biāo),生成車輛安全運動軌跡。其主要分為兩種工作場景:一種是正常道路(on-road)模式,一種是非結(jié)構(gòu)化道路(unstructured driving)模式。主要步驟為:
1. 根據(jù)任務(wù)規(guī)劃和行為規(guī)劃給定的運動目標(biāo),規(guī)劃一條合理路徑;
2. 基于軌跡生成算法生成一系列的軌跡去跟蹤這條路徑 ;
3. 根據(jù)判定準(zhǔn)則從生成的軌跡中選取最優(yōu)軌跡。
BOSS 采用的軌跡生成算法是模型預(yù)測軌跡生成。通過設(shè)計合理的評價函數(shù),在滿足各種約束條件下,實現(xiàn)避障功能且盡量減小車輛與全局路徑的偏差。模型預(yù)測軌跡生成主要是為了使得規(guī)劃結(jié)果滿足車輛動力學(xué)和運動學(xué)約束,因此可以采用較低精度的車輛模型。
On-road planning:
路徑生成:獲取車道中心線作為目標(biāo)路徑。
軌跡生成:從中心線路徑衍生出多組局部目標(biāo)的軌跡。局部目標(biāo)沿著中心線路徑放置在一個固定的縱向距離上,但在與路徑的橫向偏移上有所不同。
軌跡速度:根據(jù)環(huán)境上下文和各種限制條件,包括當(dāng)前跟隨距離的最大速度、路段速度限制、路徑曲率的最大速度、目標(biāo)點速度等,進(jìn)行速度的配置。
軌跡評估:根據(jù)與障礙物的距離、與中心線的距離、平滑度、最終點誤差(endpoint error)以及軌跡速度等,進(jìn)行最優(yōu)軌跡評估,選擇最優(yōu)軌跡。
在行駛過程中進(jìn)行合理的變道、U 行轉(zhuǎn)彎、異常檢測與恢復(fù)等操作。
3.基礎(chǔ)路線三:系統(tǒng)開發(fā)流程與測試
BOSS 車整套無人駕駛系統(tǒng)從頭開始開發(fā),為了滿足 DARPA 城市挑戰(zhàn)賽的需求,使用了螺旋系統(tǒng)開發(fā)過程,著重于定期的、回歸的系統(tǒng)測試。
測試和開發(fā)緊密地交織在一起,遵循如圖所示的循環(huán)開發(fā)過程。
在算法開發(fā)開始之前,團(tuán)隊定義了 BOSS 需要完成的能力需求(Requirements Definition)。
需求推動了算法的開發(fā)。算法通過模擬或數(shù)據(jù)重放進(jìn)行離線測試(Development & Offline Debugging)。
一旦算法足夠成熟,就進(jìn)行車載測試,全面評估系統(tǒng)和環(huán)境之間的相互作用(Online Developmental Testing)。這些測試通常會發(fā)現(xiàn)在離線測試中并不明顯的算法問題或?qū)崿F(xiàn) bug,通常會導(dǎo)致大量的返工周期和進(jìn)一步的離線調(diào)試。
一旦開發(fā)人員對算法的工作感到滿意,對算法的測試就被添加到正式的、定期安排的系統(tǒng)測試中(Formal System Testing)。對算法進(jìn)行獨立測試過程中發(fā)現(xiàn)新的缺陷,這需要一些返工。
回歸系統(tǒng)測試是開發(fā)過程的基石。在循環(huán)開發(fā)過程之后,每個研究人員都可以自由地實現(xiàn)和測試盡可能獨立于整個系統(tǒng),但是為了判斷系統(tǒng)整體能力并驗證單獨的組件更改不會降低整個系統(tǒng)性能,團(tuán)隊執(zhí)行了回歸系統(tǒng)測試。系統(tǒng)測試的頻率與系統(tǒng)就緒程度成比例。BOSS 車從 2007 年 2 月到 10 月,進(jìn)行了 65 天的系統(tǒng)測試。正式的測試時間在系統(tǒng)的完善過程中進(jìn)行調(diào)整,例如,在二月份,團(tuán)隊進(jìn)行了不到 16 公里的系統(tǒng)測試。相比之下,在 10 月的前 3 周,該團(tuán)隊進(jìn)行了超過 1500 公里的自動測試。