馮書慶,徐志強(qiáng),王志勇,諶志新
(中國水產(chǎn)科學(xué)研究院漁業(yè)機(jī)械儀器研究所,上海 200092)
結(jié)合遠(yuǎn)洋漁船通導(dǎo)航行、捕撈吊裝等功能復(fù)加集成及作業(yè)品質(zhì)提升需要,漁船有關(guān)姿態(tài)導(dǎo)航參數(shù)展示管理及高效人機(jī)交互界面設(shè)計(jì)研究的需求愈發(fā)迫切[1-3]。此外,姿態(tài)導(dǎo)航信息界面及設(shè)備也是漁船未來自主航行系統(tǒng)及遠(yuǎn)程駕駛監(jiān)控系統(tǒng)信息采集和匯總控制的終端,是漁船管理智能化構(gòu)建的重要組成。目前船載姿態(tài)設(shè)備多配置機(jī)械重錘傾斜儀,功能單一且難以集成與控制。高端漁船雖配備了電羅經(jīng)、全球定位系統(tǒng)(GPS)等姿態(tài)、航向傳感器,但界面設(shè)計(jì)仍局限于由文字、儀表、箭頭等簡單元素分立組成,信息表述集成關(guān)聯(lián)度低、思維重構(gòu)強(qiáng)度大,實(shí)用性差。受多種因素制約,基于綜合圖形動態(tài)顯示的姿態(tài)描述界面,除特種艦艇外,普通漁船未有裝備。
借鑒航空多功能顯示器集成顯示理念,設(shè)計(jì)了一種圖形化漁船姿態(tài)導(dǎo)航多功能顯示器(Multi Function Display,MFD)界面,使用計(jì)算機(jī)圖形動態(tài)描述漁船導(dǎo)航參數(shù)信息、橫搖縱搖姿態(tài)參數(shù)信息等,實(shí)現(xiàn)漁船工況的綜合管理與高效人機(jī)交互,以支撐使用者快速掌控漁船整體狀態(tài)并完成準(zhǔn)確決策等。
漁船姿態(tài)信息常用展示界面多采用列表表述,使用者姿態(tài)重構(gòu)思維強(qiáng)度高,可視性不強(qiáng)。如:鮑云飛[4]提出了表格形式的姿態(tài)信息人機(jī)交互界面;岳大超等[5]、李晶等[6]開發(fā)了雙表盤儀表姿態(tài)信息圖例;王小蘭[7]在三維船體姿態(tài)模型的基礎(chǔ)上配有多個儀表盤信息展示。目前,飛機(jī)飛行顯示器利用“天地球”旋轉(zhuǎn)角度來描述飛機(jī)橫滾(橫搖)、用角度刻度平移來描述飛機(jī)俯仰(縱搖),其姿態(tài)即視性表述在搖擺環(huán)境下的人機(jī)交互功效好,能幫助駕駛?cè)藛T快速響應(yīng)與決策[8]。
借鑒航空MFD姿態(tài)描述形式[9-10],設(shè)計(jì)了一種姿態(tài)球船舶MFD界面描述方法(圖1)。使用姿態(tài)球的旋轉(zhuǎn)角度表征船舶橫搖、設(shè)計(jì)位于姿態(tài)球中間的刻度線偏移表征船體縱搖,使操縱者能快捷感受船舶搖擺姿態(tài),借助本能反應(yīng)來駕駛船舶。設(shè)計(jì)姿態(tài)球左右兩邊的滑動刻度來提示船行速度和船行加速度,展示更多船舶運(yùn)行信息等。
圖1 態(tài)界面示意圖
常用船舶轉(zhuǎn)向機(jī)構(gòu)由舵機(jī)舵葉組成,高機(jī)動能力要求的圍網(wǎng)漁船則裝配全回旋螺旋槳,實(shí)現(xiàn)船舶的推進(jìn)與轉(zhuǎn)向機(jī)動。舵角當(dāng)前位置、導(dǎo)航方位、船艏航向及變化趨勢等細(xì)節(jié)信息也有顯示需求(圖2),是漁船MFD界面需要研究的內(nèi)容。
圖2 導(dǎo)航界面示意圖
MFC基礎(chǔ)類庫、LabView、Lab Windows CVI等開發(fā)軟件封裝了數(shù)字、表盤及圖片等控件類,可以實(shí)現(xiàn)基本的貼圖控制操作,但其存在視口構(gòu)圖難、多圖層處理難等固有圖形運(yùn)算缺陷,不適用于復(fù)雜圖形界面的編制控制。黃曉雪[11]、李建海等[12]提出使用GL_Studio軟件進(jìn)行儀表控件編輯及描述代碼生成方案等,可產(chǎn)生供VC++ 、Vega Prime等框架應(yīng)用程序調(diào)用的儀表控件動態(tài)庫,但存在版權(quán)成本高、編程靈活性弱等缺點(diǎn)。
目前計(jì)算機(jī)圖形編程領(lǐng)域的主流工具為DirectX多媒體編程及OpenGL開放圖形庫接口編程等,其兩項(xiàng)基礎(chǔ)類庫都支持強(qiáng)大的三維圖形渲染和控制能力[13],在圖形學(xué)仿真等領(lǐng)域發(fā)揮了重大作用。上述工具使用具有入門難等缺點(diǎn),需要使用者具有扎實(shí)的編程基礎(chǔ)、掌握計(jì)算機(jī)圖形學(xué)相關(guān)知識等。
Lab Windows CVI集成了基本OpenGL類庫,具有一定的編程便利,選用該軟件工具開展基于OpenGL類庫的船舶MFD界面編制研究。計(jì)算機(jī)顯示圖形元素時,采用立體三維坐標(biāo)描述圖形在顯示空間的姿態(tài)位置,并以視圖及模型的概念表示視覺效果與空間描繪形狀。OpenGL圖形學(xué)中,使用局部空間、世界空間、觀察空間、裁剪空間、屏幕空間等概念,分別描述圖像繪制實(shí)體依存空間、構(gòu)圖空間、視覺空間,并通過裁剪空間、屏幕空間等的矩陣變換處理,實(shí)現(xiàn)最終圖形展示[14](圖3)。
圖3 圖形處理流程
計(jì)算機(jī)圖形學(xué)還提出了“攝像機(jī)”概念,使用“攝像機(jī)”描述視覺角度時,有時會用“歐拉角”來描述視角的俯仰(Pitch)、航向(Yaw)和橫滾(Roll),模型顯示視角及光照效果計(jì)算均以此為基礎(chǔ)[15]。
結(jié)合相關(guān)文獻(xiàn)[16],針對船舶MFD界面顯示內(nèi)容要求,基于面向?qū)ο笤O(shè)計(jì)思想,本文應(yīng)用視圖模型編程方法建立圖形處理流程、使用視口管理函數(shù)glViewport()和glOrtho()投影函數(shù)等構(gòu)建姿態(tài)管理區(qū)、速度尺管理區(qū)等顯示分區(qū),設(shè)立圖形描繪控制區(qū),增加代碼重用性。對象效果圖如姿態(tài)顯示視口區(qū)(圖4)、速度尺顯示視口區(qū)(圖5)所示。
圖4 姿態(tài)視口
圖5 速度尺視口
計(jì)算機(jī)圖形對象的描繪也借用了空間物體的點(diǎn)、線、面表述方法,對象模型的“邊”線表述由兩點(diǎn) “向量”表示,對象模型的“面”由3組(或多組)首尾相連的向量組表述,使用足夠小的“面”的組合集,可以使用計(jì)算機(jī)圖形擬合表述所有空間實(shí)體物體。
根據(jù)向量運(yùn)算知識,使用矩陣乘法可實(shí)現(xiàn)對向量、面及模型對象的空間旋轉(zhuǎn)、縮放和位移操作,達(dá)到圖形處理目的。
(1)
(2)
(3)
在空間坐標(biāo)系中,式(1)描述了模型對象繞軸旋轉(zhuǎn)的矩陣運(yùn)算操作,其中,θ為圖形旋轉(zhuǎn)的角度,x、y、z分別代表空間坐標(biāo)軸;式(2)描述了模型對象在坐標(biāo)系中的縮放矩陣運(yùn)算操作,其中,S1、S2、S3分別表示在坐標(biāo)系x、y、z軸上的縮放比例;式(3)描述了模型對象平移矩陣運(yùn)算操作,式中,Tx、Ty、Tz為對象在坐標(biāo)系x、y、z軸上的平移距離[17]。
基于模型對象控制理論,使用旋轉(zhuǎn)運(yùn)算函數(shù)glRotatef ()、縮放運(yùn)算函數(shù)glScalef ()及平移運(yùn)算函數(shù)glTranslatef(),分別實(shí)現(xiàn)了如姿態(tài)球的左旋、縱搖刻度的下移等表達(dá)目的,完成了數(shù)字字塊的大小控制,滿足圖形控制要求(圖6)。
圖6 圖形旋轉(zhuǎn)與平移
算法處理所定義的圖形空間變換處理為步驟連續(xù)的,若需要對對象實(shí)現(xiàn)多步驟的操作,應(yīng)注意步驟順序。例如,對對象先平移再旋轉(zhuǎn)與先旋轉(zhuǎn)再平移,其實(shí)現(xiàn)效果是不一樣的,在編程設(shè)計(jì)中應(yīng)予注意。
設(shè)定船舶MFD界面需要顯示漢字信息,而所使用的開發(fā)軟件并不支持漢字顯示功能,需要根據(jù)應(yīng)用情況進(jìn)行編碼處理和轉(zhuǎn)換[18]。參考文獻(xiàn)[19],使用wglUseFontBitmaps()函數(shù),將所需顯示的漢字文字以紋理貼圖轉(zhuǎn)換方法,構(gòu)建文字貼圖,進(jìn)行縮放處理,完成設(shè)計(jì)目標(biāo)。漢字顯示效果如圖4 姿態(tài)視口中的垂直速度、深度、航向、舵向等字符信息所示。
為提高船舶MFD界面的高效可讀性,依據(jù)船級社智能集成平臺檢驗(yàn)指南建議,考察常用用色習(xí)慣,對具有統(tǒng)一特性的文字和數(shù)據(jù)表示進(jìn)行用色設(shè)計(jì),規(guī)定用色見表1。
表1 船舶MFD界面用色優(yōu)選
軟件提供了色彩處理功能,向量著色運(yùn)算處理可使用顏色插值的方法,完成基于頂點(diǎn)顏色的中間漸變色渲染描繪。當(dāng)有視角及光照渲染需要時,平臺軟件可基于片元展示絢麗細(xì)膩的色彩表達(dá)。考察船舶MFD界面設(shè)計(jì)用色要求,不過多展開特效渲染研究,只進(jìn)行端點(diǎn)插值渲染。
所用軟件具有強(qiáng)大的三維圖形描繪與控制能力,復(fù)雜表述對象模型如游戲角色常采用建模工具如3D MAX、MAYA XSI軟件等完成,模型文件可如OBJ文件等。附加視角和光照計(jì)算,軟件渲染OBJ模型時,使用蒙皮及骨骼動畫技術(shù),可展示出栩栩如生的游戲角色[20]。另外一種對象模型繪制方法為實(shí)時動態(tài)繪制,其優(yōu)點(diǎn)是可實(shí)時改變模型內(nèi)容,實(shí)現(xiàn)界面調(diào)整。對象模型動態(tài)繪制的最大弊端是建模計(jì)算會占用CPU的資源,影響軟件執(zhí)行效率[21]。
研究了上述對象建模方法,結(jié)合各自優(yōu)劣,對姿態(tài)球?qū)ο蟛捎媒<皵?shù)據(jù)庫管理方式進(jìn)行數(shù)據(jù)管理和裝載,而對微調(diào)類數(shù)字等對象采用實(shí)時編制的方法實(shí)現(xiàn)繪制,兼顧了性能與效率。
使用軟件建模圖形對象時,算法僅確定了計(jì)算機(jī)所操作像素的顏色值,再加上計(jì)算機(jī)顯存低分辨率陣列模型的影響,實(shí)際在計(jì)算機(jī)屏幕空間計(jì)算并繪制模型斜線時,會有邊緣鋸齒現(xiàn)象發(fā)生(圖7),影響顯示效果。
圖7 鋸齒圖
為避免因建模原因產(chǎn)生的鋸齒噪點(diǎn),工程實(shí)現(xiàn)可采用增加虛擬像素點(diǎn)陣、提高圖形描繪分辨率的方法來彌消鋸齒現(xiàn)象,如超級采樣縮放抗鋸齒等相關(guān)技術(shù)[22]。與圖像處理技術(shù)中的鄰域平均平滑算法相類似[23],多重采樣抗鋸齒可通過鄰域像素的均值著色處理來進(jìn)行圖像鋸齒平滑??逛忼X處理涉及模型陣列擴(kuò)大運(yùn)算和像素插值運(yùn)算,會占用計(jì)算機(jī)CPU資源。船舶MFD界面繪制時,當(dāng)對對象元素?zé)o差別進(jìn)行抗鋸齒操作時,會大大占用計(jì)算機(jī)CPU運(yùn)行資源,造成電腦(試驗(yàn)電腦配置:I7-6500/8G內(nèi)存)運(yùn)行卡滯,影響程序數(shù)據(jù)處理的實(shí)時性。
摩爾紋是空間特定間隔的規(guī)則光線干涉疊加所產(chǎn)生的光線波紋現(xiàn)象[24],軟件建模圖形對象時,在參數(shù)選取合理情況下,一般不會發(fā)生圖形重繪乃至光線干涉,但在圖形密集繪制時,若無差別選用了抗鋸齒效果,計(jì)算機(jī)輔助算法將對所有密集圖形邊緣像素進(jìn)行抗鋸齒操作,造成相鄰圖形邊界的重繪,產(chǎn)生摩爾紋現(xiàn)象,如圖8中發(fā)散狀的水波紋簇,是圖形描繪時需要避免的地方。
為考察抗鋸齒算法對軟件運(yùn)行效率的影響及界面視覺體驗(yàn),本研究針對抗鋸齒處理優(yōu)化效果進(jìn)行了研究測試和調(diào)試。試驗(yàn)圖形繪制無差別抗鋸齒運(yùn)行時,觀測應(yīng)用軟件進(jìn)程占用CPU資源25%,觀察到界面有大量摩爾紋現(xiàn)象出現(xiàn);試驗(yàn)全部關(guān)閉抗鋸齒運(yùn)行時,觀測應(yīng)用軟件進(jìn)程占用CPU資源16%,觀察到界面圖形線條出現(xiàn)明顯鋸齒現(xiàn)象;試驗(yàn)可知抗鋸齒處理可增加應(yīng)用軟件56.3%的CPU資源占用率。
圖8 摩爾紋
在綜合考慮界面顯示效果和運(yùn)行效率的基礎(chǔ)上,本文采用對線條類對象繪制進(jìn)行抗鋸齒處理,對圖形類對象繪制只做基本描繪的方式渲染界面,保證了軟件運(yùn)行實(shí)時性,兼顧了顯示體驗(yàn)(圖6)。
船舶MFD垂直導(dǎo)航界面展示如圖9所示,畫面即時信息數(shù)據(jù)可解讀為:姿態(tài)橫搖右傾15°、縱搖下傾18°、航速1 154 m/h、垂蕩108 m/h、水深1 040 m等。垂直導(dǎo)航界面中,其他航向參數(shù)信息等以白標(biāo)綠色字符顯示,供必要時的專視讀取。
船舶MFD水平導(dǎo)航界面展示如圖10所示,畫面即時信息數(shù)據(jù)分別表示為:航向270°、舵向(相對)90°、導(dǎo)航方位180°等,圖中航向、舵向、導(dǎo)航臺方位角均以圖形運(yùn)動軌跡與安裝平臺隨動指示,界面清晰明了。
圖9 垂直導(dǎo)航界面
圖10 水平導(dǎo)航界面
為驗(yàn)證MFD界面關(guān)鍵圖形顯示部分與傳感信號的聯(lián)動表述效果,結(jié)合試驗(yàn)條件,選用北微SEC385三維電子羅盤傳感器[25]作為信號源在試驗(yàn)室內(nèi)對界面軟件開展了基礎(chǔ)測試工作。SEC385三維電子羅盤傳感器具有磁航向、俯仰及橫滾姿態(tài)角測量能力,測量分辨率為0.01°,測量精度航向信息不低于1°、俯仰及橫滾信息不低于0.1°,滿足界面測試需要。
依據(jù)技術(shù)文件,采用宇泰UT-850通訊電纜實(shí)現(xiàn)計(jì)算機(jī)USB口與電子羅盤的信號交聯(lián)、編制Modbus-RS485通訊協(xié)議,設(shè)計(jì)以計(jì)算機(jī)為主站、0.2 s周期數(shù)據(jù)交換的信令協(xié)議進(jìn)行聯(lián)調(diào)測試(圖11)。
圖11 聯(lián)調(diào)測試
測試結(jié)果顯示,與分立儀表或數(shù)據(jù)界面相比,當(dāng)前姿態(tài)導(dǎo)航圖形化界面中橫搖和縱搖信息均以圖形運(yùn)動軌跡指示且與安裝平臺隨動刷新,增加了信息獲取即視性、臨場感、沉浸感,具有高效信息表述能力;速度值、深度值、航向信息等以指示帶平移表示,在表述當(dāng)前參數(shù)值信息的同時,還隱含表述了信息變化的趨勢、速率等相關(guān)信息。
測試期間MFD界面軟件穩(wěn)定、流暢和清晰地接收并描述各信號實(shí)時數(shù)據(jù)信息、狀態(tài)變化等,軟件運(yùn)行可靠、魯棒性強(qiáng);在電子羅盤姿態(tài)隨機(jī)變化過程中,軟件界面姿態(tài)表述對于傳感器數(shù)據(jù)變化響應(yīng)無明顯延遲,證明界面軟件運(yùn)行效率高、信號跟隨實(shí)時性好,符合應(yīng)用要求。
為增加漁船姿態(tài)導(dǎo)航信息的綜合管理能力,綜合導(dǎo)航界面及漁船發(fā)動機(jī)參數(shù)告警信息顯示也有設(shè)計(jì)需要,但當(dāng)前軟件僅設(shè)計(jì)了垂直和水平導(dǎo)航兩款分界面,后續(xù)需要開展綜合姿態(tài)導(dǎo)航界面的研究工作。
使用姿態(tài)球的旋轉(zhuǎn)表征船舶橫搖、使用刻度線(帶)的偏移表征船體縱搖及速度等,信息表達(dá)相比列表格式更加清晰直觀,信息容量大,交互功效好;界面使用羅盤及舵角方位的方式描述漁船航向及舵角指向,信息表述全面形象,實(shí)用性好。針對界面繪制產(chǎn)生的鋸齒問題,對圖形描繪抗鋸齒處理、摩爾紋產(chǎn)生條件及軟件運(yùn)行效率開展了測試:試驗(yàn)無差別抗鋸齒運(yùn)行時,觀測應(yīng)用軟件進(jìn)程占用CPU資源25%、觀察到界面有大量摩爾紋現(xiàn)象出現(xiàn);試驗(yàn)全部關(guān)閉抗鋸齒運(yùn)行時,觀測應(yīng)用軟件進(jìn)程占用CPU資源16%,觀察到界面圖形線條出現(xiàn)明顯鋸齒現(xiàn)象,抗鋸齒處理可增加應(yīng)用軟件56.3%的CPU資源占用率。本研究采用線條抗鋸齒描繪、圖元直接描繪的方法繪制界面,保證了軟件運(yùn)行速度,兼顧了界面體驗(yàn),使用效果好;設(shè)計(jì)了姿態(tài)球?qū)ο箢A(yù)建模及數(shù)據(jù)庫裝載的方式管理復(fù)雜對象描繪,減少了計(jì)算機(jī)運(yùn)行時的建模計(jì)算量,提升了軟件運(yùn)行效率,增強(qiáng)了軟件運(yùn)行的硬件適應(yīng)性。