董麗莎
(鄭州西亞斯學院 電子信息工程學院,鄭州 451100)
現(xiàn)階段,社會對電子技術的新要求驅使著智能科技快速發(fā)展,各類智能技術的衍生產(chǎn)品更是成為現(xiàn)下的銷售主流。其中,移動機器人的應用范圍最為廣泛,可用于物流分揀、電站巡檢以及工業(yè)生產(chǎn)等領域。移動機器人具有高靈敏性、高動態(tài)捕捉的視覺觀察能力,可運用機械臂進行靈活地抓取、拋擲等動作。但當外界環(huán)境存在障礙物干擾或初始目標設定值出現(xiàn)偏差時,容易出現(xiàn)機械臂碰撞現(xiàn)象導致出現(xiàn)故障。
文獻[1]提出一種基于重點考慮了系統(tǒng)的非線性動力學特征變化,建立機械臂變量間作用及重力因素的影響關聯(lián)模型,針對可能出現(xiàn)碰撞的不確定性因素進行策略迭代算法,求解李雅普諾夫穩(wěn)定性理論函數(shù),根據(jù)函數(shù)值確定最佳的無碰撞規(guī)避參數(shù)。該方法沒有考慮到干擾量導致的計算偏差問題,規(guī)避軌跡規(guī)劃效果較差。文獻[2]通過歷史數(shù)據(jù)分析建立了冗余機械臂的運動學模型,借助深度學習算法對機械臂的碰撞軌跡進行訓練測試,將測試結果作為機械臂與障礙物間安全距離的參照閾值。該方法由于訓練次數(shù)較少和關鍵對照參數(shù)計算錯誤的問題,導致安全距離閾值參考價值低,無碰撞軌跡計算誤差較大。
綜合上述問題,本文采用改進Dijkstra算法對輪式移動機械臂無碰撞軌跡進行計算研究。在所有路徑規(guī)劃算法中,Dijkstra是指從一個路線頂點至其余各頂點的最短路徑,是以設定條件為目標的軌跡規(guī)劃算法的前提和基礎。本文利用Dijkstra算法的貪心思想,根據(jù)機械臂的動力學模型,將未經(jīng)碰撞和經(jīng)歷碰撞的軌跡進行融合計算,求解最佳的安全距離路線,再結合Dijkstra算法在路線中尋找最短路徑,多次迭代計算,該方法既避免了求解過程中的局部最優(yōu),又保證了求解的多樣性,實現(xiàn)最優(yōu)化的無碰撞軌跡選擇。
考慮到輪式移動機械臂自身慣性較大、動態(tài)能力較強的特點,建立動力學模型對其運動特征進行詳細分析,得到關鍵動力參數(shù)值作為下一步驟無碰撞軌跡算法的參考。
一般情況下,輪式移動機械臂的兩個后輪分別采用各自獨立馬達來驅使運動,在機器人的中心質點位置裝配動力測試器,采集結果得到機器人的動態(tài)結構如圖1所示。
圖1 輪式移動機械臂結構示意
圖1中,以平臺的質心C2位置作為運動參照點,為圓心的虛線圓需要滿足路徑最短距離r=10,得到機械臂的運動方程為:
式(1)中,xc、yc分別表示水平與垂直方向的軸線;cosφ表示平臺對稱軸與之間的余切夾角;sinφ表示平臺對稱軸與之間的正切夾角;d表示桿件與質心C2之間的距離,φ表示夾角。用q=[xc,yc,φ,θ1,θ2]來代表動力學參數(shù)集合,其中,θ1、θ2分別表示連桿1和連桿2之間的旋轉方向角,表達方程為:
式(2)中,存在A(q)=[-sinφ,cosφ,-d,0,0]關系,q′′表示進行標準動力描述后的參數(shù)集合。
通常情況下,當機械臂出現(xiàn)碰撞時,連桿1和連桿2的旋轉角θ1、θ2勢必會出現(xiàn)變化,對連桿施加不同的碰撞力,分別計算不同力度下角度的變化,矩陣S(q)表達公式如式(3)所示:
對式(4)~式(6)進行微積分[3]計算即可得:
考慮到機械臂運動的速度關系影響,將速度參數(shù)VT=[v1,v2,v3,v4]和角度參數(shù)ST=[s1,s2,s3,s4],將式(9)引入速度參數(shù)VT和角度參數(shù)ST可得到:
式(10)中,J(q)表示雅可比矩陣,式(10)將移動機械臂的輸出參數(shù)與運動速度、角度聯(lián)系起來,將其中作為無碰撞路徑規(guī)劃的參照重點,幫助提高軌跡規(guī)劃的精準度。
Dijkstra算法結合了貪心理論,以最短路徑為基礎,在可行空間內(nèi)查找最佳的目標點,當空間中存在多個目標時,出現(xiàn)不確定現(xiàn)象,Dijkstra算法是最好的選擇,它可以從源頭開始逐步擴展搜索的范圍,直至尋找到最優(yōu)解為止,且路徑重復概率較低,算法適應能力較強,魯棒性較高。改進Dijkstra算法是建立在傳統(tǒng)Dijkstra算法上的一種最優(yōu)路徑規(guī)劃策略,在算法中加入了機械臂速度和角度參照函數(shù)供無碰撞軌跡進行評估,使規(guī)劃路徑更為準確合理。
在進行無碰撞的路徑軌跡規(guī)劃時,以機器臂在障礙空間的起點位姿為規(guī)劃的根節(jié)點,根據(jù)上述過程得到的動力學參數(shù)建立懲罰函數(shù)[4],生成一個隨機擴展樹。當隨機樹的所有分支中包含機械臂避障目標相關的位姿節(jié)點時,即可在隨機樹中查找該位姿節(jié)點的起始點,追蹤運行路徑,該路徑即為最佳的無碰撞路徑[5]。本文對傳統(tǒng)的Dijkstra算法進行擴展改進,在算法原有的基礎上增加了代價函數(shù)進行避障約束,采用Python extend擴展函數(shù)降低規(guī)避算法的計算代價,以便達到快速收斂的目的。根據(jù)移動機器人機械臂動力學的參數(shù)特征建立的懲罰函數(shù)如下:
式(11)中,G(W,Wrand)表示隨機路徑規(guī)劃的位姿代價;Ea表示機械臂平穩(wěn)性權重;Ed表示路徑最短權重參數(shù);D(Pi,Pgoad)表示機械臂在D狀態(tài)下從目標點Pi到點Pgoad的距離代價;Tnode表示隨機樹函數(shù),與目標點Pi位置越接近的點,路徑代價Wi越低;A(Ui,Urand)表示機械臂從點Ui運動至位姿點Urand各個關節(jié)的實時角度變化參數(shù),該值越小代表機械臂在運動過程中的角度變化幅度越小,穩(wěn)定性越強。
運用相鄰兩個機械臂位姿點的關節(jié)角度變化,作為平衡機械臂無碰撞平穩(wěn)定的標準,定義其位姿角度變化程度為:
式(12)中,αrandj表示機械臂各關節(jié)的正值關節(jié)角;βij表示各關節(jié)的負值關節(jié)角;j表示關節(jié)點。由于輪式移動機械臂的尺寸和所需的工作空間都相對較大,采用擴展函數(shù)進行無碰撞搜索計算時,空間范圍過大會影響搜索效率,且環(huán)境內(nèi)也會存在一定未知因素影響。為讓無碰撞算法的尋優(yōu)構成效益最大化,需要通過迭代計算不斷逼近代價函數(shù),并將機械臂從起始位置至目標點的搜索過程看作是一個不斷迭代尋優(yōu)過程,對空間內(nèi)的每個角落都進行全覆蓋搜索,進而提高算法效率和性能。
采用所提方法搜索機器臂位姿目標時,首先要設置一個誤差區(qū)間,然后當機器臂末端位置節(jié)點誤差在設置范圍內(nèi),說明對該節(jié)點的判定屬于正確判定;反之,當誤差值大于設定的誤差范圍時,需要將該值剔除再重新搜索全局最優(yōu)目標,直至符合誤差標準。通過上述方法進行無碰撞路徑規(guī)劃后,再采用避障位姿調(diào)整策略,對機械臂的關節(jié)角度進行微調(diào),消除誤差,使無碰撞路徑達到最佳精準度。
為驗證基于改進Dijkstra算法的輪式移動機械臂無碰撞軌跡規(guī)劃的有效性,采用MATLAB(Matrix Laboratory)矩陣實驗室作為測試平臺。將移動機器人機械臂按照工作習慣,分為1到6個不同的動作關節(jié),其機械臂關節(jié)示意如圖2所示。
圖2 輪式移動機械臂示意圖
實驗的測試指標將根據(jù)各個關節(jié)無碰撞的避障軌跡及角度變化進行系統(tǒng)分析。
結合輪式移動機械臂多為物流運輸行業(yè)的工作環(huán)境,其工作多為抓取貨物等,容易受到障礙物影響的是墻壁、貨架以及其他移動機器等??紤]到該點,將障礙物形態(tài)設置為常見的矩形和圓形,并與文獻[1]方法、文獻[2]方法進行對比分析,得到三種方法在不同障礙環(huán)境下的無碰撞軌跡結果如圖3~圖5所示。
圖3 墻壁障礙物下三種方法無碰撞軌跡規(guī)劃結果
圖4 矩形形態(tài)障礙物下三種方法無碰撞軌跡規(guī)劃結果
圖5 圓形形態(tài)障礙物下三種方法無碰撞軌跡規(guī)劃結果
從圖3中可以看出,矩形障礙物的組成方式更接近顯示墻壁表達,從起點至終點需繞過墻壁。對比三種方法的無碰撞規(guī)避路徑可知,文獻[1]方法存在過度避障的問題,沒有把握好障礙物的安全距離,路徑規(guī)劃軌跡較大;文獻[2]方法則存在過彎困難的問題,在墻角位置出現(xiàn)多次碰撞;而所提方法的路徑規(guī)劃軌跡較小,機械臂與墻壁之間的安全距離把控較好,在保證無碰撞的前提下,完成軌跡規(guī)劃路徑最短。
從圖4中可以看出,所提方法的軌跡規(guī)劃最好,有效規(guī)避了矩形障礙物,且路徑曲線變動較小呈現(xiàn)接近直線的狀態(tài),保證了路徑最低消耗。而文獻[2]方法的避障軌跡則出現(xiàn)了多次碰撞現(xiàn)象,規(guī)避效果較差且路徑消耗較大,各方面路徑規(guī)劃性能表現(xiàn)較差;文獻[1]方法雖然保證了機械臂的無碰撞,但是在路徑最短方面存在控制誤差。綜合對比可知,所提方法的無碰撞規(guī)避效果較好。
從圖5中可以看出,相對于前兩種障礙物,三種方法的圓形障礙避障效果最佳。從最短路徑方面來看,所提方法的軌跡整體接近直線,這說明機械臂運行從起點至終點沒有出現(xiàn)多余路徑,文獻[1]方法的路徑總長要遠遠大于所提方法;而文獻[2]方法與所提方法相比彎繞過多。由此可知,所提方法對機械臂無碰撞軌跡規(guī)劃效果最好,實用性最強。
上述是對機械臂整體無碰撞軌跡控制效果的判定,為進一步驗證所提方法的有效性,對圖2機械臂的6個關節(jié)分別進行避障角度分析,通過關節(jié)角的變化并結合實際進行有效分析,實驗結果如圖6~圖8所示。將移動機械臂的最佳避障軌跡設為上舉,對比三種方法進行避障后的機械臂動作,是否與最佳軌跡相符。
圖6 文獻[1]方法機械臂軌跡控制結果
圖7 文獻[2]方法機械臂軌跡控制結果
圖8 所提方法機械臂軌跡控制結果
從圖6~圖8中可以看出,所提方法進行避障時機械臂角度變化均在-10°~40°之內(nèi),各個關節(jié)基本處于正方向運動,表明機械臂正在進行上舉或抬起等動作,與最佳情況描述相符合;而另外兩種方法存在反方向的動作角度,機械臂在-10°~-30°出現(xiàn)關節(jié)變動,表明機械臂出現(xiàn)旋轉或放下等動作,與實驗的最佳避障情況進行對比,偏差較大,機械臂的上舉動作只會發(fā)生正值角度變化,與實際情況表達不相符,機械臂無碰撞避障存在較大誤差。由此可知,所提方法能夠有效實現(xiàn)無碰撞避障,減小計算誤差,確保整體的避障效果。
本文提出了一種基于改進Dijkstra算法的輪式移動機械臂無碰撞軌跡規(guī)劃方法,詳細研究得到以下幾點結論:
1)為達到最優(yōu)的無碰撞效果,本文建立了機械臂的動力學模型,通過模型詳細分析了動態(tài)動作時,關節(jié)角度和運行速度線性變化,通過函數(shù)求解得到的關鍵參數(shù)來作為下一步避障規(guī)劃的參考,最大程度上降低誤判,提高精準度。
2)利用改進Dijkstra算法路徑尋優(yōu)效果佳、搜索速度快的特點,建立了無碰撞的軌跡目標懲罰函數(shù),函數(shù)可以有效規(guī)范障礙物點和目標點間的安全距離誤差,保證避障效果最大化。
3)實驗結果表明,所提方法對在不同障礙物形態(tài)下均能實現(xiàn)有效避障,在此基礎上還能保證最短路徑,提高機器人運行速度和效率。