梁 航,陳湘驥,陳煜塬,黃俊曦
(華南農業大學數學與信息學院,廣州 510642)
隨著人工智能興起,在科研、工業領域,虛擬仿真技術為調試提供了便捷高效的途徑,對虛擬仿真技術的需求量越來越大。近年來,對機器人技術的研究趨勢也逐漸成為熱點,并且更加緊密地與虛擬技術相結合。例如,Liu等[1]通過Unity3D-ROS 來設計虛實交互的自動送貨機器人,實現了智能交通系統。Yang 等[2]結合Unity、ROS、Matlab 和SimulIDE 來仿真和跟蹤多旋翼無人機的生命周期,搭建了多旋翼無人機數字孿生仿真平臺。Sita 等[3]通過ROSUnity3D 來模擬和執行工業工程監控任務,實現了工業機器人過程監控系統。Ma 等[4]通過結合ROS 與Qt 來實現協調行為仿真、半物理仿真和全硬件實驗之間的無縫過度,研發了多機器人系統模擬器。高帆等[5]通過Unity3D 實現對虛擬工業機器人的姿態控制。張朝興等[6]通過ROSUnity 來實現虛擬機器人和真實機器人交互移動控制。陳修龍等[7]結合仿真技術驗證機器人機構動力學建模的正確性。這類系統將虛擬仿真技術與機器人技術結合應用于科研、工業領域,并且取得了不錯的成效。
近年來,將虛擬仿真技術結合學科用于教育領域也逐漸成為熱點。楊鑫科等[8]基于Unity3D 開發應用于反恐排爆機器人的虛擬實驗教學系統。費杰等[9]基于Unity 設計一套DR 可交互仿真教學工作站,對醫學實驗教學具有重要意義。鄧成俊等[10]結合Unity3D 與.Net 技術,通過計算機模擬操作整個檢修過程,提升電力施工從業人員的操作技能。王鈺明等[11]結合應用虛擬仿真技術使用虛擬車取代實車測試,提高了實驗教學效果。丁毓峰等[12]基于Unity3D 設計機電產品虛擬拆裝實驗系統,在工程類實驗教學中取得良好效果。吳可玉等[13]采用Unity3D與3dmax 實現虛擬現實消防沉浸式體驗,可輔助大眾進行消防訓練與安全教育。黃福鈺[14]基于Unity3D 開發了以戚繼光抗倭為主要內容的歷史類RPG 教育游戲“抗倭風云”,實現教育游戲教育性與游戲性有效融合。靳雁霞等[15]基于Unity3D 開發算法類演示系統,生動形象地將算法理論演變成實際實例,收獲了更好的教學效果和更大的教學意義。尹立航[16]采用Unity3D 和3Dmax開發了通信基站模擬仿真系統,提升了實訓教學效果。這類系統將虛擬仿真技術結合各類學科進行研發,有效提高了教學質量,但仍然缺少應用于機器人方向教育的虛擬實驗平臺。
本文基于現有前沿虛擬仿真技術,針對線上線下混合式實驗教學中存在的難點,通過Unity3D 引擎與ROS 機器人操作系統相結合,設計了一套虛實結合的實驗教學平臺,能夠實現實體機器人與虛擬場景的交互,在仿真場景里完成機器人的實驗教學工作。
基于Unity3D-ROS 的機器人技術實驗教學平臺的主要目標是讓學生在使用實體機器人操作之前,先在虛擬軟件上完成大部分的設計,從而將機器人教學中機器人設計的難點盡可能地在軟件中得以處理和解決。同時,平臺對學生的操作過程進行實時的記錄和評估,以便教師及時發現問題并給予學生指導。
完整的實驗涉及三個階段,根據學生在校情況可以選擇開展哪些階段的實驗。
第一階段,在仿真場景和仿真機器人的系統中,設計和調試機器人控制系統(ROS),目標是讓機器人控制系統達到設計要求,為第二階段在仿真環境下機器人虛實聯調做準備。
第二階段,在仿真場景和實體機器人的情況下,調試機器人控制系統與機器人實體部件之間協同工作的效果,目標是在第一階段的基礎上,進一步設計和調試機器人控制系統(ROS)和驗證機器人實體部件協同工作是否達到設計要求,為第三階段在真實場景下調試實體機器人整體系統做準備。
第三階段,在真實場景和采用實體機器人的情況下進行整體系統調試,目標是驗證上述兩個階段的設計是否達到最終目標。
機器人技術實驗教學平臺的實施流程圖如圖1所示。

圖1 機器人技術實驗教學平臺實施流程圖
通過上述三個階段,能夠讓學生先在虛擬環境里設計與調試機器人控制系統,逐步脫離仿真環境,迭代驗證機器人軟件和硬件的設計是否達到標準,最后完成設計一臺實體機器人。通過這種方式,達到了機器人線上線下混合式教學的目的,相比傳統方法,能極大地提高機器人教學效率、節約成本、減少損耗。
在Unity3D 里同等比例仿真了機器人與場地,并仿真了激光雷達、里程計與攝像頭。給仿真里程計加入噪聲模擬真實里程計的累積誤差,能夠提供虛擬機器人的位姿信息。使用仿真激光雷達在虛擬場景進行掃描,以提供機器人操作系統所需要的激光雷達數據。使用仿真攝像頭能夠提供虛擬場景的圖像信息。
在仿真場景與仿真機器人部件的基礎上,第一階段使用Unity3D-ROS調試機器人控制系統的具體流程圖如圖2所示。

圖2 機器人技術實驗教學平臺第一階段模擬流程圖
第二階段使用Unity3D-ROS調試實體機器人的具體流程圖如圖3所示。

圖3 機器人技術實驗教學平臺第二階段模擬流程圖
第一階段,在仿真場景和仿真機器人部件的情況下,使用Unity3D調試機器人控制系統。
Unity 端使用仿真激光雷達和仿真攝像頭為機器人提供仿真場景信息,使用仿真里程計提供Unity 虛擬機器人的位姿信息。ROS 端利用這些信息構建地圖和目標識別,給出指令控制Unity 虛擬機器人在虛擬場景里運動,與虛擬場景發生交互。另外,在第一階段需要給仿真場景加入運動慣性,使物理模型盡可能地貼近真實場景,為第二階段仿真環境下機器人虛實聯調做準備,數據通訊圖如圖4所示。

圖4 仿真環境下調試機器人控制系統數據通訊圖
第二階段在第一階段基礎上保留仿真場景,使用實體機器人部件替換仿真部件,使用Unity3D 調試實體機器人。其中,部分器件可以使用真實部件,也可以使用虛擬部件,能夠充分地對每一個部件的性能進行調試。
在Unity 端使用仿真激光雷達和仿真攝像頭為機器人提供仿真場景信息。ROS 利用這些信息在一片空地上構建地圖和目標識別,控制實體機器人在真實場地上運動,同時控制Unity 虛擬機器人在虛擬場景里運動,實現虛擬場景和真實運動的融合。由于實體機器人與虛擬場景無法發生物理碰撞,因而,虛擬場景中與實體機器人接觸部分需要與真實場景一致,非接觸部分例如墻壁、障礙物、遠程攻擊目標等則為虛擬構件。通過第二階段的迭代測試,進一步設計和調試機器人控制系統(ROS)和驗證機器人實體部件協同工作是否達到設計要求,為第三階段在真實場景下調試實體機器人整體系統做準備。數據通訊圖見圖5。圖6 所示場景中實體機器人與Unity虛擬機器人正在同步運作。

圖5 仿真環境下機器人虛實聯調數據通訊圖

圖6 實體機器人與Unity虛擬機器人同步運作
第三階段,完全脫離虛擬仿真技術,按照仿真場景比例布置出真實場景,使用實體機器人并開啟真實激光雷達與攝像頭,在真實場景下調試機器人整體系統。驗證前面兩個階段的設計是否達到最終目標,若達到最終目標則調試實體機器人的參數達到性能最優的狀態,否則返回之前的階段進行完善。
實驗系統由服務器和學生客戶端構成,如圖7所示。教研室給學生們講授理論知識,實驗室給學生們提供實物實驗的機會,配備Robo-Master AI 機器人多臺,供學生線下進行實物操作。

圖7 實驗系統總圖
服務器用于管理學生信息、課程任務和實驗結果。仿真軟件運行在學生機上,基本配置建議為CPU Intel i5,顯卡GTX 1660Ti,內存16 G 以上,系統使用Window 10。
ROS 編程采用C++和Python 語言,系統是Ubuntu 18.04,虛擬階段可以在Window 10 下安裝虛擬機運行,實物階段則將虛擬階段在ROS設計的程序上傳到實體機器人車載電腦上運行。
這是第一階段實驗,在純虛擬環境下進行。學生需要設計ROS 程序根據周圍虛擬障礙物進行路徑規劃,并給出速度指令控制Unity 虛擬機器人在虛擬場景里運動。
服務器設置了多個任務供學生選擇,包括:①設計ROS 程序控制虛擬機器人在有障礙物的虛擬場景里按照規定路徑點完成巡航;②設計ROS 程序控制虛擬機器人在虛擬場景里找到所有指定的目標;③設計ROS 程序控制虛擬機器人與AI機器人對戰,等等。
這是第二階段實驗,在虛擬環境和真實環境融合的情況下進行。在第一階段設計的ROS程序需要上傳到實體機器人的機載電腦上,由它給出速度指令控制實體機器人在實驗場內運動,真實機器人運動的信息被同步到Unity3D,Unity3D 中的虛擬機器人與實體機器人同步運動,在虛擬機器人運行過程中,會將在虛擬場景中感知到的障礙物和目標信息傳遞給實體機器人,讓實體機器人感知到虛擬場景的避障物和目標,從而做出相應的避障動作。
在這個階段,學生可以初步驗證在第一階段設計的ROS 程序是否能有效地控制真實機器人。由于是虛擬避障物,可以方便地添加和擺設虛擬場景,并且撞擊也不會損壞實體機器人。
這是第三階段實驗,將實體機器人放置在真實場景中,由機器人自帶的激光雷達等傳感器去識別真實的障礙物和目標。在這個階段,學生可以最終驗證前兩個階段設計的ROS 程序是否能有效地控制真實機器人。
實驗表明,實體機器人與Unity 虛擬機器人定位誤差在可接受的誤差范圍內(實體機器人與Unity 虛擬機器人在8 m×4 m 的場地內同步運動,平均定位誤差為±20 cm),基本做到虛實融合,學生的實驗體驗較好。
本文采用Unity3D-ROS相結合,設計了一個虛實融合的機器人實驗教學平臺,既滿足了線上實驗的需要,又提高了線下實驗的效率,降低了對實物設備的依賴。該實驗平臺在我校2021年秋季機器人技術課程中初步應用,達到了預期效果。但在應用過程中也發現了一些不足,例如虛擬運行與實際運行效果仍存在一定的偏差,后續在物理建模方面需要進一步研究,在實驗平臺參數化方面也需要進一步設計與完善。