董慧芳,汪明,張燕魯,李旭,張仁昊
(山東建筑大學信息與電氣工程學院,山東濟南250101)
隨著人類生活品質和需求的不斷提升,資源問題變得日益嚴重,陸地資源的不斷減少,使得擁有豐富資源的海洋世界成為新的寵兒,研究各種水下機器人成為科研主流。仿魚類的水下機器人(即仿生機器魚)就是水下潛航器的一種。自然界中的魚類,經過百萬年的進化,對水域環境達到了完美的適應,擁有了卓越的游動技巧,在機動性和效率上是人造推進器所無法比擬的[1-2]。仿生機器魚作為一種新型水下推進器,具有廣闊的潛在應用前景。在狹小的作業空間內、復雜的工作環境中,高機動性、高靈活性的仿生機器魚是高效完成危險復雜任務的可靠方案[3-4]?;诖耍藗儗Ψ律鷻C器魚的研究也越來越多,仿生機器魚的功能也越來越完善[5]。
國內外對仿生機器魚的研究方興未艾。國外的研究以美國和日本為主,美國麻省理工學院(MIT)在1994年研制出世界上第一條真正意義上的仿生機器魚 Robo Tuna[6],之后對其進行改良,研制出Pike、VCUUV等系列具有高速度、高自主性能的機器魚[7];日本國家海洋研究中心(NMRI)研制出了許多不同功能的機器魚,如PF系列機器魚具有高速度和高加速性等特點[8]。國內研究中,北京航空航天大學研制的SPC-II仿生機器魚可以用于水質監測[9];中國科學院自動化所研制出了鲹科模型的“游龍”系列機器魚[10],并用其做了大量的控制實驗,取得了很好的研究成果;哈爾濱工程大學開發的微型機器魚具有遠程控制功能;北京大學制造出了三關節機器魚[11]。這些研究工作的實現使得仿生機器魚在實際水域中的作用越來越大[12]。
為實現仿生機器魚在更多領域的應用,能實時傳輸機器魚監測到的信息,監控系統的研究是基礎,但監控系統的實現具有很大挑戰性。仿生機器魚由于工作環境的特殊性,使其不能像陸地機器人那樣快速高效地通信,而在水下環境中可以使用的通信手段有限,這樣導致仿生機器魚和水面系統之間通信的困難[13]。如何解決仿生機器魚水下通信問題是建立監控系統必須要解決的關鍵問題之一。為此,文章針對仿生機器魚監控系統進行了探索,在系統的硬件、軟件、無線通信以及人機交互界面等方面進行了設計與研發,并搭建了仿生機器魚監控系統實驗平臺。在通信系統中采用了433 MHz的射頻通信技術,RF433 MHz通信技術數據傳輸可靠性高,傳輸時功耗低,因此在機器人的通信當中得到廣泛應用[14],對于在仿生機器魚監控系統中,可以用于淺水區域的通信環境。
文章主要研究仿生機器魚監控系統,目的是在監控系統的計算機上動態監控仿生機器魚多模態游動狀態,從而在此基礎上,希望能更進一步研究仿生機器魚運動形態和推進機理,提升仿生機器魚的機動性和游動效率。文章設計了仿生機器魚監控系統方案,并闡述了仿生機器魚硬件結構,設計了監控計算機與仿生機器魚之間的通信協議,開發了通信模塊和監控系統計算機的人機交互軟件;搭建了仿生機器魚監控系統實驗平臺,實現了動態監控仿生機器魚的直游、轉彎、上浮、下潛等功能。
為了動態監控仿生機器魚,文章所設計的仿生機器魚監控系統硬件主要包含監控計算機、無線收發模塊、仿生機器魚、水池、高清攝像頭等。仿生機器魚系統硬件結構如圖1所示。

圖1 系統硬件結構圖
無線模塊通過串口芯片與主機相連實現仿生機器魚與監控計算機的通信,監控計算機發送指令時,無線模塊以無線廣播的方式將指令發送給機器魚,通過STM32F407控制器處理后控制機器魚運動,同時,機器魚會根據不同的動作發送相應的返回值給監控計算機。高清攝像頭通過USB接口線與監控計算機主機連接,當仿生機器魚在運動時,定時將機器魚游泳姿態傳輸到監控計算機中。
仿生機器魚內部有控制器模塊、無線收發模塊以及各種傳感器(陀螺儀、深度傳感器)等模塊,以下將詳細介紹這幾個模塊的結構原理。
(1)控制器模塊
為使仿生機器魚具有更穩定的性能,發揮更大的作用,其控制器模塊顯得尤為重要。故選擇工作頻率高、運行速度快的 STM32F407單片機,其USART和SPI通信速度更快,具有更低的功耗[15],并集成了新的DSP和FPU指令,符合本設計對控制器的要求,運用STM32F407作為運動控制單元,負責運動控制的解算,獲取多路舵機驅動的PWM信號,并且隔離了舵機運行時信號的干擾,保證了整個系統的穩定性[16]。
(2)無線收發模塊
由于仿生機器魚工作在復雜的水下環境,需采用穿透性強、穩定性較高的無線傳輸模塊,文章研究的監控系統主要實現監控計算機與仿生機器魚之間運動模式數據的傳輸,無線模塊選擇雙向射頻模塊RF200,其用于高頻范圍的高性價比的RFID系統,在本設計方案中,RF200工作在433 MHz的頻率上,數據傳輸速率為9600 b/s,使用433 MHz射頻技術主要是考慮選用此頻段通信較為穩定,不容易發生丟包現象,且 RF200輸出為 TTL電平,直接通過USART接口與 STM32F407通信[17-19],通信方式簡單。
RF433 MHz射頻通信技術的通信距離與發射電壓有關,在3~12 V內,發射電壓越高其傳輸距離越遠,最低傳輸距離為20~50 m,最大可傳輸700~800 m[20]。根據需求來調節通信距離的大小,在研究階段,采用短距離即可達到通信要求。
(3)傳感器模塊
鑒于仿生機器魚工作在復雜的水下環境中,功率消耗以及機器魚的大小限制了微型控制器的處理能力。故采用低成本多傳感器架構,使得機器魚適應不同的環境。具體有陀螺儀,深度傳感器,電流/電壓傳感器、紅外傳感器等,特別地,選擇MPU6050作為陀螺儀部件,MPU6050為集成的六軸運動跟蹤設備,其內部結合了3軸陀螺儀 +3軸加速度計[21],其具體原理如圖2所示。

圖2 MPU6050模塊原理圖
系統軟件設計主要包括:(1)監控計算機的開發,即發送控制指令以及接收陀螺儀返回值;(2)仿生機器魚接收控制指令以及生成PWM波控制舵機運動。
監控計算機軟件利用MFC(Microsoft Foundation Classes)編寫,通過按鍵觸發作用,輸入相應按鍵生成控制指令,利用串口發送指令。機器魚接收指令的軟件設計通過C++實現,機器魚內部控制器通過USART3接收監控計算機的控制指令,生成PWM波作用到舵機上使機器魚產生相應的動作,同時USART2向監控計算機發送相應的返回值。監控計算機與仿生機器魚之間通過串口進行通信,只需配置一個簡單的通信協議,以及利用無線串口配置軟件實現RF200模塊與監控計算機對應串口參數的配置,運用到兩個串口分別作為控制端和數據端。
1.3.1 無線通信協議
仿生機器魚與監控計算機的通信是通過串口發送和接收命令,如前所提的通過USART3接收監控計算機發送的命令,通過USART2向監控計算機發送命令。USART的字符由起始位、數據位(8位或者9位)、停止位(1位或者2位)組成,監控計算機發送的控制指令含有4個字節。由于仿生機器魚要實現多模態游動,如直游、上升、下降、左轉彎、右轉彎、翻滾等模式,為了使通信簡單而高效,將仿生機器魚的運動模式和運動速度設置成兩種不同的通信協議格式。
在仿生機器魚的多模態游動中,速度檔位設置1~9檔,由慢到快,每個檔位的通信協議由4個字節組成,為了簡便起見,設置幀頭和幀尾以及機器魚ID均相同,仿生機器魚根據運動速度位區分不同的檔位。運動速度數據幀組成的通信協議見表1。

表1 運動速度通信協議表
在仿生機器魚的多模態游動中,每種游動模態的通信協議由4個字節組成,同樣設置幀頭和幀尾以及機器魚ID均相同,仿生機器魚根據運動模態位區分不同的游動模態。運動模式數據幀組成的通信協議見表2。

表2 運動模式通信協議表
1.3.2 無線通信控制軟件流程
按照通信協議的格式,仿生機器魚控制命令由運動模式和游動速度組成,監控計算機利用MFC中的PreTranslateMessage函數按鍵觸發生成控制指令,GenerateCtrlCmd函數打包控制指令,通過串口發送。機器魚中的控制器(STM32)利用 USART_IRQHandler函數接收監控計算機指令,控制舵機運動。同時,仿生機器魚將返回值返回給監控計算機,利用OnRXChar函數解析仿生機器魚傳回來的數據,運動模式和運動速度的通信流程如圖3所示。

圖3 通信流程圖
監控計算機控制指令的代碼如下:


對游動仿生機器魚來說,監測計算機需要對其進行實時的動態監控,并接收機器魚從水下監測到的各種信息,故開發了監控計算機人機交互界面。用VC++2010中的MFC語言設計了監控平臺,主要實現以下功能:程序運行之后,會自動產生一個名為Dogfishcontrol的監控界面,如圖 4所示。設置COME4和COME6分別作為數據端和控制端,打開串口進入控制模式,在命令區通過鍵盤輸入命令,仿生機器魚做出相應的動作。界面下方是一個根據機器魚游動軌跡產生的曲線圖,pitch叫做俯仰角,yaw叫做偏航角,roll叫做翻滾角,其分別圍繞 x、y、z軸旋轉,仿生機器魚在執行不同的控制指令時曲線圖中會產生不同的波形。
監控計算機接收仿生機器魚返回值時,即接收陀螺儀數據時,根據通信協議,先分析幀頭標志位,驗證正確后接收數據位、結束位,若字節數已夠,則解析陀螺儀數據。

圖4 監控計算機人機交互界面圖
監控計算機解析仿生機器魚返回值數據的代碼如下:


通過上述的設計與研發,在實驗室搭建了由監控計算機、攝像頭、通信模塊、仿生機器魚、水池等構成的仿生機器魚監控系統實驗平臺。為驗證監控系統,在實驗平臺上做了仿生機器魚多模態游動實驗。仿生機器魚多模態節律運動采用中樞模式發生器CPG(Central Pattern Generator)控制,推進方式為 BCF(Body and Caudal Fin)方式,即由身體后部及尾鰭推進。仿生機器魚CPG網絡模型由式(1)表示為

式中:xi和yi分別為非線性振蕩器的2個狀態變量;ωi為第i個振蕩器的固有震蕩頻率;Ai為第i個振蕩器的固有振幅;aij和bik分別為鏈式弱耦合間的耦合系數,表示神經振蕩元之間的激勵和抑制作用。
此模型采用簡單的鏈式拓撲結構,以最近相鄰單元構建線性耦合,極大減少模型的參數數量,簡化了系統的復雜度。其控制拓撲結構如圖5所示,通過控制參數ω和A,可以直接控制振蕩器的頻率和振蕩器的幅值,產生輸出信號,經過控制器處理后輸入到各關節驅動舵機,實現機器魚的多模態控制。

圖5 仿生機器魚CPG網絡拓撲結構圖
在搭建好的實驗平臺上對仿生機器魚監控系統進行測試。圖6~9的(a)圖分別為機器魚在水池中靜止、直游、左轉彎及右轉彎狀態,在監控計算機上顯示的波形分別對應圖6~9的(b)圖。
由圖6~9中曲線可分析,當機器魚靜止時,曲線圖由3條直線組成,如圖6(b)所示;直游時,yaw曲線波動較大,即偏航角波動較大,機器魚在向前游動的過程中,圍繞y軸旋轉,故體現在曲線圖中是偏航角的變化較為明顯,如圖7(b)所示;當機器魚執行轉彎運動時,偏航角會達到較大值,左轉和右轉方向正好相反,如圖8(b)和9(b)所示。

圖6 靜止模式下的實際游態及數據波形圖

圖7 向前直游模式下的實際游態及數據波形圖

圖8 向左轉彎模式下的實際游態及數據波形圖

圖9 向右轉彎模式下的實際游態及數據波形圖
實驗過程中監控計算機能夠通過按鍵準確控制仿生機器魚運動模態的切換,在不同運動模態下,通過在監控計算機上輸入不同數字鍵,亦可實現機器魚速度檔位的切換,監控系統可實時記錄機器魚在游動過程中的波形變化。實驗結果證明文章提出的仿生機器魚監控系統能夠完成機器魚各模態運動的監控任務,可實現監控計算機與機器魚的穩定通信,但也存在很多需下一步解決的問題,比如在進行模態和速度檔位切換的瞬間,機器魚動作稍微延遲,即通信速率沒達到理想要求,丟包率雖小但也存在,以及實驗在實驗室內完成,通信距離體現不出優勢,在下一步的研究工作中,會從這2個方面進行系統優化。
仿生機器魚監控系統的設計與實現是仿生機器魚推廣應用的首要環節。文章設計并實現了仿生機器魚監控系統,搭建了實驗平臺,通過具體的實驗結果可得出:
(1)仿生機器魚根據監控計算機鍵盤上的輸入命令做出了相應動作,同時監控系統界面上實時產生了機器魚不同運動模態下的運動曲線。
(2)仿生機器魚執行命令時向監控計算機實時發送反饋機器魚當前運動狀態的指令,實現了兩者之間的無線通信協議。
(3)仿生機器魚監控系統實現了仿生機器魚與監控計算機兩者間的穩定交換游動控制命令、游動模式、游動姿態等數據,形成了一個穩定可靠的數據傳輸系統,運行效果良好。
參考文獻:
[1]孫飛虎,喻俊志,徐德.具有嵌入式視覺的仿生機器魚頭部的平穩性控制[J].機器人,2015,37(2):188-195.
[2]劉煦,林信桐.機器魚運動控制模式的優化[J].科技視界,2016(15):141.
[3]Zhou C,Low K H.Design and locomotion control of a biomimetic underwater vehicle with fin propulsion[J]. IEEE/ASME Transactions on Mechatronics,2012,17(1):25-35.
[4]王進,蔣定立,鄧欣,等.仿生學習的機器魚運動模式分析[J].重慶大學學報,2015,38(6):138-146.
[5]Hu Y,Liang J,Wang T.Parameter synthesis of coupled nonlinear oscillators for CPG-based robotic locomotion[J].IEEE Transactions on Industrial Electronics,2014,61(11):6183-6191.
[6]梁建宏,王田苗,魏洪興,等.水下仿生機器魚的研究進展II—小型實驗機器魚的研制[J].機器人,2002,24(3):234-238.
[7]Barrett D S,Triantafyllou M S,Yue D K P,et al.Drag reduction in fish-like locomotion[J].Journal of Fluid Mechanics,1999,192(392):183-212.
[8]Yu J,Tan M,Chen J,et al.A survey on CPG-inspired control models and system implementation[J].IEEE Transactions on Neural Networks&Learning Systems,2017,25(3):441-456.
[9]Tan M.Dynamic modeling of a CPG-governed multijoint robotic fish[J].Advanced Robotics,2013,27(4):275-285.
[10]喻俊志,王碩,譚民.多仿生機器魚控制與協調[J].機器人技術與應用,2003(3):27-35.
[11]汪明,喻俊志,譚民,等.機器海豚多模態游動CPG控制[J].自動化學報,2014(9):1933-1941.
[12]梁建宏,鄭衛豐,文力,等.兩關節仿生水下航行器SPC-Ⅲ的推進與機動性[J].機器人,2010,32(6):726-731,740.
[13]吳正興,喻俊志,蘇宗帥,等.仿生機器魚S形起動的控制與實現[J].自動化學報,2013,39(11):1914-1922.
[14]葛陽.基于433MHz射頻通信的智能家居系統研究與設計[D].成都:電子科技大學,2016.
[15]Yu J,Chen S,Wu Z,etal.On aminiature free-swimming robotic fish with multiple sensors[J].International Journal of Advanced Robotic Systems,2016,13:257-352.
[16]Yu J,Wu Z,Wang M,et al.CPG network optimization for a biomimetic robotic fish via PSO[J].IEEE Transactions on Neural Networks&Learning Systems,2016,27(9):1962-1968.
[17]勾慧蘭,劉光超.基于STM32的最小系統及串口通信的實現[J].工業控制計算機,2012,25(9):26-28.
[18]尹舜,黃曉祥,謝光直,等.基于STM32無線通信系統的設計[J].信息通信,2015(8):179.
[19]羅斌.Visual C++編程技巧精選500例[M].北京:中國水利水電出版社,2005.
[20]葛陽,李大剛.智能家居433 MHz射頻通信協議棧設計與網關實現[J].電信科學,2015,31(9):137-143.
[21]孫飛虎.基于嵌入式視覺的仿生機器魚跟蹤控制[D].北京:中國科學院大學,2015.