我正在使用此設備(http://www.sparkfun.com/products/10724),併成功實現了基於磁力計,加速度計和陀螺儀數據融合的相當好的工作方向估計。這個http://www.x-io.co.uk/node/8#open_source_imu_and_ahrs_algorithms的實現。現在我想計算動態加速度(測量沒有靜態重力加速度的加速度)。爲此我提出了以下想法。從IMU的原始加速度計數據中去除重力 - >請批准數學和算法
計算原始加速度計數據的運行平均值。如果原始加速度穩定一段時間(運行平均值與當前測量的原始數據之間的差異很小),我們假設設備不移動,並且我們正在測量原始重力。現在將重力矢量和當前方向保存爲四元數。這種方法假設我們的設備無法在沒有重力的情況下不斷加速。
對於計算加速度沒有重力我現在正在做以下四元數的計算:
RA = Quaternion with current x,y,z raw acceleration values
GA = Quaternion with x,y,z raw acceleration values of estimated gravity
CO = Quaternion of current orientation
GO = saved gravity orientation
DQ = GO^-1 * CO // difference of orientation between last gravity estimation and current orientation
DQ = DQ^-1 // get the inverse of the difference
SQ = DQ * GA * DQ^1 // rotate gravity vector
DA = RA - SQ // get the dynamic acceleration by subtracting the rotated gravity from the raw acceleration
可能有人檢查,如果這是正確的?我不確定,因爲在測試時我在旋轉傳感器板時獲得了很高的加速度,但是如果設備在不旋轉的情況下移動,我可以獲得一些加速度數據(但比旋轉過程中的加速度小得多)。
另外我還有一個問題,如果加速度計也在測量加速度,如果它在地方旋轉或不!
恐怕我錯過了這裏重要的一點。如果你在傳感器融合之後得到了方位(並且你說你已經擁有了它),那麼你爲什麼不減去測量的加速度的重力?你做不到比這更好。我擔心我在這裏錯過了一些東西,請解釋一下。 – Ali
我只能從任意起點看到設備的相對方向,我不知道世界空間中的當前位置。這就是爲什麼我用上述算法估算重力。 –