周帥,劉曉鳴
(南京航空航天大學機電學院,江蘇南京 210016)
隨著機器人技術(shù)的迅速發(fā)展,機器人在工業(yè)生產(chǎn)中得到了更加廣泛的應(yīng)用,其中機器人力控制是目前工業(yè)機器人的主要研究方向之一,研究機器人力控制技術(shù)具有重要意義[1]。工業(yè)機器人在進行磨削、拋光和裝配等接觸性作業(yè)時,由于機器人末端與工件表面的接觸力常常難以得到有效控制,容易造成工件表面的損傷,嚴重時甚至會損壞機器人,因此需要同時對機器人進行力和位置控制[2]。機器人的力控制中又分為被動力控制和主動力控制,機器人憑借一些輔助的柔順機構(gòu)(如彈簧、阻尼等),使它在與環(huán)境接觸時能夠?qū)ν獠孔饔昧Ξa(chǎn)生自然順從,這種方式被稱為被動力控制;機器人利用力的反饋信息,采用一定的控制策略主動控制作用力的方式被稱為主動力控制[3]。由于被動力控制的適應(yīng)能力比較差,并且力控制的準確度較低,所以主動力控制成為現(xiàn)在的主流。
主動力控制一般可以歸結(jié)為四大類:阻抗控制策略[4]、力/位混合控制策略[5]、自適應(yīng)控制策略和智能控制策略[6]。基于以上4種力控制策略,國內(nèi)外學者對工業(yè)機器人加工過程中的力控制做了大量研究。XU等[7]提出了一種力/位置混合控制與PI/PD控制相結(jié)合的方法,應(yīng)用于復雜幾何形狀的機器人砂帶磨削。張洪瑤等[8]提出了一種基于模糊PID的力/位混合控制策略應(yīng)用于機器人自動化葉片磨削系統(tǒng)中,相比于傳統(tǒng) PID 控制策略,接觸力控制效果和葉片加工質(zhì)量都有較大的改善。AHMADI等[9]提出了一種用于工業(yè)機器人的聯(lián)合視覺與力的控制方法,用于控制機器人與環(huán)境的相互作用力,同時可以跟蹤工件上的所需路徑。吳炳龍等[10]提出一種基于位置控制的工業(yè)機器人力跟蹤剛度控制,該方法通過力閉環(huán)的積分控制實現(xiàn)力的直接控制,通過剛度控制實現(xiàn)力的間接控制,兩者的結(jié)合可以讓機器人控制更像人類與外界的交互方式。
為了解決機器人自動化磨削過程中的磨削力控制問題,本文作者提出一種基于神經(jīng)網(wǎng)絡(luò)算法的工業(yè)機器人力控制方法,并搭建一套機器人自動化磨削系統(tǒng),驗證所提出的力控制方法。
神經(jīng)網(wǎng)絡(luò)是20世紀 40 年代由美國數(shù)學家 PITTS 和心理學家MC CULLOCH首次提出的[11]。神經(jīng)網(wǎng)絡(luò)類似于人的腦神經(jīng),以神經(jīng)元作為基本單元,神經(jīng)元之間相互連接形成一個網(wǎng)絡(luò)。在輸入大量的訓練數(shù)據(jù)和參數(shù)之后,神經(jīng)元會不斷地學習,不斷地傳遞信息,然后從這些復雜的數(shù)據(jù)中,找出其共同點和規(guī)律。神經(jīng)元以平行排列的方式排列,每層都具有各自的作用,不同層的神經(jīng)元之間相互連接在一起,網(wǎng)絡(luò)中的信息通過神經(jīng)元之間的傳遞和處理,組成一個完整的神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)具體所實現(xiàn)的功能取決于其結(jié)構(gòu)、權(quán)值、偏置值還有其神經(jīng)元模型。神經(jīng)元是神經(jīng)網(wǎng)絡(luò)的基本計算單元,也被稱作節(jié)點或者單元。它既能接收其他神經(jīng)元的輸入,又能從外部直接接收信號,然后計算一個輸出。最后通過輸出數(shù)據(jù)與訓練數(shù)據(jù)的差值反向傳播修正權(quán)重參數(shù)w和偏置參數(shù)b,使得模型預測值與訓練數(shù)據(jù)值逐漸一致。神經(jīng)元的結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)元結(jié)構(gòu)示意
其中:x1,x2,x3,… ,xn是神經(jīng)元的多維度輸入;w1,w2,w3,… ,wn是各個維度輸入數(shù)據(jù)與神經(jīng)元之間的權(quán)值;∑為求和公式,它表示將神經(jīng)元的輸入xi與對應(yīng)的權(quán)值wi相乘再求和;b是神經(jīng)元的偏置值;f(·)是神經(jīng)元的激活函數(shù),它能夠?qū)⑤斎氲臄?shù)據(jù)經(jīng)過一定的變換,把輸出結(jié)果限定在規(guī)定的范圍內(nèi);y是神經(jīng)元的輸出,其表達式如下所示:
y=f(WX+b)
(1)
其中:X=[x1,x2,x3,…,xn];W=[w1,w2,w3,…,wn]T。
文中構(gòu)建的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。整個網(wǎng)絡(luò)包括:輸入層、隱含層和輸出層。輸入層有一個神經(jīng)元,代表輸入的磨削力信息;隱含層有2層,每層有16個神經(jīng)元;輸出層有一個神經(jīng)元,代表輸入磨削力對應(yīng)的位移修正值。
圖2 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意
采用控制變量法選取學習率、激活函數(shù)、Epochs和Batch size等參數(shù),以保證神經(jīng)網(wǎng)絡(luò)的預測精度。經(jīng)過實驗,選取學習率為0.000 1,隱含層的激活函數(shù)LeakyRelu,Epochs為500。文中所構(gòu)建的神經(jīng)網(wǎng)絡(luò)選用的所有參數(shù)如表1所示。
表1 神經(jīng)網(wǎng)絡(luò)參數(shù)
隱含層1第k個神經(jīng)元的輸出為
ck=Max(0,wkx+bk)+0.2·Min(0,wkx+bk)k=1,2,…,p
(2)
其中:ck為隱含層1的輸出;wk為輸入層與隱含層1神經(jīng)元之間的連接權(quán)值;x為輸入數(shù)據(jù);bk為隱含層1的偏置值;n為輸入層神經(jīng)元的個數(shù);p為隱含層1的神經(jīng)元個數(shù)。
隱含層2第t個神經(jīng)元的輸出為
(3)
其中:dt為隱含層2的輸出;wtk為隱含層1與隱含層2神經(jīng)元之間的連接權(quán)值;btk為隱含層2的偏置值;q為隱含層2的神經(jīng)元個數(shù)。
輸出層的輸出為
(4)
其中:y為輸出層的輸出;wjt為隱含層2與輸出層神經(jīng)元之間的連接權(quán)值;bjt為輸出層的偏置值。
神經(jīng)網(wǎng)絡(luò)中各層神經(jīng)元的權(quán)值和偏置值都會在訓練過程中得到調(diào)整,從而減小神經(jīng)網(wǎng)絡(luò)的輸出與實際輸出之間的差距。神經(jīng)網(wǎng)絡(luò)的具體訓練流程如圖3所示。
圖3 神經(jīng)網(wǎng)絡(luò)算法流程
為了使神經(jīng)網(wǎng)絡(luò)的預測效果達到最佳狀態(tài),需要大量的實際數(shù)據(jù)對它進行訓練。文中當ABB機器人夾持工件磨削時,利用ATI六維力傳感器對法向磨削力進行采集(文中只針對法向磨削力進行研究),設(shè)置每秒鐘采集力信號1 000次,同時設(shè)置機器人法向進給速度為5 mm/s,從而可以獲得工件在磨削過程中法向磨削力與對應(yīng)的法向位移偏移量。使用獲得的實際數(shù)據(jù)對構(gòu)建好的神經(jīng)網(wǎng)絡(luò)進行訓練,再用訓練后的神經(jīng)網(wǎng)絡(luò)模型在測試數(shù)據(jù)上進行驗證,結(jié)果如圖4所示。
圖4 實際位移修正值和預測位移修正值對比
利用前面所構(gòu)建的神經(jīng)網(wǎng)絡(luò),設(shè)計出一種基于神經(jīng)網(wǎng)絡(luò)的機器人磨削力控制系統(tǒng)。其控制系統(tǒng)框圖如圖5所示。
圖5 機器人磨削力控制系統(tǒng)框圖
首先利用離線編程獲得機器人磨削加工軌跡,設(shè)定為離線軌跡;然后機器人控制器根據(jù)軌跡進行計算,得到各個關(guān)節(jié)所要轉(zhuǎn)動的角度,從而控制機器人運動。在磨削加工過程中,力傳感器對實際磨削力進行實時監(jiān)控,并將力信號反饋給訓練好的神經(jīng)網(wǎng)絡(luò)模型。通過神經(jīng)網(wǎng)絡(luò)模型預測得到機器人磨削加工的軌跡修正值,將離線軌跡與軌跡修正值相加,就可以得到機器人的預期軌跡,從而實現(xiàn)機器人的間接力控制。
以ABB機器人為中心,搭建一套工業(yè)機器人磨削系統(tǒng)。系統(tǒng)硬件部分包括:ABB 4600 六自由度工業(yè)機器人、砂帶機、ATI Omega160 IP65 六維力傳感器、POE交換機和PC上位機。工業(yè)機器人磨削系統(tǒng)如圖6所示。
圖6 工業(yè)機器人磨削系統(tǒng)
ABB公司提供了軟件開發(fā)包PC SDK,它可以使得用戶基于機器人控制器開發(fā)一些定制的PC應(yīng)用。由于PC SDK使用的是Microsoft.NET平臺,所以文中使用Microsoft Visual Studio軟件來開發(fā)機器人磨削系統(tǒng)上位機軟件,上位機軟件界面如圖7所示。該上位機軟件具有3種功能:(1)與ABB機器人控制器進行連接,可以對機器人進行遠程控制,實現(xiàn)機器人程序的運行和停止,并實時獲取機器人的狀態(tài);(2)與ATI力傳感器通過UDP協(xié)議進行通信,可設(shè)置力傳感器每隔20 ms向上位機發(fā)送一次力數(shù)據(jù),上位機接收到數(shù)據(jù)后,在上位機界面中以波形圖的形式實時顯示加工過程中機器人末端接觸力的變化,并記錄下來以便于后期分析;(3)將基于神經(jīng)網(wǎng)絡(luò)的力控制算法集成在上位機軟件中,能夠根據(jù)力傳感器的力信息實時計算機器人加工軌跡的位移修正值,并實時輸送給機器人控制器,再利用ABB機器人的Path Offset功能(即路徑偏移,可以理解為在機器人原有加工路徑的基礎(chǔ)上進行偏移。)完成加工軌跡的實時修正,從而實現(xiàn)機器人的間接力控制。
圖7 上位機軟件界面
力傳感器是整個系統(tǒng)的關(guān)鍵部件,它能夠?qū)C器人末端在加工過程中的接觸力進行實時監(jiān)控,并將力信號反饋給力控制器。在此基礎(chǔ)上,力信號通過訓練好的神經(jīng)網(wǎng)絡(luò)模型預測機器人磨削加工的軌跡修正值,并將軌跡修正值輸出給機器人控制器。機器人控制器對修正后的軌跡進行計算,得到期望加工軌跡,從而控制機器人本體進行運動,夾持工件在砂帶機上進行磨削,產(chǎn)生的接觸力由力傳感器測量再傳入力控制器。整個系統(tǒng)保持實時監(jiān)測,實時修正。整個系統(tǒng)的加工流程如圖8所示。
圖8 磨削系統(tǒng)加工流程
針對前面所設(shè)計的基于神經(jīng)網(wǎng)絡(luò)的機器人力控制方法,為了驗證其恒力控制效果,在所搭建的工業(yè)機器人磨削系統(tǒng)上進行了不同大小的磨削力跟蹤實驗,利用離線編程的磨削軌跡,使機器人夾持工件試件進行砂帶磨削。通過算法設(shè)定預期法向磨削力分別為20、25、30、35 N,再使用上位機軟件采集實驗過程中的法向磨削力,力跟蹤實驗波形如圖9所示。
圖9 力跟蹤實驗波形
可以看出:文中所提出的機器人力控制方法對于所設(shè)定的磨削力響應(yīng)迅速,且在機器人夾持工件試件進行磨削的過程中,對磨削軌跡進行實時修正,磨削過程中的實際法向磨削力在預先設(shè)定的磨削力上下6 N內(nèi)波動。驗證了基于神經(jīng)網(wǎng)絡(luò)的機器人力控制方法具有恒力控制效果,且對于設(shè)定的磨削力響應(yīng)迅速。
為驗證文中所提出的力控制方法在實際磨削加工過程中的有效性和機器人磨削系統(tǒng)的實用性,進行工件力控磨削實驗,加工對象為鈦合金平面工件。設(shè)置期望法向磨削力為40 N,實驗結(jié)果如圖10、圖11所示。
圖10 無力控(a)和有力控(b)的法向磨削力對比
圖11 無力控(a)和有力控(b)的工件表面對比
分析圖10可以看出:在無力控制的情況下,由于砂帶機和機器人在實際磨削過程中產(chǎn)生的頻繁震動,導致實際法向磨削力在50 N上下波動,且波動幅度較大,波動范圍在33~66 N;而在有力控制的情況下,法向磨削力在40 N上下波動,且波動幅度較小,波動范圍在34~46 N。圖11所示為無力控和有力控的工件表面對比,使用TR200粗糙度儀測量磨削后的工件表面(測量10次,取平均值),無力控制磨削后的工件表面粗糙度大約為0.501 2 μm,而經(jīng)過有力控制的磨削后,工件表面的粗糙度達到了大約0.316 6 μm,這說明有力控制磨削的工件表面更加光滑,且表面加工一致性更好。綜上,文中所提出的機器人力控制方法對實際磨削過程中的法向磨削力有良好的控制效果,使實際法向磨削力能夠在預設(shè)的磨削力上下6 N波動,波動范圍相較于無力控制時更小,并且有力控制磨削時的工件表面粗糙度更低,表面加工一致性更好。
(1)提出了一種基于神經(jīng)網(wǎng)絡(luò)的工業(yè)機器人力控制方法,通過實驗驗證了該力控制方法能夠?qū)C器人磨削時產(chǎn)生的法向磨削力進行有效控制,且響應(yīng)迅速,能夠使其在預設(shè)的磨削力上下6 N波動,相比在無力控制磨削的情況下,有效地降低了磨削后工件表面的粗糙度。
(2)搭建了一套工業(yè)機器人磨削系統(tǒng),并開發(fā)了相應(yīng)的上位機軟件,通過鈦合金試件磨削實驗,驗證了該磨削系統(tǒng)的實用性。