工研院資通所 Orlando Habet 吳俊賢 陳泓翔 吳韻宜 高世偉
同步定位與建圖(Simultaneous Localization and Mapping, SLAM)技術,是利用感測器取得的資料,同時計算本身在未知環境中最接近的位置與移動狀態,並且持續建構並更新該環境的二維或三維的空間資訊,因此本身是一種雞生蛋、蛋生雞的問題。SLAM技術的發展始於1980年代,迄今已有30多年的歷史,最初是為了解決機器人在未知空間的定位問題 [1],如今已廣泛運用於各種領域,包含自駕車、無人機、無人水下載具、太空計畫的無人探測車,甚至家用的掃地機器人等,以滿足即時定位、導航,以及二維或三維空間建圖等不同的應用需求。
由於GPS等室外定位技術的發展已經相當成熟與普及,使得一些室外應用情境不再需要完全依賴SLAM技術,然而對於室內、水下等目前尚缺乏精準定位技術的環境,以及無法佈建定位所需之基礎建設的應用環境,SLAM依然是不可或缺的技術。目前室內建圖技術也運用在工研院資通所開發中的樂齡生活應用服務系統之智慧載具上,該智慧載具以長者為主要服務對象,運用環境智能系統技術(Ambient Intelligence)主動蒐集生活作息與生理數據,提供生活品質資訊(如睡眠、飲食、情緒等)供子女即時主動關懷長者的身心與生活狀態。為了讓智慧載具能夠迅速取得長者的生活環境空間資訊,進而導航到不同的目標執行分析功能,必須仰賴有效率、準確度高的室內建圖技術。
本文將針對室內無人載具的應用領域介紹兩種SLAM技術:GMapping [2]與Cartographer [3];並使用目前較常見的機器人作業系統(Robot Operating System, ROS) [4],分別在模擬與實際的室內環境進行GMapping與Cartographer兩種建圖技術的測試與比較。
精彩內容
1. 室內建圖技術介紹 ■ GMapping ■ Cartographer 2. 室內建圖技術測試 3. 室內建圖技術 未來應用無限 |
GMapping
GMapping於2005年提出,是一種基於Rao-Blackwellized粒子濾波器(Particle Filter)的SLAM技術,使用二維平面雷射測距裝置(Laser Rangefinder)與里程計(Odometry)兩種感測器資料作為演算法的輸入來源,產生二維地圖。基於粒子濾波器的SLAM演算法,主要是將SLAM轉為一種同時推測機器人的空間姿態與地圖的問題,並使用粒子濾波器來推測機器人的移動路徑。演算法一開始將粒子隨機分佈進行取樣,每個粒子代表了根據某一種可能的移動路徑以及感測資料所產生的地圖,如圖1 [5]所示。這些粒子透過加權的方式留下比較接近實際環境的部分,並依此分佈結果重新取樣進行下一輪的計算。隨著機器人持續在空間移動,粒子會逐漸聚集在機器人在空間中最有可能的位置,同時更新地圖。
圖1 基於粒子濾波器的SLAM演算法 [5] Cartographer
Cartographer於2016年提出,是由Google所開發的即時SLAM技術,特點在於可支援多種感測器產生二維或三維的地圖。Cartographer是一種Graph-based的SLAM演算法,主要是將SLAM轉為一種圖論(Graph theory)中的最佳化問題,將機器人的姿態與地圖特徵點的位置定義為圖中的節點(Node),並定義了多種類型的限制式(Constraint)作為連接這些節點的邊(Edge),主要的限制式類型如下 [6]:
● 初始位置的限制式(Initial Constraints):由已知的初始姿態,根據移動速度推測移動後的姿態;
● 相對移動限制式(Relative Motion Constraints):根據前一次移動的姿態,推測下一次移動的姿態;
● 相對量測限制式(Relative Measurement Constraints):針對某一個可被感測器偵測到的特徵點,推測在不同的位置對於該特徵點的量測結果。
透過計算滿足所有限制式的最佳解找出節點的最佳位置,得出機器人目前的姿態與地圖,如圖2 [6]所示。因此Cartographer的基本架構包含了前端與後端,前端利用感測器資料建立圖,包含節點與邊,由後端進行圖的最佳化,計算出節點的最佳位置。
圖 2 基於Graph的SLAM演算法 綜合以上所述,整理Cartographer與GMapping兩種SLAM技術的比較如表1所示。
表1 Cartographer與GMapping的比較
SLAM技術 |
演算法類型 |
支援的感測器 |
產生地圖 |
Cartographer
|
Graph |
● 二維或三維雷射測距裝置
● 深度攝影機
● 里程計 (非必要)
● IMU (建立三維地圖必要) |
二維、三維 |
GMapping
|
Particle filter |
● 二維雷射測距裝置
● 里程計 |
二維 |
室內建圖技術測試
為了評估Cartographer與GMapping兩種SLAM技術在實際應用上的差異,我們將這兩種SLAM技術在機器人作業系統(Robot Operating System, ROS)中執行,使用預設值分別進行模擬與實際測試,進行建圖效果以及系統資源使用率的比較。在模擬測試中,我們建構了一個室內模擬環境(面積為11公尺 x 11公尺),使用具有二維雷射測距裝置的模擬機器人在模擬環境中沿著預設路徑移動,分別使用兩種SLAM技術,以預設參數值設定分別進行建圖,模擬環境則運作在x86平台的電腦上。Cartographer與GMapping在模擬測試的建圖結果如圖3所示,可發現兩者產生的地圖輪廓與比例都很接近實際環境,不過Cartographer產生地圖的變形程度較GMapping產生的地圖輕微。
圖3 Cartographer(左下)與GMapping(右下)在室內模擬環境(上)的建圖結果 Cartographer與GMapping在模擬測試的系統資源使用率如表2所示,可發現Cartographer所需的CPU資源約為GMapping的1/3左右,記憶體資源需求則約為GMapping的1/2左右。除了SLAM參數並未最佳化外,也表示兩者演算法的複雜度有所差異。
表2 Cartographer與GMapping在模擬測試的系統資源平均使用率
SLAM技術 |
CPU平均使用率 (%) |
Memory平均使用率 (MB) |
Cartographer |
20.2 |
38.4 |
GMapping |
65.0 |
76.7 |
在實際測試中,我們使用搭載二維雷射測距裝置與NVIDIA TX2的機器人作為測試平台,於辦公室環境中沿著預設路徑移動,分別使用兩種SLAM技術進行建圖。Cartographer與GMapping在實際測試的建圖結果如圖4所示,可發現兩者產生的地圖輪廓都很接近實際環境,不過受到感測器的誤差影響,兩者產生的地圖都出現了程度不等的變形。
圖4 Cartographer(左下)與GMapping(右下)在室內實際環境(上)的建圖結果 Cartographer與GMapping在實際測試的系統資源使用率如表3所示,可發現Cartographer所需的CPU資源約為GMapping的1/4左右,記憶體資源需求則約為GMapping的1/3左右。兩者的差異比模擬測試的結果來的顯著。
表3 Cartographer與GMapping在實際測試的系統資源平均使用率
SLAM技術 |
CPU平均使用率 (%) |
Memory平均使用率 (MB) |
Cartographer |
24.0 |
22.2 |
GMapping |
98.5 |
65.3 |
室內建圖技術 未來應用無限
比較Cartographer與GMapping兩種SLAM技術測試的結果,可發現Cartographer不論在模擬與實際測試都能以低於GMapping的資源使用率,獲得相近甚至較好的建圖結果。進一步從兩者SLAM技術的實作方式進行分析,GMapping預設使用了100個粒子,代表最多需儲存100個推測的移動路徑以及地圖,造成計算量與記憶體需求較高,然而降低粒子數量則會降低推測結果的準確性。Cartographer為了計算滿足所有限制式的最佳解,使用了Ceres Solver [7]針對大型的非線性最小平方(Non-linear Least Squares)問題進行求解速度的最佳化,在使用預設參數的情況下,在NVIDIA TX2平台上的資源使用率較GMapping低。此外,從實際測試的結果與模擬測試結果的一致性,顯示使用模擬環境進行SLAM技術測試的可行性,如此可以加快測試與最佳化SLAM演算法的效率。
目前室內建圖技術也運用在工研院資通所開發中的樂齡生活應用服務系統之智慧載具上,必須仰賴有效率、準確度高的室內建圖技術才能達到迅速取得環境空間資訊,進而導航到不同的目標執行分析功能的目的。未來此套室內建圖技術與模擬測試環境,將可進一步針對醫療照護、工業生產與倉儲管理等不同應用情境的需求,搭配合適的感測器進行室內建圖功能的最佳化。
參考文獻
相關連結: 回179期_打造無人駕駛的未來世界專輯