作者:來自安波福的 Krishna Koravadi 和來自 MathWorks 的 Seo-Wook Park
此工作流使用 MATLAB 和 RoadRunner 產品完成,它提供了一種結構化的方法來創建虛擬場景,使安波福的工程師能夠通過仿真嚴格驗證 ADAS/AD 閉環算法。
對于開發下一代汽車的工程師,具備在逼真的駕駛場景下測試高級駕駛輔助系統 (ADAS) 和自動駕駛 (AD) 系統算法的能力至關重要。但是,在真實交通中測試新開發算法的性能和穩健性是不切實際的。理想的替代方案是根據實際道路測試期間所捕獲的傳感器數據生成虛擬場景。這些場景隨后可以經濟高效的方式,在虛擬環境中安全、可重復地測試和微調 ADAS/AD 算法。
安波福的工程師通過我們實現的工作流從記錄的車輛數據中獲取駕駛場景。此工作流是使用 MATLAB 和 RoadRunner 產品分三步完成的。
第一步是,基于來自車載 GPS、慣性測量單元 (IMU)、相機和地圖數據的輸入,重建自主車輛的軌跡。
第二步是,使用雷達數據和非因果聯合集成概率數據關聯 (JIPDA) 跟蹤算法重建非自主車輛的軌跡,以創建周圍交通的動態表示。
最后一步是,使用 RoadRunner 生成場景,根據需要進行編輯,并將其導出為 ASAM OpenSCENARIO 格式,該格式可用于其他場景編輯和可視化工具。此工作流是使用 MATLAB 和 RoadRunner 產品完成的,它提供了一種結構化的方法來創建虛擬場景,使 安波福的工程師能夠通過仿真嚴格驗證 ADAS/AD 閉環算法(圖 1)。
圖 1. 從傳感器數據中獲取場景的工作流。
重建自主車輛的軌跡
在工作流的第一階段,我們會創建一個虛擬道路場景,并添加一個自主車輛,其軌跡是根據記錄的傳感器數據重建的。
為了創建虛擬場景,我們使用 RoadRunner Scene Builder 從導入的高清地圖創建三維道路模型,該地圖以通過 GPS 獲得的車輛位置為中心。我們從地圖上刪除不需要的道路并保存場景(圖 2)。
圖 2. 使用 RoadRunner Scene Builder 從高清地圖生成場景。
此時,我們可以使用 GPS 數據在地圖上疊加自主車輛的軌跡。然而,完全依賴 GPS 輸入進行自主車輛跟蹤是有問題的,原因有如下幾個:確定車輛行駛在哪個車道通常不夠準確;GPS 信號可能會臨時丟失;其采樣時間(通常為數百毫秒)相對較長。為了彌補這些缺陷,我們使用 Navigation Toolbox 中的 insfilterAsync 對象,將 GPS 數據與來自 IMU 的加速度計和陀螺儀數據融合在一起。IMU 數據每 10 毫秒采樣一次。通過融合該數據,我們能夠更精確地估計自主車輛的軌跡(圖 3)。
圖 3. 根據單獨的 GPS 數據(藍色)和融合的 GPS 和 IMU 數據(紅色)估計的自主車輛軌跡。
盡管 GPS 和 IMU 數據融合提高了準確度,但結果仍不足以可靠地確定自主車輛行駛在哪個車道上。為了提高準確度,我們利用相機數據跟蹤自主車輛及其相鄰車道的車道標線檢測情況。然后,我們校正自主車輛軌跡,使基于高清地圖計算的車道數和偏移量與基于車道檢測計算的車道數和偏移量相符(圖 4)。
圖 4. 通過車道檢測定位之前(藍色)和之后(紅色)的自主車輛軌跡。
這樣,我們就有了車道級別準確度的自主車輛軌跡,該軌跡可導出到逗號分隔值 (CSV) 文件。
然后,我們可將該 CSV 文件導入 RoadRunner Scenario 以創建一個場景,以供我們可以用來運行自主車輛的仿真(圖 5)。
圖 5. 通過車道檢測定位之前(白色)和之后(藍色),在 RoadRunner Scenario 中運行的自主車輛仿真。
重建非自主車輛的軌跡
工作流中的第二步是將非自主車輛的軌跡添加到場景中。在此步驟中,我們評估了幾種不同方法,包括使用雷達、激光雷達以及雷達和相機的組合。最終,我們決定繼續使用基于雷達的方法,因為我們記錄的大多數車輛數據都包括雷達測量值,而激光雷達數據只能從專門安裝儀器的車輛獲得。
為了準備用于跟蹤的雷達數據,我們需要運行一系列信號處理操作來區分靜態檢測(如護欄)和動態檢測(如其他車輛),以及過濾由多徑反射引起的重影。然后,我們應用基于密度的含噪空間聚類 (DBSCAN) 算法來生成目標級檢測結果。
接下來,我們將目標級檢測結果饋送到非因果聯合集成概率數據關聯 (JIPDA) 跟蹤器。這種跟蹤算法是非因果的,因為在每個時間步,它都使用該時間步之前和之后直到記錄數據結束的所有檢測結果。在線多目標跟蹤算法(例如,在行駛的車輛中運行的算法)只能依賴過去和當前的測量值,而非因果算法可以離線運行,并使用從場景開始到結束的所有雷達測量值。由于事先獲得了這些測量值,離線 JIPDA 跟蹤算法可比在線跟蹤算法更準確地解決數據關聯中的多義性(這種多義性會導致軌跡切換、分段和錯誤軌跡)問題。
為了實現這種改進的性能,JIPDA 算法會運行迭代數據關聯(圖 6)。在每個時間步,它都使用截至時間步 k-1 的測量值執行前向跟蹤,然后使用從時間步 k+1 到 N 的測量值執行后向跟蹤。該算法將這兩項操作的融合預測與檢測相關聯,并移至下一個時間步。最后,該算法會執行 Rauch-Tung-Striebel 平滑處理。雖然該算法本身可能看似很復雜,但在 MATLAB 中實現它只需使用 Sensor Fusion and Tracking Toolbox 中的 smootherJIPDA 對象編寫幾行代碼即可。
圖 6. JIPDA 算法的圖形化表示。
使用 JIPDA 算法計算每個非自主車輛的軌跡后,我們將雷達跟蹤結果與相機的視圖進行比較(圖 7)。
圖 7. 雷達跟蹤結果與同步相機視圖。
場景生成和驗證
作為工作流的第三步也是最后一步,我們將非自主車輛軌跡與自主車輛軌跡相結合來完成場景的創建。為此,我們使用 Automated Driving Toolbox 中的 actorprops 函數將非自主車輛軌跡變換為世界坐標系。
完成這些操作后,我們將非自主車輛軌跡導出到 CSV 文件,并將該文件導入 RoadRunner Scenario,以將這些軌跡添加到場景中。然后,我們運行仿真來檢查結果。
我們可以使用 RoadRunner Scenario 編輯該場景或將其導出為 ASAM OpenSCENARIO 格式。該場景隨后可用于任何兼容 ASAM OpenSCENARIO 的仿真器和播放器,包括 esmini。
作為最后的驗證步驟,我們將獲得的場景與擋風玻璃相機的視圖進行比較,以確認車道變更、車輛超車和其他事件的匹配情況。
一旦此工作流得到驗證,我們就會應用它從更多的記錄傳感器數據集自動生成虛擬場景。這些虛擬場景隨后用于測試 ADAS/AD 算法,作為我們仿真工作流的一部分。
審核編輯:湯梓紅
-
傳感器
+關注
關注
2552文章
51382瀏覽量
755826 -
matlab
+關注
關注
185文章
2980瀏覽量
230823 -
adas
+關注
關注
309文章
2193瀏覽量
208782 -
自動駕駛
+關注
關注
784文章
13923瀏覽量
166835
原文標題:安波福:從記錄的傳感器數據中獲取駕駛場景
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論