李 楊,金小飛,劉國鋒,吳明明
(1.安徽三聯(lián)學(xué)院 機(jī)械工程學(xué)院,安徽 合肥 230000;2.哈工大機(jī)器人(合肥)國際創(chuàng)新研究院,安徽 合肥 230000)
隨著科技的發(fā)展,針對(duì)機(jī)器人的程序化和思維單一的特點(diǎn),在工作過程中會(huì)出現(xiàn)一定的偏差,因此機(jī)器人研究人員制定一系列的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法來制約機(jī)器人的行為[1-2]。
機(jī)器人的行為精度是評(píng)估機(jī)器人性能的重要指標(biāo)之一,串聯(lián)協(xié)作機(jī)器人在完成一項(xiàng)任務(wù)中需要兩個(gè)或者兩個(gè)以上的機(jī)器人共同完成,因此對(duì)于機(jī)器人的行為精度要求更加嚴(yán)格,一旦任意一個(gè)機(jī)器人出現(xiàn)錯(cuò)誤操作,就會(huì)使任務(wù)執(zhí)行失敗。所以研究人員通過串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法制約機(jī)器人的行為,將最大程度地保證機(jī)器人行為的準(zhǔn)確度,傳統(tǒng)的機(jī)器人精度標(biāo)定方法沒有考慮到機(jī)器人行為判定的誤差,對(duì)機(jī)器人行為制約時(shí),不能達(dá)到預(yù)期的效率[3]。
綜上所述,本文將研究基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法,解決以上問題。本文通過分析機(jī)器人精度標(biāo)定的原理,突破傳統(tǒng)思維,調(diào)用Levenberg-Marquardt算法制定一套全新的機(jī)器人行為控制模型,完成基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法的研究。
目前標(biāo)定方法主要包括多點(diǎn)標(biāo)定法和外部基準(zhǔn)標(biāo)定法,外部基準(zhǔn)法必須有一個(gè)準(zhǔn)確的參照物才可以完成標(biāo)定任務(wù),多點(diǎn)標(biāo)定方法不需要外接參照物輔助,所以對(duì)于機(jī)器人精度標(biāo)定行為,本文采用多點(diǎn)標(biāo)定法輔助完成。多變標(biāo)定方法的原理是將機(jī)器人有效識(shí)別的環(huán)境轉(zhuǎn)化為一個(gè)以X軸為原點(diǎn)的三維坐標(biāo)系,然后通過數(shù)據(jù)建模測(cè)量需要標(biāo)定的數(shù)據(jù)變量、標(biāo)定涉及到的方位等其他相關(guān)數(shù)據(jù),最后通過機(jī)器人精度標(biāo)定行為模型規(guī)劃出機(jī)器人標(biāo)定的具體行為,完成機(jī)器人的精度標(biāo)定操作[4]。建立的三維直角坐標(biāo)系如圖1所示。
圖1 三維直角坐標(biāo)系
多點(diǎn)標(biāo)定方法完成一個(gè)任務(wù)時(shí)最少在一個(gè)環(huán)境內(nèi)以5種姿態(tài)使機(jī)器人的探針接觸到標(biāo)定板上的孔位,標(biāo)定板越大,接觸的次數(shù)越多,才可以保證機(jī)器人標(biāo)定的精度。整個(gè)標(biāo)定過程機(jī)器人的探頭的位置不變,接觸是通過機(jī)器人的關(guān)節(jié)轉(zhuǎn)換不同角度完成的。測(cè)量數(shù)據(jù)的準(zhǔn)確度決定了標(biāo)定方法的精度,在標(biāo)定過程中,三維坐標(biāo)系中的方位角確定標(biāo)定空間的位置和機(jī)器人所屬的空間姿態(tài)位置,機(jī)器人在完成標(biāo)定過程中要時(shí)刻保證坐標(biāo)系的基座位置不發(fā)生變化,一旦變化標(biāo)定結(jié)果無效。多變標(biāo)定方法的標(biāo)定過程簡(jiǎn)單,并且成本低,被應(yīng)用于多個(gè)領(lǐng)域[5-6]。
串聯(lián)協(xié)作機(jī)器人精度標(biāo)定行為模型主要是將機(jī)器人的行為通過三維坐標(biāo)系的形式展現(xiàn)出來,一方面可以在坐標(biāo)系中根據(jù)指令模擬機(jī)器人的標(biāo)桿行為,另一方面模型可以保證多個(gè)機(jī)器人協(xié)作的連續(xù)性,保證機(jī)器人標(biāo)定行為的精度[7]。每個(gè)連桿的變換坐標(biāo)的齊次變換矩陣如式(1)所示。
(1)
圖2 協(xié)作機(jī)器人標(biāo)桿
協(xié)作機(jī)器人的多個(gè)標(biāo)桿共同運(yùn)動(dòng)構(gòu)成一個(gè)完成的運(yùn)動(dòng)行為,因此將每個(gè)機(jī)器人向外發(fā)射的標(biāo)桿行為進(jìn)行變換合成,就形成一個(gè)行為標(biāo)定模型,具體公式如式(2)所示。
(2)
其中,βi表示機(jī)器人標(biāo)桿運(yùn)動(dòng)的實(shí)際角度。
建立串聯(lián)協(xié)作機(jī)器人精度標(biāo)定行為的運(yùn)動(dòng)模型后,為了提高機(jī)器人的行為標(biāo)定精度,本文在串聯(lián)協(xié)作機(jī)器人精度標(biāo)定行為運(yùn)動(dòng)模型的基礎(chǔ)增加一個(gè)MHD誤差模型,用來校正機(jī)器人的運(yùn)動(dòng)精度。MHD誤差模型的核心是將機(jī)器人的運(yùn)動(dòng)行為作為一個(gè)轉(zhuǎn)動(dòng)項(xiàng),然后將動(dòng)作所涉及到的機(jī)器人末端關(guān)節(jié)分別進(jìn)行修正,最后將機(jī)器人的執(zhí)行指令和行為之間的誤差降到最低,保證機(jī)器人運(yùn)行的標(biāo)定精度[8-9]。標(biāo)定過程如圖3所示。
圖3 標(biāo)定過程
本文設(shè)定機(jī)器人轉(zhuǎn)動(dòng)項(xiàng)的形式為Rot(y,b),傳統(tǒng)的機(jī)器人末端行為標(biāo)定指令思維矩陣如式(3)所示。
(3)
加入轉(zhuǎn)動(dòng)項(xiàng)后機(jī)器人精度行為標(biāo)定誤差矩陣如式(4)所示。
Δp=NaΔa+NcΔc+NdΔd+NθΔθ+NβΔβ
(4)
其中,Na表示連桿長(zhǎng)度的誤差所對(duì)應(yīng)的系數(shù)矩陣;Nc表示連桿轉(zhuǎn)角a的誤差所對(duì)應(yīng)的系數(shù)矩陣;Nd表示連桿偏距d的誤差所對(duì)應(yīng)的系數(shù)矩陣;Nθ表示關(guān)節(jié)角θ的誤差所對(duì)應(yīng)的系數(shù)矩陣;Nβ表示繞y軸旋轉(zhuǎn)角β所對(duì)應(yīng)的誤差的系數(shù)矩陣;Δa表示連桿長(zhǎng)度誤差;Δc表示連桿轉(zhuǎn)角誤差;Δd表示連桿偏距誤差;Δθ表示關(guān)節(jié)轉(zhuǎn)角誤差[10]。
當(dāng)給機(jī)器人下達(dá)一個(gè)合作任務(wù)后,首先每個(gè)機(jī)器人根據(jù)植入的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法進(jìn)行思維規(guī)劃,計(jì)算出目前機(jī)器人所在位置的坐標(biāo),然后按照行為標(biāo)定誤差矩陣計(jì)算出實(shí)際的位置坐標(biāo),則最終的機(jī)器人運(yùn)動(dòng)精度標(biāo)定誤差模型如式(5)所示。
(5)
機(jī)器人運(yùn)行內(nèi)部結(jié)構(gòu)如圖4所示。
圖4 機(jī)器人運(yùn)行內(nèi)部結(jié)構(gòu)
Levenberg-Marquardt算法是一種通過非線性最小二乘法尋找可以使函數(shù)或者模型最小化的參數(shù)向量?jī)?yōu)化算法,被廣泛地應(yīng)用于多個(gè)領(lǐng)域,對(duì)于本文研究的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法,優(yōu)勢(shì)是將機(jī)器人行為標(biāo)定模型結(jié)果進(jìn)行優(yōu)化,得出最簡(jiǎn)潔的行為模型,提高機(jī)器人行為標(biāo)定的精度。
Levenberg-Marquardt算法首先是要對(duì)模型中的每個(gè)未知參數(shù)進(jìn)行偏導(dǎo)計(jì)算,進(jìn)而計(jì)算出每個(gè)標(biāo)桿行為之前的迭算步長(zhǎng),然后對(duì)步長(zhǎng)賦予信賴修正的權(quán)限,使得算法對(duì)串聯(lián)機(jī)器人精度標(biāo)定模型的標(biāo)桿矩陣完成優(yōu)化。
最后進(jìn)行迭代結(jié)算,將多個(gè)機(jī)器人傳送的連桿矩陣按照步長(zhǎng)進(jìn)行迭代計(jì)算,計(jì)算公式如式(6)所示。
(6)
其中,rk是用來決定步長(zhǎng)dk以及調(diào)整迭代過程中因子xk的大小,如果rk越接近1,說明模型函數(shù)與機(jī)器人行為標(biāo)定的目標(biāo)函數(shù)誤差越小,則可以減小xk的數(shù)值使得下一次的試探步dk+1更長(zhǎng);反之rk越小,可以減少dk或者不變,增大xk數(shù)值,使串聯(lián)協(xié)作機(jī)器人精度標(biāo)定的原則不發(fā)生改變[13-14]。
通過以上對(duì)串聯(lián)協(xié)作機(jī)器人行為精度標(biāo)定模型、MHD誤差模型以及Levenberg-Marquardt算法的分析,本文總結(jié)基于Levenberg-Marquardt算法的串聯(lián)機(jī)器人精度標(biāo)定方法的工作流程,具體步驟如圖5所示。
圖5 基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定流程
根據(jù)圖5所示的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定流程可知,機(jī)器人若是未接收到命令,僅需等待即可,若是機(jī)器人接收到命令,則需完成下述具體內(nèi)容:
首先,每個(gè)機(jī)器人根據(jù)自己所在的位置選擇需要完成任務(wù)的分任務(wù),然后機(jī)器人以自身作為坐標(biāo)原點(diǎn),將任務(wù)指令帶入構(gòu)建的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定模型中,以實(shí)現(xiàn)數(shù)據(jù)采集為目的,每個(gè)機(jī)器人將規(guī)劃出標(biāo)桿移動(dòng)的路線;
其次,控制機(jī)器人的信號(hào)接收器與標(biāo)定板的相位孔接觸次數(shù),即獲取控制次數(shù),同時(shí)機(jī)器人將關(guān)節(jié)每次運(yùn)動(dòng)的數(shù)據(jù)記錄下來;
最后,將機(jī)器人運(yùn)動(dòng)的數(shù)據(jù)通過MHD誤差模型完成歸一計(jì)算,剔除初次機(jī)器人標(biāo)定的誤差,為二次標(biāo)定奠定數(shù)據(jù)基礎(chǔ)。剔除誤差后重復(fù)(2)的操作,最終完成串聯(lián)協(xié)作機(jī)器人精度標(biāo)定操作[15]。
在完成串聯(lián)協(xié)作機(jī)器人精度標(biāo)定操作后,將接收到的停止命令作為精度標(biāo)定結(jié)束的標(biāo)志。
為了驗(yàn)證基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定的效果,本文通過對(duì)比試驗(yàn)進(jìn)行驗(yàn)證說明,對(duì)比試驗(yàn)的方法是基于信號(hào)傳感的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法。實(shí)驗(yàn)環(huán)境如圖6所示。
圖6 實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)參數(shù)如表1所示。
表1 實(shí)驗(yàn)參數(shù)
因?yàn)槿斯び涗浽囼?yàn)數(shù)據(jù)會(huì)出現(xiàn)誤差,所以本文試驗(yàn)的兩個(gè)機(jī)器人分別連接兩臺(tái)計(jì)算機(jī),記錄試驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)前將兩個(gè)相同型號(hào)的機(jī)器人的運(yùn)動(dòng)參數(shù)設(shè)置為相同的默認(rèn)值,并且分別放在兩個(gè)模擬的形態(tài)環(huán)境內(nèi),保證試驗(yàn)的科學(xué)性和公平性。同一時(shí)間工作人員向兩個(gè)機(jī)器人發(fā)送標(biāo)定任務(wù),機(jī)器人連接的計(jì)算機(jī)在試驗(yàn)整個(gè)過程中記錄時(shí)間數(shù)據(jù),為試驗(yàn)結(jié)果分析奠定基礎(chǔ),直到兩個(gè)機(jī)器人都提交標(biāo)定結(jié)果后,結(jié)束試驗(yàn),對(duì)兩個(gè)機(jī)器人標(biāo)定結(jié)果進(jìn)行精度檢驗(yàn),得出試驗(yàn)結(jié)果。
得到的機(jī)器人誤差實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 機(jī)器人標(biāo)定誤差實(shí)驗(yàn)結(jié)果
經(jīng)過以上試驗(yàn)操作,試驗(yàn)結(jié)果表明本文研究的基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法比傳統(tǒng)的精度標(biāo)定方法的標(biāo)定精度高,并且機(jī)器人完成標(biāo)定的時(shí)間短,具有較高的工作效率。得到這一結(jié)果的主要原因是基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法融合了MHD誤差模型,在機(jī)器人標(biāo)定行為執(zhí)行前,誤差模型對(duì)照實(shí)時(shí)的工作環(huán)境與標(biāo)定任務(wù),對(duì)機(jī)器人規(guī)劃的行為進(jìn)行誤差檢測(cè),使得機(jī)器人模擬標(biāo)定運(yùn)動(dòng)行為時(shí)的誤差率最低,提高串聯(lián)協(xié)作機(jī)器人標(biāo)定的精度。傳統(tǒng)基于信號(hào)傳感的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法通過位置信號(hào)確定標(biāo)定的位置,但是在實(shí)際工作過程中外界會(huì)出現(xiàn)一定的信號(hào)干擾,降低了機(jī)器人標(biāo)定的精度。另外基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法對(duì)比傳統(tǒng)的方法采用二次標(biāo)定模式,有效的將第一次標(biāo)定結(jié)果中存在的不足,經(jīng)過第二次標(biāo)定操作進(jìn)行彌補(bǔ)。采用兩次標(biāo)定模式并沒有降低串聯(lián)機(jī)器人精度標(biāo)定方法的工作效率,因?yàn)榇藰?biāo)定方法每個(gè)流程對(duì)于傳統(tǒng)的標(biāo)定流程來說都是最簡(jiǎn)潔的,并且流程之間具有較好的銜接性,從而提高機(jī)器人標(biāo)定流程的順暢性,保證標(biāo)定效率。
綜上所述,基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法可以提高機(jī)器人標(biāo)定結(jié)果的精度,具有應(yīng)用意義。
基于Levenberg-Marquardt算法的串聯(lián)協(xié)作機(jī)器人精度標(biāo)定方法在傳統(tǒng)的串聯(lián)協(xié)作機(jī)器人精度方法的基礎(chǔ)上增加了對(duì)機(jī)器人行為精度誤差的權(quán)衡,并且調(diào)用Levenberg-Marquardt算法對(duì)機(jī)器人每個(gè)行為進(jìn)行收斂計(jì)算,提高協(xié)作機(jī)器人行為的精度,使機(jī)器人工作失誤率達(dá)到最低。最后通過試驗(yàn)分析證明本文研究的機(jī)器人精度標(biāo)定方法對(duì)機(jī)器人的行為制約能力,使機(jī)器人的行為精度達(dá)到百分百,滿足投入使用的要求準(zhǔn)則,達(dá)到研究的預(yù)期效果,促進(jìn)串聯(lián)協(xié)作機(jī)器人領(lǐng)域的發(fā)展。