TF2(Transform Tree)

定義

TF2 是 ROS2 裡管理座標系轉換關係的系統,把所有座標系(frame)組織成一棵樹,每個座標系(除了根節點)恰好有一個父座標系,任何模組只要知道兩個座標系的名字,就能透過 lookupTransform 查詢兩者之間任意時刻的相對關係。

關鍵特性

  • Static 與動態廣播分開:不隨時間變化的關係(感測器固定在機身上)用 StaticTransformBroadcaster 只廣播一次;會隨時間變化的關係(關節角度、機器人移動位置)用 TransformBroadcaster 持續更新。
  • map → odom → base_link:Nav2 慣例用這條 TF 鏈,把「長期精準但可能跳動」的 map 座標系,跟「短期平滑但會漂移」的 odom 座標系分開,避免定位修正的瞬間跳動干擾即時控制。
  • 查詢可能失敗lookupTransform 可能拋出 LookupException(座標系不存在)或 ExtrapolationException(查詢時間點超出 buffer 已知範圍),呼叫端需要妥善處理例外,不能假設查詢一定成功。

使用情境

  • 幾乎所有牽涉多個座標系互動的功能(顯示模型、規劃路徑、處理感測器資料)都建立在 TF2 之上。

延伸閱讀