0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

經(jīng)典的濾波算法:Madgwick濾波算法

3D視覺(jué)工坊 ? 來(lái)源:3D視覺(jué)工坊 ? 2023-05-31 11:12 ? 次閱讀

前言

之前的一次推送介紹了Mahony姿態(tài)解算算法(IMU姿態(tài)濾波算法——Mahony算法:原理與代碼),這次介紹另一個(gè)經(jīng)典的濾波算法:Madgwick濾波。

Madgwick濾波算法根據加速度計、陀螺儀、以及磁力計,融合計算機體四元數,計算速度快、精度較高。本文詳細介紹六軸融合,即根據加速度計和陀螺儀數據,計算IMU的姿態(tài)。

e386ae58-ff5e-11ed-90ce-dac502259ad0.png

算法

2.1 重力方向對齊優(yōu)化

首先要指出的是,Madgwick算法假設加速度計測量的加速度完全由重力提供,即物體本體運動(dòng)產(chǎn)生的加速度可忽略不計。這一點(diǎn)和Mahony算法是一樣的。

假設world系中一個(gè)向量在world下的表示為 ,在傳感器下的觀(guān)測為 ,傳感器位姿以四元數表示記為 。如果此時(shí)的姿態(tài)是準確的,應該有:

然而由于姿態(tài)不準,等式并不成立。因此,我們定義目標函數:

令目標函數取到0(在四元數對應的參數空間上),則得到了最優(yōu)的姿態(tài),即。這可以當作一個(gè)優(yōu)化問(wèn)題進(jìn)行求解。而優(yōu)化問(wèn)題的求解思路之一,就是采用梯度下降法。記的梯度為,那么在迭代優(yōu)化求解時(shí),下一次取值應該為當前取值減去當前梯度方向走一個(gè)步長(cháng),即

其中,

其中, 為 的雅可比(具體的形式可參考文獻[1][2])。

可以將步長(cháng) 視作加速度計產(chǎn)生的數據對姿態(tài)的收斂速度,同時(shí)考慮到角速度在當前時(shí)刻會(huì )產(chǎn)生一個(gè)角速度的增量,因此加速度這部分的收斂必須大于角速度變化速率,即 ,其中 。

對于一般的優(yōu)化,我們需要不斷迭代求解直到收斂,但Madgwick為了保證算法的實(shí)時(shí)性,只進(jìn)行一次梯度下降,也能取得差不多的精度。

具體地,如果我們把world系下的這個(gè)向量 取重力 ,姿態(tài)傳感器對應的測量 即為IMU的加速度計讀數 ,此時(shí)有:

2.2 角速度融合

另一方面,我們可以通過(guò)角速度計提供的角速度積分,得到姿態(tài),即:

這里我們對四元數進(jìn)一步的區分。我們對上一時(shí)刻濾波后的姿態(tài)(四元數)記為 ,當前時(shí)刻角速度計的讀數即角速度為 ,角速度計計算得到的姿態(tài)為 。

對2.1中優(yōu)化后得到的四元數記為 ,即加速度計計算得到的姿態(tài)。

那么,當前時(shí)刻估計的姿態(tài)取做兩個(gè)姿態(tài)的加權平均:

至于 如何取值,下一小節進(jìn)行討論。

2.3 權重取值

由于角速度存在漂移,我們定義角速度的發(fā)散速率為 。這里如果加速度計對姿態(tài)貢獻的收斂速度,等于角速度的發(fā)散速度,則由式(5)融合的結果依舊是準確的姿態(tài)。即需要有:

由于 中對 沒(méi)有限制,因此取 為無(wú)限大,此時(shí),綜合(1)(5)(6),有:

定義估計的角速度 ,則最終有:

再看式(7),可以將視作,下一時(shí)刻的姿態(tài),等于上一時(shí)刻姿態(tài),加上角速度計的積分,減去一個(gè)與角速度計噪聲水平 相關(guān)的增量,這個(gè)增量的與加速度計的優(yōu)化時(shí)的梯度有關(guān)。最終,Madgwick濾波算法的參數只有一個(gè)。

代碼

Matlab完整代碼[3]如下:

functionobj=UpdateIMU(obj,Gyroscope,Accelerometer)

q=obj.Quaternion;

if(norm(Accelerometer)==0),return;end
Accelerometer=Accelerometer/norm(Accelerometer);%歸一化加速度計數據

%式(2)和(3)
F=[2*(q(2)*q(4)-q(1)*q(3))-Accelerometer(1)
2*(q(1)*q(2)+q(3)*q(4))-Accelerometer(2)
2*(0.5-q(2)^2-q(3)^2)-Accelerometer(3)];
J=[-2*q(3),2*q(4),-2*q(1),2*q(2)
2*q(2),2*q(1),2*q(4),2*q(3)
0,-4*q(2),-4*q(3),0];
step=(J'*F);
step=step/norm(step);%式(1)中的減號后面的部分,即修正量

%式(8)中的修正角速度
qDot=0.5*quaternProd(q,[0Gyroscope(1)Gyroscope(2)Gyroscope(3)])-obj.Beta*step';

%式(7)(8),即迭代到下一步。
q=q+qDot*obj.SamplePeriod;
obj.Quaternion=q/norm(q);%normalisequaternion
end

與Mahony算法的比較

Madgwick算法與Mahony算法相比,最大的不同之處是如何對待加速度計估計的誤差。Mahony是利用叉乘,Madgwick是利用優(yōu)化;

Mahony可以視作一個(gè)PI(比例-積分)控制器,Madgwick是一個(gè)P(比例)控制器;

Madgwick比Mahony的精度稍高一丟丟,但Mahony的計算速度略快[4];

Mahony與Madgwick都需要假設加速度測的只是重力,因此在加速度變化劇烈情況下表現不佳。

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • 濾波算法
    +關(guān)注

    關(guān)注

    2

    文章

    84

    瀏覽量

    13672
  • 磁力計
    +關(guān)注

    關(guān)注

    1

    文章

    60

    瀏覽量

    20649

原文標題:IMU姿態(tài)濾波算法——Madgwick算法:原理與代碼

文章出處:【微信號:3D視覺(jué)工坊,微信公眾號:3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    常用的經(jīng)典濾波算法有哪些??

    常用的經(jīng)典濾波算法有哪些??
    發(fā)表于 07-01 15:15

    AD轉換常用濾波算法

    非常經(jīng)典濾波算法!
    發(fā)表于 05-05 14:29

    濾波算法

    10種濾波算法
    發(fā)表于 07-28 11:16

    濾波算法

    包含內容:1.10種軟件濾波的方法 2.單片機數字濾波算法研究3.濾波算法程序
    發(fā)表于 10-13 09:29

    幾種常見(jiàn)的濾波算法

    **幾種常見(jiàn)的濾波算法**限幅濾波算法(程序判斷濾波算法)顧名思義,就是單純用程序來(lái)處理輸入數據
    發(fā)表于 01-11 06:37

    軟件算法實(shí)現數字濾波問(wèn)題

    軟件算法實(shí)現數字濾波問(wèn)題:解決方法:數字濾波算法優(yōu)點(diǎn):限幅濾波算法:原理描述:適用場(chǎng)景:參考代碼
    發(fā)表于 01-20 06:58

    怎么評估一個(gè)濾波算法濾波效果?

    怎么評估一個(gè)濾波算法濾波效果
    發(fā)表于 10-10 07:31

    卡爾曼濾波算法對比其他的濾波算法有什么優(yōu)點(diǎn)?

    卡爾曼濾波算法對比其他的濾波算法有什么優(yōu)點(diǎn)
    發(fā)表于 10-11 06:42

    經(jīng)典濾波算法

    經(jīng)典濾波算法,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-18 17:59 ?4次下載

    卡爾曼濾波算法

    卡爾曼濾波算法
    發(fā)表于 12-17 17:22 ?52次下載

    基于無(wú)源定位的粒子濾波算法

    特性,增加了樣本的多樣性,克服了重采樣過(guò)程中的粒子退化問(wèn)題,并針對二維平面機動(dòng)模型進(jìn)行仿真。仿真實(shí)驗表明,本文算法能夠適用于機載無(wú)源定位系統,能夠有效的提高濾波精度,跟蹤性能優(yōu)于經(jīng)典的粒子濾波
    發(fā)表于 11-08 15:32 ?1次下載
    基于無(wú)源定位的粒子<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>

    雙邊濾波點(diǎn)云去噪算法

    針對三維點(diǎn)云數據模型在去噪光順中存在不同尺度噪聲的問(wèn)題,提出一種基于噪聲分類(lèi)的雙邊濾波點(diǎn)云去噪算法。該算法首先將噪聲細分為大尺度和小尺度噪聲,并使用統計濾波結合半徑
    發(fā)表于 01-05 10:51 ?2次下載
    雙邊<b class='flag-5'>濾波</b>點(diǎn)云去噪<b class='flag-5'>算法</b>

    圖像加窗中值濾波算法的研究分析

    提出了一種實(shí)用的圖像濾波算法,即圖像加窗中值濾波算法。在分析經(jīng)典中值濾波
    發(fā)表于 11-30 11:11 ?4次下載
    圖像加窗中值<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的研究分析

    濾波算法有哪些十大濾波算法的資料介紹

    本文檔的主要內容詳細介紹的是十大濾波算法的資料介紹包括了:限幅濾波法(程序判斷濾波法),中位值濾波法,算術(shù)平均
    發(fā)表于 01-04 08:00 ?28次下載
    <b class='flag-5'>濾波</b><b class='flag-5'>算法</b>有哪些十大<b class='flag-5'>濾波</b><b class='flag-5'>算法</b>的資料介紹

    11種濾波算法程序分享

    11種濾波算法程序分享
    的頭像 發(fā)表于 07-24 15:57 ?1111次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看