姿態解算進階之加速度姿態解算

2021-01-14 雨飛工作室

在姿態解算入門系列裡 Sugar 以初中數學為基礎展開了用加速度計的姿態解算方法。上一篇《姿態解算進階之理解旋轉矩陣(也稱方向餘弦矩陣)》進行了一次理論進階。本篇 Sugar 用進階的理論重寫一下用加速度計做姿態解算的方法,然後與入門級算法對比一下結果有哪些改進。

姿態角定義的悄然改變

在《MPU6050 姿態解算系列一:加速度姿態解算》一文中 Sugar 有說明:
1、橫滾角 roll 指:重力加速度與「X-Z 平面」的夾角;
2、俯仰角 pitch 指:重力加速度與「Y-Z 平面」的夾角。
通過我們本文的算法升級,這樣的定義也會有所改變,具體怎麼個變法讀者掌握本文算法後自然會知道。這裡 Sugar 放前面先說,目的是起到一個思維導向作用,防止思維陷在之前的定義裡出不來從而影響對本文算法的理解。
本文姿態角的定義將採用飛控上常用的定義方法:繞 X 軸轉是橫滾角 Roll繞 Y 軸轉是俯仰角 Pitch繞 Z 軸轉是偏航角 Yaw

加速度計姿態解算進階

在《姿態解算進階之理解旋轉矩陣(也稱方向餘弦矩陣)》中 Sugar 介紹了旋轉矩陣。既然用旋轉矩陣能對三維空間內的向量進行任意旋轉,那麼我們不難知道:加速度計在各個軸上的分量就是通過在「豎直的加速度向量」上施加旋轉而得到的。

在姿態解算上我們關心的是向量角度而非向量模長,為了能夠順利的使用反三角函數做姿態解算,我們必須首先對加速度計數據進行單位化,保證反三角函數有實數解。假設上圖的紅色箭頭(直線的那個)是通過對單位向量[0;0;1]施加三維旋轉得到的。為了便於表示,我們做如下約定:

% cr:cos(roll)  sr:sin(roll)% cp:cos(pitch) sp:sin(pitch)% cy:cos(yaw)   sy:sin(yaw)
from_euler_xyz = [ cp*cy, cy*sp*sr - cr*sy, sr*sy + cr*cy*sp][ cp*sy, cr*cy + sp*sr*sy, cr*sp*sy - cy*sr][ -sp, cp*sr, cp*cr]

在這樣的約定下,我們有:

[加速度計單位化後的讀數] = from_euler_xyz * [0;0;1];

記加速度計單位化後的讀數為[Ax;Ay;Az],將上面方程的右側展開,可得:

 Ax = sr*sy + cr*cy*sp Ay = cr*sp*sy - cy*sr Az =            cp*cr

這個解告訴我們一個現象:在這個旋轉矩陣的作用下,單位向量在 Z 軸上的投影只與橫滾角 roll和俯仰角 pitch有關。深刻理解這個現象是本篇算法的一個很重要的關鍵點。下面 Sugar 以roll 30 度、pitch 30 度為例,用幾張動圖形象地表述一下這個現象:

對於這個 3D 旋轉我們看一下X-Y 方向的投影,如下:

我們看到一個形狀不變的三角形在轉動,說明:旋轉過程過中所有姿態的 roll 和 pitch 都是相同的。我們再來看一下X-Z 方向的投影,如下:

上圖表明上述 Ax、Ay、Az 的解所描述的是:一組法向量與豎直方向夾角相等的姿態。下面 Sugar 以劍影分光術的形式更清楚地表現一下這個現象,為了不讓眾多劍影的出現太突然,先用一成功力弄出兩個劍影:

然後提高功力,輸出一圈劍影:

已經眼花繚亂了,但紅色的各個姿態的法向量有一個明顯特徵:傘骨狀。為了體現量的特點,Sugar 選用了 pitch 60 的一組姿態且法向量在姿態的兩側都是單位向量,我們看一下X-Z視圖表現出的量的特點:

又是動圖又是劍影分光術的,Sugar 要表達的一個重點就是:在 from_euler_xyz 旋轉矩陣的作用下,各個偏航角不同的姿態對應的橫滾角 roll 和俯仰角 pitch 都是跟偏航角為 0 的姿態是一樣的。因為用 IMU 無法估算偏航角 Yaw,不妨隨意標定一個姿態是 Yaw 為 0 的姿態,這樣就有 sy = 0、cy = 1,這樣 Ax、Ay 和 Az 就是:

 Ax = cr*sp Ay = -sr Az = cp*cr

至此,我們就得到了用加速度計解算姿態的新公式:

r = -asin(Ay)p = atan2(Ax,Az)

進階算法效果有什麼改善

Sugar 在 MATLAB 同時繪出進階算法和入門級算法的姿態對比圖,主要代碼如下:

效果對比如下:

為什麼 pitch 是正負 180 度

我們知道反正切函數atan()的值域是-90 度 ~ 90 度,這個公式算出的怎麼會超過這個值域範圍的?原因是:這裡我們使用的是四象限反正切。
四象限反正切函數的特點:

四象限反正切並不是 MATLAB 獨有的,ArduPilot 代碼裡也是用四象限反正切函數做姿態解算的。

相關焦點

  • 姿態解算進階之理解旋轉矩陣(也稱方向餘弦矩陣)
    背景介紹:Sugar 已寫完連續 5 篇的姿態解算入門系列,這個系列的特點是:特別簡單、起點特別低。
  • 一種常見的四軸飛行器姿態解算方法分析
    本文引用地址:http://www.eepw.com.cn/article/247809.htm  本文將分析一種常見的四軸飛行器姿態解算方法,Mahony的互補濾波法。此法簡單有效,希望能給學習四軸飛行器的朋友們帶來幫助。
  • imu動態加速度姿態解算_imu 加速度計解算四元數 - CSDN
    其次需要求姿態轉移矩陣,這裡就是初始對準了。這裡針對雷射陀螺,這種高精度陀螺儀可以敏感地球自轉角速度以及重力加速度,所以可以用,用雙矢量定姿來求姿態陣。而MEMS這種低精度IMU,不能準確敏感,,則需要藉助磁力計,衛導雙天線定姿等來對準。
  • 基於組合導航的汽車姿態數據採集系統設計
    編者按:本文設計了一個基於組合導航的汽車姿態數據採集系統,該系統利用集加速度計和陀螺儀於一體的高精度高靈敏度的慣性測量晶片MPU6050,結合地磁傳感器形成的九軸傳感器,對汽車的線性加速度、角速度參數數據進行直接採集,以互補濾波實現九軸傳感器的誤差補償,用四元數法對其姿態解算
  • 基於互補濾波器的兩輪平衡車姿態角度測量
    所以單一的傳感器測量難以得到精確的姿態角度。需採用多傳感器信號融合的方法,來獲得準確的姿態角度量。多傳感器數據的融合方法有神經網絡、小波分析、卡爾曼濾波等姿態解算算法,但這些方法建立穩定可靠的更新方程通常具有較高的階數,且計算量大,不適合於低運算能力系統的實時計算。相比以上方法,互補濾波算法對處理器運算速度要求不高,且簡單可靠。
  • MEMS陀螺儀需組合其他傳感器使用 歐拉角和四元數表述飛行姿態
    王懿總結道:「MEMS陀螺儀優勢在於:(1)降低飛行器成本,促進市場應用蓬勃發展;(2)減少了無人機的重量,降低了功耗,提升了飛行時間;(3)通過MEMS技術集成更多傳感器,有利於實現姿態的精確控制。不足之處:相比光纖陀螺儀、雷射陀螺儀,MEMS陀螺儀的零漂和精度較差。」  金良認為,MEMS陀螺儀優勢明顯,但也存在一定局限性。
  • 德拉諾之王中戰士獲得新姿態:角鬥士姿態
    魔獸世界6.0改動:魔獸6.0戰士迎來的最新改動,新加入一種重要的姿態角鬥士姿態。戰士的新姿態將會替換原有的戰鬥姿態。根據角鬥士姿態下的技能改動這很有可能是一個仍然使用單手武器加盾牌的輸出角色。這項更新能為戰士帶來一種全新的作戰體驗。
  • RNG官博透露,姿態將再次缺席S8,姿態女友:不會揭開姿態傷疤!
    相信最近看過比賽的網友們都知道RNG戰隊中目前是完全體的陣容是出了走A怪琪琪以及上單姿態之外的其餘六個人,那麼在LPL夏季賽的冠冠軍之爭的比賽中,RNG戰隊中的琪琪以及姿態是沒有上場的機會的,那麼在RNG教練團中UZI跟琪琪相比較,自然不用說是毫無爭議的,但是上單的位置來說,Letme的穩定發揮致使上單姿態一直都是沒有機會上場的!
  • 【乾貨】淺析APM姿態控制中兩個常用的函數
    ,最近分析了兩個常用的函數,以前看代碼只看框架,覺得不就是姿態嗎,不就是歐拉角,四元數,旋轉矩陣嗎?已知NED坐標系下期望加速度accel_x_cmss,accel_y_cmss(融合之後的加速度數據為NED坐標系下)和遙控輸入的yaw,求機體坐標系下pitch角和roll角。1.需要先將yaw角進行補償,即只剩下傾斜角。
  • 姿態表示方法之四元數
    之前講了姿態表示方法之歐拉角和姿態表示方法之方向餘弦矩陣現在講一下對於四元數的簡單通俗理解
  • 京城貴婦姿態家境不是吹,曾經PDD說過在姿態家裡容易迷路
    京城貴婦姿態家境不是吹,曾經PDD說過在姿態家裡容易迷路LPL有不少的職業選手都是有著很高的背景,比如說MOG中單冷少他就是富二代,隨便一件衣服都是幾千塊,而打職業並不是為了賺錢而是為了實現自己的夢想,冷少家裡資產最少一個億。
  • 蘭花的姿態,你看懂了嗎?
    每每看到陽臺上,友人送的蘭花草,總想起《孔子家語》裡的經典之句: 「不以無人而不芳,不因清寒而萎瑣;氣若蘭兮長不改,心若蘭兮終不移」。 不因為沒有人欣賞,而不綻放,而不散發香味,這是花的姿態。
  • 飛機異常姿態:低高度更要「高」要求
    ,但一種新的飛機「特情」卻嚴重威脅著飛行安全,即飛機的異常姿態,尤其是低高度異常姿態。  飛機在復飛後產生了過大的推力,連續通宵飛行的機組異常疲勞,在復飛過程中遭遇風向、風速的快速變化,以及波音737飛機的襟翼由於速度保護來回自動收放等因素,共同導致機組對垂直運動加速度的感知出現了混亂,進而在油門、駕駛杆和安定面配平的使用上出現了失誤。執飛本次航班的飛行員在向下修正飛機時,沒有收油門,而是粗猛穩杆,並使用大量向下的配平修正飛機。
  • 人造衛星:以怎樣的姿態遨遊在宇宙
    此時,一連串的問號閃現在記者的腦海裡,夜幕下的星空,人造衛星是以怎樣的姿態在運行呢?  看似「高大上」的人造衛星,為了保持運行穩定,主要有兩種運行姿態:一類是自旋穩定,另一類是三軸穩定。此外,還有大自旋穩定姿態等。  「拿自旋穩定姿態來說,人造衛星圍繞其自身的中心軸在旋轉,和陀螺的原理一樣,旋轉起來才能穩定。」