陳李煒,曹 濤,易建軍,張雪松,趙逸凡,王慶明
(1.華東理工大學(xué) 機械工程系·上海·200237;2.上海航天控制技術(shù)研究所·上海·201109;3.上海市空間智能控制技術(shù)重點實驗室·上?!?01109)
航天飛行器在行星表面的自主軟著陸是探索未知行星不可缺少的關(guān)鍵技術(shù)。載人或無人飛行器都不可避免地需要經(jīng)過動力下降進行軟著陸,為了著陸的平穩(wěn)與安全,一般情況下著陸點都選擇地勢開闊且平坦的地形。1969年的載人登月任務(wù)Apollo 11,飛行器在動力下降階段借助發(fā)動機反推實現(xiàn)了減速,并通過人工控制進行避障飛行,最后垂直下降并軟著陸于月表。然而,隨著未來行星探索任務(wù)的擴展以及復(fù)雜化,飛行器面臨不得不在復(fù)雜地形區(qū)域著陸的情況,對于行星地表的感知、評估選址,以及末端的制導(dǎo)著陸則非常關(guān)鍵。本文通過Unity3D物理引擎對這類復(fù)雜地形軟著陸的情況開發(fā)了一套模擬系統(tǒng),用作自主選址著陸方法的測試與驗證的平臺。
本文所構(gòu)建的復(fù)雜地形自主軟著陸模擬平臺是一個整合了月表地形感知、月表地形評估、自主選址與著陸規(guī)劃的系統(tǒng),從其技術(shù)構(gòu)成而言包含了場景三維重建技術(shù)、地形評估技術(shù)以及飛行器動力下降制導(dǎo)技術(shù)。
月表地形感知的第一步是獲取盡可能稠密的月表三維信息,本文所實現(xiàn)的月面地形表面重建是場景三維重建技術(shù)的應(yīng)用擴展。該技術(shù)通常使用立體視覺傳感器、激光雷達傳感器或多種傳感器的混合,并以多視圖幾何原理或光學(xué)成像獲取重建對象的深度數(shù)據(jù),隨后進行數(shù)據(jù)預(yù)處理轉(zhuǎn)化為點云數(shù)據(jù),并通過配準算法實現(xiàn)點云信息的配準融合,最終將離散的點云轉(zhuǎn)化為連續(xù)表面,把真實場景轉(zhuǎn)換成符合計算機邏輯表達的數(shù)學(xué)模型。在以往的空間任務(wù)中常使用視覺傳感器作為主要感知手段,例如小行星表面數(shù)字地形建模,行星表面重建工作中存在大量的基于立體視覺和立體光度測量方法。其中,前者基于三角測量方法,得到視野中的像素偏差,隨后基于極線約束像點進行標定[1-3]。該方法模擬了人類視覺的感知原理,但是算法復(fù)雜,對參數(shù)敏感導(dǎo)致穩(wěn)定性和誤差都會隨著運行時間而惡化。后者基于立體成像和攝影測量的原理,從各種機載的傳感器得到行星表面的深度數(shù)據(jù),由于包含了反照率信息,在處理低入射角的圖像時優(yōu)勢明顯。但在實際使用中,該方法存在著形狀特征被隨機消除的缺點,會造成像素誤差。另一方面,為了提升重建精度,需要更多的有關(guān)場景參數(shù)的額外數(shù)據(jù)量?;趩文啃蛄袌D像的三維重建,通過幾何投影的原理構(gòu)建數(shù)字化三維模型,對場景參數(shù)的依賴度低,可以根據(jù)實際情況選擇擬合方案以降低累積誤差,同時隨著算法復(fù)雜度降低,魯棒性和實時性也相應(yīng)增強了[4-6]。
近10年,隨著激光雷達傳感器的興起,基于激光同步定位與地圖構(gòu)建(Simultaneous Localization and Mapping,SLAM)方法開展的場景重建表現(xiàn)出了超越以往基于立體視覺重建方法的優(yōu)秀性能。例如2014年,LOAM算法提出了一種利用2軸激光雷達在6自由度范圍內(nèi)進行實時里程測量和地圖繪制的方法,通過運動估計進行點云的運動補償,實現(xiàn)了低漂移和低計算復(fù)雜度,無需高精度測距或慣性測量。在后續(xù)的工作中,大量學(xué)者基于該算法進行了改進,開發(fā)出了T-LOAM、LeGO-LOAM等性能更好的方法[7-8];同時對于面陣激光雷達的場景重建也設(shè)計了Livox-LOAM算法,針對掃描方式與傳統(tǒng)機械雷達不同的問題,優(yōu)化了點云特征的提取,適配了固態(tài)雷達,并表現(xiàn)出了不錯的性能[9]。
由于激光雷達的能量密度高,抗干擾能力更強,是近距離行星表面重建的新選擇;另一方面,視覺傳感器雖然對參數(shù)敏感,易受干擾,但是局部重建結(jié)果更為稠密。因此,本文在模擬系統(tǒng)中的月表地形重建采用了視覺-激光融合的月表重建方法,使用了面陣激光雷達的Livox-LOAM方法對月面進行重建模擬,同時也使用了視覺傳感器作為協(xié)同重建的手段。
快速的月面地形評估是實現(xiàn)自主軟著陸選址的前提條件,在完成月表三維重建后,即可開展月面復(fù)雜地形的評估,計算月表各區(qū)域的著陸安全性。近年來,隨著無人車自主行駛、無人機自主降落任務(wù)對環(huán)境感知能力的需求增加,大量學(xué)者對復(fù)雜地形的可通過性和著陸安全性的評估技術(shù)開展了研究,這項關(guān)鍵技術(shù)對月表地形評估具有很高的參考價值。B. Ayhan和C. Kwan[10]使用Gabor特征和支持向量機方法以及Seg-Net方法,對地形進行有效評估,為起伏地形上的無人機提供著陸安全性評估。2020年,Yan L.等[11]提出了一種從激光雷達點云中自主選擇安全著陸點的新方法,采用了主成分分析(Principal Component Analysis,PCA)和改進的面積增長算法檢測平坦區(qū)域后,基于漸進樣本一致性(Progressive Sample Consensus,PROSAC)算法實現(xiàn)平面擬合,以評估地形復(fù)雜度。解決復(fù)雜地形的自動駕駛問題也需要先進行地形評估,有學(xué)者通過大量的地形樣本數(shù)據(jù)集訓(xùn)練,得到了能夠有效評估地形的神經(jīng)網(wǎng)絡(luò)模型。Y.Kobayashi等[12]訓(xùn)練了一個高斯過程回歸器(Gaussian Process Regression,GPR),以預(yù)測車輛在地形上移動時的振動(作為地形可通過性的度量),并結(jié)合RGB攝像機圖像檢測到的地形紋理特征對地形進行評估。M.Quann等[13]提出了一種基于概率能量成本預(yù)測的越野導(dǎo)航策略,同樣通過高斯過程回歸器,實現(xiàn)了從當(dāng)前機器人姿態(tài)、地形坡度(沿機器人運動方向)和灰度圖像到運行功耗的映射。能量消耗的地圖最終被用來預(yù)測路徑穿越期間的累計能量消耗,這一類的方法往往需要獲取機器人與地形的接觸狀態(tài),以評判地形的可通過性。
完成地形評估并確定著陸選址后,需要進行相對精確的軟著陸,為此飛行器需要進行在線實時的軟著陸運動規(guī)劃。大量研究工作已經(jīng)開發(fā)出針對動力下降制導(dǎo)問題的近似解決方案,其中以凸優(yōu)化為主的在線軌跡優(yōu)化算法在實際工程中有十分優(yōu)秀的表現(xiàn)。在文獻[14]的工作中,研究團隊將飛行器在火星動力軟著陸場景中的軌跡規(guī)劃問題描述為一個非凸優(yōu)化問題,并通過引入松弛變量,將松弛凸約束代替非凸約束進行問題凸化,證明了松弛凸約束對于該問題是無損的,最終得到一個二階錐規(guī)劃問題。在NASA的ADAPT項目中驗證了該算法的有效性。隨后,該團隊又對先前的燃料最優(yōu)軌跡規(guī)劃加以改進,優(yōu)化了著陸誤差[15]。隨著人工智能算法的興起,不少學(xué)者借助學(xué)習(xí)算法實現(xiàn)了實時軟著陸規(guī)劃,文獻[16]將迭代線性二次調(diào)節(jié)器作為控制器產(chǎn)生初始軌跡,并通過多層神經(jīng)網(wǎng)絡(luò)擬合制導(dǎo)策略,利用控制器監(jiān)督策略學(xué)習(xí)得到可行的策略。
考慮到機載計算機的處理能力、地形評估算法的復(fù)雜度以及著陸運動規(guī)劃運行的實時性要求,本文在模擬器中使用了面陣激光雷達與立體相機進行三維重建,并采用了一種復(fù)合的地形評估函數(shù)對地形著陸代價進行評估,在得到選址結(jié)果后,采用了基于凸優(yōu)化的燃料最優(yōu)的著陸規(guī)劃,實現(xiàn)了飛行器在月面高度1km以下的軟著陸。
模擬系統(tǒng)的軟件架構(gòu)主要分為兩部分:基于Unity3D開發(fā)的著陸器飛行場景,以及基于機器人操作系統(tǒng)(Robot Operating System,ROS)開發(fā)的傳感器數(shù)據(jù)獲取與處理系統(tǒng)。
基于Unity3D物理引擎所開發(fā)的等比的仿真場景搭建與相關(guān)功能(如圖1所示),其具體內(nèi)容包含了:
圖1 模擬器系統(tǒng)架構(gòu)Fig.1 The simulation system architecture
1)仿真月表的構(gòu)建:在Unity3D中使用地形制作插件繪制長、寬均為6km的月面地形,并模擬了月面常見的地形特征,例如:起伏的地形、多種尺寸的環(huán)形山、月坑。另一方面,為地形設(shè)置了高分辨率的碰撞模型。
2)月球環(huán)境模擬:在Unity3D的場景物理屬性中設(shè)置了月球重力,并將地面摩擦和接觸剛性設(shè)置為可調(diào)參數(shù)。
3)飛行器特性模擬:在著陸器3D模型的基礎(chǔ)上,開發(fā)了其基本功能的仿真與實時動態(tài)參數(shù)的仿真,具體表現(xiàn)為設(shè)置了飛行器所具有的主發(fā)動機,調(diào)姿發(fā)動機的開關(guān)功能、可調(diào)節(jié)的矢量推力仿真、基于比沖參數(shù)的發(fā)動機燃料消耗計算、總體質(zhì)量參數(shù)的動態(tài)變化仿真、飛行器質(zhì)心變化仿真和飛行器剛體碰撞仿真。
基于ROS開發(fā)的孿生縮比環(huán)境負責(zé)對視覺以及激光雷達傳感器的數(shù)據(jù)仿真與處理,其具體內(nèi)容包含了:
1)孿生縮比場景的構(gòu)建:將Unity3D中的整體場景進行10倍縮比,從而降低運行時的計算機資源占用率,提升孿生場景運行的實時性。
2)傳感器仿真:使用ROS中的虛擬立體相機仿真以及虛擬激光雷達對飛行器下方的月表進行掃描,通過訂閱ROS中的傳感器數(shù)據(jù)話題實時回傳仿真的深度圖像與點云數(shù)據(jù),作為重建算法的輸入。
3)相關(guān)算法的開發(fā):進行月面地形重建、地形評估以及著陸軌跡規(guī)劃的算法。
基于Unity3D的仿真場景與基于ROS的孿生縮比場景之間通過UDP通信進行信息交互,Unity3D將飛行器所在的位置、速度發(fā)送給ROS,而ROS將自主選址和著陸規(guī)劃的結(jié)果發(fā)送給Unity3D仿真場景,驅(qū)使飛行器通過發(fā)動機的控制實現(xiàn)最終的軟著陸。
模擬中的著陸流程(如圖2所示)分為4個階段:
圖2 月面自主選址軟著陸流程Fig.2 Soft landing process for autonomous site selection on the Lunar surface
1)動力下降階段:飛行器按照既定程序從繞月軌道減速下降,并調(diào)整飛行姿態(tài)與速度,逐漸接近預(yù)定的著陸區(qū)域上空。
2)月表重建與地形評估選址階段:在飛行器下降到指定高度后,啟用面陣雷達和立體相機的仿真功能,對飛行器下方的月面進行成像,并基于重建算法開展實時地形重建,在完成著陸范圍的地形重建后,采用地形評估函數(shù)對重建地形的稠密點云進行著陸代價計算,并選擇最佳著陸地點,返回著陸點坐標。
3)軟著陸運動規(guī)劃階段:在獲取上一個階段的著陸目標點后,根據(jù)飛行器與目標點的相對位置和相對速度,以及當(dāng)前飛行器性能參數(shù)進行著陸規(guī)劃,獲取當(dāng)前狀態(tài)下燃料消耗最優(yōu)的軟著陸運動規(guī)劃結(jié)果。
4)軟著陸控制階段:控制飛行器遵循上一階段得到的運動規(guī)劃結(jié)果完成著陸。
第二以及第三階段是整個著陸流程中最關(guān)鍵的2個過程,也是本文所構(gòu)建的仿真系統(tǒng)中各關(guān)鍵算法的集中表現(xiàn),后續(xù)2章將分別對月表地形的重建、評估和選址以及針對選址目標的軟著陸運動規(guī)劃進行說明。
本文的模擬系統(tǒng)進行地形評估所使用的傳感器為面陣激光雷達與立體相機,通過對地形的掃描與重建,獲取著陸區(qū)域局部地形相對稠密的點云。
本文使用ROS中的面陣激光雷達與立體相機作為主要傳感器,對飛行器下方的月表地形進行稠密重建,基礎(chǔ)算法使用了由LOAM算法改進而來的Livox-LOAM算法進行基于面陣激光雷達的地形重建。同時利用立體相機對點云缺失部分進行補償,從而獲取更為稠密的地形重建結(jié)果,算法主要流程為:數(shù)據(jù)預(yù)處理、點云配準、后端優(yōu)化以及點云集成4個部分。由于立體相機的加入,在原始算法的基礎(chǔ)上加入了稠密點云的生成和基于時間戳對齊的配準環(huán)節(jié)。月面3D重建流程如圖3所示。
圖3 月面3D重建流程Fig.3 The process of Lunar surface 3D reconstruction
在ROS中,對孿生縮比場景進行重建,得到局部月面地形如圖4所示。
圖4 月面3D重建效果Fig.4 Lunar surface 3D reconstruction
將重建獲得的點云數(shù)據(jù)在高度方向進行歸一化并以灰度形式進行描述,從而獲得高程圖(如圖5所示)。對地形的評估采用3個參數(shù)進行描述:地形梯度、地形起伏程度、局部地形的最大高度差,并采用加權(quán)計算的方式得到綜合著陸風(fēng)險模型。
圖5 月表地形的高程圖表示(局部)Fig.5 Elevation map representation of lunar surface topography (Local)
后續(xù)的月面復(fù)雜地形著陸風(fēng)險評估均建立在高程地圖的柵格化處理基礎(chǔ)上。通過在柵格化的高程地圖上計算柵格法向量實現(xiàn)對地形梯度的計算:對于每個柵格法向量,取4個樣本(當(dāng)前高程地圖像素的左、右、上、下鄰接像素),由此獲取x與y方向上的梯度。將一個3D向量投影到x=0,y=0的平面上,與2D法線的斜率相同,并將其歸一化。通過遍歷柵格化高程圖,計算每個柵格法線的斜率。該方法具有較高的計算速度,在模擬過程中能夠?qū)崟r地對重建地形進行評估。地形起伏程度Lroughness的評估則通過式(1)和式(2)計算,采用區(qū)域內(nèi)高程圖高度值的標準差作為衡量方法。
(1)
(2)
地形局部高度差表明了地形區(qū)域內(nèi)的最大高度和最小高度之間的差,這直接關(guān)聯(lián)到飛行器在該區(qū)域的地表著陸后的最大可能傾斜程度,因此也將其作為綜合風(fēng)險模型中的一個參數(shù)。綜合著陸風(fēng)險模型對以上多種參數(shù)的加權(quán)融合,如下所示。
綜合著陸風(fēng)險模型
r1=
(3)
wslope+wrgs+wmhd=1
(4)
(5)
(6)
(7)
其中,r1表示著陸點的風(fēng)險值,取值范圍為[0,1];rslope為坡度風(fēng)險值;rrgs為地面起伏風(fēng)險值;rmhd為局部地形的最大高度差風(fēng)險值;wslope表示地形梯度風(fēng)險的權(quán)重;wrgs表示地面起伏程度風(fēng)險的權(quán)重;wmhd表示局部地形的最大高度差風(fēng)險的權(quán)重;Tslope表示地形梯度風(fēng)險閾值;Trgs表示地面起伏風(fēng)險閾值;Tmhd表示地形局部高度差風(fēng)險閾值;Dslope為地形梯度的計算,由規(guī)定范圍的柵格區(qū)域內(nèi)的平均梯度計算所得;maxΔH為局部地形的最大高度差,由規(guī)定范圍的柵格區(qū)域內(nèi)的最大高度差計算所得。對于評估得到的風(fēng)險地圖進行閾值分割,得到可以著陸的區(qū)域,最后對可以著陸的區(qū)域進行連通域的面積評估,確保其有足夠的著陸面積提供給飛行器進行軟著陸。使用上述的地形評估模型對重建后的地表進行整體的計算,得到了飛行器下方區(qū)域可視化的評估結(jié)果。本文對兩種地形的各個區(qū)域進行了評估,獲得了如下的效果(圖6(a)),其中綠色區(qū)域為滿足著陸安全性的區(qū)域,紅色區(qū)域為存在超過閾值的著陸風(fēng)險區(qū)域。
在最終的選址過程中,考慮到飛行器對著陸區(qū)域的大小有一定的要求,通過遍歷柵格化的著陸代價地圖,設(shè)置對可安全著陸區(qū)域中以各個柵格為中心所繪制的圓形區(qū)域中的最大面積區(qū)域作為最終著陸選址,如圖6(b)所示。
(a)著陸風(fēng)險可視化
本文所設(shè)計的模擬器在進行末端制導(dǎo)軟著陸時,采用了燃料消耗最少的最優(yōu)著陸軌跡規(guī)劃方法。模擬器選定著陸點后,求解一個使著陸器在初始條件{P,V}下最終到達目標著陸點的飛行器推力變化曲線,使得燃料消耗最少,其中P為飛行器的初始位置向量,V為飛行器的初始速度向量。
該問題的描述為一個優(yōu)化問題
(8)
優(yōu)化約束為
(9)
(10)
(11)
r(t)∈X,?t∈[0,tf]
(12)
m(0)=mwet,m(tf)=mdry
(13)
(14)
(15)
其中,Tc(t)表示隨時間變化的飛行器推力向量;tf為著陸過程所消耗的總時間;g表示月球的重力加速度向量;α為比沖;ρ1、ρ2為推力大小的上下界;X為軌跡規(guī)劃的倒錐形約束邊界;r(t)為t時刻飛行器的位置向量;r0表示飛行器的初始位置向量;m(t)表示飛行器隨時間變化的質(zhì)量;mwet表示開始制導(dǎo)時的燃料與飛行器本身質(zhì)量總和;mdry為完成著陸后的燃料與飛行器本身質(zhì)量總和;e1、e2、e3為垂直于下滑道約束向量分量的3個單位向量,描述了軌跡的始末狀態(tài)分別處于錐形約束空間的位置,其中q是著陸目標點在著陸平面上的二維向量表示。
在文獻[14-16]中,通過引入松弛變量的方式,將以上非凸優(yōu)化問題轉(zhuǎn)化為凸優(yōu)化問題,進而使用cvxpy工具求解凸優(yōu)化問題。如圖7所示。
圖7 文獻[14-16]中所描述的制導(dǎo)軌跡在空間中的圓錐約束Fig.7 The conic constraint of guidance trajectory in space in references[14-16]
在模擬器中,預(yù)留了燃料量、最大推力、矢量推力限制角度、比沖、飛行器質(zhì)量作為用戶可調(diào)參數(shù),用于模擬不同種類、不同狀態(tài)的飛行器。實驗中,飛行器的著陸軌跡和推力變化如圖8所示。
(a)著陸軌跡
可見,在優(yōu)化燃料的基礎(chǔ)上,規(guī)劃器也能夠給出相對平穩(wěn)光滑的著陸曲線。
本文所描述的基于Unity3D的月球探測器復(fù)雜地形軟著陸模擬系統(tǒng),完成了月面地形重建、著陸風(fēng)險代價評估,以及指定點著陸的軌跡規(guī)劃任務(wù)。模擬系統(tǒng)借助ROS構(gòu)建了外部孿生縮比場景,模擬了實時面陣激光雷達以及立體相機所獲取的數(shù)據(jù),基于Livox-LOAM算法以及深度圖像的點云補全實現(xiàn)了月面地形的稠密重建。在此基礎(chǔ)上,本文針對重建所得的月面稠密地形,設(shè)計了一種高效的地形評估方法,實現(xiàn)了月表地形的著陸風(fēng)險評估,開展低風(fēng)險著陸區(qū)域選址,最終基于凸優(yōu)化方法求解燃料最優(yōu)的軟著陸運動規(guī)劃問題,使飛行器以較高的精度和最少的燃料消耗降落到指定的低風(fēng)險著陸區(qū)域范圍內(nèi)。
本文所設(shè)計的模擬系統(tǒng)為激光雷達和立體相機在月面自主軟著陸中的應(yīng)用提供了較為完整的功能模擬和數(shù)據(jù)處理算法的實現(xiàn),最終將自主選址結(jié)果和著陸運動規(guī)劃相結(jié)合,形成一個凸優(yōu)化問題進行求解,實現(xiàn)了自主地形探測、自主選址、自主開展著陸運動規(guī)劃的月球探測器復(fù)雜地形軟著陸功能。
該模擬系統(tǒng)具備一定的動力學(xué)仿真能力,并開放了與飛行器自身物理屬性、飛行性能相關(guān)的可調(diào)節(jié)參數(shù),使得模擬器具有針對不同的飛行器、不同地形的著陸流程進行模擬的能力。但是由于本模擬系統(tǒng)采用了Unity3D與ROS的聯(lián)合仿真,因此這2個孿生環(huán)境之間信息傳輸必然存在著一定的延遲和數(shù)據(jù)丟失,對仿真的實時性和精度有一定的影響。因此,在未來的開發(fā)中需要提升系統(tǒng)的集成度,在Unity3D仿真環(huán)境中實現(xiàn)多種傳感器成像仿真以及傳感器數(shù)據(jù)處理。此外,本系統(tǒng)在仿真細節(jié)和功能拓展上還具有優(yōu)化空間,在未來的研究中需要對系統(tǒng)的動力學(xué)和太空環(huán)境視覺傳感器的成像效果進行仿真,以及對人在回路的介入功能方面開展進一步的優(yōu)化。