MC2SLAM
MC2SLAM 以兩個連續 LiDAR 掃描一起估計第一個掃描期間的運動:先以 IMU 積分(無 IMU 時以線性外推)預測兩掃描的軌跡,再在其上加一個隨時間線性增長的六自由度偏差,用點到平面殘差把稀疏取樣的查詢點配準到最近約 100 個掃描構成的局部地圖,完成配準與去畸變;殘差尺度以中位數絕對偏差穩健估計。每次只補償前一個掃描並插入近似 Poisson 圓盤取樣的局部地圖,得到的相對位姿再與 IMU 預積分因子放入因子圖,估計速度與偏差並使軌跡與重力對齊。
本頁內容
Inertial LiDAR odometry that estimates motion over two consecutive sweeps as a linear-in-time bias on an IMU-predicted trajectory, registering Poisson-disk-sampled query points point-to-plane to a Poisson-disk local map with MAD-scaled robust weights, then fuses the resulting relative poses with IMU preintegration in a factor graph.
技術屬性
欄位內容為文獻擷取紀錄的原文用語(英文),以原文為據;「未查證」表示本研究尚未讀到該資訊,不代表該方法不具備此能力。
| 感測輸入 | 3D multi-beam LiDAR (Velodyne HDL-32 with built-in IMU in the authors' data; Velodyne HDL-64 in KITTI without IMU)、IMU (built-in HDL-32 IMU) |
|---|---|
| 原文測試平台 | vehicle (car-mounted HDL-32 and KITTI)、wearable (helmet-mounted HDL-32, indoor and outdoor walking) |
| 狀態估計 | two parts: per-sweep robust nonlinear least squares for a 6-DoF bias on an IMU-predicted trajectory over two sweeps (Tukey loss, MAD-based residual scale, Ceres), and an online factor graph with pose prior, laser odometry and IMU preintegration factors solved in Ceres every five sweeps (Sec. 3.2, 4) |
| 資料關聯 | Poisson-disk-like query points (minimum spacing about 20 cm, then about 500 random points) matched point-to-plane to a local map within radius epsilon; plane normal by eigen analysis of neighbours (Sec. 3.1-3.2) |
| 時間表示 | discrete factor-graph states at sweep starts; within two consecutive sweeps, an IMU-integrated (or linearly extrapolated) trajectory corrected by a bias growing linearly in time in the log map (Eq. 1) |
| 去畸變 | two-scan motion compensation: the trajectory over sweeps k and k+1 is estimated jointly with registration, then only sweep k is compensated and inserted into the local map (Sec. 3.2) |
| 迴圈閉合 | not in the reported system; authors state their implementation can close loops but the chapter focuses on odometry (footnote 1) |
| 全域最佳化 | online factor graph over all sweep poses with IMU velocity and bias nodes (one dynamic node per five pose nodes); IMU factors re-integrated when the base state changes (Sec. 4) |
| 地圖表示 | local map of all compensated points from the last about 100 sweeps, inserted only if farther than about 5 cm from stored points (approximate Poisson disk), stored in a uniform grid ordered by time (Sec. 3.2) |
| 先驗資訊 | yaw-only constrained prior pose at the origin; gravity alignment from IMU; for KITTI an approximate intrinsic correction by Deschaud (Sec. 4.1, 5) |
| 可輸出幾何 | odometry trajectory and motion-compensated sweeps accumulated into a point cloud map (Fig. 1) |
| 計算需求 | real time on an Intel i7-3700K (as written): about 32 ms per sweep for motion compensation averaged over 1000 frames of campus run 1; pose-graph optimization about 108.6 ms every five sweeps in a separate thread (Sec. 5, Runtime) |
使用設備
原文使用的感測器、運算硬體與載具(equipment)。型號保留原文寫法,連結到設備頁中同一型號的歸併名稱;角色依原文用途分為方法輸入、資料集感測器、執行運算平台、參考或真值量測(reference or ground truth)與比較對象設備。
| 類別 | 型號(原文寫法) | 角色 | 資料集 | 原文規格 | 出處 |
|---|---|---|---|---|---|
| LiDAR | Velodyne HDL 32歸入:Velodyne HDL-32E | 方法輸入 | MC2SLAM own datasets (campus run 1-2, campus drive, field) | multi-beam LiDAR with built-in IMU; per-point timestamps from datasheet | (Neuhaus et al., 2019, Sec. 5 Own Datasets) |
| LiDAR | Velodyne HDL 64歸入:Velodyne HDL-64E | 資料集感測器 | KITTI odometry | scans pre-compensated in the KITTI odometry release | (Neuhaus et al., 2019, Sec. 5 KITTI Dataset) |
| 慣性量測單元(IMU) | Velodyne HDL 32 built-in IMU歸入:Velodyne HDL-32 built-in IMU | 方法輸入 | MC2SLAM own datasets (campus run 1-2, campus drive, field) | 原文未報告 | (Neuhaus et al., 2019, Sec. 5 Own Datasets) |
| GNSS 接收器 | commercial GPS/INS (model not stated) | 參考或真值量測 | KITTI odometry | ground truth for the training sequences | (Neuhaus et al., 2019, Sec. 5 KITTI Dataset) |
| 載具平台 | helmet (head-mounted sensor) | 方法輸入 | MC2SLAM own datasets (campus run 1-2, campus drive, field) | person walking indoors and outdoors (campus run) | (Neuhaus et al., 2019, Sec. 5; Fig. 1) |
| 載具平台 | car | 方法輸入 | MC2SLAM own datasets (campus run 1-2, campus drive, field) | car-mounted sensor (campus drive, field) | (Neuhaus et al., 2019, Sec. 5) |
| 運算硬體 | Intel i7-3700K (as written)歸入:Intel i7-3700K | 執行運算平台 | 未標示 | 原文未報告 | (Neuhaus et al., 2019, Sec. 5 Runtime) |
作者報告的優勢與限制
優勢
- Lower KITTI training translation drift than IMLS on 6 of the 11 listed sequences and lower than LOAM on all 11 (Table 1)
- KITTI test set translational error 0.69%, shared 4th/5th place among LiDAR methods at the time, with better rotation error and runtime than the equally ranked IMLS (Sec. 5)
- IMU integration is essential for erratic head-mounted motion: campus run drift 0.41% and 0.54% with IMU versus 8.96% and 15.65% without (Table 2)
- Local map strongly reduces long-term drift, e.g. field 0.42% with versus 7.50% without (Table 2, Fig. 3)
- About 32 ms per sweep for motion compensation, real time on a desktop CPU (Sec. 5)
限制
- KITTI scans had to be re-distorted with the previous relative pose and approximately recalibrated, which may introduce errors; the IMU part could not be evaluated on KITTI (Sec. 5)
- Own-dataset accuracy is measured only by drift at manually registered loop checkpoints, not against an independent 6-DoF ground truth (Sec. 5)
- IMU factors are re-integrated whenever the base state changes, which may be an issue for very long trajectories (Sec. 4.1)
- Loop closing is not part of the evaluated system (footnote 1)
- Using 1500 instead of 500 query points slightly improves accuracy but more than doubles bias-estimation time (17.6 to 37.8 ms) (Sec. 5)
營建工程相關證據
原論文只測 KITTI、校園車載與頭戴式室內外資料,未在營建場域驗證。但以 MC2SLAM 為基礎的 Vision & Robotics 團隊參加兩屆以營建場景為主的 Hilti SLAM Challenge:2021 年在論文表列的 13 支具名隊伍中得分第三(406 分,RMSE 0.101 m)(Helmberger et al., 2022),2022 年 Hilti-Oxford 在表列隊伍中得分第二(443.8 分,平均 ATE 3.94 cm),其中施工中建物一樓、多樓層與樓梯序列分別為 1.1、2.0 與 4.8 cm (Zhang et al., 2023c)。這些參賽版本另加迴圈閉合與光束法平差,與本章所述純里程計不同,精度不能直接歸於原論文方法。
原文驗證環境:公開基準、跨場域
報告的性能數據
以下是原文作者報告的性能數值(author-reported results),不是本研究重新量測的結果。每張圖只並列同一個比較組(comparison group,同一張表、同一組實驗設定)內的方法;不同比較組之間的數值不可直接比較,也不構成排名。
本方法共出現在 4 個比較組,合計 28 筆紀錄。
Neuhaus et al., 2019 · Table 2 本方法 12 筆
指標translation drift per meter (in %) at loop checkpoints
表格設定(擷取紀錄原文):Own HDL-32 datasets; translation drift per metre (%) computed at manually registered loop checkpoints and averaged over 10 runs with different random seeds; settings vary local map and IMU (Neuhaus et al., 2019, Table 2)
translation drift per meter (in %) at loop checkpoints,MC2SLAM own datasets · campus run 1
只並列這張表在相同設定下報告的方法;以「本方法:」開頭者為本頁方法。失敗、未執行與未報告以標記呈現,不是 0。
按 Tab 進入圖表後,用上下方向鍵逐一瀏覽各類別,Esc 關閉提示框;也可開啟表格檢視閱讀全部數值。
這些是 Neuhaus et al., 2019 在此表設定下報告的數值(author-reported results),只能在同一個比較組內對照,不代表方法在其他資料或設定下的表現。
資料來源作者報告值(Neuhaus et al., 2019, Table 2)
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| Local Map yes, IMU yes本方法原文提出 | 0.41% | (Neuhaus et al., 2019, Table 2) |
| Local Map no, IMU yes本方法 | 1.9% | (Neuhaus et al., 2019, Table 2) |
| Local Map yes, IMU no本方法 | 8.96% | (Neuhaus et al., 2019, Table 2) |
Neuhaus et al., 2019 · Table 1 本方法 11 筆
指標translation drift per meter (in %)
表格設定(擷取紀錄原文):KITTI odometry training set; translation drift per metre (%) of LOAM [24], IMLS [6] and MC2SLAM; LiDAR only (no IMU in KITTI odometry); scans re-distorted and intrinsically corrected as in IMLS (Neuhaus et al., 2019, Table 1)
translation drift per meter (in %),KITTI odometry · 00 Urban
只並列這張表在相同設定下報告的方法;以「本方法:」開頭者為本頁方法。失敗、未執行與未報告以標記呈現,不是 0。
按 Tab 進入圖表後,用上下方向鍵逐一瀏覽各類別,Esc 關閉提示框;也可開啟表格檢視閱讀全部數值。
這些是 Neuhaus et al., 2019 在此表設定下報告的數值(author-reported results),只能在同一個比較組內對照,不代表方法在其他資料或設定下的表現。
資料來源作者報告值(Neuhaus et al., 2019, Table 1)
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| LOAM [24] | 0.78% | (Neuhaus et al., 2019, Table 1) |
| IMLS [6] | 0.5% | (Neuhaus et al., 2019, Table 1) |
| Ours本方法原文提出 | 0.51% | (Neuhaus et al., 2019, Table 1) |
Neuhaus et al., 2019 · Text Sec.5 Runtime 本方法 4 筆
資料集與序列MC2SLAM own datasets · campus run 1
表格設定(擷取紀錄原文):Runtime of MC2SLAM components on campus run 1: mean over 1000 frames of campus run 1; 500 query points (Neuhaus et al., 2019, Text Sec.5 Runtime)
motion compensation per sweep (total),MC2SLAM own datasets · campus run 1
這張表在此指標與資料序列只列出本方法一筆,沒有可並列的其他方法,因此不畫圖,數值與出處見下表。這是 Neuhaus et al., 2019 在此表設定下報告的數值(author-reported results),不代表方法在其他資料或設定下的表現。
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| MC2SLAM本方法原文提出硬體:Intel i7-3700K (as written) | 32 ms | (Neuhaus et al., 2019, Sec. 5 Runtime) |
Neuhaus et al., 2019 · Text Sec.5 本方法 1 筆
指標translational error
資料集與序列KITTI odometry · 11-21 (online test set)
表格設定(擷取紀錄原文):KITTI online test set result as listed on the KITTI website (entry MC2SLAM), shared 4th/5th place among laser-based methods at the time of writing (Neuhaus et al., 2019, Text Sec.5)
translational error,KITTI odometry · 11-21 (online test set)
這張表在此指標與資料序列只列出本方法一筆,沒有可並列的其他方法,因此不畫圖,數值與出處見下表。這是 Neuhaus et al., 2019 在此表設定下報告的數值(author-reported results),不代表方法在其他資料或設定下的表現。
| 方法(原文寫法) | 報告值 | 出處 |
|---|---|---|
| MC2SLAM本方法原文提出 | 0.69% | (Neuhaus et al., 2019, Sec. 5 KITTI Dataset) |
來源
Neuhaus et al., 2019
(2019)MC2SLAM: Real-Time Inertial Lidar Odometry Using Two-Scan Motion CompensationPattern Recognition (GCPR 2018), Lecture Notes in Computer Science 11269, LNCS 11269, pp. 60-72
DOI 10.1007/978-3-030-12939-2_5
同儕審查已出版已讀全文近十年查證後修正
相關版本
- 資料集:Authors' MC2SLAM datasets page (URL printed in the chapter; not opened) https://agas.uni-koblenz.de/data/datasets/mc2slam/