2013-03-07 106 views
2

我正在探索使用GPS進行VR遊戲的可能性。在我目前的測試版本中,頻率和精度都非常低。提高GPS頻率和精度

在清單我

<uses-permission android:name="android.permission.LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

我實例位置經理像

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 
      0, 0, this); 

我然後使用distanceBetween函數來獲取軸承和距離

public void onLocationChanged(Location location) { 
    if(lastLocation != null) {   
     Location.distanceBetween(lastLocation.getLatitude(), lastLocation.getLongitude(), location.getLatitude(), location.getLongitude(), distanceBetween); 
     newGpsDataToSend = true; 

     if(debug) 
      debugListener.debugGPS(distanceBetween); 

     releaseSendThread(); 
    } 

    lastLocation = location;   
} 

頻率爲低於1hz(5-10hz應該可以吧?),而且方位和距離都很跳躍年。

我在做代碼錯了嗎?我不在乎電池消耗等,我只是想從手機中獲得最快速,最可靠的數據。

完整源 https://github.com/AndersMalmgren/FreePIE/blob/VRWalk/Lib/Android/FreePIE%20Android%20IMU/src/com/freepie/android/imu/UdpSenderTask.java#L120

回答

0

對於HIGHT採樣頻率(計數1赫茲的高爲GPS採樣),你會得到GPS讀數,其中的位置之間的距離小於所述GPS accurracy。因此,如所觀察到的那樣,軸承和距離是跳動的。 爲了獲得更好的方位,請降低採樣頻率或通過過濾或計算平均值來處理數據。

例如,對於飛行記錄應用程序,我每隔2到5秒採樣一次,並計算最後5個高度讀數的平均值以計算垂直速度。

+0

所以你說它不可能獲得更好的性能? Bummer,猜猜我必須嘗試卡爾曼濾波器和加速度計融合:/ – Anders 2013-03-08 15:31:13

+1

它的手機,而不是導彈航空電子設備:-) – Stefan 2013-03-09 08:23:34