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