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