定位、建圖與 SLAM
度量地圖與拓撲地圖
這是機器人記錄世界的兩種截然不同的方式。度量地圖就像一張精確的建築藍圖:它用真實的單位記下實際的距離和形狀,於是機器人知道桌子就在正前方 2.3 公尺處、牆正好在這條線上。拓撲地圖則更像一張地鐵路線圖:它不記精確的距離,而是記住那些重要的地點,以及哪個地點和哪個地點相連——廚房通向走廊,走廊通向客廳。前者抓住的是精確的幾何,後者抓住的是連通關係,也就是各地點之間彼此相連的那副最樸素的結構。
兩種風格各有所長,也各有所短。度量地圖能讓機器人擠過一道窄門、或把輪子停在公分級的精度上,因為它知道確切的尺寸——可它儲存起來很沉重,在整棟樓裡搜尋起來很慢,而且會漂移:微小的測量誤差會在長距離上層層累積,到地圖的遠端時就再也對不齊真實世界了。拓撲地圖則輕盈得令人愉快,做長途規劃時推理起來很容易(「要到大堂,就走廚房 → 走廊 → 樓梯」),而且它對這種漂移毫不在意,因為它從一開始就沒聲稱自己知道確切的距離——但單憑它,機器人無法精確地知道該如何在兩道門之間轉向。
正因為有這種取捨,真實的機器人通常把兩者揉成一張混合地圖:用一副由相連地點構成的拓撲骨架來做大局規劃,並在每個地點內部存一小塊精確的度量片,供你到達之後做那種細緻、謹慎的騰挪。可以把它想成:先用城市地鐵圖來決定路線,再配上一張只畫了你走出來的那個街區的詳細街道圖。
一台家用機器人存了一張拓撲地圖——廚房、走廊、臥室,以及它們之間相連的門——用來決定路線;然後再載入一張臥室的精確度量地圖,好讓它輕輕地停進充電座,又不會碰到床架。
用拓撲地圖選路線,用度量地圖把車停準到公分。
度量地圖回答「我究竟在哪裡?」,拓撲地圖回答「哪些地點彼此相連?」——大多數實用系統兩者都會保留一點。
又稱
另見