https://zhuanlan.zhihu.com/p/33852112
文章提到了幾個點:
一、雷達radar部分:
Apollo 2.0 的座標體系是以 Lidar 爲基準的。Apollo 可能認爲 Velodyne 的位置是最準確的,因此 Camera 的位置標定參考 Velodyne, Radar 的標定參考 Camera。
阿波羅的感知幾乎都依賴高精地圖預先做ROI處理,以減少傳感器數據處理的計算量浪費。
radar部分的代碼,用到了一些方法來判斷radar返回的對象是不是背景雜波。
Apollo 推薦使用的毫米波爲Continental 的 ARS 408-21。ARS 408-21的介紹文檔裏也有簡單提到,它可以對障礙物進行分類。但可靠性未知。該radar能追蹤120個objects:大陸的Radar能夠detect到超過120個object(沒有進行過fusion的只有一點的cluster single point cluster)。 這種量產的Radar一般自帶簡單的detection和tracking算法。所以raw_object會有id,一般自帶的算法會有 id, heading, velocity,object size, distance這些信息。在實際的測試過程中,該ID號是不能夠作爲跟蹤關聯的依據的,因爲ID號在障礙物交叉的時候會出錯。因此還應該再做一次關聯!
二、融合部分(radar 和 lidar):
object-level 的數據融合,該部分的輸入爲各傳感器處理後的得到的object。
多源信息的數據融合中,根據數據抽象層次,融合可分爲三個級別:
- 數據級融合 傳感器裸數據融合,精度高、實時性差,要求傳感器是同類的
- 特徵級融合 融合傳感器抽象的特徵向量(速度,方向等),數據量小、損失部分信息
- 決策級融合 傳感器自身先做出決策,融合決策結果,精度低、通信量小、抗干擾強
Apollo 應該是在特徵層面對 objects 進行了融合。每當節點收到新的一幀數據的時候,融合部分就被調用。融合部分的輸入爲 SensorObjects, 輸出爲融合後的 object, 其大體的流程如下圖所示。
傳感器的數據融合有兩部分內容比較重要,即 數據關聯 和 動態預估。
數據關聯用的是基於幾何距離的HM匈牙利算法。
動態預估用的是:使用了非簡化的估計誤差協方差矩陣 更新公式:
- 標準卡爾曼濾波:
- Apollo:
結合 Wikipedia 上關於卡爾曼濾波的介紹,我先總結下該問題的背景:
- Apollo 使用的估計誤差協方差矩陣 的更新公式是所謂的 Joseph form,而標準卡爾曼濾波通常使用的是簡化版的更新公式
- 簡化版的更新公式計算量小,實踐中應用廣,但只在 卡爾曼增益爲最優 時有效
- 必須使用 Joseph form 的兩種情況:
- 使用了非最優卡爾曼增益
- 算法精度過低,造成了數值穩定性相關的問題
阿波羅平臺的計算力強大,因此爲了算法精度,選擇了非簡化的P
三、總結: