空間剛體的姿態有3個自由度,通常採用旋轉矩陣(9個引數)、旋轉向量(3個引數)、尤拉角(3個引數)、四元數(4個引數)表示。
由於姿態有3個自由度,而旋轉矩陣和四元數的引數個數大於3,這種表示方法叫做過引數表示。
旋轉向量和尤拉角中的引數個數與自由度數相等,這兩種表示法也叫作最小引數表示法。
3個自由度,但旋轉矩陣卻有9個引數,導致這種表示法有6個約束。有約束就不能用無約束優化。
3個自由度,但四元數有4個引數,導致有1個約束。與旋轉矩陣一樣,不能用無約束優化。
上述兩種表示法的優點是沒有奇異性,即過引數表示沒有奇異性。
最小引數表示有奇異性。但引數個數少,而且尤拉角也便於人機互動。
旋轉表示的關係:
旋轉矩陣是李群。旋轉向量是李代數。
旋轉矩陣和旋轉向量依據指數對映和對數對映表示。
旋轉矩陣、旋轉向量、尤拉角、四元數可以相互轉化,只不過不一定是一一對映,可能存在多對乙個的關係。
旋轉表示的優化:
為無歧義的表示姿態,通常採用過引數表示法。
在迭代法中,直接利用
xk= xk-1+\delta x.
會導致過引數不滿足約束。
為求解最優的剛體變換,需要構建誤差函式,然後採用無約束優化方法,求函式極小值。
求極值涉及求導,求導通常有兩種方式,李群求導和擾動模型。
李群求導:
李群沒有加法,不能實現求導,所以需通過指數對映,轉換為李代數/尤拉角的求導。
擾動模型:
擾動模型的思想為,對旋轉矩陣,施加擾動,生成乙個新的誤差函式。擾動採用最小引數表示。可以為尤拉角或旋轉向量。
擾動為尤拉角:
若擾動為尤拉角表示,由於擾動非常小,不會為奇異值。簡單地說,就是把尤拉角中的引數,變為旋轉矩陣,然後採用旋轉矩陣乘法,更新新的迭代引數。這裡的擾動通常採用擾動右乘的方式。
有時候,我們也想知道旋轉矩陣中的最小引數為啥,這就是把旋轉矩陣,轉換為尤拉角。這通常用計算誤差的時候。
小結:擾動為尤拉引數,也就涉及尤拉和旋轉矩陣的變換。擾動為右乘。
擾動為旋轉向量:
由於李群和李代數的對映關係,可以把求導變為李代數的求導。
飛行器不同建模方式 姿態表示的區別
在建模過程中將飛行機械人本體視為空間中自由運動的剛體,主要的區別在於力與力矩的產生機制和飛行機械人姿態的描述方法。其中,力與力矩的產生機制主要由飛行機械人的構形和旋翼的拓撲分布決定。飛行機械人的位姿包括質心的位置和相對於慣性系的方向,其中質心的位置可以描述為歐氏空間中的乙個向量,而它的姿態則是滿足某...
2020 04 01 想好了姿態,才能放好姿態
08 00 智者順時而謀,愚者逆理而動。一一朱浮 臨出門前,哇哇大雨。看來,連天都在我美好一天的開始前湊了個熱鬧。沒錯,當我回到公司的時候,襪子都濕潤了。趕緊脫下來,晾曬在我辦公桌底下的那個小太陽面前,穿上我非常喜歡穿的那雙耐克拖鞋,清爽地坐了下來,真舒服。突然讓我想起一些信仰教徒在餐前都會有乙個祈...
matlab 機械人工具箱2 姿態的其他表示方法
現在想把a通過旋轉變換到b,角表示法有24中,分為兩大類 r rotz pi 3 roty pi 3 rotx pi 3 後旋轉的在先旋轉變換的左側,或者可以寫成 r rpy2r pi 3,pi 3,pi 3,zyx 當想得到旋轉的角度時 tb tr2rpy r,zyx 得到弧度制表示方法 tb 1...