徐 偉,閆茂德,趙 煜,朱 旭,李超飛
(1.長安大學 電子與控制工程學院,西安 710064; 2.長安大學 公路學院,西安 710064)
近年來,因各種原因導致的橋梁巡檢不到位、不及時而遺留的橋梁安全隱患,正逐步成為導致橋梁安全事故發生的主要原因。斜拉橋索塔作為斜拉橋的主要組成部分[1],因其高聳的結構,給橋梁管養人員對其進行巡檢帶來了諸多不便。因此,越來越多的橋梁管養人員開始借助旋翼UAV這一新型工具進行索塔巡檢[2-3]。但是,目前旋翼UAV進行索塔巡檢時全程仍以人為操控為主,巡檢效率不高。為更高效的完成索塔巡檢工作,提高索塔巡檢質量,一種面向斜拉索塔巡檢的旋翼UAV避障航跡規劃方法需要被提出。
目前,針對無人機的航跡規劃問題,常用的方法有基于圖論的方法[4]、基于單元分解的方法[5]、基于數學規劃的方法[6]。智能進化算法[7-9]等。例如,以凸多邊形區域的全覆蓋問題為研究對象,陳海等提出了一種"點邊式"寬度算法[10],但該方法僅考慮了二維平面環境下的航跡規劃問題;方旭等以三維空間中快速航跡規劃需求為研究對象,提出了一種基于人工勢場的三維航跡規劃方法[11],但該方法未考慮區域的覆蓋問題,不適用于巡檢航跡規劃領域;H. Mo等針對橋梁檢測的全覆蓋航跡規劃問題提出了一種基于單元分解和兩點搜索全覆蓋航跡規劃方法[12];文獻[13]在考慮橋梁環境障礙物的情況下,基于人工勢場法完成了橋梁巡檢航跡的規劃;袁棟等也為應對橋梁復雜環境中航跡規劃的避障要求,基于PIXHAWK和改進人工勢場法,提出了適用于橋梁檢測的無人機自動避障路徑規劃方法[14]。然而,上述方法均未提出一種適用于索塔巡檢環境下進行航跡規劃的方法。
在巡檢過程中,旋翼UAV在進行縱向運動和橫向運動時的能量消耗是有所不同的。由于旋翼UAV在進行縱向運動時需要克服機體本身重量而做功,使得消耗的能量相比橫向運動更多,這便導致了旋翼UAV在做不同方向運動時的能量消耗不同。同時,在索塔巡檢環境下,分布著密集的斜拉索,在旋翼UAV即將與斜拉索發生碰撞時,很難采用常規的避障方式,如抬升高度或左右繞飛等方式來躲避斜拉索,這將導致巡檢用旋翼UAV的飛行安全無法得到有效保證。如何確保規劃的航跡使得旋翼UAV的能量消耗最少,同時兼顧斜拉索的避障,成為了亟待解決的問題。
基于上述討論,本文提出一種面向斜拉橋索塔巡檢的旋翼UAV避障航跡規劃方法。該方法以能量消耗最少為目標,并考慮索塔巡檢環境下的斜拉索避障問題,能夠有效地為索塔巡檢規劃出安全航跡。
無人機執行索塔外觀巡檢是指:利用旋翼UAV搭載的高清云臺攝像頭在與索塔保持固定距離的條件下,依次對索塔的各表面進行圖像采集。通過對無人機采集的圖像數據進行分析,橋梁管養人員便可以在較短的時間內對索塔的服役狀況進行評估。
在設計航跡規劃方法時,需要考慮兩方面因素影響。一方面是期望獲得的航跡使得旋翼UAV的能量消耗最少。因為受旋翼UAV本身搭載的電池容量或燃油多少限制,旋翼UAV在巡檢過程中消耗的能量越少,單次巡檢的范圍就越大。這就要求航跡規劃方法所得的航跡要盡可能的以航跡消耗最少目標,從而提高巡檢效率。另一方面,旋翼UAV的飛行安全受到密集分布的斜拉索障礙物影響。不同于常規障礙物的空間分布,索塔的斜拉索有其獨特的空間分布特性。如一般條件下,斜拉索間不是絕對的平行關系,各自與橋面呈不同的傾角,且呈前后相鄰分布。如圖1所示,假設按預定航跡飛行的無人機與索塔斜拉索在C點將可能發生碰撞。因斜拉索空間分布特性的影響,若要將拉索面完全繞過,則可能導致旋翼UAV飛行航跡過于遠離索塔,在嚴重影響巡檢效率的同時也會使得圖像信息采集不完整。若采用常規的方法驅使無人機在橫向做單一的前后平移、縱向做單一的下降或抬升操作,有可能與相鄰的斜拉索發生碰撞。圖1是旋翼UAV在索塔面遇險情況示意圖,圖中點C1、C2、C3、C4為潛在的碰撞點。

圖1 無人機在索塔面遇險情況示意圖
有鑒于以上分析,提出一種以能量消耗為評價航跡優劣指標,同時考慮旋翼UAV的斜拉索避障問題的航跡規劃方法,即融合雙圓弧避障的航跡規劃方法,以解決上述問題。
為設計符合問題描述的航跡規劃方法,基于兩個點對遺傳算法進行改進,并提出雙圓弧避障策略實現斜拉索的安全避障飛行。
對于遺傳算法,考慮高度變化帶來的能量消耗不同,引入“高度能量損失因子”μ來構建能量消耗函數,從而設計適應度函數。同時采用信息熵理論描述種群多樣性,進而自適應調整交叉和變異概率,防止遺傳算法陷入“早熟”。并采用改進后的遺傳算法優良的尋優特性求取能量消耗最少的航跡。
基于對斜拉索空間分布特性的研究認識,提出的雙圓弧避障算法,對航跡上存在斜拉索障礙的局部區域進行航跡重新規劃,使得整個航跡能有效躲避斜拉索障礙的干擾。綜上所述,融合雙圓弧避障的航跡規劃方法其具體執行步驟如下:
1)環境建模。為克服索塔造型各異帶來的環境建模難等問題,受三維柵格描述空間環境啟發[15],以柵格描述巡檢環境,定義每一個柵格代表一個巡檢視點。旋翼UAV在每一個巡檢視點上進行拍攝時均可確定一個圖像采集區域,所有巡檢視點集合便構成了對該索塔面的完整描述。
按圖2中的方式建立三維空間坐標系,x軸垂直于橋面延伸方向,y軸平行于橋面延伸方向,z軸垂直于橋面方向。以位于坐標原點附近且沿x軸正方向的一側索塔面建立環境模型,圖中每一個小格代表一個巡檢視點對該處一個索塔面區域的描述。基于此,建立環境矩陣如下:
(1)
環境矩陣M的每一行,其前3個元素分別為對應的巡檢視點的三維坐標。第四個元素為其狀態位,表示該巡檢視點是否可正常通行,有1和0兩種狀態,1代表可正常通過,0代表該巡檢視點存在斜拉索障礙。

圖2 斜拉橋索塔面的環境建模
2)染色體編碼與種群初始化。當環境矩陣建立以后進行染色體的編碼與種群初始化。為簡化三維航跡規劃的復雜度,染色體采用可變長度的一維數組進行編碼,如下式所示:
Ci=[Node1Node2Node3…Noden]
(2)
式中,Ci為種群中的第i條染色體,Nodei為第i個巡檢視點,它映射了環境描述矩陣M中第i個巡檢視點的信息。
初始種群采用隨機函數生成,隨機函數基于環境描述矩陣對巡檢視點的描述,生成多條隨機染色體,并構成初始種群,以此完成種群的初始化。
3)進行選擇、交叉、變異操作。相關算子設計如下:
(1)選擇算子:對當前世代以固定大小進行分組。然后,保留每組中適應度排名前百分之三十的個體。若設每代種群的數目為m,每組個體數量為g,通過分組一共產生m/ (g* 30 %)的基染色體,其余m-m/(g* 30 %)個體均由后續的交叉算子、變異算子產生。
(2)交叉算子:為使得染色體中某段較好的巡檢視點遍歷次序較好地保存下來,按當前種群交叉概率從每組中選擇一定數量的染色體進行交叉操作。下面以含8個巡檢視點的染色體為例給出交叉規則。設隨機算子生成的交叉長度為3,起點為1。因此選取下一組最優個體上{1,2,3}的基因片段,作為改良基因片段。接下來,遍歷染色體1,按原次序取出不含該基因片段的其余基因。組成原基因片段。最后,將改良基因片段從起點開始置入新染色體,然后再按順序填入原基因片段,組成新的染色體。
(3)變異算子:按當前種群變異概率在該世代種群中選擇一定數量的染色體進行如下3種方式的變異:
(1)區間翻轉算子:將染色體部分區間的巡檢視點按逆序重新排列,區間兩端的巡檢視點順序不變;
(2)單點互換算子:將位于任意位置的巡檢視點進行位置互換;
(3)循環位移算子:在染色體中將染色體某區間段的巡檢視點依次循環向右移動一位,區間末位移至區間首位。
4)種群適應度計算。經遺傳操作后,對種群中染色體的適應度進行計算。考慮到在移動相同路程的情況下,旋翼UAV在向同一高度的索塔面巡檢視點進行飛行時消耗的能量低于向不同高度的巡檢視點飛行所消耗的能量。因此,引入“高度能量損失因子”μ來描述高度變化帶來的多余能量損失,構建能量消耗函數:
(3)
式中,Wi,j為環境描述矩陣中從第i個巡檢視點到第j個巡檢視點消耗的能量,xi、yi、zi為第i個巡檢視點三維坐標,xj、yj、zj為第j個巡檢視點三維坐標,K為單位距離的能量損失系數。
所提航跡規劃方法的優化目標為遍歷所有巡檢視點的總能量消耗最小,可表示為:
(4)
建立第i條染色體所生成航跡的適應度Fi:
(5)
由該式計算染色體適應度,能量損失越小,適應度Fi越大,否則相反。
5)收斂條件判斷。經過適應度計算后,若求出的最優解達到指定的收斂條件或者迭代次數達到最大值,則終止迭代,并執行步驟7),否則繼續順序執行至步驟6)。
6)交叉變異概率調整策略。步驟3)中所述的交叉、變異操作均使用固定概率。在極端情況下可能導致迭代找尋的解陷入局部最優的情況。因此,引入信息熵理論描述種群的多樣性,并基于種群的多樣性對每世代的交叉與變異概率進行調整。若種群多樣性低于應有的種群多樣性時,原有的交叉、變異概率將得到增大,以提高種群的多樣性,避免發生陷入局部最優解或“早熟”現象的產生。所提調整策略設計如下:
定義種群中每條染色體第j個基因位及其所有等位基因上出現第e個巡檢視點的概率為該種群中等位基因位上出現第e個巡檢視點的次數與種群的個數m的比值。記作pje。則第l世代該基因位的信息熵可表示為:
(6)
當且僅當初始種群個數m與染色體基因總基因位數n相同時,式(6)取得最大值log2m,利用該值構造與種群代數相關的多樣性閾值函數為:
(7)
式中,R為調節系數,G為增益因子,l為當前迭代次數,L為總的迭代次數。
定義pfc與pfv分別為初始交叉概率與變異概率,則考慮種群多樣性的第l代交叉與變異概率為:

(8)
式中,puc和puv為每單位概率偏差對應的概率調整值。設u為概率偏差衡量系數,偏差衡量函數f(x,y)定義為:
(9)
利用式(7)計算當前世代的種群多樣性,由式(8)計算調整后該世代的交叉概率、變異概率。
7)雙圓弧避障策略。求出能量消耗最少航跡后,針對航跡中部分區域存在斜拉索障礙的情況,采用雙圓弧避障算法進行重新規劃。
由圖3可知,空間中處于同一高度的兩點A1(xA1,yA1,zA1)、A2(xA2,yA2,zA2),中間被斜拉索所隔開,在兩點間若沿原航跡飛行,則會在C點處發生碰撞,為得到安全的避障航跡,雙圓弧避障算法采用的步驟如下。

圖3xoy平面角平分線視角的避障航跡
步驟1:利用空間距離公式得到A1、A2兩點的直線距離,記為dA。
步驟2:以A1,A2為起點,向后下方做傾斜角為θmax(θmax為高度最低處斜拉索的傾斜角)、線段長度為dl的空間線段l1、l2。線段l1、l2的終點分別為B1、B2,且有:
(10)
步驟3:以B1、B2為圓心,dA為半徑,得到與地面呈θmax角的空間圓,分別記作圓1、圓2。
步驟4:根據空間幾何原理,圓1、圓2有且僅有一個切點,聯立兩圓空間坐標方程,得到切點坐標并將其記為點T(xT,yT,zT)。將A1、T、A2用直線連接得到粗略避障航跡。

(11)
步驟5:在粗略航跡的基礎上,利用B樣條曲線基于空間點A1,A2,T做擬合,得到一條光滑的曲線,即為躲避A1、A2點間存在的障礙點生成的一條平滑航跡。
8)輸出能量消耗最少、且能安全躲避斜拉索障礙物的最優航跡。
綜上所述,融合雙圓弧避障算法的航跡規劃方法流程圖如圖4所示。

圖4 融合雙圓弧避障的航跡規劃方法流程
為驗證所提旋翼UAV避障航跡規劃方法,利用MATLAB仿真平臺對咸陽市渭城橋索塔的巡檢進行仿真實驗。在進行仿真實驗時,所用索塔主要參數如表1所示,設定旋翼UAV飛行航程為1 m時,對應消耗1個單位的能量,高度能量損失因子取3,巡檢視點大小為1*1 m2。以與圖2處于相同位置的索塔面進行旋翼UAV避障航跡仿真實驗,得到旋翼UAV避障航跡如圖5所示。

表1 索塔主要參數


圖6 旋翼UAV避障航跡局部放大圖
圖5 面向斜拉橋索塔巡檢的旋翼UAV避障航跡
在圖5中,給出了對于仿真對象的避障航跡。該航跡的總能量消耗為544.083 2個單位。若按傳統的“Z”字型飛行,則飛行的距離為680 m,將消耗680單位的能量。因此可見,在該仿真實例與假設條件下,本文所提方法將旋翼UAV飛行中的能量消耗在傳統的“Z”字型航跡的基礎上降低了19.99%。
圖6為旋翼UAV避障航跡局部放大圖,由圖可見,經雙圓弧避障算法處理,巡檢視點間需要經過斜拉索障礙物的航跡得到了重新修正,當無人機沿修正后的航跡進行飛行
時,便能有效地躲避斜拉索障礙,保證了旋翼UAV在進行斜拉索索塔巡檢時的飛行安全。
為進行安全、高效的索塔巡檢,提出了一種斜拉橋索塔外觀巡檢的無人機避障航跡規劃算法。該方法以能量消耗最少為航跡優劣評價指標,同時重點考慮了索塔環境下的斜拉索避障問題,有效地解決了利用旋翼UAV進行索塔巡檢時的圖像采集航跡規劃問題。仿真實例表明,相比傳統的“Z”字巡檢航跡,當高度能量損失因子μ=3時本文算法將航跡的能量消耗降低了19.99%;且當遇見斜拉索障礙物時,能夠進行有效避障。總之,所提出的航跡規劃方法可以有效地確保旋翼UAV進行斜拉橋索塔巡檢時的飛行安全,并最大限度減少其能量消耗,在橋梁領域具有廣闊的應用前景。