趙楊鑫 ,曹 旭 ,余志強(qiáng) ,潘雨欣 ,方 田 ,汪 婧 ,沈 浩
(1.安徽工業(yè)大學(xué) 電氣與信息工程學(xué)院, 安徽 馬鞍山 243032;2.中冶華天工程技術(shù)有限公司, 安徽 馬鞍山243005)
隨著科技的迅猛發(fā)展,機(jī)器人技術(shù)的應(yīng)用范圍日漸擴(kuò)大,已滲透到工業(yè)生產(chǎn)、醫(yī)療救援、家政服務(wù)、地質(zhì)勘探等眾多領(lǐng)域,展現(xiàn)出巨大的應(yīng)用潛力[1-2]。Baxter 機(jī)器人作為1 種協(xié)作型機(jī)器人,有效的運(yùn)動(dòng)規(guī)劃對(duì)任務(wù)執(zhí)行至關(guān)重要,逆運(yùn)動(dòng)學(xué)分析是運(yùn)動(dòng)規(guī)劃控制中的核心問(wèn)題[3]。隨著各領(lǐng)域?qū)χ悄軝C(jī)器人要求的不斷提高,機(jī)器人面臨的環(huán)境通常無(wú)法預(yù)知,非結(jié)構(gòu)化環(huán)境成為主流[4],相應(yīng)地對(duì)機(jī)器人逆運(yùn)動(dòng)學(xué)分析提出了更高的要求。常用的雅可比轉(zhuǎn)置法、解析法和迭代法用于逆運(yùn)動(dòng)學(xué)求解時(shí)存在可能僅有唯一解,使機(jī)器人難以達(dá)到目標(biāo)姿態(tài),無(wú)法滿足精準(zhǔn)度、穩(wěn)定性和實(shí)時(shí)性等方面的要求;普通反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)在處理非線性問(wèn)題時(shí)可能面臨梯度消失和訓(xùn)練效率低下等問(wèn)題,在某些場(chǎng)景下難以達(dá)到理想的性能。因此,進(jìn)一步開(kāi)展機(jī)器人逆運(yùn)動(dòng)學(xué)分析方法的研究對(duì)于提高復(fù)雜多變環(huán)境下機(jī)器人的運(yùn)動(dòng)控制能力和應(yīng)用有重要的意義。
對(duì)于機(jī)械臂逆運(yùn)動(dòng)學(xué)分析已引起學(xué)者們的廣泛關(guān)注,國(guó)內(nèi)外學(xué)者針對(duì)其求解提出了各種改進(jìn)方法。Hasan 等[5]針對(duì)機(jī)械臂逆運(yùn)動(dòng)學(xué)求解提出1 種人工神經(jīng)網(wǎng)絡(luò)的方法,但精度偏低;Ozgoren[6]運(yùn)用優(yōu)化后的解析法求解逆運(yùn)動(dòng)學(xué),但過(guò)程復(fù)雜、精度不高;鐘獻(xiàn)有等[7]針對(duì)求解機(jī)械臂逆運(yùn)動(dòng)學(xué)的奇異問(wèn)題,提出1 種最小運(yùn)動(dòng)變換模型的求解方法,但對(duì)于自由度高的機(jī)械臂求解過(guò)程復(fù)雜;李揚(yáng)等[8]提出1 種基于BP 神經(jīng)網(wǎng)絡(luò)求解逆運(yùn)動(dòng)學(xué)方法,解決了多解性的問(wèn)題,但精度較低;Ahmed 等[9]提出1 種基于軸不變方法的逆運(yùn)動(dòng)學(xué)解析解,提高了機(jī)械臂末端執(zhí)行器位置和姿態(tài)的精度,但沒(méi)有滿足實(shí)時(shí)性要求。在逆運(yùn)動(dòng)學(xué)問(wèn)題中,存在復(fù)雜的非線性關(guān)系,殘差BP 神經(jīng)網(wǎng)絡(luò)具有強(qiáng)大的非線性映射能力、出色的泛化能力且魯棒性較強(qiáng),可更好地捕捉這些復(fù)雜性。相對(duì)于普通BP 神經(jīng)網(wǎng)絡(luò)[10-13],殘差BP 神經(jīng)網(wǎng)絡(luò)在訓(xùn)練深層網(wǎng)絡(luò)時(shí)更易收斂,性能更好。鑒于此,采用殘差BP 神經(jīng)網(wǎng)絡(luò)改進(jìn)Baxter 機(jī)器人的逆運(yùn)動(dòng)學(xué)分析,以期在提高模型訓(xùn)練效率、減小誤差的同時(shí),保持神經(jīng)網(wǎng)絡(luò)在逆運(yùn)動(dòng)學(xué)建模中的表達(dá)能力,實(shí)現(xiàn)Baxter 機(jī)器人七自由度機(jī)械臂逆運(yùn)動(dòng)學(xué)高效準(zhǔn)確的求解。
參考文獻(xiàn)[14],建立Baxter 機(jī)器人七自由度機(jī)械臂的D-H 連桿坐標(biāo)系,便于對(duì)機(jī)械臂進(jìn)行正逆運(yùn)動(dòng)學(xué)分析;在此基礎(chǔ)上,提出1 種基于殘差BP 神經(jīng)網(wǎng)絡(luò)方法求解機(jī)械臂的關(guān)節(jié)角度;將訓(xùn)練好的關(guān)節(jié)角度通過(guò)話題發(fā)布,訂閱到物體抓取的腳本中,運(yùn)用合理的軌跡和路徑規(guī)劃使Baxter 機(jī)器人高效、準(zhǔn)確地完成物體抓取任務(wù)。
Baxter 機(jī)器人七自由度的機(jī)械臂如圖1 所示,機(jī)械臂的關(guān)節(jié)系統(tǒng)包括肩關(guān)節(jié)(S0)、肘關(guān)節(jié)(S1)、旋轉(zhuǎn)關(guān)節(jié)0(E0)、旋轉(zhuǎn)關(guān)節(jié)1(E1)、腕關(guān)節(jié)0(W0)、腕關(guān)節(jié)1(W1)和腕關(guān)節(jié)2(W2)。肩關(guān)節(jié)允許機(jī)械臂在水平平面上旋轉(zhuǎn),改變工作方向;肘關(guān)節(jié)使機(jī)械臂能夠垂直彎曲和伸展,調(diào)整臂長(zhǎng);旋轉(zhuǎn)關(guān)節(jié)0 允許機(jī)械臂繞自身軸線旋轉(zhuǎn);旋轉(zhuǎn)關(guān)節(jié)1 使機(jī)械臂在水平平面上旋轉(zhuǎn),擴(kuò)展工作范圍;腕關(guān)節(jié)0 和腕關(guān)節(jié)1 分別實(shí)現(xiàn)水平和垂直方向的傾斜,調(diào)整手臂姿態(tài);腕關(guān)節(jié)2 負(fù)責(zé)末端的精確旋轉(zhuǎn),用于物體定位和操作。
圖1 Baxter 機(jī)器人單個(gè)機(jī)械臂的關(guān)節(jié)示意圖Fig.1 A joint diagram of a single robotic arm of a Baxter robot
Baxter 機(jī)器人單個(gè)機(jī)械臂共7 個(gè)自由度,建立如圖2 所示的機(jī)械臂D-H 連桿坐標(biāo)系。
圖2 Baxter 機(jī)器人的機(jī)械臂D-H 連桿坐標(biāo)系Fig.2 D-H linkage coordinate system of Baxter robot
圖中:機(jī)械臂偏移長(zhǎng)度L0,L1,L2,L3,L4,L5,L6分別為270.35, 69.00, 364.35, 69.00, 374.29, 10.00,368.30 mm;機(jī)械臂對(duì)應(yīng)連桿參數(shù)用an(連桿長(zhǎng)度)、αn(連桿扭角)、dn(連桿距離)、 θn(連桿夾角)表示;n=1,2,...,7 , 表示第n個(gè)關(guān)節(jié);D-H 參數(shù)表征機(jī)械臂運(yùn)動(dòng)時(shí)的狀態(tài),機(jī)械臂D-H 參數(shù)見(jiàn)表1。
表1 Baxter 機(jī)器人的機(jī)械臂D-H 參數(shù)Tab.1 D-H parameter of Baxter robot’s robotic arm
由表1 可知關(guān)節(jié)角度 θ與連桿夾角的關(guān)系為θ=θ1θ2θ3θ4θ5θ6θ7,關(guān)節(jié)變量代表機(jī)械臂每個(gè)關(guān)節(jié)的特定狀態(tài),故通過(guò)控制關(guān)節(jié)角度,Baxter 機(jī)器人的機(jī)械臂可實(shí)現(xiàn)運(yùn)動(dòng)和位置調(diào)整。
機(jī)械臂的正運(yùn)動(dòng)學(xué)是根據(jù)機(jī)械臂關(guān)節(jié)變量計(jì)算機(jī)械臂末端執(zhí)行器位姿和位置的過(guò)程,在機(jī)械臂控制系統(tǒng)中,正運(yùn)動(dòng)學(xué)是實(shí)現(xiàn)機(jī)械臂運(yùn)動(dòng)控制和目標(biāo)位姿完成的重要部分[15-16]?;诮⒌臋C(jī)械臂坐標(biāo)系,機(jī)械臂正運(yùn)動(dòng)學(xué)涉及計(jì)算變換矩陣、末端執(zhí)行器位置和姿態(tài)3 個(gè)步驟。Baxter 機(jī)器人的正運(yùn)動(dòng)學(xué)奇次變換矩陣如式(1)
其中:sθi=sinθi,cθi=cosθi,sαi=sinαi,cαi=cosαi。正逆運(yùn)動(dòng)學(xué)之間的關(guān)系是互逆的,正運(yùn)動(dòng)學(xué)提供從關(guān)節(jié)角度到末端執(zhí)行器位置和姿態(tài)的映射,而逆運(yùn)動(dòng)學(xué)提供從末端執(zhí)行器位置和姿態(tài)到關(guān)節(jié)角度的映射,如圖3 所示。正運(yùn)動(dòng)學(xué)和逆運(yùn)動(dòng)學(xué)可互相補(bǔ)充,能夠使關(guān)節(jié)空間和工作空間之間進(jìn)行轉(zhuǎn)換和計(jì)算。
圖3 正逆運(yùn)動(dòng)學(xué)關(guān)系Fig.3 Forward and inverse kinematics relationship
Baxter 機(jī)器人的逆運(yùn)動(dòng)學(xué)問(wèn)題是一個(gè)多自由度、非線性和高度耦合的問(wèn)題。為解決這一挑戰(zhàn)性的問(wèn)題,文中通過(guò)采集大量機(jī)械臂末端執(zhí)行器位置和歐拉角數(shù)據(jù),引入殘差BP 神經(jīng)網(wǎng)絡(luò)對(duì)逆運(yùn)動(dòng)學(xué)非線性方程組進(jìn)行設(shè)計(jì)優(yōu)化,為機(jī)器人在復(fù)雜環(huán)境中更智能、適應(yīng)性更強(qiáng)的運(yùn)動(dòng)規(guī)劃提供有效手段。
對(duì)于機(jī)械臂逆運(yùn)動(dòng)學(xué)分析,需根據(jù)機(jī)械臂位姿矩陣的平移和旋轉(zhuǎn)變量,反向計(jì)算出7 個(gè)關(guān)節(jié)的關(guān)節(jié)角度。殘差BP 神經(jīng)網(wǎng)絡(luò)是1 種由多層前饋神經(jīng)元組成的網(wǎng)絡(luò)模型,具有較強(qiáng)的非線性擬合能力、自學(xué)習(xí)能力和容錯(cuò)能力,適用于求解多輸入多輸出的非線性復(fù)雜系統(tǒng)[17-18],被廣泛應(yīng)用于解決多輸入多輸出的非線性復(fù)雜問(wèn)題。因此,文中基于Baxter機(jī)器人的機(jī)械臂結(jié)構(gòu)特征,構(gòu)建殘差BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),預(yù)測(cè)機(jī)械臂關(guān)節(jié)角度,實(shí)現(xiàn)機(jī)械臂逆運(yùn)動(dòng)學(xué)求解。
針對(duì)Baxter 機(jī)器人的右機(jī)械臂,進(jìn)行逆向運(yùn)動(dòng)學(xué)非線性方程組的分析,設(shè)計(jì)的殘差BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖4。
圖4 殘差BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Residual BP neural network structure
在該網(wǎng)絡(luò)結(jié)構(gòu)中,選取右機(jī)械臂末端位姿的平移和旋轉(zhuǎn)信息作為輸入向量X:
通過(guò)編碼器、慣性測(cè)量單元、位置傳感器和力傳感器獲取機(jī)械臂末端位置 [x,y,z] 和 歐拉角 [θx,θy,θz]。神經(jīng)網(wǎng)絡(luò)的輸出為機(jī)械臂7 個(gè)關(guān)節(jié)角度變量,構(gòu)成輸出向量Y:
由圖4 可知:設(shè)計(jì)的殘差BP 神經(jīng)網(wǎng)絡(luò)主要由3 個(gè)長(zhǎng)短期記憶(long short-term memory,LSTM)層、線性層1、校正的線性單元(rectified linear unitsm,ReLu)激活函數(shù)層、線性層2 組成。LSTM 是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN),主要是處理序列數(shù)據(jù),用來(lái)捕捉序列中的長(zhǎng)期依賴關(guān)系,每個(gè)時(shí)間步的輸入都與前面的時(shí)間步有關(guān),從而滿足輸入數(shù)據(jù)的這種序列依賴關(guān)系。LSTM 通過(guò)門(mén)控機(jī)制有效地解決了梯度消失和爆炸問(wèn)題,使網(wǎng)絡(luò)更穩(wěn)定地訓(xùn)練。通過(guò)訓(xùn)練好的LSTM 殘差BP 神經(jīng)網(wǎng)絡(luò),可更快速高效地計(jì)算出各個(gè)關(guān)節(jié)的角度,從而簡(jiǎn)化逆運(yùn)動(dòng)學(xué)的計(jì)算。LSTM 層的輸入維度為1×6,層數(shù)為3,輸入數(shù)據(jù)通過(guò)LSTM 層進(jìn)行序列建模后輸出維度變成1×64。
LSTM 層后續(xù)的線性層和激活函數(shù)層結(jié)構(gòu)參數(shù)如圖5。通過(guò)線性層1(f1),對(duì)LSTM 的輸出進(jìn)行線性變換,將輸出的特征維度從1×64 變換為64×64;再經(jīng)過(guò)ReLU 激活函數(shù)層進(jìn)行非線性變換,既增加了模型的非線性,也使序列信息轉(zhuǎn)換為新的形式;最后經(jīng)過(guò)線性層2(f2),對(duì)上一層輸出進(jìn)行線性變換,特征維度從64×7 變換為輸出1×7 的機(jī)械臂7 個(gè)關(guān)節(jié)角度數(shù)據(jù)。
圖5 線性層和激活函數(shù)層結(jié)構(gòu)參數(shù)Fig.5 Structure parameter of linear layer and activation function layer
線性層1(f1)是神經(jīng)網(wǎng)絡(luò)模型的一個(gè)重要組成部分,對(duì)輸入進(jìn)行線性變換,用來(lái)捕捉輸入數(shù)據(jù)中的特征,為后續(xù)的學(xué)習(xí)和決策提供更有用的信息。這一步是整個(gè)模型中的關(guān)鍵環(huán)節(jié),有助于模型更好地理解和學(xué)習(xí)任務(wù)中的復(fù)雜關(guān)系,線性層1(f1)如式(5)。
其中:f1為輸出變量;W1為權(quán)重矩陣;x為輸入變量;b1為偏差向量。激活函數(shù)層(ReLU)是在神經(jīng)網(wǎng)絡(luò)中引入非線性,幫助模型更好地學(xué)習(xí)復(fù)雜的模式和特征。當(dāng)輸入的是正數(shù)時(shí),直接輸出該值;當(dāng)輸入的是負(fù)數(shù)時(shí),輸出為零。這種簡(jiǎn)單而有效的非線性轉(zhuǎn)換使神經(jīng)網(wǎng)絡(luò)能夠更好地適應(yīng)各種復(fù)雜的任務(wù),激活函數(shù)層(ReLU)如式(6)。
線性層(f2)通過(guò)對(duì)ReLU 函數(shù)的輸出進(jìn)行線性變換,進(jìn)一步學(xué)習(xí)和捕捉特征間復(fù)雜關(guān)系,為最終的任務(wù)提供更豐富的表示能力,線性層(f2)如式(7)。
其中:f2為輸出變量;W2為權(quán)重矩陣;b2為偏差向量。殘差BP 神經(jīng)網(wǎng)絡(luò)的優(yōu)化目標(biāo)為均方誤差損失函數(shù),如式(8)。
其中:Lmse為損失函數(shù);yt為真實(shí)目標(biāo)值;y∧為預(yù)測(cè)目標(biāo)值;n為數(shù)據(jù)集樣本量。殘差BP 神經(jīng)網(wǎng)絡(luò)的優(yōu)化器為Adam,通過(guò)自適應(yīng)地調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率,可更快地收斂到較優(yōu)解。在Adam 中指定的初始學(xué)習(xí)率l(learning rate)為0.001,學(xué)習(xí)率調(diào)度器的訓(xùn)練周期為100,通過(guò)式(9)調(diào)整每次學(xué)習(xí)率。
學(xué)習(xí)率變化曲線如圖6 記錄機(jī)械臂訓(xùn)練過(guò)程中每輪的學(xué)習(xí)率,并圖形的方式表現(xiàn),如圖6。
圖6 學(xué)習(xí)率的變化曲線Fig.6 Variation curve of learning rate
訓(xùn)練次數(shù)下的學(xué)習(xí)率一般分為如下3 階段:
1) 初始階段(early training) 初始時(shí)學(xué)習(xí)率較大,有助于模型快速收斂,模型的權(quán)重參數(shù)一般會(huì)快速調(diào)整。
2) 逐漸降低階段(gradual decay) 隨著訓(xùn)練的進(jìn)行,學(xué)習(xí)率逐漸減小,可采用余弦退火學(xué)習(xí)率更加精細(xì)地調(diào)整權(quán)重參數(shù),以更好地適應(yīng)訓(xùn)練數(shù)據(jù)。
3) 穩(wěn)定階段(stable phase) 學(xué)習(xí)率趨近于0,表示模型在穩(wěn)定狀態(tài)下進(jìn)行訓(xùn)練,較小的學(xué)習(xí)率有助于模型在局部最小值附近更精確地搜索。
綜合來(lái)說(shuō),學(xué)習(xí)率的調(diào)度策略一般在訓(xùn)練早期階段使用較大的學(xué)習(xí)率以加速模型收斂,在后期逐漸減小學(xué)習(xí)率以提高模型的穩(wěn)定性和泛化能力。
使用真實(shí)輸出結(jié)果更新殘差BP 神經(jīng)網(wǎng)絡(luò)的權(quán)重,可獲得更準(zhǔn)確的輸出值[19]。殘差BP 神經(jīng)網(wǎng)絡(luò)有助于網(wǎng)絡(luò)更好地適應(yīng)復(fù)雜的非線性映射關(guān)系,且通過(guò)殘差學(xué)習(xí)可加速模型的訓(xùn)練和收斂。這些特性使得殘差BP 神經(jīng)網(wǎng)絡(luò)在處理Baxter 機(jī)器人的逆運(yùn)動(dòng)學(xué)問(wèn)題時(shí)具有一定的優(yōu)勢(shì),有利于提高求解的效率和精度,有效解決機(jī)械臂逆向運(yùn)動(dòng)學(xué)計(jì)算問(wèn)題。
為證實(shí)殘差學(xué)習(xí)可提高模型的準(zhǔn)確性,將殘差BP 神經(jīng)網(wǎng)絡(luò)和普通BP 神經(jīng)網(wǎng)絡(luò)用于Baxter 機(jī)器人的逆運(yùn)動(dòng)學(xué)分析,通過(guò)預(yù)測(cè)Baxter 機(jī)械臂末端執(zhí)行器的位置和歐拉角,實(shí)現(xiàn)對(duì)機(jī)械臂關(guān)節(jié)角度的控制?;赨buntu 18.04 操作系統(tǒng),通過(guò)Rviz 軟件加載Baxter 機(jī)器人模型,如圖7。首先,通過(guò)Baxter 機(jī)器人右臂末端執(zhí)行器采集140 組位置和歐拉角數(shù)據(jù)樣本,進(jìn)行逆運(yùn)動(dòng)學(xué)求解;其次,進(jìn)行1 500 輪的訓(xùn)練,對(duì)比2 種方法的均方誤差,比較分析殘差BP 神經(jīng)網(wǎng)絡(luò)模型的性能。
圖7 Rviz 中的Baxter 機(jī)器人模型Fig.7 Baxter robot model in Rviz
根據(jù)作業(yè)要求,確定機(jī)器人關(guān)節(jié)旋轉(zhuǎn)角度的范圍,見(jiàn)表2。將輸入和輸出的關(guān)節(jié)角度限定在合理范圍內(nèi),確保機(jī)械臂的運(yùn)動(dòng)符合實(shí)際物理約束[20]。通過(guò)這樣的限制,殘差神經(jīng)網(wǎng)絡(luò)可更精確地學(xué)習(xí)和預(yù)測(cè)機(jī)械臂的關(guān)節(jié)角度,實(shí)現(xiàn)逆運(yùn)動(dòng)學(xué)的求解。
表2 關(guān)節(jié)旋轉(zhuǎn)角度范圍Tab.2 Joint rotation angle range
采集140 組機(jī)械臂末端位置和歐拉角(x,y,z,θx,θy,θz),選取100 組作為訓(xùn)練數(shù)據(jù)、20 組作為驗(yàn)證集數(shù)據(jù)、20 組作為預(yù)測(cè)數(shù)據(jù)。通過(guò)Python 編寫(xiě)程序,進(jìn)行訓(xùn)練;在訓(xùn)練過(guò)程中,持續(xù)調(diào)整參數(shù)。通過(guò)對(duì)比仿真結(jié)果確定殘差BP 神經(jīng)網(wǎng)絡(luò)參數(shù):目標(biāo)誤差為0.006,總參數(shù)為89 607。
殘差BP 神經(jīng)網(wǎng)絡(luò)與普通BP 神經(jīng)網(wǎng)絡(luò)誤差訓(xùn)練曲線如圖8。由圖8 可看出:從訓(xùn)練開(kāi)始到第1 500 輪的過(guò)程中,初始時(shí)2 種方法的均方誤差較高;隨著訓(xùn)練的進(jìn)行,訓(xùn)練至第500 次時(shí),均方誤差均明顯下降;隨后殘差BP 神經(jīng)網(wǎng)絡(luò)的均方誤差明顯低于普通BP 神經(jīng)網(wǎng)絡(luò),至第1 500 輪次時(shí),殘差和普通BP 神經(jīng)網(wǎng)絡(luò)的均方誤差分別為0.006,0.782,相差0.776??梢?jiàn),與普通BP 神經(jīng)網(wǎng)絡(luò)相比,殘差BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的精度顯著提升。
圖8 殘差與普通BP 神經(jīng)網(wǎng)絡(luò)誤差訓(xùn)練曲線Fig.8 Error training curves of residual and ordinary BP neural networks
均方根誤差(root mean squared error,RMSE)是1 種度量模型預(yù)測(cè)值與實(shí)際觀測(cè)值之間的差異指標(biāo);決定系數(shù)(R2)是用來(lái)衡量模型對(duì)觀測(cè)數(shù)據(jù)變異性解釋程度的1 種指標(biāo),取值范圍為[0,1],越接近1,說(shuō)明擬合程度越好。為量化分析殘差BP 神經(jīng)網(wǎng)絡(luò)模型的性能,選取RMSE 和R2作為學(xué)習(xí)模型的評(píng)估系數(shù),計(jì)算公式如下:
殘差BP 神經(jīng)網(wǎng)絡(luò)模型驗(yàn)證集的RMSE 和R2的結(jié)果如表3。分析表3 的RMSE 可知:關(guān)節(jié)1,3和6 的RMSE 較低,分別為0.015 9,0.016 6,0.015 0,表明殘差BP 神經(jīng)網(wǎng)絡(luò)模型對(duì)這3 個(gè)關(guān)節(jié)的預(yù)測(cè)非常準(zhǔn)確;余下關(guān)節(jié)的RMSE 均在合理范圍內(nèi),整體的模型性能較穩(wěn)定。分析表3 的R2可知:所有關(guān)節(jié)的R2都非常接近1,表明殘差BP 神經(jīng)網(wǎng)絡(luò)模型對(duì)驗(yàn)證集上的數(shù)據(jù)具有很好的擬合能力;關(guān)節(jié)3 的R2最高,達(dá)0.999 8,說(shuō)明模型對(duì)該關(guān)節(jié)的擬合效果最優(yōu);關(guān)節(jié)7 的R2較低,為0.989 1,在合理范圍內(nèi),模型對(duì)該關(guān)節(jié)的擬合效果較好。
表3 驗(yàn)證集上的預(yù)測(cè)結(jié)果Tab.3 Prediction results on the validation set
綜合RMSE 和R2可得出:殘差BP 神經(jīng)網(wǎng)絡(luò)模型對(duì)Baxter 機(jī)械臂關(guān)節(jié)的預(yù)測(cè)均比較出色,關(guān)節(jié)2,4 和5 的RMSE 稍高,但R2接近1;殘差BP 神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練的機(jī)械臂逆運(yùn)動(dòng)學(xué)在驗(yàn)證集上取得良好效果,能夠準(zhǔn)確預(yù)測(cè)機(jī)械臂關(guān)節(jié)位置。因此,采用殘差BP 神經(jīng)網(wǎng)絡(luò),引入殘差學(xué)習(xí)機(jī)制,強(qiáng)調(diào)網(wǎng)絡(luò)層之間的殘差連接,可提高模型訓(xùn)練效率和收斂速度。
為驗(yàn)證殘差BP 神經(jīng)網(wǎng)絡(luò)在Baxter 機(jī)器人雙臂協(xié)同抓取放置任務(wù)中的效果,實(shí)現(xiàn)Baxter 機(jī)器人在家庭服務(wù)應(yīng)用場(chǎng)景中的雙臂協(xié)同操作(包括物體抓取和放置),選取紅辣椒、橙子、蘋(píng)果、面包4 種物體進(jìn)行雙臂協(xié)同抓取放置實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)通信方式如圖9 所示,在ROS 中建立2 個(gè)關(guān)鍵節(jié)點(diǎn):發(fā)布節(jié)點(diǎn)joint_angles_publisher,將Baxter 機(jī)械臂的7 個(gè)關(guān)節(jié)角度數(shù)據(jù)以joint_state.msg 消息類型的格式發(fā)布到ROS 話題/predicted_joint_angles 上;訂閱節(jié)點(diǎn)joint_angles_subscriber,訂閱同一話題,接收關(guān)節(jié)角度數(shù)據(jù)。
圖9 關(guān)節(jié)角度話題通信Fig.9 Topic communication of joint angle
將4 種待抓取物體逐一擺放在操作臺(tái)上,開(kāi)啟Baxter 機(jī)器人,然后啟動(dòng)Baxter 機(jī)器人動(dòng)作服務(wù)器以及編寫(xiě)的launch 文件,建立關(guān)鍵通信節(jié)點(diǎn)、通過(guò)話題的方式進(jìn)行數(shù)據(jù)通信,選擇4 種物體分別用殘差BP 神經(jīng)網(wǎng)絡(luò)和普通BP 神經(jīng)網(wǎng)絡(luò)分別進(jìn)行10 次抓取實(shí)驗(yàn),統(tǒng)計(jì)每種物體10 次抓取的成功次數(shù),并計(jì)算成功率。基于殘差BP 神經(jīng)網(wǎng)絡(luò)的Baxter 機(jī)器人雙臂協(xié)同流程見(jiàn)圖10。
圖10 Baxter 機(jī)器人雙臂協(xié)同流程圖Fig.10 Flowchart of Baxter robot’s dual-arm collaborative process
Baxter 機(jī)器人雙臂協(xié)同主要步驟如下:
1) 右機(jī)械臂進(jìn)行平行夾爪的校準(zhǔn),采用殘差BP 神經(jīng)網(wǎng)絡(luò)將位置信息進(jìn)行映射和歸一化的訓(xùn)練后得到右機(jī)械臂7 個(gè)關(guān)節(jié)角度信息,通過(guò)關(guān)節(jié)角度信息確定右機(jī)械臂的姿態(tài);
2) 右機(jī)械臂的平行夾爪移動(dòng)到目標(biāo)物體的抓取位置,一旦右機(jī)械臂的平行夾爪到達(dá)抓取位置,夾爪關(guān)閉,完成抓取動(dòng)作;
3) 右機(jī)械臂移動(dòng)到物體的待放置位置,同時(shí)左機(jī)械臂的末端執(zhí)行器移動(dòng)到物體的放置位置;
4) 右機(jī)械臂以5 cm 的垂直距離向下移動(dòng),打開(kāi)平行夾爪,將物體放置在指定的托盤(pán)中,從而完成雙臂協(xié)同抓取放置實(shí)驗(yàn)。
Baxter 機(jī)器人雙臂協(xié)同抓取實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)如表4。由表4 可看出:對(duì)于紅辣椒、橙子、蘋(píng)果、面包4 種物體,10 次實(shí)驗(yàn)中,基于普通BP 神經(jīng)網(wǎng)絡(luò)的機(jī)器人抓取成功次數(shù)分別為6,7,7,6,平均成功率為65.0%;基于殘差BP 神經(jīng)網(wǎng)絡(luò)的機(jī)器人抓取成功次數(shù)分別為9,8,9,9,平均成功率為87.5%,相較于普通BP 神經(jīng)網(wǎng)絡(luò)提高22.5%。
表4 抓取實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果Tab.4 Capture experimental statistical results
實(shí)驗(yàn)過(guò)程中Baxter 機(jī)器人在Rviz 中末端執(zhí)行器的運(yùn)動(dòng)軌跡如圖11,不同目標(biāo)物體對(duì)應(yīng)的抓取場(chǎng)景如圖12。圖11 中,藍(lán)色曲線表示機(jī)械臂末端軌跡;從起始位姿開(kāi)始,右機(jī)械臂通過(guò)獲得訓(xùn)練好的關(guān)節(jié)角度,以話題的方式發(fā)布數(shù)據(jù)使右機(jī)械臂移動(dòng)到相應(yīng)位置;抓取到目標(biāo)物體后,移動(dòng)到待放置位置;然后左機(jī)械臂(含托盤(pán),見(jiàn)圖12)移動(dòng)到待放置位置下方,右機(jī)械臂向正下方靠近打開(kāi)夾爪,目標(biāo)物體放置托盤(pán)上,完成雙臂協(xié)同操作。
圖11 Baxter 機(jī)器人的機(jī)械臂末端實(shí)際軌跡Fig.11 Actual trajectory of the robotic arm end of Baxter robot
圖12 Baxter 機(jī)器人的機(jī)械臂實(shí)物抓取Fig.12 Physical grabbing of Baxter robotic arm
綜上可看出:通過(guò)殘差BP 神經(jīng)網(wǎng)絡(luò)對(duì)Baxter七自由度機(jī)械臂逆運(yùn)動(dòng)學(xué)進(jìn)行建模,將位置和歐拉角擬合成Baxter 機(jī)器人右臂的7 個(gè)關(guān)節(jié)角度,模型在處理逆運(yùn)動(dòng)學(xué)問(wèn)題上具有較強(qiáng)的表達(dá)能力和泛化能力;將訓(xùn)練好的關(guān)節(jié)角度以話題的形式發(fā)布訂閱,采用殘差BP 神經(jīng)網(wǎng)絡(luò)計(jì)算單點(diǎn)的時(shí)間約8.1 ms,遠(yuǎn)小于機(jī)械臂運(yùn)動(dòng)規(guī)劃的控制周期,實(shí)現(xiàn)了實(shí)時(shí)性的要求;殘差BP 神經(jīng)網(wǎng)絡(luò)在1 500 次訓(xùn)練輪數(shù)下的均方誤差為0.006,相較于普通BP 神經(jīng)網(wǎng)絡(luò)減小0.077,殘差學(xué)習(xí)的引入對(duì)模型的誤差減小起到積極作用;在物體抓取放置實(shí)驗(yàn)中,殘差BP 神經(jīng)網(wǎng)絡(luò)的抓取成功率為87.5%,相較于普通BP 神經(jīng)網(wǎng)絡(luò)提高了22.5%,由此表明,利用殘差BP 神經(jīng)網(wǎng)絡(luò)擬合機(jī)械臂逆運(yùn)動(dòng)學(xué)模型的方法在機(jī)械臂軌跡跟蹤任務(wù)中具有良好的精度和穩(wěn)定性。
為提高Baxter 七自由度機(jī)械臂的運(yùn)動(dòng)精度和魯棒性,提出一種基于殘差BP 神經(jīng)網(wǎng)絡(luò)逆運(yùn)動(dòng)學(xué)分析方法。通過(guò)采集大量機(jī)械臂末端執(zhí)行器位置和歐拉角數(shù)據(jù),并利用殘差BP 神經(jīng)網(wǎng)絡(luò)對(duì)Baxter 機(jī)械臂進(jìn)行逆運(yùn)動(dòng)學(xué)分析,建立機(jī)械臂工作空間到關(guān)節(jié)空間的映射關(guān)系,選擇合適的神經(jīng)網(wǎng)絡(luò)模型激勵(lì)函數(shù)、隱藏層神經(jīng)元數(shù)量、神經(jīng)網(wǎng)絡(luò)層數(shù)以及學(xué)習(xí)速率等關(guān)鍵參數(shù)構(gòu)建殘差BP 神經(jīng)網(wǎng)絡(luò)模型,通過(guò)殘差學(xué)習(xí)加速模型的訓(xùn)練和收斂,提高模型的性能和精準(zhǔn)度。逆運(yùn)動(dòng)學(xué)仿真分析和雙臂協(xié)同實(shí)驗(yàn)成功驗(yàn)證了殘差BP 神經(jīng)網(wǎng)絡(luò)的優(yōu)越性,利用殘差BP 神經(jīng)網(wǎng)絡(luò)擬合機(jī)械臂逆運(yùn)動(dòng)學(xué)模型的方法在機(jī)械臂軌跡跟蹤任務(wù)中具有良好的精度和穩(wěn)定性。未來(lái)的研究可探索更多神經(jīng)網(wǎng)絡(luò)模型和算法,以進(jìn)一步提高機(jī)械臂的運(yùn)動(dòng)精準(zhǔn)度和魯棒性,推動(dòng)機(jī)械臂在實(shí)際工作中的應(yīng)用。