面向自動駕駛車輛驗證的抽象仿真場景生成


自動駕駛車輛技術有可能對交通系統和城市生活產生重大影響。然而,在被接受為一種新的交通方式之前,必須證明自動駕駛車輛至少與人類駕駛車輛一樣安全。目前的自動駕駛車輛驗證方法,如陰影驅動或基于注釋圖像的測試,成本高,速度慢。因此,建模與仿真是實現自動駕駛車輛驗證目標必不可少的工具。
本文提出了一種用于自動駕駛車輛驗證的抽象仿真場景生成框架。 場景和相關斷言由基于矩陣的語義語言定義,并在仿真中轉化為測試場景。該框架允許設計所有可能的道路拓撲并驗證生成的場景。框架中生成的場景為其他平臺中可能的罕見條件擴展測試提供了基本事實。這項工作有四個主要貢獻:
  • 開發了一種模擬方法,在生成場景時使用語義語言定義場景。

  • 提出了一種在模擬中用每種可能的線或曲線組合組成道路的方法,這對于實現真實道路的建模至關重要。

  • 定義了一種方法,將不同車道數的路段相互縫合,而不會在模擬中產生錯誤。

  • 為建議方法中的每個附加路段提出了一種自我驗證方法,這對模擬效率至關重要。

目前的大多數方法都是針對整車堆棧進行測試,從場景感知和理解到在場景中做出行動決策。在我們的方法中,我們主要關注決策步驟。換言之,我們的方法旨在測試被測AV的決策,在任何其他條件下都沒有任何問題。這個焦點決定了仿真平臺。該框架需要對物理世界進行簡單的建模,而不需要對環境條件進行詳細描述。為此,選擇MATLAB作為仿真平臺。MATLAB ADAS工具箱將場景中的參與者簡單地表示為方框。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖1
圖1顯示了模擬框架組件的分解。中間的灰色區域是AV的大腦,通過輸入創建的場景運行。頂部的模塊定義了用戶如何與框架交互以生成場景。仿真框架從主程序開始,主程序有一定的調整和輸入選項。然后根據這些輸入隨機生成場景,并將其輸入到實際模型中。在這里,生成場景,將ego車輛(測試中的車輛)放入其中,并在整個感知、做出決策和采取行動的循環中運行每個步驟,ego車輛對其作出響應。
在運行期間和運行之后收集模擬數據。數據點包括每個決策的安全性和合法性以及場景的定義。由于場景是由特定的輸入生成的,因此可以在需要時重新創建場景。

A、 語義語言

模型必須能夠創建場景來反映所有可能的情況。我們開發了一種語義語言,用于分解定義場景的因素,包括道路、參與者和交通邏輯。因此,我們的方法的第一階段是創建這種語義語言。第一種語義語言方法使用字符串結構和相關規則,如下所示:
  • 道路生成從與正則表達式匹配的字符串開始。
  • 道路類型為大寫字母。
  • 參數以小寫字母表示。
  • 數值放在參數之后。
根據這些規則,從命令行獲取輸入,并解析形式語法以生成標記。令牌還具有上下文敏感的參數,這些參數包含在每種類型的令牌中。開發令牌及其屬性如下表所示。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖2
生成所有令牌后,它們將用于為模擬的輸入文件生成適當的xml段。每個路段都有一個唯一的id號,該編號與場景的全局id變量一起使用,該變量隨每個路段遞增。還有一個全局點數組,用于確定下一個路段的位置,并在xml生成時自動更新。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖3
圖2顯示了使用示例字符串“05d0A115A180d1A132BCCX150d0A110A1405”在PreScan和MATLAB Simulink中創建的模擬場景。PreScan是模擬AVs和AVs上所有傳感器配置的最全面的仿真平臺之一。但是,這些細節在邏輯場景生成階段是不必要的。MATLAB ADAS工具箱將對象簡化為三維長方體,并將道路簡化為它們所遵循的路線以及其他一些次要細節。這種場景生成方法使其成為適合本方法的工具。在最初的基于字符串的語言實現之后,在MATLAB中不僅包括輸入模式,還包括系統的斷言。因此,下一次迭代的實現包括一個基于矩陣的系統來概括場景特征并創建一個高效的標簽和分類系統。數值矩陣作為輸入讀取,其中每一行是一個不同的斷言,描述一個單獨的路段或參與者,然后可以對其進行分析以生成場景。為了做到這一點,道路網和參與者被簡化為牛頓物理學中最基本的元素,如質心和尺寸。然后根據實際情況對這些元素進行參數化。值得注意的是,該模型不包含任何環境因素。在本框架中創建的示例場景如圖3所示。該實例展示了實施方法在實際測試中的潛在能力,例如具有可變車道數的路段、多個參與者和車道標記的組合。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖4

B、 道路拓撲生成

在模擬中放置道路需要道路中心、每個中心處的道路寬度、傾斜角度和車道的詳細信息。然后,生成道路就是獲取輸入并將其轉換為道路在場景上下文中遵循的一系列點。輸入中的第一個值定義將創建的道路類型。通過將道路限制為特定的路段,可以將生成的場景限制為真實的道路網絡和情況。生成每個路段時,通過旋轉將其縫合到上一個路段上,以便沿第一個點的切線與上一個路段最后一個點的切線對齊,并在駕駛場景中將其移動到該坐標。在兩個連續的片段之間,還存在一個中間片段來平滑具有不同車道數的兩個片段之間的過渡。

1)參數

一旦約束到代表最常見道路(如直線道路、交叉口等)的不同部分,可以概括為大多數到所有部分的細節必須定義為參數。某些參數只能應用于單個工件。因此,為了節省記憶,其中一些被賦予了新的意義,在不同的作品。模型中的參數如表二所示。隨著更多的部分被定義和實現,參數也將被擴展以描述所有必須考慮的新細節。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖5

2)道路和幾何圖元

第一種類型的道路是打算成為最簡單的道路,并作為一個更復雜的道路積木。它被稱為“多車道道路”,由可變車道組成,在由幾何圖元組成的直線上單向或雙向行駛。如圖4所示,這些幾何圖元包括直線、圓弧和以恒定速率改變曲率的回旋曲線。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖6
單一道路的所有常見形式都可以通過一組三個原語的排列來創建。要選擇生成道路時使用的基本體,將使用輸入中的兩個曲率,表示起始曲率和結束曲率。如果其中一個曲率為零,它將從一條直線變為一條回旋曲線,該曲線將過渡到曲率不為零的圓弧。如果它們都是非零曲率,則該直線將隨機變為回旋弧回旋線或弧線回旋弧形狀。對于回旋弧回旋線形狀,曲率從零開始,過渡到起始曲率,對于圓弧保持不變,然后過渡到最后一個回旋線中的結束曲率。對于圓弧回旋弧形狀,直線從具有起始曲率的圓弧開始,使用回旋曲線過渡到結束曲率,并保持在最終圓弧的結束曲率。路段連接的示例如圖5所示。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖7
為了使基本體彼此無縫連接,第一個點的切線與最后一個基本體最后一個點的切線對齊。對于一條直線,面對的方向保持不變,因為它是在開始。但是,對于圓弧和回旋曲線,必須計算新的朝向。計算圓弧的新朝向,只需將圓弧的長度乘以曲率,然后根據圓弧的轉向方式,將其與上一個朝向相加或相減即可。
回旋線:回旋線允許從一個曲率平滑過渡到另一個曲率,是真正的道路容易轉彎利用。使用菲涅耳積分計算回旋面的點:
其中 用作規格化因子, 表示從起點到該點的長度 并表示沿曲線的距離。對于回旋面,必須使用在形成點時計算的參數來計算朝向的變化: 其中 表示最終曲率, 是曲率的變化。這提供了一個不可靠的值,不能準確地表示更改。由于軟件的精度水平與菲涅耳積分(用于計算回旋線),決定使用最后兩點的反正切來計算新的面對方向。因為選擇用來定義這條曲線的點的數量使它們非常接近,這就足以連接這些零件。

3)4路交叉口

模型中路段的一個重要示例是圖6所示的4向交叉口。將每個連接到交叉口的道路定義為具有可變車道的多車道道路,并假設這些道路可以是單向的,也可以是雙向的。
面向自動駕駛車輛驗證的抽象仿真場景生成的圖8
(一)道路布置:每一條道路的定位都是基于一個中心矩形計算出來的,以使所有道路盡可能靠近中心。四條道路中的每一條都可以有不同數量的車道,也可以是雙向或單向的,這意味著它們也可以有不同的寬度。要計算矩形,將使用頂部和底部道路之間的最大寬度以及左側和右側道路之間的最大寬度來確定大小。頂部道路的中心與底部道路的中心對齊,左側和右側道路也是如此。為了基于該系統將道路移動到它們的坐標,根據它們之間的數學關系將它們從第一條道路的末端(沿矩形的底部道路的中心)移動。(二)車道路徑:由于場景從一個片段到另一個片段呈線性移動,因此只有底部片段的車道需要為車輛可以行駛的位置定義選項。其他道路對此有一個有限的版本,以便為其他參與者獲得潛在的路徑。如果選擇左轉,則從左側開始最多兩條車道設置為“僅左轉”車道。設置為“僅左”的數量基于其他潛在方向的可用車道數以及向左行駛的可用車道數。如果還有更多車道,則將其設置為“僅向前”車道,直到有多少車道可向前行駛(如果有的話)。剩余車道設置為僅右轉車道,最多可右轉車道數,因為右轉是一個選項。如果這是一個選項,并且沒有左車道,則最右側的車道將有額外的右行選項。如果有額外的車道可用,它們將被賦予與在另一側合并的僅向前車道相同的行為。如果沒有足夠的車道,例如每個方向都有一條車道可供選擇,則該車道被定義為中立車道,并允許這些方向中的任何一個。

C、 擴展道路屬性

生成道路時,將存儲在道路對象中的來自輸入的附加值,例如其條件和速度限制。速度限制反映在場景中,即在計算參與者的路徑時。在道路計算過程中也會設置車道標記。它們作為一個數組傳入,并帶有每一行的屬性。對于雙向道路中的中心線,它被隨機定義為雙黃線或黃色虛線。也可以在中心設置一條轉彎車道,該車道始終由黃色虛線包圍。

D、 參與者生成

除了自我載體,場景中的參與者是隨機產生的,也由不同的類型組成。包括汽車、卡車、行人等。他們在場景中可能采取的不同行為也被編程。這些措施包括行人橫穿馬路和車輛在車道外轉彎。為車輛分配車道路徑,這些車道路徑是在生成道路時計算的,沿任一方向(從第一條道路到最后一條道路,反之亦然)從網絡上的隨機點開始。通過這種方式,整個道路可以有參與者貫穿始終,而不僅僅是跟隨自我的車輛。

E、 測試場景生成

對于測試場景的生成,使用偽隨機輸入生成。將此方法集成到語義語言中可以確定置信度和覆蓋率分析。測試的可重復性和覆蓋率分析非常重要,因為它們提供了漸進式測試結構。

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP

1
1