mwc演算法
Ⅰ 四旋翼飛控里 為什麼一定要用四元數用歐拉角不一樣嗎 就算用四元數也是將四元數轉化為歐拉角進
四元數多是用在中間環節,在最終的PID輸出的時還是用的歐拉角。
我認為造成這個現象的根本原因是抄襲!!對,就是抄襲。
通過6軸或者9軸融合姿態角的演算法有兩種,這兩種我記得沒錯的話是英國人開發的(國籍可能記錯了),並開源了,國內的那些沒有研發能力的團體和個人就是用的這個演算法,而那個演算法的中間環節均為四元數,輸出是歐拉角。
我也是沒有研發能力的個人,所以也不能透徹理解這個轉換的意義,猜測可能是像拉式變換或者傅立葉一樣,通過一種域的變換使計算過程簡便,也就是三維的'復數域',再可能是通過四元數防止計算過程中出現超過歐拉角表示範圍的問題。四元數在旋轉合成方面會方便一些,計算量也少於歐拉角,但是!姿態演算法里根本沒有四元數的旋轉合成。
國內的開源的四軸代碼都是這樣,還有以前看的一個開源代碼開始還是開源的,後來還有限制了,就那破代碼,也就開發者自己還覺得不錯了。
這些代碼沒有核心的姿態演算法的開發能力,就在感測器的數據上'下功夫',就是被玩壞的濾波器,MWC用的滑動均值濾波、互補濾波簡單明了,可靠有效,但是我們的開發者不這么認為,不用上橢圓濾波器,多階低通濾波器,卡爾曼濾波這些復雜的演算法就是低端的體現,浮點運算隨心情寫,也不管用不用的上,能用浮點絕不定點,這都還好,反正他們用的晶元完成他們的代碼就是用大炮打蚊子,有的是資源沒用,雙精度都算的過來。
其中我最受不了的就是他們的卡爾曼濾波了,那個叫卡爾曼?天啟者 卡爾瑪吧。那都什麼演算法啊,有什麼用,定義個QR就開始計算了,幾個矩陣就高大上了,完全的低通性能,就是抑制dv/dt,確實給信號的波動減少了同時也把感測器的中高頻信號給過濾掉了,這個可以,問題是中高頻都濾掉了,控制頻率給提到400+hz是什麼意思,信號帶寬給限制到了100hz,再把控制頻率給升高,有什麼用?有什麼用?
說的這些都是我能看到源碼的演算法,當然有很多沒有公開源碼的好的演算法,國內的牛人很多很多,只是他們專注於賣套件,誰都想把自己的勞動有回報,也不會公開,就是這個情況。
開源的國內代碼就是這個質量,別想有什麼突破,心態就是這樣,別想短時間內有突破。
廢話說了一堆也沒解決你疑惑,實在抱歉。