← 全部文章
TECH

Preferred Robotics 的 SLAM 技術——Kachaka 為什麼免鋪磁條就能跑

本文編譯自 Kachaka 原廠 Preferred Robotics 的技術文章,由 SLAM 開發工程師親自執筆,屬於技術向內容。

支撐自主移動機器人的 SLAM 技術

對 Kachaka 這類自主移動機器人來說,有兩項能力缺一不可:掌握周圍環境的「地圖建立(Mapping)」,以及知道自己目前在地圖上哪個位置的「自我定位(Localization)」。

機器人剛導入時,機身內並沒有任何地圖資料,因此需要一套「一邊建圖、一邊定位」同時進行的機制——這就是 SLAM(Simultaneous Localization and Mapping,同時定位與建圖)技術。也正因為有 SLAM,Kachaka 才不需要在現場鋪設磁條或貼導引標記。

Preferred Robotics 的 SLAM 完全自行研發(內製),並針對 Kachaka 等各產品線持續調校與改良。

什麼是 SLAM

SLAM 指的是:利用相機、LiDAR、IMU、輪式里程計(wheel odometry)等感測器資訊,同時推定「描述周圍環境的地圖」與「自己在這張地圖中的位置」的問題。地圖建好之後,則把地圖當作已知資訊,單純解自我定位的問題。

原文接下來分三部分:既有研究、實際場域中建圖的難點、以及 Kachaka 的因應之道。

既有研究

以相機為主的研究

不使用深度學習(DL)的傳統視覺定位方法,有 ORB-SLAM、DSO、LSD-SLAM 等;深度學習方法則有 Droid-SLAM 等。

Droid-SLAM 以 Recurrent 結構同時推定相機姿態與物體距離,強健性與精度都很好,但計算成本偏高。另外雖然不屬於 DL,近期也出現了基於 Gaussian Splatting 的方法:Gaussian Splatting SLAM 用一組帶顏色的三維高斯分布來近似世界,計算量比 Droid-SLAM 小、也不需要預先訓練,但計算成本仍然是門檻。

整體而言,視覺定位的研究較為熱門,但普遍面臨幾個課題:對劇烈的視角變化與光源變化較脆弱、計算成本高、計算穩定性不易保證。

以 LiDAR 為主的研究

LOAM 是處理 LiDAR 的經典 SLAM:從點雲中以曲率抽出 Edge 點與 Planar 點,再以各自的代價函數做匹配,屬於特徵點方法,計算量低且精度高,但因為要計算曲率,需要觀測到足夠數量的點。SuMa 則不走特徵點路線,改用 3D LiDAR 輸入產生的法線圖與 LiDAR 影像來推定位置,以名為 Surfel 的小圓盤一邊建圖、一邊把觀測對上去完成定位。LO-Net 不做 LiDAR 特徵設計,改以 End-to-end 學習匹配:法線直接計算而非學習,遮罩(mask)推定與姿態推定共用網路權重,採監督式學習;遮罩用來處理動態物體。它的優勢是免特徵設計、靠學習就能推定姿態,但監督式學習意味著需要付出準備訓練資料集的成本。

LiDAR SLAM 使用主動式感測器,因此較為強健,計算負擔一般也比視覺方法小。而且像 Kachaka 這樣只在平面上移動的機器人,定位用二維就足夠,改用 2D LiDAR 即可便宜地實現。

建圖為什麼困難

建圖可能因為各種因素失敗,代表性的有四類:

  1. 感測器與環境造成的問題
  2. 建圖時移動路徑造成的問題
  3. 計算資源限制造成的問題
  4. 時序資料難以驗證的問題

其中第 3 點的限制特別強,既有研究的方法很難直接照搬。SLAM 必須配合實際裝置與目的去調適——這也是 Kachaka 選擇自行研發 SLAM 的原因。

感測器與環境造成的問題

一般來說,感測器取得的資訊太少、或是感測器便宜品質差導致雜訊變大,SLAM 就會變困難。例如使用 2D LiDAR 時,如果觀測中「角」的特徵太少,推定就會出問題——因為不管怎麼疊合掃描結果看起來都成立。相機則是在牆邊這類顏色單調、對比低的畫面下難以推定,因為不知道該關注影像的哪個部分才能估出移動量。輪式里程計也會因為地面狀況打滑、或因為地面凹凸而累積行走誤差。

建圖時移動路徑造成的問題

即使短期內定位正確,長時間觀測下來誤差仍會累積(漂移,drift)。繞一圈建圖回到起點時,只靠前後感測資訊推定的話,SLAM 認知的自我位置會落在不同的地方。修正這個問題一般採用 Loop Closing 技術:利用影像或 LiDAR 資訊辨識出「這裡以前來過」,再回頭修正至今為止的姿態推定結果。但若建圖路徑幾乎沒有重複經過同一地點,Loop Closing 在原理上就無法成立,誤差也就無從降低。

圖1:有無 Loop Closing 的地圖品質差異(模擬)。黑色箭頭為 LiDAR 觀測位置,點為各處觀測到的點雲。左:無 LC,誤差累積使藍、粉點雲錯位;右:有 LC,點雲完全對齊,位置已被修正

計算資源限制造成的問題

SLAM 多半需要線上即時推論,因此需要許多計算面的工夫。理想上當然是把所有資料毫無保留地用上,但資料量一大就根本存不下。這點在 Kachaka 上更明顯:本身計算資源就有限,還要同時跑許多其他模組,CPU 和記憶體都不能盡情使用,必須在受限資源下做出有效率的推定。

時序資料難以驗證的問題

驗證本身也很難。SLAM 處理的是時序資料,驗證某個功能時,有時得把先前所有時刻的計算全部重跑;而精度有沒有劣化,往往也得跑完整段序列才能評估。Kachaka 有時要替超過 100 公尺的通道建圖,1 度的推定誤差就可能對地圖完成度造成很大影響——即使是細微的修改,也必須用各式各樣的資料確認建圖品質沒有退步。

Kachaka 是怎麼解決的

對「感測器與環境」的對策

與其他 SLAM 相同,Kachaka 融合多種感測器資訊來推定位置;同時讓感測器彼此交叉做異常判定,必要時選擇性地只採用部分感測器,盡可能讓定位持續不中斷。

對「建圖路徑」的對策

Loop Closing 是修正地圖崩壞的重要手段,但能不能執行取決於建圖路線。Kachaka 把「地圖可能呈現的形狀」作為先驗知識引入,即使 Loop Closing 長時間沒有觸發,地圖的整體骨架也不容易崩掉。

Loop Closing 的處理本身也依計算時間需求分成兩階段:線上建圖時跑的是計算負擔輕的簡化版;存檔時則重新檢視整體並做完整最佳化,讓地圖收尾得更漂亮。靠這些設計,即使是大型地圖,建圖成功率也很高。

對「計算資源限制」的對策

Kachaka 無法把 SLAM 需要的所有資訊放進記憶體,因此建圖時會把體積大的資料全部移到儲存空間(storage)暫存。感測資料幾乎都退避到儲存空間後,記憶體用量大幅削減;CPU 使用率則靠前述的兩階段最佳化結構來壓低。

對「時序資料驗證」的對策

Kachaka 每週都用實際資料做精度評估,確認地圖品質相較上一版沒有劣化。評估系統、產出物管理、視覺化全部自行實作,並且同時監控 CPU 使用率與記憶體用量——確保的不只是精度,連效能也沒有退步。

圖2(上):CPU 使用率監控,對所有資料全量監看

圖2(下):記憶體用量監控,對所有資料全量監看

結語

原文最後寫道:自我定位是自主移動系統的根幹技術,卻有著各式各樣的課題;本文只談了建圖,自主移動本身還有許多挑戰。SLAM 是一個研究歷史悠久、至今仍持續演進的領域,Kachaka 的 SLAM 也會繼續開發新功能、持續提升精度。

對企業、機構導入 Kachaka 有興趣的讀者,歡迎與我們聯繫。

參考文獻

  1. Mur-Artal, et al. “ORB-SLAM: a versatile and accurate monocular SLAM system.” IEEE Transactions on Robotics 31.5 (2015): 1147-1163.
  2. Engel, et al. “Direct sparse odometry.” IEEE Transactions on Pattern Analysis and Machine Intelligence 40.3 (2017): 611-625.
  3. Engel, et al. “LSD-SLAM: Large-scale direct monocular SLAM.” European Conference on Computer Vision, 2014.
  4. Teed, et al. “Droid-SLAM: Deep visual SLAM for monocular, stereo, and RGB-D cameras.” NeurIPS 34 (2021): 16558-16569.
  5. Matsuki, et al. “Gaussian Splatting SLAM.” Proceedings of the IEEE/CVF CVPR, 2024.
  6. Zhang, et al. “LOAM: Lidar odometry and mapping in real-time.” Robotics: Science and Systems, 2014.
  7. Behley, et al. “Efficient surfel-based SLAM using 3D laser range data in urban environments.” Robotics: Science and Systems, 2018.
  8. Li, Qing, et al. “LO-Net: Deep real-time lidar odometry.” Proceedings of the IEEE/CVF CVPR, 2019.

出處:Preferred Robotics 原文,文字與圖片版權屬原廠所有。

#Kachaka 技術#SLAM#翻譯