|
本文章最後由 xiaolaba 於 2014-11-29 12:59 PM 編輯
最近參加作研討, 題目是有關純粹 GPS 方案定位的可靠性和解析度的. 有哪個大大用 ANDROID 手機, 又有內建的 GPS 的, 可以考慮幫忙測試看看. 因為手機平板的品牌眾多, 無法單獨得到很多實驗數據.
玩樂一下
Android 定位API做的
禪 是很重要的
免費 沒放在app store
只能下載到本機安裝 ZenGPS.apk,
ZenGPS.rar
(43.86 KB, 下載次數: 22)
啟動後一直在後臺運作, 暫時用一下, 應該還有很多BUG, 日後再改.
要在 應用程式 內關閉
那個一長串數字的經緯度, 看起來很嚇人, 其實是一連串小數乘法呀, 除法呀, 就得到一個顯示超多位數的值
至於這個看起來很長的小數, 是不是代表很準確呢 ? 當然不是, 乍看就以為利害, 其實說穿了, 就是半吊子 PROGRAMMER 的作品
看看地球的 WIKI, 地球的半徑, 平均半徑 6,372.797 km, 那地表上經緯度, 每一度角是距離多遠呢 ? 有很多教科書有寫, 不過也是一長串臭又難懂的公式
那怎樣算會比較好 ? 先來觀察一下, 用人家做的計算工具 (雖然沒有驗證過), 看看經緯度和距離的關係, 0.00001度變化, 大約等於1米的距離,
假使 Zenphone 的 GPS 輸出的資料, 一秒鐘內, 經度變化超過 0.0001度, 可以假定是在腳踏車或更高速地在移動.
那如果沒有動, 理論上是 0, 可是實際上, 他還是會變化的, 而且變化會超過 10 米. 軍用的才可能準確定位1米範圍內, 民用的話, 就算 GPS IC 有這能耐, 出口到米國以外, 也必須被閹割, 讓她用起來飄, 或是不夠準, 才能夠賣. 當然, 這是陰謀論, 如果可以的話, 不要買 TI 或者 BROADCOM 的 GPS IC, 換 MTK 的看看, 會不會一樣呢 ?! 實際上, 就算 IC 良好, 有些環境因素也會讓 GPS 的輸出變化.
插花了...........回來正軌, 再看看, 怎樣可以把 "靜止的位置" 顯示出來, 但是又儘量排除 GPS 飄的問題呢 ? 其實有個方法, 小學生都會的, 或者炒股票的都會, 那叫平均法. 假設經度不變, 如果每秒都得到 GPS 提供的緯度值, 每次新來的都給他加起來, 加到第8個或第10個時候, 就把總數除以8或10, 得到的就是平均值. 這時候, 把總數減去最前面的那個, 等待最新的一個, 加總後又再平均一下, 那得到結果自然很接近前一個平均值. 這樣做就可以有效的用這個移動平均法減低 GPS 飄的問題, 所有數據採計都是可以用這個雜訊濾波方法的, 但是反應速度變慢, 很多導航軟體設計用這個, 表現就是急轉彎他會反應慢半拍, 有更好的方法不過是別個題目, 暫且不表. 那問題來了, 移動時再加上這 GPS本身飄的時候, 怎樣判斷呢 !?
其實, 只要集中注意力 (設緯度不變) 看經度小數後第3到第5位就可以了, 因為, 這馬 GPS, 不可能給你1米精度的, 同時, 人類在地表的移動速度現時也不會快到200米每秒, 換算起來, 就是 0.00001到 0.001度每秒 的範圍內變化, 把她乘以 100000, 就是整數範圍 1 到 100, 這樣就很好算了, 整數, 也是代表每單位就是1米左右. 當然, 移動速度越高, 誤差就會越大, 這要用另外的方法來矯正, 作一個表格, 把 1 - 200 的對應度數變化都列出來就很容易了, 查表就知道移動多遠了.
猜想了這麼多, 實際試試看能不能實作出來...待續, ZenGPS, 重點就是這個 禪
|
|