空間數學與剛體運動

變換樹(tf)

變換樹是機器人軟體中的一塊,它負責追蹤機器人每一個有名字的部件相對於其他每個部件在什麼位置,以及這些關係如何隨時刻變化。機器人身上佈滿了有名字的參考系——底座上一個、每個關節上一個、相機上一個、夾爪上一個、還有一個固定在世界上——而你通常需要知道的,是某個參考系從另一個參考系看過去的位姿(位置加朝向):此刻,夾爪相對於相機在哪裡?變換樹把所有這些關係都存起來,並能隨時回答這一類問題。它最著名的形態出現在機器人操作系統裡,乾脆就叫 tf。

之所以叫樹,是因為這些參考系像家譜一樣掛在一起:世界參考系是根,機器人底座掛在世界之下,第一節臂掛在底座之下,下一節又掛在它之下,如此一直延伸到指尖和相機。每一條從父到子的連接,都存著一個剛體變換——把你從父參考系帶進子參考系的那次旋轉加平移。要算出任意兩個參考系之間的關係,哪怕它們分處遙遠的不同枝杈,軟體只需沿著連接二者的那條路徑一段段走下去,把沿途的變換依次相乘即可。把參考系排成一棵樹、讓每個參考系恰好只有一個父節點,就保證了任意兩個參考系之間,永遠有一條清晰、無歧義的鏈路。

關鍵在於,變換樹並不是一張凝固的快照——它帶著時間戳、並被持續更新,因為機器人的關節和輪子一直在動。不同部件在不同瞬間各自上報自己的變換,於是系統會保留一小段滾動的歷史,還能做插值,以回答這樣的問題:在那張照片拍下的那一刻,夾爪相對於地圖究竟在哪裡。正是這一點,讓感知、規劃和控制能就同一幅共享的空間圖景達成一致:一台深度相機發現一個物體,變換樹能把這一發現換算到機械臂自己的座標裡,機械臂便能伸手去夠它——這一切之所以成立,是因為每個部件都信任同一張被持續維護的、記錄著誰在何處的地圖。

一台移動機器人的相機看到前方兩米處有個門口。由於變換樹知道從相機到輪子再到地面的那條鏈路,導航程式能立刻把這個門口改用地面座標重新表述,並徑直駛過它。

變換樹能把一個部件的視角換算成任何其他部件的座標,於是整台機器人共享同一張空間地圖。

tf 是機器人操作系統中那個著名變換樹庫的名字;而其背後的思想——一棵帶時間戳的參考系關係之樹——則適用於一般的機器人軟體。

又稱
tf treeframe tree坐标变换树tf 树