運動與路徑規劃

位形空間(C空間)

位形空間,幾乎總是簡稱為「C空間」,是一張想像出來的地圖,它囊括了機器人能擺出的每一種姿態,地圖上的一個點就代表一種完整的姿態。這裡的「姿態」指的是把機器人完全確定下來所需的那一整組數字:對一隻簡單的機械臂來說,就是每個關節的角度;對一臺在地面上行駛的輪式機器人來說,就是它的 x、y 位置再加上它朝向哪個方向。如果一臺機器人有六個關節,那它的 C空間裡的一個點就只是一串六個數字,整個空間就有六個維度——根本畫不出來,可拿來計算卻毫無障礙。關鍵的思維轉換在於:在 C空間裡,你不再去想機器人那副金屬身軀在房間裡挪動,而是改去想一個小圓點在這張姿態地圖上滑行。

為什麼要費力搞出這麼一個抽象?因為當機器人被縮成一個點時,規劃運動會變得簡單得多。在真實房間裡,機器人是一個帶著手臂和稜角的笨重形狀,能以各種複雜的方式蹭到牆;規劃時還要追蹤這一切,簡直是噩夢。但在 C空間裡,整個機器人都變成了一個點,於是「機器人能不能從這兒挪到那兒而不撞上任何東西?」這個問題,就化成了一個乾淨得多的問題:「這個點能不能沿一條暢通的路線,從地圖上的某一點走到另一點?」機器人學裡幾乎每一種路徑規劃方法,都在 C空間裡悄悄完成它的工作,而不是在你看得見的物理工作空間裡——正是這個核心技巧,讓運動規劃變得可解。

一隻兩關節機械臂的 C空間是一張平面:橫著讀出第一個關節的角度,豎著讀出第二個關節的角度。機械臂能擺出的任何姿態,都是這張平面上的一個點;而機械臂的一段平滑運動,就是在這張平面上劃出的一條曲線。

姿態化為一個點,運動化為一條曲線——這就是 C空間最樸素的圖景。

C空間的維數等於機器人的自由度數目:一隻六關節機械臂生活在一個六維的 C空間裡。

又稱
C-spaceC空间C空間configuration space