尹一伊,朱其新,張國(guó)平,朱永紅
(1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州215009;2.蘇州科技大學(xué) 機(jī)械工程學(xué)院,江蘇 蘇州 215009;3.深圳市大族機(jī)器人有限公司,廣東 深圳 518058;4.景德鎮(zhèn)陶瓷大學(xué) 機(jī)電工程學(xué)院,江西 景德鎮(zhèn) 333001)
機(jī)器人逆運(yùn)動(dòng)學(xué)求解是根據(jù)給定的機(jī)器人末端執(zhí)行器位置和姿態(tài)求解機(jī)器人各關(guān)節(jié)的關(guān)節(jié)變量,它是機(jī)器人離線編程和軌跡規(guī)劃的前提,是機(jī)器人運(yùn)動(dòng)控制的基礎(chǔ)[1]。
用于機(jī)械手逆運(yùn)動(dòng)學(xué)求解的方法較多,主要有代數(shù)法[2]、幾何法[3]和數(shù)值解法[4]。代數(shù)法不能保證具有封閉形式解;幾何法要求機(jī)械手的前三個(gè)節(jié)點(diǎn)的封閉形式解在幾何上存在。此外,一類(lèi)機(jī)械手的封閉形式解不能用于其他不同幾何形狀的機(jī)械手。數(shù)值解法依賴于起始點(diǎn),可收斂于單一解。神經(jīng)網(wǎng)絡(luò)解法屬于數(shù)值解法,因?yàn)榫哂胁⑿刑幚?、分布式存?chǔ)和容錯(cuò)性的結(jié)構(gòu)特征,而被廣泛應(yīng)用[5]。
考慮到常用于求解機(jī)器人逆運(yùn)動(dòng)學(xué)的神經(jīng)網(wǎng)絡(luò)方法(如RBF、BP)[6]以下不足:(1)深層網(wǎng)絡(luò)使得收斂速度減慢,求解效率不高,求解結(jié)果有發(fā)散的情況存在;(2)無(wú)法解釋推理過(guò)程和推理依據(jù);(3)神經(jīng)網(wǎng)絡(luò)極易陷入局部最優(yōu),導(dǎo)致模型泛化能力很差,使得模型過(guò)擬合得到的數(shù)據(jù)分布,并不能很好的預(yù)測(cè)未知的數(shù)據(jù)。
生成式對(duì)抗網(wǎng)絡(luò)(GAN)是深度學(xué)習(xí)發(fā)展的成果,通過(guò)生成網(wǎng)絡(luò)與真實(shí)數(shù)據(jù)的相互博弈得到盡可能真實(shí)的樣本數(shù)據(jù),由Goodfellow 等人[7]在2014 年提出。GAN 網(wǎng)絡(luò)作為一種生成模型,被廣泛應(yīng)用于對(duì)真實(shí)數(shù)據(jù)的分布進(jìn)行建模和生成真實(shí)數(shù)據(jù)。憑借這一能力,它被認(rèn)為解決了傳統(tǒng)機(jī)器學(xué)習(xí)中數(shù)據(jù)不足的問(wèn)題,對(duì)提高圖像分辨率、圖像仿真、自然語(yǔ)言的處理都能達(dá)到理想的效果。除此之外,GAN 還涉及許多其他內(nèi)容,包括機(jī)器人、加密與安全、天體物理等,是深度學(xué)習(xí)研究中重要領(lǐng)域。GAN 網(wǎng)絡(luò)的生成數(shù)據(jù)復(fù)雜度是線性相關(guān),先驗(yàn)假設(shè)非常少,這意味著它可以生成比其他模型更精確的樣本[8]。
基于目前研究中少有人關(guān)注GAN 網(wǎng)絡(luò)在機(jī)器人逆運(yùn)動(dòng)學(xué)中的應(yīng)用,筆者提出使用GAN 神經(jīng)網(wǎng)絡(luò)來(lái)建立機(jī)器人逆運(yùn)動(dòng)學(xué)模型,利用GAN 泛化能力強(qiáng)、訓(xùn)練效率高等優(yōu)點(diǎn),將GAN 生成的高精確度樣本視為最終逆運(yùn)動(dòng)學(xué)的結(jié)果,最后可以得到比其他神經(jīng)網(wǎng)絡(luò)處理機(jī)器人逆運(yùn)動(dòng)學(xué)更有效率的計(jì)算過(guò)程和精確的結(jié)果。
D-H(Devanit-Harenberg)分析法通常用來(lái)描述機(jī)器人相鄰連桿之間的運(yùn)動(dòng)學(xué)關(guān)系。D-H 描述法中典型的串聯(lián)機(jī)器人由關(guān)節(jié)和連桿組成[9-11],每個(gè)關(guān)節(jié)包括一個(gè)自由度,或者是平動(dòng)關(guān)節(jié),或者是轉(zhuǎn)動(dòng)關(guān)節(jié)。對(duì)擁有n 個(gè)關(guān)節(jié)的機(jī)器人,就有從 0 到 n 的(n+1)個(gè)連桿。連桿 0 是機(jī)器人基座,通常是固定的,連桿n 攜帶工具端。
為此,給每個(gè)連桿固定一個(gè)參考坐標(biāo)系,確定從一個(gè)關(guān)節(jié)到另一個(gè)關(guān)節(jié)的變換步驟,最后得到末端執(zhí)行器坐標(biāo)系相對(duì)于基坐標(biāo)系的等價(jià)齊次變換矩陣。
機(jī)器人相鄰連桿之間的相對(duì)關(guān)系可用四個(gè)參數(shù)表示,分別為描述兩相鄰關(guān)節(jié)軸線間相對(duì)位置關(guān)系的連桿長(zhǎng)度ai和連桿扭角αi,以及描述相鄰兩連桿之間位置關(guān)系的連桿距離di和連桿夾角(關(guān)節(jié)角)θi,連桿參數(shù)示意圖如圖1 所示。
從i-1 坐標(biāo)系到i 坐標(biāo)系,只需完成下述變換:
(1)沿 Z(i-1)軸平移距離 di,使得 X(i-1)軸與 Xi軸相交;
(2)繞 Z(i-1)軸旋轉(zhuǎn)角度 θi,使得 X(i-1)軸與 Xi軸重合;
(3)沿Xi軸平移距離ai,使得i-1 坐標(biāo)系的原點(diǎn)與i 坐標(biāo)系的原點(diǎn)重合;
(4)最后繞 Xi軸旋轉(zhuǎn)角度αi,使得兩坐標(biāo)系完全重合。
根據(jù)鏈?zhǔn)椒▌t,相鄰連桿之間的位姿轉(zhuǎn)換關(guān)系可用下式表示
圖1 相鄰連桿參數(shù)示意圖
建模所用機(jī)器人是深圳大族集團(tuán)生產(chǎn)的Elfin-5 六自由度機(jī)器人,其相關(guān)參數(shù):工作范圍為800 mm,關(guān)節(jié)范圍為+/-178°,關(guān)節(jié)速度為90°/s,安裝面積為Φ156 mm,自由度為6 個(gè)旋轉(zhuǎn)關(guān)節(jié),外部電源輸入為100~240 V,50~60 Hz。
給該型號(hào)機(jī)器人建模得到D-H 參數(shù)表,見(jiàn)表1。
表1 D-H 參數(shù)
將建立坐標(biāo)系后的機(jī)器人從基座到第一關(guān)節(jié),再?gòu)牡谝魂P(guān)節(jié)到第二關(guān)節(jié)直到最后一個(gè)關(guān)節(jié),就得到機(jī)器人總的變換矩陣(即機(jī)器人運(yùn)動(dòng)學(xué)方程)
生成式對(duì)抗網(wǎng)絡(luò)(GAN)是由Goodfellow 等人[7]在2014 年提出的一種生成式模型,其核心思想來(lái)源于博弈論中的二人零和博弈。由一種對(duì)抗性神經(jīng)網(wǎng)絡(luò)構(gòu)成,分別稱(chēng)生成器和判別器,生成器試圖生成可被判別器誤認(rèn)為真實(shí)樣本的生成樣本[7]。GAN 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 GAN 原理圖
GAN 優(yōu)化和訓(xùn)練的過(guò)程是一個(gè)博弈問(wèn)題,即極大化判別模型的判斷能力,極小化生成模型輸出被判斷為偽造的概率[12-13]。
GAN 核心原理算法描述如下:
生成模型G 學(xué)習(xí)真實(shí)數(shù)據(jù)X 的概率分布,盡可能讓判別模型認(rèn)為是“真實(shí)”的。
其中 Z 表示從特定分布 p(Z)中隨機(jī)采樣所得的向量,pdata(X)表示真實(shí)樣本數(shù)據(jù)的概率分布;G(Z)表示生成網(wǎng)絡(luò)由噪聲Z 生成的樣本,D(X)表示真實(shí)樣本X 通過(guò)判別網(wǎng)絡(luò)判斷其為真實(shí)樣本的概率,D(G(Z))表示生成樣本通過(guò)判別網(wǎng)絡(luò)后,判斷其為真實(shí)樣本的概率,它被期望越接近1 越好。
判別網(wǎng)絡(luò)的目的是讓 D(X)接近 1,D(G(Z))接近 0。GAN的訓(xùn)練過(guò)程是將D 的錯(cuò)誤概率最大化的過(guò)程,同時(shí)生成器將log(1-D(G(Z)))的期望達(dá)到最小化,提升自身生成能力,最終兩者通過(guò)對(duì)抗交替訓(xùn)練,形成參數(shù)優(yōu)化[14-15]。
在機(jī)器人逆運(yùn)動(dòng)學(xué)訓(xùn)練中,用Matlab 生成隨機(jī)輸入變量,經(jīng)過(guò)生成器G 生成偽造樣本,與真實(shí)末端執(zhí)行器位姿對(duì)應(yīng)關(guān)節(jié)變量數(shù)據(jù)進(jìn)入判別器進(jìn)行判別。GAN 通過(guò)學(xué)習(xí)這些樣本,得到樣本數(shù)據(jù)分布,從而再次提供訓(xùn)練樣本,輔助訓(xùn)練過(guò)程,達(dá)到監(jiān)督學(xué)習(xí)的作用。需要說(shuō)明的是,訓(xùn)練過(guò)程中,生成式對(duì)抗網(wǎng)絡(luò)同時(shí)更新兩個(gè)網(wǎng)絡(luò)的梯度,使用隨機(jī)梯度下降法求解。每次迭代對(duì)兩個(gè)數(shù)據(jù)進(jìn)行采樣:真實(shí)樣本X 和與真實(shí)樣本同等數(shù)量的Z變量來(lái)生成樣本,并同時(shí)更新兩個(gè)模型的梯度,最終達(dá)到目標(biāo)訓(xùn)練效果。
圖3 GAN 算法求解機(jī)器人逆運(yùn)動(dòng)學(xué)流程圖
為了驗(yàn)證GAN 網(wǎng)絡(luò)在機(jī)械手逆運(yùn)動(dòng)學(xué)求解中應(yīng)用的有效性,文中使用計(jì)算機(jī)仿真,平臺(tái)選擇Matlab。為了訓(xùn)練網(wǎng)絡(luò),學(xué)習(xí)樣本文中選擇大族Elfin-5 型工業(yè)機(jī)器人獲取200 組真實(shí)數(shù)據(jù),即機(jī)器人末端執(zhí)行器位姿和對(duì)應(yīng)關(guān)節(jié)變量。關(guān)節(jié)值表示為Q=[q1q2…qn]T,它與末端執(zhí)行器位姿S 的關(guān)系通過(guò)機(jī)器人運(yùn)動(dòng)學(xué)反解 I(·)表示為 Q=I(S,φ),其中向量 φ 是造成機(jī)器人誤差的所有幾何參數(shù),訓(xùn)練數(shù)據(jù)由代數(shù)法求出。使用訓(xùn)練后的GAN 網(wǎng)絡(luò)對(duì)100 組末端執(zhí)行器位姿值進(jìn)行預(yù)測(cè)得到機(jī)器人逆運(yùn)動(dòng)學(xué)解即對(duì)應(yīng)關(guān)節(jié)值后,將結(jié)果與實(shí)際值比較,得到結(jié)果。使用GAN 網(wǎng)絡(luò)計(jì)算機(jī)器人逆運(yùn)動(dòng)學(xué)的算法流程如圖3 所示。
按上述流程算法編寫(xiě)代碼,運(yùn)行結(jié)果如圖4。
圖4 GAN 網(wǎng)絡(luò)訓(xùn)練值與實(shí)際值
接下來(lái),為驗(yàn)證GAN 網(wǎng)絡(luò)的訓(xùn)練效果,筆者使用廣泛應(yīng)用于機(jī)器人逆運(yùn)動(dòng)學(xué)中的BP 神經(jīng)網(wǎng)絡(luò)[16-18]對(duì)相同的200 組樣本進(jìn)行學(xué)習(xí),在進(jìn)行BP 網(wǎng)絡(luò)分析時(shí),隱層神經(jīng)元數(shù)目設(shè)定為8。接下來(lái),對(duì)BP 神經(jīng)網(wǎng)絡(luò)和GAN 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)數(shù)據(jù)進(jìn)行一些處理。就GAN 和Matlab 中自帶BP 網(wǎng)絡(luò)而言,結(jié)果數(shù)值范圍差別很大,如不處理,則數(shù)值大的數(shù)據(jù)將會(huì)反映預(yù)測(cè)結(jié)果,而數(shù)值小的數(shù)據(jù)反映不出預(yù)測(cè)結(jié)果,為避免這個(gè)問(wèn)題,文中將得到的預(yù)測(cè)結(jié)果進(jìn)行歸一化誤差處理。得到結(jié)果如圖5、圖6 所示??梢钥吹?,Matlab 神經(jīng)網(wǎng)絡(luò)工具箱中BP 神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)誤差達(dá)到104級(jí)別,GAN 網(wǎng)絡(luò)與預(yù)測(cè)誤差在±0.8 范圍內(nèi)。
圖5 BP 神經(jīng)網(wǎng)絡(luò)歸一化誤差
圖6 GAN 神經(jīng)網(wǎng)絡(luò)歸一化誤差
文中將GAN 神經(jīng)網(wǎng)絡(luò)引入機(jī)器人逆運(yùn)動(dòng)學(xué)運(yùn)算中,并基于某實(shí)際型號(hào)的機(jī)器人建立了運(yùn)算模型。隨后將運(yùn)算結(jié)果與BP 等神經(jīng)網(wǎng)絡(luò)運(yùn)算結(jié)果進(jìn)行了對(duì)比,得到結(jié)果。
研究分析表明,基于GAN 神經(jīng)網(wǎng)絡(luò)的機(jī)器人逆運(yùn)動(dòng)學(xué)求解方法是可行的。相比傳統(tǒng)BP 等神經(jīng)網(wǎng)絡(luò)算法,GAN 網(wǎng)絡(luò)具有泛化能力強(qiáng)、訓(xùn)練效率高的特點(diǎn)。程序運(yùn)行過(guò)程顯示,在相同訓(xùn)練次數(shù)下,GAN 網(wǎng)絡(luò)消耗時(shí)間更短且收斂性較BP 神經(jīng)網(wǎng)絡(luò)更強(qiáng)。
文章創(chuàng)新點(diǎn)在于將GAN 神經(jīng)網(wǎng)絡(luò)應(yīng)用于機(jī)器人逆運(yùn)動(dòng)學(xué)求解中,并證明其可行性。在適當(dāng)增加訓(xùn)練次數(shù)情況下,是可以提高預(yù)測(cè)精度并在實(shí)際中應(yīng)用的。接下來(lái)研究的重點(diǎn)將集中于提高計(jì)算精確度的具體解決方案。