天天看點

RTKLIB中moving-base模式和基線限制(測試與思考)

文章目錄

    • 一、前言
    • 二、moving-base在處理上的差別
    • 三、測試資料及結果
      • 1. 測試資料
      • 2. 參數配置
    • 四、一些思考與總結

一、前言

前幾天在寫部落格關于基線長度對雙天線GNSS測姿精度的影響時,自己設想了下如何解算雙天線航向。這兩天注意到RTKLIB有moving-base定位模式,針對的便是動基站的情況,并且在配置中有基線限制的相關設定,于是便想用資料簡單測試看看。

這篇部落客要是對moving-base定位的簡單測試,以及由此引發的一些思考。

一般我自己動手之前,都會搜搜看有沒有其他部落客已經有一些測試分享,感興趣的也可以看看:

(1) 奔跑的橘子:

rtklib中的基線限制應對觀測條件糟糕的GNSS資料

(2) rktlibexplorer:

Moving-base solutions (part 2)

Exploring moving-base solutions

二、moving-base在處理上的差別

根據rktlibexplorer部落客的總結,moving-base模式相比于kinematic模式有以下主要差別(具體可以看手冊和代碼):

  1. 每個曆元基站的位置為其單點定位的位置
  2. 對基站、移動站量測量的時間同步會有更嚴格的要求,最大的時間差小于1.01s,max age的配置不起作用
  3. 配置中可以增加基線限制,可以設定基線長度以及其标準差
  4. 配置中可以增加卡爾曼濾波器的疊代次數

三、測試資料及結果

1. 測試資料

我使用的是rktlibexplorer在上述兩篇部落格中的資料,作者在文中也給出了資料下載下傳連結,感興趣的可以自己下載下傳測試。

  • 這組資料包含兩個接收機的資料(ublox MT8),資料為單頻,隻有GPS、GLONASS和SBAS,需要自己将ubx資料轉換為RINEX。
  • 資料是在皮劃艇上采集的,初始和結束的時候皮劃艇貌似有點翻了,是以資料不太好。

2. 參數配置

因為配置的結果輸出選擇的enu-baseline,是以對于基線固定的雙天線,結果會是一個圓圈。根據這個圓圈,其實可以直接算航向。

我使用的軟體版本是rktlibexplorer最新的RTKLIB demo5 b34g。在他更新的版本中,如果将定位模式設定為moving-base,那麼“Rec dynamic”是灰的,不能更改(具體原因在後面解釋)。

我在作者原本配置檔案的基礎上,将定位模式改為了moving-base,分别看了下“加基線限制”和“不加基線限制”的情況,結果如下圖。固定率上其實差别不大,隻是加了限制之後,開始的時候那段不太好的資料,由于基線限制,是以也在圓上了。

下圖中可以看到,圓上其實有很多跳點,我暫時沒有深入debug。

RTKLIB中moving-base模式和基線限制(測試與思考)

此外,我也試了下将定位模式設定為“Kinematic”,定位結果如下圖。事實上,定位結果比用moving-base看起來更好,而且rktlibexplorer也更加推薦即使在動基站的情況,也使用Kinematic模式來做定位。

RTKLIB中moving-base模式和基線限制(測試與思考)

四、一些思考與總結

經過上述測試,個人的一些思考和總結如下:

(1)為什麼"moving-base“模式要把“Rec dynamic”設為“OFF”?

最開始rktlibexplorer用moving-base結果并不好(幾乎沒有固定解),後來他發現在moving-base模式下,需要把“Rec dynamic”設為“OFF”。究其原因,“Rec dynamic”的本質是在卡爾曼濾波中增加了速度、加速度狀态量。由于在moving-base模式下,每個曆元基站都用的單點定位的位置,會造成加速度變化比較大,但是卡爾曼濾波中其實加速度的一步預測還是它原來的值,是以在卡爾曼濾波器中把加速度的變化給濾掉了,造成結果較差。

(2)為什麼即使是動基站,也可以使用kinematic模式來定位?

因為差分的本質是求基線向量,而不是移動站的絕對位置。載波相位雙差方程裡面,未知數其實隻有基線和模糊度。雖然基站在動,但是隻要移動距離不要太遠(幾公裡以内),對雙差方程裡line of sight的計算影響其實很小。是以基站位置設定的隻要不是差特别遠,對基線的求解其實影響不大。

(3)為什麼測試中“kinematic”模式會比“moving-base”結果好?

因為我沒有深入調試和測試,是以隻能從感覺出發來分析,說得不一定是對的。在moving-base中将“Rec dynamic”設為“OFF”,每次卡爾曼濾波的一步預測,會将移動站的位置設定為單點定位的位置,其實這樣一步預測的誤差是很大的,對濾波結果以及後續的模糊度固定其實會帶來一定的影響。在kinematic中,設定為“ON”,會用速度狀态量來對位置進行一步預測,相比來說其實是更加準确的。

(4)有什麼辦法能提高moving-base的性能呢?

有一些想法,但是目前沒有實踐過。比如卡爾曼濾波器裡移動站位置狀态量改為基線,移動站速度狀态量改為基線速度。比如不用卡爾曼濾波。