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