黎宇晨,蔣強,王洪參
(1.沈陽理工大學,遼寧 沈陽 110159;2.沈陽信東機電有限公司,遼寧 沈陽 110000)
由于本文研究內(nèi)容為狹小空間中的機械臂的運動軌跡規(guī)劃,對于粒子群算法,其在搜索路徑的過程中對于離散的優(yōu)化問題處理不佳,容易在搜索全局最優(yōu)路徑時陷入局部的最優(yōu),無法全面考慮,因此可能會對實驗結(jié)果造成誤差;而對于傳統(tǒng)A*算法,是對于節(jié)點和節(jié)點以外的點以最優(yōu)的方式進行搜索的一種搜索方式,目的以最小的代價值完成相應(yīng)的目標[1];但傳統(tǒng)A*算法在搜索過程中規(guī)避障礙物的時候沒有考慮到經(jīng)過障礙物頂點時候的情況,容易造成不安全的因素,進而產(chǎn)生誤差。
為解決上述問題,本文提出了結(jié)合碰撞檢測的三維A*算法,相比較于傳統(tǒng)的A*算法,在考慮了規(guī)避障礙物頂點的情況下同時加快了搜索的效率,通過在節(jié)點和節(jié)點之間引入目標函數(shù),來判斷下一個點是否可以作為最優(yōu)節(jié)點,有著最優(yōu)節(jié)點的指標,進而設(shè)定一條最優(yōu)的路徑;在保留局部最優(yōu)的同時計算周圍的最優(yōu),進而達到路徑的最優(yōu),考慮了全局,更加的具有效率性以及精準性。
A*算法,其本質(zhì)上是通過代價函數(shù)來在眾多節(jié)點中尋找最優(yōu)節(jié)點進而形成路徑的一種搜索方法;在搜索的過程中不需要搜索全部節(jié)點,而是在初始點的周圍開始逐步搜索,該算法所涉及公式為:
三維A*算法,相比于傳統(tǒng)A*算法在搜索過程中以及搜索路徑最優(yōu)的方面更加的趨于完善,對于路徑中的障礙物這一因素考慮了在搜索途中經(jīng)過障礙物頂點的情況,可以在總代價最小的前提下通過軌跡規(guī)劃來盡可能避開障礙物的頂點,因此本文利用三維A*算法來搜尋在已知障礙物條件下的機械手的最佳路徑[4]。
其中i和i+1分別表示節(jié)點和后續(xù)節(jié)點,并在此基礎(chǔ)上引入了子條件對于三個坐標軸xi、yi、zi后一個節(jié)點與前一個節(jié)點之間的距離關(guān)系,并在h(n)這一估計值的基礎(chǔ)上利用懲罰函數(shù)來做出相應(yīng)的約束限制,進而求出最優(yōu)的估計值;使機械臂在正常運行情況下以最優(yōu)的路徑到達實驗預期的目標點。
當機械臂運動時,將機械臂采用有向包圍盒OBB進行包圍,過程中所有的障礙物也一并用有向包圍盒OBB包圍,雖然有向包圍盒的計算量略大,但包圍性是極高的,有利于實驗的準確性。
如圖1,表示了在密閉的實驗箱中移動的機械手和障礙物的投影情況,實驗箱用簡易的框架來表示,左側(cè)為機械手投影,右側(cè)為障礙物投影,以二維的形式來顯示出來,進一步通過二維的形式來分析之間的碰撞情況[5]。對于機械手和障礙物兩個投影,首先要考慮的是邊的問題,在移動的過程中,由于兩個剛體均采用了OBB有向包圍盒的形式,均是立方體,在靠近的過程中,考慮最近的邊即可,如果最近的邊在軌跡運動中沒有發(fā)生交集,那么此軌跡就是安全的,否則發(fā)生碰撞。
圖1 包圍盒邊的關(guān)系
同時還可以通過點的角度來考慮是否發(fā)生了碰觸,可以通過投影點的距離來判斷是否發(fā)生了碰撞;如圖2,為投影面及投影點的表示。
圖2 包圍盒點的關(guān)系
首先確定軌跡規(guī)劃的起始點和目標點,在確定了尋路的起始點,目標點的情況下,假定每一小塊立方體區(qū)域都有一個F值,該值代表了在當前路徑下選擇走該塊區(qū)域的代價,進而利用了三維A*算法代價少擇優(yōu)的方法來判定路徑;載入圖形數(shù)據(jù),分別設(shè)定起始點和目標點的值,并將空間矢量化且位置初始化,定義了兩點的位置和方向,進而也定義了障礙物的坐標和高度,在封閉環(huán)境內(nèi)設(shè)定多個障礙物,均采用了OBB有向包圍盒進行包圍[6]。
其次針對機械手,也同樣采用OBB有向包圍盒進行包圍,設(shè)定空間中坐標軸的距離,進而在封閉空間內(nèi)擬定多個障礙物,因為可以將障礙物以O(shè)BB包圍盒的形式表示,因此在設(shè)計的時候也同樣直接用包圍盒來檢測碰撞。
如圖3,表示了在同樣的障礙物環(huán)境下的情況,傳統(tǒng)A*算法與三維A*算法在起始點和目標點確定條件下路徑的不同,前方黑色線為三維A*算法規(guī)劃路線,后方藍色線為傳統(tǒng)A*算法規(guī)劃路線,由于其在傳統(tǒng)A*算法基礎(chǔ)上引入了z軸,因此形成了一個立體的三維空間,所搜尋節(jié)點如上圖均有顯示,并且可以更加直觀的分析所規(guī)劃的路徑,通過找尋局部最優(yōu)的同時來規(guī)劃全局最優(yōu)的路徑,并在懲罰函數(shù)的采用下剔除了無關(guān)節(jié)點的搜尋,提升了效率,進而搜索系統(tǒng)涉及的代價也更小,也同時盡可能避開了障礙物的頂點不安全因素,保障了安全性。如表1。
圖3 相同障礙物環(huán)境下傳統(tǒng)A*算法與三維A*算法的路徑對比圖
表1 傳統(tǒng)A*算法與三維A*算法的對比
對于兩個剛體來說,基于OBB-OBB檢測,其原則上依舊為空間中點與線段的聯(lián)系,如果在某一時刻,最近的點超過了一個限度,那么就會導致發(fā)生碰撞,考慮到箱內(nèi)近乎真空的環(huán)境,如果中途意外的發(fā)生零件的損壞或者空中漂浮物的情況,進而導致箱內(nèi)的障礙物意外的發(fā)生變換,進而導致碰撞;此時機械手為了保證設(shè)備安全,設(shè)定了原路返回,更加確保了實驗設(shè)備的安全性。
本文在外太空空間站的環(huán)境下,以狹小工作箱內(nèi)的機械手為實驗對象,通過三維A*算法來深入研究了機械手在密閉工作箱中的軌跡規(guī)劃,可以根據(jù)障礙物包絡(luò)體的復雜程度不同來相應(yīng)的規(guī)劃路線,有著極高的效率性,拓寬了算法的適用范圍,也同時增強了算法可靠性;并在搜索規(guī)劃路徑的過程中引入碰撞檢測算法,將工作箱側(cè)壁和上壁障礙物和機械手分別擬作OBB有向包圍盒進行檢測,完全適用于與三維A*算法的相結(jié)合,在保證路徑擇優(yōu)的基礎(chǔ)上極大的提高了效率性及其安全性。