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