鐘 勇 王其鑫 李雨寒
(華南理工大學吳賢銘智能工程學院 廣州 511442)
魚類經(jīng)過數(shù)億年的進化有了卓越的游動性能,人們對魚類的形體結(jié)構(gòu)和運動學展開了大量研究。在自然界中,約 85% 的魚類以身體和(或)尾鰭(Body and/or Caudal Fin,BCF)模式[1]實現(xiàn)推進,這類推進模式具有速度快、能量傳遞效率高等優(yōu)點,是最常見的機器魚設計模式[2-4]。BCF推進模式又可細分為不同的科類模式,如鰻魚(鰻鱺科)就是以波動推進為主,這是一種幾乎全身參與推進的方式。
近年來,越來越多的研究表明,在游動過程中,魚類存在被動機制,其穩(wěn)定游動所需的大部分力量由魚體前部和中部的肌肉組織產(chǎn)生,魚體后部的肌肉組織只負責將力量傳遞到尾巴。這為機器魚的設計提供了思路,可通過適當?shù)馗淖兺七M結(jié)構(gòu)的剛度和魚體的柔順性,有效提高機器魚的游動性能[5-6]。如 Fiazza 等[7]設計了具有順應尾部的機器魚,通過身體固有的頻率振動,可實現(xiàn)柔順尾部的擺動。White 等[8]利用仿生金槍魚研究身體柔軟性的作用,實驗結(jié)果表明,增加身體的柔軟性可以提高機器魚推進的游動速度。Zhong 等[9]設計了一種由主動驅(qū)動的身體和柔順的尾巴相結(jié)合的機器魚,其能夠?qū)崿F(xiàn)高效游動,還設計出了這類機器魚一般的運動學模型[10],并將該方法擴展到不同的游動模式中。這些研究在一定程度上說明,在一定條件下,被動機制(即順從運動)可以提高機器魚的游動性能?;谙嚓P(guān)研究,本文利用欠驅(qū)動和順從運動的原理[9],提出用兩段主動體結(jié)合兩段被動順從體來設計機器鰻魚的方法。
深度強化學習(Deep Reinforcement Learning,DRL)結(jié)合了深度學習在感知方面的強大理解能力,以及強化學習的決策能力,可實現(xiàn)端到端的學習[11-12]。當 DRL 應用在機器人的控制問題上時,機器人由一個神經(jīng)網(wǎng)絡控制,不斷與環(huán)境進行交互得到數(shù)據(jù),并進行訓練,可在不需要復雜模型和控制設計的情況下,直接解決機器人的控制問題[13-14]。目前,已有許多將 DRL 應用在機器人控制方面的研究,如控制機械臂推動物體[15]、控制兩足機器人運動[16]等,Li 等[17]也實現(xiàn)了軟體機器人的運動控制。雖然學習延遲、樣本實效等問題仍有待解決[18],但 DRL 在機器人控制上的一致性和泛化方面有很大的優(yōu)勢。機器魚的運動控制現(xiàn)大多基于模擬魚類運動學方程的方法,如 Lighthill[19]提出了行波方程。但這種近似的運動學方程并不能精確有效地描述所有魚類的運動,此外,其是否最優(yōu)的運動方式依有待驗證。本文提出不設置運動學方程,利用 DRL讓機器鰻魚在仿真環(huán)境中自主學習向前游動的能力,通過數(shù)據(jù)擬合得到機器鰻魚的控制函數(shù),從而實現(xiàn)對機器鰻魚的控制,并通過相關(guān)實驗驗證了該方法的適用性。
Zhong 等[20-21]提出了一種新型的推進機構(gòu)——主動體與被動順從體推進機構(gòu)(the Active and Compliant Propulsion Mechanism,ACPM),用于構(gòu)建機器魚。其中,主動體部分采用拉線機構(gòu)主動彎曲,被動部分是由彈性材料制成的柔性尾部。ACPM 被證明具有魚的波動運動特性,能夠?qū)崿F(xiàn)高速、高效地游動[9]。
利用拉線機構(gòu)可實現(xiàn)單電機對機器魚多關(guān)節(jié)的控制,如圖 1 所示。
圖1 拉線機構(gòu)的設計[9]Fig. 1 Design of the wire-driven mechanism[9]
在拉線機構(gòu)中,舵機的旋轉(zhuǎn)角 與魚體的彎曲角 之間存在對應關(guān)系。假設各關(guān)節(jié)的摩擦力和旋轉(zhuǎn)角度均相同,可得到 與 的映射關(guān)系:
其中,r為轉(zhuǎn)盤的半徑;N為關(guān)節(jié)數(shù);d為兩側(cè)鋼絲繩間的距離。
柔順尾部的設計方法基于數(shù)學模型,詳細的建模方法已經(jīng)在本團隊之前的工作中進行了介紹[9]。在 ACPM[9]的后續(xù)研究中,Zhong 等[10]通過分析流體力矩和身體彎矩,將 ACPM 的建模方式拓展至其他游動模式中,如圖 2 所示。圖 2 展示了4 種典型游動方式的力矩相位分布,紅線La為流體力矩與身體轉(zhuǎn)矩相互平衡的最佳身體長度。由圖 2 可知,鰻魚所屬的鰻鱺科,存在兩段被動順從結(jié)構(gòu),而其余的模式只有一段順從結(jié)構(gòu)?;谠摪l(fā)現(xiàn),本文采用兩段主動拉線機構(gòu)與兩段被動柔順身體相結(jié)合,來進行機器鰻魚的設計,可使機器鰻魚實現(xiàn)更高效地游動。如圖 3 所示,當?shù)谝欢卫€機構(gòu)向一側(cè)彎曲,第二段拉線機構(gòu)向另一側(cè)彎曲時,機器鰻魚整體將呈現(xiàn)一個“S”型運動,這符合真實的鰻魚游動方式。
圖2 不同游動模式在 ACPM 中的優(yōu)化[10]Fig. 2 Optimization of different swimming modes in ACPM[10]
圖3 機器鰻魚模型Fig. 3 Model of robotic eel
本研究開發(fā)的機器鰻魚由兩段 ACPM 構(gòu)成,由于不考慮下潛和上浮的功能,故不設計胸鰭。本文基于真實鰻魚的形態(tài),參考鰻鱺科在 ACPM 優(yōu)化過程中的參數(shù)比例[10],結(jié)合實際需求,如電機的固定位置等,對機器鰻魚進行設計。機器鰻魚總長約 550 mm,橫截面為橢圓,最大寬度為 35 mm,并逐漸減小。魚身整體可分為 6 段,其中順從身體長度為 100 mm,順從尾巴長度為 135 mm。主動體部分采用拉線機構(gòu),利用直徑為 0.8 mm 的鋼絲繩拉動,每一段拉線機構(gòu)有 4 段間距相等的活動關(guān)節(jié),4 段活動關(guān)節(jié)的總長為 80 mm。順從部分由硅膠澆鑄設計好的模具制成,能夠很好地滿足被動柔順的需求。頭部和中間段身體為剛體部分,用于放置舵機和轉(zhuǎn)盤,為防止鋼絲繩被拉動時脫落,還設計了托臂。轉(zhuǎn)盤、關(guān)節(jié)和剛體部分都通過 3D 打印技術(shù)制作而成,機器鰻魚的實驗樣機如圖 4 所示。
圖4 機器鰻魚實驗樣機Fig. 4 Prototype of robotic eel
兩個舵機的型號均為 Hitec 的 HS-5086WP,可提供 3.6 kg·cm 的扭力??刂瓢暹x用 Arduino UNO,通過輸出 PWM 信號來驅(qū)動舵機轉(zhuǎn)動??刂瓢搴碗娫吹入娮釉庵?,通過杜邦線與舵機相連。由于順從部分的質(zhì)量較大,在兩段拉線機構(gòu)部分套上硅膠膜來增大浮力,并利用硅橡膠進行防水處理。此外,為限制機器鰻魚的運動在同一水平面上,本研究還添加了鉛塊,用以調(diào)節(jié)樣機所受到的重力和浮力。
在深度強化學習過程中,借助神經(jīng)網(wǎng)絡,主體可直接從原始輸入數(shù)據(jù)中提取和學習特征知識,并進行輸出。因此,收集的原始數(shù)據(jù)的有效性格外重要。在機器人控制上,數(shù)據(jù)的收集一般有兩種途徑:第一種方式是在現(xiàn)實中直接收集數(shù)據(jù),即將本研究的機器鰻魚在水中連續(xù)測試并進行數(shù)據(jù)收集,但測試的工作量和難度較大,且本研究設計的柔性身體存在被動運動,機器鰻魚在游動過程中,其位置和速度等數(shù)據(jù)變量將更為復雜,很難人工直接在數(shù)據(jù)庫中進行特征提??;第二種方式是在仿真環(huán)境中獲取數(shù)據(jù),利用深度計算方法在感知方面強大的理解能力,有效地提取特征數(shù)據(jù)。就本研究而言,第二種方式有更好的適配性和訓練速度。本文采用 MuJoCo 作為仿真平臺,對機器鰻魚做離散分割建模,并實現(xiàn)了有效控制。在仿真環(huán)境中進行深度計算,提高了鰻魚模型參數(shù)的可調(diào)性,同時還賦予了深度計算過程更好的可視性,使參數(shù)變化對鰻魚游動狀態(tài)的影響更直觀。
MuJoCo 是一個通用物理引擎,能夠快速準確地模擬關(guān)節(jié)類結(jié)構(gòu)與其環(huán)境交互,已被廣泛應用于基于模型的計算、數(shù)據(jù)分析、深度強化學習等相關(guān)領域的研究和實驗[22]。在 MuJoCo 中加入對應的水環(huán)境,將機器鰻魚的運動限制在同一水平面上,以模擬浮力與重力的平衡,同時以室溫 20 ℃ 為標準,設置水環(huán)境的介質(zhì)密度為1 000 kg/m3,介質(zhì)黏度為 0.001 Pa·s,以模擬運動時機器鰻魚受到的阻力和黏滯力。為減少仿真環(huán)境中的無用信息,本實驗對仿真模型進行了一定程度的簡化,如圖 5 所示。機器鰻魚整體長度保持為 550 mm,將兩段放置舵機的分離剛體部件整合成一個整體作為剛體頭部,以實現(xiàn)機器鰻魚身體驅(qū)動的連貫性。除剛體頭部外,驅(qū)動部分連成一體,由主動關(guān)節(jié)和柔性順從體構(gòu)成,不存在多余的剛體僵直,這種一體驅(qū)動的方式與真實的鰻魚更接近。此外,本實驗還簡化了關(guān)節(jié)模型,并保留了兩段 ACPM 中主動關(guān)節(jié)的耦合關(guān)系,這也是本文仿真控制的重點。為提高對柔性順從體的仿真精度,本實驗將兩段順從體分割成離散的分塊,設置為被動關(guān)節(jié),僅通過拉線機構(gòu)的最后一段主動關(guān)節(jié)進行驅(qū)動,能夠更好地模擬軟體材料的柔順特點。為提高模型的準確性,在實驗中測試了順從體的彎曲特性,并通過調(diào)整被動關(guān)節(jié)的特征參數(shù),使仿真模型能夠最大程度地接近真實鰻魚。
圖5 MuJoCo 中的機器鰻魚模型Fig. 5 Robotic eel model in the MuJoCo
強化學習柔性動作-評價(Soft Actor-Critic,SAC)算法是一個 off-policy、actor-critic 算法,與其他強化學習算法不同的是 SAC 將熵引入優(yōu)化策略中,在獲取更高累計獎勵的同時,可將策略的熵最大化[23],熵越大,策略的隨機性越大。策略熵允許高度隨機的動作,在訓練過程中,引入策略熵可豐富并拓展策略的探索過程,加速后續(xù)的學習并且防止策略過早地收斂至無意義的局部最優(yōu),魯棒性較高。SAC 算法的動作空間是連續(xù)的,不只是離散的階段控制數(shù)據(jù),因此,在解決連續(xù)控制問題上具有良好性能,適用于機器人的控制。
在利用深度強化學習進行訓練之前,需要對機器鰻魚的運動設置獎勵函數(shù)、動作空間和狀態(tài)空間。不同的獎勵函數(shù)將導致不同的學習結(jié)果,若獎勵函數(shù)不合適,可能導致最終結(jié)果不能收斂。本研究期望機器鰻魚學習的運動能力是在靜水中能夠?qū)崿F(xiàn)向前直線游動,且所需的輸入轉(zhuǎn)矩較小,即實現(xiàn)高效的直游。本文將訓練機器鰻魚的獎勵函數(shù)R定義為:
動作空間的設置必須與實際的控制輸入數(shù)量相匹配。為了模擬拉線機構(gòu)對活動關(guān)節(jié)的控制,每段拉線機構(gòu)的 4 個關(guān)節(jié)應輸入相同的值,以構(gòu)成一個整體進行控制。本實驗設置的輸入信號范圍為[-10,10],當輸入小于 0 時,活動關(guān)節(jié)向左旋轉(zhuǎn),當輸入大于 0 時,活動關(guān)節(jié)向右旋轉(zhuǎn)。
狀態(tài)空間包括機器鰻魚在仿真環(huán)境中所對應時刻的所有信息,包括多種力學特征,但在實際的控制中,獲得的控制信息較少。本研究主要關(guān)注機器鰻魚的運動姿態(tài),因此,選擇機器鰻魚的位置和速度信息構(gòu)成狀態(tài)空間。
SAC 算法需要對神經(jīng)網(wǎng)絡進行設置,本文的actor 神經(jīng)網(wǎng)絡和 critic 神經(jīng)網(wǎng)絡的網(wǎng)絡架構(gòu)相同,均采用多層感知器神經(jīng)網(wǎng)絡,有 2 層隱藏層,每層有 256 個神經(jīng)元,參數(shù)設置如表 1 所示。
表1 深度強化學習參數(shù)表Table 1 Parameter table of deep reinforcement learning
將機器鰻魚在仿真環(huán)境中訓練 200 個周期,每個周期包括 500 步,每步的控制周期為 10 ms。為提高訓練結(jié)果與真實水環(huán)境的適配性,在每個周期的第一步,本實驗都設置一個隨機影響值,模擬現(xiàn)實中位置和速度的偏差干擾。隨機影響值越大,機器鰻魚適應環(huán)境變化的能力越強,在訓練過程中越難實現(xiàn)收斂;但隨機影響值過小,則難以實現(xiàn)所期望的擾動效果。經(jīng)過測試,本實驗選用的隨機影響值為 0.01 m,即為第一步的狀態(tài)起始值加上 [-0.01,0.01] m 間的一個隨機影響值。
通過調(diào)整獎勵函數(shù)中 、 、 的值,可得到不同的訓練結(jié)果,通過反復實驗,能夠得到較為適配的系數(shù)。通過實驗發(fā)現(xiàn),過小的轉(zhuǎn)矩系數(shù)對鰻魚的控制影響較小,過大的 則會導致鰻魚擺動的幅值減??;過小的偏移系數(shù) 對鰻魚的偏移限制較小,過大的 則會出現(xiàn)鰻魚模型擺動幾次后依靠慣性滑行的現(xiàn)象。為保證神經(jīng)網(wǎng)絡的訓練效果較為穩(wěn)定,本實驗最終將轉(zhuǎn)矩系數(shù) 和偏移系數(shù) 的值分別固定為 10-5和 0.01,然后通過調(diào)整姿態(tài)穩(wěn)定系數(shù) 的值,來訓練不同性能的神經(jīng)網(wǎng)絡。
本實驗將姿態(tài)穩(wěn)定系數(shù) 的值依次設置為0.1、0.3、0.5、0.7,可得到 4 種不同的訓練情況,如圖 6 所示。通過判斷總獎勵值的變化程度,來近似表征訓練過程的收斂性。首先計算總獎勵值的滑動平均值,實現(xiàn)對總獎勵曲線的濾波;然后計算平滑后總獎勵曲線的斜率絕對值;最后將斜率絕對值持續(xù)小于 0.5 的曲線作為訓練過程近似收斂的表征。當訓練參數(shù)不同時,訓練過程的近似收斂情況如表 2 所示。通過對比 4 種不同情況的訓練結(jié)果可知,姿態(tài)穩(wěn)定系數(shù) 的值越大,神經(jīng)網(wǎng)絡在訓練過程中就越難收斂。
表2 不同姿態(tài)穩(wěn)定系數(shù)下的近似收斂步數(shù)Table 2 Approximate convergence steps under different posture stability coefficients
圖6 機器鰻魚在不同的姿態(tài)穩(wěn)定系數(shù)下的訓練過程Fig. 6 Training process of robotic eel under different posture stability coe〓cients
在上述 4 種情況中,將得到控制效果穩(wěn)定的神經(jīng)網(wǎng)絡在仿真環(huán)境中進行控制測試。每步的控制周期設置為 10 ms,在神經(jīng)網(wǎng)絡的控制下,讓機器鰻魚運行 2 000 步,觀察結(jié)果并收集數(shù)據(jù)。由于隨機值的存在,機器鰻魚在游動時的起始姿態(tài)是不同的,且游動步態(tài)需要經(jīng)過一定的時間才能穩(wěn)定,所以本實驗選取第 800 步到第 1 200 步之間的 400 步作為評估區(qū)間。
對于評估區(qū)間內(nèi) 4 種不同姿態(tài)穩(wěn)定系數(shù) ,兩段拉線機構(gòu)的輸出對比圖如圖 7 所示。其中,拉線機構(gòu)的輸出對應動作空間的輸入,取值范圍為[-10,10]。每隔 4 步,記錄一次當前時刻兩段拉線機構(gòu)的輸出,并計算平均值,共記錄 100 組數(shù)據(jù)。實驗結(jié)果表明,隨著姿態(tài)穩(wěn)定系數(shù) 的增大,拉線機構(gòu)的輸出逐漸減小,且輸出的幅值變化趨于穩(wěn)定。此外,通過實驗仿真發(fā)現(xiàn),當拉線機構(gòu)的輸出過低時,機器鰻魚的游動速度會明顯降低。
圖7 4 種不同姿態(tài)穩(wěn)定系數(shù)下兩段拉線機構(gòu)的輸出Fig. 7 Output of two wire-driven mechanisms under four different posture stability coe〓cients
由于本研究的目標是實現(xiàn)機器鰻魚高效地直游,所以在機器鰻魚游動過程中,必須關(guān)注其橫向偏移值。因此,在評估區(qū)間內(nèi),本實驗對 4 種姿態(tài)穩(wěn)定系數(shù) 下機器鰻魚的偏移值進行了對比。讓機器鰻魚在每種姿態(tài)穩(wěn)定系數(shù) 下進行10 次模擬,共得到 40 段評估區(qū)間,計算得到相同姿態(tài)穩(wěn)定系數(shù) 下的偏移值的平均值,如圖 8所示。當姿態(tài)穩(wěn)定系數(shù) 過低時,單次矯正的幅度過大,難以實現(xiàn)偏移量的減?。欢斪藨B(tài)穩(wěn)定系數(shù) 過高時,機器鰻魚的單次矯正的幅度過小,同樣難以實現(xiàn)偏移量的減小,即姿態(tài)穩(wěn)定系數(shù) 過低或過高都會導致游動偏移量過大,難以保證直游。此外,當姿態(tài)穩(wěn)定系數(shù) 過高時,偏移值的取值會更加分散,魯棒性更低。
圖8 4 種不同姿態(tài)穩(wěn)定系數(shù)下的游動偏移量Fig. 8 Swimming offset under four different posture stability coe〓cients
由圖 8 可知,當姿態(tài)穩(wěn)定系數(shù) =0.3 時,在輸出和游動的穩(wěn)定性上,經(jīng)訓練得到的神經(jīng)網(wǎng)絡性能較好,因此,選擇該神經(jīng)網(wǎng)絡的輸出對真實機器鰻魚進行控制。
在姿態(tài)穩(wěn)定系數(shù) =0.3 的神經(jīng)網(wǎng)絡中,本實驗選擇表現(xiàn)較好的一組輸出進行控制擬合。對于評估區(qū)間內(nèi)的兩段拉線機構(gòu),將每個關(guān)節(jié)的轉(zhuǎn)動角度按時間變化進行輸出,發(fā)現(xiàn)關(guān)節(jié)轉(zhuǎn)角的變化近似于三角函數(shù),再通過算法進行曲線擬合,可以得到近似關(guān)節(jié)轉(zhuǎn)角變化曲線,如圖 9 所示。由圖 9 可知,第一段拉線機構(gòu)與第二段拉線機構(gòu)的關(guān)節(jié)轉(zhuǎn)角變化頻率相同,頻率為 2 Hz;第一段拉線機構(gòu)的關(guān)節(jié)轉(zhuǎn)動最大幅值為 6°,第二段拉線機構(gòu)的關(guān)節(jié)轉(zhuǎn)動最大幅值為 12°;且兩者間存在相位差,為 67°。由公式(1)可知舵機轉(zhuǎn)角與關(guān)節(jié)轉(zhuǎn)角的對應關(guān)系,進而得到舵機的控制函數(shù),其中,r=16 mm,N=4,d=22 mm。
圖9 關(guān)節(jié)轉(zhuǎn)角變化曲線Fig. 9 Variation curve of joint angle
在實驗平臺上進行多次實驗,以驗證所得控制函數(shù)對機器鰻魚樣機的有效性。圖 10 為本文設計的實驗平臺,其中,水池為 180 cm×140 cm×60 cm 的長方體,攝像頭安裝在水池的上方,用來拍攝在水中游動的機器鰻魚。
圖10 實驗平臺Fig. 10 Experimental platform
本實驗對機器鰻魚兩段拉線機構(gòu)驅(qū)動的可行性進行測試。根據(jù)控制函數(shù),設置兩段拉線機構(gòu)的頻率為 2 Hz,關(guān)節(jié)轉(zhuǎn)角幅值分別為 6°和12°,相位差為 67°。依次將機器鰻魚設定為:(1)只有第一段拉線機構(gòu)參與驅(qū)動;(2)只有第二段拉線機構(gòu)參與驅(qū)動;(3)兩段拉線機構(gòu)都參與驅(qū)動。如圖 11 所示,圖中的綠線為起始線,以便對機器鰻魚的游動表現(xiàn)進行對比。機器鰻魚在 0 s 時刻出發(fā),當只有一段拉線機構(gòu)驅(qū)動時,機器鰻魚向前游動的速度較慢,并產(chǎn)生了橫向偏移;當兩段拉線機構(gòu)協(xié)調(diào)驅(qū)動時,機器鰻魚向前游動的表現(xiàn)良好。測試結(jié)果表明,兩段拉線機構(gòu)驅(qū)動能夠有效驅(qū)動機器鰻魚向前游動。
圖11 機器鰻魚在拉線機構(gòu)驅(qū)動下的游動表現(xiàn)Fig. 11 Swimming performance of robotic eel driven by the wire-driven mechanism
本文設計了速度測試實驗,以直游速度為標準,將兩段拉線機構(gòu)的頻率設置為 2 Hz,關(guān)節(jié)轉(zhuǎn)角幅值分別保持為 6°和 12°,在不同相位差下,對機器鰻魚的游動表現(xiàn)進行測量,以驗證所得控制函數(shù)的有效性。由于所得控制函數(shù)的相位差為 67°,所以本實驗將相位差分別設置為 40°、50°、60°、70°、80°、90°,固定控制函數(shù)的其他參數(shù)不變,進行對比實驗。為排除游動不穩(wěn)定對速度的影響,本實驗設置了速度測試區(qū),待機器鰻魚穩(wěn)定游入速度測試區(qū)后再進行速度計算。在每一種相位差下,都進行 10 次游動測試,通過計算得到平均速度,作為對照數(shù)據(jù)。表 3 為機器鰻魚在不同相位差下的平均游動速度。由表 3 可知,當相位差為 67°時,機器鰻魚的平均速度最大,這說明控制函數(shù)在直游中具有有效性。
表3 機器鰻魚在不同相位差下的游動速度Table 3 Swimming speed of robotic eel under different phase difference
為拓展機器鰻魚的擺動幅值極限,在仿真環(huán)境中,本實驗將每個活動關(guān)節(jié)單側(cè)的轉(zhuǎn)角上限設置為 35°,即每段拉線機構(gòu)的最大擺動幅值是 140°。但后續(xù)在對機器鰻魚的訓練過程中發(fā)現(xiàn),第一段拉線機構(gòu)的活動關(guān)節(jié)并不會達到最大轉(zhuǎn)角,甚至整體的擺動幅值不會超過 60°。對于機器鰻魚的擺動頻率,其取值在 1.2~3.3 Hz 之間,這與現(xiàn)實中鰻魚游動時的低頻率、頭部擺動的低幅相符合,說明該深度強化學習方法具有適用性。
對于鰻魚類水下機器人,國內(nèi)外常見的設計方式可分為以下幾類:(1)采用多關(guān)節(jié)剛體設計[24-25],在每個關(guān)節(jié)放置驅(qū)動模塊,通過電機等進行驅(qū)動,實現(xiàn)反復擺動,整體結(jié)構(gòu)和控制一般都較為復雜;也有采用新型材料[26]進行驅(qū)動,使用記憶合金和壓電傳感等新型材料實現(xiàn)魚體的變形,從而實現(xiàn)推進,這類機器鰻魚在能量轉(zhuǎn)換方面存在弊端。(2)軟體機器鰻魚[27-28],通過磁感應、氣泵等改變軟體材料的局部特性,使其產(chǎn)生規(guī)律的變化,從而產(chǎn)生游動。與上述研究不同,本文的機器鰻魚則利用魚類游動的被動機制,采用剛性關(guān)節(jié)與柔順身體連接的方式進行設計,包含這兩者的特性,并在控制方面有更大的優(yōu)勢。
本文使用不基于給定運動曲線的方法,對鰻魚直游控制進行研究,得到了近似正弦函數(shù)的控制結(jié)果,在一定程度上驗證了正弦函數(shù)在仿生魚直游控制中的合理性,也證明了本文方法的可行性。利用該方法可以對多種形態(tài)的水下仿生機器人進行游動學習得到優(yōu)化的控制函數(shù);同時,本文方法更適合復雜游動運動的控制,如逃逸、轉(zhuǎn)彎等難以直接用運動學方程描述的運動,未來將會進一步探究復雜運動的學習優(yōu)化。
本文利用魚類游動的被動機制,設計了新型欠驅(qū)動機器鰻魚,并建立了仿真模型,還利用DRL 的方法讓機器鰻魚自主學習游動。在不同姿態(tài)穩(wěn)定系數(shù) 下,本文對神經(jīng)網(wǎng)絡的控制表現(xiàn)進行分析,并利用擬合函數(shù)在試驗樣機上進行控制測試,成功實現(xiàn)了直游。仿真和實驗的結(jié)果證明了本文方法的有效性,這為類似結(jié)構(gòu)的水下機器人的控制提供了思路。未來將對機器鰻魚的模型進行優(yōu)化,并改進控制擬合過程,進一步探究不同的身體參數(shù)以及其他運動參數(shù)對游動性能的影響。