董慧芳,汪明,張燕魯,李旭,張仁昊
(山東建筑大學(xué)信息與電氣工程學(xué)院,山東濟(jì)南250101)
隨著人類生活品質(zhì)和需求的不斷提升,資源問題變得日益嚴(yán)重,陸地資源的不斷減少,使得擁有豐富資源的海洋世界成為新的寵兒,研究各種水下機器人成為科研主流。仿魚類的水下機器人(即仿生機器魚)就是水下潛航器的一種。自然界中的魚類,經(jīng)過百萬年的進(jìn)化,對水域環(huán)境達(dá)到了完美的適應(yīng),擁有了卓越的游動技巧,在機動性和效率上是人造推進(jìn)器所無法比擬的[1-2]。仿生機器魚作為一種新型水下推進(jìn)器,具有廣闊的潛在應(yīng)用前景。在狹小的作業(yè)空間內(nèi)、復(fù)雜的工作環(huán)境中,高機動性、高靈活性的仿生機器魚是高效完成危險復(fù)雜任務(wù)的可靠方案[3-4]?;诖?,人們對仿生機器魚的研究也越來越多,仿生機器魚的功能也越來越完善[5]。
國內(nèi)外對仿生機器魚的研究方興未艾。國外的研究以美國和日本為主,美國麻省理工學(xué)院(MIT)在1994年研制出世界上第一條真正意義上的仿生機器魚 Robo Tuna[6],之后對其進(jìn)行改良,研制出Pike、VCUUV等系列具有高速度、高自主性能的機器魚[7];日本國家海洋研究中心(NMRI)研制出了許多不同功能的機器魚,如PF系列機器魚具有高速度和高加速性等特點[8]。國內(nèi)研究中,北京航空航天大學(xué)研制的SPC-II仿生機器魚可以用于水質(zhì)監(jiān)測[9];中國科學(xué)院自動化所研制出了鲹科模型的“游龍”系列機器魚[10],并用其做了大量的控制實驗,取得了很好的研究成果;哈爾濱工程大學(xué)開發(fā)的微型機器魚具有遠(yuǎn)程控制功能;北京大學(xué)制造出了三關(guān)節(jié)機器魚[11]。這些研究工作的實現(xiàn)使得仿生機器魚在實際水域中的作用越來越大[12]。
為實現(xiàn)仿生機器魚在更多領(lǐng)域的應(yīng)用,能實時傳輸機器魚監(jiān)測到的信息,監(jiān)控系統(tǒng)的研究是基礎(chǔ),但監(jiān)控系統(tǒng)的實現(xiàn)具有很大挑戰(zhàn)性。仿生機器魚由于工作環(huán)境的特殊性,使其不能像陸地機器人那樣快速高效地通信,而在水下環(huán)境中可以使用的通信手段有限,這樣導(dǎo)致仿生機器魚和水面系統(tǒng)之間通信的困難[13]。如何解決仿生機器魚水下通信問題是建立監(jiān)控系統(tǒng)必須要解決的關(guān)鍵問題之一。為此,文章針對仿生機器魚監(jiān)控系統(tǒng)進(jìn)行了探索,在系統(tǒng)的硬件、軟件、無線通信以及人機交互界面等方面進(jìn)行了設(shè)計與研發(fā),并搭建了仿生機器魚監(jiān)控系統(tǒng)實驗平臺。在通信系統(tǒng)中采用了433 MHz的射頻通信技術(shù),RF433 MHz通信技術(shù)數(shù)據(jù)傳輸可靠性高,傳輸時功耗低,因此在機器人的通信當(dāng)中得到廣泛應(yīng)用[14],對于在仿生機器魚監(jiān)控系統(tǒng)中,可以用于淺水區(qū)域的通信環(huán)境。
文章主要研究仿生機器魚監(jiān)控系統(tǒng),目的是在監(jiān)控系統(tǒng)的計算機上動態(tài)監(jiān)控仿生機器魚多模態(tài)游動狀態(tài),從而在此基礎(chǔ)上,希望能更進(jìn)一步研究仿生機器魚運動形態(tài)和推進(jìn)機理,提升仿生機器魚的機動性和游動效率。文章設(shè)計了仿生機器魚監(jiān)控系統(tǒng)方案,并闡述了仿生機器魚硬件結(jié)構(gòu),設(shè)計了監(jiān)控計算機與仿生機器魚之間的通信協(xié)議,開發(fā)了通信模塊和監(jiān)控系統(tǒng)計算機的人機交互軟件;搭建了仿生機器魚監(jiān)控系統(tǒng)實驗平臺,實現(xiàn)了動態(tài)監(jiān)控仿生機器魚的直游、轉(zhuǎn)彎、上浮、下潛等功能。
為了動態(tài)監(jiān)控仿生機器魚,文章所設(shè)計的仿生機器魚監(jiān)控系統(tǒng)硬件主要包含監(jiān)控計算機、無線收發(fā)模塊、仿生機器魚、水池、高清攝像頭等。仿生機器魚系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)硬件結(jié)構(gòu)圖
無線模塊通過串口芯片與主機相連實現(xiàn)仿生機器魚與監(jiān)控計算機的通信,監(jiān)控計算機發(fā)送指令時,無線模塊以無線廣播的方式將指令發(fā)送給機器魚,通過STM32F407控制器處理后控制機器魚運動,同時,機器魚會根據(jù)不同的動作發(fā)送相應(yīng)的返回值給監(jiān)控計算機。高清攝像頭通過USB接口線與監(jiān)控計算機主機連接,當(dāng)仿生機器魚在運動時,定時將機器魚游泳姿態(tài)傳輸?shù)奖O(jiān)控計算機中。
仿生機器魚內(nèi)部有控制器模塊、無線收發(fā)模塊以及各種傳感器(陀螺儀、深度傳感器)等模塊,以下將詳細(xì)介紹這幾個模塊的結(jié)構(gòu)原理。
(1)控制器模塊
為使仿生機器魚具有更穩(wěn)定的性能,發(fā)揮更大的作用,其控制器模塊顯得尤為重要。故選擇工作頻率高、運行速度快的 STM32F407單片機,其USART和SPI通信速度更快,具有更低的功耗[15],并集成了新的DSP和FPU指令,符合本設(shè)計對控制器的要求,運用STM32F407作為運動控制單元,負(fù)責(zé)運動控制的解算,獲取多路舵機驅(qū)動的PWM信號,并且隔離了舵機運行時信號的干擾,保證了整個系統(tǒng)的穩(wěn)定性[16]。
(2)無線收發(fā)模塊
由于仿生機器魚工作在復(fù)雜的水下環(huán)境,需采用穿透性強、穩(wěn)定性較高的無線傳輸模塊,文章研究的監(jiān)控系統(tǒng)主要實現(xiàn)監(jiān)控計算機與仿生機器魚之間運動模式數(shù)據(jù)的傳輸,無線模塊選擇雙向射頻模塊RF200,其用于高頻范圍的高性價比的RFID系統(tǒng),在本設(shè)計方案中,RF200工作在433 MHz的頻率上,數(shù)據(jù)傳輸速率為9600 b/s,使用433 MHz射頻技術(shù)主要是考慮選用此頻段通信較為穩(wěn)定,不容易發(fā)生丟包現(xiàn)象,且 RF200輸出為 TTL電平,直接通過USART接口與 STM32F407通信[17-19],通信方式簡單。
RF433 MHz射頻通信技術(shù)的通信距離與發(fā)射電壓有關(guān),在3~12 V內(nèi),發(fā)射電壓越高其傳輸距離越遠(yuǎn),最低傳輸距離為20~50 m,最大可傳輸700~800 m[20]。根據(jù)需求來調(diào)節(jié)通信距離的大小,在研究階段,采用短距離即可達(dá)到通信要求。
(3)傳感器模塊
鑒于仿生機器魚工作在復(fù)雜的水下環(huán)境中,功率消耗以及機器魚的大小限制了微型控制器的處理能力。故采用低成本多傳感器架構(gòu),使得機器魚適應(yīng)不同的環(huán)境。具體有陀螺儀,深度傳感器,電流/電壓傳感器、紅外傳感器等,特別地,選擇MPU6050作為陀螺儀部件,MPU6050為集成的六軸運動跟蹤設(shè)備,其內(nèi)部結(jié)合了3軸陀螺儀 +3軸加速度計[21],其具體原理如圖2所示。
圖2 MPU6050模塊原理圖
系統(tǒng)軟件設(shè)計主要包括:(1)監(jiān)控計算機的開發(fā),即發(fā)送控制指令以及接收陀螺儀返回值;(2)仿生機器魚接收控制指令以及生成PWM波控制舵機運動。
監(jiān)控計算機軟件利用MFC(Microsoft Foundation Classes)編寫,通過按鍵觸發(fā)作用,輸入相應(yīng)按鍵生成控制指令,利用串口發(fā)送指令。機器魚接收指令的軟件設(shè)計通過C++實現(xiàn),機器魚內(nèi)部控制器通過USART3接收監(jiān)控計算機的控制指令,生成PWM波作用到舵機上使機器魚產(chǎn)生相應(yīng)的動作,同時USART2向監(jiān)控計算機發(fā)送相應(yīng)的返回值。監(jiān)控計算機與仿生機器魚之間通過串口進(jìn)行通信,只需配置一個簡單的通信協(xié)議,以及利用無線串口配置軟件實現(xiàn)RF200模塊與監(jiān)控計算機對應(yīng)串口參數(shù)的配置,運用到兩個串口分別作為控制端和數(shù)據(jù)端。
1.3.1 無線通信協(xié)議
仿生機器魚與監(jiān)控計算機的通信是通過串口發(fā)送和接收命令,如前所提的通過USART3接收監(jiān)控計算機發(fā)送的命令,通過USART2向監(jiān)控計算機發(fā)送命令。USART的字符由起始位、數(shù)據(jù)位(8位或者9位)、停止位(1位或者2位)組成,監(jiān)控計算機發(fā)送的控制指令含有4個字節(jié)。由于仿生機器魚要實現(xiàn)多模態(tài)游動,如直游、上升、下降、左轉(zhuǎn)彎、右轉(zhuǎn)彎、翻滾等模式,為了使通信簡單而高效,將仿生機器魚的運動模式和運動速度設(shè)置成兩種不同的通信協(xié)議格式。
在仿生機器魚的多模態(tài)游動中,速度檔位設(shè)置1~9檔,由慢到快,每個檔位的通信協(xié)議由4個字節(jié)組成,為了簡便起見,設(shè)置幀頭和幀尾以及機器魚ID均相同,仿生機器魚根據(jù)運動速度位區(qū)分不同的檔位。運動速度數(shù)據(jù)幀組成的通信協(xié)議見表1。
表1 運動速度通信協(xié)議表
在仿生機器魚的多模態(tài)游動中,每種游動模態(tài)的通信協(xié)議由4個字節(jié)組成,同樣設(shè)置幀頭和幀尾以及機器魚ID均相同,仿生機器魚根據(jù)運動模態(tài)位區(qū)分不同的游動模態(tài)。運動模式數(shù)據(jù)幀組成的通信協(xié)議見表2。
表2 運動模式通信協(xié)議表
1.3.2 無線通信控制軟件流程
按照通信協(xié)議的格式,仿生機器魚控制命令由運動模式和游動速度組成,監(jiān)控計算機利用MFC中的PreTranslateMessage函數(shù)按鍵觸發(fā)生成控制指令,GenerateCtrlCmd函數(shù)打包控制指令,通過串口發(fā)送。機器魚中的控制器(STM32)利用 USART_IRQHandler函數(shù)接收監(jiān)控計算機指令,控制舵機運動。同時,仿生機器魚將返回值返回給監(jiān)控計算機,利用OnRXChar函數(shù)解析仿生機器魚傳回來的數(shù)據(jù),運動模式和運動速度的通信流程如圖3所示。
圖3 通信流程圖
監(jiān)控計算機控制指令的代碼如下:
對游動仿生機器魚來說,監(jiān)測計算機需要對其進(jìn)行實時的動態(tài)監(jiān)控,并接收機器魚從水下監(jiān)測到的各種信息,故開發(fā)了監(jiān)控計算機人機交互界面。用VC++2010中的MFC語言設(shè)計了監(jiān)控平臺,主要實現(xiàn)以下功能:程序運行之后,會自動產(chǎn)生一個名為Dogfishcontrol的監(jiān)控界面,如圖 4所示。設(shè)置COME4和COME6分別作為數(shù)據(jù)端和控制端,打開串口進(jìn)入控制模式,在命令區(qū)通過鍵盤輸入命令,仿生機器魚做出相應(yīng)的動作。界面下方是一個根據(jù)機器魚游動軌跡產(chǎn)生的曲線圖,pitch叫做俯仰角,yaw叫做偏航角,roll叫做翻滾角,其分別圍繞 x、y、z軸旋轉(zhuǎn),仿生機器魚在執(zhí)行不同的控制指令時曲線圖中會產(chǎn)生不同的波形。
監(jiān)控計算機接收仿生機器魚返回值時,即接收陀螺儀數(shù)據(jù)時,根據(jù)通信協(xié)議,先分析幀頭標(biāo)志位,驗證正確后接收數(shù)據(jù)位、結(jié)束位,若字節(jié)數(shù)已夠,則解析陀螺儀數(shù)據(jù)。
圖4 監(jiān)控計算機人機交互界面圖
監(jiān)控計算機解析仿生機器魚返回值數(shù)據(jù)的代碼如下:
通過上述的設(shè)計與研發(fā),在實驗室搭建了由監(jiān)控計算機、攝像頭、通信模塊、仿生機器魚、水池等構(gòu)成的仿生機器魚監(jiān)控系統(tǒng)實驗平臺。為驗證監(jiān)控系統(tǒng),在實驗平臺上做了仿生機器魚多模態(tài)游動實驗。仿生機器魚多模態(tài)節(jié)律運動采用中樞模式發(fā)生器CPG(Central Pattern Generator)控制,推進(jìn)方式為 BCF(Body and Caudal Fin)方式,即由身體后部及尾鰭推進(jìn)。仿生機器魚CPG網(wǎng)絡(luò)模型由式(1)表示為
式中:xi和yi分別為非線性振蕩器的2個狀態(tài)變量;ωi為第i個振蕩器的固有震蕩頻率;Ai為第i個振蕩器的固有振幅;aij和bik分別為鏈?zhǔn)饺躐詈祥g的耦合系數(shù),表示神經(jīng)振蕩元之間的激勵和抑制作用。
此模型采用簡單的鏈?zhǔn)酵負(fù)浣Y(jié)構(gòu),以最近相鄰單元構(gòu)建線性耦合,極大減少模型的參數(shù)數(shù)量,簡化了系統(tǒng)的復(fù)雜度。其控制拓?fù)浣Y(jié)構(gòu)如圖5所示,通過控制參數(shù)ω和A,可以直接控制振蕩器的頻率和振蕩器的幅值,產(chǎn)生輸出信號,經(jīng)過控制器處理后輸入到各關(guān)節(jié)驅(qū)動舵機,實現(xiàn)機器魚的多模態(tài)控制。
圖5 仿生機器魚CPG網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
在搭建好的實驗平臺上對仿生機器魚監(jiān)控系統(tǒng)進(jìn)行測試。圖6~9的(a)圖分別為機器魚在水池中靜止、直游、左轉(zhuǎn)彎及右轉(zhuǎn)彎狀態(tài),在監(jiān)控計算機上顯示的波形分別對應(yīng)圖6~9的(b)圖。
由圖6~9中曲線可分析,當(dāng)機器魚靜止時,曲線圖由3條直線組成,如圖6(b)所示;直游時,yaw曲線波動較大,即偏航角波動較大,機器魚在向前游動的過程中,圍繞y軸旋轉(zhuǎn),故體現(xiàn)在曲線圖中是偏航角的變化較為明顯,如圖7(b)所示;當(dāng)機器魚執(zhí)行轉(zhuǎn)彎運動時,偏航角會達(dá)到較大值,左轉(zhuǎn)和右轉(zhuǎn)方向正好相反,如圖8(b)和9(b)所示。
圖6 靜止模式下的實際游態(tài)及數(shù)據(jù)波形圖
圖7 向前直游模式下的實際游態(tài)及數(shù)據(jù)波形圖
圖8 向左轉(zhuǎn)彎模式下的實際游態(tài)及數(shù)據(jù)波形圖
圖9 向右轉(zhuǎn)彎模式下的實際游態(tài)及數(shù)據(jù)波形圖
實驗過程中監(jiān)控計算機能夠通過按鍵準(zhǔn)確控制仿生機器魚運動模態(tài)的切換,在不同運動模態(tài)下,通過在監(jiān)控計算機上輸入不同數(shù)字鍵,亦可實現(xiàn)機器魚速度檔位的切換,監(jiān)控系統(tǒng)可實時記錄機器魚在游動過程中的波形變化。實驗結(jié)果證明文章提出的仿生機器魚監(jiān)控系統(tǒng)能夠完成機器魚各模態(tài)運動的監(jiān)控任務(wù),可實現(xiàn)監(jiān)控計算機與機器魚的穩(wěn)定通信,但也存在很多需下一步解決的問題,比如在進(jìn)行模態(tài)和速度檔位切換的瞬間,機器魚動作稍微延遲,即通信速率沒達(dá)到理想要求,丟包率雖小但也存在,以及實驗在實驗室內(nèi)完成,通信距離體現(xiàn)不出優(yōu)勢,在下一步的研究工作中,會從這2個方面進(jìn)行系統(tǒng)優(yōu)化。
仿生機器魚監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)是仿生機器魚推廣應(yīng)用的首要環(huán)節(jié)。文章設(shè)計并實現(xiàn)了仿生機器魚監(jiān)控系統(tǒng),搭建了實驗平臺,通過具體的實驗結(jié)果可得出:
(1)仿生機器魚根據(jù)監(jiān)控計算機鍵盤上的輸入命令做出了相應(yīng)動作,同時監(jiān)控系統(tǒng)界面上實時產(chǎn)生了機器魚不同運動模態(tài)下的運動曲線。
(2)仿生機器魚執(zhí)行命令時向監(jiān)控計算機實時發(fā)送反饋機器魚當(dāng)前運動狀態(tài)的指令,實現(xiàn)了兩者之間的無線通信協(xié)議。
(3)仿生機器魚監(jiān)控系統(tǒng)實現(xiàn)了仿生機器魚與監(jiān)控計算機兩者間的穩(wěn)定交換游動控制命令、游動模式、游動姿態(tài)等數(shù)據(jù),形成了一個穩(wěn)定可靠的數(shù)據(jù)傳輸系統(tǒng),運行效果良好。
參考文獻(xiàn):
[1]孫飛虎,喻俊志,徐德.具有嵌入式視覺的仿生機器魚頭部的平穩(wěn)性控制[J].機器人,2015,37(2):188-195.
[2]劉煦,林信桐.機器魚運動控制模式的優(yōu)化[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ìn),蔣定立,鄧欣,等.仿生學(xué)習(xí)的機器魚運動模式分析[J].重慶大學(xué)學(xué)報,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]梁建宏,王田苗,魏洪興,等.水下仿生機器魚的研究進(jìn)展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]喻俊志,王碩,譚民.多仿生機器魚控制與協(xié)調(diào)[J].機器人技術(shù)與應(yīng)用,2003(3):27-35.
[11]汪明,喻俊志,譚民,等.機器海豚多模態(tài)游動CPG控制[J].自動化學(xué)報,2014(9):1933-1941.
[12]梁建宏,鄭衛(wèi)豐,文力,等.兩關(guān)節(jié)仿生水下航行器SPC-Ⅲ的推進(jìn)與機動性[J].機器人,2010,32(6):726-731,740.
[13]吳正興,喻俊志,蘇宗帥,等.仿生機器魚S形起動的控制與實現(xiàn)[J].自動化學(xué)報,2013,39(11):1914-1922.
[14]葛陽.基于433MHz射頻通信的智能家居系統(tǒng)研究與設(shè)計[D].成都:電子科技大學(xué),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的最小系統(tǒng)及串口通信的實現(xiàn)[J].工業(yè)控制計算機,2012,25(9):26-28.
[18]尹舜,黃曉祥,謝光直,等.基于STM32無線通信系統(tǒng)的設(shè)計[J].信息通信,2015(8):179.
[19]羅斌.Visual C++編程技巧精選500例[M].北京:中國水利水電出版社,2005.
[20]葛陽,李大剛.智能家居433 MHz射頻通信協(xié)議棧設(shè)計與網(wǎng)關(guān)實現(xiàn)[J].電信科學(xué),2015,31(9):137-143.
[21]孫飛虎.基于嵌入式視覺的仿生機器魚跟蹤控制[D].北京:中國科學(xué)院大學(xué),2015.