一種通過過程上下文生成技術測試自主機器人控制軟件的方法

一種通過過程上下文生成技術測試自主機器人控制軟件的方法

引用

Arnold, James, and Rob Alexander. "Testing autonomous robot control software using procedural content generation." In International Conference on Computer Safety, Reliability, and Security, pp. 33-44. Springer, Berlin, Heidelberg, 2013.

一、背景

我們需要確保自主機器人(AR)的行為是安全的。AR 會影響周圍的環境從而影響自己未來的行為。所以將 AR 置於線性場景(表示為一系列刺激)中來測試 AR,並檢查所得行為的安全性的方法是不充分的。

因此需要了解從給定的起點如何AR的行為如何進一步發展。因此,需要通過生成情境(包括地圖,對等實體以及任務或目標的組合)來測試 AR,可以將(模擬的)AR 放入其中。模擬情況可以提供對 AR 動作的反應,而不是提供固定的刺激順序。鑑於這種情況,我們可以評估 AR 是否實現安全行為。 基於情境的測試存在兩大障礙:①創建大量基於情境的測試需要花費很大的精力。②測試儀具可能與軟件有相同的“盲點”。將 PCG( Procedural Content Generation)技術應用於測試 AR 控制軟件,解決了手動創建內容過於耗時或昂貴的情況。使用為電影和視頻遊戲行業開發的程序內容生成來創建各種各樣的測試環境。我們在 Player / Stage 機器人模擬器中執行這些操作,並使用基於事件的評分系統自動評估它們的安全性。

二、解決的問題

·在測試自動機器人控制算法時減少手動工作。

·使用基於事件的評分系統自動評估AR的安全性。

·分析揭示了SND(平滑接近圖)控制算法的弱點。

三、方法

基本思想:使用 PCG 創建情境,然後在模擬器中運行它們,以觀察機器人 (特別是其控制機器人的控制軟件)在其中的行為。

該過程分三個階段進行(如下圖一所示):

一種通過過程上下文生成技術測試自主機器人控制軟件的方法

關於濾波器:為了生成表示地形和構建結構的環境首先使用 Perlin 噪聲過程創建 2D 噪聲圖。簡單的管道和過濾器架構,可以應用過濾器效果並任意鏈接以生成表示地形的 最終輸出。在當前的工具中,我們使用兩個濾波器:一個像素化濾波器,使噪聲更細粒度;一個閾值濾波器。圖 1 顯示了濾波器的效果。

一種通過過程上下文生成技術測試自主機器人控制軟件的方法

圖1 –環境生成期間可用的後處理過濾器的效果

關於路徑的算法:為了生成路徑,規劃器隨機選擇一個通暢的點,然後在機器人的初始位置和所選點之間應用A *尋路算法[12]。如果找不到可航路線,則丟棄終點,並選擇新的終點。如果在配置文件中指定了最小路由長度,則附加其他端點,直到滿足約束為止。尋路算法生成具有大量航路點的完整,可導航的路線。Ramer–Douglas–Peucker算法用於減少航路點的數量,既減少了情況的存儲空間又迫使機器人 做一些在線全球路徑規劃,以避免障礙,從而增加其運動算法的挑戰。

關於守護進程:故障由一個守護進程檢測,該守護進程持續監視模擬環境。守護進程獨立於機器人控制器代碼,可以檢測漫遊、路由完成、失速(這是由機器人與地形或另一機器人碰撞時產生的階段)、航路點到達和不安全接近(在兩個機器人之間)。

關於日誌和風險評分:日誌是可讀的,但是非常長,並且每運行一種情況都會生成一個日誌。為了指導工程師瞭解日誌中最有趣的運行,開發了一個根據運行中每個日誌事件的有趣程度(即安全重要性)對運行進行評分的過程。每次運行的分數是通過每次觸發事件時應用特定於事件的懲罰得出的。懲罰的適當值是主觀的,並且高度依賴於所評估的控制算法的特徵和機器人將在其中操作的上下文。在這個項目的案例研究中使用的值是通過反覆試驗來調整的。例如,如果兩個機器人進入一個不安全的接近,則加上10分的懲罰,並且在接近的持續時間內再加上每秒1分的懲罰。第6節提出了一種進化或學習權重的思想。

四、實驗平臺與技術

實驗平臺:Player/Stage

Player 是一個抽象庫,為機器人傳感器和執行器硬件提供標準化接口。Player還具有客戶端/服務器架構,允許控制代碼通過網絡連接執行,而不是僅在機器上運行。Stage 是一個開源機器人模擬環境,允許一個或多個機器人在 2D 世界中探索 和交互。它通常與 Player 項目結合使用,因為它為 Player 定義的許多接口提供虛擬化硬件。Stage可以精確地模擬物理硬件上常見的一系列傳感器,例如激光測距儀,並通過精確的碰撞檢測模擬真實物理。

技術:PCG技術

PCG是程序生成遊戲內容的簡稱,它使用了隨機或者偽隨機數的技術給遊戲帶來了無限的可能。相比於傳統的由設計師將遊戲世界中的一草一木都精心配製,PCG的方法是去配置一些生成的規則,然後由生成算法自動去生成遊戲世界。

要求:情境生成器需要能夠生成靜態地形,包括地形類型的合理變化,如岩石沙漠,洞穴系統和城市區域。它還需要產生移動障礙物,例如同行機器人,因為這些障礙物特別難以感知和適當地響應。

五、實驗過程

在案例研究中,我們實現了一個簡單的機器人控制器,它將簡單的路徑跟蹤與平滑的接近圖(SNDs)相結合,以避免碰撞和基本的反應式導航。該控制器是在虛擬的Pioneer 3-AT機器人上實現的配備了SICK LMS200激光測距儀;Stage為此提供了一個模型。該機器人為四輪驅動,採用打滑轉向,速度可達0.8m / s。儘管配備了聲納陣列,但我們使用激光測距儀進行障礙物檢測,因為它提供了面向前方的180°視野,最大感應範圍為10m且精確到最接近的釐米。

在實驗中,我們生成並運行了500種情境,每個情境都帶有隨機參數,例如地圖大小,障礙物密度和最小路線長度。每種情況都以Stage可以模擬的速度運行,直到掛鐘時間120秒終止。此外,每種情況都包含一個AR和零到五個“啞巴”機器人;後者成為動態障礙。“啞巴”機器人禁用了碰撞避免功能,只分配了不需要任何路徑規劃的路線。

六、實驗結果與分析

實驗結果:討論風險評分最高的三個:

第一名:run207 得分3064

第二名:run207 得分1574

第三名:run207 得分988

它們運行的地圖和初始任務計劃分別如下圖二至圖四表示。機器人的起點用正方形表示,機器人的目標用圓圈表示;那些AR 是填充形狀,啞機器人的形狀是空心的。綠線代表提供給機器人的路線圖。

一種通過過程上下文生成技術測試自主機器人控制軟件的方法

實驗分析:

在run 207(排名第一)中,發生重複碰撞,因為 AR 繞過一個角落並且與在其視野之外的啞機器人相撞。由於“啞巴”機器人在碰撞後仍然看不見,AR 繼續嘗試通過它,從而不斷推動它前進(這被記錄為大量碰撞)。這是危險的簡單示例。

在run 219(排名第二)中,AR 和一個“啞巴”機器人在通過彼此的路線上彼此非常接近地開始。他們有足夠的空間來避免彼此併成功通過,但他們開始太接近 AR 的避免算法才能正常工作。因此 AR 在試圖向左傳遞並試圖向右傳遞之間 振盪,與啞機器人反覆碰撞。

在 run231(排名第三)類似於運行 207,除了 AR 可以看到“啞巴”機器人。它可以通過全速移動來避免碰撞,從而在啞機器人到達之前避開碰撞。然而,SND 被 設計成在“高風險”區域(靠近障礙物的區域)中控制低速。在這種情況下,障礙物本身朝向配備 SND 的機器人移動,因此需要高速以避免它。SND 引導 AR 緩慢移動,從而與啞機器人發生碰撞。run231揭示了已建立的 SND 概念 的弱點。

七、總結

本文描述了一種 PCG 方法,用於生成查找機器人控制軟件故障的情況,並通過一個小案例研究表明,基本方法可以在某些情況下發現故障。案例研究發現了標準 SND 算法中的錯誤,沒有專門針對 SND 應用進行調整。該方法並非完全自動化 - 它需要人工工程師來研究事故運行並準確發現導致問題的原因 - 但該工具會生成情境,執行它們,並優先考慮結果以供人類注意。

八、未來工作

作為進一步的工作,這種方法可以在更高保真度的模擬中實現。進一步的學術工作應側重於改善情境的產生和結果的先驗性算法,並瞭解導致主要 AR 算法和策略出現問題的環境空間。

對該方法的故障查找能力進行實證評估將是有價值的。它可以與傳統的測試方法和手動情況生成進行比較。Nguyen 等的對比測試工作是有用的模板 - 特別是,注意他們評估已知故障的比例的方式,而不是依賴於任意測量。

作為進一步的評估,有許多機器人算法和控制策略可以應用這種方法。通過讓人類專家對大量運行進行評級,然後讓學習者或優化者得到一個評分系統來為這些運行再現那些分數,可以學習或發展評分系統的參數(事件權重)。這種評分系統可以用作調整情況發生器的參數的優化技術的適應度函數。

致謝

本文由浙江理工大學2018級碩士吳兆賢翻譯轉述。

感謝國家自然科學基金項目(重點項目)智能軟件系統的數據驅動測試方法與技術(61932012)資助


分享到:


相關文章: