李金彥
(寧夏工商職業(yè)技術(shù)學院機電工程系,寧夏銀川 750021)
移動機器人路徑規(guī)劃是人工智能與機器人學相結(jié)合的一個重要研究課題,其任務就是根據(jù)環(huán)境狀態(tài)和工作信息在起始點和目標點之間規(guī)劃出一條平滑路徑。路徑規(guī)劃滿足始于起始終于目標,安全避障,最快到達[1-3]三方面內(nèi)容。傳統(tǒng)的人工勢場算法的結(jié)構(gòu)相對簡單,收斂性優(yōu)越,便于底層的實時控制,規(guī)劃出的路徑比較平滑并且安全,尤其適合簡單靜態(tài)環(huán)境下的路徑規(guī)劃。但是,傳統(tǒng)算法只是局部路徑規(guī)劃方法,存在局部極小值,在復雜動態(tài)環(huán)境中,極易造成移動機器人死鎖現(xiàn)象:在障礙物和目標點接近時,機器人難以到達目標點;勢場角度不易控制,機器人在障礙物前震蕩等現(xiàn)象;在多障礙物緊密分布的情況下,機器人會在障礙物形成的狹窄通道中擺動[4-5]。
本文以機器人路徑規(guī)劃算法和具體策略為研究對象。采用二值圖像的數(shù)學形態(tài)學的方法,利用膨脹運算和腐蝕運算兩種對偶的基本變換算子,將離散的障礙物個體融合為完整的障礙物體,建立環(huán)境狀態(tài)數(shù)學模型;對機器人工作空間進行全域搜索,尋求逃離局部最小點的運動方向;對算法實現(xiàn)采用PC與ARM控制模式,PC主要處理二值圖像狀態(tài)中膨脹和腐蝕操作并采集移動機器人實時坐標位置,這是基礎(chǔ)控制層;ARM針對移動機器人自身攜帶距離傳感器信息進行實時處理,設計移動路徑,這是行為控制層設計。
人工勢場法將機器人在周圍環(huán)境中的運動,設計成一種抽象的人造引力場中的運動,目標點對移動機器人產(chǎn)生“引力”,而障礙物對移動機器人產(chǎn)生“斥力”,最后通過求合力來控制移動機器人的運動。
設機器人在空間中的位置為X=[x,y]T,機器人與目標點引力場函數(shù)為:
上述引力場對機器人產(chǎn)生的引力勢能的負梯度為:
式中:katt為正比例常數(shù)因子;X為機器人當前在運動空間的位置[x,y]T;Xg為目標點在空間的位置[xg,yg]T,|X-Xg|為機器人當前位置與目標點的距離??梢钥闯?,引力隨機器人與目標點距離變小而線性減小并最終趨于零。
障礙物i對機器人產(chǎn)生的斥力場函數(shù)為:Ureps(Xi)=
上述斥力場對機器人產(chǎn)生的斥力勢能的負梯度為:Freps(Xi)=-▽Ureps(Xi)
式中:krep為比例因子;Xobs為障礙物在運動空間中的位置;X-Xobs為障礙物與機器人的作用距離;ρ0為斥力閾值距離,距離超過ρ0,斥力可忽略不計,斥力場隨著移動機器人與目標點距離的減少而減少,保持引力場始終大于斥力場。
所以機器人在運動空間中的合勢場和合力分別為:
合勢場與合力決定了機器人的運動,機器人在合勢場的作用下,從高勢場位置逐步向低勢場位置運動,由于目標點被設計為合勢場的全局極小點,理想狀態(tài)下,機器人能夠最終到達并止步于目標點。然而,在復雜環(huán)境下,多個障礙物會造成目標點以外的區(qū)域也存在極小點,因此導致機器人可能無法到達預定目標,從而產(chǎn)生死鎖,如圖1所示。
圖1 機器人人工勢場法“死鎖示意圖”
機器人從起始點(4,3)要到達目標點(19,18),從A到B區(qū)域,主要受到目標點引力場和(8,1)處障礙物的斥力場,從B到C區(qū)域,各障礙物合力作用,在引力場作用下,移動機器人運動方向指向G點,但障礙物合圍造成無法通過障礙,從而在C區(qū)域持續(xù)震蕩,無法到達目標點。
針對機器人在障礙物前持續(xù)震蕩并停止不前,對人工勢場法算法進行改進,分為全局二維圖像的處理和空白路徑搜索法兩方面。
對二維圖像全局處理,是建立在上位機對靜態(tài)環(huán)境已知的基礎(chǔ)上,平面結(jié)構(gòu)元素由0或1矩陣形式表現(xiàn)。結(jié)構(gòu)元素原點和終點表現(xiàn)靜態(tài)環(huán)境大小,而值為1的點,是需要處理的障礙物點[6-7]。采用數(shù)學形態(tài)學方法,利用膨脹和腐蝕兩種對偶變換,將離散障礙物點融合為完整背景圖像,用于對移動機器人運動路徑的全局規(guī)劃。
膨脹是用矩陣算子依次掃描每一個像素點,用矩陣中結(jié)構(gòu)元素和覆蓋的區(qū)域做“與”操作,如果結(jié)果全部為0,則該像素點為0;若為1,則二值圖像該像素點為1。腐蝕是與膨脹運算對偶,選用不同矩陣算子掃描處理每個像素點,用矩陣中結(jié)構(gòu)元素和覆蓋的區(qū)域做“與”操作,若結(jié)果全部為1,則該像素點為1;若為0,則二值圖像該像素點為1。膨脹和腐蝕處理都需要考慮到移動機器人的具體形態(tài)。障礙物較小,機器人可以自由輕松通過時,該障礙物可以作為噪聲點進行處理;若兩障礙物相鄰,可以考慮融合在一起,更好規(guī)劃移動機器人路徑。
筆者選取3×3膨脹算子和腐蝕算子為:
分別對圖像局部融合和去噪,圖2為全局靜態(tài)環(huán)境通過算子處理后狀態(tài)。
圖2 算子處理后狀態(tài)
當移動機器人底層程序檢測到自身陷入局部極小點后,停止運動,傳送機器人環(huán)境數(shù)據(jù),等待上位機指令。上位機根據(jù)移動機器人位置和靜態(tài)環(huán)境信息,設定虛擬目標點。移動機器人啟動搜索程序,通過旋轉(zhuǎn)角度,改變原有運動方向,逃離局部極小值。
如圖3所示,移動機器人沿1方向運動時處于死鎖狀態(tài),有幾個已知量:
(1)移動機器人本體半徑為r,旋轉(zhuǎn)半徑為R,有n個距離傳感器均勻分布于圓周。
(2)當前運動速度v和運動方向已知。
(3)L為啟動空白搜索程序的閾值,是一個與v相關(guān)函數(shù),根據(jù)ARM程序采樣周期T,選擇L=2.5×vT。此刻第i個距離傳感器正對B障礙物,與i號傳感器相鄰傳感器(順時針方向)為,i+1,…,n,逆時針為i-1,…,1。逆時針檢測到障礙物的傳感器個數(shù)少于順時針方向,確定機器人旋轉(zhuǎn)方向為逆時針。旋轉(zhuǎn)角度 θ≥ arccos(R/S),S=|X-Xa|=,其中(x,y)為移動機器人在上位機靜態(tài)環(huán)境中的坐標,(xa,ya)是障礙物A的位置。算法為:
θj=(i-j) 2 π/n,j≤i,j為程序中遞增量。
圖3 空白路徑搜索
圖4為機器人硬件系統(tǒng)。
圖4 機器人硬件系統(tǒng)
硬件系統(tǒng)采用ARM+PC模式,ARM是32位處理器,速度快,功耗低,集成度高,功能強大,因此ARM非常適用于移動機器人行為控制層;PC機系統(tǒng)決策力強,通信良好,易于擴展,作為基礎(chǔ)決策層處理器;移動機器人運動底盤采用雙輪差速驅(qū)動,配合2個萬向輪,可原地轉(zhuǎn)向、速度快、運動靈活,結(jié)構(gòu)簡單可靠,作為平臺安裝硬件電路和部件,路徑規(guī)劃硬件系統(tǒng)如圖4。
上位機和下位機算法流程如圖5所示。
圖5 上位機合下位機算法流程圖
為了檢驗機器人對于不同環(huán)境的適應能力,筆者考慮了如圖1所示的復雜環(huán)境,該環(huán)境為20 m×20 m的平面區(qū)域,包含密集障礙物、狹窄過道和無障礙環(huán)境3種不同類型的區(qū)域。通過對復雜環(huán)境進行二值化處理和空白搜索,建立復雜環(huán)境數(shù)學模型,選擇合理的初始化參數(shù),得到仿真結(jié)果如圖6所示。仿真結(jié)果表明,當目標點在障礙物范圍內(nèi)時,并且存在局部最小點時,使用改進的人工勢場法,機器人能安全、快速到達目標點,如表1為初始化參數(shù)表。
圖6 仿真結(jié)果
表1 初始化參數(shù)表
針對人工勢場法在移動機器人路徑規(guī)劃中存在的“死鎖”現(xiàn)象,建立了改進的人工勢場數(shù)學模型,以PC機為決策層,以ARM處理器為控制層,采用上位機和下位機協(xié)調(diào)決策的方式,在原人工勢場算法陷入極小值的狀態(tài)下添加了“空白搜索法”,移動機器人很快解除“死鎖”。通過仿真實驗可知,以改進的人工勢場法為機器人路徑規(guī)劃具有一定的適用性,該算法不但適用于單個障礙物進行避障,而且能實現(xiàn)多個障礙物構(gòu)成的復雜環(huán)境,特別是連續(xù)C型障礙物環(huán)境下的避障動作,使得機器人繼續(xù)前行從而安全快速到達目標地點。
[1] CraigJ J.Introduction to Robotics:Mechanics and Control[M].Second edition.Addison Wesley,2009.
[2] Zhang B,Chen W M,F(xiàn)ei M R.An Optimized Method for Path Planning Based on Artificial Potential Field[C].Jinan:ISDA,2006:35-39.
[3] 高緒祥,劉 靜,趙曉輝.具有越障和避障功能的小型移動機器人設計[J].機械研究與應用,2010,23(4):71-73.
[4] 戴 博,肖曉明,蔡自興.移動機器人路徑規(guī)劃技術(shù)的研究現(xiàn)狀與展望[J].控制工程,2005,12(3):198-202.
[5] 沈文君.基于改進人工勢場法的機器人路徑規(guī)劃算法研究[D].廣州:暨南大學,2009.
[6] 殷 路,尹怡欣.基于動態(tài)人工勢場法的路徑規(guī)劃仿真研究[J].系統(tǒng)仿真學報,2009,21(11):3325-3329.
[7] 黃炳強,曹廣益.基于模糊人工勢場的移動機器人路徑規(guī)劃[J].上海理工大學學報,2006,28(4):347-350.