范賢博俊,陳立家*,李珅,王晨露,王敏,王贊,劉名果
(1.河南大學(xué) 物理與電子學(xué)院,河南 開封 475004;2.開封平煤新型炭材料科技有限公司,河南 開封 475002)
智能機(jī)器人作為一種極具前景的技術(shù),對工業(yè)和制造業(yè)的發(fā)展具有重要意義,受到國內(nèi)外學(xué)者的廣泛關(guān)注[1]。目前,機(jī)械臂在工業(yè)場合的應(yīng)用離不開人工示教,整個過程低效且不能自動執(zhí)行。一旦工作環(huán)境或硬件精度發(fā)生改變,機(jī)械臂的重新部署需要一系列的測量、分析和驗(yàn)證,增加了制造成本。一個有效的解決方法是在機(jī)械臂上集成一個視覺傳感器[2],但視覺機(jī)械臂系統(tǒng)的整體精度不高。
影響視覺機(jī)械臂系統(tǒng)性能的因素有三點(diǎn)。1)視覺傳感器易受外部環(huán)境因素影響,造成工作區(qū)域內(nèi)目標(biāo)物體的定位信息不準(zhǔn)確。文獻(xiàn)[3]中提出使用雙軸傾角儀和激光測距儀,結(jié)合蒙特卡洛方法,分析了雙目相機(jī)在視場內(nèi)的任意位置和姿態(tài)的誤差水平,整體定位精度小于2 mm。文獻(xiàn)[4]中使用改進(jìn)的Canny 邊緣檢測算法對目標(biāo)定位,并通過三角測量法確定目標(biāo)物體的坐標(biāo),實(shí)驗(yàn)結(jié)果表明,這種方法的平均定位誤差為2.4%。2)機(jī)械臂運(yùn)動學(xué)模型誤差。文獻(xiàn)[5]中通過用測量數(shù)據(jù)擬合空間圓以構(gòu)建坐標(biāo)系,提出一種基于D-H(Denavit-Hartenberg)框架的定軸不變原則,通過空間幾何約束關(guān)系提高機(jī)械臂的絕對定位精度。文獻(xiàn)[6]中提出一種基于雙神經(jīng)網(wǎng)絡(luò)近似結(jié)構(gòu)的動態(tài)編程算法以實(shí)現(xiàn)動態(tài)連續(xù)時間非線性系統(tǒng)的自適應(yīng)優(yōu)化控制。文獻(xiàn)[7]中將遺傳算法用于工業(yè)機(jī)械手的參數(shù)識別,避免了傳統(tǒng)運(yùn)動學(xué)雅可比矩陣的逆運(yùn)算,使機(jī)械手末端的精度提高了39.29%。3)手眼標(biāo)定誤差。傳統(tǒng)方法通過三維空間的幾何約束配合校準(zhǔn)算法求解手眼變換矩陣,以提高外參矩陣精度[8-9]。鑒于傳統(tǒng)手眼變換矩陣求解的局限性和不穩(wěn)定性,文獻(xiàn)[10]中采用神經(jīng)網(wǎng)絡(luò)訓(xùn)練的方法對手眼標(biāo)定模型進(jìn)行了補(bǔ)償。還有一種基于混合視覺檢測的機(jī)器人手眼關(guān)系標(biāo)定方法,使用三個激光傳感器配合單目相機(jī)進(jìn)行標(biāo)定[11]。
通常視覺機(jī)械臂需要分開標(biāo)定以上三個模型,再集成到整個系統(tǒng)。文獻(xiàn)[12]的研究表明,視覺機(jī)械臂的相機(jī)和機(jī)械臂是兩個完全獨(dú)立的系統(tǒng),將單個模塊校準(zhǔn)并集成到系統(tǒng)中會引入新的誤差,造成誤差傳播,因此提出一種用于手眼串聯(lián)機(jī)器人系統(tǒng)的全自動校準(zhǔn)方法,同時校準(zhǔn)了機(jī)器人本體、手眼矩陣。該方法只需要一面鏡子和一些由機(jī)械臂末端的相機(jī)拍攝的棋盤圖案實(shí)現(xiàn)自動校準(zhǔn),而不需要借助任何額外的昂貴的測量儀器。文獻(xiàn)[13]中提出了一個手眼標(biāo)定框架,使用標(biāo)準(zhǔn)的棋盤校準(zhǔn)網(wǎng)格,可對由機(jī)器人和可變數(shù)量的三維攝像機(jī)組成的系統(tǒng)進(jìn)行自動手眼標(biāo)定。文獻(xiàn)[14]中提出了一種基于視覺的機(jī)器人自我校準(zhǔn)方法,利用安裝在機(jī)器人末端執(zhí)行器上的視覺傳感器評估機(jī)器人的運(yùn)動參數(shù)誤差。該方法在線結(jié)構(gòu)激光傳感器的結(jié)構(gòu)模型中定義了一個機(jī)器人工具中心點(diǎn)(Tool Center Point,TCP),與機(jī)器人工作空間中固定的參考點(diǎn)對齊?;诠潭c(diǎn)的約束,使用迭代算法確定運(yùn)動學(xué)參數(shù)誤差和TCP 位置誤差。文獻(xiàn)[15]中將系統(tǒng)誤差因素融入Baxter 機(jī)械臂識別算法,采用動態(tài)規(guī)劃算法使運(yùn)動學(xué)參數(shù)在有限時間內(nèi)收斂到真實(shí)值,提高了計算效率;此外,將其擴(kuò)展到視覺機(jī)械臂系統(tǒng),模擬具有一定強(qiáng)度高斯噪聲的相機(jī)定位誤差,驗(yàn)證了辨識算法對各種誤差的適應(yīng)性。
通?,F(xiàn)有的研究需要一個或多個設(shè)備(如標(biāo)定板、激光跟蹤儀或高精度陀螺儀)進(jìn)行模型測量和校準(zhǔn)。然而,系統(tǒng)越復(fù)雜,引入的誤差就越大。本文提出了一種魯棒的視覺機(jī)械臂聯(lián)合建模優(yōu)化方法,可以在不使用額外測量設(shè)備的情況下減少誤差。通過一種具有分層優(yōu)化機(jī)制的自適應(yīng)多精英引導(dǎo)復(fù)合差分進(jìn)化算法(Adaptive Multiple-Elites-guided Composite Differential Evolution algorithm with shift mechanism and Layered Optimization mechanism,AMECoDEs-LO)對系統(tǒng)進(jìn)行整體建模,避免了單獨(dú)標(biāo)定子系統(tǒng)在集成到整個系統(tǒng)時引入額外的誤差,校準(zhǔn)系統(tǒng)自動且高效;同時,系統(tǒng)的收斂速度極快,可以完成視覺機(jī)械臂的快速部署。實(shí)驗(yàn)結(jié)果表明,本文方法可避免系統(tǒng)中其他測量設(shè)備造成的誤差,降低部署成本;與六種主流算法相比,本文算法提高了整個系統(tǒng)的收斂速度和精度。本文方法不僅可以完成正常機(jī)械臂的自動標(biāo)定,還可以對有缺陷部件的機(jī)械臂進(jìn)行有效建模,并將缺陷部件的擾動限制在合理范圍內(nèi);同時,在高斯白噪聲擾動實(shí)驗(yàn)中驗(yàn)證了方法的魯棒性。
視覺機(jī)械臂系統(tǒng)整體優(yōu)化的目的是提高抓取精度,因此需要從抓取流程中分析誤差來源,抓取流程如圖1 所示。
圖1 視覺機(jī)械臂系統(tǒng)抓取流程Fig.1 Grab process of visual manipulator system
由圖1 可知,首先,相機(jī)獲取目標(biāo)物體位置信息,通過手眼轉(zhuǎn)換矩陣獲得對應(yīng)的世界坐標(biāo),然后通過機(jī)械臂運(yùn)動學(xué)獲得關(guān)節(jié)轉(zhuǎn)角,最后控制機(jī)械臂完成抓取。在抓取過程中,誤差存在于系統(tǒng)的各個部分,誤差來源分為兩類:第一類是由外部環(huán)境引起的誤差,包括光照、溫度和濕度;第二類是系統(tǒng)內(nèi)部誤差,包括手眼標(biāo)定誤差、零件加工測量誤差、裝配間隙誤差、伺服電機(jī)磨損等。
視覺機(jī)械臂聯(lián)合建模優(yōu)化方法的硬件安裝方式采用手眼分離式,系統(tǒng)整體優(yōu)化方案如圖2 所示,分為數(shù)據(jù)采集和模型優(yōu)化。
圖2 系統(tǒng)整體優(yōu)化策略Fig.2 Overall system optimization strategy
具體步驟如下:首先使用雙目相機(jī)輔助定位,完成數(shù)據(jù)采集;然后建立聯(lián)合系統(tǒng)校準(zhǔn)模型,模型由伺服電機(jī)補(bǔ)償模型、機(jī)械臂運(yùn)動學(xué)模型和手眼標(biāo)定外參模型組成;最后使用AMECoDEs-LO 以參數(shù)辨識的手段將影響視覺機(jī)械臂抓取的誤差因素補(bǔ)償?shù)侥P蛥?shù)中。具體優(yōu)化方案如下。
步驟1 在機(jī)械臂運(yùn)動空間內(nèi)隨機(jī)生成1 組伺服電機(jī)轉(zhuǎn)角,通過串口控制機(jī)械臂運(yùn)動。
步驟2 機(jī)械臂運(yùn)動完成后延時2 s,等待雙目相機(jī)定位機(jī)械臂夾具中心點(diǎn)位置(即機(jī)械臂末端位置)。
步驟3 重復(fù)執(zhí)行N次步驟1、2(視精度要求而定),最終保存N組伺服電機(jī)轉(zhuǎn)角和對應(yīng)的機(jī)械臂末端相機(jī)坐標(biāo)作為參數(shù)辨識系統(tǒng)的輸入。
步驟4 建立機(jī)械臂伺服電機(jī)補(bǔ)償、運(yùn)動學(xué)、手眼標(biāo)定外參模型作為辨識系統(tǒng)的求解目標(biāo),配置優(yōu)化算法參數(shù)。
步驟5 使用AMECoDEs-LO 對模型參數(shù)進(jìn)行迭代更新,滿足精度收斂條件或到達(dá)給定迭代次數(shù)時,終止算法,完成聯(lián)合系統(tǒng)模型的求解。
通過運(yùn)動學(xué)模型可以建立機(jī)械臂各連桿之間的關(guān)系,D-H 法是一種常用的建模方法。如圖3 所示,相鄰連桿由伺服電機(jī)相連,每個伺服電機(jī)的位置可以建立一個坐標(biāo)系。
圖3 關(guān)節(jié)坐標(biāo)系Fig.3 Joint coordinate system
相鄰坐標(biāo)系的轉(zhuǎn)換通過包含4 種參數(shù)的齊次變換矩陣實(shí)現(xiàn),相鄰連桿之間的轉(zhuǎn)換關(guān)系為:
最終關(guān)系矩陣的形式為:
其中:第1~3 列表示末端坐標(biāo)系的姿態(tài);第4 列表示機(jī)械臂末端在基座坐標(biāo)系中的位置;最后一行是為了滿足齊次變換矩陣的需要而構(gòu)建的。機(jī)械臂的正向運(yùn)動學(xué)可以表示為:
根據(jù)式(5),當(dāng)給定一組關(guān)節(jié)旋轉(zhuǎn)角度時,能相應(yīng)地得到機(jī)械臂末端的位置。
相機(jī)和世界坐標(biāo)系之間的轉(zhuǎn)換通常是多次拍攝同一標(biāo)定板,然后求解AX=XB以確定手眼轉(zhuǎn)換矩陣X。在本文方法的系統(tǒng)模型中,無需使用標(biāo)定板,而是通過參數(shù)化旋轉(zhuǎn)和平移矩陣建立空間約束。
兩個坐標(biāo)系之間的旋轉(zhuǎn)關(guān)系可以表示為:
其中:λ、β、γ分別是世界坐標(biāo)系中的點(diǎn)Xworld(Px,Py,Pz)圍繞x、y和z軸旋轉(zhuǎn)的角度。
兩個坐標(biāo)系之間的平移關(guān)系表示為:
其中:dx、dy、dz分別代表世界坐標(biāo)系原點(diǎn)沿x、y、z軸平移的距離。對于同一個點(diǎn),世界坐標(biāo)系中的點(diǎn)Xworld(Px,Py,Pz)和相機(jī)坐標(biāo)系中的點(diǎn)Xcam(Cx,Cy,Cz)之間的對應(yīng)關(guān)系如下:
伺服電機(jī)在機(jī)械臂高負(fù)載運(yùn)轉(zhuǎn)的過程中容易造成精度下降,進(jìn)而導(dǎo)致伺服電機(jī)的名義轉(zhuǎn)角和實(shí)際轉(zhuǎn)角存在差異。一般情況下,可以通過曲線擬合理論進(jìn)行伺服電機(jī)的前饋補(bǔ)償,以降低兩者之間的誤差。因此需要在求解機(jī)械臂運(yùn)動學(xué)模型前獲得伺服電機(jī)的實(shí)際旋轉(zhuǎn)角度;然而,額外的測量設(shè)備(陀螺儀等)容易向系統(tǒng)中引入測量誤差。為此,設(shè)計了伺服電機(jī)軟補(bǔ)償模型。假設(shè)控制第i個伺服電機(jī)轉(zhuǎn)動到實(shí)際到達(dá)的角度為為了減小兩者的差值,對第i個伺服電機(jī)建立一個參數(shù)化的補(bǔ)償函數(shù)ψi,優(yōu)化ψi使是一個包含m0、m1、m2的高斯函數(shù),如式(9)所示:
綜合式(5)、(8)、(9),系統(tǒng)的輸入和輸出可以表示為:
具有轉(zhuǎn)移機(jī)制的多精英引導(dǎo)復(fù)合差分進(jìn)化算法(Adaptive Multiple-Elites-guided Composite Differential Evolution algorithm with a shift mechanism,AMECoDEs)[16]是在差分進(jìn)化(Differential Evolution,DE)算法的基礎(chǔ)上采用自適應(yīng)參數(shù)調(diào)整方法實(shí)現(xiàn)的。在AMECoDEs 中,每個個體在兩個精英個體的引導(dǎo)下,產(chǎn)生兩種候選方案,有效地增加了個體被局部最優(yōu)解誤導(dǎo)的容錯率。同時,為了平衡算法的收斂性和多樣性,引入了轉(zhuǎn)移機(jī)制(Shift Mechanism,SM),有效地防止算法早期收斂和停滯。
主成分分析(Principal Components Analysis,PCA)技術(shù)采用降維的思想,可以將多指標(biāo)問題轉(zhuǎn)化為少數(shù)綜合指標(biāo)的優(yōu)化問題。在高維優(yōu)化問題中,每一個維度分量都包含著一種數(shù)據(jù)信息,經(jīng)PCA 技術(shù)處理后,數(shù)據(jù)信息損失較少的成分稱為主成分。主成分正交、不相關(guān),由原始成分衍生。通常使用貢獻(xiàn)度衡量主成分保留數(shù)據(jù)集所含信息的程度。主成分的貢獻(xiàn)度降序排列,主成分貢獻(xiàn)度的總和稱為累積貢獻(xiàn)度。當(dāng)累積貢獻(xiàn)度大于設(shè)定的閾值時,這些計算出的貢獻(xiàn)度相對應(yīng)的主成分可以近似代表整個數(shù)據(jù)集的信息量。
進(jìn)化算法本質(zhì)上是一類隨機(jī)搜索的算法,它在探索解空間的過程中具有一定的盲目性[17]。為了保證種群多樣性,提高算法的搜索效率和收斂精度,本文采用PCA 方法挖掘種群中具有代表性的隱藏信息,在分層優(yōu)化機(jī)制的指導(dǎo)下,挖掘出更具代表性的維度分量進(jìn)行動態(tài)優(yōu)化。本文定義支配度概念,表示每個原始分量所蘊(yùn)含數(shù)據(jù)信息的重要程度。種群在解空間中的分布顯示了當(dāng)前最優(yōu)解的搜索情況。種群的歷史數(shù)據(jù)包含解空間的特征信息。支配度較大的維度分量代表了更優(yōu)的搜索方向和更快的收斂趨勢。
AMECoDEs-LO 中分層優(yōu)化策略的設(shè)計旨在動態(tài)地優(yōu)化支配度較大的維度分量。支配度較大的維度分量構(gòu)成的集合稱為支配集,其他維度分量構(gòu)成非支配集。
假設(shè)種群中的每個個體都包含D個分量,用向量N表示,樣本數(shù)據(jù)集由100 代個體組成。對所有個體的D維分量使用PCA 方法,得到主成分Yi和特征值Ei。主成分的貢獻(xiàn)度Ci和相應(yīng)的特征向量ui可分別表示為式(11)、(12):
其中:uji表示第j個維度分量在第i個主成分中的權(quán)重。主成分與各維度分量之間的關(guān)系可以表示為:
貢獻(xiàn)度Ci表示Yi承載的數(shù)據(jù)信息量,將貢獻(xiàn)度降序排列,并計算出累積貢獻(xiàn)度:
根據(jù)式(14)選擇m個主成分,篩選條件為Zi>Tc,0<Tc<1。這些主成分可以代表當(dāng)前樣本數(shù)據(jù)集Tc倍以上的信息。為了方便地篩選出最重要的維度分量,將主成分的特征向量和貢獻(xiàn)度重新組合成一個矩陣V:
其中:Ci>Ci+1(i=1,2,…,m),每個維度分量對主成分的貢獻(xiàn)不同。維度分量的支配度gi計算如下:
其中:支配度gi代表第i個維度分量對整個數(shù)據(jù)集的貢獻(xiàn),支配度大于Td,0 <Td<1 的所有維度分量構(gòu)成支配集P,其他維度分量構(gòu)成非支配集Q。
分層優(yōu)化機(jī)制采用降維處理的思想,在全局收斂的過程中,將所有的維度分量動態(tài)地劃分為P和Q兩個集合。P和Q中的所有維度分量分布在個體編碼中。個體以實(shí)數(shù)編碼,在本文的聯(lián)合系統(tǒng)模型中包含伺服電機(jī)補(bǔ)償參數(shù)、D-H 參數(shù)和手眼標(biāo)定外參三個部分。P和Q各分量在個體中分布的示意圖如圖4 所示。
圖4 AMECoDEs-LO個體編碼結(jié)構(gòu)Fig.4 Individual coding structure of AMECoDEs-LO
前100 代種群中的個體組成數(shù)據(jù)集,AMECoDEs-LO 優(yōu)先優(yōu)化支配集中的成分。定義三個狀態(tài)Ss、So、Sn分別對應(yīng)支配集篩選、優(yōu)化和回歸到正常的AMECoDEs 優(yōu)化。Ss狀態(tài)下采用PCA 進(jìn)行P集合中成分的篩選;So狀態(tài)下對P集合中的成分進(jìn)行動態(tài)優(yōu)化,優(yōu)化過程中Q集合中的成分固定不變;Sn狀態(tài)下,開放Q中所有成分,進(jìn)行整體優(yōu)化。算法的優(yōu)化過程就是這三種狀態(tài)之間的切換過程。Ss和So在合適的條件下不斷切換,同時,數(shù)據(jù)集不斷被更新,支配集和非支配集隨著優(yōu)化過程不斷變化。當(dāng)達(dá)到穩(wěn)定狀態(tài)時,優(yōu)化狀態(tài)將被更新為Sn,釋放Q中的所有成分,回到正常的AMECoDEs 優(yōu)化過程。定義趨平率Δf和切換率Δs控制三種狀態(tài)的切換時機(jī),其中:Δf代表當(dāng)前和上一代種群中最優(yōu)個體的適應(yīng)度函數(shù)值的比值;Δs指20 代內(nèi)Ss和So狀態(tài)之間的切換頻率。
圖5 顯示了三種優(yōu)化狀態(tài)之間切換的觸發(fā)條件。在So狀態(tài)下,如果Δf≤ε,則意味著支配集中的成分有被優(yōu)化的空間,狀態(tài)保持不變。Δf≥ε,當(dāng)Δs>η時,這意味著Ss和So兩種狀態(tài)頻繁切換,當(dāng)前的優(yōu)化過程已經(jīng)得到了最終結(jié)果,狀態(tài)更新為Sn;當(dāng)Δs≤η時,意味著優(yōu)化的潛力仍然存在,狀態(tài)更新為Ss。一般來說,當(dāng)有優(yōu)化潛力時,狀態(tài)Ss和So有序地切換。當(dāng)優(yōu)化過程陷入瓶頸時,狀態(tài)被更新為Sn,開放所有參數(shù),回到AMECoDEs 的算法優(yōu)化機(jī)制。
圖5 三種優(yōu)化狀態(tài)的切換Fig.5 Switching between three optimization states
分層優(yōu)化機(jī)制對算法收斂的加速作用體現(xiàn)在P中的成分很大程度上代表了當(dāng)前數(shù)據(jù)集中的信息。換句話說,它可以盡可能地迎合解空間中適應(yīng)度函數(shù)值的下降趨勢。
適應(yīng)度函數(shù)(Fitness Function,F(xiàn)F)用于評價種群中個體的優(yōu)劣程度。在本文參數(shù)辨識系統(tǒng)中,AMECoDEs-LO 種群設(shè)置為100,每個種群包含100 個個體,每個個體代表一種候選模型方案。適應(yīng)度函數(shù)的設(shè)計如下:
其中:適應(yīng)度函數(shù)表示兩點(diǎn)之間的歐氏距離;(Cx,Cy,Cz)是采集的機(jī)械臂末端相機(jī)坐標(biāo);(X,Y,Z)是采集的機(jī)械臂伺服電機(jī)轉(zhuǎn)角在當(dāng)前模型下通過式(10)計算的坐標(biāo)。Fitness越小,則機(jī)械臂末端實(shí)際坐標(biāo)與模型預(yù)測坐標(biāo)的誤差越小,系統(tǒng)精度越高。算法的更新迭代使Fitness不斷降低。
AMECoDEs-LO 的流程見圖6,具體步驟如下。
圖6 AMECoDEs-LO流程Fig.6 Flowchart of AMECoDEs-LO
步驟1 初始化種群大小NP、包含所有維度成分的非支配集Q,令支配集P為空集,設(shè)置趨平率閾值ε和切換率閾值η,分層優(yōu)化機(jī)制狀態(tài)Ss。
步驟2當(dāng)Fitness滿足收斂條件或達(dá)到給定的迭代次數(shù)時,輸出全局最優(yōu)解,算法終止;否則,立即執(zhí)行AMECoDEs的多精英引導(dǎo)的突變策略和SM 機(jī)制。
步驟3 判斷三種優(yōu)化狀態(tài)Ss,So和Sn,對應(yīng)跳轉(zhuǎn)步驟4、步驟5 和步驟6。
步驟4 使用PCA 方法計算整個數(shù)據(jù)集中每個維度參數(shù)的支配度。如果P中的參數(shù)數(shù)量少于總參數(shù)數(shù)量,則將Q中支配度高于閾值的參數(shù)從Q中轉(zhuǎn)移到P中,同時狀態(tài)更新為So并啟動SM 機(jī)制;在其他情況下,直接啟動SM 機(jī)制。跳轉(zhuǎn)步驟2。
步驟5 固定Q中所有參數(shù)的值,進(jìn)入SM 機(jī)制,優(yōu)化P中的成分,跳轉(zhuǎn)步驟2。
步驟6 釋放P和Q中的所有參數(shù),進(jìn)入SM 機(jī)制。跳轉(zhuǎn)步驟2。
AMECoDEs-LO 種群數(shù)量為NP,參數(shù)空間維度為D。在優(yōu)化的過程中對種群中排名靠前的個體排序,該過程時間復(fù)雜度為O((NP) · log(NP));判斷優(yōu)化狀態(tài),這一過程時間復(fù)雜度遠(yuǎn)小于原算法轉(zhuǎn)移機(jī)制時間復(fù)雜度O(NP·D);對種群中所有維度進(jìn)行主成分分析并排序,時間復(fù)雜度為O(D2);當(dāng)分層優(yōu)化機(jī)制陷入瓶頸時,開放所有參數(shù)進(jìn)行整體優(yōu)化操作的時 間復(fù)雜 度小于O(NP·D)。綜上所 述,當(dāng)log(NP) ?D時,算法每一代計算的時間復(fù)雜度為O(NP·D)。
機(jī)械臂的主體由連桿和伺服電機(jī)組成,工業(yè)機(jī)械臂不宜拆裝。為探究本文方法,在3D 打印機(jī)械臂上進(jìn)行實(shí)驗(yàn),視覺機(jī)械臂系統(tǒng)由intel D435 雙目相機(jī)、相機(jī)支架和機(jī)械臂組成。
數(shù)據(jù)采集階段,在機(jī)械臂伺服電機(jī)轉(zhuǎn)動有效范圍內(nèi)隨機(jī)生成100 組角度。依次控制機(jī)械臂運(yùn)動,運(yùn)動完成后系統(tǒng)休眠1 s,等待雙目相機(jī)采集機(jī)械臂末端位置。采集過程中相機(jī)分辨率設(shè)置為420 像素×240 像素,機(jī)械臂運(yùn)動空間內(nèi)無障礙物,得到100 組(角度,位置)樣本數(shù)據(jù),用于校準(zhǔn)系統(tǒng)模型。由于雙目相機(jī)產(chǎn)生的深度信息直接影響目標(biāo)物體的相機(jī)坐標(biāo),本文使用Intel 官方標(biāo)定方法對雙目相機(jī)進(jìn)行內(nèi)參標(biāo)定,2 m 內(nèi)定位誤差在2%以內(nèi)[18]。數(shù)據(jù)采集階段使用的深度范圍是400~600 mm,定位精度約為2.5 mm。
聯(lián)合建模優(yōu)化方法通過同時調(diào)整系統(tǒng)的模型參數(shù)以提高系統(tǒng)整體精度。AMECoDEs-LO 為優(yōu)化不同構(gòu)型的機(jī)器人系統(tǒng)參數(shù)提供了可能性,可變的個體編碼結(jié)構(gòu)可以方便地表示各種系統(tǒng)參數(shù)。本文在正常機(jī)械臂和受損機(jī)械臂兩種硬件配置下探究不同個體配置對系統(tǒng)精度的影響。5 種個體配置如表1 所示。其中:ψ表示伺服電機(jī)補(bǔ)償模型的參數(shù)矩陣;T表示手眼標(biāo)定外參矩陣;Φ表示D-H 模型參數(shù)矩陣。對于T的前饋測量,通過連續(xù)拍攝機(jī)械臂手持標(biāo)定板的照片,使用張正友標(biāo)定法[19]確定。ψ的前饋測量通過高精度陀螺儀采集伺服電機(jī)轉(zhuǎn)動角度,使用擬合曲線的方法實(shí)現(xiàn)。算法在運(yùn)行過程中對不同個體配置的參數(shù)進(jìn)行迭代優(yōu)化,產(chǎn)生的Fitness值即為整個視覺機(jī)械臂系統(tǒng)的精度。
表1 5種個體配置Tab.1 Five individual configurations
為了有效地評估不同個體配置對系統(tǒng)精度的影響,優(yōu)化算法的參數(shù)設(shè)置為:趨平率0.90、切換率0.5、種群規(guī)模100,收斂停滯的條件為達(dá)到給定的迭代次數(shù)或Fitness在1 000 代保持不變。評價算法收斂性能的三個指標(biāo)為:1)算法收斂時的迭代次數(shù);2)算法收斂所用時間;3)系統(tǒng)Fitness。為公平起見,同種硬件配置的輸入保持一致。
4.1.1 正常機(jī)械臂
一般情況下,傳統(tǒng)校準(zhǔn)方法不需要對伺服電機(jī)系統(tǒng)進(jìn)行補(bǔ)償。因此,為了驗(yàn)證本文方法,選用Type 0、Type 3、Type 4這3 種個體配置。
傳統(tǒng)方法的個體編碼結(jié)構(gòu)是Type 0。首先,需要前饋測量手眼外參矩陣T,將其預(yù)先加入校準(zhǔn)算法,通過校準(zhǔn)參數(shù)矩陣Φ提高整個視覺機(jī)械臂系統(tǒng)的精度。Type 3、Type 4 沒有額外的測量儀器及人工參與,不單獨(dú)處理各子系統(tǒng),不同的是Type 4 配置額外增添了參數(shù)矩陣ψ的校準(zhǔn)。
圖7 顯示了3 種個體配置下系統(tǒng)的收斂情況。從算法收斂結(jié)果可以看出,相較于Type 0,Type 3 和Type 4的Fitness分別減小了0.37 mm、0.36 mm,兩者都有效地降低了前饋校準(zhǔn)手段產(chǎn)生的誤差影響。
圖7 正常機(jī)械臂環(huán)境下的3種個體配置的收斂情況Fig.7 Convergence of three individual configurations under normal manipulator environment
相較于Type 3,Type 4 增加了伺服電機(jī)補(bǔ)償模型,對算法收斂時間造成的影響如表2 所示。結(jié)果表明,隨著待定參數(shù)的增加,系統(tǒng)的收斂時間變長,然而對于視覺機(jī)械臂系統(tǒng)校準(zhǔn)而言,系統(tǒng)平均精度這一評價指標(biāo)的重要性遠(yuǎn)大于收斂速度,兩種配置下的系統(tǒng)整體精度僅相差約0.01 mm。
表2 正常機(jī)械臂環(huán)境下的個體配置情況Tab.2 Individual configuration under normal manipulator environment
4.1.2 受損機(jī)械臂
為全面驗(yàn)證本文方法的有效性,在機(jī)械臂存在連桿受損和伺服電機(jī)受損的情況下進(jìn)行實(shí)驗(yàn)。
Type 1 是傳統(tǒng)標(biāo)定方法,即分別標(biāo)定各子系統(tǒng)再整合至整個系統(tǒng),系統(tǒng)中有兩種測量手段的參與。首先對ψ和T進(jìn)行前饋測量;其次,將以上兩種前饋?zhàn)酉到y(tǒng)參數(shù)預(yù)先加入整個標(biāo)定算法,通過校準(zhǔn)參數(shù)矩陣Φ提高系統(tǒng)精度。與Type 1不同,Type 2 只有參數(shù)矩陣ψ的前饋測量,沒有標(biāo)定板的參與。將參數(shù)矩陣ψ預(yù)先加入標(biāo)定算法,算法對Φ和T同時進(jìn)行校準(zhǔn)。Type 3、Type 4 兩種個體配置同正常機(jī)械臂校準(zhǔn)實(shí)驗(yàn)相同,不作額外的處理。
圖8 顯示了4 種不同個體配置的收斂情況。Type 1、Type 2、Type 4 這3 種配置的最終收斂情況表明人工干預(yù)的程度越低,F(xiàn)itness越小。對于存在伺服電機(jī)受損情況的機(jī)械臂,增添伺服電機(jī)補(bǔ)償模塊的Type 4 系統(tǒng)相較于Type 3,F(xiàn)itness明顯降低,由1.459 mm 降低至0.755 mm;相較于傳統(tǒng)方法(Type 0),F(xiàn)itness降低了60%。
圖8 受損機(jī)械臂環(huán)境下的4種個體配置的收斂情況Fig.8 Convergence of four individual configurations under broken manipulator environment
在大多數(shù)情況下,算法在停止收斂之前均可達(dá)到一個穩(wěn)定的狀態(tài)(收斂),當(dāng)使用Type 4 系統(tǒng)進(jìn)行實(shí)驗(yàn)時,1 100 代之后誤差已經(jīng)降低至1 mm 以下。算法的運(yùn)行時長如表3 所示,1 100 代之后,算法對待優(yōu)化參數(shù)進(jìn)行持續(xù)微調(diào),直到7 835 代完成收斂,歷時149 s。
表3 受損機(jī)械臂環(huán)境下的個體配置情況Tab.3 Individual configurations under broken manipulator environment
AMECoDEs-LO 中固定的超參數(shù)包括種群規(guī)模、趨平率閾值、切換率閾值。本節(jié)對不同超參數(shù)進(jìn)行測試,并確定最合適的參數(shù)取值。參數(shù)辨識系統(tǒng)的數(shù)據(jù)輸入為受損的視覺機(jī)械臂系統(tǒng)采集的數(shù)據(jù)。
4.2.1 趨平率閾值和切換率閾值
趨平率閾值和切換率閾值的不同組合控制算法進(jìn)入PCA 優(yōu)化機(jī)制的時機(jī)。以Type 4 作為測試對象,種群包含100 個個體,測試了不同趨平率閾值和切換率閾值組合對算法收斂情況的影響。
表4 結(jié)果顯示,趨平率閾值的選擇至關(guān)重要,必須保持在0.85 以上才能獲得較好的結(jié)果。趨平率的閾值越高,算法收斂的過程中進(jìn)入PCA 的機(jī)會越少,收斂速度越慢;當(dāng)趨平率閾值小于0.85 時,優(yōu)化算法容易陷入局部最優(yōu)解。趨平率閾值在合理范圍內(nèi)時,切換率閾值適當(dāng)增大可以提高收斂速度。如果對算法運(yùn)行的時間要求較低,建議趨平率閾值為0.95,切換率閾值為0.50。
表4 兩種參數(shù)的不同組合情況Tab.4 Different combinations of two parameters
4.2.2 不同種群規(guī)模的比較
種群規(guī)模NP作為關(guān)鍵參數(shù)之一,指種群中個體的數(shù)量,主要反映種群信息量的大小。NP越大,種群包含的信息越豐富,但是帶來的后果就是計算量變大,不利于求解;反之,種群多樣性受到限制,不利于算法求得全局最優(yōu)解,甚至?xí)?dǎo)致搜索停滯,NP應(yīng)該取一個合適的值。
實(shí)驗(yàn)針對視覺機(jī)械臂聯(lián)合建模優(yōu)化問題,對不同種群下算法的性能進(jìn)行了測試。測試結(jié)果如圖9 所示,圖中的收斂曲線顯示了當(dāng)種群規(guī)模分別設(shè)置為50、75、100、125、150 時算法的收斂情況。結(jié)果表明,當(dāng)NP=150 時,AMECoDEs-LO的Fitness值最低,意味著算法的性能接近最優(yōu)。
圖9 不同種群規(guī)模下適應(yīng)度的比較Fig.9 Comparison of fitness in populations with different scales
4.2.3 七種算法系統(tǒng)收斂對比和驗(yàn)證
將AMECoDEs-LO 與遺傳算法(Genetic Algorithm,GA)、粒子群算法(Particle Swarm Optimization,PSO)、差分(Differential Evolution,DE)算法、種群集成差分算法IMPEDE(Improved Multi-Population Ensemble Differential Evolution)[20]、基于親本選擇框架的差分算法DESPS(improving Differential Evolution with a Successful-Parent-Selecting framework)[21]、AMECoDEs 進(jìn)行對比,對受損機(jī)械臂整體進(jìn)行系統(tǒng)精度標(biāo)定。算法的超參數(shù)均為最優(yōu),除趨平率、切換率閾值不一致外,其他參數(shù)的初始值保持一致。收斂情況如圖10(a)所示,AMECoDEs-LO 的收斂速度和精度均優(yōu)于其他算法。
AMECoDEs-LO 在AMECoDEs 的框架基礎(chǔ)上增加PCA 技術(shù)實(shí)現(xiàn)優(yōu)化,同時兼具原算法針對收斂過程中局部最優(yōu)問題的轉(zhuǎn)移機(jī)制,相較于AMECoDEs,AMECoDEs-LO 的收斂速度和Fitness分別提升和降低了21.2%和5.4%,整體收斂曲線呈現(xiàn)持續(xù)下降的趨勢,且下降速度較快,表明本文算法不易陷入局部最優(yōu),其中的PCA 技術(shù)對算法的收斂有促進(jìn)的作用。分層優(yōu)化機(jī)制的三種優(yōu)化狀態(tài)的切換情況如圖10(b)所示,在4 093 代之前經(jīng)過7次Ss和So之間的有效切換,F(xiàn)itness下降至0.775 mm;在之后的20 代頻繁切換10 次,切換率達(dá)到設(shè)定的閾值0.5,分層優(yōu)化機(jī)制控制優(yōu)化狀態(tài)切換到Sn,同時開放所有參數(shù)并回歸原AMECoDEs 算法機(jī)制繼續(xù)優(yōu)化,最終Fitness進(jìn)一步下降至0.755 mm。
圖10 AMECoDEs-LO的性能Fig.10 Performance of AMECoDEs-LO
相較于傳統(tǒng)的系統(tǒng)分離校準(zhǔn)方法(Type 1),本文方法的Fitness降低了60%。使用校準(zhǔn)前后機(jī)械臂末端的空間距離誤差作為評價標(biāo)準(zhǔn),從采集點(diǎn)隨機(jī)挑選20 組數(shù)據(jù)對兩種標(biāo)定方式進(jìn)行驗(yàn)證。如圖11(a)所示,驗(yàn)證結(jié)果表明了在當(dāng)前定位設(shè)備下,本文方法的Fitness小于子系統(tǒng)分離標(biāo)定再整合的方法。由于本文模型的誤差根據(jù)樣本數(shù)據(jù)計算,因此Fitness可能只對樣本點(diǎn)有效。為此,額外采集20 組校驗(yàn)點(diǎn)進(jìn)行驗(yàn)證,圖11(b)顯示了校驗(yàn)點(diǎn)的Fitness為0.749 mm,和本文方法的Fitness極為接近,驗(yàn)證了方法的有效性。
圖11 聯(lián)合系統(tǒng)和傳統(tǒng)方法精度驗(yàn)證對比Fig.11 Accuracy verification comparison between joint system and traditional method
實(shí)驗(yàn)中使用的伺服電機(jī)型號為TBS-K20,標(biāo)準(zhǔn)狀態(tài)下的空載精度為0.240°。不同于行星減速器等降低轉(zhuǎn)速,提升扭矩,匹配慣量的硬件解決方案,本文所提出的伺服電機(jī)軟補(bǔ)償方案成本低,補(bǔ)償效果良好。針對受損的2 號伺服電機(jī),聯(lián)合系統(tǒng)模型使用了三種軟補(bǔ)償方案,函數(shù)形式為:
性能評價標(biāo)準(zhǔn)為名義轉(zhuǎn)動角度和實(shí)際轉(zhuǎn)動角度之差的絕對值。實(shí)驗(yàn)中使用陀螺儀測量2 號伺服電機(jī)的角度,陀螺儀的靜態(tài)精度為0.050°,動態(tài)精度為0.100°。測試結(jié)果如圖12 所示,數(shù)據(jù)顯示該伺服電機(jī)的平均精度為4.212°,最低誤差1.584°,最高誤差5.562°。受損的伺服電機(jī)的精度在三種軟補(bǔ)償方案的作用下均大幅提高。
圖12 伺服電機(jī)軟補(bǔ)償?shù)男阅蹻ig.12 Performance of servo motor soft compensation
計算補(bǔ)償后數(shù)據(jù)的殘差平方和(Residual Sum of Squares,RSS)、平均絕對誤差(Mean Absolute Error,MAE)、均方根誤差(Root Mean Squared Error,RMSE)、標(biāo)準(zhǔn)差(Standard Deviation,SD)。表5 表明本文使用f(3x)函數(shù)的各項(xiàng)指標(biāo)均為最優(yōu),其中平均絕對誤差達(dá)到了0.265°,和正常伺服電機(jī)空載精度僅差0.025°,最大誤差降低至0.830°。
表5 三種方案在不同指標(biāo)上的結(jié)果 單位:(°)Tab.5 Results of three schemes on different indexes unit:(°)
在機(jī)械臂連桿扭曲、伺服電機(jī)精度受損的情況下,本文方法提高了視覺機(jī)械臂系統(tǒng)的整體精度,其中伺服電機(jī)模型這種軟補(bǔ)償?shù)姆绞酱蠓岣吡耸軗p伺服電機(jī)的精度。為驗(yàn)證伺服電機(jī)補(bǔ)償模型不影響正常伺服電機(jī)的性能,采用控制單一變量思想,保持連桿扭曲,優(yōu)化算法的參數(shù)設(shè)置保持一致。R1 機(jī)械臂的2 號伺服電機(jī)受損,R2 機(jī)械臂的2 號伺服電機(jī)則是正常的。
使用Matalb 的Robotic Toolbox 工具箱制作數(shù)據(jù)采集區(qū)域,如圖13 所示。在機(jī)械臂的運(yùn)動空間內(nèi)以嵌套的方式劃分4 組采集區(qū)域,機(jī)械臂R1、R2 由內(nèi)而外地從4 個區(qū)域分別采集25、50、75、100 組數(shù)據(jù),每組數(shù)據(jù)包含機(jī)械臂轉(zhuǎn)角和末端相機(jī)坐標(biāo)。
圖13 四種不同的數(shù)據(jù)采集區(qū)域Fig.13 Four different data collection areas
使用7 種算法的參數(shù)辨識結(jié)果和收斂情況如表6 所示,相較于其他6 種進(jìn)化算法,AMECoDEs-LO 收斂更快,性能更穩(wěn)定。在機(jī)械臂整個運(yùn)動空間內(nèi)隨機(jī)選擇20 個校驗(yàn)點(diǎn)進(jìn)行驗(yàn)證。使用AMECoDEs-LO 進(jìn)行參數(shù)辨識的結(jié)果如表7 所示,在同一采集區(qū)域內(nèi),R1 和R2 兩種機(jī)械臂的系統(tǒng)平均誤差最大偏差為0.05 mm,校驗(yàn)點(diǎn)的平均誤差最大偏差為0.03 mm,兩種系統(tǒng)的整體精度極為接近,說明有無伺服電機(jī)受損對系統(tǒng)精度影響不大,驗(yàn)證了伺服電機(jī)軟補(bǔ)償模型的通用性。同時,校驗(yàn)點(diǎn)在機(jī)械臂整個運(yùn)動空間內(nèi)隨機(jī)選取,對于采集區(qū)域較小的數(shù)據(jù)樣本,經(jīng)過參數(shù)辨識后系統(tǒng)平均誤差和校驗(yàn)點(diǎn)平均誤差相差較大;直到采集區(qū)域覆蓋整個機(jī)械臂的運(yùn)動空間,兩者的差距逐漸減小到極低的程度。該現(xiàn)象表明根據(jù)機(jī)械臂應(yīng)用的不同,不同工作空間內(nèi)校準(zhǔn)的精度不同,但在每一種工作區(qū)域內(nèi),視覺機(jī)械臂整體的系統(tǒng)精度都得到了提高。
表6 四種采集區(qū)域下兩種機(jī)械臂在七種算法下的Fitness比較Tab.6 Fitness comparison of two manipulators under seven algorithms in four collection areas
表7 系統(tǒng)的收斂和校驗(yàn)結(jié)果 單位:mmTab.7 Convergence and verification results of system unit:mm
本文方法中,參數(shù)辨識系統(tǒng)需要獲得機(jī)械臂關(guān)節(jié)轉(zhuǎn)角和對應(yīng)的機(jī)械臂末端相機(jī)坐標(biāo)進(jìn)行系統(tǒng)模型的求解,在當(dāng)前型號相機(jī)存在約2.5 mm 的定位誤差下提高了系統(tǒng)精度。在工業(yè)場合應(yīng)用中,相機(jī)受環(huán)境噪聲影響引起圖像特征匹配不穩(wěn)定,容易對系統(tǒng)產(chǎn)生更大程度的干擾。為了進(jìn)一步驗(yàn)證本文方法的有效性,在采集的機(jī)械臂末端相機(jī)坐標(biāo)額外加入一定強(qiáng)度的高斯白噪聲,模擬工業(yè)環(huán)境進(jìn)行魯棒性測試。干擾項(xiàng)的產(chǎn)生定義為d(t)=σw(t),其中σ表示噪聲的強(qiáng)度,w(t)產(chǎn)生1 dBW 的高斯白噪聲[14]。
實(shí)驗(yàn)中將3 種不同強(qiáng)度的噪聲分別施加在100 組采集點(diǎn)的x、y、z軸分量上,其他設(shè)置保持不變。如圖14 所示,當(dāng)噪聲強(qiáng)度 為0.5、1、1.5 時采集點(diǎn)的Fitness為0.848 mm、1.653 mm、2.491 mm。表8 顯示了在不同強(qiáng)度噪聲下使用本文方法優(yōu)化前后,聯(lián)合系統(tǒng)模型在不同分量上的Fitness。優(yōu)化前的系統(tǒng)模型選用4.4 節(jié)的R1 型機(jī)械臂(未加入噪聲)的優(yōu)化結(jié)果。結(jié)果表明,隨著噪聲強(qiáng)度的不斷加大,聯(lián)合系統(tǒng)模型的Fitness并沒有線性增大,僅有小幅度增長。在不同強(qiáng)度的噪聲干擾下,F(xiàn)itness相較未加入噪聲的0.755 mm,分別增大了0.052 mm、0.068 mm、0.085 mm,坐標(biāo)軸各分量誤差相對較高。AMECoDEs-LO 的收斂情況如圖15 所示。AMECoDEs-LO 在3 種不同強(qiáng)度噪聲的干擾下完成收斂時的迭代次數(shù)相較于未加入噪聲的7 835 代,分別增長到7 965、8 320、9 953 代,表明噪聲的增強(qiáng)引起系統(tǒng)辨識難度的增大,但系統(tǒng)模型依然保持著較高的精度,驗(yàn)證了系統(tǒng)的魯棒性。
圖14 三種不同強(qiáng)度的高斯白噪聲Fig.14 Three Gaussian white noise with different intensities
表8 加入不同強(qiáng)度噪聲后系統(tǒng)模型的Fitness 單位:mmTab.8 Fitness of system model after adding noise with different intensities unit:mm
圖15 不同強(qiáng)度噪聲下AMECoDEs-LO的收斂情況Fig.15 Convergence of AMECoDEs-LO under noise with different intensities
本文提出了一種魯棒的視覺機(jī)械臂聯(lián)合建模優(yōu)化方法AMECoDEs-LO,從系統(tǒng)整體考慮,避免了傳統(tǒng)方法對各子系統(tǒng)分開標(biāo)定再整合至整個系統(tǒng)所造成的誤差傳播;聯(lián)合系統(tǒng)中的伺服電機(jī)軟補(bǔ)償模塊有效地補(bǔ)償了受損的伺服電機(jī)精度,并且這種補(bǔ)償方式不需要硬件成本,通用性也得到了驗(yàn)證;在不同工作空間下的參數(shù)辨識結(jié)果顯示,相較于六種對比算法,AMECoDEs-LO 在視覺機(jī)械臂模型校準(zhǔn)問題上性能良好;魯棒性測試結(jié)果表明了本文方法可以將視覺傳感器受環(huán)境噪聲因素造成定位精度不準(zhǔn)確的影響降至最低。
綜上所述,本文方法在視覺機(jī)械臂系統(tǒng)因連桿存在形變、伺服電機(jī)精度受損、視覺傳感器定位不準(zhǔn)確等問題的情況下解決了整個系統(tǒng)的校準(zhǔn)問題,整個校準(zhǔn)過程全自動且高效;改進(jìn)的AMECoDEs-LO 收斂速度較快,不容易陷入局部最優(yōu)解,可以完成視覺機(jī)械臂的快速部署。對工業(yè)場景下機(jī)械臂自主建模,擺脫傳統(tǒng)固定示教的工作模式有一定的借鑒意義,基于本文算法,未來擬研究多態(tài)感知與柔性抓取問題。