浅谈加速度计旋转补偿
前言:其實這個旋轉補償的叫法是我個人對這個現象以及解決方案的稱呼,發現網上很少關于這個問題的討論和探討,很多工程的代碼里面也沒有涉及到這方面的考慮,似乎直接忽略了這方面的對整個系統的影響。可能是一般都會把加速度計安裝在接近系統的中心位置所以在系統旋轉的時候對系統不會產生很大的影響,但是如果加速度計沒有安裝在系統旋轉軸上,當系統繞軸旋轉的時候處于不在旋轉軸上的加速度計就會產生向心加速度,加速計就會疊加這個部分的加速度,但是我們一般又只希望加速度計反映系統在世界坐標下的加速度,當系統繞軸旋轉意味著系統在世界坐標系下應該是沒有三軸加速度輸出的,但是現在加速度計有輸出了,所以我們要對加速度數據做一個補償。現在寫下一些關于我自己個人的看法,并做一些推到以及代碼實現。
正文:
推導部分:先從一個簡單的旋轉開始,假設加速度計安裝在和旋轉坐標系的同一個平面上,如下圖二維情況所示:
我們先聲明系統的一些變量,現假設系統的坐標系為b系,加速度計的坐標系為a系,然后a系固連在b系上,a系和b系的正方向都相同,Oa在b系下的坐標為,然后b系繞原點所在軸以w的角速度旋轉。兩軸加速度計的輸出為Acc_x,Acc_y。
這是二維的推到,當上升到三維的時候,也就是我們的三軸加速度計,我們在一個空間直角坐標下來考慮,這時候就每一個軸的輸出會受到兩個軸旋轉的影響,比如說加速度計Z軸的輸出會受到Pitch和Roll的影響,這時候再疊加一個補償即可。
下面給出代碼實現:
先定義一些結構體變量,包括三軸的中心偏移量、陀螺儀弧度制(因為我們計算加速度的時候的用弧度制計算的)、映射到三軸加速度計上的加速度
設置中心偏移量函數、三個平面上加速度向量和、三個平面上幾何向量和
然后是補償部分:
這樣就完成了對加速度計的旋轉補償。
注意:這個計算過程是在加速度計坐標系和機體坐標系正方向都相同的情況下的,如果坐標系有不同則要在計算映射到每個軸上的加速度的過程中正負號要進行調整。
總結
以上是生活随笔為你收集整理的浅谈加速度计旋转补偿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux查询服务器cpu核数_查看li
- 下一篇: 网游服务器优化