Pixhawk代码分析-基础知识
基本知識介紹
- 慣性測量單元IMU(InertialMeasurementUnit)
- 姿態航向參考系統AHRS(Attitudeand Heading Reference System)
- 地磁角速度重力MARG(Magnetic,Angular Rate, and Gravity)
- 微機電系統MEMS(MicroElectrical Mechanical Systems)
- 自由度維數DOF(Dimension OfFreedom)
- 無人駕駛飛行器UAV(UnmannedAerial Vehicle)
- 擴展卡爾曼濾波EKF(ExtendedKalman Filter)
- 無損卡爾曼濾波UKF(UnscentedKalman Filter)
- 慣性導航系統INS(InertialNavigation System)
- 全球導航衛星系統GNSS(GlobalNavigation Satellite System)
- 天文導航系統CNS(CelestialNavigation System)
- 可垂直起降VTOL(VerticalTake-off and Landing)
有兩個基本坐標系:“地理”坐標系(Earth Frame)和“載體”坐標系(Body Frame)。
”地理”坐標系指的就是地球上的“東北天(ENU)”坐標系,而“載體”坐標系值的就是四軸自己的坐標系。當我們在實際控制當中,我們關心的顯然是載體坐標系相對于地理坐標系之間的變化,所以我們通常使用的旋轉矩陣是把“地理”坐標系轉到“載體”坐標系的矩陣,兩者之間的轉換關系自行百度吧,講的很詳細。
轉化的方法就是坐標系的轉換,目前有三種方式:四元數(q0123)、歐拉角(yaw(Z軸)、pitch(Y軸)、roll(X軸)屬于其中一種旋轉順序Z-Y-Xà航空次序歐拉角)、方向余弦矩陣(9個系數)。
其中使用四元數運算比較快,但是它沒有實際的物理含義,純數學推到。
姿態的數據來源有5個:重力、地磁、陀螺儀、加速度計、電子羅盤。
其中前兩個來自“地理”坐標系,后三個來自“載體”坐標系。在“地理”坐標系中,重力的值始終是(0,0,1g),地磁的值始終是(0,1,x)。這些值就是由放置在四軸上的傳感器測量出來的。
在單位時間內的位移被定義為速度,速度有線速度和角速度之分,分別對應兩種傳感器測量這兩種不同的速度:線速度傳感器(加速度計)、角速度傳感器(陀螺儀)。
導航的基本原則就是保證兩個基本坐標系的正確轉化,沒有誤差。只有實現了這個原則,載體才可以在自己的坐標系中完成一系列動作而被轉換到地理坐標系中看起來是正確的。為了達到這個目標,需要對兩個坐標系進行實時的標定和修正。因為坐標系有三個軸,偏航yaw修正由電子羅盤(基于載體)、地磁(基于地理)對比修正誤差補償得到。俯仰pitch和橫滾roll上的修正由加速度計(基于載體)、重力(基于地理)對比修正誤差得到。
在完成了基本原則的基礎之后,即保證兩個坐標系的正確轉化后,利用基于載體上的陀螺儀進行積分運算,得到基于載體坐標系的姿態數據,經過一系列PID控制,給出控制量,完成基于載體坐標系上的穩定控制后,反應到地理坐標系上的穩定控制,從而達到我們觀察到的定高、偏航、翻滾、傾仰等動作。下一篇博客會給出具體的PID回路控制框圖,這篇博客就不添加了。
加速度計在地球上測量的是重力加速度,如果載體沿著z軸旋轉,加速度計是無法感知他的運動的;類似的,電子羅盤測量的是地球上的磁場方向,如果載體沿著y軸旋轉,電子羅盤同樣也是無法感知他的運動的。
綜上所述,加速度計和電子羅盤只能得到2維的角度關系,通過某種方式的融合,可以得到正確的三維姿態信息。
對于上述論述可以看出,導航姿態從理論上講只用陀螺儀是可以完成任務的。但是由于陀螺儀在積分過程中會產生誤差累計,加上白噪聲、溫度偏差等會造成導航姿態的解算隨著時間的流逝而逐漸增加。所以就需要用加速度計在水平面對重力進行比對和補償,用來修正陀螺儀的誤差。
但是對于豎直軸上的旋轉,加速度計是無能為力的,此時用的是電子羅盤。也可以測量出水平面內的地磁方向用來修正陀螺儀的水平誤差。通過這兩個器件的修正補償,使得陀螺儀更加穩定、可靠的工作。
AHRS由加速度計、磁場計、陀螺儀構成,AHRS的真正參考來自于地球的重力場和地球的磁場,它的靜態精度取決于對磁場的測量精度和對重力的測量精度,而陀螺儀決定了他的動態性能。
在這種前提下,說明AHRS離開了地球這種有重力和磁場環境的時候是沒法正常工作的。而且特別注意,磁場和重力場越正交,航姿測量效果越好;也就是說如果磁場和重力場平行了,比如在地磁南北極。這里的磁場是向下的,即和重量場方向相同了。這個時候航線交是沒法測出的,這是航姿系統的缺陷所在;在高緯度的地方航線角誤差會越來越大。
IMU(Inertial measurement unit)學名慣性測量單元,大學的理論力學告訴我們,所有的運動都可以分解為一個直線運動和一個旋轉運動,故這個慣性測量單元就是測量這兩種運動,直線運動通過加速度計可以測量,旋轉運動則通過陀螺。假設IMU的陀螺和加速度計的測量是沒有任何誤差的,那么通過陀螺則可以精確的測量物體的姿態。
通過加速度計可以二次積分得出位移,實現完整的6DOF,也就是說你帶著一臺這種理論型的IMU在宇宙任何位置運動。我們都可以知道它當前的姿態和相對位移,這將不局限于任何場。
從上面的描述何以看出。實際上AHRS比IMU還多一個磁場傳感器,而為什么AHRS的級別卻低于IMU而需要依賴于重力場和磁場呢?這是由傳感器器件架構所決定的。AHRS的傳感器通常是成本低廉的mems傳感器。這種傳感器的陀螺儀和加速度計的噪聲相對來說很大。
以平面陀螺為例:用ADI的陀螺儀進行積分一分鐘會漂移2度左右,這種前提下如果沒有磁場和重力場來修正三軸陀螺的話。那么基本上3分鐘以后物體的實際姿態和測量輸出姿態就完全變樣了,所以在這種低價陀螺儀和加速度計的架構下必須運用場向量來進行修正,而IMU實際上也是這樣的。
因為我們知道沒有絕對精確的傳感器,只有相對精確的傳感器,IMU的陀螺儀用的是光纖陀螺或者機械陀螺,這種陀螺的成本很高。精度相對mems陀螺也很高,精度高不代表準確,IMU的姿態精度參數通常是一小時飄多少度。
而用加速度計積分做位置的話。AHRS是不現實的(1分鐘就能飄出幾十米,而且是成二次方的速度遞增)。AHRS通常要結合GPS和氣壓計做位置,IMU積分做位置的是一天多少海里。這樣的一個參數數量級。也許在海上還能用的到,這就是AHRS和IMU在我的理解里的一個差異。
總結
以上是生活随笔為你收集整理的Pixhawk代码分析-基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pixhawk代码分析-准备
- 下一篇: Pixhawk代码分析-源码框架