蔡 瓊 陳鵬慧 朱運航
(湖南信息職業技術學院 信息工程系,湖南 長沙 410200)
21世紀是人類開發海洋的世紀,隨著陸地資源的日益枯竭,人們把目光投向了海洋,使得適應各種環境的水下機器人的相關研究得到迅猛發展[1]。
2001年中科院自動化所復雜系統與智能科學重點實驗室和北京航空大學機器人研究所聯合開展 “多微小型仿生機器魚群體協作與控制的研究”;北京大學在仿生機器魚領域做了多年的研究,成功研制出機器海龜、兩棲機器人、機器海豚等,2007年中國機器人大賽成功創立了水中仿生機器魚水球比賽項目[2][3]。
研究發現,要測試水中機器人技術和進行水中機器人競賽實驗,面臨機器人構件加工制作、機器人運動控制、傳感器信息整合、多機器人協作工作以及水下環境不確定性等復雜問題,這會費大量時間和精力進行水中機器人技術的調試及數據處理[4]。因此,開發水中機器人技術仿真系統是降低水中機器人相關領域研究成本、加快中國機器人技術發展的一個重要途徑,水中機器人比賽仿真系統也將成為測試水中機器人技術的理想平臺。
本文設計并實現了一種基于Microsoft Robotics Studio(MSRS)[5]的水中仿生機器魚水球比賽實時仿真系統,該系統能測試水中仿生機器魚關節位姿的變化情況和控制指令、水中仿生機器魚之間碰撞處理情況、水波擾動和障礙物對水中仿生機器魚運動位姿的影響,可以對真實環境中的各種運動狀態進行仿真分析等。該仿真系統的算法及各種實驗結果可以便利的移植到實體水中仿生機器魚的設計研發中,從而加快實體水中機器魚的設計和算法研究工作。
Microsoft Robotics Studio是支持多種機器人硬件平臺的機器人開發環境。MSRS運行時同時支持.NET框架和精簡.NET框架,運行時由并發和協調運行時CCR (Concurrency and Coordination Runtime)和分布式系統服務 DSS(Decentralized System Services)兩個主要組件構成,方便用戶編譯、監視、發布,并根據需要構建應用程序[5]。
本仿真系統設計目的在于針對目前水中仿生機器魚和機器魚水球比賽及研發中遇到的一系列困難,提供一種水中仿生機器魚水球比賽實時仿真系統,使其能夠較真實地模擬水中仿生機器魚運動狀態變化情況、各個關節的位姿變化、機器魚水球比賽進程,更好地測試水中仿生機器魚各種運動學理論、碰撞理論、水波擾動理論、運動策略算法等有關水中仿生機器魚運動的體系結構,以便更好地對水中仿生機器魚設計體系和策略控制算法進行改進。
本文所設計仿生機器魚水球比賽實時仿真系統基于Microsoft Robotics Studio SDK1.5開發,采用服務器/客戶端設計模式,服務器端和客戶端通過TCP/IP協議進行連接和信息交互。本系統設計模式如圖1所示。

圖1 系統設計模式
本文所設計仿真系統完全模擬實體仿生機器魚水球比賽,設置了機器魚1vs1、2vs2、3vs3、技術挑戰賽等4個比賽項目,其中技術挑戰賽包括單魚頂球、自由表演、雙魚對游3項。同時,本仿真系統提供了接口擴展功能,可以方便地擴展到其他水球比賽項目。
整體設計框架包括客戶端策略模塊、服務器端公共接口模塊、核心控制模塊、環境設置模塊、輔助功能模塊、數據顯示模塊、運動學建模模塊[6]。上述七個模塊組建了一個仿生機器魚水球比賽計算機實時仿真系統,控制水球仿真平臺策略調用、比賽進程、數據顯示等整個比賽過程。系統整體設計框架如圖2、圖3所示。

圖2 整體設計框架(服務器端)

圖3 整體設計框架(客戶端)
客戶端模塊功能包括比賽場地信息獲取、比賽場地重構、服務器端進行信息、交互輸出策略制定等。客戶端獲取比賽環境信息,包括比賽類型、比賽階段、所在半場、機器魚位姿信息、場地信息,重建仿真比賽場景,并根據目標制定機器魚運動策略,然后發送給服務器端。
本實施例中,每次比賽運行一個服務器端程序和兩個客戶端程序,客戶端和服務器端以TCP/IP通信協議進行連接和信息交互。仿真比賽過程如下:
(1)運行服務器端程序,服務器端核心控制模塊選擇比賽類型和比賽時間,并不斷監聽局域網內本地或其他終端TCP/IP連接請求。
(2)在同一臺服務器端或其他終端運行客戶端程序,輸入需要連接的服務器IP地址和端口號,向服務器發送連接請求信號,并確認是否準備完畢。
(3)服務器端接收客戶端連接請求,判斷客戶端請求是否有效。如果有效,記錄客戶端地址,獲取客戶端隊伍名字等信息;如果無效,則連接失敗,向客戶端發送連接失敗信息。
(4)服務器與客戶端連接成功后,服務器端將確認客戶端參賽隊伍是否已準備好比賽。一場比賽中,所有參賽隊伍都準備好并確認以后,才能開始比賽。界面如圖4所示。
(5)步驟3和步驟4進行過程中,可以通過環境設置模塊進行比賽場景信息設置,包括:1)設置比賽場地大小、球門大小;2)設置機器魚色標,包括前方和后方色標;3)設置機器魚位姿,包括X、Y坐標和方向;4)設置障礙物和通道信息,包括位置、形狀、長度、寬度、方向;5)可以通過鼠標點擊拖動來設置機器魚位置。

圖4 比賽控制模塊

圖5 環境信息設置模塊界面
(6)點擊“開始”按鈕進行比賽。服務器端每隔一段時間向客戶端發送策略請求消息,客戶端收到請求后,調用公共接口模塊及環境設置模塊,根據當前比賽環境信息,計算機器魚運動策略,然后將指令發送給服務器。
(7)服務器收到客戶端策略指令后,根據機器魚運動學建模模塊,計算下一時刻機器魚位姿信息。
(8)得到機器魚下一時刻位姿信息后,進入服務器核心控制模塊,進行碰撞處理、擾動處理、裁判模塊,控制比賽進程。水球仿真比賽界面如圖6所示。
(9)步驟1~8所述操作及信息可以通過仿真數據顯示模塊進行顯示及交互,大大方便了研究人員實時查看數據并進行水球比賽調試。機器魚位姿、策略命令等信息顯示節目如圖7所示。

圖6 比賽場地界面

圖7 機器魚信息顯示界面
(10)本實時仿真系統同時提供輔助功能,包括仿真比賽回放[7]、實時截圖、比賽錄像、機器魚仿真運動測試、機器魚仿真運動軌跡繪制等功能,為仿真比賽系統系統優化分析、實時監測、策略優化改進提供支持。
在本實施例中,兩個客戶端終端分別運行客戶端程序,并與服務器端進行連接和信息交互,服務器端處理根據客戶端連接信息及策略,對機器魚運動狀態和整個水球比賽進程進行實時仿真,整個比賽通過數據顯示模塊實時顯示。
本仿真系統已將相關庫函數打包,并制作成為安裝程序和卸載程序,使用非常方便。
與現有陸上機器人比賽仿真比賽相比,本實時仿真系統首次研究了基于水中仿生機器魚水球比賽的實時仿真系統,在使用中替代了水中實體仿生機器魚實現了仿生機器人水球比賽。通過對機器魚水球比賽的實時仿真,有效地驗證了水下仿生機器魚運動模型的正確性,驗證了機器魚每個時刻各個關節輸出頻率、擺幅、偏滯角對機器魚位姿變化的影響,驗證了水波環境、障礙物碰撞對機器魚運動狀態的影響,降低了水下仿生機器魚的測試成本,同時縮短了水中機器人水球比賽策略的研發周期。
在中國水中機器人大賽仿真組的比賽中發現了以下問題,需要在以后的研究中改進:(1)物理模型需要進一步的優化;(2)對抗賽時初始化時雙方機器魚對球的距離應保持一致;(3)關于死球的判定,應進一步優化;(4)應加入3D仿真界面。
[1] 蔣新松.未來機器人技術發展方向的探討[M].邁向新世紀的中國機器人——國家863計劃智能機器人主題回顧與展望.沈陽: 遼寧科學技術出版社,2001,199-206.
[2] 張樂.多模態機器魚的設計與控制[D].北京大學智能控制實驗室論文,2008,6.
[3] 喻俊志.多仿生機器魚控制與協調研究[D].中國科學院自動化研究所博士論文,2003,12.
[4] 郭葉軍,熊蓉,吳鐵軍.RoboCup機器人足球仿真比賽開發設計[J].計算機工程與應用,2003,29(2):146-148.
[5] Tandy Trower.歡迎來到 Microsoft Robotics Studio.微軟機器人工程團隊網站.
[6] Chen Wang,Guangming Xie,Hongdong Wei,Long Wang.A Novel CPG Model for Locomotion Control of a Fish-like Robot.
[7] 佟國峰,何洪生,邵振洲.基于 Microsoft Robotics Studio的新型足球機器人3D仿真平臺[J].濟南大學學報,2007,10(21):1-4.