夏紅兵
(江蘇航運職業技術學院, 江蘇 南通 226010)
協同導航定位系統的出現,標志著人類太空文明的開始。在國外,關于較為先進的定位系統有俄羅斯的GLONASSG 系統,歐盟的GALILEO,以及美國的GPS 系統[1–3]。而我國北斗導航系統(以下簡稱"北斗系統")是一種專注于國際安全和社會經濟發展,自主創建,20 世紀末獨立運作的協同導航定位系統。據此,本文以北斗系統為例,以SLAM算法作為輔助手段,通過對無人艇展開相關設計,并將該協同導航定位系統應用其中,旨在分析其導航數據的誤差,為后續研究奠定一個較為詳備的理論基礎。
目前關于無人艇技術的發展日新月異,各科研團隊也已經顯示出很強的研究能力。無人艇技術的發展,極大地降低了出海作業中工作人員的安全問題,這種依據人類實際需求而進行的相關設計與調整,不僅可以協助人類避免危險環境,節約駕駛成本,還可以借助無人艇在高壓強海底進行相關作業。
然而,若是想要實現無人艇在如此復雜外部環境中的自主運行,就必須能夠在這些復雜場景中安全的進行地圖繪制和導航。大多數研究學者都認為解決SLAM 問題是實現完全自主無人艇控制的關鍵先決條件,這個問題一直是過去十多年學界研究的重點,SLAM 問題也引起了人們對無人艇研究的重視。
現如今,隨著時代的發展以及相關技術的不斷進步,關于SLAM 算法也得到了較為矚目的提升,并可以很好地解決了無人艇先前移入環境時位姿預估不可實現等問題。比如有設計人員可以基于無人艇的外形特征、工作環境,以及水域實際運動情況,對無人艇進行針對性的研發,在確保無人艇觀察到的信息不被破壞的同時,還可以借助SLAM 為無人艇重建全局環境地圖,由此引導無人艇得以在安全行駛路徑中開展工作[4–6]。
基于以上研究經驗,經整理后認為,要想實現SLAM 算法的過程,可以按照如圖1 所示的SLAM思路,將其分為預測和更新2 個階段。

圖1 SLAM 算法實現過程Fig. 1 Implementation process of SLAM algorithm
本文開發了一個基于SLAM 程序的完整的無人艇軟件系統,以解決無人艇協同導航定位方案和映射任務。
無人艇執行各SLAM 任務的聯系如圖2 所示,當無人艇進行協同導航定位和映射任務時,遠程無人艇可以在未知環境中使用用戶終端PC 和鍵盤進行控制,并顯示了各個關鍵節點與實現無人艇SLAM 的主題之間的關系。

圖2 無人艇執行各SLAM 任務的聯系Fig. 2 Connection of Unmanned Craft to Perform Various SLAM Tasks
在創建無人艇SLAM 系統時,本文創建了用于無人艇與客戶端末端計算機之間的通信ROS 網絡。同時在無人艇操作端,也通過PC 方式為技術人員提供了節點“/ keyop”,“/ slam_gmapping”和“/ rviz”,方便其工作同時優化硬件配置的影響。此外,每個坐標系之間的坐標變換比率在主題“/ tf”中公布?!?Slam_gmapping”節點訂閱“/tf”和“/scan”主題,并基于時變調節因子EKF-SLAM 算法,以通過放置無人艇來創建漸變遞增的柵格地圖。
為無人艇創建SLAM 算法問題模型,考慮到由于每個模型的準確性,都將直接影響到SLAM 系統的誤差評估,從而影響后續的協同導航定位系統性能。因此借助SLAM 算法開始部署無人艇時,首先創建3 個坐標系,其中無人艇的局部坐標系為X-O-Y,所有坐標系都源于無人艇的原始位置,局部坐標系的坐標位于機體的幾何中心。
為了確定無人艇在環境中的位置變化,本文假設其在各種水域中,都可以借助坐標系確定其自身的位置。
如圖3 所示,本文在整體的規劃思路上,是希望無人艇可以在各種水域中得以移動,本文將其移動的方向固定為無人艇坐標系X軸方向,然后再將航行角度與X軸的夾角進行計算,得到其在全局坐標系中的位置(x(t),y(t),θ(t))。由于無人艇在各種水域中只存在平動和轉動,因此得出以下公式,來表示無人艇在全局坐標系中的位姿。

圖3 無人艇數學模型示意圖Fig. 3 Schematic diagram of the mathematical model of an unmanned boat
按照以上思路設計出來的無人艇,再對其運動模型進行構建,可以讓該無人艇能于短時間內進行受控圓周運動,以便改變其運動軌跡。不過也有考慮到系統誤差,因此在進行運動模型的設計中,依據無人艇的理論運動與無人艇輸入控制量,得到運動誤差,因此有必要通過合理的計算減小其誤差。最終,使用差動驅動對無人艇進行轉換編碼,得出其增量式編碼器△t內的平均速度:
用l與r分別表示左輪和右輪的速度,則:
無人艇的合速度可以表示為:
假設在t-1 時刻,無人艇的位姿為(xt?1,yt?1,θt?1)T,在 ?t時間內,以恒定線速度v和角速度ω作為輸入,在t時刻時,無人艇的位姿為(xt,xt,θt)T。
按以上思路,可以求出無人艇的線速度v 和角速度 ω,無人艇進行半徑為R的圓弧運動,半徑R的計算如下所示:
可知,無人艇的運動模型方程如下:
設時刻t 無人艇的位置向量為:
協同導航定位系統位置的向量為:
則無人艇的歸一化位置坐標向量為:
此時無人艇的位置方位仰角為:
其中:
根據以上理論推導,經過仿真計算得:當天可以同時觀察到9 顆可見協同導航定位系統,對上述的協同導航系統進行3 次測試模擬,得到3 種測試巡航模式下的航跡分布圖如圖4 所示,可以發現無人艇可以很好的對軌跡進行導航和跟蹤。

圖4 3 種測試模式下的航跡分布圖Fig. 4 Track distribution diagrams in three test modes
根據協同導航定位系統電文提供的軌道參數,按一定的公式可計算出觀測瞬間無人艇在坐標系中的位置。具體計算步驟如下:
首先,根據開普勒第三定律,對計算協同導航定位系統運行的平均角速度n進行計算:
其中的實際平均角速度為:
然后,考慮協同導航定位系統的軌道參數是相對于參考時間的,計算觀測時刻的平近點角Mk:
計算偏近點角Ek:
計算真近點角Vk,由于:
因此:
應用SPSS 18.0統計軟件對數據進行統計學分析。計量數據采用±s表示,計數資料采用頻數百分比表示,兩組數據比較采用獨立樣本t檢驗以及卡方檢驗,多組比較采用方差分析以及LSD兩兩比較,重復測量數據采用重復測量的方差分析。P<0.05為差異有統計學意義。
計算升交點角距?k:
式中:w為導航電文中給出的近地點角距,據此計算攝動改正項:
最后,計算協同導航定位系統在軌道平面坐標系的坐標:
解算方程寫為矩陣形式為:
根據觀測協同導航定位系統個數,定位解算方程可以分為以下3 種情況:
1)當觀測量n<4 時,無解;
2)當n=4 時,AX-L=0,故有唯一解,X=A-1L。
3)當n>4 時,方程個數大于未知數個數。此時,可用最小二乘法獲得無人艇位置和時間。
本次同時觀察到9 顆可見協同導航定位系統,因此可以采用最小二乘法對無人艇位置進行定位計算。依照上述的協同導航定位系統坐標,編寫程序,設置初始值。高度角:α=10°,采樣率:s=10 min。共仿真12 個小時,仿真結果如表1 所示。

表1 協同導航定位仿真結果Tab. 1 Simulation results of collaborative navigation and positioning
通過以上分析,初步計算出了“協同導航定位參考點”的位置坐標。為了分析數據誤差,再次利用接收機于同一地點得到一組真實的位置坐標數據。通過比較,兩者誤差如表2 所示。

表2 誤差結果對比Tab. 2 Comparison of error results
說明該仿真程序能夠較為精確的實現對無人艇協同導航定位參考點的定位,達到了設計目的。
采用協同導航定位系統的無人艇具有良好的系統性能,能夠滿足高精度高速度的作戰要求,而國外在協同導航定位系統技術上,也都取得了較為廣泛的應用,并逐步得到了廣泛傳播。