華寶成,李 濤,劉 洋,張依諾,王 立
(北京控制工程研究所,北京 100094)
2020年7月23日,天問一號探測器由長征5號遙四火箭在海南文昌成功發(fā)射。歷時202天后,天問一號于2021年2月10日與火星交會,并成功實施捕獲制動進入環(huán)火軌道,成為我國第一顆人造火星衛(wèi)星。2021年5月11日,天問一號著陸巡視器與環(huán)繞器分離,成功在火星烏托邦平原南部軟著陸,并于次日釋放“祝融號”火星車,正式開始了在軌測試與巡視探測任務。天問一號的成功著陸邁出了我國火星探測的第一步,使中國成為世界上第三個實現(xiàn)火星著陸探測的國家,是我國航天事業(yè)發(fā)展的又一個重要里程碑。
火星上常見的地形特征包括沙丘、火山、隕坑、巖石、斷層、斜坡等,它們構成了天問一號著陸器著陸火星的“潛在威脅”。因此,著陸器想要實現(xiàn)自主安全著陸,就必須具備實時、快速、準確的障礙識別與規(guī)避的能力。美國國家航空航天局(National Aeronautics and Space Administration,NASA)于2011年發(fā)射的火星科學實驗室(Mars Science Laboratory,MSL)使用地形相對導航(Terrain relative navigation,TRN)有針對性地避開從軌道觀測中已知的大型障礙(例如直徑為100~200 m的隕石坑)。但該方法難以進行小型障礙檢測,一方面因為在較高軌道下實現(xiàn)亞米級障礙識別對敏感器的角分辨率有著極高的要求;另一方面,地形相對導航期間航天器頻繁的姿態(tài)變化使得敏感器難以獲取高信噪比(Signal-noise ratio,SNR)的地形圖像,從而帶來障礙識別誤差。2013年12月,中國發(fā)射的“嫦娥3號”(Chang’E-3,CE-3)探測器利用單目圖像避障方法成功著陸月球,該方法基于圖像灰度和紋理進行障礙識別與分析,并確定安全著陸點位置。然而,單目圖像只具備二維信息,坡度、巖石高度等特征依然難以識別。所以,要想實現(xiàn)更高精度的障礙識別,提升障礙規(guī)避的可靠度,還需要獲取地表的高程信息。
地表高程通常可以使用兩種方式獲?。汗鈱W成像敏感器和基于激光雷達(Lidar)或雷達(Radar)的主動光學成像敏感器。主動光學成像敏感器可直接測量地表的高度信息,且不受光照、大氣等條件的影響,但相較于光學成像敏感器具有成本高、質量大、功耗大、體積大、視場小等缺點。而光學成像敏感器不能直接獲取高程,需要對圖像進行三維重建。光學圖像的三維建模方法主要包括雙目視覺(Stereo-vision,SV)、基于陰影的形狀重建(Shape from shading,SFS)和基于運動的結構重建(Structure from motion,SFM)。其中,雙目立體視覺一直是立體視覺領域的重要研究對象,在導航、航天測控等領域有廣泛的應用前景。例如,美國航空航天學會(AIAA)對雙目立體視覺算法進行了研究與優(yōu)化,進一步驗證了雙目避障的有效性;美國噴氣推進實驗室(JPL)也利用雙目立體視覺進行地面斜坡檢測、巖石檢測;歐空局在“漫游者”號SPARTAN自主導航中就使用了雙目立體視覺算法。近年來,國內也逐步開展了雙目立體視覺在相對導航與避障方向的研究。但目前國際上尚未有實現(xiàn)雙目避障技術在行星著陸任務中應用的實例。同時,著陸過程中發(fā)動機點火振動導致雙目參數變化帶來的匹配誤差也是亟待解決的難題。
此外,由于雙目視覺立體匹配算法計算復雜性高、數據量大,無法滿足實時性要求。為了提高雙目計算視差和三維信息的速度,雙目算法也逐步實現(xiàn)了硬件化實現(xiàn)。因此,針對火星表面環(huán)境與著陸特點,天問一號設計了現(xiàn)場可編程門陣列(FPGA)和應用軟件結合的雙目視覺避障系統(tǒng)。本文對雙目視覺避障系統(tǒng)進行詳細說明,并對結果進行分析與評價。
本文選用FPGA作為硬件加速平臺,通過功能模塊的并行化和流水線化,實現(xiàn)實時雙目視覺立體匹配算法。同時,采用大基線雙目自然場景在軌自標定技術,解決火星進入艙主發(fā)動機點火振動導致雙目參數變化的難題。通過圖像障礙識別和雙目立體地形感知完成天問一號降落過程中的安全著陸點自動選取。系統(tǒng)流程如圖1所示。
圖1 雙目視覺避障系統(tǒng)流程圖
1)雙目相機
天問一號雙目相機由多功能避障敏感器光學成像模塊和光學避障敏感器構成,相機參數見表1,兩臺相機的基線為2.8 m。
表1 敏感器參數
2)圖像處理板
進入下降控制單元EDCU內的圖像處理板用于雙目數據處理及安全點選擇,系統(tǒng)采用Xilinx V4 FPGA+SPARC V8處理器架構,處理器主頻75 MHz,存儲器資源SRAM 4MB×4,程序存儲器512 KB,F(xiàn)PGA工作頻率為50 MHz。
3)應用軟件
應用軟件的核心為避障算法,主要功能包括:數據規(guī)范化,完成陣列式數據的計算、抽取、重采樣;區(qū)域規(guī)范化,完成DEM數據網格化地形區(qū)域劃分;紋理與障礙識別,進行坡度擬合、高度計算、安全概率計算等;安全點計算,根據區(qū)域安全概率排序并輸出。
雙目立體視覺利用視差原理獲取場景的三維信息,一般應用在近距離,如不超過10 m。在深空著陸任務中需要在百米左右高度上進行地形障礙檢測,因此雙目視覺避障系統(tǒng)需要解決遠距離高精度立體恢復的難題。此外,還需解決飛行器快速下降過程中的雙目匹配的高速處理。
天問一號雙目避障視覺系統(tǒng)在100 m高度附近對拍攝的雙目火星表面圖像進行匹配,通過采用高分辨率相機、亞像素視差計算方法提高遠距離立體恢復精度。為了克服由此帶來的計算量難題,采用硬件化加速方法實現(xiàn)雙目匹配的并行處理,流程示意圖如圖2所示。
圖2 雙目視覺硬件化流程
1)極線對正
為實現(xiàn)極線對正的硬件化并行處理,采用查表法進行處理,在圖像數據讀取過程中完成極線對正工作。首先依據雙目標定參數計算極線對正參數,以左相機光心為原心,基線方向為X方向建立虛擬坐標系(右手系),通過相機安裝的旋轉矩陣將左右相機的像面坐標系均轉換到虛擬坐標系下,得到新的左右相機的像面坐標。為了避免對正后得到的新圖像出現(xiàn)空洞的問題,本文采取反投影的方式計算新圖像坐標。極線對正參數以表格形式預存到FPGA內部。為節(jié)省資源,將極線對正表進行稀疏處理,綜合考慮對正效果和資源開銷,選擇64×64的稀疏對正表。
FPGA內部存儲了極線對正參數表格,極線對正參數表格存儲了待處理的原始圖和對正結果之間的位置對應關系。表中存儲(,)和原始圖′(′,′)的差異。不過對正表格只存儲了對正后圖間隔32行列(第一個位置間隔為31)的位置的對應關系,行列位置為0,31,63,…,2047位置的對應關系,其他位置的對應關系需要經過計算得到。其中代表列數,代表行數。
對于對正后的圖中某個任意位置(,)來講,其在原始圖中的對應關系可以由下面公式得到:
(1)
式中:′,′分別為原圖位置的列數與行數。若′,′不為整數,則找到其周圍的四個位置存儲的值,,和(圖3),每個位置存儲了行和列的差值,通過雙線性插值計算對應原圖中的位置(′,′)與對應的灰度值。
圖3 FPGA存儲示意圖
2)Census變換
針對由于光照不均勻帶來的灰度變化問題,Census變換有一定的修正作用。它通過比較像素(,)與其周圍方形窗口內的像素的灰度值大小得到。為了降低計算成本和減少存儲空間占用,本文采用稀疏Census變換方法,僅選擇像素(,)和它周圍上下左右各7行7列15×15的方形窗口內的8個像素值的大小來計算得到(圖4),其變換公式為:
圖4 稀疏Census模板
(2)
式中:為給定像素的灰度值,為中心像素,′為被比較像素。這些比較的結果組成了一個簡單的Census比特向量。
當極線對正數據流累積完成15×15鄰域的局部窗口處理后開展Census變換處理,兩個處理模塊以流水線方式運行。受限于FPGA內部資源,完成Census變換后的圖像數據(左右圖)將被緩存到SRAM中。
3)雙目匹配
雙目匹配模塊從SRAM中讀取左右圖像Census變換后的圖像編碼數據進行雙目匹配。
本文采用基于區(qū)域的代價計算實現(xiàn)雙目圖像匹配,它是利用局部窗口內的漢明距離來進行代價計算,代價計算方法為:
(3)
(4)
式中:()為在視差下的匹配代價。
將FPGA計算得到的視差作為輸入。匹配模塊工作時,將左圖、右圖SRAM上的圖像數據讀入FPGA內部的存儲區(qū),當讀入的數目到達27行時開始進行匹配操作。取左圖中一個27×27小塊,中心為(,),在右圖的一個范圍內進行匹配,范圍為:
(,+)~(,+)
(5)
式中:為最小視差,為最大視差。在匹配過程中,對于左圖只對偶數列(注:其中偶數列是指0,2,4,…,2046,圖像范圍為0~2047)的像素值進行匹配計算,匹配時在右圖上進行逐像素查找最佳匹配位置,得到最佳的匹配位置和其左右的代價值,進行亞像素差值后得到其視差值,將其存儲在SRAM上。
由于經過亞像素插值后的視差值將出現(xiàn)小數部分,因此存儲時整數部分存儲于偶數列像素的位置,小數部分存儲于后面的一個像素位置,兩個位置共同形成一個16位的定點數,用于存儲視差值。則當前位置的視差值為:
(6)
式中:為視差整數部分,為視差小數部分。
4)高度計算
根據視差原理,求得像點高程為:
(7)
式中:為相機焦距,為基線長度,為由式(4)得到的亞像素視差。
1)圖像障礙識別
灰度與紋理障礙識別繼承CE-3的單目光學粗避障算法,主要分為灰度避障和紋理避障兩部分?;叶缺苷系膬热轂楸荛_圖像中過亮和過暗的區(qū)域,原因是在低太陽高度角下,迎光面將出現(xiàn)高亮區(qū)域,而被光面出現(xiàn)陰影,即像面上的過暗區(qū)域;紋理避障的原理為不同材料和表面構型將出現(xiàn)灰度范圍分布較大的情況。具體算法參見文獻[14]。
2)坡度擬合與粗糙度計算
從每個5×5網格中抽取7×7個點進行高度擬合、坡度擬合。在等間隔取點的前提下,由于視差只有偶數列對應的結果,則對每個點的選取,取以當前點為中心、9×9鄰域內~這25個點高程值的均值作為該點的高程值。具體方法參見文獻[15]。
3)著陸安全度評估
結合圖像障礙識別結果,將坡度擬合后的絕對值向上取整,并依次選取最優(yōu)的五點順序實施坡度判斷,若坡度大于7°則設定為障礙網格(安全概率為0),若坡度在7°范圍內,則認為是安全著陸點,并輸出安全坐標。
雙目匹配過程中,極線對正的精度直接影響著視差的計算。極線對正的誤差會直接帶來高程和坡度計算的誤差。所以,天問一號雙目避障系統(tǒng)設計了在軌自標定,對極線對正的結果進行修正,進一步提升避障精度。在軌自標定流程如圖5所示。
圖5 在軌自標定示意圖
1)匹配范圍計算
根據光軸距火面的斜距計算左右圖像的匹配范圍,計算方法如下:
(8)
式中:||表示基線向量的模,為相機焦距,表示像面上每個像素的大小,為光軸距火面的斜距。所以,匹配范圍為[,]。
2)左右圖像塊匹配
首先對左右圖像分別進行稀疏Census變換。原理和流程同1.2中的Census變換方法。在左圖像9個固定位置取圖像塊,然后在右圖像一定范圍內尋找最佳匹配。每個位置取27×27小塊相減并求絕對值之和,作為本位置的代價值,并得到代價最小的位置。代價計算是利用像素的灰度信息來進行代價計算,代價計算方法為:
(9)
式中:()表示右圖中(,)位置在列視差和行視差下的匹配代價,和分別為左圖與右圖的像素灰度值。尋找可以得到代價最小的位置,依次記錄9個位置的行數變化量Δ。
3)擬合標定直線方程
利用線性擬合方法,對第二步中的9個位置與各位置得到的變化量擬合修正標定參數。首先將9個位置的變化量Δ作為擬合的輸入,通過線性擬合方程得到9個位置以及對應的變化量Δ。若滿足:
(10)
++=Δ
(11)
式中:,和為修正參數。
4)修改雙目參數表
針對極線對正后得到的極線對正參數表格,利用上一步得到的修正標定參數計算表格中每個點的修正量,在表格中每個點加入修正量,存入新的表格的對應位置。最后表格中的數值轉換為FPGA定點數,存入原有地址中。
為了確保雙目視覺避障系統(tǒng)的有效性與性能,試驗驗證工作于2019年9月在河北省張家口市懷來縣的地外天體著陸試驗場開展。地內障礙設置為三種:巖石、隕坑、斜坡。在測試之前先對雙目相機進行標定,解算相機之間的精確關系,修改星上軟件雙目匹配輸入參數。標定完成后開始進行懸停實驗。
首先針對較為平坦的地形進行試驗。在區(qū)域內設置20 m×20 m的預設安全區(qū),如圖6虛線方框所示。由于安裝關系,相機坐標系與著陸場坐標系有一定夾角。預設安全區(qū)域中心坐標為[70,0,0],單位為m。經過雙目避障與星上解算得到的安全點坐標為[70.32,0.83,0.75],單位為m。實測安全點矢量為[0.0518,-0.086,0.9949]。實驗表明,星上解算安全點與預設安全點的水平偏差在1 m以內。雙目避障系統(tǒng)具有很高的解算精度。
圖6 安全區(qū)示意圖
此外,本文針對斜坡地形也進行了實驗,斜坡坡度為6°。經過雙目立體匹配得到的地面三維圖如圖7所示。同時,為了評價三維建模的精度,我們也用高精度的激光掃描儀對該區(qū)域進行了精密測量,并生成DEM。我們將其作為真實DEM與雙目立體恢復的DEM進行定量比較,得到立體視覺成像的精度為6.4 cm@70 m。坡度擬合得到的坡度結果為6.5°,解算時間不超過2 s。
圖7 雙目避障結果
2021年5月11日天問一號成功著陸火星后,于2021年5月19日下傳回了第一張火星降落圖像,經地面圖像配準后,得到該圖像的拍攝時刻對應的實際地面高度約為197 m。這時著陸器在懸停前開展了雙目在軌標定,下傳圖像中有此圖像在軌標定過程中產生的中間編碼圖像。雙目在軌標定圖像,進行了硬件化極線對正和增強編碼,應用軟件完成了在軌自標定。由于該圖像與激光圖像復用存儲器,傳回圖片如圖8所示,其中圖像上方深色部分為激光三維數據。根據在軌遙測信息,天問一號成功完成了在軌自標定。
圖8 在軌標定圖像(census變換圖)
此外,在天問一號的下傳圖像中,30 m以下的圖像可見明顯的揚塵現(xiàn)象(圖9)。本文利用雙目立體匹配分別對30 m、15 m和9 m的三組圖像進行立體恢復,結果如圖10所示。由結果可以清晰的看到坑的形成和揚塵堆積情況。通過對DEM的定量分析,9 m結果可見坑深接近10 cm,揚塵堆積高度最高約10 cm。
圖9 30 m以下的火星雙目圖像
圖10 雙目圖像立體恢復結果
天問一號雙目視覺避障系統(tǒng)是對我國自主著陸避障系統(tǒng)的進一步優(yōu)化。而且,為了提高雙目計算視差和三維信息的速度,該系統(tǒng)選用了FPGA作為硬件加速平臺。通過功能模塊的并行化和流水線化,解決立體匹配算法處理速度慢的問題。本文對雙目視覺避障系統(tǒng)的三種模式進行詳細敘述,并進行了算法驗證和在軌圖像分析。結果表明,雙目視覺避障系統(tǒng)星上解算安全點與預設安全點的水平偏差能達到1 m以內,坡度解算誤差為0.5°,立體視覺成像的精度可達6.4 cm@70 m,且解算時間可控制在2 s以內。對于在軌圖像,本文也對30 m以下的雙目圖像進行了立體恢復。結果可見明顯的揚塵堆積現(xiàn)象,通過對DEM的定量分析,9 m結果可見坑深接近10 cm,揚塵堆積高度最高約10 cm。結果表明,本文的雙目避障系統(tǒng)實現(xiàn)了2K×2K高分辨率雙目稠密匹配,具有很高的解算精度,成功幫助天問一號完成了在軌自標定。