范 銀 金惠良 葉 騫
(上海交通大學機械與動力工程學院 上海 200240)
繩索并聯(lián)機構是一種特殊的并聯(lián)機器人,采用繩索代替?zhèn)鹘y(tǒng)并聯(lián)機器人的剛性連桿,通過改變繩索的長度來控制繩索末端的運動狀態(tài)。相較于傳統(tǒng)并聯(lián)機構,繩索并聯(lián)機構結構簡單、工作尺度大、高負載能力、易于拆裝與重組、易于模塊化[1]。繩索并聯(lián)機構目前已經取得了廣泛的應用,如FAST大型射電望遠鏡[2]、索并聯(lián)攝像機器人[3]、起重機器人[4]等,但是運動過程中繩索張力必須為正[5],這種單向受力的特性使得繩索末端的運動精度控制變得十分復雜。
針對繩索并聯(lián)機構的高精度運動控制問題,由于繩索并聯(lián)機構的自由度冗余特性,目前最常用的方式是基于運動學逆解的繩長控制方法。文獻[6]分析了系統(tǒng)的李雅普諾夫穩(wěn)定性,并基于此提出了PD反饋控制方法。文獻[7]分析了繩索運動過程中的張力分配問題,提出一種非線性前饋控制。文獻[8]針對繩索形變等因素造成末端運動誤差問題,通過高精度視覺定位進行控制閉環(huán)。文獻[9]提出了神經網絡PID控制方法,減小了繩索末端運動誤差。但是多數(shù)文獻把重點都放在了繩索末端位置誤差上面,而忽略了姿態(tài)誤差、運動連續(xù)性等問題,而繩索末端位姿不連續(xù),將造成索力分配不均、繩索震蕩、末端晃動等一系列問題。
本文研究6繩索并聯(lián)機構的高精度位姿控制問題。首先從理論角度推導了末端誤差來源,建立基于神經網絡預測模型的繩長誤差校正機制來減小誤差,但是不能完全消除誤差。誤差的存在將會導致6根繩索在運動過程中隨機出現(xiàn)松弛狀態(tài),對末端造成沖擊使得其運動不連續(xù)。本文提出一種預松弛控制方法進行含誤差的位姿連續(xù)性運動控制。仿真結果表明,神經網絡預測模型能夠補償90%左右的位置誤差,預松弛控制能夠很好地保持其位姿在運動過程中的連續(xù)性。
6繩索并聯(lián)機構的結構示意圖如圖1所示,由外部6邊形排列機架(外框)與內部6棱柱型末端組成,A1~A6為擺動式定滑輪位置,即繩索與外部機架連接點,沿圓周均勻分布;B1~B6為繩索與末端連接點,周向均勻分布,豎直方向上交錯布置。
圖1 6繩索并聯(lián)機構結構示意圖
針對該6繩索并聯(lián)機構,建立以底部6邊形中心為原點的全局坐標系C: O-XYZ,在繩索末端上建立以末端質心為原點的局部坐標系C′:O′-X′Y′Z′,其中A1~A6在全局坐標系中的位置,B1~B6在局部坐標系中的位置均為已知。根據機器人運動學可以得到局部坐標系到全局坐標系的旋轉矩陣為
(1)
式中,α、 β、 γ為繩索末端繞全局坐標系3軸的旋轉角。
(2)
在運動過程中,給定局部坐標系原點坐標CO′(x,y,z),根據圖2示意的矢量閉環(huán)法,可以得到繩索AiBi在全局坐標系C:O-XYZ下的向量表達式li=CAi-CBi,將式(2)代入可得:
(3)
通過式(3)即可得到繩索長度li=|li|(i=1, 2,…,6)。
圖2 繩索1閉合矢量法圖解
求解機構的運動學正解,即已知6根繩索長度li(i=1,2,…,6),求解繩索末端的位姿(x, y, z, α, β, γ)。由運動學逆解可以得到方程組:
(4)
式 (4)為非線性方程組,一般采用數(shù)值迭代的方法去求解,本文采用牛頓迭代法。首先對上述問題進行方程標準化處理,由于涉及到向量的模長,這里采用取模平方進行函數(shù)構造:
i=1,2,…,6 (5)
得到6個構造函數(shù)。將函數(shù)在給定近似初值解X0=(x0, y0, z0, α0, β0, γ0)處進行一階泰勒展開:
(6)
式中, fi0為構造函數(shù)初值,fi0=fi(x0, y0,…,γ0)。將其寫成矩陣形式,并作變量替換,可得:
=J0·ΔX0
(7)
式中,J0為系統(tǒng)在該次迭代中的雅克比矩陣;Δx0為自變量x0負增量,Δx0=x0-x,其余變量類似。
當數(shù)值解充分逼近真實解時候,ΔX與F均逼近0,給定允許誤差ε1(或ε2)作為迭代過程的終止條件,具體迭代求解過程如下。
步驟1已知第n次迭代時,近似解為X[n],將函數(shù)在此處一階泰勒展開,得到構造函數(shù)初值F[n]與對應的雅克比矩陣J[n];
步驟2求解線性方程組F[n]=J[n]·ΔX[n],得到其方程解X[n+1]:
X[n+1]=X[n]-ΔX[n]=X[n]-J[n]+·F[n]
(8)
式中J[n]+為第n次迭代雅克比矩陣的廣義逆,J[n]+=(J[n]TJ[n])-1J[n]T;
步驟3通過X[n+1],將方程組再次一階泰勒展開,得到F[n+1]、J[n+1];
步驟4進行迭代終止條件判斷ΔX[n+1]<ε1(或ΔF[n+1]< ε2),若滿足條件,則終止迭代,得到近似解X=X[n+1];否則,返回步驟1。
繩索并聯(lián)機構的運動誤差,主要包含理論系統(tǒng)誤差與機構系統(tǒng)誤差兩部分。理論系統(tǒng)誤差,主要是指在進行繩索長度計算時,忽略懸鏈線效應,直接看作直線處理的理論計算誤差;機構系統(tǒng)誤差,主要包含機構加工、安裝產生的靜態(tài)誤差,繞線過程中左右擺動、繩索重疊帶來的動態(tài)誤差。
對于理論系統(tǒng)誤差,可以通過式(9)直接修正。對于本文構建的小尺度繩索并聯(lián)系統(tǒng)而言,其誤差小于0.01%,可以忽略。
(9)
式中,THi為繩索i末端受到的水平拉力大小(N);ρ為繩索的線密度(kG/m);hi、 Li為繩索i的豎直跨度與水平跨度。
對于機構系統(tǒng)誤差,對式(3)取微元,可以得到:
δ(li)=(δli)ui+li(δui)
(10)
式中,ui為繩索i的方向向量,ui=li/|li|。
(11)
化簡式(11)可以得到繩索機構系統(tǒng)誤差:
(12)
由式(12)可以看出,在繩索連接點靜態(tài)誤差幾乎不會變的情況下,繩索長度的誤差δli直接決定了繩索末端的位姿誤差,因此繩索長度誤差的補償顯得尤為重要。由于繩索在繞線控制過程中左右擺動與重疊的隨機性,此誤差為非線性誤差,無法通過計算得到,只能通過非線性預測算法進行誤差的預測與補償。
針對非線性系統(tǒng)的預測問題,學術界提出了諸如模糊預測、回歸預測等方法,其中最普適性的是神經網絡預測方法[10]。本文采用長短期記憶(lonG-short term memory,LSTM)神經網絡進行繩索長度的預測。LSTM神經網絡是一種時間序列預測網絡,即已知前(k-1)時刻的所有輸入輸出值,預測第k時刻的輸出值。相較于傳統(tǒng)的循環(huán)神經網絡而言,在處理時間序列過長時候存在很大的優(yōu)勢。
LSTM神經網絡引入了記憶單元與隱藏層狀態(tài)的機制來進行隱藏層之間的信息傳遞,在結構中加了狀態(tài)C來保存長期信息。如圖3所示, LSTM記憶單元內有3個門:輸入門(Input Gate)、遺忘門(ForGet Gate)、輸出門(Output Gate)。其中,輸入門能夠控制新信號的加入;遺忘門能夠忘記無用的信息并保留有用的信息;輸出門能夠控制記憶單元的輸出。這3種門結構在記憶單元中通過矩陣乘法等運算,使無用的信息在迭代過程中衰減。
圖3 LSTM神經網絡記憶單元結構
在第k個時間點,LSTM神經網絡的記憶單元有3個輸入:當前時刻的輸入xk,上一時刻的輸出hk-1,上一時刻的記憶單元狀態(tài)Ck-1。2個輸出:當前時刻的輸出hk,當前時刻的單元狀態(tài)Ck。各個門與網絡輸出如下:
(13)
對于6繩索并聯(lián)機構,同一時刻存在6繩的控制輸出量與實際長度共12變量,為12變量序列預測問題,因此在LSTM基礎上構建多變量預測模型。網絡的激活函數(shù)采用RELU函數(shù),遺忘門、輸入門、輸出門的激活函數(shù)采用SiGmoid函數(shù),權值更新采用自適應矩估計優(yōu)化算法Adam,損失評價函數(shù)采用均方誤差(MSE)函數(shù)。
實際運動中,在kT時刻,通過傳感器得到末端執(zhí)行器的位姿(x,y,z,α,β,γ),通過運動學逆解式(3)即可得到在該時刻的6根繩索長度的實際值l(k),加上該時刻6根繩索長度的理論值x(k),得到12變量序列。給定訓練步長N,在kT時刻,將x(k-N+1)~x(k), l(k-N)~l(k-1)作為訓練輸入,將l(k)作為訓練輸出,依次劃分輸入集與輸出集,進行網絡訓練。
網絡訓練完成之后,給定輸入序列可以得到網絡預測繩長lm(k),在實際情況下,由于噪聲等時變因素的影響,預測值存在預測偏差,利用前次預測偏差進行偏差修正,得到最終預測繩長lp(k)為
lp(k)=lm(k)+ζ(l(k-1)-lm(k-1))
(14)
式中,ζ為偏差修正系數(shù)。
`
圖4 誤差補償?shù)鞒虉D
為了驗證上述給出的LSTM神經網絡預測模型的有效性,在給定連續(xù)軌跡情況下,使用Python對繩索并聯(lián)機構的繩長預測算法進行了仿真。為了體現(xiàn)出機器人結構誤差對末端運動誤差的影響,對繩索連接點Ai、 Bi的誤差進行了預設,如式(15)所示。
(15)
給定空間橢圓目標軌跡式(16),末端勻速運動,運動時間10 s,采樣周期10 ms,共計算得出1 000個離散序列點。LSTM神經網絡由3層組成,中間層單元數(shù)取50,訓練步長取10,得到訓練集的輸入輸出。
(16)
將上述軌跡重新采樣,得到測試集,進行網絡測試,結果表明預測補償算法能夠有效減小繩長誤差。圖5給出了繩索1的長度預測結果,可以看出預測補償繩長曲線逼近真實繩長曲線,其最大誤差由2.32 mm減小到0.24 mm,誤差減小了89.65%。
(a) 長度變化曲線
(b) 誤差變化曲線
繩索并聯(lián)機構存在冗余控制自由度,由于控制量輸出的離散特點,可以將每個控制周期結束時刻的末端狀態(tài)近似為準靜態(tài)過程,也就是說末端在離散點處于受力平衡狀態(tài)。由于繩索長度存在不可忽略的誤差,6根繩索中必然存在由于正向誤差而松弛的繩索,其數(shù)量不大于3,編號不定。
由于繩長誤差的不確定性,帶來繩索張緊松弛狀態(tài)的不確定性,將會造成繩索張力突變,使得繩索末端受到隨機沖擊,產生晃動,影響末位姿的穩(wěn)定性和位姿變化的連續(xù)性??紤]到整個控制過程為離散化控制,重點關注離散點的位姿穩(wěn)定性,對于控制周期內的短暫過程通常不甚關注。這里提出一種預松弛控制方法,在控制周期內指定3繩為控制主輸出繩,其余3繩給定預松弛量,保持松弛狀態(tài),僅在控制周期結束時,補償松弛量,使末端達到預定位姿。此方案通過犧牲控制周期內的位姿準確性換取運動的連續(xù)性,之后通過松弛量補償?shù)玫较嗤碾x散點精度。
預松弛控制方法的目的是為了避免繩索張緊、松弛狀態(tài)切換的隨機性,盡量減少末端在運動過程中的晃動,減少繩索切換狀態(tài)時對末端產生的沖擊。該控制方法在某個控制周期內,將6繩分為3主輸出繩、3從輸出繩。3主輸出繩作為控制周期內驅動繩,3從輸出繩作為控制周期末調整繩。為了決定作為控制主輸出的3繩,將末端運動區(qū)域劃分為如下7個區(qū)域(圖6):區(qū)域0由繩索1/3/5主輸出,區(qū)域1由繩索1/4/5主輸出,以此類推。
圖6 預松弛控制區(qū)域劃分
在第k個周期內,其預松弛控制主要流程如下:
步驟1給定控制目標Xk和X(k+1),通過預松弛分配方法得到主、從繩分配(主繩i1i2i3,從繩j1j2j3),通過運動學逆解得到理論繩索長度的變化量[dli1, dli2, dli3, dli4, dli5, dli6];
步驟2將繩長變化量代入繩長誤差預測模型,得到控制周期內控制量總輸出[δli1, δli2, δli3, δli4, δli5, δli6];
步驟3預松弛階段,0~σt,主繩滯后,從繩預松弛,控制器輸出[0, 0, 0, σlj1, σlj2, σlj3];
步驟4運動執(zhí)行階段,σt ~(T-σt),主繩控制輸出,從繩從動輸出,控制器輸出為[δli1, δli2, δli3, δli4, δli5, δli6];
步驟5控制松弛補償階段,(T-σt)~T,主繩滯后,從繩補償松弛量,控制器輸出為[0, 0, 0, -σlj1, -σlj2, -σlj3]。
在控制過程中,將運動過程看作準靜態(tài)過程,由于主繩一直保持張緊狀態(tài),索力變化連續(xù),繩索末端姿態(tài)變化連續(xù),不存在沖擊等問題。值得一提的是,在控制執(zhí)行階段,從繩由于本身質量很輕,其重力對末端運動的影響可以直接忽略。
為了驗證預松弛控制方法在運動連續(xù)性上的作用,使用Matlab對該方法進行仿真。仿真軌跡采用式(16)的空間橢圓軌跡,等距劃分1 000個離散點數(shù)據。仿真過程中,直接通過運動學逆解得到繩索長度,在繩長上添加[0, 5]范圍內的隨機噪聲,用來模擬實際運動中的繩長誤差。圖7給出了預松弛控制與含誤差6繩控制的結果對比,從圖7(a)可以看出在空間位置誤差方面,兩者沒有明顯的優(yōu)劣之分。但是由于6繩控制過程中,存在繩索隨機松弛的現(xiàn)象,其空間姿態(tài)角、繩索張力波動非常明顯,相對而言,預松弛控制能夠很好地保證空間姿態(tài)角與繩索張力的連續(xù)性。
上文分別建立了6繩索并聯(lián)機構的LSTM神經網絡誤差預測模型、預松弛控制方法。從仿真結果可以看出,神經網絡誤差預測補償模型有效地減小了繩長誤差,保證了末端空間位置的準確性;預松弛控制方法在控制周期內保證了繩索末端姿態(tài)變化的連續(xù)性,繩索拉力的連續(xù)性?;谏鲜?種方法的控制效果,將2種方法結合進行最終軌跡的控制,其主要控制流程如圖8所示。
(a) 空間誤差變化
(b) 末端姿態(tài)角β誤差變化
(c) 繩索3的索力變化
為了驗證繩索并聯(lián)機構基于神經網絡誤差預測模型的預松弛控制方法的有效性,在Matlab中對該控制方法進行了仿真。仿真軌跡采用半徑200 mm的圓形軌跡,高度平面800 mm,誤差預設值如式(15)所示,通過運動學正解牛頓迭代法進行末端位姿求解,分別進行了含誤差6繩控制、誤差補償6繩控制與誤差補償預松弛控制3種方法的仿真。
圖9(a)給出了3種控制方法的軌跡仿真圖,可以看出誤差補償后的預松弛控制軌跡誤差相較于傳統(tǒng)6繩控制誤差而言明顯減小,僅比6誤差補償控制誤差略大一些;圖9(b)給出了3種控制方法的末端姿態(tài)角β的誤差變化曲線,可以看出誤差補償預松弛控制方法能夠很好地保證末端運動位姿的連續(xù)性,具有明顯的優(yōu)勢;圖9(c)給出了末端在z方向上的誤差變化曲線,在運動過程中傳統(tǒng)6繩控制最大誤差為7.4863 mm,誤差補償6繩控制最大誤差為1.0933 mm,誤差補償預松弛控制最大誤差為2.0565 mm,預松弛控制由于主動松弛了3繩,其運動過程中的精度必然會下降一點,但是換來了整個運動過程中的穩(wěn)定性與連續(xù)性,同時在控制周期結束時可以通過松弛量補償?shù)姆绞酱_保離散點的位置精度。
本文根據6繩索并聯(lián)機構的運動學逆解建立了機構末端的誤差模型,建立了末端位姿誤差與繩索長度誤差之間的關系??紤]到繩索長度誤差的非線性特性,構建基于LSTM神經網絡的繩長預測模型,給定人為誤差之后進行模型的訓練與預測,其繩長誤差減小了近90%。
圖8 誤差預測補償預松弛控制流程圖
(a) 誤差補償預松弛控制軌跡仿真
(b) 末端姿態(tài)角β誤差變化
(c) 末端位置z方向誤差變化
針對含繩長誤差時,繩索冗余控制量將導致繩索隨機松弛,出現(xiàn)末端運動位姿不連續(xù)、繩索張力突變,導致末端受到沖擊等問題,提出一種預松弛控制方法,保證控制過程末端位姿與繩索張力的連續(xù)性。給定隨機誤差進行仿真,結果表明該方法能很好地保證末端運動的連續(xù)性。
針對實際控制過程,將繩長誤差預測補償模型與預松弛控制方法相結合進行軌跡運動控制。給定人為誤差之后進行仿真,仿真結果表明,相較于6繩誤差補償控制,誤差補償預松弛控制能夠在適當犧牲精度的情況下得到更加連續(xù)光滑的運動軌跡,驗證了該控制方法的有效性。