評(píng)估實(shí)戰(zhàn):從ATE/RPE指標(biāo)到LVI-SAM性能深度分析)
1. 項(xiàng)目概述從“跑通”到“用好”的跨越最近在折騰機(jī)器人定位與建圖SLAM相關(guān)的項(xiàng)目發(fā)現(xiàn)很多朋友在復(fù)現(xiàn)和評(píng)估像LVI-SAM這樣的經(jīng)典框架時(shí)常常會(huì)遇到一個(gè)瓶頸代碼跑起來(lái)了數(shù)據(jù)也喂進(jìn)去了但怎么判斷它跑得好不好輸出的軌跡和地圖到底準(zhǔn)不準(zhǔn)和論文里宣稱的性能差了多少這些問(wèn)題恰恰就是LVI-SAM評(píng)估這個(gè)環(huán)節(jié)要解決的核心問(wèn)題。它不是一個(gè)簡(jiǎn)單的“運(yùn)行-看結(jié)果”的過(guò)程而是一套完整的、可量化的、用于衡量SLAM系統(tǒng)性能的科學(xué)方法論。簡(jiǎn)單來(lái)說(shuō)LVI-SAM評(píng)估就是給這個(gè)多傳感器融合的SLAM系統(tǒng)做一次全面的“體檢”。LVI-SAM本身是一個(gè)緊耦合的激光雷達(dá)-視覺(jué)-慣性里程計(jì)系統(tǒng)它通過(guò)融合三種傳感器的數(shù)據(jù)旨在實(shí)現(xiàn)魯棒且高精度的狀態(tài)估計(jì)。評(píng)估工作就是要用客觀的數(shù)據(jù)和標(biāo)準(zhǔn)來(lái)檢驗(yàn)它是否真的做到了“魯棒”和“高精度”。這不僅僅是驗(yàn)證算法本身更是理解其特性、明確其適用邊界、并為實(shí)際應(yīng)用如自動(dòng)駕駛、無(wú)人機(jī)、移動(dòng)機(jī)器人提供可靠技術(shù)選型依據(jù)的關(guān)鍵步驟。無(wú)論你是剛?cè)腴TSLAM的研究生還是正在為產(chǎn)品選型的工程師掌握一套系統(tǒng)的評(píng)估方法都至關(guān)重要。2. 評(píng)估體系構(gòu)建指標(biāo)、數(shù)據(jù)與工具三位一體評(píng)估一個(gè)像LVI-SAM這樣的復(fù)雜系統(tǒng)不能憑感覺(jué)必須建立一個(gè)由評(píng)估指標(biāo)、基準(zhǔn)數(shù)據(jù)集和評(píng)估工具構(gòu)成的三角支撐體系。這三者缺一不可。2.1 核心評(píng)估指標(biāo)詳解評(píng)估指標(biāo)是我們衡量性能的尺子。對(duì)于SLAM系統(tǒng)我們主要關(guān)注兩大方面精度和魯棒性。2.1.1 精度指標(biāo)絕對(duì)軌跡誤差與相對(duì)位姿誤差精度是評(píng)估的基石最常用的兩個(gè)指標(biāo)是絕對(duì)軌跡誤差A(yù)TE和相對(duì)位姿誤差RPE。絕對(duì)軌跡誤差這是最直觀的指標(biāo)。它計(jì)算的是估計(jì)軌跡上的每個(gè)位姿點(diǎn)與真實(shí)軌跡Ground Truth上對(duì)應(yīng)點(diǎn)之間的歐氏距離。我們可以通過(guò)計(jì)算所有點(diǎn)的ATE的均方根誤差RMSE來(lái)得到一個(gè)總體精度評(píng)價(jià)。例如一個(gè)RMSE為0.1米的ATE意味著在整段軌跡上平均的定位誤差在10厘米級(jí)別。這個(gè)指標(biāo)對(duì)全局一致性非常敏感能很好地反映建圖或回環(huán)檢測(cè)的效果。相對(duì)位姿誤差A(yù)TE關(guān)注的是“絕對(duì)位置”而RPE關(guān)注的是“相對(duì)運(yùn)動(dòng)”。它計(jì)算的是在一段固定時(shí)間間隔或距離間隔內(nèi)估計(jì)的位姿變化與真實(shí)位姿變化之間的差異。RPE對(duì)于評(píng)估里程計(jì)Odometry的局部精度特別有用因?yàn)樗巳肿鴺?biāo)系對(duì)齊可能引入的誤差。通常我們會(huì)計(jì)算所有固定間隔如1秒、10米的RPE的RMSE來(lái)評(píng)價(jià)系統(tǒng)短期內(nèi)的運(yùn)動(dòng)估計(jì)精度。注意在計(jì)算ATE之前通常需要對(duì)估計(jì)軌跡和真實(shí)軌跡進(jìn)行相似變換對(duì)齊Sim(3)對(duì)齊以消除兩者在尺度、旋轉(zhuǎn)和平移上的初始差異因?yàn)镾LAM系統(tǒng)可能無(wú)法恢復(fù)絕對(duì)的尺度尤其是純視覺(jué)或視覺(jué)-慣性系統(tǒng)。對(duì)齊后再計(jì)算誤差才是公平的。2.1.2 魯棒性指標(biāo)成功率與故障分析精度高不代表好用。在復(fù)雜環(huán)境中如動(dòng)態(tài)物體、光照劇烈變化、紋理缺失、高速運(yùn)動(dòng)系統(tǒng)能否不崩潰、不產(chǎn)生巨大漂移這就是魯棒性。量化魯棒性相對(duì)困難但可以通過(guò)以下方式運(yùn)行成功率在給定的多個(gè)數(shù)據(jù)集或場(chǎng)景序列上系統(tǒng)能夠從頭到尾完整運(yùn)行而不崩潰的比例。軌跡完整性估計(jì)軌跡是否出現(xiàn)大規(guī)模斷裂或丟失。誤差突變量觀察ATE或RPE曲線是否在某些挑戰(zhàn)性片段如急轉(zhuǎn)彎、快速通過(guò)長(zhǎng)廊出現(xiàn)尖峰。記錄這些尖峰出現(xiàn)的頻率和幅度。初始化成功率與時(shí)間對(duì)于多傳感器融合系統(tǒng)初始化如視覺(jué)-慣性對(duì)齊VIO初始化是否穩(wěn)定需要多長(zhǎng)時(shí)間才能收斂到可用狀態(tài)。2.2 基準(zhǔn)數(shù)據(jù)集的選擇與預(yù)處理“巧婦難為無(wú)米之炊”高質(zhì)量、有真值的數(shù)據(jù)集是評(píng)估的前提。針對(duì)LVI-SAM這種激光-視覺(jué)-慣性系統(tǒng)需要選擇同時(shí)提供這三種數(shù)據(jù)的數(shù)據(jù)集。2.2.1 主流多傳感器數(shù)據(jù)集推薦KAIST Urban數(shù)據(jù)集這是LVI-SAM原論文中主要使用的數(shù)據(jù)集之一。它提供了同步的3D激光雷達(dá)、立體相機(jī)和IMU數(shù)據(jù)場(chǎng)景涵蓋城市街道包含豐富的動(dòng)態(tài)物體和復(fù)雜的建筑結(jié)構(gòu)非常適合測(cè)試系統(tǒng)在城市場(chǎng)景下的融合性能。Complex Urban LiDAR-Visual-Inertial (CULV-I) 數(shù)據(jù)集如其名專為復(fù)雜城市環(huán)境設(shè)計(jì)提供了高質(zhì)量的傳感器數(shù)據(jù)和精確的GPS-INS真值挑戰(zhàn)性很高。NTU VIRAL 數(shù)據(jù)集這是一個(gè)多無(wú)人機(jī)UAV協(xié)同采集的數(shù)據(jù)集包含多個(gè)視角的相機(jī)、激光雷達(dá)和IMU適合評(píng)估多機(jī)或復(fù)雜運(yùn)動(dòng)模式。自采數(shù)據(jù)對(duì)于產(chǎn)品化應(yīng)用最終一定要在自己的硬件平臺(tái)和實(shí)際業(yè)務(wù)場(chǎng)景下采集數(shù)據(jù)進(jìn)行測(cè)試??梢允褂酶呔冉M合導(dǎo)航系統(tǒng)如RTK-GNSS/INS作為真值來(lái)源。2.2.2 數(shù)據(jù)預(yù)處理要點(diǎn)拿到數(shù)據(jù)集不是直接扔進(jìn)程序就完事了。預(yù)處理至關(guān)重要時(shí)間同步檢查確保激光雷達(dá)點(diǎn)云、圖像幀和IMU數(shù)據(jù)的時(shí)間戳已經(jīng)對(duì)齊或能夠被LVI-SAM正確解析。許多數(shù)據(jù)集提供了同步后的數(shù)據(jù)但仍需驗(yàn)證。傳感器外參標(biāo)定LVI-SAM需要知道相機(jī)、激光雷達(dá)和IMU之間的精確變換關(guān)系旋轉(zhuǎn)和平移。數(shù)據(jù)集通常提供標(biāo)定好的外參但如果你使用自己的設(shè)備必須事先進(jìn)行高精度的離線標(biāo)定。外參不準(zhǔn)會(huì)直接導(dǎo)致融合失敗。真值格式轉(zhuǎn)換數(shù)據(jù)集的真值軌跡可能是TUM格式、KITTI格式或自定義格式。你需要將其轉(zhuǎn)換為L(zhǎng)VI-SAM輸出軌跡的格式通常是TUM格式timestamp tx ty tz qx qy qz qw以便后續(xù)進(jìn)行誤差計(jì)算。2.3 評(píng)估工具鏈搭建有了指標(biāo)和數(shù)據(jù)我們需要工具來(lái)自動(dòng)化計(jì)算和可視化。2.3.1 軌跡輸出與格式首先需要修改或配置LVI-SAM使其在運(yùn)行過(guò)程中將估計(jì)的軌跡通常是關(guān)鍵幀的位姿以文件形式保存下來(lái)。確保保存的頻率和格式與真值軌跡匹配。常見(jiàn)的格式是前面提到的TUM格式。2.3.2 核心評(píng)估工具evoevo是一個(gè)強(qiáng)大的Python工具包專門用于評(píng)估、可視化和處理SLAM的軌跡數(shù)據(jù)。它是目前社區(qū)的事實(shí)標(biāo)準(zhǔn)。安裝pip install evo --upgrade --no-binary evo核心功能evo_ape計(jì)算絕對(duì)位姿誤差A(yù)PE即ATE。evo_rpe計(jì)算相對(duì)位姿誤差RPE。evo_traj繪制和比較多條軌跡。evo_res比較多個(gè)評(píng)估結(jié)果文件。2.3.3 基礎(chǔ)評(píng)估流程示例假設(shè)你已將LVI-SAM估計(jì)的軌跡保存為lvio_estimate.txt真值軌跡為ground_truth.txt。軌跡對(duì)齊與繪制先直觀看看evo_traj tum lvio_estimate.txt --refground_truth.txt -p --plot_modexyz --align這個(gè)命令會(huì)將估計(jì)軌跡與真值軌跡對(duì)齊--align并在3D空間中繪制出來(lái)-p直觀對(duì)比兩條軌跡的吻合程度。計(jì)算絕對(duì)軌跡誤差evo_ape tum ground_truth.txt lvio_estimate.txt -va --plot --plot_mode xyz --save_results results/ape.zip這里-va表示輸出詳細(xì)統(tǒng)計(jì)信息均值、中位數(shù)、RMSE等并進(jìn)行對(duì)齊。結(jié)果會(huì)以圖表形式展示誤差分布并將統(tǒng)計(jì)結(jié)果保存到results/ape.zip。計(jì)算相對(duì)軌跡誤差evo_rpe tum ground_truth.txt lvio_estimate.txt -va --plot --plot_mode xyz -d 10 -u m --save_results results/rpe.zip-d 10 -u m表示以10米為固定距離間隔計(jì)算RPE。你也可以用-dt 1 -u s以1秒為時(shí)間間隔。3. 深度評(píng)估實(shí)踐超越基礎(chǔ)指標(biāo)完成了基礎(chǔ)精度評(píng)估這只是第一步。要真正理解LVI-SAM的性能特性我們需要進(jìn)行更深入的剖析。3.1 多場(chǎng)景下的魯棒性壓力測(cè)試單一數(shù)據(jù)集的結(jié)果可能有偶然性。系統(tǒng)的真實(shí)能力需要在多樣化的挑戰(zhàn)性場(chǎng)景中得到檢驗(yàn)。我們可以設(shè)計(jì)或選擇具有以下特征的序列進(jìn)行測(cè)試紋理弱化場(chǎng)景如長(zhǎng)走廊、白墻、空曠廣場(chǎng)。這會(huì)挑戰(zhàn)視覺(jué)特征提取與跟蹤測(cè)試系統(tǒng)對(duì)激光雷達(dá)的依賴程度。觀察在此場(chǎng)景下視覺(jué)前端是否失效以及激光雷達(dá)ICP是否能夠維持軌跡不漂移。高動(dòng)態(tài)場(chǎng)景如擁擠的街道、人流密集的商場(chǎng)。動(dòng)態(tài)物體會(huì)污染視覺(jué)特征點(diǎn)和激光雷達(dá)點(diǎn)云導(dǎo)致錯(cuò)誤的關(guān)聯(lián)。評(píng)估系統(tǒng)是否因動(dòng)態(tài)物體而產(chǎn)生軌跡抖動(dòng)或跳變??梢試L試關(guān)閉/開(kāi)啟LVI-SAM中的動(dòng)態(tài)物體濾除模塊如果有的話對(duì)比性能差異??焖龠\(yùn)動(dòng)與劇烈旋轉(zhuǎn)如急轉(zhuǎn)彎、快速升降。這會(huì)考驗(yàn)IMU的預(yù)積分精度和視覺(jué)的快速運(yùn)動(dòng)模糊處理能力。觀察在運(yùn)動(dòng)劇烈時(shí)軌跡是否平滑有無(wú)明顯的滯后或過(guò)沖現(xiàn)象。傳感器退化場(chǎng)景視覺(jué)退化突然的強(qiáng)光、暗光、鏡頭遮擋。測(cè)試系統(tǒng)能否平滑地切換到以激光雷達(dá)為主的模式。激光雷達(dá)退化在特征極度稀疏的環(huán)境如隧道、茂密森林點(diǎn)云匹配困難。測(cè)試系統(tǒng)能否依靠視覺(jué)-慣性里程計(jì)VIO維持運(yùn)行。實(shí)操心得在進(jìn)行壓力測(cè)試時(shí)不僅要看最終的ATE/RPE數(shù)字更要仔細(xì)觀察誤差曲線圖。誤差在哪個(gè)時(shí)間段突然增大對(duì)應(yīng)的是哪段場(chǎng)景結(jié)合錄制好的數(shù)據(jù)回放視頻進(jìn)行時(shí)間戳對(duì)齊分析是定位問(wèn)題根源的最有效方法。例如你可能會(huì)發(fā)現(xiàn)每次經(jīng)過(guò)玻璃幕墻時(shí)ATE都會(huì)有一個(gè)小跳變這很可能是因?yàn)椴A?dǎo)致激光雷達(dá)產(chǎn)生了錯(cuò)誤的多路徑反射點(diǎn)云。3.2 模塊化分析與消融實(shí)驗(yàn)LVI-SAM是一個(gè)緊耦合系統(tǒng)但我們可以通過(guò)修改配置近似地進(jìn)行“消融研究”來(lái)理解每個(gè)模塊的貢獻(xiàn)。純激光雷達(dá)慣性里程計(jì)在配置文件中關(guān)閉視覺(jué)前端和視覺(jué)因子圖優(yōu)化只運(yùn)行激光雷達(dá)-慣性里程計(jì)部分。評(píng)估其精度和魯棒性。這相當(dāng)于一個(gè)“退化版”的LIO-SAM。純視覺(jué)慣性里程計(jì)關(guān)閉激光雷達(dá)的掃描匹配和點(diǎn)云配準(zhǔn)因子只運(yùn)行視覺(jué)-慣性里程計(jì)部分。評(píng)估其性能特別是在開(kāi)闊場(chǎng)景下的尺度漂移情況。緊耦合 vs 松耦合雖然LVI-SAM是緊耦合但可以嘗試對(duì)比一種松耦合的方案例如分別運(yùn)行LIO和VIO然后用濾波器融合兩者輸出。通常緊耦合在理論上精度更高但通過(guò)實(shí)驗(yàn)可以量化這個(gè)優(yōu)勢(shì)在實(shí)際數(shù)據(jù)中到底有多大。回環(huán)檢測(cè)模塊的影響關(guān)閉回環(huán)檢測(cè)模塊重新運(yùn)行長(zhǎng)序列。對(duì)比開(kāi)啟和關(guān)閉回環(huán)時(shí)的ATE。這個(gè)差異直觀地展示了回環(huán)檢測(cè)對(duì)于消除累積漂移、提升全局一致性的巨大作用。你可以特別關(guān)注在回環(huán)發(fā)生時(shí)刻軌跡是如何被“拉回”正確位置的。注意進(jìn)行消融實(shí)驗(yàn)時(shí)務(wù)必確保其他參數(shù)如噪聲參數(shù)、濾波器設(shè)置保持一致否則對(duì)比就失去了意義。每次只改變一個(gè)變量。3.3 資源消耗與實(shí)時(shí)性分析對(duì)于實(shí)際部署性能指標(biāo)不僅僅是精度。資源占用決定了它能在什么算力的設(shè)備上運(yùn)行。CPU/GPU利用率使用top,htop或nvidia-smi監(jiān)控程序運(yùn)行時(shí)的計(jì)算資源占用。分析是哪個(gè)模塊視覺(jué)特征提取、點(diǎn)云匹配、因子圖優(yōu)化是計(jì)算瓶頸。內(nèi)存占用監(jiān)控進(jìn)程的內(nèi)存使用情況特別是在長(zhǎng)時(shí)間運(yùn)行或大規(guī)模建圖時(shí)內(nèi)存是否會(huì)持續(xù)增長(zhǎng)可能存在內(nèi)存泄漏。實(shí)時(shí)性計(jì)算系統(tǒng)的處理頻率Hz。它能否跟上傳感器數(shù)據(jù)的輸入頻率如相機(jī)30Hz激光雷達(dá)10Hz是否存在明顯的處理延遲記錄輸入時(shí)間戳和輸出位姿時(shí)間戳的差值可以評(píng)估系統(tǒng)延遲。對(duì)于控制要求高的應(yīng)用如無(wú)人機(jī)延遲比絕對(duì)精度有時(shí)更重要。軌跡輸出頻率與平滑度輸出的位姿流是否均勻、平滑是否存在因?yàn)閮?yōu)化窗口滑動(dòng)或關(guān)鍵幀篩選導(dǎo)致的輸出“卡頓”實(shí)操記錄示例在搭載Intel i7-11800H和RTX 3060的移動(dòng)工作站上運(yùn)行LVI-SAM處理KAIST數(shù)據(jù)集的一個(gè)中等規(guī)模序列觀察到CPU整體利用率穩(wěn)定在~180%8核16線程其中因子圖優(yōu)化線程占用單核峰值較高。GPU利用率約30%主要用于視覺(jué)特征的提取與匹配。??系統(tǒng)整體能以約10Hz的頻率輸出位姿與激光雷達(dá)幀率同步平均處理延遲約為100ms。關(guān)閉視覺(jué)模塊后CPU利用率下降至~120%但軌跡在紋理缺失區(qū)域漂移明顯增加。4. 結(jié)果可視化、對(duì)比與報(bào)告撰寫評(píng)估產(chǎn)生了一堆數(shù)據(jù)如何呈現(xiàn)才能一目了然4.1 使用evo進(jìn)行高級(jí)可視化evo不僅用于計(jì)算其可視化功能非常強(qiáng)大。多軌跡對(duì)比將LVI-SAM的軌跡與真值軌跡、以及其他SLAM算法如LIO-SAM, VINS-Fusion的軌跡繪制在同一張圖上。evo_traj tum ground_truth.txt lvio_estimate.txt lio_estimate.txt -p --plot_modexyz --align誤差分布圖evo_ape和evo_rpe生成的誤差曲線圖可以清晰地看到誤差隨時(shí)間或軌跡序列的變化定位問(wèn)題區(qū)段。將圖表保存為高分辨率圖片或PDF便于插入報(bào)告或論文。evo_ape tum ground_truth.txt lvio_estimate.txt -va --plot --plot_mode xyz --save_plot results/ape_plot.png4.2 結(jié)果匯總與對(duì)比分析將不同場(chǎng)景、不同配置下的評(píng)估結(jié)果匯總到一個(gè)表格中是進(jìn)行分析和展示的最佳方式。序列名稱 (場(chǎng)景特點(diǎn))配置方案ATE RMSE (m)RPE RMSE (m)運(yùn)行成功率備注 (主要失效模式)KAIST_seq01 (城市街道)LVI-SAM (完整)0.850.12100%全局一致性良好KAIST_seq01 (城市街道)僅LIO1.200.15100%在開(kāi)闊路口有輕微漂移KAIST_seq01 (城市街道)僅VIO3.500.25100%尺度漂移明顯全局誤差大CULV-I_seq02 (隧道)LVI-SAM (完整)1.500.18100%視覺(jué)短暫退化依賴激光雷達(dá)CULV-I_seq02 (隧道)僅VIO失敗N/A0%紋理缺失初始化失敗自采數(shù)據(jù)_廣場(chǎng) (紋理弱)LVI-SAM (完整)2.100.30100%視覺(jué)特征少精度有所下降通過(guò)這樣的表格可以清晰地得出以下結(jié)論完整版LVI-SAM在多數(shù)場(chǎng)景下精度最高魯棒性最強(qiáng)。在視覺(jué)退化場(chǎng)景隧道激光雷達(dá)模塊起到了關(guān)鍵的保底作用。純VIO對(duì)場(chǎng)景紋理依賴極高在挑戰(zhàn)性環(huán)境中容易失敗。純LIO雖然穩(wěn)定但在某些特征稀疏場(chǎng)景如開(kāi)闊路口精度不如融合系統(tǒng)。4.3 評(píng)估報(bào)告的核心要素一份專業(yè)的評(píng)估報(bào)告應(yīng)包含評(píng)估目標(biāo)明確本次評(píng)估要回答的問(wèn)題如LVI-SAM在自采園區(qū)數(shù)據(jù)上的精度如何與A算法相比優(yōu)劣。實(shí)驗(yàn)設(shè)置硬件平臺(tái)CPU, GPU, 內(nèi)存。軟件環(huán)境ROS版本依賴庫(kù)版本。數(shù)據(jù)集描述名稱場(chǎng)景特點(diǎn)真值來(lái)源。LVI-SAM配置參數(shù)關(guān)鍵參數(shù)如關(guān)鍵幀間隔、回環(huán)檢測(cè)閾值、噪聲參數(shù)等如有調(diào)整需說(shuō)明。評(píng)估方法與指標(biāo)說(shuō)明使用的工具evo、計(jì)算的指標(biāo)ATE, RPE RMSE等。結(jié)果與分析這是報(bào)告主體。包含匯總表格、關(guān)鍵軌跡對(duì)比圖、誤差曲線圖。并對(duì)結(jié)果進(jìn)行逐項(xiàng)分析解釋現(xiàn)象背后的原因如“在序列XX的120-150秒處ATE出現(xiàn)峰值對(duì)應(yīng)場(chǎng)景為快速通過(guò)玻璃走廊推測(cè)是激光雷達(dá)在玻璃表面產(chǎn)生噪聲點(diǎn)云所致”。結(jié)論總結(jié)LVI-SAM在測(cè)試中的整體表現(xiàn)指出其優(yōu)勢(shì)和局限性并給出應(yīng)用建議如“該系統(tǒng)在結(jié)構(gòu)化城市環(huán)境中表現(xiàn)優(yōu)異但在大面積紋理缺失的室內(nèi)場(chǎng)景需謹(jǐn)慎使用”。5. 常見(jiàn)問(wèn)題、排查技巧與調(diào)參心得在實(shí)際評(píng)估過(guò)程中你會(huì)遇到各種各樣的問(wèn)題。這里記錄一些典型問(wèn)題和解決思路。5.1 軌跡評(píng)估中的典型問(wèn)題與解決問(wèn)題運(yùn)行evo_ape時(shí)報(bào)錯(cuò)“軌跡長(zhǎng)度不一致”或“找不到匹配的時(shí)間戳”。排查首先用evo_traj單獨(dú)繪制兩條軌跡看時(shí)間范圍是否重疊。使用--t_max_diff參數(shù)放寬時(shí)間戳匹配的閾值例如evo_ape tum ... --t_max_diff 0.01允許10ms的時(shí)間差。最常見(jiàn)的原因是軌跡的起始和結(jié)束時(shí)間沒(méi)有對(duì)齊可以使用evo_traj的--t_offset或--t_start/--t_end參數(shù)進(jìn)行截取。問(wèn)題估計(jì)軌跡與真值軌跡在尺度上明顯不符例如軌跡形狀一樣但大小差了一倍。排查這通常說(shuō)明尺度估計(jì)有問(wèn)題。對(duì)于單目VIO或未正確初始化尺度的系統(tǒng)這是一個(gè)常見(jiàn)問(wèn)題。在evo_ape中使用-a或--align參數(shù)進(jìn)行相似變換對(duì)齊時(shí)會(huì)同時(shí)優(yōu)化尺度、旋轉(zhuǎn)和平移。確保你使用了這個(gè)參數(shù)。如果尺度誤差依然巨大需要檢查L(zhǎng)VI-SAM的視覺(jué)-慣性初始化是否成功或者激光雷達(dá)-慣性標(biāo)定的尺度因子是否準(zhǔn)確。問(wèn)題誤差曲線在某個(gè)點(diǎn)突然變得極大導(dǎo)致整體RMSE很難看。排查不要只看最終的平均數(shù)。用evo_ape ... --plot查看誤差曲線找到突變的點(diǎn)記錄其時(shí)間戳。然后回到數(shù)據(jù)序列的對(duì)應(yīng)時(shí)間點(diǎn)查看當(dāng)時(shí)的傳感器數(shù)據(jù)播放bag包查看圖像和點(diǎn)云。很可能遇到了傳感器失效、極端場(chǎng)景或算法出現(xiàn)了短暫發(fā)散。這種情況下中位數(shù)median誤差可能比RMSE更能代表系統(tǒng)的典型性能。5.2 LVI-SAM運(yùn)行與調(diào)試技巧初始化失敗LVI-SAM的緊耦合初始化對(duì)運(yùn)動(dòng)激勵(lì)有要求。確保設(shè)備開(kāi)始運(yùn)動(dòng)時(shí)有足夠的加速度和旋轉(zhuǎn)例如進(jìn)行“上-下-左-右”的晃動(dòng)而不是靜止或勻速直線運(yùn)動(dòng)啟動(dòng)。軌跡發(fā)散或漂移過(guò)快檢查外參激光雷達(dá)-相機(jī)-IMU之間的外參標(biāo)定不準(zhǔn)是融合系統(tǒng)失敗的元兇之一。務(wù)必使用高精度標(biāo)定方法如離線標(biāo)定工具箱重新標(biāo)定并仔細(xì)核對(duì)配置文件中的參數(shù)。調(diào)整噪聲參數(shù)配置文件中的過(guò)程噪聲和測(cè)量噪聲協(xié)方差矩陣Q,R需要根據(jù)傳感器實(shí)際性能調(diào)整。如果IMU噪聲設(shè)得太小系統(tǒng)會(huì)過(guò)于信任IMU可能導(dǎo)致漂移如果設(shè)得太大則無(wú)法有效抑制視覺(jué)/激光的噪聲。通常這是一個(gè)調(diào)參過(guò)程可以從默認(rèn)值開(kāi)始根據(jù)軌跡結(jié)果微調(diào)。檢查時(shí)間同步雖然硬件同步最好但軟件同步也需精確。確保在ROS中傳感器消息的時(shí)間戳是正確且同步的。檢查sensor_msgs/Imu和sensor_msgs/PointCloud2消息頭中的header.stamp?;丨h(huán)檢測(cè)不生效調(diào)整識(shí)別閾值在配置文件中有關(guān)于回環(huán)檢測(cè)相似度的閾值。如果設(shè)得太高可能無(wú)法檢測(cè)到正確的回環(huán)太低則會(huì)產(chǎn)生誤檢??梢試L試逐步調(diào)低閾值觀察回環(huán)檢測(cè)的數(shù)量和質(zhì)量。檢查點(diǎn)云描述子LVI-SAM使用激光雷達(dá)點(diǎn)云的Scan Context或類似描述子進(jìn)行回環(huán)檢測(cè)。確保點(diǎn)云預(yù)處理如降采樣、濾波沒(méi)有破壞場(chǎng)景的宏觀結(jié)構(gòu)特征。可視化調(diào)試?yán)肔VI-SAM提供的可視化工具如RViz中的回環(huán)約束顯示觀察系統(tǒng)是否產(chǎn)生了回環(huán)因子以及這些因子是否被正確地加入因子圖中進(jìn)行優(yōu)化。5.3 參數(shù)調(diào)優(yōu)經(jīng)驗(yàn)談?wù){(diào)參沒(méi)有銀彈但有一些經(jīng)驗(yàn)法則由粗到細(xì)先調(diào)整影響全局的大參數(shù)如關(guān)鍵幀選擇間隔、優(yōu)化窗口大小、回環(huán)檢測(cè)搜索半徑再調(diào)整局部的小參數(shù)如各種噪聲協(xié)方差。理解參數(shù)物理意義不要盲目亂調(diào)。每個(gè)參數(shù)都對(duì)應(yīng)著算法模型中的一個(gè)假設(shè)例如IMU的角速度隨機(jī)游走噪聲。調(diào)參前最好能查閱論文或代碼注釋理解其含義。記錄每次實(shí)驗(yàn)使用版本控制如Git管理你的配置文件每次調(diào)整參數(shù)后在評(píng)估結(jié)果中注明使用的配置版本。否則很容易混亂。利用腳本自動(dòng)化對(duì)于需要大量重復(fù)運(yùn)行的評(píng)估可以編寫Shell腳本或Python腳本自動(dòng)修改配置文件、啟動(dòng)LVI-SAM、運(yùn)行評(píng)估并記錄結(jié)果極大提升效率。評(píng)估LVI-SAM或者說(shuō)評(píng)估任何一個(gè)復(fù)雜的SLAM系統(tǒng)都是一個(gè)系統(tǒng)工程。它要求你不僅會(huì)運(yùn)行代碼更要理解其原理掌握科學(xué)的評(píng)估方法并具備扎實(shí)的調(diào)試能力。從跑通第一個(gè)demo到能出具一份嚴(yán)謹(jǐn)?shù)脑u(píng)估報(bào)告這中間的每一步都是對(duì)工程能力和研究思維的鍛煉。我個(gè)人的體會(huì)是最耗時(shí)的往往不是運(yùn)行程序而是設(shè)計(jì)實(shí)驗(yàn)、分析結(jié)果和定位問(wèn)題。當(dāng)你能夠清晰地解釋為什么軌跡在這里漂移、為什么回環(huán)在那里生效時(shí)你才真正開(kāi)始駕馭這個(gè)系統(tǒng)。