Android IMU標定

因為實驗室的事情,需要做一下android手機IMU的標定,那就做一下吧,主要是計算加速度計(accelerometer)和陀螺儀(gyroscope)的bias和noise。
我查了一下,中文相關的文檔很少。英文的話還是比較多的。如果想詳細了解的話最好還是去看看英文相關資料,我只能告訴你怎么做。

大部分計算IMU噪聲都是通過Allan方差來計算的,什么是Allan方差,大家可以自己去看看維基百科上的定義。也可以看看這個,一個標定工具,里面有簡單的介紹。
首先計算bias,這個比較簡單,我是通過將傳感器靜置在水平桌面上100s,以50hz的頻率收集100s的傳感器數(shù)據,然后計算平均值來計算的,gyroscope的z軸方向需要減去當?shù)氐闹亓铀俣取?br> 因為懶,所以不想自己去算Allan方差,直接找個別人造的輪子吧,python或者matlab版本的都有。
我用的是matlab版本的。
首先你得收集數(shù)據,這個需要你掌握一些基礎的android編程知識,大家自己學去吧,然后收集好數(shù)據之后,就可以用allantool來進行計算啦。
我的數(shù)據格式如下:
acce_x, acce_y, acce_z, gyro_x, gyro_y, gyro_z
之后可以用csvread來讀取數(shù)據,然后直接
allan(data, tau, 'data', 2)
其中tau = 1,因為Allan方差tau為1s時對應的值為噪聲值。
就能夠得到計算結果了。
示例結果如下:

allan: input data statistics:
    numpoints: 1162
          max: 10.1897
          min: 9.6678
         mean: 9.9294
       median: 9.9311
       linear: [-1.3524e-04 9.9310]
          std: 0.0815
allan: 5x MAD value for outlier detection: 0.390455
allan: regular data (1162 data points @ 50 Hz)
allan: allowable tau range: 0.02 to 12 sec. (1/rate to total_time/2)
allan: calculating Allan deviation...
       1 
allan: Elapsed time for calculation: 5.460709e-03 seconds
allan: Minimum ADEV value: 0.0147884 at tau = 1 seconds
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 卡爾曼濾波在我當學生的時候就用過,但是當年我似乎就是套公式,沒有理解其精髓,加之時間久了有點模糊,突然需要指導學生...
    Roger_羅杰閱讀 85,363評論 41 159
  • 2017年無人駕駛還處于積極研發(fā)和普及期,民用的測試和技術探索也主要在小型汽車方面,各大巨頭都將2020年作為一個...
    方弟閱讀 7,601評論 1 16
  • 經過看各種博客和文章,讓我最清楚明白的,是xiahouzuoxin 的博客,之后又看了一些國外的文獻進行自己的理解...
    marine0131閱讀 7,792評論 4 11
  • 一、課程大綱1.1課程內容介紹1.1.1 Supervised Learning關于監(jiān)督型學習方法,本課程涉及到的...
    xiaorun閱讀 1,416評論 0 1
  • 2016年,我23歲了。 父親那個時候,顛顛簸簸的我都已經4歲,他早早擔起家庭的責任,而我怎么感覺還是一個沒長大的...
    簡愛3閱讀 398評論 0 0

友情鏈接更多精彩內容