王文博,李 岸
影響工業(yè)機(jī)器人絕對(duì)定位精度的因素有很多,大致可以分為三個(gè)因素:負(fù)載、參數(shù)和環(huán)境,其中參數(shù)的影響因素占到機(jī)器人定位誤差的80%以上。因此,為了提高工業(yè)機(jī)器人的定位精度,必須盡可能得出準(zhǔn)確的運(yùn)動(dòng)學(xué)參數(shù)。目前廣泛認(rèn)可的方法有最小二乘法、Levenberg-Marquardt 算法[1]、擴(kuò)展卡爾曼濾波法、最陡梯度搜索算法等經(jīng)典算法,但都受限于計(jì)算量大[2],忽略的誤差因素過多等而不能有效減小機(jī)器人的定位誤差。本文采用遺傳算法識(shí)別機(jī)器人的參數(shù)誤差,利用遺傳算法的進(jìn)化搜索特性,可以對(duì)機(jī)器人參數(shù)值進(jìn)行較準(zhǔn)確辨識(shí),滿足機(jī)器人的工作要求。
本文研究對(duì)象為KUKA KR270R2700 型機(jī)器人(見圖1)。
圖1 機(jī)器人外形尺寸和運(yùn)動(dòng)范圍
設(shè)定機(jī)器人兩兩相鄰連桿坐標(biāo)系的運(yùn)動(dòng)學(xué)變換參數(shù),以ai-1表示連桿的長度,以αi-1表示兩個(gè)相鄰坐標(biāo)系中兩z 軸的夾角,以連桿偏置di表示兩連桿間的最短距離,以關(guān)節(jié)轉(zhuǎn)角θi表示連桿坐標(biāo)系兩個(gè)x 軸的夾角(見表1)。
表1 機(jī)器人D-H 參數(shù)
本文分析對(duì)象為六自由度機(jī)器人,則機(jī)器人末端連桿相對(duì)于固定基座的轉(zhuǎn)換矩陣可以表示為:
圖2 遺傳算法運(yùn)算流程
交叉算子 選用算數(shù)交叉方式可以更好地適應(yīng)浮點(diǎn)數(shù)編碼。
變異算子 本文選用高斯變異方式以改善算法的局限性。
將遺傳算法通過matlab 軟件實(shí)現(xiàn),設(shè)置種群內(nèi)個(gè)體數(shù)目N=100,因?yàn)榱杂啥葯C(jī)器人所需辨識(shí)的參數(shù)有24 個(gè),所以種群內(nèi)染色體數(shù)目為24,初始交叉率為0.6,初始變異率為0.2,種群優(yōu)化迭代最大次數(shù)為1 000 代。
筆者對(duì)工業(yè)機(jī)器人進(jìn)行預(yù)先設(shè)定幾何模型參數(shù)的誤差值(見表2)。
表2 預(yù)設(shè)參數(shù)誤差值
筆者選擇機(jī)器人運(yùn)動(dòng)空間中的幾組關(guān)節(jié)角,將表2 中的預(yù)設(shè)誤差值與表(1) 中的D-H 參數(shù)值相加作為機(jī)器人實(shí)際運(yùn)動(dòng)學(xué)參數(shù)代入式(1) 和式(2),求解出這幾組關(guān)節(jié)角分別對(duì)應(yīng)的機(jī)器人末端所到達(dá)的位置作為實(shí)際運(yùn)動(dòng)位置。
在運(yùn)行遺傳算法時(shí),盡可能使適應(yīng)度函數(shù)趨近于0,使理想位置趨近于實(shí)際位置,將識(shí)別出來的參數(shù)誤差值與預(yù)設(shè)誤差值相比較即可驗(yàn)證算法的正確性[5]。
由迭代圖可知遺傳算法在迭代到200 代左右時(shí)適應(yīng)度函數(shù)就已經(jīng)趨近于0(見圖3),采用遺傳算法識(shí)別得到的機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差(見表3)。
表3 遺傳算法識(shí)別出的誤差值
圖3 迭代結(jié)果
可知,由遺傳算法辨識(shí)得到的結(jié)果可以使機(jī)器人末端位姿趨近于實(shí)際位姿,而且遺傳算法辨識(shí)出的參數(shù)誤差值與預(yù)設(shè)參數(shù)誤差值基本一致,證明使用遺傳算法在本課題求解的可行性。
本文通過仿真驗(yàn)證所建立機(jī)器人運(yùn)動(dòng)學(xué)模型的準(zhǔn)確性,使用遺傳算法對(duì)推導(dǎo)得到的機(jī)器人運(yùn)動(dòng)學(xué)參數(shù)誤差值進(jìn)行計(jì)算。結(jié)果表明,采用遺傳算法對(duì)機(jī)器人進(jìn)行參數(shù)辨識(shí)是可行的。