呂戰(zhàn)永,曹江濤
LV Zhanyong,CAO Jiangtao
遼寧石油化工大學 信息與控制工程學院,遼寧 撫順 113001
School of Information and Control Engineering,Liaoning Shihua University,Fushun,Liaoning 113001,China
路徑規(guī)劃是移動機器人自主導航的關鍵技術之一。移動機器人路徑規(guī)劃是指在有障礙物的工作環(huán)境中,尋找一條從給定起點到終點的適當運動路徑,使機器人在運動過程中能安全、無碰地繞過所有障礙物。移動機器人的路徑規(guī)劃方法可分為基于地圖的全局路徑規(guī)劃和基于傳感器的局部路徑規(guī)劃[1]。
人工勢場法,遺傳算法,人工神經網絡等是現在運用在機器人全局路徑規(guī)劃中比較成功的算法。傳統的人工勢場法存在幾大缺陷:在相近的障礙物之間存在盲區(qū)不能發(fā)現路徑;當目標點附近處有障礙物時機器人無法到達目標點[2]。遺傳算法在環(huán)境中存在大量復雜的不規(guī)則障礙物時運算速度很慢。一些傳統神經網絡模型需要學習并且僅能處理在靜態(tài)環(huán)境下的情況[3]。SimonX.Yang提出了生物激勵神經網(Biologically Inspired Neural Network,BINN)路徑規(guī)劃方法來解決動態(tài)環(huán)境中生成實時的避障路徑,它不需要學習過程,并且在網絡結構中各神經元之間只存在局部的側連接,計算速度較快因此能對動態(tài)環(huán)境中的變化作出迅速反應[4-5]。但是這種方法也存在靜態(tài)路徑規(guī)劃中所得路徑不是最優(yōu)或者次優(yōu)路徑,在一些復雜動態(tài)環(huán)境中對動態(tài)目標追蹤效果不理想的情況。文中針對這些情況,提出了帶自反饋的BINN,并引入了新的權值函數求取方法。與原方法比在多個指標上得到了改善。
1999年SimonX.Yang把BINN應用在機器人路徑規(guī)劃上,它的應用原理是將移動機器人的運動空間映射為由BINN組成的拓撲狀態(tài)空間,其中每一個神經元活性值變化由方程(1)來求取。
式中,xi為第i個神經元的激活值,A為正常數,代表衰減率,B為神經元活性值的上界,-D為神經元活性值的下界,Ii為第i個神經元的外部輸入,k為第i個神經個神經元的激勵輸入,S-=(D+xi)[xi]-表示抑制輸入。ωij為第 j個神經元到第i個神經元的連接權,計算公式如式(2)所示:
式中,|qi-qj|為相鄰神經元qi和qj之間的歐氏距離,μ和r為正的常數,顯然ωij=ωji,即ωij和ωji是對稱的,非線性門限值函數為:
通過上述一組方程,經過一定次數的迭代計算就能得到BINN拓撲空間的神經元活性值狀態(tài)圖,沿著活性值的最大梯度上升方向就能找到一條由起點到目標點的路徑[4-6]。
BINN雖然有許多優(yōu)點但是也存在不足。
圖1是BINN在靜態(tài)環(huán)境下的路徑規(guī)劃仿真,發(fā)現在路徑規(guī)劃的過程中BINN路徑規(guī)劃方法在多個地方出現了波浪形路徑,造成了路徑的加長從而使得路徑不是最優(yōu)或者次優(yōu)。
圖1 BINN在靜態(tài)環(huán)境中的路徑生成
圖2 (a)是BINN方法在追蹤動態(tài)目標時的路徑生成,機器人和目標的運動速度相同,由于機器人對運動目標的追蹤不夠靈敏,因此當運動目標到達終點時機器人都無法對運動目標進行無差別跟蹤。
針對上面的問題,提出了自反饋BINN,它有兩項改進:
圖2 兩種算法對運動目標的追蹤
第一:在神經元上增加一個自反饋鏈接設計了自反饋權值函數求取方法,增強其前一刻的活性值狀態(tài)對下一刻的影響,從而起到抑制波浪形路徑產生的作用。自反饋BINN活性值方程如下:在式(5)中a為一個常數,ω為自反饋權值函數,由式(6)可知當神經元當前時刻激活值和前一刻激活值之差的絕對值增大時,自反饋權值ω就會變小,使最終的激活值不會出現激烈的變化,從而避免了圖1中所出現的因激活值突變而形成的波浪形的不平滑路徑。
第二:權值大小與神經元距離之間的關系并不是簡單的線性關系,而是一種復雜的非線性關系,因此采用了文獻[7]中所用的指數型的求取方法,從而增強算法對運動目標的追蹤能力,其權值求取方式如式(7):
式中,β為正常數,其他參數與BINN相同。
在增加自反饋和新的權值求取方式后算法能夠對運動的目標進行無差別的跟蹤如圖2(b)所示,機器人經過簡單的變向之后就可以無差別地跟蹤運動的目標。
進行機器人路徑規(guī)劃首先要對機器人的運動環(huán)境進行建模。先用柵格法把機器人的運動空間分割,然后把機器人的運動空間映射為由自反饋BINN組成的拓撲狀態(tài)空間,每一個柵格都對應一個神經元,機器人所要達到的目標位置對應的神經元初始激活值為1,障礙物所對應的神經元初始激活值為 -1,機器人及自由空間所對應的神經元初始激活值都為0,其中拓撲狀態(tài)空間的每一個神經元的激活值變化都由方程(5)來決定。當自反饋BINN應用于機器人路徑規(guī)劃時,第i個神經元的外部輸入Ii的求取方式如下:
式中的E是一個遠遠大于神經元活性值上界B的正的常數,一般情況下取值100。
第一,先用柵格法把機器人的運動空間建模,然后把機器人的位姿空間映射到神經網絡中,每一個柵格都對應一個神經元。
第二,神經網絡中除目標和障礙外的所有神經元激活值初始化為零,并利用式(6)通過迭代計算使目標點的神經元激活值經由神經元之間的側連接傳播到出發(fā)點。
第三,當目標激活值傳播到起始點時,利用爬山法搜索當前位置鄰域內激活值最大的神經元,如果鄰域內神經元激活值都不大于當前神經元的激活值,則機器人保持在原處不動;否則機器人的下一個位置為其鄰域內具有最大激活值的神經元[7]。
第四,如果機器人的位置坐標和目標的位置坐標重合,則路徑規(guī)劃過程結束,否則轉第三步。
為了驗證本文提出的自反饋BINN移動機器人路徑規(guī)劃方法的有效性和可行性,利用Matlab2010a對本文提出的路徑規(guī)劃算法進行了計算機仿真實驗。機器人運動環(huán)境空間為二維,機器人也為二維,機器人模型為圓形,機器人是完整的,可以在原地轉向。地圖大小為35 m×35 m,由1 225個35×35的神經元方陣組成的網絡結構來表示,星型符號(*)所組成的軌跡曲線表示機器人的規(guī)劃路徑,機器人由一個(*)位置到達臨近(*)位置為一次運動,機器人每一次橫向和縱向運動都為1 m,每一次斜向運動為1.414 m。圓圈(o)所組成的軌跡曲線為目標的運動軌跡,黑色方格表示的是障礙物,符號(+)所組成的軌跡曲線表示的是移動障礙運動的軌跡,菱形圖標表示機器人所在的初始位置。自反饋BINN模型的參數設置為 A=1,B=D=1,E=100,a=0.7,r=1.5,β=6 。
這一部分將在靜態(tài)地圖環(huán)境下對自反饋BINN算法與BINN算法[4]進行仿真比較。
仿真1是U型地圖環(huán)境下的仿真,U型地圖是測試機器人路徑規(guī)劃能力的經典地圖,在此次仿真中目標起始的坐標位置為(17,32),機器人的起始坐標位置為(17,23),機器人的移動速度為1 m/s,仿真結果如圖3所示。
圖3 U型地圖仿真
在圖3(a)中可以看到路徑總共有15次變向,在無障礙時的波浪形運動一次,最后它的路徑長度為47.694 m。在圖3(b)中路徑總共有8次變向,在無障礙處沒有波浪運動,最后它的路徑總長度為44.796 m。因此可以看出自反饋BINN比單純的BINN能生成更短更加平滑的無碰撞路徑。在現實生活中變向會浪費更多的時間和能源,自反饋BINN比BINN少了7次轉向,因此自反饋BINN比單純的BINN更加節(jié)能環(huán)保。兩者具體的數據比較如表1。
表1 仿真1比較結果
這一部分將在復雜動態(tài)地圖環(huán)境下進行路徑規(guī)劃仿真,地圖中目標是運動的,不但有固定的障礙,同時還有運動著的障礙,仿真中機器人每一次橫向和縱向運動都為1 m,每一次斜向運動為1.414 m。
仿真2是在動態(tài)的地圖環(huán)境中追蹤移動的目標,并同時對移動的障礙作出反應。目標以1 m/s的速度由左至右從(1,34)運動到終點坐標(34,33),先階梯向下運動,然后階梯向上運動,最后停留在坐標(34,33),在這期間目標共變向11次。移動障礙以1 m/s的速度由左至右從(4,21)移動到(29,21)。機器人的起始位置為(23,10),仿真結果如圖4所示。在圖4(a)中是BINN算法所生成的實時避障路徑,當目標開始移動時機器人也開始向相同的方向移動,當機器人快要通過右側固定障礙時,從左側移動過來的移動障礙正好把右側出口堵住,機器人重新從左側通過了障礙,在這個過程中機器人有兩次在無障礙處出現波浪形的運動,在隨后的過程中機器人無法對機器人進行無差別的追蹤,在整個路徑中機器人一共轉向23次,最終路徑長度為67.36 m。圖4(b)是自反饋BINN生成的實時避障路徑,其避障路徑生成的過程同BINN方法的相似。但是當機器人通過障礙物后可以對移動的目標進行無差別追蹤。在這個過程中機器人轉向13次,最終路徑長度為66.178 m。因此可以看出在復雜的動態(tài)環(huán)境中自反饋BINN比單純的BINN能生成更短更加平滑的實時無碰撞路徑,并且能對運動目標進行無差別追蹤。在現實生活中變向會浪費更多的時間和能源,自反饋BINN比BINN少了10次轉向,因此自反饋BINN比單純的BINN更加節(jié)能環(huán)保。兩者具體數據比較如表2。
通過對新算法在動態(tài)和靜態(tài)地圖下的模擬仿真,可以總結出自反饋BINN算法模型的優(yōu)點:
圖4 復雜動態(tài)環(huán)境仿真
表2 仿真2比較結果
(1)自反饋BINN算法能夠使機器人通過可行路徑到達目標并同時消除了波浪形路徑的產生,并且能夠大量減少轉向次數。
(2)動態(tài)環(huán)境下,改善了BINN追蹤效果不理想的情況,能夠預判目標運動的方向從而在和目標同速的情況下對運動的目標進行無差別追蹤。
文章提出了一種基于BINN的帶自反饋的BINN移動機器人路徑規(guī)劃方法,在靜態(tài)和動態(tài)的環(huán)境下和文獻[4]的方法進行了仿真比較。結果表明該路徑規(guī)劃方法比原方法有了很好的提高,不僅保證了移動機器人在靜態(tài)環(huán)境下能夠得到更優(yōu)的路徑,而且在動態(tài)環(huán)境中給機器人提供了更強的對目標的追蹤能力。
[1]席裕庚,張純剛.一類動態(tài)不確定環(huán)境下機器人的滾動路徑規(guī)劃[J].自動化學報,2002,28(2):161-175.
[2]羅乾又,張華,王姮,等.改進人工勢場法在機器人路徑規(guī)劃中的應用[J].計算機工程與設計,2011(4).
[3]魏冠偉,付夢印.基于神經網絡的機器人路徑規(guī)劃算法[J].計算機仿真,2010,27(7):112-116.
[4]Yang S X,Luo C.A bioinspired neural network for realtime concurrent map building and complete coverage robot navigation in unknown environments[J].IEEE Transactions on Neural Networks,2008,19(7):1279-1298.
[5]Yang S X,Meng M.An efficient neural network approach to dynamic robot motion planning[J].Neural Networks,2000,13(2):143-148.
[6]范莉麗,王奇志.改進的生物激勵神經網絡的機器人路徑規(guī)劃[J].計算機技術與發(fā)展,2006,16(4):19-21.
[7]宋勇,李貽斌,栗春,等.基于神經網絡的移動機器人路徑規(guī)劃方法研究[J].系統工程與電子技術,2008,30(2):316-319.