黃青紅,王兆權(quán),高裕強(qiáng)
(福州大學(xué) 機(jī)械工程及自動化學(xué)院,福建 福州 350108)
目前,隨著中國制造業(yè)的快速發(fā)展,工業(yè)機(jī)器人在制造過程中扮演著非常重要的角色。工業(yè)機(jī)器人能夠在工業(yè)生產(chǎn)中替代人完成具有繁瑣、危險等工作性質(zhì)的內(nèi)容,并確保工作精度。市面上的工業(yè)機(jī)器人大部分都提供示教器,操作者可以直接通過示教器的操縱桿來控制工業(yè)機(jī)器人的運(yùn)動,但要求操作者非常熟悉機(jī)器人的操作,并且需要較長的時間才能精確地到達(dá)示教點,而簡單快捷的直接示教方法能大幅度提升工作效率、降低使用難度。但國外絕大部分機(jī)械手其源代碼都是封閉的,比如ABB、UR、KUKA等機(jī)器人,導(dǎo)致不能夠直接從底層開發(fā)。因此,基于力引導(dǎo)的直接示教研究具有較大的實際意義[1-3]。
力引導(dǎo)示教是在工業(yè)機(jī)器人的末端外接1個六維力傳感器,操作者可以直接用手牽引工業(yè)機(jī)器人末端,末端上連接的六維力傳感器能夠?qū)崟r采集操作者對機(jī)械手作用力的大小與方向,再經(jīng)由各類算法的處理,按照不同的控制策略將運(yùn)動指令發(fā)給工業(yè)機(jī)器人,以實現(xiàn)相對應(yīng)的運(yùn)動到達(dá)示教點[4-5]。國外的研究人員已經(jīng)開發(fā)出了直接示教裝置應(yīng)用于生產(chǎn)中,Shuhei Ikemoto等人將直接示教運(yùn)用于仿生機(jī)器人手臂中,用于實現(xiàn)人機(jī)交互[6];Lee-Seunghon等人運(yùn)用2個六維力傳感器來控制機(jī)器人運(yùn)動,完成生產(chǎn)中去毛刺的示教任務(wù)[7];Chanyoung Song等人將此應(yīng)用于工業(yè)生產(chǎn)的感應(yīng)淬火[8]。
上述提及的直接示教裝置雖然已經(jīng)能夠直接應(yīng)用于示教,但是各類示教裝置都是根據(jù)實際加工任務(wù)的需要而設(shè)計的,并不具有通用性,無法在其他工業(yè)機(jī)器人中推廣。盡管目前的理工類高校中都開設(shè)工業(yè)機(jī)器人課程,但學(xué)生對工業(yè)機(jī)器人了解不夠,操作也不熟悉,使用示教器效率低下而且容易發(fā)生碰撞事故。因此基于力/力矩檢測實現(xiàn)工業(yè)機(jī)器人的手動示教顯得更為重要,無需對工業(yè)機(jī)器人進(jìn)行升級即可完成力引導(dǎo)示教。
六自由度工業(yè)機(jī)器人上搭建的力引導(dǎo)示教平臺采用IRB 120小型機(jī)器人,其各連桿參數(shù)見圖1。實驗平臺還包括末端手持器,數(shù)據(jù)采集卡,PC(上位機(jī)),六維力傳感器及配套的信號放大器,其連接如圖2所示。
圖1 IRB120各連桿的參數(shù)
圖2 硬件組成示意圖
六維力傳感器采用的是Gamma六維力傳感器,用于獲取力引導(dǎo)示教時操作者施加的力信息,包括力的大小、方向以及力矩的大小、方向,具體是x,y,z3個方向上的力Fx,Fy,Fz值的大小,以及繞x,y,z3軸的力矩Tx,Ty,Tz值的大小。由于六維力傳感器不能直接固定于工業(yè)機(jī)器人末端,因此設(shè)計連接件進(jìn)行連接。使用連接件將六維力傳感器固定于機(jī)器人末端的安裝如圖3所示。
安裝時需注意將力傳感器的z軸與機(jī)器人第6軸軸線重合,力傳感器的x、y方向與機(jī)器人工具坐標(biāo)系x、y軸線分別平行安裝,以便于后期數(shù)據(jù)的處理。
由于力傳感器輸出的是模擬信號,而且輸出的電壓為mV級,輸出的信號較小不便于采集,因此采用放大器對信號放大處理,將mV級信號放大為V級信號。數(shù)據(jù)采集卡采用的是USB-6210型采集卡。
圖3 力傳感器連接于機(jī)器人末端
末端手持器固定于傳感器末端,操作者將力直接作用于手持器。手持器連接力傳感器,從而實現(xiàn)力與力矩的傳輸,手持器的末端是1個尖點,用于觀察末端點是否接觸示教點;上位機(jī)與IRB 120機(jī)器人之間采用網(wǎng)線連接,使用Socket進(jìn)行通訊,這樣可以提高數(shù)據(jù)傳輸速率,提高系統(tǒng)的響應(yīng)速率。
由于數(shù)據(jù)采集卡采集的是源碼信號,因此需要將其轉(zhuǎn)化為模擬電壓信號,模擬電壓轉(zhuǎn)換式為:
(1)
式中:16指數(shù)據(jù)采集卡的精度為16位,ADbuffer[n]是數(shù)據(jù)采集卡AD端口的源碼值,n代表通道值0~5,將模擬電壓信號轉(zhuǎn)換為力信號的計算表達(dá)式為:
F=[V0V1V2V3V4V5]T×Cτ
(2)
式(2)將6個通道的模擬電壓轉(zhuǎn)換為力值及力矩值,其中矩陣C是傳感器公司提供的6×6的常量校驗矩陣,其大小如式(3):
(3)
最終計算出的矩陣結(jié)果如下:F=(Fx,Fy,Fz,Tx,Ty,Tz)T,CT是指矩陣C的轉(zhuǎn)置, 包括傳感器坐標(biāo)系下3個方向的力Fx,Fy,Fz以及3個方向的力矩Tx,Ty,Tz。
1) 重力補(bǔ)償算法
六維力傳感器采集的力包含操作者的拉力以及連接于力傳感器末端手持器的重力G在傳感器坐標(biāo)系下的分力Fx、Fy、Fz,需要實時的進(jìn)行重力補(bǔ)償,根據(jù)工業(yè)機(jī)器人建立D-H坐標(biāo)系,其D-H參數(shù)如表1所示。
表1 IRB120工業(yè)機(jī)器人D-H參數(shù)
續(xù)表1
(4)
(5)
2) 重力補(bǔ)償算法
重力矩的補(bǔ)償核心部分是確定重心位置,從而快速確定重力在工具坐標(biāo)系下產(chǎn)生的3個分力矩的大小。由于實際使用過程中,末端手持器形狀不規(guī)則,因此無法直接使用物體的中心點就是重心的性質(zhì),但可通過式(6)進(jìn)行計算:
(6)
(7)
在重力以及重力矩補(bǔ)償完以后,需要將操作者施加的力以及力矩轉(zhuǎn)化為工業(yè)機(jī)器人平移以及旋轉(zhuǎn)量,從而實現(xiàn)工業(yè)機(jī)器人的運(yùn)動。上位機(jī)完成末端重力補(bǔ)償后,移動步長按照式(8)進(jìn)行計算:
(8)
其中:i取x、y、z3個方向,F(xiàn)i是指在x、y、z3個方向除去重力補(bǔ)償以及安裝應(yīng)力的力值,即操作施加的在傳感器坐標(biāo)系下的分力表示,istep是在外力作用下移動的步長,單位是mm,為了防止擾動,程序中設(shè)置當(dāng)施加的力>3N是才會移動,ki是步長移動系數(shù),大小根據(jù)實際情況進(jìn)行選取,本次實驗選取ki=0.015進(jìn)行運(yùn)算。
工業(yè)機(jī)器人的旋轉(zhuǎn)運(yùn)動步長按照式(9)算法進(jìn)行運(yùn)算:
(9)
其中:i取x、y、z3個方向,Mi是指在x、y、z3個方向除去重力矩補(bǔ)償以及安裝應(yīng)力矩后的力矩大小,θistep是在外力矩作用下旋轉(zhuǎn)的步長,單位是rad,即操作施加的在傳感器坐標(biāo)系下的分力表示。為了防止擾動,程序中設(shè)置當(dāng)施加的力矩>1N·m時才會轉(zhuǎn)動。kθ是轉(zhuǎn)動步長系數(shù),大小根據(jù)實際情況進(jìn)行選取,本次實驗選取kθ=0.015進(jìn)行運(yùn)算。根據(jù)對應(yīng)的步長計算式就算出平移/旋轉(zhuǎn)變化量的大小ΔP(Δx、Δy、Δz、ΔRx、ΔRy、ΔRz)后每10ms發(fā)送給機(jī)器人執(zhí)行運(yùn)動,其中Δx、Δy、Δz是工具坐標(biāo)系x、y、z軸的偏移量,ΔRx、ΔRy、ΔRz是繞工具坐標(biāo)系x,y,z軸的旋轉(zhuǎn)量,將ΔP通過Socket發(fā)送給機(jī)器人執(zhí)行相對應(yīng)的運(yùn)動即可完成。
具體發(fā)送數(shù)據(jù)形式如圖4。
圖4 數(shù)據(jù)傳輸形式
為了驗證重力補(bǔ)償算法以及本次試驗的可行性,需要兩部分程序編寫:一是上位機(jī)程序二是機(jī)器人控制器程序。上位機(jī)是通過VS2010環(huán)境下編譯完成,上位機(jī)程序包括數(shù)據(jù)采集卡采集力/力矩信號、數(shù)據(jù)處理、重力補(bǔ)償以及實現(xiàn)和工業(yè)機(jī)器人之間的通訊等,控制器程序主要用于運(yùn)動指令的執(zhí)行以及與上位機(jī)之間的數(shù)據(jù)交換。如圖5是某一時刻的傳感器檢測的重力以及重力矩的大小,圖6是進(jìn)行重力以及力矩補(bǔ)償后的傳感器力值。
圖5 重力以及重力矩補(bǔ)償前
圖6 重力以及重力矩補(bǔ)償后
由此驗證重力以及重力矩補(bǔ)償算法準(zhǔn)確可行。當(dāng)操作者示教完成后,需要機(jī)器人還原示教的軌跡,即軌跡還原。通過點擊上位機(jī)軌跡儲存按鈕,將軌跡中的點位置進(jìn)行存儲,點擊示教還原按鈕,上位機(jī)將儲存的點發(fā)送給工業(yè)機(jī)器人執(zhí)行運(yùn)動,從而完成示教還原。如圖7所示,為力引導(dǎo)機(jī)器人示教操作,對長方體工件軌跡進(jìn)行示教;圖8是機(jī)器人根據(jù)力引導(dǎo)示教時儲存下數(shù)據(jù)進(jìn)行示教軌跡還原。實驗證明該方法能有效地完成示教軌跡還原,基于六維力傳感器的力引導(dǎo)示教方法可行,具有推廣性。
圖7 對工件輪廓進(jìn)行示教
圖8 示教軌跡的還原操作
本文提出一種基于六維力傳感器實現(xiàn)對工業(yè)機(jī)器人的直接示教,通過實驗驗證了重力補(bǔ)償算法以及重力矩補(bǔ)償算法的正確性,重力補(bǔ)償算法以及重力矩補(bǔ)償算法自主在上位機(jī)程序中完成,該示教方法的優(yōu)點是可以在現(xiàn)有的工業(yè)機(jī)器人平臺上進(jìn)行,不需對當(dāng)前的工業(yè)機(jī)器人進(jìn)行硬件升級,通過外接六維力傳感器即可實現(xiàn),重力補(bǔ)償以及運(yùn)動控制算法具有通用性,通過該示教方法無需操作者對工業(yè)機(jī)器人非常熟悉即可完成示教,示教過程可以在上位機(jī)選擇是否記錄示教點軌跡,記錄的示教點軌跡可用于示教再現(xiàn)。該方法對于復(fù)雜曲面的軌跡跟蹤還有待于進(jìn)一步優(yōu)化。