王邢波,葛 勝
(南京郵電大學(xué) 自動(dòng)化學(xué)院、人工智能學(xué)院,江蘇 南京 210000)
機(jī)器人靈巧手作為人類活動(dòng)肢體的有效延伸,具有完成靈活、精細(xì)的抓取操作的能力[1]。靈巧手根據(jù)其驅(qū)動(dòng)方式可分為兩種:第一種是電機(jī)內(nèi)置驅(qū)動(dòng)的機(jī)器人靈巧手,其特點(diǎn)是驅(qū)動(dòng)器和每個(gè)手指內(nèi)的傳輸機(jī)構(gòu)集成在一起,手指存在大而笨重的缺陷,并且復(fù)雜性增加;第二種是肌腱驅(qū)動(dòng)的靈巧手,其特點(diǎn)是驅(qū)動(dòng)系統(tǒng)與手指機(jī)構(gòu)分離,通過肌腱實(shí)現(xiàn)長距離傳輸,有效地減小了靈巧手的整體尺寸,提高了靈活性。靈巧手的設(shè)計(jì)中,連桿機(jī)構(gòu)和肌腱驅(qū)動(dòng)機(jī)構(gòu)是實(shí)現(xiàn)驅(qū)動(dòng)機(jī)器人手的兩種常用方法。連桿機(jī)構(gòu)可以使手指緊湊,但是限制了平面內(nèi)的運(yùn)動(dòng)[2],而且它的靈活性不如肌腱驅(qū)動(dòng)機(jī)制好。此外,肌腱驅(qū)動(dòng)機(jī)制可以實(shí)現(xiàn)空間運(yùn)動(dòng),這是肌腱驅(qū)動(dòng)靈巧手的另一個(gè)優(yōu)勢。
由于肌腱只能傳遞張力,驅(qū)動(dòng)器的數(shù)量必須超過自由度的數(shù)量才能實(shí)現(xiàn)手指的完全控制。腱驅(qū)動(dòng)靈巧手手指的肌腱采用“n+1”排列[3],這給系統(tǒng)的控制帶來了一些復(fù)雜性。這種復(fù)雜性主要來自于肌腱和關(guān)節(jié)位移之間的耦合關(guān)系。這要求對(duì)肌腱張力進(jìn)行分配,使得每根腱的張力保持在合適的范圍內(nèi)[4]。然而考慮到肌腱具有響應(yīng)延遲性,腱從預(yù)緊狀態(tài)到拉伸狀態(tài)有一個(gè)過程,需要對(duì)腱進(jìn)行解耦考慮。文獻(xiàn)[5]表明可以使用幾何模型表示關(guān)節(jié)角度到肌腱長度的映射關(guān)系。文獻(xiàn)[6]分析了末端執(zhí)行器力傳感器機(jī)械剛度對(duì)機(jī)器人機(jī)械手控制的影響,實(shí)驗(yàn)表明使用末端執(zhí)行器時(shí),使用力傳感器可以實(shí)現(xiàn)更靈敏的力控制。文獻(xiàn)[7]提出了一種基于CMAC學(xué)習(xí)算法的力位混合控制方案。文獻(xiàn)[8]提出了在抓取可變形物體的同時(shí),采用雙指并行抓握的力控制策略。該控制策略使用期望力與實(shí)際力之間的誤差來修正手指的位置。
在使用神經(jīng)網(wǎng)絡(luò)來控制機(jī)器人操作方面已經(jīng)進(jìn)行了相關(guān)的研究。文獻(xiàn)[9]提出了一種神經(jīng)網(wǎng)絡(luò)控制器,實(shí)現(xiàn)了高度非線性結(jié)構(gòu)的機(jī)器人機(jī)械臂的跟蹤,并提出了一種在線自適應(yīng)控制算法。文獻(xiàn)[10]提出了一個(gè)基于力跟蹤的阻抗控制器,通過使用神經(jīng)網(wǎng)絡(luò)(NN)技術(shù)來補(bǔ)償機(jī)器人模型中的不確定部分,從而提高控制器的魯棒性。文獻(xiàn)[11]提出了一種新的神經(jīng)網(wǎng)絡(luò)控制器,用于任務(wù)空間中的約束機(jī)器人操縱器。文獻(xiàn)[12]為具有未知?jiǎng)恿W(xué)的約束機(jī)器人操縱器設(shè)計(jì)了最優(yōu)混合運(yùn)動(dòng)和力控制方案。文獻(xiàn)[13]提出了一種基于視覺的神經(jīng)網(wǎng)絡(luò)控制器,用于具有不確定運(yùn)動(dòng)學(xué)、動(dòng)力學(xué)和約束表面的機(jī)器人。文獻(xiàn)[14]提出了一種基于神經(jīng)網(wǎng)絡(luò)的控制器,該控制器實(shí)現(xiàn)了Lyapunov意義上的穩(wěn)定性,以實(shí)現(xiàn)末端執(zhí)行器與環(huán)境之間所需的接觸力,并調(diào)節(jié)笛卡爾空間中機(jī)器人末端的位置?;谏窠?jīng)網(wǎng)絡(luò)的控制的基本思想是學(xué)習(xí)未知的非線性動(dòng)力學(xué)并補(bǔ)償動(dòng)態(tài)模型中存在的結(jié)構(gòu)化/非結(jié)構(gòu)化不確定性。許多基于神經(jīng)網(wǎng)絡(luò)的控制方案可用于控制機(jī)器人操縱器,通過使用具有穩(wěn)定跟蹤的算法,以達(dá)到更好的控制效果。因此,在環(huán)境的不確定情況下,自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制對(duì)于機(jī)器人操縱器的控制尤其有效[15]。
文獻(xiàn)[16]提出利用SNN控制器進(jìn)行控制,雖然能實(shí)現(xiàn)快速響應(yīng),但它會(huì)導(dǎo)致響應(yīng)超調(diào)而無法達(dá)到預(yù)期效果。為了解決上述問題,本文設(shè)計(jì)一個(gè)基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)阻抗控制器。針對(duì)手指與物體接觸的情況,阻抗控制器根據(jù)期望接觸力和實(shí)際接觸力的誤差,計(jì)算期望的位置。通過腱張力映射到關(guān)節(jié)力矩的映射矩陣與肌腱長度的變化量相結(jié)合,轉(zhuǎn)換成所需的肌腱張力。本文提出的基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)阻抗控制器,通過調(diào)整BP控制器的參數(shù)來提高適應(yīng)不斷變化的環(huán)境位置或剛度的能力。
本文對(duì)腱驅(qū)動(dòng)靈巧手的食指進(jìn)行相關(guān)研究,肌腱驅(qū)動(dòng)靈巧手食指部分的結(jié)構(gòu)如圖1所示。這里,q=(q1,q2,q3,q4)表示關(guān)節(jié)角度,x=(x1,x2,x3,x4)表示肌腱運(yùn)動(dòng)的距離。食指有4個(gè)關(guān)節(jié),分別為基關(guān)節(jié)、近指關(guān)節(jié),中指關(guān)節(jié)和遠(yuǎn)指節(jié)?;P(guān)節(jié)、近指關(guān)節(jié)和中指關(guān)節(jié)為自由關(guān)節(jié),遠(yuǎn)指節(jié)通過耦合連桿與中指關(guān)節(jié)連接,不是自由關(guān)節(jié),所以食指具有3個(gè)自由度。
圖1 腱驅(qū)動(dòng)手的食指結(jié)構(gòu)
對(duì)于n關(guān)節(jié)的靈巧手,為了方便計(jì)算,這里忽略重力對(duì)手指的影響,靈巧手的動(dòng)力學(xué)方程可以表示為:
(1)
對(duì)于3自由度手指,腱張力到關(guān)節(jié)力矩的映射矩陣由式(2)給出:
τ=Rf
(2)
這里,f表示4個(gè)腱張力組成的列矩陣;R表示腱張力到關(guān)節(jié)力矩的映射矩陣,rij表示第j根腱在第i個(gè)關(guān)節(jié)上自身包圍的圓形表面的半徑,i=1~3,j=1~4。
根據(jù)式(2),式(1)可以改寫為:
(3)
考慮手指與外部環(huán)境接觸的情況,本文基于BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)肌腱驅(qū)動(dòng)手指的自適應(yīng)阻抗控制。控制器的框圖如圖2所示。
圖2 控制系統(tǒng)的組成
阻抗控制建立了接觸力與位置間的動(dòng)態(tài)關(guān)系,實(shí)現(xiàn)力與運(yùn)動(dòng)的相互轉(zhuǎn)化。阻抗模型可以由下式表示:
(4)
其中,ef=fd-fe,fd是機(jī)器人手指期望接觸力,fe是機(jī)器人手指的實(shí)際接觸力;md、bd、kd分別是期望的慣性、阻尼和剛度矩陣。阻抗模型參數(shù)md、bd、kd的選擇對(duì)阻抗控制來說至關(guān)重要。過度增加md會(huì)對(duì)系統(tǒng)的影響比較明顯,使得系統(tǒng)過度震蕩。
阻抗控制可以通過拉普拉斯變換轉(zhuǎn)化到頻域空間,可以得到軌跡校正公式:
(5)
其中,xf=xr-xd。
當(dāng)手指與環(huán)境發(fā)生接觸時(shí),常將環(huán)境當(dāng)作線性彈簧,與外部環(huán)境的接觸力可以表示為:
fe=ke(qd-q)
(6)
本研究采用的BP神經(jīng)網(wǎng)絡(luò)分別由輸入層、隱含層、輸出層組成,每一層的傳播函數(shù)描述如下:
網(wǎng)絡(luò)上的輸入層:
(7)
式中,n表示輸入變量的數(shù)量,這里有3個(gè)輸入變量,即n=3。網(wǎng)絡(luò)隱含層的輸入、輸出分別為:
(8)
(9)
此處使用三層隱含層的BP神經(jīng)網(wǎng)絡(luò),隱含層函數(shù)改寫為:
(10)
(11)
隱含層神經(jīng)元的激活函數(shù)取Sigmoid函數(shù):
(12)
網(wǎng)絡(luò)輸出層的輸入、輸出為:
(13)
(14)
性能指標(biāo)函數(shù):
(15)
按照梯度下降法修正網(wǎng)絡(luò)的權(quán)系數(shù),即E(k)對(duì)權(quán)系數(shù)的負(fù)梯度方向搜索調(diào)整,并附加一個(gè)使搜索快速收斂的全局極小的慣性項(xiàng):
(16)
其中,ρ為學(xué)習(xí)速率。
根據(jù)反向傳播算法,網(wǎng)絡(luò)的輸出層的靈敏度:
δL=(rin(k)-yout(k))°f′(net)
(17)
根據(jù)鏈?zhǔn)椒▌t,可得隱含層的靈敏度:
(18)
根據(jù)式(17)、(18)得,權(quán)值更新公式:
(19)
手指模型的主要參數(shù)給定如下:單根手指有4根肌腱和4個(gè)關(guān)節(jié)。4個(gè)關(guān)節(jié)的質(zhì)量給定如下:
4個(gè)關(guān)節(jié)的長度給定如下:
腱在關(guān)節(jié)上包圍的圓形表面半徑的數(shù)值:
r11=r12=r13=r14=4.2 mm,
r21=r22=r23=r24=4.0 mm,
r33=r34=3.8 mm
BP神經(jīng)網(wǎng)絡(luò)控制器的參數(shù)如下所示:
ρ=0.035,e=0.65×10-3
這里,ρ代表學(xué)習(xí)速率,e代表目標(biāo)誤差。
阻抗參數(shù)如下所示:
在該實(shí)驗(yàn)中,設(shè)定期望關(guān)節(jié)角q=(q1,q2,q3)=(40°,20°,0°)。在8~10 s內(nèi),加入外部擾動(dòng)τd=[-0.6; -0.4;0.2]。各關(guān)節(jié)角度的仿真結(jié)果如圖3~5所示。其中實(shí)線表示期望關(guān)節(jié)角,虛線表示基于BP自適應(yīng)阻抗控制算法的關(guān)節(jié)角,點(diǎn)劃線表示自適應(yīng)SNN控制器控制的關(guān)節(jié)角。
圖3表示基關(guān)節(jié)角度變化曲線,基于SNN控制器下的關(guān)節(jié)角增加了較大的過沖,延遲手指關(guān)節(jié)達(dá)到期望角度的時(shí)間,并在期望關(guān)節(jié)角附近存在波動(dòng)。然而,自適應(yīng)BP控制器下的關(guān)節(jié)角極大地減少了過沖,在4 s 處已經(jīng)趨向于理想值。
圖3 基關(guān)節(jié)的期望角度和實(shí)際角度
圖4表示近指關(guān)節(jié)角度變化曲線,基于BP控制器下的關(guān)節(jié)角響應(yīng)更加迅速,更快趨于穩(wěn)定。8~10 s內(nèi)在外部擾動(dòng)的作用下,相對(duì)于SNN控制器,BP控制器下的關(guān)節(jié)角更加穩(wěn)定,關(guān)節(jié)角波動(dòng)較小。
圖4 近指關(guān)節(jié)的期望角度和實(shí)際角度
圖5表示中指關(guān)節(jié)角度變化曲線,基于BP控制器下的關(guān)節(jié)角,在2 s處產(chǎn)生小幅震蕩,并較快地達(dá)到期望值。當(dāng)手指與物體發(fā)生接觸時(shí),在擾動(dòng)作用下,SNN控制器下的關(guān)節(jié)角產(chǎn)生一個(gè)較大的震蕩,相比較而言,BP控制器下的關(guān)節(jié)角顯得更加穩(wěn)定。
圖5 中指關(guān)節(jié)的期望角度和實(shí)際角度
在自適應(yīng)神經(jīng)網(wǎng)絡(luò)控制器作用下,肌腱張力均大于0。圖6表明,當(dāng)手指與外部物體接觸時(shí),在擾動(dòng)的作用下,腱2和腱4的張力出現(xiàn)細(xì)小的波動(dòng),其他時(shí)間趨于平穩(wěn)。其余兩根腱的張力值則較為穩(wěn)定。
圖6 靈巧手各肌腱張力變化曲線
本文提出了基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)阻抗控制器。該控制器可以通過補(bǔ)償阻抗控制器的誤差來校正手指的位置。仿真結(jié)果表明,與SNN控制器相比,所提出的基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)阻抗控制器在手指與外部接觸的情況下,提高了系統(tǒng)的穩(wěn)定性,收斂速度更快。