Transform
- 又稱: Transformation, Pose Transform, Rigid Transform
- 類別: Foundations & spatial maths › Frames & transforms
- 標籤: fundamentals, mathematics, geometry
以數學描述座標框架之間的位置與方向關係,由 3D 空間中的一個旋轉與一個平移組成。
定義
座標轉換描述 3D 空間中兩個座標框架之間的位置與方向關係。座標轉換由一個旋轉(常以四元數或旋轉矩陣表示)與一個平移(3D 向量)組成。座標轉換可以組合(串接)來關聯相距較遠的框架,也可以求反來反轉關係。在機器人學中,座標轉換對於把感測器讀數轉換到機器人底座框架、規劃手臂運動與協調多機器人系統等任務不可或缺。常見的表示方式包括 4x4 齊次轉換矩陣與位姿訊息(位置 + 四元數)。
為何重要
座標轉換是把一個點或位姿從一個座標框架移到另一個座標框架的運算,也就是同時套用一個旋轉與一個平移。它是機器人幾何的主力:每當攝影機的偵測結果變成抓取目標,或感測器讀數加入地圖時,都是座標轉換在做事。了解座標轉換可以組合,而且因為旋轉不具交換性所以順序很重要,正是能正常運作的幾何程式碼,與以微妙而一致的方式出錯之程式碼的差別。
主要應用
- 把感測器偵測結果轉換成機器人或世界座標
- 沿著運動鏈串接各連桿位姿,以求出工具位姿
- 把不同視角的點雲配準成單一點雲
- 手眼校正,求解未知的安裝座標轉換
- 以移動物體或固定地圖為參考來表示路徑點
- 模擬,相對於世界定位每個模型與感測器
實際應用
串接是日常的用法:攝影機看到一個物體,位姿必須依序經過攝影機 → 手腕 → 手臂底座 → 世界,手臂才能據以行動。在 ROS 2 中,tf2 會自動走過這條鏈,這就是為什麼為新安裝的感測器發布正確的座標轉換,就是整合它的全部工作。在內部,這些通常是 4×4 齊次矩陣,不過旋轉常以四元數儲存,以避免萬向鎖並能乾淨地插值,這也是為什麼四元數遍布在機器人訊息定義中。
常見誤解
- 座標轉換可以交換:先旋轉再平移與反過來不同,把兩者對調是典型的錯誤
- 只要小心處理正負號,座標轉換與其反轉換就能互換:剛體座標轉換的反轉換並不只是把各分量取負號
- 歐拉角是安全的表示方式:它有萬向鎖問題,而且有多種慣例,這就是為什麼實務上以四元數為主
- 小的旋轉誤差無傷大雅:它們造成的位置影響會隨著與原點的距離而放大,因此底座處幾分之一度的誤差,到了工具處就是數毫米
誰需要了解
- 任何要把攝影機偵測結果轉換成手臂能據以行動之資訊的人
- 撰寫涉及多個框架之幾何程式碼的開發者
- 在已安裝裝置之間進行校正的工程師
- 學習齊次座標轉換與四元數的學生
- 任何機器人總是偏差一個固定位移或旋轉的人
相關技術
- 齊次轉換矩陣
- 四元數
- tf2(ROS 座標轉換函式庫)
- URDF 與運動鏈
- Denavit-Hartenberg 參數
- SE(3) 與李群
- 偏航/俯仰/滾轉與歐拉角
- 空間代數
相關術語
影片
- Coordinate Transformations - How robots move through space: Articulated Robotics