肖權(quán),孔峰,陶金
(廣西工學(xué)院 電子信息與控制工程系,廣西 柳州 545006)
魚類是自然界出現(xiàn)較早的動物之一,經(jīng)過魚類自身漫長的進(jìn)化和長期優(yōu)勝劣汰的自然選擇,魚類已經(jīng)逐步成為海洋的“主人”。魚類生活的環(huán)境也造就了魚類很出色的水下運動能力。魚類高效的運動能力、良好的機(jī)動性等優(yōu)點是人類水下仿生設(shè)備模擬的目標(biāo)。在國內(nèi),機(jī)器魚的研究成為水下仿生設(shè)備研究的熱點之一。
當(dāng)前,機(jī)器魚主要的研究是讓機(jī)器魚在環(huán)境因素不確定的非線性、動態(tài)變化環(huán)境中按照人為意愿能有效地完成事先給定的任務(wù)。這一任務(wù)實現(xiàn)前提是機(jī)器魚能精確地運動到指定位置實現(xiàn)點對點的控制,點對點控制效果決定了機(jī)器魚的控制效果。機(jī)器魚點對點(PTP)控制算法是喻俊志、陳爾奎等人提出來的,該算法的策略是消除機(jī)器魚在起始方向,位置與目標(biāo)點之間的方向誤差和距離誤差[1]。由于機(jī)器魚所處環(huán)境因素的不確定性,無法用數(shù)學(xué)模型描述機(jī)器魚的運動過程。同時,在機(jī)器魚游動過程中,水的干擾對機(jī)器魚點對點控制有較大的影響,導(dǎo)致機(jī)器魚點對點控制效果不理想。
針對點對點的控制在機(jī)器魚游過的路徑受到水干擾波動較大的不足之處,本文引入點對點(PTP)的模糊控制算法,不需要建立數(shù)學(xué)模型,根據(jù)實驗數(shù)據(jù)設(shè)計模糊控制器。實驗結(jié)果表明,點到點(PTP)的模糊控制算法能優(yōu)化機(jī)器魚的游動路徑,提高點對點的控制效果。
本文選用北京大學(xué)自主研發(fā)的三關(guān)節(jié)仿鲹科機(jī)器魚為研究對象。該機(jī)器魚的魚體長為40 cm,體重約0.8 kg。機(jī)器魚動力系統(tǒng)是其尾部提供的,其尾部由鋁制骨架架構(gòu)的3個直流伺服電動機(jī)與橡皮套封裝的尾鰭構(gòu)成的,魚尾為新月型尾鰭,該類型機(jī)器魚具有體積小、質(zhì)量小、關(guān)節(jié)靈活性、穩(wěn)定性與同構(gòu)性等優(yōu)點。機(jī)器魚的通信模塊與控制單元位于機(jī)器魚的頭,主要負(fù)責(zé)機(jī)器魚與計算機(jī)控制平臺之間信息相互交換。機(jī)器魚有15個速度檔、15個方向檔,速度檔值越大,機(jī)器魚的運動速度越快。機(jī)器魚方向檔分為兩個部分,0~6檔表示機(jī)器魚向左轉(zhuǎn),7檔表示機(jī)器魚直游,8~14檔表示機(jī)器魚向右轉(zhuǎn)。在機(jī)器魚的控制平臺作用下,機(jī)器魚可以在二維空間的水池中模擬魚體波曲線方程[2-3]。在實驗控制平臺的作用下,機(jī)器魚借助CCD攝像頭獲取水池中的信息。
模糊集合理論是模糊控制的基礎(chǔ),模糊推理系統(tǒng)由4個重要部件組成:知識庫、推理機(jī)制、模糊器與反模糊器[4]。本文采用二維模糊控制器,將t時刻,機(jī)器魚魚頭與目標(biāo)點的夾角θi作為輸入偏差E;在t+1時刻,機(jī)器魚魚頭與目標(biāo)點的夾角θi+1與t時刻的機(jī)器魚魚頭與目標(biāo)點的夾角θi之差αi作為偏差變化率EC,將實際機(jī)器魚的魚頭坐標(biāo)與目標(biāo)點的夾角γ作為輸出量,通過攝像頭可以得到目標(biāo)點的坐標(biāo)、機(jī)器的方向及其魚頭坐標(biāo)等環(huán)境信息。機(jī)器魚的模糊控制器結(jié)構(gòu)圖見圖1。
圖1 機(jī)器魚的模糊控制器結(jié)構(gòu)圖Fig.1 The structure of biomimetic robot-fish fuzzy controller
根據(jù)模糊控制器中設(shè)置的變量,在機(jī)器魚全局視覺坐標(biāo)系中,以目標(biāo)點為參考對象,規(guī)定機(jī)器魚魚頭向左偏為負(fù)方向,向右偏為正方向[5];實際角度 E的范圍定義為[-90°,90°],偏差變化率EC的范圍為[-45°,45°],控制量U 的范圍為[-90°,90°]。偏差 E、偏差變化率EC 與控制量U均選擇13級,論域為[-6,6],語言變量均分為7檔,負(fù)大(NB),負(fù)中(NM),負(fù)小(NS),幾乎為零(Z),正小(PS),正中 (PM),正大(PB)[6]。用[1,2,3,4,5,6,7]表示偏差E、偏差變化率EC與控制量U的模糊控制語言變量檔:“1”代表PB,“2”表示 PM,“3”表示 PS,“4”表示 Z,“5”表示 NS,“6”表示 NM,“7”表示 NB 。偏差 E 、偏差變化率EC與控制量U的隸屬度函數(shù)都選擇用三角形函數(shù)。輸入偏差E的隸屬度函數(shù)見圖2。
圖2 輸入偏差E的隸屬度函數(shù)Fig.2 T he membership function of input deviation E
根據(jù)輸入誤差E的隸屬函數(shù)與誤差變化率EC的隸屬函數(shù)的參數(shù),用Max-Min推理法進(jìn)行推理在Matlab中得到的控制量查詢表與模糊控制規(guī)則庫如表1、表2、表3、表4所示。
表1 輸入偏差E的隸屬函數(shù)賦值表Tab.1 The membership function assignment of input deviation E
表2 偏差變化率EC的隸屬函數(shù)賦值表Tab.2 T he membership function assignment of deviation change rate EC
表3 控制量查詢表Tab.3 The control inquires
表4 模糊控制規(guī)則庫Tab.4 T he fuzzy control rules
在機(jī)器魚的控制平臺中定義的二維坐標(biāo)原點位于水池左上角(如圖3所示),通過全局視覺得到水池中的機(jī)器魚與目標(biāo)點的動態(tài)信息。在實驗過程中,以目標(biāo)點為參考對象,規(guī)定機(jī)器魚向左偏為負(fù)方向,向右偏為正方向,機(jī)器魚在游動的速度值選為“12”檔,機(jī)器魚到目標(biāo)點后停止。機(jī)器魚魚頭與目標(biāo)點的程序過程分2種情況。
Step1:若機(jī)器魚在目標(biāo)點的左側(cè)(如圖3所示),通過全局視覺得到在t時刻水池中機(jī)器魚魚頭坐標(biāo)F(xFA,yFA)與目標(biāo)點的坐標(biāo)G(xG A,yG A),目標(biāo)點與x軸的夾角為βi,機(jī)器魚魚頭與目標(biāo)點的夾角為θi,根據(jù)三角函數(shù)關(guān)系得到:
圖3 t時刻水池中的信息Fig.3 The information of time t in the pool
在t+1時刻,在機(jī)器魚的游動過程中,水波干擾使得機(jī)器魚魚頭坐標(biāo)與目標(biāo)點坐標(biāo)發(fā)生變化(如圖4所示),此時機(jī)器魚的魚頭坐標(biāo)為F(xFB,yFB)與目標(biāo)點的坐標(biāo)為G(xGB,yGB),目標(biāo)點與x軸的夾角為βi+1,機(jī)器魚魚頭與目標(biāo)點的夾角為θi+1,根據(jù)三角函數(shù)關(guān)系得到:
若機(jī)器魚在目標(biāo)點的右側(cè),按式(1)、式(2)求解θi與θi+1過程與機(jī)器魚在目標(biāo)點左側(cè)相似。
圖4 t+1時刻水池中的信息Fig.4 The info rmation of time t+1 in the pool
Step2:根據(jù)Step1可求得的輸入的偏差變量θi與偏差變化率αi=θi+1-θi。
Step3:將Step2的數(shù)據(jù)分別進(jìn)行處理,在Matlab中生成模糊控制規(guī)則庫與模糊控制查詢表,將實際機(jī)器魚魚頭坐標(biāo)與目標(biāo)點的夾角γ作為機(jī)器魚的方向。
Step4:將Matlab生成的規(guī)則庫用C語言進(jìn)行描述,并在機(jī)器魚的控制平臺進(jìn)行程序調(diào)試與實驗驗證。
機(jī)器魚在所處的位置以舒適圓[6]為轉(zhuǎn)彎半徑;當(dāng)機(jī)器魚魚頭與目標(biāo)點的夾角小于-90°時,機(jī)器魚以舒適圓為轉(zhuǎn)彎半徑向右轉(zhuǎn),反之,以舒適圓為轉(zhuǎn)彎半徑向左轉(zhuǎn);當(dāng)在全局坐標(biāo)系中得到機(jī)器魚魚頭與目標(biāo)點的夾角為[-90°,90°]時,再按前文機(jī)器魚魚頭與目標(biāo)點的夾角為[-90°,90°]的步驟Step1、Step2、Step3、Step4 進(jìn)行程序設(shè)計。
在機(jī)器魚控制平臺對點對點的模糊控制算法進(jìn)行驗證,實驗的水池為2 m×3 m,在驗證實驗中,用2組實驗進(jìn)行對比:第一組用點對點控制算法記為A組;第2組用點對點的模糊控制算法記為B組。為了讓2組實驗有較強(qiáng)的可比性,在驗證實驗過程中,采用的點到點模糊算法是兩個定點之間的模糊算法,用球門柱固定的紅色球為實驗過程中的終點,起點位置為機(jī)器魚魚頭所在點(如圖5所示),在兩組實驗過程中的初始條件:機(jī)器魚的起點與終點位置相同;機(jī)器魚魚頭坐標(biāo)與目標(biāo)點之間的夾角賦初值為γ=0;為了盡可能的減小水環(huán)境對機(jī)器魚的干擾,選取機(jī)器魚游動的速度為“12”檔;B組算法與A組算法唯一的不同之處是B組算法運用了模糊控制算法。
圖5 機(jī)器魚與球的位置Fig.5 T he position of biomimetic robot-fish and goal
在實驗過程中截取A,B組中機(jī)器魚游動過程的實時圖像分別為A1,A2,A3,A4、B1,B2,B3,B4(如圖6所示),根據(jù)A,B兩組實驗中機(jī)器魚游過的路徑曲線,在A4與B4中分別對A,B組機(jī)器魚游過的路徑曲線進(jìn)行描述;圖6A4,圖6B4中虛直線為機(jī)器魚起點到終點間的連線,曲線是機(jī)器魚游過的路徑,機(jī)器魚從起點游到終點的最優(yōu)路徑曲線是起點到終點的虛直線,但在機(jī)器魚游動過程中,水的干擾使機(jī)器魚魚頭游動的方向偏執(zhí)(即γ≠0),從而使機(jī)器魚點到點的控制效果不好。
圖6 實驗過程圖像Fig.6 The experiment process images
從A,B組中各截取的4張實時圖片可知,與起點到終點間的最優(yōu)路徑曲線相比較,在A組中,圖像A1至圖像A4所示機(jī)器魚游過的路徑曲線與起點到終點間的最優(yōu)路徑曲線相比較波動的幅值較大;在B組中,與起點到終點間的最優(yōu)路徑曲線相比較,圖像B1至圖像B4所示機(jī)器魚游過的路徑曲線與起點到終點間的最優(yōu)路徑曲線波動的幅值較小(相對于組的波動幅值)。由此可見,點到點的模糊控制可以優(yōu)化機(jī)器魚游過的路徑,提高機(jī)器魚點到點的控制效果。
通過點對點的模糊控制算法相結(jié)合設(shè)計模糊控制器,實現(xiàn)了機(jī)器魚的點對點的模糊控制。與機(jī)器魚點對點控制算法相比較,采用點對點的模糊控制算法在優(yōu)化機(jī)器魚游過的路徑上具有有效性與可行性,提高機(jī)器魚點對點的控制效果;給機(jī)器魚的協(xié)作、避障控制研究奠定了基礎(chǔ)。
[1]喻俊志,陳爾奎,王碩,等.仿生機(jī)器魚基本運動控制算法的研究[C]∥北京:中國自動化學(xué)會,2002:152-157.
[2]Lighthill M J.Note on the Swimming of Slender Fish[J].Fluid Mech.,1960,9:305-317.
[3]Barrett D,Grosenasugh M,T riantafyllou M.The Optimal Control of a Flexible Hull Robotic Undersea Vehicle Propelled by an Ocillating Foil[J].P roc.1996 IEEE A UV Sy mp.New York:IEEE Press.,1996:1-9.
[4]張國良,曾靜,柯熙政,等.模糊控制及其 MA TLAB應(yīng)用[M].西安:西安交通大學(xué)出版社,2002.
[5]謝超平,孔峰,陶金.基于模糊控制的仿生機(jī)器魚轉(zhuǎn)向控制研究[J].機(jī)器人技術(shù)與應(yīng)用,2009(4):26-27.
[6]陳爾奎,喻俊志,王碩,等.仿生機(jī)器魚運動方向的模糊控制研究[J].高技術(shù)通訊,2004,14(2):63-67.
[7]Zhang Dandan,Fang Yimin,Xie Guangming,et al.A Coordination Method for Multiple Biomimetic Robotic Fish Boxpushing[C]∥Proceedings of the IEEE International Conference on Mechatronics&Automation Niagara Falls,Canada July,2005:941-945.
[8]北京大學(xué).機(jī)器人水球比賽項目推介書[M].北京:北京大學(xué),2009.