本文做者:Apollo開發者社區算法
預測模塊是將對感知到的障礙物在將來一段時間內的運動軌跡進行估計,輸出的預測消息將會打包感知信息,預測模塊將訂閱定位、規劃和感知障礙等消息。網絡
Apollo預測模塊按照物體不一樣的特徵,採用不一樣的模型,分別預測各自軌跡,並對不一樣類型的輸入特徵,選擇合適的模型分別提取。在算法上,因爲實時算例存在限制,預測模塊會劃分優先級對機動車周圍進行處理。函數
如下,ENJOY spa
1、簡介3d
預測模塊是研究並預測感知模塊檢測到的全部障礙物的行爲。預測模塊接收障礙物數據以及基本的感知信息,包括位置、方向、速度、加速度,而後爲這些感知到的障礙物生成機率預測軌跡。blog
注意:預測模塊只預測障礙物的行爲, 而不預測汽車自己。規劃模塊規劃汽車自己的軌跡。開發
從感知模塊獲得的障礙物信息。get
從定位模塊獲得的位置信息。io
從規模模塊獲得的以前計算週期的規劃軌跡。社區
帶有預測軌跡及其優先級的障礙物,由於各個獨立場景的優先級不一樣,現階段的方案也要計算障礙物優先級。優先級包括:忽略、謹慎和正常 (默認) 。
以下圖所示,預測模塊由四個主要功能模塊組成:容器、場景分析器、評估器和預測器。Apollo 3.0中已經有容器、評估器和預測器。在Apollo 3.5中,由於咱們已經採用一個基於多場景的方法來提高Apollo的自動駕駛能力,因此引入了場景功能模塊。
▲預測模塊的組成
容器存儲來自訂閱通道的輸入數據,當前支持的輸入包括感知障礙物、自車定位信息和自車規劃軌跡。
場景分析子模塊包含自車在內的場景,當前,咱們定義了兩類場景:
巡航:該場景包括車道保持和跟蹤。
交叉路口:這種場景涉及交叉路口,交叉路口要麼有交通燈或停車標誌。
評估器爲任意給定的障礙物預測路徑和速度。評估程序使用存儲在prediction/data/中的模型給車道序列預測一個機率值,以此來預測一條路徑。
當前有五類評估器,其中兩個是Apollo 3.5新添加的。由於巡航和交叉路口兩種場景被新添加到Apollo中,因此他們對應的評估器(巡航MLP(多層感知機)和交叉路口MLP)也被添加到Apollo 3.5。當前的評估器包括如下幾個:
代價評估器:經過一組代價函數計算機率。
多層感知機評估器:使用一個多層感知機模型計算機率。
RNN(迴歸神經網絡) 評估器:使用一個RNN模型計算機率。
巡航多層感知機+一維卷積神經網絡混合評估器:針對巡航場景,使用一個多層感知機和一維卷積神經網絡的混合模型計算機率。
交叉路口多層感知機評估器:針對交叉路口場景,使用一個多層感知機模型計算機率。
預測器生存障礙物的預測軌跡,當前,主要支持如下預測器:
空白:障礙物沒有預測軌跡。
單車道:障礙物沿着單一車道運動,不在該車道上的障礙物能夠忽略。
車道序列:障礙物在車道之間移動。
移動序列:障礙物根據它的動力學模型在車道之間移動。
自由移動:障礙物自由地移動。
區域移動:障礙物在可能的區域內移動 。
交叉路口:障礙物大機率朝着交叉路口移動。
預測模塊估計全部感知障礙物的將來運動軌跡,輸出的預測消息打包了感知信息。預測模塊訂閱感知障礙物消息並由其觸發,代碼以下所示:
預測模塊一樣採用定位模塊和規劃模塊的輸出信息做爲輸入,其結構以下所示: