王邢波,葛 勝
(南京郵電大學 自動化學院、人工智能學院,江蘇 南京 210000)
機器人靈巧手作為人類活動肢體的有效延伸,具有完成靈活、精細的抓取操作的能力[1]。靈巧手根據其驅動方式可分為兩種:第一種是電機內置驅動的機器人靈巧手,其特點是驅動器和每個手指內的傳輸機構集成在一起,手指存在大而笨重的缺陷,并且復雜性增加;第二種是肌腱驅動的靈巧手,其特點是驅動系統與手指機構分離,通過肌腱實現長距離傳輸,有效地減小了靈巧手的整體尺寸,提高了靈活性。靈巧手的設計中,連桿機構和肌腱驅動機構是實現驅動機器人手的兩種常用方法。連桿機構可以使手指緊湊,但是限制了平面內的運動[2],而且它的靈活性不如肌腱驅動機制好。此外,肌腱驅動機制可以實現空間運動,這是肌腱驅動靈巧手的另一個優勢。
由于肌腱只能傳遞張力,驅動器的數量必須超過自由度的數量才能實現手指的完全控制。腱驅動靈巧手手指的肌腱采用“n+1”排列[3],這給系統的控制帶來了一些復雜性。這種復雜性主要來自于肌腱和關節位移之間的耦合關系。這要求對肌腱張力進行分配,使得每根腱的張力保持在合適的范圍內[4]。然而考慮到肌腱具有響應延遲性,腱從預緊狀態到拉伸狀態有一個過程,需要對腱進行解耦考慮。文獻[5]表明可以使用幾何模型表示關節角度到肌腱長度的映射關系。文獻[6]分析了末端執行器力傳感器機械剛度對機器人機械手控制的影響,實驗表明使用末端執行器時,使用力傳感器可以實現更靈敏的力控制。文獻[7]提出了一種基于CMAC學習算法的力位混合控制方案。文獻[8]提出了在抓取可變形物體的同時,采用雙指并行抓握的力控制策略。該控制策略使用期望力與實際力之間的誤差來修正手指的位置。
在使用神經網絡來控制機器人操作方面已經進行了相關的研究。文獻[9]提出了一種神經網絡控制器,實現了高度非線性結構的機器人機械臂的跟蹤,并提出了一種在線自適應控制算法。文獻[10]提出了一個基于力跟蹤的阻抗控制器,通過使用神經網絡(NN)技術來補償機器人模型中的不確定部分,從而提高控制器的魯棒性。文獻[11]提出了一種新的神經網絡控制器,用于任務空間中的約束機器人操縱器。文獻[12]為具有未知動力學的約束機器人操縱器設計了最優混合運動和力控制方案。文獻[13]提出了一種基于視覺的神經網絡控制器,用于具有不確定運動學、動力學和約束表面的機器人。文獻[14]提出了一種基于神經網絡的控制器,該控制器實現了Lyapunov意義上的穩定性,以實現末端執行器與環境之間所需的接觸力,并調節笛卡爾空間中機器人末端的位置。基于神經網絡的控制的基本思想是學習未知的非線性動力學并補償動態模型中存在的結構化/非結構化不確定性。許多基于神經網絡的控制方案可用于控制機器人操縱器,通過使用具有穩定跟蹤的算法,以達到更好的控制效果。因此,在環境的不確定情況下,自適應神經網絡控制對于機器人操縱器的控制尤其有效[15]。
文獻[16]提出利用SNN控制器進行控制,雖然能實現快速響應,但它會導致響應超調而無法達到預期效果。為了解決上述問題,本文設計一個基于BP神經網絡的自適應阻抗控制器。針對手指與物體接觸的情況,阻抗控制器根據期望接觸力和實際接觸力的誤差,計算期望的位置。通過腱張力映射到關節力矩的映射矩陣與肌腱長度的變化量相結合,轉換成所需的肌腱張力。本文提出的基于BP神經網絡的自適應阻抗控制器,通過調整BP控制器的參數來提高適應不斷變化的環境位置或剛度的能力。
本文對腱驅動靈巧手的食指進行相關研究,肌腱驅動靈巧手食指部分的結構如圖1所示。這里,q=(q1,q2,q3,q4)表示關節角度,x=(x1,x2,x3,x4)表示肌腱運動的距離。食指有4個關節,分別為基關節、近指關節,中指關節和遠指節。基關節、近指關節和中指關節為自由關節,遠指節通過耦合連桿與中指關節連接,不是自由關節,所以食指具有3個自由度。

圖1 腱驅動手的食指結構
對于n關節的靈巧手,為了方便計算,這里忽略重力對手指的影響,靈巧手的動力學方程可以表示為:
(1)

對于3自由度手指,腱張力到關節力矩的映射矩陣由式(2)給出:
τ=Rf
(2)

這里,f表示4個腱張力組成的列矩陣;R表示腱張力到關節力矩的映射矩陣,rij表示第j根腱在第i個關節上自身包圍的圓形表面的半徑,i=1~3,j=1~4。
根據式(2),式(1)可以改寫為:
(3)
考慮手指與外部環境接觸的情況,本文基于BP神經網絡實現肌腱驅動手指的自適應阻抗控制。控制器的框圖如圖2所示。

圖2 控制系統的組成
阻抗控制建立了接觸力與位置間的動態關系,實現力與運動的相互轉化。阻抗模型可以由下式表示:
(4)
其中,ef=fd-fe,fd是機器人手指期望接觸力,fe是機器人手指的實際接觸力;md、bd、kd分別是期望的慣性、阻尼和剛度矩陣。阻抗模型參數md、bd、kd的選擇對阻抗控制來說至關重要。過度增加md會對系統的影響比較明顯,使得系統過度震蕩。
阻抗控制可以通過拉普拉斯變換轉化到頻域空間,可以得到軌跡校正公式:
(5)
其中,xf=xr-xd。
當手指與環境發生接觸時,常將環境當作線性彈簧,與外部環境的接觸力可以表示為:
fe=ke(qd-q)
(6)
本研究采用的BP神經網絡分別由輸入層、隱含層、輸出層組成,每一層的傳播函數描述如下:
網絡上的輸入層:
(7)
式中,n表示輸入變量的數量,這里有3個輸入變量,即n=3。網絡隱含層的輸入、輸出分別為:
(8)
(9)
此處使用三層隱含層的BP神經網絡,隱含層函數改寫為:
(10)
(11)

隱含層神經元的激活函數取Sigmoid函數:
(12)
網絡輸出層的輸入、輸出為:
(13)
(14)
性能指標函數:
(15)
按照梯度下降法修正網絡的權系數,即E(k)對權系數的負梯度方向搜索調整,并附加一個使搜索快速收斂的全局極小的慣性項:
(16)
其中,ρ為學習速率。
根據反向傳播算法,網絡的輸出層的靈敏度:
δL=(rin(k)-yout(k))°f′(net)
(17)
根據鏈式法則,可得隱含層的靈敏度:
(18)
根據式(17)、(18)得,權值更新公式:
(19)
手指模型的主要參數給定如下:單根手指有4根肌腱和4個關節。4個關節的質量給定如下:
4個關節的長度給定如下:
腱在關節上包圍的圓形表面半徑的數值:
r11=r12=r13=r14=4.2 mm,
r21=r22=r23=r24=4.0 mm,
r33=r34=3.8 mm
BP神經網絡控制器的參數如下所示:
ρ=0.035,e=0.65×10-3
這里,ρ代表學習速率,e代表目標誤差。
阻抗參數如下所示:
在該實驗中,設定期望關節角q=(q1,q2,q3)=(40°,20°,0°)。在8~10 s內,加入外部擾動τd=[-0.6; -0.4;0.2]。各關節角度的仿真結果如圖3~5所示。其中實線表示期望關節角,虛線表示基于BP自適應阻抗控制算法的關節角,點劃線表示自適應SNN控制器控制的關節角。
圖3表示基關節角度變化曲線,基于SNN控制器下的關節角增加了較大的過沖,延遲手指關節達到期望角度的時間,并在期望關節角附近存在波動。然而,自適應BP控制器下的關節角極大地減少了過沖,在4 s 處已經趨向于理想值。

圖3 基關節的期望角度和實際角度
圖4表示近指關節角度變化曲線,基于BP控制器下的關節角響應更加迅速,更快趨于穩定。8~10 s內在外部擾動的作用下,相對于SNN控制器,BP控制器下的關節角更加穩定,關節角波動較小。

圖4 近指關節的期望角度和實際角度
圖5表示中指關節角度變化曲線,基于BP控制器下的關節角,在2 s處產生小幅震蕩,并較快地達到期望值。當手指與物體發生接觸時,在擾動作用下,SNN控制器下的關節角產生一個較大的震蕩,相比較而言,BP控制器下的關節角顯得更加穩定。

圖5 中指關節的期望角度和實際角度
在自適應神經網絡控制器作用下,肌腱張力均大于0。圖6表明,當手指與外部物體接觸時,在擾動的作用下,腱2和腱4的張力出現細小的波動,其他時間趨于平穩。其余兩根腱的張力值則較為穩定。

圖6 靈巧手各肌腱張力變化曲線
本文提出了基于BP神經網絡的自適應阻抗控制器。該控制器可以通過補償阻抗控制器的誤差來校正手指的位置。仿真結果表明,與SNN控制器相比,所提出的基于BP神經網絡的自適應阻抗控制器在手指與外部接觸的情況下,提高了系統的穩定性,收斂速度更快。