地磁傳感器_磁感應計_電子羅盤(compass)原理

ref:

http://www.360doc.com/content/14/0724/23/9152906_396847920.shtml

https://wenku.baidu.com/view/8fcb6f94284ac850ad024244.html

 

原文鏈接:https://blog.csdn.net/weixin_43614541/article/details/104818380

1.利用旋轉矩陣推導傾斜補償公式

 電子羅盤的傾斜姿態可以通過三軸加速度傳感器檢測出,測出三個軸上重力加速度的分量,在通過計算可以得出Pitchg(俯仰角)和Roll(橫滾角)。
在這裏插入圖片描述
 設在羅盤的翻滾角爲γ

γ,俯仰角爲ϕϕ,航向角爲ψψ時,三軸地磁傳感器的測量輸出M(γ,ϕ,ψ)=[MxMyMz]TM(γ,ϕ,ψ)=[MxMyMz]T;

將式(4)帶入反正切函數即可得到補償後的航向角
在這裏插入圖片描述
附上手推公式過程
在這裏插入圖片描述
代碼實現


在這裏插入圖片描述

 

2.利用使用矢量計算方法補償傾斜

利用地理(重力和地磁)矢量的方向不變的和可以任意平移的特點計算航向角可以直接忽略傾斜影響。本節內容全是作者的理解,若有不正確的地方歡迎指正。這個算法是arduino的一個庫裏面的,此算法厲害的地方是它對傳感器的安裝方式不是嚴格的。

矢量計算航向算法描述:利用加速度傳感器讀數確定向下的重力向量和地磁傳感器確定的地磁向量的叉積可以得到指向東的向量。東向量和重力量的叉積是北向量(右手法則)。向東和向北的向量構成了水平面平面的基礎。機體(電子羅盤)向量被投影到水平平面(點乘),在利用反正切函數即可求出航向角。這段文字裏除了機體向量外,其他向量都是地理向量方向不變。

 

代碼實現
在這裏插入圖片描述
關於入參from,這個和傳感器安裝的位置有關,比如地磁傳感器的x軸與地磁場的x軸相反則入參爲{-1,0,1}。其他安裝方式以此類推。

原文鏈接:https://blog.csdn.net/weixin_43614541/article/details/104818380