張浩杰, 梁榮敏, 張玉東
(1. 北京科技大學自動化學院工業(yè)過程知識自動化教育部重點實驗室, 北京 100083; 2. 北京科技大學順德研究生院, 廣東 佛山 518054)
地面無人平臺作為一種先進的自主無人系統(tǒng),伴隨著相關(guān)技術(shù)的不斷發(fā)展與完善,正朝著人工干預(yù)度低、智能化更強的方向發(fā)展,可以替代人類士兵完成危險的任務(wù)。隨著高新技術(shù)的突飛猛進,軍事領(lǐng)域迎來了一系列重大的變革,未來作戰(zhàn)體系日新月異,其中最重要的改變是逐漸從以人類士兵為作戰(zhàn)主體到無人作戰(zhàn)系統(tǒng)為主、人類士兵為輔。目前,美軍地面無人平臺已經(jīng)具備了一定的作戰(zhàn)能力,已將10多款地面無人平臺投入到伊拉克及阿富汗戰(zhàn)爭中,大大減少了人員傷亡,有效提高了士兵的戰(zhàn)場生存能力。因此,智能化無人戰(zhàn)場裝備已經(jīng)成為未來戰(zhàn)場上不可逆轉(zhuǎn)的手段,擁有比普通士兵更加強大的作戰(zhàn)能力。
地面無人平臺的研究涉及多個學科和領(lǐng)域,而其實際應(yīng)用場景復雜多變,構(gòu)建真實環(huán)境進行算法測試成本高,且不易于在同一測試條件下復現(xiàn)問題。因此,搭建一個能夠模擬真實場景的地面無人平臺仿真系統(tǒng)能夠加速相關(guān)研究成果的測試與驗證。研究學者前期開展了大量關(guān)于無人機的仿真系統(tǒng)研究,比如提出了一個基于HLA/RTI的并行仿真架構(gòu)、基于Unity集成、控制與交互仿真系統(tǒng)UTSim、多無人機局部規(guī)劃實時仿真器機器人操作系統(tǒng)(robot operating system, ROS)UnitySim和多Agent的協(xié)同空戰(zhàn)仿真系統(tǒng)等,以解決無人機編隊協(xié)同任務(wù)規(guī)劃的仿真問題,而對地面無人平臺仿真系統(tǒng)的研究較少。然而,隨著地面無人平臺在復雜環(huán)境和極端工況等場景下的性能測試需求逐漸增加,涌現(xiàn)了部分用于智能車輛在城市結(jié)構(gòu)化環(huán)境下進行算法測試的仿真系統(tǒng),比如城市交通模擬軟件SUMO和自動駕駛仿真平臺Carla及CarSim等。美國陸軍工程研究與發(fā)展中心開發(fā)的VANE自主導航仿真系統(tǒng),可以提供非結(jié)構(gòu)化環(huán)境下進行地面無人平臺算法測試的高逼真場景,但其并不開源,難以進行二次開發(fā)。目前,大多數(shù)開源的三維物理引擎仿真系統(tǒng)僅能提供高逼真的環(huán)境模塊,比如微軟開發(fā)的機器人開發(fā)環(huán)境MRDS、Gazebo和高保真多機器人仿真平臺USARSim等,其仿真模型和控制器只是部分可移植,需要單獨處理,而在不同的硬件或平臺上需要重新編譯控制器,或需要仔細匹配仿真模型和控制器。
地面無人平臺仿真系統(tǒng)為了實現(xiàn)逼真的三維可視化效果,通常需要將地面無人平臺的控制系統(tǒng)架構(gòu)和場景仿真器集成。通過構(gòu)建ROS節(jié)點作為橋梁,實現(xiàn)USARSim和ROS之間以ROS消息/主題模式通信,對多地面無人平臺協(xié)同編隊控制進行測試驗證。相似地,文獻[23]提出了將USARSim和4D/RCS集成構(gòu)建地面無人平臺仿真系統(tǒng)。而在地面無人平臺仿真系統(tǒng)中進行算法測試驗證時,通常會設(shè)定一些假設(shè)條件或者需要其他功能模塊協(xié)助測試,這種情況下完全依賴地面無人平臺自身智能很難完成測試。通過引入人在回路的基本思想,可以更加智能、高效地完成算法測試。地面無人平臺仿真系統(tǒng)操控員實質(zhì)上是對場景中參與人員的模擬,是整個仿真系統(tǒng)的一個有機組成部分,對“人”的仿真可信度研究有助于增強仿真系統(tǒng)的智能性。因此,人在回路的混合增強智能是將操控員的感知、經(jīng)驗引入到地面無人平臺仿真系統(tǒng),以便于提高整個系統(tǒng)在進行算法測試時的可信度。
本文針對地面無人平臺仿真系統(tǒng)存在人類智能融合度低、功能不完善和不便于進行算法測試等問題,提出了一種基于人在回路的地面無人平臺仿真系統(tǒng),通過引入人在回路的輸入模型,增強仿真系統(tǒng)的智能性。同時,該仿真系統(tǒng)采用CoppeliaSim軟件設(shè)計高逼真度的真實場景,兼容ROS系統(tǒng)架構(gòu),便于集成ROS系統(tǒng)中開源的功能模塊,降低地面無人平臺測試部署周期及成本,為地面無人平臺算法測試提供了一個快速驗證方法。
ROS作為目前主流的面向機器人開源的系統(tǒng)架構(gòu),雖非實時操作系統(tǒng),但其集成了大量算法功能包,并提供異構(gòu)計算集群,如硬件抽象、底層設(shè)備控制、進程之間的消息傳遞以及數(shù)據(jù)包管理等。因此,本文所提出的基于人在回路的地面無人平臺仿真系統(tǒng)以ROS為基礎(chǔ)進行系統(tǒng)設(shè)計,其結(jié)構(gòu)組成模塊如圖1所示。
圖1 基于人在回路的地面無人平臺仿真系統(tǒng)結(jié)構(gòu)Fig.1 Architecture of simulation system for unmanned ground vehicle based on human-in-the-loop
在圖1中,ROS系統(tǒng)架構(gòu)中提供了開源的地面無人平臺自主系統(tǒng)功能模塊,比如任務(wù)解析模塊、路徑規(guī)劃模塊、路徑跟蹤模塊、傳感器模塊、定位模塊和驅(qū)動控制模塊等,而基于人在回路的人機交互界面和基于CoppeliaSim的仿真場景作為兩個獨立的ROS節(jié)點集成到ROS系統(tǒng)架構(gòu)中。ROS系統(tǒng)架構(gòu)中所有節(jié)點之間的通信采用的是消息/主題和服務(wù)模型?;谌嗽诨芈返娜藱C交互界面作為該仿真系統(tǒng)與操控員之間進行信息交互的窗口,可施加操控員的意愿或者人工干預(yù),比如操控員期望的待執(zhí)行任務(wù)(任務(wù)類型、任務(wù)數(shù)據(jù))、根據(jù)環(huán)境變化所做出的決策和緊急危險情況下的人工急停操作等。同時,基于人在回路的人機交互界面也將接收部分反饋數(shù)據(jù),比如地面無人平臺的位姿、傳感器數(shù)據(jù)、地圖數(shù)據(jù)和圖像數(shù)據(jù)等,以向操控員實時呈現(xiàn)。當?shù)孛鏌o人平臺在運動過程中偏離了目標點或出現(xiàn)錯誤時,通過操控員及時干預(yù),重新修正當前任務(wù),以提高地面無人平臺執(zhí)行任務(wù)的效率和容錯率?;贑oppeliaSim的仿真場景包括環(huán)境要素、地面無人平臺模型和傳感器模型等,以模擬真實場景。通過對仿真場景中的原始數(shù)據(jù)進行預(yù)處理,比如位姿數(shù)據(jù)、激光雷達數(shù)據(jù)和圖像數(shù)據(jù)等,之后將這些數(shù)據(jù)以ROS消息的形式封裝,并發(fā)布到相應(yīng)的ROS主題上,而基于CoppeliaSim的仿真場景將接收控制數(shù)據(jù),從而驅(qū)動場景中的地面無人平臺模型運動。
人在回路簡單定義描述了機器或計算機系統(tǒng)無法提供問題答案而需要人工干預(yù)的過程。當這種情況發(fā)生時,在決策過程中賦予的額外數(shù)據(jù)將添加到計算機的算法中,以在將來自動執(zhí)行特定的操作。由于地面無人平臺的應(yīng)用環(huán)境復雜多變,僅依靠攜帶的傳感器很難建立準確的環(huán)境模型,勢必會存在感知盲區(qū)。在此基礎(chǔ)上,地面無人平臺在執(zhí)行任務(wù)過程中難免會陷入局部極小值或者困境,這限制了在該仿真系統(tǒng)中進行相關(guān)算法的測試驗證。為滿足更加復雜的算法測試和個性化測試需求,需要引入人在回路的認知輸入模型,構(gòu)建基于人在回路的人機交互界面,使仿真系統(tǒng)能夠更加智能、高效地完成相關(guān)算法測試驗證。
圖2為基于人在回路的人機交互機制的基本框架,通過引入操控員的作用,可以把操控員對模糊、不確定性問題的認知與仿真系統(tǒng)緊密耦合。操控員根據(jù)待測試算法設(shè)定任務(wù),之后,通過人機交互界面將任務(wù)信息發(fā)送給ROS系統(tǒng)架構(gòu)。在仿真測試過程中,操控員監(jiān)測仿真場景實時反饋的數(shù)據(jù),比如環(huán)境要素的動態(tài)變化、傳感器模型數(shù)據(jù)和地面無人平臺運動數(shù)據(jù)等,在緊急情況發(fā)生時采用遠程遙控方式使地面無人平臺脫離險境。在算法測試結(jié)束后,操控員需對測試結(jié)果進行評價,在低置信度時對算法進行調(diào)整,之后進行循環(huán)測試。
圖2 基于人在回路的交互機制Fig.2 Interaction mechanism based on human-in-the-loop
任務(wù)處理主要包括遠程操作運動控制和任務(wù)規(guī)劃發(fā)送,遠程操作運動控制支持地面無人平臺平移速度和橫擺角速度下發(fā),如圖3所示,其優(yōu)先級最高,以實現(xiàn)在緊急情況發(fā)生時由操控員直接實施人工干預(yù)。
圖3 遠程操作運動控制Fig.3 Remote motion control
在該仿真系統(tǒng)中可以模擬多個地面無人平臺,因此,在對地面無人平臺進行遠程控制時需先選擇其編號,從而實現(xiàn)對某一指定地面無人平臺進行前進、后退、左轉(zhuǎn)和右轉(zhuǎn)控制。同時,設(shè)定了停車按鈕,以實現(xiàn)在緊急危險情況發(fā)生時控制地面無人平臺停止運動。
任務(wù)規(guī)劃發(fā)送主要支持任務(wù)類型選擇、任務(wù)規(guī)劃結(jié)果呈現(xiàn)、修正及發(fā)送,在該界面可設(shè)定編隊和偵查兩種任務(wù),并選擇相應(yīng)的任務(wù)參數(shù),如圖4所示。該界面可擴展支持添加多個地面無人平臺,對于每一項任務(wù),其相應(yīng)的任務(wù)信息包括領(lǐng)航者編號、跟隨者編號、領(lǐng)航者與跟隨者之間的間距和角度信息等,這些信息封裝為自定義的ROS消息發(fā)布,便于ROS系統(tǒng)架構(gòu)中其他節(jié)點訂閱解析。
圖4 任務(wù)發(fā)送界面Fig.4 Mission sending interface
狀態(tài)顯示模塊是操控員監(jiān)測仿真系統(tǒng)運行狀態(tài)的窗口,主要有地面無人平臺平移速度、橫擺角速度、位姿、運動軌跡和任務(wù)執(zhí)行狀態(tài)等數(shù)據(jù)顯示。圖5是狀態(tài)顯示主界面,上部以數(shù)字儀表盤的形式呈現(xiàn)地面無人平臺在運動過程中的平移速度和橫擺角速度,左下側(cè)為仿真系統(tǒng)運行過程中的調(diào)試信息,而右下側(cè)為該仿真系統(tǒng)中所有的ROS消息主題名稱,方便訂閱查看。
圖5 狀態(tài)顯示主界面Fig.5 Main interface for status display
為便于操控員實時監(jiān)測地面無人平臺運動過程中的環(huán)境信息,仿真場景中的每一個地面無人平臺都搭載了一個攝像頭,從而將周圍環(huán)境數(shù)據(jù)回傳至人機交互界面,以彩色圖像顯示。圖6所示是仿真場景中5個地面無人平臺傳回的實時圖像,該模塊可擴展加載更多的地面無人平臺的回傳圖像進行顯示。
圖6 環(huán)境圖像顯示Fig.6 Display of environment images
CoppeliaSim是一款支持機器人運動學及動力學仿真的軟件,具有多個鏈接庫,包括動態(tài)仿真引擎、運動學工具、機器人模型以及傳感器模型等,能夠高保真模擬復雜的機器人模型和環(huán)境模型。
非結(jié)構(gòu)化仿真場景設(shè)計為一個模擬的軍事訓練基地,其大小為100 m×100 m,地面為砂石路。環(huán)境中包含樹、訓練爬梯、單杠、訓練樁、營帳、石墩、桌子、椅子和辦公樓等環(huán)境要素,以盡可能達到場景高逼真度。CoppeliaSim軟件采用分布式控制架構(gòu),因此,場景中每個對象都可以通過嵌入式腳本、插件、ROS節(jié)點和應(yīng)用程序界面(application programming interface, API)客戶端進行控制。
非結(jié)構(gòu)化仿真場景中的地面無人平臺模型采用四輪獨立驅(qū)動,如圖7所示。假定地面無人平臺工作環(huán)境為平坦路面,對其運動學模型進行簡化,因此可以只考慮其沿、方向的平移及繞方向的橫擺運動,忽略沿方向的平移、俯仰和側(cè)傾運動?;谶@一假設(shè),所采用的地面無人平臺運動學控制模型參考文獻[29],以=[,,]表示狀態(tài)矢量,=[,]表示控制矢量,可得其運動狀態(tài)轉(zhuǎn)移方程表達式:
(1)
圖7 地面無人平臺模型Fig.7 Model of unmanned ground vehicle
因此,通過控制地面無人平臺的平移速度和橫擺角速度,即可驅(qū)動地面無人平臺運動。
對于仿真場景中的每一個地面無人平臺模型,其上分別搭載一個單目攝像頭和一臺單線激光雷達Hokuyo_URG_04LX_UG01。單線激光雷達安裝于地面無人平臺正前方頂部,設(shè)定其測量角度為270°,有效測距范圍為10 m。攝像頭安裝于地面無人平臺正前方,以實時獲取前方圖像,并回傳至人機交互界面顯示。
基于CoppeliaSim的仿真場景以插件方式與ROS系統(tǒng)進行數(shù)據(jù)交互,同時,操作者在人機交互界面通過該接口插件向ROS系統(tǒng)訂閱/發(fā)布主題消息。因此,通過ROS系統(tǒng)架構(gòu)的分布式通信機制可以實現(xiàn)人機交互界面與基于CoppeliaSim的仿真場景之間的通信。當ROS系統(tǒng)中的固定消息類型無法滿足測試需求時,該仿真場景允許修改或添加自定義的ROS消息類型。在CoppeliaSim安裝包下的sim_ros_interface文件夾中3個文件CMakeLists.txt、package.xml和meta/messages.txt添加自定義的ROS消息,編譯生成鏈接庫,導入后即可識別自定義的消息類型。
本文所使用的仿真場景與ROS系統(tǒng)的接口協(xié)議如表1所示,其中為地面無人平臺編號,=0,1,…,。
表1 仿真場景與ROS輸入/輸出數(shù)據(jù)
為了驗證本文所提出的基于人在回路的地面無人平臺仿真系統(tǒng)的可行性與有效性,本文基于第3節(jié)搭建的仿真場景,采用文獻[30]中提出的領(lǐng)航者-跟隨者編隊控制策略,以距離和角度作為編隊隊形輸入,對多地面無人平臺三角編隊和縱向編隊進行實驗驗證。
在三角編隊系統(tǒng)測試過程中,操控員根據(jù)環(huán)境態(tài)勢,通過人機交互界面發(fā)送編隊隊形信息,地面無人平臺解析操控員的任務(wù),逐漸運動形成所期望的三角隊形。而在縱向編隊系統(tǒng)測試過程中,由于環(huán)境信息及任務(wù)需求變化,在5個地面無人平臺已初步形成編隊運動過程中,由操控員臨時增加一輛地面無人平臺參與縱向編隊,以測試人在回路的應(yīng)用及對系統(tǒng)性能的影響。
在多地面無人平臺三角編隊測試過程中,共設(shè)定5個地面無人平臺參與,操控員通過人機交互界面設(shè)定發(fā)送給地面無人平臺的編隊隊形信息為=2 m,=2 m,=4 m,=4 m,=5π3,=π3,=5π3,=π3。對于領(lǐng)航者地面無人平臺而言,根據(jù)任務(wù)目標點規(guī)劃生成最優(yōu)路徑,如圖8(a)中綠色實線,從而計算出到達目標點的實時控制輸入=[,]。跟隨者地面無人平臺UGV_1、UGV_2、UGV_3和UGV_4在保持三角編隊跟隨UGV_0運動過程中的控制量則按照文獻[30]中提出的編隊運動控制規(guī)律進行計算,其值分別為=[,]、=[,]、=[,]和=[,],從而實現(xiàn)對跟隨者的實時控制,圖8(b)表示地面無人平臺在三角編隊運動過程中某一時刻的隊形。
圖8 地面無人平臺編隊運動Fig.8 Formation for multiple unmanned ground vehicles
在5個地面無人平臺編隊運動至目標點過程中,其運動軌跡如圖9(a)中不同顏色實線所示。地面無人平臺由最初的雜亂位姿逐漸形成期望的編隊隊形,保持該隊形運動至目標點后停止。由于集成測試環(huán)境中存在障礙物,領(lǐng)航者UGV_0為了實現(xiàn)避障,軌跡變化較為明顯,而其余4個跟隨者地面無人平臺為了保持編隊隊形,其運動軌跡變化與UGV_0軌跡類似。在運動過程中5個地面無人平臺的航向變化如圖9(b)中不同顏色實線所示,盡管領(lǐng)航者UGV_0的航向變化劇烈,但是跟隨者地面無人平臺航向變化比較平緩,而在到達目標點后,5個地面無人平臺的航向角達到期望航向值并保持穩(wěn)定。
圖9 地面無人平臺三角編隊運動過程中參數(shù)變化Fig.9 Parameters during triangle formation of multiple unmanned ground vehicles
在三角編隊運動過程中5個地面無人平臺的平移速度和橫擺角速度變化分別如圖9(c)和圖9(d)所示。從這兩幅圖可以看出,在到達目標點之前領(lǐng)航者UGV_0的平移速度和橫擺角速度調(diào)整較為劇烈,而其他跟隨者地面無人平臺的平移速度和橫擺角速度調(diào)整較為平緩。在某一采樣時刻UGV_0到達目標點,其平移速度和橫擺角速度調(diào)整為0后,其他跟隨者地面無人平臺逐漸平穩(wěn)調(diào)整位姿達到期望的編隊隊形,在調(diào)整過程中其平移速度和橫擺角速度逐漸減小至0。
在地面無人平臺縱向編隊測試過程中,操控員初始設(shè)定5個地面無人平臺參與編隊,其通過人機交互界面設(shè)定地面無人平臺的編隊隊形信息為=2 m,=4 m,=6 m,=8 m,=0,=0,=0,=0。在5個地面無人平臺逐漸形成編隊隊形過程中,由于環(huán)境信息及任務(wù)需求變化,需要增加參與編隊的地面無人平臺數(shù)量。此時,操控員通過人機交互界面臨時調(diào)配增加一輛地面無人平臺UGV_5參與縱向編隊,并實現(xiàn)保持縱向隊形運動。
在6個地面無人平臺編隊運動至目標點過程中,其運動軌跡如圖10(a)中不同顏色線條所示,從圖中可以看出,參與編隊的6個地面無人平臺在運動過程中保持期望的隊形到達了目標點。在編隊運動過程中,6個地面無人平臺的航向角、平移速度和橫擺角速度變化如圖10(b)、圖10(c)和圖10(d)所示。由于地面無人平臺UGV_5在初始階段并未參與編隊,因此,在未收到操控員發(fā)送的參與編隊指令之前UGV_5保持靜止,即其航向角、平移速度和橫擺角速度均為0,如圖10(b)、圖10(c)和圖10(d)中淺藍色虛線所示。之后,在收到參與編隊指令后,UGV_5快速調(diào)整加入到其他5個地面無人平臺已經(jīng)形成的縱向隊形中,如圖10(c)中UGV_5的平移速度由0 m/s迅速調(diào)整到0.57 m/s,并隨著編隊隊形的形成而緩慢減小其平移速度,直至運動到目標點。
圖10 地面無人平臺縱向編隊運動過程中參數(shù)變化Fig.10 Parameters during vertical formation of multiple unmanned ground vehicles
針對現(xiàn)有的地面無人平臺仿真系統(tǒng)存在人類智能融合度低、功能不完善和不便于進行算法測試等問題,本文引入人在回路的基本思想,提出了一種基于人在回路的地面無人平臺仿真系統(tǒng)。該仿真系統(tǒng)以ROS為基礎(chǔ)進行系統(tǒng)構(gòu)建,具有較強的擴展性,可以根據(jù)測試算法需求進行高逼真仿真場景設(shè)計,可以大幅縮短算法的測試周期及開發(fā)成本。最后,通過5個地面無人平臺三角協(xié)同編隊仿真實驗驗證了該仿真系統(tǒng)的有效性,進一步說明了該仿真系統(tǒng)運行穩(wěn)定可靠,可以作為地面無人平臺進行功能算法測試與驗證的一個工具。
該仿真系統(tǒng)具有模塊化和開放接口特性,便于在后續(xù)開發(fā)過程中不斷擴展與完善系統(tǒng)的功能。然而,該系統(tǒng)是以非實時系統(tǒng)ROS為基礎(chǔ)構(gòu)建的,而對實時性要求高的地面無人平臺算法測試難以滿足需求,后續(xù)還需針對實時性問題做出改進措施。