張美燕蔡文郁嚴求真
(1.浙江水利水電學院電氣工程學院,浙江 杭州310018;2.杭州電子科技大學電子信息學院,浙江 杭州310018)
基于移動Sink節點的數據采集方式逐漸成為無線傳感器網絡的一個重要研究方向[1-2]。隨著自動化和智能化程度的不斷提高,無人小車、無人機、水下航行器等智能機器人系統逐漸應用于各種傳感器網絡中[3-4]。在Sink節點進行移動數據采集過程中,計算的優化路徑必須能夠規避無線傳感器網絡中可能存在的各種類障礙物。傳統的自主機器人避障是通過雷達、聲吶、激光等傳感器感知周圍的環境信息,確定當前環境的障礙物分布,并根據各種傳感器采集到的感知數據進行有效路徑避障。因此,避障路徑規劃已經成為移動機器人領域的重要研究課題,也是無線傳感器網絡中Sink節點移動數據采集領域的一個技術難點。
目前關于無線傳感器網絡中移動Sink節點路徑規劃的研究較多,但是考慮障礙物躲避特性的優化路徑規劃研究相對較少[5]。1986年,Khatib提出了經典的人工勢場法(Artificial Potential Fields,APF)[6],雖然人工勢場避障算法非常簡單,但是缺陷在于目標點對移動物體產生的引力與障礙物對移動物體產生的斥力相混合,局部極值點導致避障失效。后續研究也對人工勢場避障方法進行了改進,Volpe等人提出基于超二次型(Super Quadric)的人工勢場結構[7]代替傳統二次型勢場,并對勢場函數加以修正。流函數法[8]作為一種新型的避障方法,借鑒流體力學的概念建立了勢場區域,通過模擬水流運動機理,規劃出的航線能夠像流水避開巖石一樣平滑繞過障礙物,還能避免局部最小問題。文獻[9]中引入流函數以解決障礙環境下單機器人的導航控制,從而產生光滑的無碰路徑,避免與障礙物發生碰撞。文獻[10]通過對單個障礙物流函數進行加權求和,解決了兩個障礙物重疊情況下的路徑規劃問題。文獻[11]針對水下機器人在實際應用中由于自身機動性、探測性能約束而產生的問題,改進了傳統的流函數法,結果驗證了改進算法能夠有效地規劃路徑。文獻[12]研究了流函數法在無人機航線規劃中的應用,將地形障礙和雷達等威脅等效為圓柱體,推導了流體運動的復勢函數,將其應用到多障礙物環境中。文獻[13]利用流函數解決單個移動Sink節點的避障問題,提出了采用虛擬Leader和二叉樹結構的多移動Sink節點Swarming控制模型。文獻[14]提出改進的流函數規劃無人機在復雜地形環境的航線。針對傳統流函數法面對多個障礙物時存在的問題,提出了一種基于虛擬動態目標的方法,解決了兩個障礙物重疊情況的航線規劃問題。圖1所示為單個和多個障礙物情況下的平面流場分布情況,可以發現移動Sink節點沿著流線方向運動能夠實現避障效果。

圖1 平面障礙物場景下流場分布
綜上所述,目前一些研究已將流函數方法應用于無人機或無人航行器的避障路徑規劃領域,但是基本上都是針對二維平面應用環境,缺乏三維環境下基于三維流函數的避障路徑研究。本文將流函數應用到三維無線傳感器網絡環境中,利用球型障礙物在Z軸分層的方法實現三維流場計算,并且提出橢圓形路徑變形方法克服“滯點”問題,從而求取移動Sink節點在三維無線傳感器網絡中的避障優化路徑。
無線傳感器網絡中分布的實際障礙物一般是不規則的,但是由于水流、風沖刷、腐蝕等影響,長時間作用下的障礙物一般都呈現了凸型多邊體形態[15]。為了簡單起見,本文以障礙物的質心位置為球心、安全半徑為R的規則球體來表示需要躲避的障礙物范圍。
基于凸球型障礙物的避障路徑規劃模型如圖2所示:在三維傳感器網絡空間內隨機分布若干個球型障礙物,移動Sink節點沿著預先設定的路徑進行移動數據采集。避障規劃的目標是使移動Sink節點所規劃路徑中的任何一點都不觸碰到障礙物范圍,而且規劃路徑要盡量保持連續和平滑。基于以上優化模型,本文借鑒流函數的思想并進行三維擴展,設計了適合三維傳感器網絡空間的有效避障路徑規劃方法。本文假設移動Sink節點在移動之前就已獲取了全局網絡空間內障礙物的分布情況,因此可根據障礙物分布計算整個區域的三維流場分布。

圖2 基于球型障礙物的避障路徑規劃
流體力學中流體的繞流運動理想情況下可以看成是無旋運動,如果理想流體在某一源點是無旋流,則該流體在源點周圍也是無旋流[16]。對于任意的標量函數?,存在?×??=0,所以滿足無旋性的條件可以定義為:uf=??,其中uf為速度勢,該無旋流定義為勢流場[17]。速度勢uf可表達為uf=u+iv,i指實數的虛部,因此有以下公式:

在直角坐標系中,在二維不可壓縮流動場中需要滿足質量守恒方程:因此可引入一個新的函數定義如下[17]:

如果滿足上述條件,則上述函數被稱為流函數,流函數是表示流線的函數[18]。令球心位置為(Ox,Oy),球體半徑為R,則在統一流場(洋流強度為U)作用下的流函數公式可以推導得到[18]:

由上述的推導過程可知,使用流函數的概念進行避障路徑規劃,實質上是將移動Sink假設為水流體的一部分,利用虛擬的流線作為移動Sink的運動軌跡。因此,可以按照上述的勢函數和流函數公式生成避障流線分布,讓移動Sink節點根據起點位置選擇相應的流線,并沿著該流線運動,就可以避開相應的障礙物。基于流函數的路徑規劃可以滿足躲避障礙物的需求,同時還可以保持運動路徑的連續性和平滑性。
下文主要推導三維流函數的存在條件和構造方法。在不可壓縮的無旋場中,由于球體障礙物是立體對稱的,因此三維流函數可以通過將X-Y平面經過Z軸擴展到X-Y-Z三維坐標系。三維空間球型障礙物環境下的流場計算方式如圖3所示:本文將球型障礙物用不同的Z值平面去切割,切割成一個個不同半徑R?的圓形障礙物,因此可以求出對應不同Z坐標的圓形障礙物的流函數分布,如圖4所示。按照不同Z坐標下的流場曲線,移動Sink根據自身的起點位置選擇合適流線進行避障路徑規劃。

圖3 三維空間球型障礙物環境下流場計算模型

圖4 基于三維流函數的球型障礙物避障方法
為了克服傳統流函數避障曲線存在的“滯點”問題[10],本文提出了一種新型的橢圓形路徑變形方法。當根據起始位置所選擇的流線剛好處于“滯點”位置時,將圓形軌跡調整為橢圓形路徑,從而克服無法求解避障路徑的問題。
橢圓形路徑變形算法如圖5所示,圓形障礙物的半徑為r,令其等于橢圓形的寬b=r,橢圓長a設為a=2r,即在距離障礙物球形等于兩倍障礙物半徑時就啟動橢圓路徑變形算法。為了控制方便,將規劃路徑離散化成[(x0,y0),(x1,y1),…,(xn,yn)],然后進行各個計算路徑點的速度偏移。路徑點(x0,y0)到路徑點(x1,y1)的連線與X軸正向的夾角θ可以計算如下:


圖5 橢圓路徑變形方法
假設沿X正軸的洋流強度為U,移動Sink節點在Y負軸方向的速度分量為V0,因此在路徑點(x0,y0)只要滿足式(4)所示的速度條件,就可以沿著曲線行進到路徑點(x1,y1),從而避免流函數的“滯點”問題。

橢圓路徑變形算法的仿真結果如圖6所示:

圖6 橢圓路徑變形方法仿真結果
基于流函數的三維避障算法采用MATLAB軟件進行仿真,采用的方法如上文所述。仿真場景設置如下:三維無線傳感器網絡場景中分布多個不同半徑的球型障礙物,隨機選擇移動Sink節點的起點位置計算整體空間的虛擬流場。本文的主要仿真參數選取如表1所示,單位均為基本單位(Unit)。

表1 仿真參數
二維平面流函數的分布情況如圖7所示。隨機分布如表2所示的多個障礙物時,利用流函數獲得的避障路徑如圖8所示,虛線加粗的流線為根據起點位置所確定的移動Sink節點的運動路徑軌跡。立體空間內不同Z軸位置的流線分布如圖9所示,可見不同Z軸對應的障礙物在X-Y平面投影不一樣,利用本文提出的Z軸分層方法就可以獲取不同Z坐標時的流線分布,從而獲取三維環境下的全局流線分布,移動Sink節點可以根據目前自身所處的Z坐標選擇合適的流線路徑進行移動。

圖7 平面流線仿真結果

圖9 三維空間內不同Z位置的流線分布

表2 多障礙物位置分布

圖8 多障礙物平面避障路徑
下文從三維擴展角度分析本文提出的三維流函數避障算法的性能。
三維傳感器網絡中存在單個球體障礙物情況下,移動Sink節點的起點位置不同,得到的流函數避障路徑如圖10所示,根據流線分布獲取三維空間不同起點到終點的避障軌跡,從而驗證了本文提出的三維流函數避障方法能夠有效躲避單個障礙物。

圖10 單障礙物三維避障路徑
當三維傳感器網絡內存在隨機2個球型障礙物情況下,移動Sink節點的起點位置相同,獲得的流函數避障路徑如圖11所示。為了表現清晰,圖11展現了多障礙物情況下三維避障路徑的俯視圖。根據流線分布獲取三維空間不同起點到終點的連續避障軌跡,從而驗證本文提出的三維流函數避障方法能有效躲避多個障礙物。

圖11 兩障礙物Sink節點三維避障路徑
在較大區域的三維傳感器網絡中隨機分布10個半徑不一的球型障礙物時,基于流函數避障的移動Sink節點軌跡如圖12所示。從仿真結果可以發現,利用本文所提出的流函數避障方法,在障礙物較為密集的三維無線傳感器網絡可以搜索到優化的避障路徑。從獲取的實際軌跡中也可以發現,利用流函數避障方法獲取的移動Sink軌跡具有良好的連續性和平滑性。

圖12 多障礙物Sink節點三維避障路徑軌跡圖
為了保證移動Sink節點在三維無線傳感器網絡中路徑能夠有效躲避多個隨機分布的障礙物,本文提出一種利用三維流函數為移動Sink節點選擇優化避障路徑的方法。仿真結果表明,通過三維流函數所規劃出的避障路徑具有良好的連續性、平滑度和和高效的避障率,可以滿足移動Sink節點在移動運動中躲避障礙物的需求。后期的研究將集中于構建更多種形狀障礙物情況下的三維流函數分布,同時分析比較均勻流函數和匯流函數的避障效果。