【论文笔记】基于 VR 的移动机器人真实环境三维建模系统
文章目錄
- 摘要
- 關鍵詞
- 1 引言
- 2 系統框架
- 2.1 點云地圖與重定位
- 2.2 生成模型地圖
- Step 1: 去噪聲和降采樣
- Step 2: 計算每個點的法線
- Step 3: Possion 曲面重建生成模型
- Step 4: 點云三角化生成紋理貼圖
- Step 5: 模型和紋理貼圖進行配對
- 3 實驗與分析
- 3.1 SLAM 點云地圖生成
- 結論
- 3.2 三維地圖模型的生成
- 結論
- 3.3 重定位
- 結論
- 4 結論
摘要
【針對問題】傳統的虛擬現實技術存在速度慢和模型與現實物體尺度之間存在偏差的問題。
【提出模型】基于 VR 的移動機器人的真實環境三維建模系統。
【具體細節】(1)視覺SLAM——高精度的、稠密的三維點云地圖;(2)將三維點云通過曲面重建為室內三維
模型并導入到 unity 3D 中;(3)借助 VR 設備將室內三維模型置于三維立體的虛擬環境中;(4)再用視覺SLAM技術實現室內重定位,實時映射機器人在模型中完成交互。
【達到效果】(1)具有快速性;(2)解決了場景尺度偏差問題;(3)生成地圖具有復用性;(4)讓操作人員具有場景感。
關鍵詞
1 引言
虛擬現實(Virtual Reality, VR)通過計算機模擬虛擬環境從而給人以沉浸感
意義:對實際物體建立合適的數學模型,以便機器人更好地分析作業
虛擬三維場景的構建工具:
建模軟件 →\rightarrow→ 3DS MAX →\rightarrow→ 通用性軟件;建模效率低,建模者要求高(對實時渲染環境要求更高);
三維激光掃描建模技術 →\rightarrow→ 速度快、精度高、成本低;數據量大 →\rightarrow→ 難以在 VR 系統內運行,要和全站儀等測繪設備一同使用 →\rightarrow→ 對操作者要求高;
SLAM技術 →\rightarrow→ 可以更加高效地構建場景 →\rightarrow→ 分為基于激光雷達的和基于視覺傳感器的
基于激光雷達 →\rightarrow→ 優點:不受光照的影響 →\rightarrow→ 代表:Junhao Xiao 等人提出通過 LOAM 算法構建點云地圖實現三維場景地圖 →\rightarrow→ 不足之處:每個點顏色表示其高度但卻缺失了地圖原有的顏色和紋理信息, 點云地圖的表示形式也使結構細節模糊或缺失
基于視覺傳感技術 →\rightarrow→ 體積小、便攜容易、具有豐富的色彩和紋理信息
(1)ORB-SLAM 2:第一個用于單目相機、雙目相機和RGB-D相機的開源系統;具有閉環、重定位和地圖重用部分;缺點是使用單目相機 →\rightarrow→ 魯棒性較差
(2)VINS-Mono:單目視覺慣性系統的實時SLAM框架;慣性單元 + 視覺信息 緊耦合;能解決單目上尺度不確定的問題;構建出稀疏三維地圖
(3)Voxgraph:基于符號距離函數的大規模三維重建方法;子地圖 →\rightarrow→ 降低存儲和優化的代價;通過實時獲得重力方向來降低位姿估計問題的維度(系統假設)。
本文工作 →\rightarrow→ 視覺SLAM技術與VR技術結合 →\rightarrow→ 基于 VR 的移動機器人的真實環境三維建模系統 →\rightarrow→ 效果:解決人工建模效率低下、激光SLAM缺乏紋理結構信息問題;驗證重定位模塊有效、模型地圖可以復用。
2 系統框架
由機器人端和虛擬現實端兩個模塊組成
機器人端:
VR端:
2.1 點云地圖與重定位
VR手柄控制 →\rightarrow→ 數據采集;
視覺SLAM算法 →\rightarrow→ 稠密點云三維場景地圖構建;
前端 →\rightarrow→ 采用 VINS-Mono 作為視覺-慣導里程計初步估計位姿、生成子點云地圖; →\rightarrow→ 完成后端所需要的三個約束計算;
后端 →\rightarrow→ 三種約束(配準約束、里程計約束和回環約束)構造最小二乘完成對位姿圖的優化;
arg?min?x∑(i,j)∈R∣∣eregi,j(TWSi,TWSj)∣∣σr2+∑(i,j)∈O∣∣eodomi,j(TWSi,TWSj)∣∣ΣO2+∑(i,j)∈L∣∣eloopi,j(TWSi,TWSj)∣∣ΣL2\arg\min_{x} \sum_{(i,j)\in R} ||e_{reg}^{i,j}(\pmb{T_{WS^{i}}},\pmb{T_{WS^{j}}})||_{\sigma_{r}}^{2} + \sum_{(i,j)\in O} ||e_{odom}^{i,j}(\pmb{T_{WS^{i}}},\pmb{T_{WS^{j}}})||_{\Sigma_{O}}^{2} + \sum_{(i,j)\in L} ||e_{loop}^{i,j}(\pmb{T_{WS^{i}}},\pmb{T_{WS^{j}}})||_{\Sigma_{L}}^{2} argxmin?(i,j)∈R∑?∣∣eregi,j?(TWSi?TWSi?,TWSj?TWSj?)∣∣σr?2?+(i,j)∈O∑?∣∣eodomi,j?(TWSi?TWSi?,TWSj?TWSj?)∣∣ΣO?2?+(i,j)∈L∑?∣∣eloopi,j?(TWSi?TWSi?,TWSj?TWSj?)∣∣ΣL?2?
? χ={TWS1,TWS2,?,TWSN}→\chi=\{ \pmb{T_{WS^{1}}},\pmb{T_{WS^{2}}},\cdots,\pmb{T_{WS^{N}}} \}\rightarrowχ={TWS1?TWS1?,TWS2?TWS2?,?,TWSN?TWSN?}→ 里程計初始估計的位姿,是四維向量;
? R、O、L →\rightarrow→ 準配約束(registration)、里程計約束(odometry)、回環約束(loop)
2.2 生成模型地圖
稠密三維點云 →\rightarrow→ 曲面重建算法處理 →\rightarrow→ 精細化三維場景模型和與之對應的紋理貼圖
曲面重建算法:基于 Possion 重建改進
Step 1: 去噪聲和降采樣
去噪 →\rightarrow→ 統計濾波器 →\rightarrow→ 除去離群點 →\rightarrow→ 離群點存在會導致建模出的場景不平滑
? 原理:點pip_{i}pi?通過KNN鄰近算法得到領域快Bj∈Nbhd(pi)B_{j}\in\pmb{Nbhd}(p_{i})Bj?∈NbhdNbhd(pi?),計算pip_{i}pi?與領域中心點的距離xxx,根據距離分布滿足高斯分布的原理,剔除平均距離在標準差范圍之外的點即為剔除離群點;
降采樣 →\rightarrow→ 最遠點采樣法 →\rightarrow→ 滿足完備性的基礎上提高速度 →\rightarrow→ 盡可能覆蓋空間中所有點
? 原理:在輸入點云數 NNN 的集合 AAA 中隨機選擇點 P0P_{0}P0? 作為起始點 →\rightarrow→ 得到采樣集合 B={P0}B=\{ P_{0} \}B={P0?} →\rightarrow→ 計算集合 AAA 中剩余點到集合 BBB 中點的距離 →\rightarrow→ 選擇距離最遠的點作為 P1P_{1}P1? 添加到集合 BBB 中
? →\rightarrow→ 當集合 B 中點數大于1,滿足公式:
max?(min?[d1,1d1,2?d1,Nd2,1d2,2?d2,N????dN?2,1dN?2,2?dN?2,NdN?1,1dN?1,2?dN?1,N])\max\big( \min \big[ \begin{matrix} d_{1,1} & d_{1,2} & \cdots & d_{1,N} \\ d_{2,1} & d_{2,2} & \cdots & d_{2,N} \\ \cdots & \cdots & \cdots & \cdots \\ d_{N-2,1} & d_{N-2,2} & \cdots & d_{N-2,N} \\ d_{N-1,1} & d_{N-1,2} & \cdots & d_{N-1,N} \end{matrix} \big] \big) max(min[d1,1?d2,1??dN?2,1?dN?1,1??d1,2?d2,2??dN?2,2?dN?1,2????????d1,N?d2,N??dN?2,N?dN?1,N??])
? di,j→d_{i,j}\rightarrowdi,j?→ 集合 AAA 中剩余點到采樣集合 BBB 中的距離
? max?min?(?)→\max\min(\cdots)\rightarrowmaxmin(?)→ 先取矩陣中每一列的最小值 →\rightarrow→ 一個行向量 →\rightarrow→ 向量中元素最大值對應的點 →\rightarrow→ 采樣點
? →\rightarrow→ 直到獲得 NNN 個采樣點
Step 2: 計算每個點的法線
根據領域計算質心 →oi=1k∑j=0j<kpj\rightarrow o_{i}=\frac{1}{k}\sum_{j=0}^{j<k}p_{j}→oi?=k1?∑j=0j<k?pj?
構建協方差矩陣 →\rightarrow→ cov=1k∑Bj∈Nbhd(pi)(Bj?oi)(pi?oi)T\pmb{cov}=\frac{1}{k}\sum_{B_{j}\in\pmb{Nbhd}(p_{i})}(B_{j}-o_{i})(p_{i}-o_{i})^{T}covcov=k1?∑Bj?∈NbhdNbhd(pi?)?(Bj??oi?)(pi??oi?)T
協方差矩陣 SVD 分解 →\rightarrow→ 最小特征值對應的特征向量即為法線 N?\pmb{\vec{N}}NN
Step 3: Possion 曲面重建生成模型
思想:for 點云SSS,MMM = 物體表面 →\rightarrow→ ?M\partial{M}?M = 物體的邊界,N?→\pmb{\vec{N}} \rightarrowNN→ 物體內外的方向
隱式地擬合一個由物體派生的指示函數 χM\chi_{M}χM?:曲面重構問題 →\rightarrow→ 重構指示函數 →\rightarrow→ 等值面提取
χM(q)={1,q∈M0,q?M,q代表點云中的一個點\chi_{M}(q) = \begin{cases} 1,&q\in M \\ 0,&q \notin M \end{cases} ,q代表點云中的一個點 χM?(q)={1,0,?q∈Mq∈/M?,q代表點云中的一個點
基本原理:
? (1)對輸入點集建立深度為 D\pmb{D}DD 的八叉樹 ?\pmb{\varrho}?? 拓撲關系并對每一個節點 ooo 附加 一個節點函數 FoF_{o}Fo?
? oc→o_{c} \rightarrowoc?→ 節點的中心; ow→o_{w} \rightarrowow?→ 節點的寬度
Fo(q)=F(q?ocow)1ow3(1)F_{o}(q)=F(\frac{q-o_{c}}{o_{w}})\frac{1}{o_{w}^{3}} \tag{1} Fo?(q)=F(ow?q?oc??)ow3?1?(1)
? (2)引入基函數 F\pmb{F}FF 描述節點函數和向量場 V?\pmb{\vec{V}}VV 之間的關系
F(q)=F(q2D)(2)F(q)=F(\frac{q}{2^{D}}) \tag{2} F(q)=F(2Dq?)(2)
? (3)引入高通濾波器將有向點集的表面重建轉換為一個空間泊松問題
F(x,y,z)=(B(x)B(y)B(z))?nB(t)={1,∣t∣<50,otherwise(3)F(x,y,z)=(B(x)B(y)B(z))^{*n} \tag{3} \\ B(t) = \begin{cases} 1,&|t|<5 \\ 0,& otherwise \end{cases} F(x,y,z)=(B(x)B(y)B(z))?nB(t)={1,0,?∣t∣<5otherwise?(3)
? (4)指示函數所代表的表面梯度域的向量場
V?(q)=∑s∈S∑o∈NgbrD(s)αo,sFo(q)s.N?(4)\pmb{\vec{V}}(q) = \sum_{s\in S}\sum_{o \in Ngbr_{D}(s)}\alpha_{o,s}F_{o}(q)s.\pmb{\vec{N}} \tag{4} VV(q)=s∈S∑?o∈NgbrD?(s)∑?αo,s?Fo?(q)s.NN(4)
? NgbrD(s)Ngbr_{D}(s)NgbrD?(s) →\rightarrow→ 當前節點 s.ps.ps.p 的八個臨近節點
? α{o,s}\alpha\{o,s\}α{o,s} →\rightarrow→ 插值的權重
? (5)求解問題簡化
∑o∈?∣∣<Δχ???V?,Fo>∣∣2=∑o∈?∣∣<Δχ,Fo>?<??V?,Fo>∣∣2(5)\sum_{o\in\varrho}\big|\big| \big< \Delta\chi-\nabla\cdot\vec{\pmb{V}},F_{o} \big> \big|\big|^{2}=\sum_{o\in\varrho}\big|\big| \big< \Delta\chi,F_{o} \big> - \big< \nabla\cdot\vec{\pmb{V}},F_{o} \big> \big|\big|^{2} \tag{5} o∈?∑?∣∣?∣∣??Δχ???VV,Fo??∣∣?∣∣?2=o∈?∑?∣∣?∣∣??Δχ,Fo??????VV,Fo??∣∣?∣∣?2(5)
? 求解函數 χ\chiχ 的方法:通過該函數在函數空間投影的拉普拉斯算子與 FoF_{o}Fo? 構成的向量逼近 vvv 解決轉換成 ∑o∈?∣∣v?vo∣∣2\sum_{o\in\varrho}||v-v_{o}||^{2}∑o∈??∣∣v?vo?∣∣2;
? 矩陣操作求解向量 →\rightarrow→ 算法定義了一個 v×vv \times vv×v 階矩陣 LLL →\rightarrow→ 每一項是拉普拉斯算子和每一個節點函數的點乘結果 ?\longrightarrow? 求解 min?x∈R∣?∣∣∣Lx?v∣∣\min_{x\in R^{|\varrho|}}||\pmb{Lx - v}||minx∈R∣?∣?∣∣Lx?vLx?v∣∣ ?\longrightarrow? 移動立方體法 ?\longrightarrow? 提取得到等值面
Step 4: 點云三角化生成紋理貼圖
對在表面 SSS 的點進行三角化操作:沿著三角化的頂點與貼圖平面 UVUVUV 坐標進行匹配映射,貼圖顏色信息為三個點對應的三個通道的灰度平均值
Step 5: 模型和紋理貼圖進行配對
將貼圖與法線正向方向 的模型一側匹配映射
3 實驗與分析
構建方法評估數據集 →\rightarrow→ EuRoC數據集
-
三維重建數據包獲得工具 →\rightarrow→ Release D435i 相機
-
系統運行平臺 →\rightarrow→ Ubuntu 16.04 64 位臺式機
-
CPU →\rightarrow→ i9-10900X(10 核@3.70GHz)
-
GPU →\rightarrow→ 64G 內存 GTX 2080Ti
-
機器人運行平臺 →\rightarrow→ NVIDIA Jetson Xavier
3.1 SLAM 點云地圖生成
對比 →\rightarrow→ ORB-SLAM 2 、OKVIS
運行次數 →\rightarrow→ 每個系統 10 次,
計算指標 →\rightarrow→ 在數據集上的絕對軌跡誤差(ATE)中的均方根誤差 (RMSE)的平均值來評估本文系統的定位精度
結論
3.2 三維地圖模型的生成
最后本系統經過統計濾波器(K=50)去噪后獲得具有 86560 個點的稠密點云地圖
通過對改稠密點云地圖進行 FPS 降采樣到不同的點云數,再通過曲面重建生成三維地圖模型
結論
3.3 重定位
結論
每次都成功初始化和重定位
系統的重定位平均誤差為 0.31mmm
4 結論
可推廣應用于室內特殊環境下的信息規劃、室內建筑與裝飾設計、計算機設施管理以及古文物修復等多個領域
總結
以上是生活随笔為你收集整理的【论文笔记】基于 VR 的移动机器人真实环境三维建模系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pdf.js body.getReade
- 下一篇: 【正点原子Linux连载】第十八章 Ca