簡體   English   中英

如何提高加速度計和羅盤傳感器的精度?

[英]How to improve accuracy of accelerometer and compass sensors?

我正在創建一個增強現實應用程序,只需在手機面向興趣點時(手機上存儲gps位置)就可以顯示文本視圖。 textview繪制在屏幕中的興趣點位置。

它工作正常,問題是指南針和加速度計非常“變化”,並且textview不斷地左右上下移動,因為傳感器的真空度。

有辦法解決嗎?

我們的問題是一樣的。 當我創建簡單的增強現實項目時,我也遇到了同樣的問題。 解決方案是使用指數平滑或移動平均函數。 我建議使用指數平滑,因為它只需要存儲一個先前的值。 示例實現如下:

private float[] exponentialSmoothing( float[] input, float[] output, float alpha ) {
        if ( output == null ) 
            return input;
        for ( int i=0; i<input.length; i++ ) {
             output[i] = output[i] + alpha * (input[i] - output[i]);
        }
        return output;
}

Alpha是平滑因子(0 <= alpha <= 1)。 如果設置alpha = 1,則輸出將與輸入相同(根本不平滑)。 如果設置alpha = 0,輸出將永遠不會改變。 要消除噪音,您可以簡單地平滑加速度計和磁力計值。

在我的例子中,我使用加速度計alpha值= 0.2和磁力計alpha值= 0.5。 物體將更穩定,運動非常好。

如果您想更進一步,您應該查看低通濾波器以獲得方向數據或傳感器融合。

祝你好運。

JQCorreia

我用一個簡單的技巧解決了它。 這會使您的結果稍微延遲,但它們可以避免羅盤和加速度計的不准確性。

創建最后N值的歷史記錄(因此將值保存到數組,增量索引,當您再次達到N start時為0)。 然后,您只需使用存儲值的算術平均值。

陀螺儀傳感器讀數的集成可以極大地改善最終估計方向的穩定性。 如果您的設備有陀螺儀,請查看穩定的指南針應用程序,或者如果您沒有陀螺儀,請查看視頻。

陀螺儀的集成可以使用互補濾波器以相當簡單的方式完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM