兩個向量叉乘可以得到一個轉軸,點乘之後可以得到一個角度

一個轉軸,一個角度我們可以得到一個旋轉。

這是我們非常熟悉的一個思路,我們使用兩個N系下的z軸叉乘,來得到一個對齊z軸的旋轉。

但是這個旋轉,是個什麼樣的旋轉呢?

我們之前接觸的旋轉,都是坐標系旋轉,這個旋轉使得初始坐標系 cur,與目標坐標系,tar 的 z 軸重合了。

我們把這個中間狀態叫做 half,也就是說這個旋轉使得,cur 坐標系和 half 坐標系重合了。

正常來說如果我們會使用下式來描述機體坐標系之間的誤差。

但是使用這種描述方式是有前提的,如果使用這個軸角表示這個旋轉過程,這個旋轉的轉軸是屬於 cur 系的,這就是就是我們常說的「機體系下的機體誤差」。

同理如果我們描述地理系下的誤差

用軸角表示的話,這個軸是屬於 N 系的,我們可以稱作「地理系下的地理誤差」。

但是我們來看看這個叉乘後的旋轉,這是兩個 N 系下的 z 軸向量叉乘得到的旋轉,所以他們的轉軸是N系的。 但描述的是 half 與 cur 的誤差。 跟我們通常說的機體誤差是不一樣的。

如果非要用一種方式來描述,應該是這樣:

叫做,可以叫做「地理系下的機體系誤差」!

現在能看出這個旋轉的特殊性了嗎?

所以這個旋轉是不能直接使用鏈式規則加在別的旋轉上的哦。

想使用這個誤差,必須把這個誤差轉換成「機體系下的機體誤差」,或者「地理系下的地理誤差」。

上次我們說了,APM就是把它轉換成了,機體系下的機體誤差,巧合的是PX4選擇了後者。

ps:軸角的轉軸經過旋轉是不變的,它在兩個坐標系間的坐標是一樣的。

這個是 APM 或者 PX4 求解姿態誤差里最具有迷惑的點,現在大家再去看源碼,應該思路更加清晰了。

ok,今天就介紹這麼多,我是zing,一個有趣的飛控演算法工程師,更多乾貨,我們下期見。

關注一下吧


推薦閱讀:
相关文章