2008-12-01 59 views
6

我使用GPS單元和移動計算機來跟蹤個人行人的旅行。我想實時「清除」傳入的GPS信號以提高其準確性。此外,事後並不一定實時,我想將個人的GPS定位鎖定到道路網上的位置。有任何技術,資源,算法或現有軟件可以在前面提出建議?GPS信號清潔和道路網絡匹配

我已經在信號清理方面考慮過幾件事情: - drop fixes for num。衛星= 0 - 降修復其速度是不自然地高(比如說600英里)

而在「鎖定」到街道網絡的條款(我聽到被稱爲「地圖匹配」): - 鎖根據均方根誤差 - 當修復遠離道路網絡時,突出顯示這些點並允許用戶使用GUI(例如,在Web瀏覽器中的OpenLayers)拖動,捕捉並拖放到路網

感謝您的意見!

回答

6

我假設你想要「清理」你的數據,以消除由狡猾的讀數造成的錯誤尖峯。這是一個基本的dsp過程。你可以採取幾種方法,這取決於你想要多聰明。

在基本的層面上,你可以尋找真正的大數字,但什麼是一個非常大的數字?是600英里每小時速度很快,但如果你在協調一致,則不會。雖然你正在尋找一個「不尋常」的價值,但你實際上是在編碼「普通」。更好的方法是檢查過去的數據以確定「普通」是什麼,然後查找偏差。您可能需要考慮通過小型本地窗口計算數據的方差,然後查看當前數據的z分數是否大於某個閾值,如果是,則排除它。

+1

好點,但是因爲他說的是行人使用,我認爲協和的速度有點過分了...... – CMPalmer 2008-12-01 15:55:44

4

除了Andrew的評論,您還可能想要考慮干擾因素,如多徑,以及它們在傳入的GPS數據流中的影響,例如, HDME在NMEA0183的GSA行中。在我自己的GPS控制器軟件中,我允許用戶指定的拒絕標準針對一系列QA相關參數。

我也傾向於在這方面的移動窗口原理上工作,您可以考慮在同一個窗口中基於周圍數據拒絕代表尖峯的數據。

6

注意:您應該使用3作爲最小衛星,而不是0. GPS至少需要三個來源來計算水平位置。我使用的每個GPS在數據流中都包含一個狀態標誌;在某些方面,少於3顆衛星被報告爲「不良」數據。

您還應該考慮「固定」數據。你將如何處理行人靜置一段時間?也許在人行橫道上等待或與街頭小販互動?

根據您打算如何處理數據,您可能需要抑制這些額外的數據點或將它們平均到一個點或位置。

6

你提到這是行人追蹤,但你也提到一個道路網絡。行人可以在很多汽車不能行駛的地方行駛,事實上,行人可能不會出現在任何有關「道路網絡」的地圖上。大多數路線圖都沒有像公園的行走路線,遠足路線等等。不要認爲「離開路網」意味着GPS沒有得到準確的修復。

4

閱讀posfix以查看信號是否有效(如果解析原始NMEA字符串,則在$ GPGGA語句中的某處)。如果它是0,則忽略該消息。

除此之外,如果您確實需要確保信號非常準確,但在正常情況下不需要,您可以查看HDOP和衛星數量的組合。

當然,它不會傷害做對GPS信號的一些合理性檢查:

  • 緯度之間-90..90;
  • 經度在-180..180之間(或E..W,N..S,0..90和0..180,如果您正在閱讀原始NMEA字符串);
  • 0到255之間的速度(對於普通汽車);
  • 與先前測量匹配的距離(基於緯度/經度)與指示速度大致匹配;
  • 系統時間不大於x的時間差(除非系統時鐘不可信或依賴GPS同步:-));

要做地圖匹配,你基本上遍歷你的路段,並檢查哪個段最有可能爲你的當前位置,方向,速度和可能以前的GPS測量和匹配。 如果你沒有做一個實時應用程序,或者如果延遲反饋是可以接受的,你甚至可以看看'未來',看看最可能的部分。

正確地做這件事本身就是一門藝術,這裏的空間太短,無法深入研究。 通常很難以100%的信心決定某人所在的路段。例如,如果有2條與當前位置距離相近的平行道路,則這是一個創造性啓發式問題。