加速度校準分析(Pixhawk加速度校準算法簡析)

1. 加速度計上電校準零偏是否可行?

答案是,以PX4飛控爲例,在NED系下,水平放置時,機體測量加速度的數據應該是[0 0 -g],所以,除非你確定你的飛控校準加速度零偏的時候是絕對的水平,否則只會加大誤差,更別談每次上電自動校準,減零偏了,試想一下,如果我就是要飛機在斜坡上起飛,那飛機飛起來回平就完全不對了,飛機認爲的水平已經不是你所見的水平。

2.加速度計校準有哪些方法?

主要有兩種,一種是依賴於高精度的外部設備,比如轉檯等,進行的精確標定;主要校準安裝誤差,比例係數和零位偏移。方法爲靜態六位置法標定法。六位置法一般需要藉助高精度轉檯進行試驗測試,將姿態解算測試系統水平固定在轉檯測試檯面上,安裝過程中保證系統座標系與轉檯測試面座標系重合,對加速度傳感器的各敏感軸進行豎直向上和向下測試,通過轉動轉檯的內框-中框-外框對加速度計三個軸共測試六次。利用最小二乘法計算對六位置數據行進最小誤差估計得到 12 個誤差係數。具體方法可以參考一些導航方面的書籍論文。

另外一種則是重力參考標定,飛控會自動運行代碼或離線數據採集進行參數計算。我們主要講工程上最實用的,明顯第二種比較簡單實用,一般來講,是不會用到轉檯這類設備進行精確標定的,原因就是設備太貴,買不起。所以一般採用重力參考標定方式。

3.加速度校準的原理?

靜態放置情況下,無論加速度計計的位置在哪,所測的的加速度模值始終應該是當地重力加速度。

4.校準的目的?

換個說法,就是如果不校準會怎樣?簡單來講,會影響你姿態解算的精度,比如互補濾波,解算的靜態精度與測量的重力加速度有直接關係,所以能提高姿態解算的精度。

5.可不可以不校準?

實際應用也可以不校準加速度計,畢竟,精度再差,也不差那麼一些,當然,如果對飛控的精度要求比較高,還是校準最好。

加速度計一般校準一次即可,不需要每次都上電校準,所以,也可以採集離線數據,校準之後,將參數寫入你的飛控代碼。

6.如何做?

主要介紹兩種方法,包括pixhawk飛控的算法解析。

6.1離線數據matlab計算

飛控靜止下,隨便轉幾個面,保持一段時間,記錄飛控的加速度數據。

建立模型:

帶入上式,進行最小二乘擬合,matlab中用lsqcurvefit函數,求出a1-a6參數。

實驗結果如圖所示:

圖中看出,校準後,加速度計數據的輸出更接近重力加速度g,與重力加速度的誤差更小。

得到參數如下:

1.0010    0.1178   1.0059   -0.2940    0.9926   0.1514

6.2 PX4固件加速度計校準算法

因爲不是外部設備(轉檯)進行標定,所以校準的原理與前面介紹的一樣,都採用重力加速度作爲參考。

建立模型:

accel_corr[3]是參考向量,也就是重力加速度向量

accel_T[3][3]是轉換矩陣,包含旋轉和尺度縮放

accel_raw[3]是實際測量的加速度向量

accel_offs[3]是加速度數據的零點偏移

飛控採用六面校準,即取6個面的數據,則可以得到參考向量。

分別對應頭朝上,朝下,朝左,朝右,反向,水平放置,則實測的數據accel_raw_ref[6][3]。

步驟:

一、先求出每個軸的偏移,方法是利用重力加速度在每個軸上的最大最小數據,求和後除以2得到。

二、下面求accel_T[3][3]矩陣的參數,包含9個未知參數,一個軸有3個數據,每個方向有3個軸數據,所以這時只需採樣3面數據即可。

展開:

即轉換成A * x = b形式。

x = A^-1 * b

接着就是求解線性方程組,求出x矩陣,即accel_T[3][3]

具體代碼見src\modules\commander\accelerometer_calibration.cpp文件。

7.幾個需要注意的點

Ø  前面有提到,在採集數據的時候,主要是要獲得靜態狀態下數據,所以最好不要加速晃動飛控採集,同樣的原理,比如開源pixhawk飛控校準的時候,在擺6個面的時候,儘量緩慢,且保持一段時間;

Ø  雖然求出了12個參數,但是pixhawk飛控輸出加速度數據的時候,也只用了6個數據,3個零偏,3個尺度變換因子,即accel_T矩陣的對角元素

Ø  前面所述的算法,只是核心的思想,PX4飛控實際的模型還包含了旋轉信息

這裏的rot矩陣,主要是根據你的飛控安裝方向,外置羅盤的安裝方向進行的數據座標系校正

Ø  加速度數據的標定並不能保證你的飛行是水平的,如果有幾度的安裝誤差,飛起來會怎樣?很顯然,飛機會以固定的角度,一直往一個地方飄。

如果有讀者對飛控研發的某些知識點,有不清楚的地方可以在評論下寫明,筆者會挑一些普遍的問題進行講解。後續文章主要方向還是算法方面,且偏向工程應用,具體的理論推導就不闡述了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章