【问题标题】:Improve GPS frequency and accuracy提高 GPS 频率和精度
【发布时间】:2013-03-07 21:24:39
【问题描述】:

我正在探索将 GPS 用于 VR 游戏的可能性。在我当前的测试版本中,频率和准确度都非常低。

在清单中我有

<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

【问题讨论】:

    标签: android gps


    【解决方案1】:

    对于高采样频率(将 1 Hz 计为 GPS 采样的高频率),您将获得 GPS 读数,其中位置之间的距离小于 GPS 精度。因此,正如观察到的那样,方位角和距离是跳跃的。 为了获得更好的方位,降低采样频率或通过过滤或计算平均值来处理数据。

    例如,对于飞行记录应用程序,我大约每 2 到 5 秒采样一次,并且我正在计算最后 5 个高度读数的平均值来计算垂直速度。

    【讨论】:

    • 所以你说它不可能获得更好的性能?太糟糕了,我猜我得试试卡尔曼滤波器和加速度计融合了:/
    • 它是电话,不是导弹航空电子设备 :-)
    猜你喜欢
    • 2013-07-22
    • 2012-10-20
    • 2020-11-15
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2016-02-18
    相关资源
    最近更新 更多