運動與路徑規劃
代價地圖
代價地圖是把機器人周圍環境切成一格格小方塊的地圖,每個方塊裡存著一個數字,表示穿過那個位置有多「貴」、有多冒險。一塊空曠地面對應的方塊很便宜,所以代價很低;正好壓在牆上的方塊是禁止通行的,代價就拉到最高;而緊挨著牆的方塊代價中等偏高,是在提醒機器人留出一點餘地。當規劃器尋找路線時,會沿著每一條候選路徑把這些逐格的代價加起來,並偏好總和最小的那條路線——就像在過溪流時,挑選一組最便宜的踏腳石一樣。
讓代價地圖變得安全的一個關鍵技巧是障礙物膨脹:在每個真實障礙物的周圍,代價地圖會塗上一圈代價升高的光暈,並隨距離逐漸淡出,彷彿把障礙物吹脹得比它實際更大。之所以這樣做,是因為機器人並不是一個點——它有寬度——所以如果允許路徑貼著牆的真實邊緣擦過去,機器人的身體其實會撞上。透過把障礙物膨脹,規劃器就能繼續把機器人當作一個點來處理,同時仍然留出一段真正的安全間隙。光暈的大小通常設為機器人自身的半徑,再加上一點讓人放心的餘量。
代價地圖通常是根據即時感測器資料——雷射掃描、深度相機、碰撞條——不斷重新建構並持續更新的,因此它既能捕捉到儲存地圖中固定的牆,也能捕捉到新出現的東西,比如一個走進走廊的人。導航系統常常同時維護兩層:一層是覆蓋整個區域、變化緩慢的全域代價地圖,用來規劃總體路線;另一層是圍繞機器人、更新很快的局部代價地圖,用來即時躲避突發情況。
一台倉庫機器人的代價地圖上,每根貨架腿周圍都鼓起一圈厚厚的紅色光暈;規劃器沿著代價便宜的綠色中線穿過過道,自動讓機器人的「肩膀」避開貨架。
膨脹後的障礙物,讓把機器人當作一個點的規劃器也能安全地駕馭一台寬大的機器。
這些方塊通常稱為「柵格單元」。機器人絕不可進入的單元是「致命」單元;它們周圍那圈逐漸淡去的警戒光暈,就是「膨脹層」。
又稱
另見