唐 文,魏志強(qiáng),軒新想,張玉方
(中國電子科技集團(tuán)公司第三研究所,北京 100015)
隨著航拍無人機(jī)和云臺技術(shù)的不斷發(fā)展,使用無人機(jī)搭載光電吊艙對目標(biāo)進(jìn)行偵察和監(jiān)視的應(yīng)用場景越來越多。為了實(shí)現(xiàn)對目標(biāo)的全天候監(jiān)測和精確定位,光電吊艙需要搭載可見光電視、紅外熱像儀、激光測距機(jī)等多種光電探測器??紤]到尺寸和重量的限制,這種搭載了多個光電探測器的吊艙大多采用兩軸結(jié)構(gòu)。由于兩軸結(jié)構(gòu)在橫滾方向沒有姿態(tài)補(bǔ)償,當(dāng)無人機(jī)姿態(tài)改變時,會在吊艙視軸產(chǎn)生橫滾角度分量,致使觀察到的圖像相對于水平面發(fā)生傾斜,影響對目標(biāo)的觀察和判斷。為了消除這種傾斜現(xiàn)象,一般采用圖像消旋的辦法。常見的圖像消旋方法有物理消旋、光學(xué)消旋及電子消旋等[1-3],需要使用姿態(tài)傳感器(陀螺儀、傾角儀等)獲取視軸的橫滾角,再使用圖像變換的辦法對圖像進(jìn)行處理[4]。對于沒有在橫滾軸布置姿態(tài)傳感器的吊艙,無法直接獲取視軸橫滾角,但可以根據(jù)飛機(jī)和吊艙的空間姿態(tài)關(guān)系,間接獲取視軸橫滾角[5]。本文基于多旋翼無人機(jī)和光電吊艙的空間姿態(tài)關(guān)系,建立了兩軸光電吊艙視軸橫滾角計(jì)算數(shù)學(xué)模型,使用MATLAB軟件編寫了視軸橫滾角計(jì)算程序,分析了圖像旋轉(zhuǎn)角與無人機(jī)和吊艙姿態(tài)角的對應(yīng)關(guān)系,使用三維建模渲染軟件Blender建立了無人機(jī)搭載光電吊艙偵察的虛擬仿真環(huán)境,實(shí)現(xiàn)了光電吊艙圖像消旋的虛擬仿真,驗(yàn)證了視軸橫滾角計(jì)算模型及計(jì)算程序的有效性。
消旋正向選擇一般有“向上標(biāo)準(zhǔn)”和“向前標(biāo)準(zhǔn)”[5],本文的消旋正向標(biāo)準(zhǔn)使用“向上標(biāo)準(zhǔn)”,即天在上地在下,適于目標(biāo)畫面在地平線附近的情形。坐標(biāo)系以大地為基準(zhǔn),使用東北天坐標(biāo)系,X軸指東,Y軸指北,Z軸指天。
無人機(jī)(Drone)坐標(biāo)系及姿態(tài)角定義如圖1所示。X軸指向無人機(jī)前方,Y軸指向無人機(jī)左側(cè),Z軸指向無人機(jī)上方。無人機(jī)相對大地的姿態(tài)角為,橫滾角(RollD)繞X軸,俯仰角(PitchD)繞Y軸,方位角(YawD)繞Z軸。
圖1 無人機(jī)坐標(biāo)系及姿態(tài)角
吊艙(Turret)基座與無人機(jī)固連,其坐標(biāo)系及姿態(tài)角定義如圖2所示。吊艙上光電載荷的初始方向與無人機(jī)坐標(biāo)系方向相同。其相對無人機(jī)的姿態(tài)角為,橫滾角(RollT)繞X軸,俯仰角(PitchT)繞Y軸,方位角(YawT)繞Z軸。
圖2 吊艙坐標(biāo)系及姿態(tài)角
使用吊艙坐標(biāo)系中三個相互垂直的單位向量iT,jT,kT表示吊艙光電載荷的三個軸向,其中,iT為光電載荷視軸向量,初始方向與吊艙坐標(biāo)系X軸相同;jT為光電載荷側(cè)向向量,初始方向與吊艙坐標(biāo)系Y軸相同;kT為光電載荷垂向向量,初始方向與吊艙坐標(biāo)系Z軸相同。在吊艙坐標(biāo)系中的表示如下:
采用歐拉角法求解光電載荷在無人機(jī)和大地坐標(biāo)系下的姿態(tài)角。吊艙坐標(biāo)系到無人機(jī)坐標(biāo)系,分別繞吊艙X,Y,Z三個軸旋轉(zhuǎn)的姿態(tài)變換矩陣為
無人機(jī)坐標(biāo)系到大地坐標(biāo)系,分別繞無人機(jī)X,Y,Z三個軸旋轉(zhuǎn)的姿態(tài)變換矩陣為
將吊艙坐標(biāo)系中的光電載荷方向向量變換到大地坐標(biāo)系中,可以得到光電載荷三個軸向向量iT,jT,kT在無人機(jī)姿態(tài)(RollD,PitchD,YawD)和光電吊艙姿態(tài)(RollT,PitchT,YawT)共同作用下的大地坐標(biāo)系中的表示iG,jG,kG。
我的老姐姐知道我們的事,并沒有責(zé)怪老伴,反倒說我。在她看來,我和老伴并不般配。老伴大學(xué)畢業(yè),原來是企業(yè)的領(lǐng)導(dǎo),人長得也精神,有些內(nèi)向;而我初中畢業(yè),后來進(jìn)城也是靠老伴才找到的工作,說話辦事風(fēng)風(fēng)火火的。姐姐還埋怨我那去世的老媽媽,說老媽媽當(dāng)時看男方的條件好,仗著是老鄰居,硬是把我們整一塊去了。我的婆婆公公在家也說了算,所以,我這婚姻完全是兩邊老人做主的。
無人機(jī)到地面的姿態(tài)變換順序?yàn)榉轿弧┭觥鷻M滾,即Z軸→Y軸→X軸。所以無人機(jī)到地面的坐標(biāo)變換矩陣為
吊艙到無人機(jī)的姿態(tài)變換順序根據(jù)吊艙的結(jié)構(gòu)形式有所不同。對于本文這種沒有橫滾軸的吊艙,其姿態(tài)變換順序?yàn)榉轿弧┭觥鷻M滾,即Z軸→Y軸→X軸,橫滾軸用于圖像消旋,相當(dāng)于橫滾軸在最后一級的三軸吊艙。所以吊艙到無人機(jī)的坐標(biāo)變換矩陣為
綜合吊艙到無人機(jī)和無人機(jī)到地面的坐標(biāo)變換矩陣,得到吊艙到地面的坐標(biāo)變換矩陣為
求得地面坐標(biāo)系下吊艙光電載荷的三個方向向量如下。
地面坐標(biāo)系下視軸向量:
地面坐標(biāo)系下側(cè)向向量:
地面坐標(biāo)系下垂向向量:
視軸橫滾角θ可以通過求取地面坐標(biāo)系下視軸側(cè)向向量jG與視軸水平方向參考向量τG的夾角獲得。其中,地面坐標(biāo)系下視軸水平方向參考向量τG使用地面坐標(biāo)系下的視軸向量iG與地面法向向量nG的外積獲得,τG始終與水平面平行。
則地面坐標(biāo)系下的視軸水平方向參考向量為
求得視軸橫滾角為
上式求得的θ范圍為0~180°,無法區(qū)分視軸側(cè)向量jG通過順時針還是逆時針旋轉(zhuǎn)到水平方向參考向量τG的方向,這里通過地面坐標(biāo)系下視軸側(cè)向向量jG的z的正負(fù)判斷旋轉(zhuǎn)方向,如圖3所示。z為正時,視軸側(cè)向向量在水平面上方,θ取正值,即視軸側(cè)向量通過繞視軸順時針旋轉(zhuǎn)θ后,與水平方向參考向量方向相同;z為負(fù)時,視軸側(cè)向向量在水平面下方,θ取負(fù)值,即視軸側(cè)向量通過繞視軸逆時針旋轉(zhuǎn)θ后,與水平方向參考向量方向相同。
圖3 圖像旋轉(zhuǎn)角正負(fù)定義示意圖
根據(jù)上述計(jì)算模型,使用MATLAB軟件編寫圖像消旋角度計(jì)算程序,實(shí)現(xiàn)任意無人機(jī)和吊艙姿態(tài)下視軸橫滾角的計(jì)算,輸出給圖像處理模塊作為圖像消旋需要的圖像旋轉(zhuǎn)角度。
以無人機(jī)姿態(tài)為俯仰10°、橫滾10°為例,計(jì)算在無人機(jī)姿態(tài)固定的情況下,吊艙姿態(tài)與圖像旋轉(zhuǎn)角度的關(guān)系,繪制關(guān)系分布圖,如圖4所示。從圖4可以看出,圖像旋轉(zhuǎn)角在(-78°,136°)、(106°,136°)、(-106°,-44°)、(78°,-44°)四個位置出現(xiàn)了突變。這四個位置對應(yīng)吊艙視軸向量與地面法向向量平行的四個位置。吊艙俯仰運(yùn)動越過此位置時,視軸水平方向參考向量的方向發(fā)生翻轉(zhuǎn)。由于圖像旋轉(zhuǎn)角是基于視軸水平方向參考向量計(jì)算的,所以計(jì)算得到的圖像旋轉(zhuǎn)角度也發(fā)生了180°的翻轉(zhuǎn),這是使用“向上標(biāo)準(zhǔn)”時會發(fā)生的現(xiàn)象。另外,在吊艙方位角136°和-44°附近,是圖像旋轉(zhuǎn)角θ定義正負(fù)轉(zhuǎn)換的位置,所以吊艙方位角越過此處時,圖像旋轉(zhuǎn)角的正負(fù)符號會發(fā)生改變。
圖4 吊艙姿態(tài)與圖像旋轉(zhuǎn)角度關(guān)系圖
需要說明的是,這里給出了吊艙全部姿態(tài)角(方位角-180°~180°、俯仰角-180°~180°)下的圖像旋轉(zhuǎn)角分布,實(shí)際使用時,吊艙方位角的轉(zhuǎn)動范圍是n×360°,俯仰角的轉(zhuǎn)動范圍在-60°~120°,一般俯仰角超過45°畫面中就不會出現(xiàn)地平線了,不需要進(jìn)行“向上標(biāo)準(zhǔn)”的圖像消旋。
以吊艙的姿態(tài)為方位10°、俯仰10°為例,計(jì)算在吊艙姿態(tài)不變情況下,無人機(jī)姿態(tài)與圖像旋轉(zhuǎn)角度的關(guān)系,繪制曲線如圖5所示。從圖5可以看出,圖像旋轉(zhuǎn)角在(-50°,77°)、(130°,103°)、(-41°,105°)、(139°,-75°)四個位置出現(xiàn)了突變,這與圖4中的圖像旋轉(zhuǎn)角度出現(xiàn)180°翻轉(zhuǎn)的原因相同。與無人機(jī)姿態(tài)固定時圖像旋轉(zhuǎn)角的符號正負(fù)轉(zhuǎn)換位置僅受吊艙方位角影響不同,當(dāng)?shù)跖撟藨B(tài)固定時,圖像旋轉(zhuǎn)角的符號正負(fù)轉(zhuǎn)換的位置同時受無人機(jī)俯仰和橫滾姿態(tài)的影響。
圖5 無人機(jī)姿態(tài)與圖像旋轉(zhuǎn)角度關(guān)系圖
通過以下幾個特定位姿的算例,可以更好地說明無人機(jī)和吊艙的姿態(tài)對圖像旋轉(zhuǎn)角的影響規(guī)律。各特定位姿對應(yīng)的吊艙姿態(tài)角如表1所示。
表1 特定位姿的吊艙姿態(tài)角
圖6給出了無人機(jī)俯仰角0°不變,僅進(jìn)行-30°~30°橫滾運(yùn)動時的圖像旋轉(zhuǎn)角變化趨勢。從圖6(a)可以看出,當(dāng)?shù)跖摰姆轿唤呛透┭鼋菫?°時,圖像旋轉(zhuǎn)角度隨無人機(jī)橫滾角度線性變化。當(dāng)?shù)跖摲轿唤菫?°、俯仰角增大時,圖像旋轉(zhuǎn)角度與無人機(jī)橫滾角開始呈現(xiàn)非線性關(guān)系,吊艙俯仰角越大,相同無人機(jī)橫滾角下對應(yīng)的圖像旋轉(zhuǎn)角度越大。當(dāng)?shù)跖摲轿唤菫?°、俯仰角為90°時,圖像旋轉(zhuǎn)角在無人機(jī)橫滾角0°左右出現(xiàn)階躍,這是采用“向上標(biāo)準(zhǔn)”進(jìn)行消旋時會出現(xiàn)的現(xiàn)象。從圖6(b)可以看出,當(dāng)?shù)跖摳┭鼋菫?°、方位角增大時,無人機(jī)的橫滾運(yùn)動對圖像旋轉(zhuǎn)的影響越來越小。當(dāng)?shù)跖摳┭鼋菫?°、方位角90°時,圖像旋轉(zhuǎn)角保持0°不變,這是由于此時無人機(jī)的橫滾運(yùn)動與吊艙的俯仰運(yùn)動繞相同的空間軸轉(zhuǎn)動,與吊艙的俯仰運(yùn)動等效,因此此時無人機(jī)的橫滾運(yùn)動對圖像旋轉(zhuǎn)沒有影響。
圖6 無人機(jī)橫滾角對不同吊艙姿態(tài)下圖像旋轉(zhuǎn)角的影響
圖7給出了無人機(jī)橫滾角0°不變,僅進(jìn)行-30°~30°俯仰運(yùn)動時的圖像旋轉(zhuǎn)角變化趨勢。從圖7(a)可以看出,當(dāng)?shù)跖摲轿唤菫?°時,除了由于采用“向上標(biāo)準(zhǔn)”發(fā)生的圖像旋轉(zhuǎn)角180°階躍,無人機(jī)的俯仰運(yùn)動對圖像旋轉(zhuǎn)角沒有影響。從圖7(b)可以看出,當(dāng)?shù)跖摳┭鼋菫?°、方位角增大時,圖像旋轉(zhuǎn)角與無人機(jī)俯仰角呈線性關(guān)系,且吊艙方位角越大,圖像旋轉(zhuǎn)角越大。當(dāng)?shù)跖摲轿唤菫?0°時,無人機(jī)的俯仰運(yùn)動軸與視軸重合,無人機(jī)的俯仰運(yùn)動與視軸的橫滾運(yùn)動等效,所以此姿態(tài)下無人機(jī)的俯仰運(yùn)動對圖像旋轉(zhuǎn)角的影響最大。
圖7 無人機(jī)俯仰角對不同吊艙姿態(tài)下圖像旋轉(zhuǎn)角的影響
利用免費(fèi)開源三維建模渲染軟件Blender建立無人機(jī)和吊艙的三維模型,同時在場景的“世界屬性”中導(dǎo)入帶有地平線場景的高動態(tài)范圍全景圖像作為世界環(huán)境位置參考,建立無人機(jī)偵察的虛擬仿真環(huán)境,效果如圖8(a)所示。通過設(shè)置場景中的“攝相機(jī)”參數(shù)模擬吊艙中光電載荷的視場,效果如圖8(b)所示。Blender軟件可以方便地進(jìn)行無人機(jī)和吊艙的姿態(tài)變換操作,用來實(shí)現(xiàn)不同姿態(tài)下的圖像消旋效果仿真驗(yàn)證。
圖8 基于Blender軟件建立的虛擬仿真環(huán)境
利用Blender軟件中的“空物體”,建立無人機(jī)、吊艙的參考坐標(biāo)系,使用“移動”和“旋轉(zhuǎn)”命令調(diào)整吊艙和無人機(jī)的相對位置,并在“物體屬性”的“關(guān)系”中將無人機(jī)參考坐標(biāo)系設(shè)置為吊艙坐標(biāo)系的父級,實(shí)現(xiàn)無人機(jī)和吊艙空間關(guān)系的定義。同時,將無人機(jī)和吊艙的參考坐標(biāo)系分別設(shè)置為無人機(jī)和吊艙三維模型的父級,建立無人機(jī)和吊艙參考坐標(biāo)系與三維模型的直接對應(yīng)關(guān)系,通過改變對應(yīng)“空物體”的姿態(tài),實(shí)現(xiàn)無人機(jī)、吊艙模型姿態(tài)的變換,并在仿真環(huán)境中直觀地顯示出來。
利用Blender軟件中的“攝像機(jī)”模塊,使用其“鏡頭”中的“視野”定義視場角(這里設(shè)為45°),建立吊艙光電載荷的仿真視場,實(shí)現(xiàn)無人機(jī)姿態(tài)改變對吊艙光電載荷視場影響的仿真。
圖9為無人機(jī)姿態(tài)改變前后光電載荷的仿真視場。其中,圖9(a)對應(yīng)無人機(jī)方位角0°/俯仰角0°/橫滾角0°、吊艙方位角7°/俯仰角-1°的姿態(tài),圖9(b)對應(yīng)無人機(jī)方位角0°/俯仰角10°/橫滾角10°、吊艙方位角8°/俯仰角-9°的姿態(tài)。可以看出,由于無人機(jī)姿態(tài)發(fā)生改變,為了觀察相同的目標(biāo),需要調(diào)整吊艙的方位角和俯仰角,盡管可以把目標(biāo)放在視場中心,但由于吊艙沒有橫滾運(yùn)動補(bǔ)償,視場中的地平線有一些傾斜,需要進(jìn)行圖像消旋處理。
圖9 不同無人機(jī)和吊艙姿態(tài)下的光電載荷視場虛擬仿真
按照上述仿真模型定義的無人機(jī)和吊艙姿態(tài),使用編寫的MATLAB程序計(jì)算得到圖像旋轉(zhuǎn)角度為-11.16°。將模擬光電載荷視場的“攝像機(jī)”進(jìn)行繞橫滾軸-11.16°的“旋轉(zhuǎn)”操作,得到的消旋后視場如圖10所示??梢钥闯觯跖摲抡嬉晥鲋械牡仄骄€恢復(fù)水平,驗(yàn)證了本文建立的吊艙橫滾角計(jì)算模型和MATLAB計(jì)算程序的正確性。
圖10 圖像消旋后的視場
使用Blender軟件中的“測量”工具測量吊艙側(cè)軸方向與水平參考方向的夾角,如圖11所示,測得夾角為11.16°,與程序計(jì)算的結(jié)果一致,可以從另一角度驗(yàn)證本文建立的吊艙橫滾角計(jì)算模型和計(jì)算程序的正確性。
圖11 Blender軟件中的測角結(jié)果
本文通過建立吊艙視軸橫滾角計(jì)算的數(shù)學(xué)模型,編寫了視軸橫滾角計(jì)算程序,分析了圖像旋轉(zhuǎn)角與無人機(jī)和吊艙姿態(tài)角的對應(yīng)關(guān)系,使用三維軟件進(jìn)行了圖像消旋效果虛擬仿真,驗(yàn)證了數(shù)學(xué)模型和計(jì)算程序的正確性。將本程序集成到吊艙中,無需增加姿態(tài)傳感器就可以獲得消旋需要的圖像旋轉(zhuǎn)角度,可為圖像電子消旋提供必要的輸入?yún)?shù)。在實(shí)際應(yīng)用時,程序需要的輸入?yún)?shù)可以從無人機(jī)和吊艙獲得,其中無人機(jī)相對大地的姿態(tài)角從無人機(jī)的慣導(dǎo)系統(tǒng)(飛控)獲得,吊艙相對無人機(jī)的姿態(tài)角從吊艙的方位和俯仰測角傳感器(如磁編碼器、旋轉(zhuǎn)變壓器等)獲得,通過時間統(tǒng)一的姿態(tài)數(shù)據(jù)計(jì)算得到視軸橫滾角即圖像旋轉(zhuǎn)角,提供給吊艙中的圖像處理單元進(jìn)行處理,即可實(shí)現(xiàn)圖像的電子消旋。