tinySLAM (CoreSLAM)
tinySLAM 以少於 200 行 C 程式實作雷射 SLAM,核心只有兩個函式:計算掃描與地圖的距離,以及更新地圖。地圖是 1 cm 解析度的網格,每個障礙點不是畫成單一點,而是以修改的 Bresenham 演算法畫出以障礙為尖端的「洞」形函數,使匹配較容易收斂;距離函數則直接加總轉換後掃描端點所在格值。單機版以簡單的蒙地卡羅搜尋做掃描對地圖匹配;也可把距離函數當作粒子濾波的似然函數,以處理歧義、重新定位與里程打滑。
本頁內容
Minimal C laser SLAM using a 1 cm grid of 'hole' functions around obstacle hits, scan-to-map scoring by summing map values at scan endpoints, and Monte Carlo search or particle filtering for pose estimation.
技術屬性
欄位內容為文獻擷取紀錄的原文用語(英文),以原文為據;「未查證」表示本研究尚未讀到該資訊,不代表該方法不具備此能力。
| 感測輸入 | 2D laser scanner (Hokuyo URG-04LX)、wheel odometry (two free odometry wheels with 2000-point encoders)、GPS and compass optionally fused in the particle filter (the compass without good success) |
|---|---|
| 原文測試平台 | wheeled UGV (MinesRover, six-wheel rocker-bogie) |
| 狀態估計 | stand-alone: simple Monte Carlo search of the pose that best matches the scan to the map; or particle filter in which the scan-to-map distance is each particle's likelihood, with a slippage model (10% of particles stay in place with high noise) (Sec. IV) |
| 資料關聯 | no explicit correspondences: the scan-to-map distance sums the map values under the transformed scan endpoints (Algorithm 2) |
| 時間表示 | discrete poses |
| 去畸變 | each scan corrected with a constant longitudinal and rotational speed during the sweep (Sec. III) |
| 迴圈閉合 | none explicit |
| 全域最佳化 | none |
| 地圖表示 | 2D grid of 2048 x 2048 16-bit cells at 1 cm per cell; each obstacle hit is drawn as a 'hole' function with its tip at the obstacle using a modified Bresenham ray update and an integration-speed (quality) parameter (Sec. IV; Algorithms 1, 3, 4) |
| 先驗資訊 | none (a full prior map can be loaded for relocalization in the particle-filter version) |
| 可輸出幾何 | 2D grid map and robot trajectory |
| 計算需求 | particle filter run on a desktop PC over a wireless link; the robot's QWERK module (ARM9 with FPGA, 200 MHz) handles sensors and actuators; SLAM runtime not reported (Sec. III; Fig. 3) |
使用設備
原文使用的感測器、運算硬體與載具(equipment)。型號保留原文寫法,連結到設備頁中同一型號的歸併名稱;角色依原文用途分為方法輸入、資料集感測器、執行運算平台、參考或真值量測(reference or ground truth)與比較對象設備。
| 類別 | 型號(原文寫法) | 角色 | 資料集 | 原文規格 | 出處 |
|---|---|---|---|---|---|
| LiDAR | Hokuyo URG-04LX | 方法輸入 | 未標示 | 10 Hz horizontal scan over about 240 deg; maximum range limited to 4 m (another sentence states 5 m); USB | (Steux & Hamzaoui, 2010, Sec. III; Fig. 1 caption ('HOKUYO URG-04')) |
| 輪式或腿式里程計 | 2000 points encoders | 方法輸入 | 未標示 | on the two free-rotating odometry wheels | (Steux & Hamzaoui, 2010, Fig. 2 caption) |
| 載具平台 | MinesRover | 方法輸入 | 未標示 | six wheels: four driving and steering, two free odometry wheels; rocker-bogie; 14.8 V 4.1 Ah LiPo; four 45 W motors; top speed 3 m/s | (Steux & Hamzaoui, 2010, Sec. III; Figs. 1-2) |
作者報告的優勢與限制
優勢
- Laser-only speed and yaw-rate estimates matched well-calibrated odometry at up to 2.5 m/s and 250 deg/s, with about one frame of latency (Figs. 5-6).
- Laser-only tinySLAM ignored an odometry slippage event when the robot hit a wall (Fig. 6).
- Loop closure in the laboratory map, combining odometry and laser, is described as almost perfect (Fig. 7).
- Displacements below the 1 cm map resolution can be measured because many laser points contribute (Sec. IV).
限制
- The Hokuyo URG-04LX range (limited to 4 m) and 10 Hz rate are restrictive at 3 m/s; many readings were zero or ambiguous in the cluttered laboratory (Sec. III).
- Compass integration did not work well because of magnetic noise (Sec. IV).
- (inference) No quantitative accuracy or runtime evaluation; results are plots and one laboratory map.
營建工程相關證據
未在營建場域驗證;實驗只在 Mines ParisTech 機電實驗室進行。其極簡程式與低成本短距雷射的組合,對教學或低成本 2D 平面建圖有參考價值,但缺乏定量精度證據,不宜作為工程量測依據(推論)。
原文驗證環境:已完工建築
報告的性能數據
性能數據仍在分批查證,目前尚未收錄此方法的報告值。
來源
Steux & Hamzaoui, 2010
(2010)tinySLAM: A SLAM algorithm in less than 200 lines C-language program2010 11th International Conference on Control, Automation, Robotics and Vision (ICARCV 2010), Singapore, pp. 1975-1979
DOI 10.1109/icarcv.2010.5707402程式碼
同儕審查已出版已讀全文經典
相關版本
- 程式碼釋出:OpenSLAM tinySLAM source (MIT licence per OpenSLAM page) https://github.com/OpenSLAM-org/openslam_tinyslam
- alias:OpenSLAM page coreslam.html carrying the tinySLAM description https://openslam-org.github.io/coreslam.html
程式碼:https://github.com/OpenSLAM-org/openslam_tinyslam(授權:MIT (stated on the OpenSLAM.org tinySLAM page; the page also states that commercial use or redistribution is to be arranged with the authors))。有公開程式碼不等於已被重現,也不代表目前版本與論文版本相同。