魏高樂,高 進(jìn),牛和明,陳朝暉
(北京控制工程研究所,北京100094)
雙目視覺敏感器的高可靠數(shù)據(jù)流設(shè)計
魏高樂,高 進(jìn),牛和明,陳朝暉
(北京控制工程研究所,北京100094)
首先介紹了兩機(jī)結(jié)構(gòu)的航天器雙目視覺敏感器(BVS),分析了其通信數(shù)據(jù)流。針對其內(nèi)部串口、外部總線通信特性以及BVS特殊運(yùn)行流程,對數(shù)據(jù)流進(jìn)行了整合、優(yōu)化,確保敏感器的高數(shù)據(jù)更新率可行性。同時針對復(fù)雜通信數(shù)據(jù)沖突問題,對BVS兩個計算機(jī)嵌入式軟件的流程進(jìn)行了可靠性改進(jìn)。實(shí)驗結(jié)果證明,該方法能夠確保BVS的長期穩(wěn)定運(yùn)行,實(shí)現(xiàn)了兩套普通單目相機(jī)敏感器硬件不變的情況下,僅通過一個串口連接,搭建雙目相機(jī)。該方法已用于在軌實(shí)驗中,并可應(yīng)用于后續(xù)所有航天器在軌雙目圖像實(shí)驗任務(wù)中。
BVS;數(shù)據(jù)沖突;數(shù)據(jù)流;嵌入式軟件
雙目視覺導(dǎo)航敏感器BVS逐漸成為各國航天最新領(lǐng)域的研制熱點(diǎn)。雙目立體視覺是由不同位置的兩臺或者一臺攝像機(jī)經(jīng)過移動或旋轉(zhuǎn)拍攝同一幅場景,通過各種算法匹配出相應(yīng)像點(diǎn),從而計算出視差,然后基于三角測量原理恢復(fù)深度(距離)信息[1-2]。與單攝像機(jī)的情況相比較,利用雙攝像機(jī)定位時,每個特征點(diǎn)都可以得到其唯一確定的位置坐標(biāo)。由于線性方程存在解析解,故無需迭代運(yùn)算。因此,立體視覺的模型要優(yōu)于單攝像機(jī)的模型[3]。
然而,BVS的硬件結(jié)構(gòu)比單目成像的敏感器復(fù)雜,且單目成像類敏感器起步較早,已成熟應(yīng)用于在軌拍攝[4-5]、星敏感器定姿[6]、交會對接[7-8]等多項空間探索實(shí)驗中,成為航天器的重要有效載荷[9]。本文基于單目成像敏感器的成熟硬件,使用通信串口連接兩個單目成像敏感器搭建BVS,即每個探頭后各有一個計算機(jī),共同實(shí)現(xiàn)雙目視覺。
此種結(jié)構(gòu)設(shè)計的優(yōu)勢在于其硬件結(jié)構(gòu)簡單,使用兩臺普通星敏感器或交會對接成像敏感器(CRDS)硬件即可搭建,無需重新設(shè)計、調(diào)試硬件單機(jī),然而該設(shè)計對串口的數(shù)據(jù)流要求較高。本文通過左右相機(jī)之間數(shù)據(jù)流的合理設(shè)計,保證了左右相機(jī)配合進(jìn)行雙目圖像處理,并實(shí)現(xiàn)了上位機(jī)或地面測試設(shè)備對BVS的遙控通信功能。
本文所探討的兩機(jī)BVS組成結(jié)構(gòu)與單機(jī)BVS對比如圖1所示,兩機(jī)結(jié)構(gòu)的兩個單目相機(jī)通過串口相連,左右探頭后連著各自的計算機(jī),運(yùn)行各自的嵌入式軟件。主相機(jī)計算機(jī)實(shí)時處理左探頭圖像,輔相機(jī)計算機(jī)處理右探頭圖像。主相機(jī)計算機(jī)通過總線與中央管理單元(CMU)相連,主輔相機(jī)之間通過串口相連。
圖1 BVS的單機(jī)結(jié)構(gòu)與兩機(jī)結(jié)構(gòu)Fig.1 Comparison between construction of BVS with one and two CPU
BVS的工作流程如圖2所示,嵌入式軟件每個周期從圖像拍攝完成開始[10]。單機(jī)BVS軟件流程簡單,新圖像到來后分別針對左右圖像進(jìn)行預(yù)處理,并將結(jié)果用于雙目運(yùn)算;而兩機(jī)BVS的左右相機(jī)嵌入式軟件需要分別針對各自圖像完成預(yù)處理后,輔助相機(jī)通過串口將計算結(jié)果發(fā)送給主相機(jī),主相機(jī)再根據(jù)兩側(cè)圖像預(yù)處理結(jié)果進(jìn)行雙目圖像處理計算。
主計算機(jī)與CMU由總線相連,作為BVS與外界的唯一鏈路接口,擔(dān)負(fù)著接收CMU遙控指令和發(fā)送BVS遙測數(shù)據(jù)的任務(wù)。BVS作為CMU的下位機(jī),通過遙控指令中斷接收遙控指令,通過勤務(wù)指令中斷更新遙測數(shù)據(jù)。其數(shù)據(jù)流設(shè)計及實(shí)現(xiàn)流程如圖3所示。
圖2 單機(jī)與兩機(jī)BVS的運(yùn)行流程Fig.2 Comparison between flowcharts of BVS with one and two CPU
圖3 主計算機(jī)與CMU的數(shù)據(jù)流實(shí)現(xiàn)Fig.3 Implementation of data flow between main computer and CMU
兩機(jī)獲取圖像后,分別完成圖像預(yù)處理操作??刂朴蚁鄼C(jī)的輔計算機(jī)作為控制左相機(jī)的主計算機(jī)的下位機(jī),響應(yīng)左相機(jī)的串口中斷,將預(yù)處理結(jié)果發(fā)送給左相機(jī),左相機(jī)利用左右兩個相機(jī)圖像預(yù)處理結(jié)果進(jìn)行雙目圖像運(yùn)算。完成計算后,利用計算結(jié)果調(diào)整下周期的算法參數(shù),通過串口將參數(shù)發(fā)送給右相機(jī),實(shí)現(xiàn)雙機(jī)算法同步。
為保證雙機(jī)星時同步,左相機(jī)每個周期向右相機(jī)發(fā)送星時校時指令。同時,作為與CMU通信的中端接口,主計算機(jī)負(fù)責(zé)轉(zhuǎn)發(fā)右相機(jī)的遙控指令和遙測數(shù)據(jù)。BVS兩機(jī)之間內(nèi)部串口的數(shù)據(jù)流如圖4所示,為保證正常的雙目圖像測算,內(nèi)部串口每個周期最多要實(shí)現(xiàn)7次數(shù)據(jù)通信操作。如表1所示,輔助計算機(jī)中斷異常頻繁,算法流程混亂,每個周期耗時過大。出于圖像類敏感器的時間特性,軟件耗時大于兩圖的拍攝間隙時,會出現(xiàn)測算結(jié)果漏數(shù)。
圖4 BVS內(nèi)部串口每周期數(shù)據(jù)流實(shí)現(xiàn)Fig.4 Implementation of data between main computerand assistant computer on port
表1 內(nèi)部通信時機(jī)分析表Table 1 Occasion of data communication on port inside BVS
將圖3、圖4所描述的軟件流程進(jìn)行圖像仿真測試,多次實(shí)驗曲線如圖5所示。結(jié)果可知,敏感器每周期計算均超時,無法建立圖像跟蹤并連續(xù)輸出結(jié)果。且隨著目標(biāo)接近,動態(tài)圖像光點(diǎn)位置變化加快,捕獲成功更加困難。第40~80周期中,CMU持續(xù)發(fā)出對輔助相機(jī)的遙控指令,搶占了更多運(yùn)行時間,并且引入數(shù)據(jù)沖突風(fēng)險,造成雙目無法正常識別,且輔助相機(jī)未成功響應(yīng)遙控指令。
測算過程必須進(jìn)行合理優(yōu)化。
圖5 仿真實(shí)驗測算相對距離及測算耗時Fig.5 Curve of result and time consume from simulation
基于通信時機(jī),對表1中的7次通信進(jìn)行2處整合:
1)將校時指令復(fù)用為預(yù)處理數(shù)據(jù)取數(shù)指令,輔助相機(jī)接收到校時中斷,先響應(yīng)校時后,直接發(fā)送預(yù)處理數(shù)據(jù);
2)將算法同步參數(shù)復(fù)用為輔相機(jī)遙測數(shù)據(jù)取數(shù)指令,輔助相機(jī)在中斷中接收到參數(shù)后,直接發(fā)送遙測數(shù)據(jù)。
通過以上整合優(yōu)化,輔助相機(jī)計算機(jī)在一個周期內(nèi),通信次數(shù)縮短為5次,中斷整合為最多3次。輔助相機(jī)串口中斷服務(wù)程序流程如圖6所示,較圖 4(b)大大簡化。
整合后,主計算機(jī)每個周期在任務(wù)中固定向輔助計算機(jī)發(fā)起兩次通信。為避免內(nèi)部串口通信被總線中斷打斷,引發(fā)數(shù)據(jù)沖突錯誤,主計算機(jī)在任務(wù)中每次發(fā)起內(nèi)部通信前將外部中斷禁能并掛起,在完成內(nèi)部通信操作后再重新使能外部中斷。
圖6 改進(jìn)后的輔相機(jī)計算機(jī)串口中斷流程Fig.6 Flowchart of port interrupt in assistant computer after improved
輔計算機(jī)每個運(yùn)行周期響應(yīng)兩次內(nèi)部串口中斷,并在中斷中回復(fù)相關(guān)數(shù)據(jù)。為避免數(shù)據(jù)打包過程中取數(shù)中斷,出現(xiàn)通信數(shù)據(jù)錯誤,輔計算機(jī)在每個周期打包遙測數(shù)據(jù)前禁能、掛起內(nèi)部串口中斷,在打包完成后重新使能串口中斷。
改進(jìn)后的流程如圖7所示。
對改進(jìn)后的軟件進(jìn)行仿真實(shí)驗,BVS實(shí)驗的目標(biāo)相對距離測算結(jié)果和每個周期的總耗時曲線如圖8所示。
由圖8可知,改進(jìn)后的BVS能夠在一個周期內(nèi)完成測算并輸出結(jié)果,成功建立對目標(biāo)的雙目跟蹤。在第40~70周期中,測試設(shè)備仿真CMU連續(xù)向BVS發(fā)送輔助相機(jī)取數(shù)、內(nèi)存下傳指令,故在此30個周期,軟件的每個周期耗時有所增加,但圖像跟蹤始終保持正常。實(shí)驗中所有數(shù)據(jù)下傳正確,測算結(jié)果無誤且無漏數(shù),說明雖然總線遙控令增加了耗時,但未出現(xiàn)數(shù)據(jù)沖突且耗時未達(dá)到運(yùn)行周期上線,確保了BVS的正常測算功能。
實(shí)驗結(jié)果表明,這種分別針對主、輔計算機(jī)設(shè)計的高可靠雙目視覺敏感器數(shù)據(jù)流能夠有效實(shí)現(xiàn)BVS的長期穩(wěn)定運(yùn)行,在確保雙目測算功能的同時,并能安全規(guī)避數(shù)據(jù)訪問沖突,實(shí)現(xiàn)對CMU遙控指令的響應(yīng)和反饋。
圖7 流程可靠性改進(jìn)Fig.7 Reliability improvement of flowchart
圖8 改進(jìn)后的仿真測試曲線Fig.8 Curve of simulate test after improved
文章針對兩機(jī)結(jié)構(gòu)的BVS的內(nèi)部串口、外部總線通信的特性,以及該系統(tǒng)的運(yùn)行流程對敏感器數(shù)據(jù)流進(jìn)行了系統(tǒng)的整合、優(yōu)化,確保了敏感器高數(shù)據(jù)更新率的可行性。同時針對復(fù)雜通信數(shù)據(jù)沖突問題,對BVS兩個計算機(jī)嵌入式軟件的流程進(jìn)行了可靠性改進(jìn)。
該方法實(shí)現(xiàn)簡單,僅通過軟件層面的改進(jìn)設(shè)計,實(shí)現(xiàn)了兩臺單目成像敏感器通過一個串口成功搭建雙目成像敏感器。該方法已應(yīng)用于某型號的在軌實(shí)驗,并可應(yīng)用于后續(xù)所有航天器在軌雙目圖像實(shí)驗任務(wù)中。
[1]周星,高志軍.立體視覺技術(shù)的應(yīng)用與發(fā)展[J].工程圖學(xué)學(xué)報,2010,31(4): 50-55.ZHOU Xing,GAO Zhi-jun.Application and future development of stereo vision technology[J].Journal of Engineering Graphics,2010,31(4): 50-55.
[2]杜曉東,高學(xué)海,徐文福,等.基于雙目視覺的空間近距離交會半物理仿真系統(tǒng)[J].儀器儀表學(xué)報,2014,35(6): 1282-1291.DU Xiao-dong,GAO Xue-hai,XU Wen-fu,et al.Semiphysical simulation system for close-range rendezvous based on binocular vision[J].Chinese Journal of Scientific Instrument,2014,35(6): 1282-1291.
[3]張慶軍,胡修林,葉斌,等.基于雙目視覺的航天器間相對位置和姿態(tài)的測量方法[J].宇航學(xué)報,2008,29(1): 156-161.ZHANG Qing-jun,HU Xiu-lin,YE Bin,et al.Binocular vision-based relative position and attitude determination between spacecrafts[J].Journal of Astronautics,2008,29(1): 156-161.
[4]趙葆常,李春來,黃江川,等.嫦娥二號月球衛(wèi)星CCD立體相機(jī)在軌圖像分析[J].航天器工程,2012,21(5): 1-7.ZHAO Bao-chang,LI Chun-lai,HUANG Jiang-chuan,et al.Analysis on in-orbit CCD stereo camera images of Chang'e-2 lunar satellite[J].Spacecraft Engineering,2012,21(5): 1-7.
[5]Shi D L,Ye P J,Jia Y,et al.Research on lunar rover locating method based on lander stereo vision[J].Spacecraft Engineering,2007,16(6): 25-32.
[6]王海涌,趙彥武,周明遠(yuǎn).基于精密時間的星敏感器絕對姿態(tài)基準(zhǔn)的建立[J].空間控制技術(shù)與應(yīng)用,2013,39(6): 6-11.WANG Hai-yong,ZHAO Yan-wu,ZHOU Ming-yuan.Construction of attitude reference benchmark of star sensor based on precise timing[J].Aerospace Control and Application,2013,39(6): 6-11.
[7]張昊,石磊,涂俊峰,等.基于交會對接CCD光學(xué)成像敏感器的雙目測量算法[J].空間控制技術(shù)與應(yīng)用,2011,37(6): 66-71.ZHANG Hao,SHI Lei,TU Jun-feng,et al.A CCD optical sensor based new binocular vision measurement algorithm for rendezvous and docking[J].Aerospace Control and Application,2011,37(6): 66-71.
[8]趙春暉,高文文,劉魯,等.神舟八號飛船交會對接CCD光學(xué)成像敏感器[J].空間控制技術(shù)與應(yīng)用,2011,37(6): 6-13.ZHAO Chun-hui,GAO Wen-wen,LIU Lu,et al.A vision guidance sensor for Shenzhou-8 spacecraft autonomous rendezvous and docking[J].Aerospace Control and Application,2011,37(6): 6-13.
[9]鄒昕,鄧湘金,張熇,等.月球探測器成像觀測任務(wù)設(shè)計與驗證[J].航天器工程,2015,24(5): 14-22.ZOU Xin,DENG Xiang-jin,ZHANG He,et al.Design and verification for imaging observation task of lunar explorer[J].Spacecraft Engineering,2015,24(5): 14-22.
[10]魏高樂,高進(jìn),陳朝暉.交會對接成像敏感器的光點(diǎn)篩選 改 進(jìn)[J].飛 行 器 測 控 學(xué) 報,2016,35(4):270-275.WEI Gao-le,GAO Jin,CHEN Zhao-hui.Improvement of spot screening in rendezvous and docking image sensors[J].Journal of Spacecraft TT& C Technology,2016,35(4): 270-275.
Design of High Reliability Data Flow for Binocular Vision Sensor
WEI Gao-le,GAO Jin,NIU He-ming,CHEN Zhao-hui
(Beijing Institute of Control Engineering,Beijing 100094)
The construction of binocular vision sensor(BVS)with two CPU is introduced at first,and the data flow of which is analyzed.The characteristics of data communication through the inner port and the outer bus were focused on to integrate and optimize the data flow in BVS in order to ensure the feasibility of high data update rate.Considering the problem of data conflict within the process of complex communication,the flowcharts of embedded software in both two CPUs of BVS were also improved for high reliability.The result of experiment shows that the method could ensure the long term stable operation of BVS,and realize the combination of BVS by two single camera sensors with a port.The method has been used on-orbit and could be used in every space exploration test task of BVS in future.
BVS;data conflict;data flow;embedded software
V445.8/TP391.41
A
1674-5558(2017)03-01383
10.3969/j.issn.1674-5558.2017.06.009
2017-03-28
魏高樂,男,工程師,研究方向為星(船)載嵌入式軟件、圖像處理和模式識別。