許景偉,余麗云
(1.中國人民解放軍92853部隊,遼寧 興城 125106;2.工業(yè)和信息化部電子第五研究所華東分所,江蘇 蘇州 215011)
無人機技術(shù)在現(xiàn)代生活中的應(yīng)用越來越廣泛。越來越多的人加入了無人機使用者或設(shè)計者行列。但目前大多數(shù)無人機愛好者僅僅停留在使用者層次,并且很多無人機愛好者由于缺乏數(shù)學(xué)基礎(chǔ)而無法進階到初步設(shè)計者。因此,對無人機技術(shù)有更多、更深入的了解,不管是對無人機愛好者更好地操作無人機,還是有志于進階無人機設(shè)計者進行學(xué)習(xí)開發(fā)無人機技術(shù),都有著極大的幫助。本文著重討論無人機軟件技術(shù)中的一個基礎(chǔ)算法——四元數(shù)法。
無人機在空中的姿態(tài)問題是所有的無人機軟件技術(shù)中首要解決的問題。目前常用的無人機姿態(tài)定義的方法有歐拉角、旋轉(zhuǎn)矩陣和四元數(shù)等[1]。一般無人機姿態(tài)定義方法會采用四元數(shù)法。因為四元數(shù)法相對于另外兩種算法有著數(shù)據(jù)量少、姿態(tài)解算快的優(yōu)點。四元數(shù)概念最早由愛爾蘭數(shù)學(xué)家發(fā)明,可以把四元數(shù)法看作是描述無人機三維姿態(tài)的一組向量。
四元數(shù)的定義為q=s+xi+yj+z k。i,j,k是單位虛數(shù)。復(fù)數(shù)p=a+bi可以表述二維平面向量,四元數(shù)可以簡單地認為是一個三維空間的多維復(fù)數(shù)表示形式,類似復(fù)數(shù)表示,可定義為
無人機機體坐標(biāo)系如圖1a所示,為B坐標(biāo)系;地球坐標(biāo)系如圖1a所示,為A坐標(biāo)系。B坐標(biāo)系和A坐標(biāo)系在初始的狀態(tài)下完全平行或重合,I//X,J//Y,K//Z。為了表示機體坐標(biāo)系,采用四元數(shù)的定義機體姿態(tài)為:
其中,cosα、cosβ、cosγ為旋轉(zhuǎn)軸在I、J、K方向的分量,表示機體的姿態(tài)旋轉(zhuǎn)方向[2-3]。
如圖1b所示,若機體從初始狀態(tài)開始繞I軸旋轉(zhuǎn)90°,那么機體的四元數(shù)表示變化為:
機體旋轉(zhuǎn)定義遵循右手定則(右手大拇指指向旋轉(zhuǎn)軸方向,余下四指自然彎曲方向為正旋轉(zhuǎn)方向)。cosα、cosβ、cosγ在本次旋轉(zhuǎn)中表示為[1,0,0]。
如圖1c所示,若機體繼續(xù)繞I軸旋轉(zhuǎn)90°,那么機體的四元數(shù)表示變化為:
此時機體是在前面一次旋轉(zhuǎn)的基礎(chǔ)上繼續(xù)旋轉(zhuǎn)的,不是從初始化位置開始旋轉(zhuǎn)的,得到:
如圖1d所示,若機體繼續(xù)繞I軸旋轉(zhuǎn)90°,可以得:
圖1 坐標(biāo)系
根據(jù)四元數(shù)的旋轉(zhuǎn)差值計算公式,可以得到3次旋轉(zhuǎn)后的四元數(shù)公式為:
若是3次旋轉(zhuǎn)后,繼續(xù)按原來的規(guī)律旋轉(zhuǎn),那么機體正好旋轉(zhuǎn)一周,可得:
經(jīng)計算,這和實際情況相符[4-6]。
無人機姿態(tài)定義主要是要考慮如何描述無人機在地球坐標(biāo)系中的相對位置。一般可以把無人機自身姿態(tài)定義成一個機體坐標(biāo)系,如B坐標(biāo)系;把地球坐標(biāo)系定義成導(dǎo)航坐標(biāo)系,如A坐標(biāo)系。因此無人機姿態(tài)定義問題就轉(zhuǎn)變?yōu)橐粋€數(shù)學(xué)問題,即如何在A坐標(biāo)系中描述B坐標(biāo)系;或者說如何在B坐標(biāo)系中描述A坐標(biāo)系[7]。
顯然,通過數(shù)學(xué)常識,A和B的關(guān)系完全可以利用某個運算方式表述,運算方式假定為C,那么可以獲得A=BC。由此,進一步可以明確,無人機姿態(tài)定義就是為了定義這個C。四元數(shù)能完美地表述這個C。
假定機體姿態(tài)定義為VB,映射到A坐標(biāo)系的姿態(tài)為VA,根據(jù)四元數(shù)運算原則,VA=q·VB·q-1。即為:
對機體姿態(tài)進行四元數(shù)解算,要結(jié)合傳感器參數(shù)采樣更新四元數(shù)參數(shù),并采用龍格庫塔法更新四元數(shù)[4]??梢垣@得四元數(shù)解算更新姿態(tài)結(jié)果。
式(10)中:gx、gy、gz——PI迭代計算的誤差修正參數(shù)。
無人機姿態(tài)解算是無人機飛控技術(shù)實現(xiàn)的基礎(chǔ),而四元數(shù)法無疑是無人機姿態(tài)解算的較優(yōu)方法,對無人機設(shè)計者來說需要理解、掌握[8]。即使是無人機使用者,理解四元數(shù)法也有助于更好地操控?zé)o人機、了解無人機技術(shù)。