張振宇 鐘佩思 張 超 王祥文 劉 梅 孫鈺雁
(①山東科技大學(xué)先進(jìn)制造技術(shù)研究中心,山東 青島 266590;②山東科技大學(xué)機(jī)械電子工程學(xué)院,山東青島 266590;③青島海信日立空調(diào)系統(tǒng)有限公司,山東 青島 266510)
隨著機(jī)器人技術(shù)的發(fā)展,工業(yè)機(jī)器人之間、工業(yè)機(jī)器人與人之間的協(xié)作越來越密切,在協(xié)作的過程中難免會(huì)發(fā)生機(jī)器人與入侵物體的碰撞。因此需要準(zhǔn)確地進(jìn)行碰撞檢測(cè),以避免碰撞事故的發(fā)生。工業(yè)機(jī)器人的碰撞檢測(cè)可分為使用外部傳感器和不使用外部傳感器的碰撞檢測(cè)[1?3]。不使用外部傳感器時(shí),采用基于動(dòng)力學(xué)模型的方法來實(shí)現(xiàn)碰撞檢測(cè),通過動(dòng)力學(xué)模型計(jì)算相應(yīng)的預(yù)測(cè)力矩,將預(yù)測(cè)力矩與實(shí)際力矩的力矩偏差值用于碰撞檢測(cè)[4]。機(jī)器人的實(shí)際力矩是通過電流法來計(jì)算關(guān)節(jié)力矩,通過伺服電機(jī)相電流來求得電機(jī)實(shí)際輸出驅(qū)動(dòng)力矩[5]。采集的機(jī)器人實(shí)時(shí)位置、速度及電機(jī)電流等存在噪聲影響,因此有效的濾波方案能夠獲得精確的預(yù)測(cè)力矩和實(shí)際力矩。
基于動(dòng)力學(xué)模型的碰撞檢測(cè)方法,是在獲得準(zhǔn)確動(dòng)力學(xué)參數(shù)的基礎(chǔ)上完成的,因此需要準(zhǔn)確的機(jī)器人動(dòng)力學(xué)參數(shù),動(dòng)力學(xué)參數(shù)的準(zhǔn)確性影響著碰撞檢測(cè)的精度?,F(xiàn)有機(jī)器人的動(dòng)力學(xué)參數(shù)獲取,通過動(dòng)力學(xué)參數(shù)辨識(shí)獲得。動(dòng)力學(xué)參數(shù)辨識(shí)的過程可分為以下5個(gè)步驟:(1)建立動(dòng)力學(xué)模型;(2)設(shè)計(jì)激勵(lì)軌跡;(3)采樣與數(shù)據(jù)處理;(4)動(dòng)力學(xué)參數(shù)辨識(shí);(5)驗(yàn)證辨識(shí)模型[6]。從動(dòng)力學(xué)模型辨識(shí)過程中能夠看出,設(shè)計(jì)良好的激勵(lì)軌跡,采用準(zhǔn)確度更高的動(dòng)力學(xué)參數(shù)辨識(shí)方案,將獲得接近真實(shí)值的機(jī)器人動(dòng)力學(xué)參數(shù)。通過遺傳算法優(yōu)化激勵(lì)軌跡,但是易陷入局部最優(yōu)解[7?8]。改進(jìn)的遺傳算法能夠有效避免陷入局部最優(yōu)解,并在多個(gè)領(lǐng)域應(yīng)用[9?10]。動(dòng)力學(xué)參數(shù)辨識(shí)常用的方法是最小二乘法[11],但是最小二乘法容易受到噪聲的干擾,由此提出遞推最小二乘法、加權(quán)最小二乘法等方法來進(jìn)行動(dòng)力學(xué)參數(shù)辨識(shí)[12?13],均需要觀測(cè)矩陣求逆,而觀測(cè)矩陣存在奇異值情況下無法求逆,效果較差;Urrea C等提出采用線性神經(jīng)網(wǎng)絡(luò)進(jìn)行機(jī)器人動(dòng)力學(xué)參數(shù)辨識(shí)的方法[14?15],但神經(jīng)網(wǎng)絡(luò)受學(xué)習(xí)率的影響較大,學(xué)習(xí)率過大會(huì)導(dǎo)致無法收斂,學(xué)習(xí)率過小容易陷入局部極值點(diǎn),而自適應(yīng)學(xué)習(xí)率能夠使得神經(jīng)網(wǎng)絡(luò)快速收斂的同時(shí)避免陷入局部極值。
本文針對(duì)機(jī)器人在動(dòng)力學(xué)模型未知的情況下,通過動(dòng)力學(xué)參數(shù)辨識(shí),獲得機(jī)器人準(zhǔn)確的動(dòng)力學(xué)模型,然后通過機(jī)器人的動(dòng)力學(xué)模型計(jì)算機(jī)器人預(yù)測(cè)力矩,將預(yù)測(cè)力矩與實(shí)際力矩做差獲得力矩偏差,力矩偏差分別向后一階差分、向后二階差分,通過設(shè)定的閾值來檢測(cè)是否發(fā)生碰撞和發(fā)生碰撞類型。在動(dòng)力學(xué)參數(shù)辨識(shí)中,采用基于懲罰函數(shù)的自適應(yīng)遺傳算法優(yōu)化激勵(lì)軌跡,利用自適應(yīng)學(xué)習(xí)率的單層神經(jīng)網(wǎng)絡(luò)進(jìn)行動(dòng)力學(xué)參數(shù)辨識(shí)。采用力矩偏差差分的碰撞檢測(cè)方法不僅實(shí)現(xiàn)無外部傳感器碰撞檢測(cè),同時(shí)將碰撞的類型區(qū)分為有意碰撞和無意碰撞;通過區(qū)分碰撞類型,能夠在機(jī)器人發(fā)生無意碰撞時(shí),人為干預(yù)將無意碰撞轉(zhuǎn)化為有意碰撞,從而避免發(fā)生剛性碰撞造成機(jī)器人損傷。實(shí)驗(yàn)結(jié)果表明,設(shè)計(jì)的碰撞檢測(cè)算法,不需要添加額外的傳感器,降低碰撞檢測(cè)成本,能夠準(zhǔn)確地將碰撞區(qū)分為有意碰撞和無意碰撞,所采用的動(dòng)力學(xué)參數(shù)辨識(shí)方法,辨識(shí)精度較其他方法有所提高,從而提高碰撞檢測(cè)的精度?;诠I(yè)機(jī)器人動(dòng)力學(xué)模型的差分力矩偏差碰撞檢測(cè)算法的流程如圖1所示。
圖1 碰撞檢測(cè)算法流程圖
建立n連桿機(jī)器人的動(dòng)力學(xué)模型為
由于標(biāo)準(zhǔn)動(dòng)力學(xué)模型具有非線性強(qiáng)耦合的特點(diǎn),直接利用該模型進(jìn)行動(dòng)力學(xué)參數(shù)辨識(shí)異常困難[16],因此將機(jī)器人的動(dòng)力學(xué)模型進(jìn)行線性化,可表示為:
借助Python環(huán)境下的SymPyBotic工具箱求解機(jī)器人的動(dòng)力學(xué)最小參數(shù)矩陣和機(jī)器人各關(guān)節(jié)力矩表達(dá)式。
機(jī)器人運(yùn)行激勵(lì)軌跡時(shí)達(dá)到的位姿越多,測(cè)得動(dòng)力學(xué)參數(shù)信息越全面,動(dòng)力學(xué)參數(shù)辨識(shí)的精度就會(huì)越高。Swevers J使用有限傅里葉級(jí)數(shù)對(duì)機(jī)器人進(jìn)行激勵(lì)軌跡設(shè)計(jì),方便易用的同時(shí),能夠保證較好的辨識(shí)效果,被廣泛使用,且傅里葉級(jí)數(shù)能夠減少噪聲對(duì)參數(shù)精度的影響[18]。第i關(guān)節(jié)傅里葉級(jí)數(shù)公式為
式中:i是機(jī)器人連桿的編號(hào);q0i是關(guān)節(jié)的初始位置;M是傅里葉級(jí)數(shù);ai,k、bi,k為正弦項(xiàng)和余弦項(xiàng)的系數(shù);ω=2πf為基角頻率。為使得關(guān)節(jié)初始位置變化平穩(wěn),設(shè)q0i為式(8)。
根據(jù)式(7)獲得機(jī)器人關(guān)節(jié)i的角速度和角加速度為式(9)和式(10)。
為使得激勵(lì)軌跡運(yùn)動(dòng)范圍充滿整個(gè)運(yùn)動(dòng)空間,達(dá)到最好激勵(lì)效果,在對(duì)激勵(lì)軌跡進(jìn)行參數(shù)優(yōu)化時(shí),優(yōu)化目標(biāo)函數(shù)為觀測(cè)矩陣最小條件數(shù)[19]。條件數(shù)是線性方程組解對(duì)輸入輸出誤差敏感性的測(cè)量,條件數(shù)越大表明敏感性越差,因此將觀測(cè)矩陣條件數(shù)最小作為優(yōu)化目標(biāo)函數(shù)。
設(shè)關(guān)節(jié)i的傅里葉軌跡參數(shù)向量Ri=[ai,1,bi,1,...,則所有關(guān)節(jié)的激勵(lì)軌跡參數(shù)向量R=軌跡采樣點(diǎn)數(shù)為K個(gè),非線性優(yōu)化問題可表示為:
式中:qimax是關(guān)節(jié)i的位置限制;是關(guān)節(jié)i的速度限制;是關(guān)節(jié)i的加速度限制。
式中:tstart、tend為軌跡起始時(shí)刻和結(jié)束時(shí)刻。
通過增加懲罰函數(shù),能夠?qū)⒓s束問題轉(zhuǎn)化為無約束問題。因此在遺傳算法中加入懲罰函數(shù)以增大適應(yīng)度,進(jìn)行排列后,將增大后的個(gè)體剔除。自適應(yīng)機(jī)制將交叉概率和變異概率自適應(yīng)調(diào)整,如圖2所示。
圖2 基于懲罰函數(shù)的自適應(yīng)遺傳算法原理圖
(1)初始種群:隨機(jī)生成初始種群。
(2)適應(yīng)度函數(shù):適應(yīng)度函數(shù)是評(píng)價(jià)個(gè)體好壞的標(biāo)準(zhǔn),是非負(fù)的值。在動(dòng)力學(xué)參數(shù)辨識(shí)中,采用觀測(cè)矩陣的最小條件數(shù)作為適應(yīng)度函數(shù)。
(3)懲罰函數(shù):根據(jù)動(dòng)力學(xué)參數(shù)辨識(shí)的需要,設(shè)計(jì)動(dòng)態(tài)懲罰函數(shù)。如:
式中:λ是懲罰因子;α是動(dòng)態(tài)偏差因子(不滿足約束條件的解偏離約束差值的平均值);b為經(jīng)驗(yàn)常數(shù);t(R)是個(gè)體滿足線性條件和非線性條件的個(gè)數(shù)。
(4)選擇:選擇是從父代種群中選出優(yōu)化的個(gè)體來產(chǎn)生下一代,采用最佳保留選擇,因?yàn)闂l件數(shù)作為適應(yīng)度函數(shù),因此條件數(shù)越大則適應(yīng)度越小,因此選擇適應(yīng)度函數(shù)值低的個(gè)體,排除適應(yīng)度函數(shù)值高的個(gè)體。
(5)交叉與變異:交叉與變異的概率有固定概率和動(dòng)態(tài)概率2 種方式,動(dòng)態(tài)概率是能夠隨著算法的迭代概率也隨之變化。采用動(dòng)態(tài)概率,以實(shí)現(xiàn)交叉概率與變異概率的自適應(yīng)調(diào)整。概率的調(diào)整函數(shù)為
其中:k1、k2分別為交叉和變異的經(jīng)驗(yàn)常數(shù),則k1=1、k2=0.5。fmin、fmean分別為種群的適應(yīng)度函數(shù)的最小值和平均值。
交叉選擇算術(shù)交叉,變異采用高斯變異。
采集的位置、速度及電流信號(hào)存在的噪聲將對(duì)參數(shù)辨識(shí)結(jié)果產(chǎn)生影響,且加速度是由速度差分獲得,差分會(huì)成比例放大噪聲,同時(shí)為了防止經(jīng)過濾波后的數(shù)據(jù)產(chǎn)生相位延時(shí),采用零相位濾波以避免產(chǎn)生延時(shí)。具體濾波方案如下:
(1)位置:巴特沃夫斯低通濾波+零相位濾波。
(2)速度:巴特沃夫斯低通濾波+零相位濾波。
(3)加速度:巴特沃夫斯低通濾波+零相位濾波+RLOESS平滑。
(4)力矩:巴特沃夫斯低通濾波+零相位濾波+RLOESS平滑。
單層神經(jīng)網(wǎng)絡(luò)通過1個(gè)輸入層計(jì)算后獲得輸出層,通過對(duì)每個(gè)輸入進(jìn)行加權(quán)求和(w),再通過激活函數(shù)f(x)得到對(duì)應(yīng)的輸出,如圖3所示。
圖3 單層神經(jīng)網(wǎng)絡(luò)
將觀測(cè)矩陣的每1行作為單層神經(jīng)網(wǎng)絡(luò)的輸入,輸出為每一行對(duì)應(yīng)的力矩值。更新的權(quán)重W為辨識(shí)的參數(shù),激活函數(shù)為f(x)=x。
權(quán)重更新方法為
式中:dw為權(quán)重增量;β為超參數(shù);α為學(xué)習(xí)率;e為實(shí)際力矩值與預(yù)測(cè)力矩值的差值;κ為經(jīng)驗(yàn)常數(shù);X為觀測(cè)矩陣的某一行。
將學(xué)習(xí)率依據(jù)實(shí)際力矩與辨識(shí)后的預(yù)測(cè)力矩值的差值進(jìn)行自適應(yīng)調(diào)整。加入自適應(yīng)學(xué)習(xí)率,能夠提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效果防止陷入局部最優(yōu)解,同時(shí)能夠避免無法收斂。
通過辨識(shí)的動(dòng)力學(xué)參數(shù)獲得機(jī)器人預(yù)測(cè)力矩,利用機(jī)器人驅(qū)動(dòng)電流信號(hào)計(jì)算實(shí)際力矩,將預(yù)測(cè)力矩與采集的實(shí)時(shí)力矩做差,獲得力矩偏差。
依據(jù)辨識(shí)機(jī)器人的動(dòng)力學(xué)參數(shù),根據(jù)式(16)能夠計(jì)算出機(jī)器人預(yù)測(cè)力矩。
式中:τe為 摩擦力矩;為機(jī)器人的力矩。
將預(yù)測(cè)力矩與實(shí)際力矩τreal做差獲得力矩偏差:
根據(jù)圖4a所示的力矩偏差變化圖能夠看出,在有意碰撞是入侵物體有準(zhǔn)備地與機(jī)器人發(fā)生碰撞,接觸緩慢且緩和,機(jī)器人力矩偏差變化也會(huì)緩慢,而無意碰撞力矩變化較為急劇。采用差分方程能夠獲得力矩偏差的變化趨勢(shì)。差分方程分為向前差分、向后差分、中心差分,因?yàn)橐跈C(jī)器人碰撞瞬間能夠快速檢測(cè)碰撞,采用向后差分方程。
f(xk?1)、f(xk)、f(xk+1)一階向后差分方程為:
因此,力矩偏差的一階向后差分公式可表示為:
依據(jù)式(20)獲得力矩偏差的一階向后差分。如圖4b為一階力矩偏差差分變化圖。因?yàn)椴罘址匠棠軌蚍糯笤肼?,因此采取無延時(shí)濾波處理。從圖中看出,有意碰撞一階力矩偏差值變化較為平緩,而無意碰撞變化較為明顯,能夠有效區(qū)分出有意碰撞與無意碰撞??紤]到碰撞力矩較小,引起的力矩偏差較小,因此將力矩偏差進(jìn)行二階力矩偏差差分,從而獲得更為準(zhǔn)確的碰撞檢測(cè)時(shí)刻。
對(duì)于f(xk?1)、f(xk)、f(xk+1)則二階向后差分方程為:
因此,力矩偏差的二階向后差分公式可表示為
式(21)、(23)在t?1<0,t?2<0時(shí),設(shè)?τ(t?1)、?τ(t?2) 等于?τ(t)。
依據(jù)式(23)獲得力矩偏差的二階差分。如圖4c所示,能夠看出在無意碰撞階段力矩偏差二階差分變化較為明顯,但在初始與結(jié)束階段,變化也較為明顯,因此需結(jié)合一階力矩偏差差分進(jìn)行力矩碰撞檢測(cè)。
圖4 力矩偏差及一階二階差分
通過設(shè)置合理的置信區(qū)間,當(dāng)力矩偏差、一階力矩偏差差分、二階力矩偏差差分超出置信區(qū)間則認(rèn)為機(jī)器人發(fā)生有意碰撞或無意碰撞,此時(shí)機(jī)器人采取相應(yīng)的動(dòng)作,防止碰撞力進(jìn)一步增大,從而避免損失。
利用6R工業(yè)機(jī)器人進(jìn)行相關(guān)激勵(lì)軌跡的設(shè)計(jì),采用基于懲罰函數(shù)的自適應(yīng)遺傳算法優(yōu)化激勵(lì)軌跡,優(yōu)化后的激勵(lì)軌跡關(guān)節(jié)位置、關(guān)節(jié)速度、關(guān)節(jié)加速度如圖5所示。從圖中能夠看出均滿足約束條件,且速度與加速度的初始和結(jié)束均為零,滿足激勵(lì)軌跡優(yōu)化的目標(biāo)要求,能夠有效實(shí)現(xiàn)6R機(jī)器人在關(guān)節(jié)空間內(nèi)達(dá)到多種位姿,從而能夠獲得準(zhǔn)確的機(jī)器人動(dòng)力學(xué)參數(shù)。
圖5 激勵(lì)軌跡位置、速度、加速度
將6R機(jī)器人運(yùn)行激勵(lì)軌跡后采集的數(shù)據(jù)進(jìn)行濾波處理后,利用自適應(yīng)學(xué)習(xí)率的單層神經(jīng)網(wǎng)絡(luò)進(jìn)行動(dòng)力學(xué)參數(shù)辨識(shí)。為了驗(yàn)證辨識(shí)參數(shù)的準(zhǔn)確性,隨機(jī)生成滿足約束的1條軌跡,將辨識(shí)力矩與實(shí)際力矩進(jìn)行對(duì)比,并利用均方根誤差來對(duì)比辨識(shí)力矩和實(shí)際力矩型之間誤差進(jìn)行描述,其表達(dá)式為:
辨識(shí)力矩與實(shí)際力矩的對(duì)比如圖6所示。各關(guān)節(jié)的力矩均方根誤差如表1所示。
表1 各關(guān)節(jié)誤差
圖6 辨識(shí)力矩與實(shí)際力矩對(duì)比
對(duì)比發(fā)現(xiàn),采用自適應(yīng)學(xué)習(xí)率的單層神經(jīng)網(wǎng)絡(luò)進(jìn)行工業(yè)機(jī)器人動(dòng)力學(xué)參數(shù)辨識(shí),辨識(shí)精度通過均方根誤差能夠看出有所提高。同時(shí)也證明采用基于懲罰函數(shù)的自適應(yīng)遺傳算法優(yōu)化激勵(lì)軌跡有效。得到的動(dòng)力學(xué)參數(shù)能夠滿足碰撞檢測(cè)的需要。將獲得的動(dòng)力學(xué)參數(shù)應(yīng)用于碰撞檢測(cè)算法。
利用辨識(shí)的動(dòng)力學(xué)參數(shù),結(jié)合獲取的實(shí)際位置、實(shí)際速度、預(yù)測(cè)位置、預(yù)測(cè)速度、電機(jī)的電流信號(hào)及差分獲得的實(shí)際加速度、預(yù)測(cè)加速度計(jì)算出實(shí)際力矩與預(yù)測(cè)力矩。將實(shí)際力矩與預(yù)測(cè)力矩加入碰撞檢測(cè)算法中,利用6R工業(yè)機(jī)器人開展碰撞檢測(cè)實(shí)驗(yàn)。首先將6R工業(yè)機(jī)器人運(yùn)行多次,采集無碰撞狀態(tài)下的位置、速度信號(hào),從而獲得無碰撞狀態(tài)下的實(shí)際力矩信息,從而獲得該機(jī)器人的碰撞置信區(qū)間,如表2所示。碰撞狀態(tài)檢測(cè)條件如表3所示。依據(jù)表2和表3結(jié)合差分力矩偏差碰撞檢測(cè)算法對(duì)6R工業(yè)機(jī)器人的各個(gè)關(guān)節(jié)分別進(jìn)行碰撞實(shí)驗(yàn)。碰撞過程如圖7所示,為機(jī)器人6 個(gè)關(guān)節(jié)在不同狀態(tài)下的碰撞,關(guān)節(jié)1為大阻力無意碰撞狀態(tài),關(guān)節(jié)2為微阻力無意碰撞狀態(tài),關(guān)節(jié)3為小阻力有意碰撞狀態(tài),關(guān)節(jié)4為小阻力無意碰撞狀態(tài),關(guān)節(jié)5為大阻力有意碰撞狀態(tài),關(guān)節(jié)6為小阻力有意碰撞狀態(tài)
圖7 碰撞過程
表2 關(guān)節(jié)置信區(qū)間
表3 碰撞檢測(cè)條件
圖8~13為碰撞檢測(cè)算法的實(shí)驗(yàn)結(jié)果,圖8為大阻力無意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為無意碰撞;圖9為微阻力無意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為無意碰撞;圖10為小阻力有意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為有意碰撞;圖11為微阻力有意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為有意碰撞;圖12為小阻力無意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為無意碰撞;圖13為小阻力有意碰撞檢測(cè),從圖中能夠看到檢測(cè)碰撞為有意碰撞。因此驗(yàn)證碰撞算法能夠?qū)τ谟幸馀鲎才c無意碰撞能夠進(jìn)行有效檢測(cè)和區(qū)分,區(qū)分精度高,不需要在機(jī)器人外部添加額外的傳感器。
圖8 關(guān)節(jié)1碰撞檢測(cè)
圖9 關(guān)節(jié)2碰撞檢測(cè)
圖10 關(guān)節(jié)3碰撞檢測(cè)
圖11 關(guān)節(jié)4碰撞檢測(cè)
圖12 關(guān)節(jié)5碰撞檢測(cè)
圖13 關(guān)節(jié)6碰撞檢測(cè)
本文提出一種基于機(jī)器人動(dòng)力學(xué)模型的差分力矩偏差碰撞檢測(cè)算法,能夠有效檢測(cè)并將碰撞區(qū)分為有意碰撞和無意碰撞,從而使機(jī)器人在協(xié)同作業(yè)時(shí),發(fā)生無意碰撞,人為能夠?qū)o意碰撞轉(zhuǎn)化為有意碰撞,觸發(fā)相應(yīng)的后退機(jī)制,避免發(fā)生剛性碰撞造成設(shè)備損傷,且重新規(guī)劃路線避免停機(jī)造成損失;人為無法干預(yù)時(shí)觸發(fā)整機(jī)停止機(jī)制,避免損傷加劇。與人發(fā)生碰撞時(shí),能夠有效檢測(cè)為有意碰撞,從而觸發(fā)后退機(jī)制,避免對(duì)人體造成損傷。采用基于懲罰函數(shù)的自適應(yīng)遺傳算法優(yōu)化激勵(lì)軌跡,在避免算法陷入局部最優(yōu)解的同時(shí),能夠快速獲得最優(yōu)的激勵(lì)軌跡參數(shù)。自適應(yīng)學(xué)習(xí)率單層神經(jīng)網(wǎng)絡(luò)較加權(quán)最小二乘法和遞推最小二乘法辨識(shí)精度較高,從而使得機(jī)器人的動(dòng)力學(xué)參數(shù)辨識(shí)得更為準(zhǔn)確,提高了碰撞檢測(cè)算法中預(yù)測(cè)力矩的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果表明,所設(shè)計(jì)算法能夠有效進(jìn)行碰撞的檢測(cè)與區(qū)分,滿足實(shí)際生產(chǎn)的需要。