陳浩文,李 堅,王 兵,張 濤,管貽生
(廣東工業(yè)大學(xué)機電工程學(xué)院,廣州 510006)
機器人正在被越來越廣泛地應(yīng)用到制造工業(yè)中,特別是在存接觸交互的場景,如:工業(yè)機器人用于拋光、打磨等接觸式作業(yè)[1-4];協(xié)作機器人與人的交互過程[5-6]。這些場景下機器人需要具備感知外部接觸力的能力,接觸力的感知可以通過在機器人腕部與末端執(zhí)行器間安裝六維力傳感器來實現(xiàn),但力傳感器的零點會因為溫度、安裝預(yù)緊力等原因產(chǎn)生漂移[7],機器人末端執(zhí)行器的重力也往往不可忽略,并且其在力傳感器中的反饋值會隨機器人姿態(tài)變化而變化,不能直接反映機器人與環(huán)境的真實接觸力。因此,為了精確獲得末端執(zhí)行器的真實受力情況,需要根據(jù)當(dāng)前機器人姿態(tài)對六維力傳感器實時地進(jìn)行零點校正及重力補償。
在對力傳感器的零點校正與重力補償?shù)难芯可希墨I(xiàn)[7-8]采用了在特定機器人姿態(tài)下事先通過處理力傳感器的信號來獲得傳感器零點,再進(jìn)行重力補償?shù)姆绞剑纯紤]機器人的安裝傾角。文獻(xiàn)[2,9-11]在推導(dǎo)重力補償模型時只考慮了末端執(zhí)行器的重力與重心,沒有考慮傳感器零點與機器人的安裝傾角,并且都只進(jìn)行仿真,而未進(jìn)行實驗驗證。文獻(xiàn)[12]在設(shè)計重力補償算法的過程中,考慮了力傳感器的安裝角度,但未考慮機器人的安裝傾角。文獻(xiàn)[13-15]綜合考慮了傳感器零點、機器人安裝傾角、負(fù)載重力、負(fù)載重心,就六維力傳感器的重力補償提出了一套標(biāo)定與計算方法。文獻(xiàn)[16-17]使用傾角傳感器來獲得傳感器坐標(biāo)系姿態(tài),因而無需考慮機器人的安裝傾角,但使用傾角傳感器增加了硬件成本,也未涉及傳感器零點問題。
基于此,本文提出一種零點校正及重力補償?shù)姆椒ǎ瑢C器人的安裝誤差、力傳感器的零點漂移以及末端執(zhí)行器重力補償?shù)葐栴}綜合考慮。不同于上述文章所提方法的繁雜過程,本文所提的方法只需要在至少3個隨機機器人姿態(tài)下采集力傳感器數(shù)據(jù),即可通過計算獲得補償所需的參數(shù),從而實現(xiàn)對任意機器人位姿下的六維力傳感器測量數(shù)據(jù)進(jìn)行零點校正和重力補償。通過一系列實驗對本文方法的測量和補償精度進(jìn)行驗證,將本文方法應(yīng)用于機器人拋磨中的恒接觸力控制,進(jìn)一步說明了本文方法的有效性和可行性。
接觸力作為拋磨工藝的核心參數(shù),在機器人拋磨中,實現(xiàn)穩(wěn)定的接觸力控制是目前機器人拋磨研究中的重點[2, 17]。本文采用在機器人腕部與末端執(zhí)行器之間安裝力傳感器,當(dāng)拋磨工具與工件表面接觸時,其接觸狀態(tài)及受力分析如圖1所示。在機器人拋磨作業(yè)中,進(jìn)給速度較為穩(wěn)定,慣性力的影響可忽略不計[2, 9, 18]。因此,可以認(rèn)為力傳感器的測量值只由力傳感器零點、末端執(zhí)行器的重力以及外部接觸力組成。因此,為了準(zhǔn)確獲得接觸力,需要進(jìn)行零點校正及重力補償,以從力傳感器原始信號中消除零點漂移和末端執(zhí)行器重力的影響。

圖1 機器人接觸受力示意圖
為了對安裝于機器人腕部的六維力傳感器進(jìn)行重力補償,對末端執(zhí)行器所受重力及外部作用力進(jìn)行分析。首先,如圖2所示,在機器人基座上建立機器人基坐標(biāo)系{B},在機器人腕部建立腕部坐標(biāo)系{W},在力傳感器上建立傳感器坐標(biāo)系{S}。末端執(zhí)行器受自身重力G,記其在坐標(biāo)系{B}和{S}下的坐標(biāo)分別為BG和SG,記末端執(zhí)行器重心在坐標(biāo)系{S}下的坐標(biāo)為l,末端執(zhí)行器受外部接觸力和力矩為Fr和Tr。力傳感器的測量值由傳感器零點、外部接觸力和末端執(zhí)行器的重力組成,將力傳感器的測量值記為F和T,力傳感器零點記為F0和T0。

圖2 坐標(biāo)系與受力分析示意圖
據(jù)此,可以列出如下方程:
Fr=F-F0-SG
(1)
Tr=T-T0-l×SG
(2)

(3)

(4)
由于機器人基座是固定的,因此在機器人運動過程中BG是常量,注意到,如圖2所示,由于存在機器人安裝傾角,BG與坐標(biāo)系{B}負(fù)z軸存在夾角,該夾角體現(xiàn)了機器人安裝傾角。可以發(fā)現(xiàn),只需求得F0、T0、l和BG(本文將稱之為補償參數(shù)),即可由式(1)、式(2)和式(4)進(jìn)行零點校正及重力補償,從而求得末端執(zhí)行器的真實受力。
為求解補償參數(shù),現(xiàn)使末端執(zhí)行器僅受自身重力,而不受其他外力的作用,則式(1)、式(2)可簡化為:
F-F0-SG=0
(5)
T-T0-l×SG=0
(6)
將式(4)代入式(5)并移項,得:
(7)

(8)
至少需要3個不同的姿態(tài),才能保證式(8)有解,將式(8)記為:
f=Ag
(9)
式中,f是3n維列向量,A是形狀為3n×6的矩陣,g是6維列向量。式(9)是一個超定方程組,可以使用最小二乘法來求解。為此,將式(9)兩邊左乘AT,再左乘(ATA)-1,得:
而根據(jù)挫折理論,面對經(jīng)營失敗,尤其是一而再的經(jīng)營失敗,教師要引導(dǎo)學(xué)生以積極的態(tài)度對待挫折,將消極性行為轉(zhuǎn)化為積極性、建設(shè)性行為。

(10)
即可求得g,也即補償參數(shù)BG及F0。
對式(6)移項變換為:
T=l×SG+T0
(11)

(12)
式(11)可寫成:
(13)

(14)
同樣需要至少3個不同的機器人姿態(tài)才能使式(14)有解,將式(14)記為:
t=Bh
(15)
式中,t是3n維列向量,B是形狀為3n×6的矩陣,h是6維列向量。將式(15)兩邊左乘BT,再左乘(BTB)-1,得:

(16)

為解決通過調(diào)整機器人位置實現(xiàn)接觸力控制所帶來的低帶寬導(dǎo)致出現(xiàn)欠拋和過拋的問題,開發(fā)了一款主動力控制拋磨末端執(zhí)行器,具有高帶寬、低慣量的特性[19],其結(jié)構(gòu)如圖3所示。

圖3 主動力控制拋磨末端執(zhí)行器
末端執(zhí)行器使用音圈電機作為驅(qū)動單元,音圈電機的輸出力與輸入電流成正比。假設(shè)經(jīng)重力補償后獲得末端執(zhí)行器主軸方向的實際接觸力為Fc、期望接觸力為Fd,則力跟蹤誤差為:
Fe=Fd-Fc
(17)
為了消除誤差Fe,可以通過PID算法構(gòu)造如下的反饋控制:
(18)
式中,u為控制信號,也即控制器輸出到音圈電機驅(qū)動器的控制電流,Km為音圈電機電流常數(shù),Kp、Ki、Kd分別為PID控制器的比例、積分、微分增益系數(shù),相對應(yīng)的控制框圖如圖4所示。

圖4 顯式恒接觸力控制框圖
本文實驗使用Nachi公司生產(chǎn)的MC20-01型工業(yè)機器人,額定負(fù)載為20 kg,重復(fù)定位精度為±0.06 mm。力傳感器采用了ATI公司型號為Mini45 IP65的六維力傳感器,該傳感器關(guān)鍵參數(shù)見表1。

表1 ATI Mini45 IP65六維力傳感器技術(shù)參數(shù)
同時,使用本課題組開發(fā)的用于機器人拋磨的末端執(zhí)行器進(jìn)行重力補償實驗,實驗場景如圖5所示。

圖5 實驗場景

(19)

表2 實驗中隨機選取的機器人姿態(tài)
通過以太網(wǎng)從六維力傳感器采集設(shè)備中讀取每個機器人姿態(tài)下的六維力信息。采集設(shè)備的采樣頻率被為1000 Hz,在每個姿態(tài)下,均采集1000個數(shù)據(jù)求平均值作為當(dāng)前姿態(tài)下的讀數(shù),如表3所示。

表3 各個姿態(tài)下的六維力傳感器測量值
使用上述測得的機器人姿態(tài)及六維力傳感器數(shù)據(jù),根據(jù)1.2節(jié)的方法進(jìn)行計算,得到各項補償參數(shù),如表4所示。

表4 零點校正及重力補償參數(shù)
2.2.1 靜態(tài)下的重力補償
在表2之外另選的5個姿態(tài)下分別使用0.5 kg、1 kg、1.5 kg、2 kg、2.5 kg、3 kg質(zhì)量的標(biāo)準(zhǔn)砝碼懸掛于末端執(zhí)行器受力點以及不懸掛砝碼,共設(shè)計35組實驗。在每一組實驗中讀取六維力信息,并使用上述求得的補償參數(shù)對測量值進(jìn)行補償。同時取廣州地區(qū)重力加速度g=9.783 3 m/s2計算砝碼產(chǎn)生的重力和重力矩作為真實值。為了分析本文方法的精確程度,計算實驗結(jié)果的相對誤差,由于六維力傳感器的負(fù)載包含了末端執(zhí)行器與砝碼的質(zhì)量,本文將測量誤差除以傳感器的總負(fù)載來計算相對誤差:
(20)
(21)
式中,F(xiàn)m、Tm分別是經(jīng)補償后的測量值,F(xiàn)r、Tr分別是力、力矩真實值,G是末端執(zhí)行器重力,l是末端執(zhí)行器重心坐標(biāo),lt是砝碼懸掛點坐標(biāo),以上變量均在坐標(biāo)系{S}下表示。實驗誤差分布如圖6所示,力和力矩平均誤差分別為2.07%和1.35%。對比圖6左右結(jié)果來看,力補償誤差基本在平均值2.07%附近波動;而力矩補償誤差會隨著懸掛砝碼質(zhì)量增大而增大,這可能是由于工具坐標(biāo)系的標(biāo)定誤差,放大了砝碼重力的力矩誤差所致。

圖6 零點校正及重力補償實驗誤差
2.2.2 動態(tài)下的重力補償
為了進(jìn)一步驗證在機器人運動速度較低的情況下慣性力對補償效果的影響,在末端執(zhí)行器懸空不接觸工件的情況下,控制機器人在在三個姿態(tài)間連續(xù)運動,其中姿態(tài)1為(r=75.70°、p=-42.79°、y=126.23°)、姿態(tài)2為(r=144.62°、p=-67.87°、y=77.70°)、姿態(tài)3為(r=109.40°、p=-89.92°、y=70.66°),記錄此過程的重力補償前后的力和力矩值,結(jié)果如圖7所示,可以看到補償后的力和力矩均在0附近,整個過程的力和力矩相對補償誤差分別為1.50%和0.75%。實驗結(jié)果表明本文重力補償方法在機器人運動過程中也能獲得靜態(tài)測試下同樣的效果,進(jìn)一步驗證了本文在分析過程中忽略機器人在平穩(wěn)運動中的慣性力是合理的。

圖7 運動過程中的重力補償效果
2.2.3 恒力控制實驗與分析
為了進(jìn)一步檢驗本文方法的實用性,將本文的零點校正及重力補償方法應(yīng)用于機器人拋磨中的恒力控制。使末端執(zhí)行器以不同姿態(tài)接觸工件,使用PID控制器對末端執(zhí)行器主軸方向上的接觸力進(jìn)行控制,使其維持在期望值附近。實驗分別在兩個不同的機器人姿態(tài)下進(jìn)行,其中姿態(tài)1為(r=-9.81°、p=-44.16°、y=-125.20°),姿態(tài)2為(r=-56.01°、p=-64.70°、y=-71.17°)。在每個姿態(tài)下,分別進(jìn)行兩組實驗,其中一組使用的力信號經(jīng)過本文零點校正及重力補償方法進(jìn)行處理(經(jīng)重力補償),而另一組實驗只在初始姿態(tài)下將力傳感器信號偏置為0(未經(jīng)重力補償),每組實驗各進(jìn)行以5 N到20 N、30 N、40 N的階躍期望力的力控制。
對比如圖8所示的未經(jīng)/經(jīng)過重力補償?shù)牧刂平Y(jié)果可知,本文所提方法能在不同姿態(tài)和不同目標(biāo)接觸力下有效補償重力,使得機器人拋磨系統(tǒng)可以有效實現(xiàn)恒力控制。而未經(jīng)重力補償?shù)膶嶒炛校鞲衅鳠o法給機器人系統(tǒng)提供有效的接觸力反饋,恒力控制效果較差。特別是在姿態(tài)1下機器人系統(tǒng)難以跟蹤較小的目標(biāo)接觸力且在階躍響應(yīng)后出現(xiàn)了比經(jīng)過重力補償后的力控制較大的超調(diào)量,這嚴(yán)重影響了機器人系統(tǒng)進(jìn)行恒力控制的效果。其原因即是未經(jīng)重力補償?shù)牧鞲衅魉鶞y得的法向接觸力包含了末端執(zhí)行器重力沿接觸法向的分量,不能反映拋磨工具的實際受力情況。

圖8 力控制效果對比
針對機器人接觸作業(yè)等需要精確感知外部接觸力的應(yīng)用場景,對安裝于機器人腕部與末端執(zhí)行器之間的六維力傳感器受力進(jìn)行分析,建立了六維力傳感器的零點校正及重力補償計算模型,在使用最少3個機器人姿態(tài)信息及其對應(yīng)的力傳感器數(shù)據(jù)即可計算出零點校正及重力補償所需的參數(shù)。本文綜合考慮了傳感器的零點漂移、機器人安裝誤差、末端執(zhí)行器重力等影響力傳感器測量數(shù)據(jù)精度的因素,有效消除了力傳感器零點漂移、機器人安裝誤差以及末端執(zhí)行器重力對力傳感器測量結(jié)果的影響。實驗結(jié)果表明,使用本方法進(jìn)行補償后,感知接觸力和力矩的平均相對誤差分別可達(dá)到2.07%和1.35%。同時,實驗結(jié)果也顯示機器人在不同位姿連續(xù)運動的過程中,本文方法也能有良好的補償效果,在實驗中力和力矩的相對補償誤差分別為1.50%和0.75%。此外,本文方法應(yīng)用于機器人拋磨中的恒力控制時,有效地提高力控精度的同時,驗證了本文方法的正確性、實用性。