關鍵詞:LiDAR 激光雷達
點雲模擬
做者:李二 日期:06/05/2020 - 07/05/2020node
寫在前面:我前段時間的一個工做(
地基激光雷達TLS的新型布站策略
)須要用到模擬的TLS點雲數據來驗證新型布站模式的性能,所以須要找一個LiDAR模擬平臺來完成以上任務。ios
據我所知,目前典型的經常使用的兩個模擬平臺是:git
這兩個軟件我都用過,並準備分享一下經驗,最近新學習的HELIOS,那就先分享HELIOS吧github
近些年,隨着計算機算力的提升,遙感
中各類計算機模擬軟件層出不窮。其實LiDAR模擬軟件每每是用於如下場景的:web
做者在他會議論文總結了一些相關歷史工做,發現之前的研究主要存在以下幾個不足:算法
2.5D
高程圖來模擬ALS數據,缺乏對場景詳細幾何結構的描述
thin line
),而是存在
beam divergence
,即錐形束
德國海德堡大學(Heidelberg University)
Bernhard Höfle
教授團隊的工程師Sebastian Bechtold
(主要做者) 開發的HELIOS
則具備以下特色(a flexible multi-purpose simulation framework):數據結構
HELIOS是Java寫的,固然支持Windows, Linux和 Mac OS操做系統。它的軟件結構比較直觀,以下圖所示。編輯器
platform
主要用於控制scanner
的位置
和方位
,用戶能夠選擇平臺類型諸如航空或地面平臺,對於運動平臺還能夠設置speed
。ide
平臺類型包含:svg
小注:Platform模塊並不能定義行動路徑,其僅能控制平臺怎樣移動,但卻不能控制平臺向哪裏移動(這在survey playback模塊中進行)。
Scene
模塊有兩個核心功能:
場景創建:根據輸入的場景文件,構建三維場景模型。
通常而言,場景是由
三角面片 triangle mesh
構建的(即輸入多個obj模型,其具備詳細的幾何結構信息),每一個三角面片均在*.mtl文件中定義了其物理屬性(如反射率
),*.obj
文件會對*.mtl
文件中的屬性值進行索引。
求交計算:根據
掃描原點 origin
、激光射線向量 ray vector
、場景幾何 scene geometry
,來快速計算激光線與場景的交點。這就是所謂的光線投射 ray casting(也能夠稱爲光線追蹤 ray tracing
)。一般激光雷達每秒鐘的脈衝數量可達百萬,所以須要極爲快速的光線投射計算。限制計算速度的主要是如何肯定一條激光射線向量與場景中那一個三角面片上的點相交,所以須要進行搜索,通常採用
KD-Tree
這種數據結構算法。
小注:這裏的幾個圖片都是來自於我師兄漆建波 博士
的博士論文,他算是遙感圈很承認的作計算機模擬模型作的很好的青年學者了。這些理論比較相通,剛好他的圖很直觀,因而借過來一用,感謝慷慨。
關於光線追蹤/光線投射的一些具體內容,不妨看一下漆建波博士的論文
Scanner
模塊主要有三項任務:
HELIOS有四類掃描模式(scan pattern)可供選擇:
Rotating mirror (parallel scan lines) Fiber array (parallel scan lines) Oscillating mirror (「zig-zag」 scan pattern) Conic mirror (elliptical scan pattern, a.k.a. 「Palmer scan」)
beam divergence的模擬:用多條光線投射
multiple raycasting queries
來近似激光錐形束。通常而言,以錐形束中心爲圓心,能夠設置不一樣的數量的圓圈來控制
採樣質量
。
full waveform 全波形的模擬:對錐形束中每條採樣光線執行光線投射,若是光線與三角面片相交,則記錄
surface incidence angle
和該面片的物理性質。波形的計算有點複雜,我還沒搞清楚,挖個坑,回頭填上吧。
點雲輸出:HELIOS經過應用回波檢測算法,諸如
peak detection
和Gaussian decomposition
來導出點雲。
Loading assets
模塊其實就負責導入數據。它支持:
讀取輸入場景文件中的座標空間變換,包含平移 translate
、旋轉 rotate
、縮放 scale
三個要素。
Visualization
模塊提供了實時交互功能,雖然目前看起來比較粗糙,可是依然頗有用。根據可視化,能夠斷定測站、結構等是否正確,斷定掃描方式是否如預期,發現模擬代碼是否有問題等等。
下一期咱們具體看一下如何實際使用HELIOS模擬本身想要的數據。
其實咱們RAMM研究小組早就有人在用HELIOS,只是我一直用DART比較習慣,並且這篇TLS布站論文中也一直用DART模擬點雲。目前審稿人讓增長新的international benchmarking數據,而手頭又沒有在法國時那麼powerful的電腦了,又經漆建波博士推薦,就學習了HELIOS。
我查了一下文獻,目前國內外用HELIOS的還很少,因而想着總結一下經驗,與你們分享。