Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

Forward Kinematics

  • 又稱: FK, direct kinematics
  • 類別: Foundations & spatial maths › Kinematics
  • 標籤: kinematics, robot-arm, mathematics, DH-parameters, transformation, end-effector

由機器人的關節角度計算其末端執行器位置與姿態的數學過程,基本上是在回答「給定這些關節數值,尖端在哪裡?」

定義

正向運動學(FK)是根據機器人關節參數的數值,求出其末端執行器位置與姿態的數學方法。給定一組關節角度或位移,正向運動學會精確算出機器人的工具尖端或手在三維空間中的位置以及朝向。這是逆向運動學的互補問題,逆向運動學的方向正好相反:從期望的末端執行器位姿出發,求解所需的關節數值。

正向運動學的標準做法採用 1955 年提出的 Denavit-Hartenberg(DH)慣例,為每一組關節與連桿指定四個參數:連桿長度、連桿扭角、連桿偏移量與關節角度。為每個關節建立一個 4x4 齊次轉換矩陣,並從基座到末端執行器依序相乘,就能得到完整的正向運動學解。這一連串的轉換同時描述了相鄰連桿之間的旋轉與平移關係。

與逆向運動學相比,正向運動學在計算上很直接,因為它永遠有唯一的封閉解:任何一組關節數值都恰好對應一個末端執行器位姿。相反地,逆向運動學依機器人的幾何與目標位姿不同,可能無解、有一個解或有多個解。這種數學上的簡單性,使正向運動學成為機器人分析的自然起點,也是機器人教育的基本構件。

在實務上,正向運動學廣泛用於機器人模擬、視覺化與控制。每當機器人控制器在教導器上顯示目前的工具位置,它就是在執行正向運動學。Gazebo 等模擬環境會持續計算正向運動學來呈現機器人的位姿。運動規劃器用正向運動學評估候選的關節組態並檢查碰撞。這個概念不僅適用於串聯式機器手臂,也延伸到並聯機構、移動機器人,甚至電腦圖學的動畫系統,其中角色骨架使用的是同一套數學框架。

指數積(PoE)公式是 DH 慣例的替代方案,可避免 DH 在參數指定上的一些含糊之處。兩種方法得到的結果完全相同,差別在於如何將運動鏈參數化。現代機器人學教科書越來越常同時教授這兩種方法,因為 PoE 的表述與李群及螺旋理論的數學基礎銜接得更自然。

為何重要

正向運動學是幾乎所有機器人分析的基礎。沒有它,就無法視覺化機器人位姿、檢查碰撞,也無法實作任何形式的運動控制。它是每位機器人工程師最先學到的數學工具,而且不論是否意識到,每天都在使用。

主要應用

  • 機器人模擬與視覺化:即時呈現準確的機器人位姿
  • 教導器顯示:向操作人員顯示目前的工具位置與姿態
  • 碰撞檢查:評估某個關節組態是否會造成自我碰撞或與環境碰撞
  • 工作範圍分析:掃過各關節的活動範圍,描繪出機器人可到達的空間
  • 電腦圖學與動畫:驅動角色骨架與多關節模型
  • 校正驗證:確認機器人的實體幾何與其運動學模型相符

實際應用

在典型的機器手臂應用中,正向運動學會在背景持續執行。機器人控制器每秒讀取關節編碼器數值數百到數千次,套用 FK 方程式,並更新顯示的工具位置。規劃機器人路徑時,操作人員以直角座標空間思考(移動到 x、y、z),但控制器必須在關節空間與直角座標空間之間來回轉換:正向運動學負責從關節到直角座標的方向。

ROS 等現代框架使用 URDF 機器人描述與 KDL(Kinematics and Dynamics Library)等函式庫來計算正向運動學。工程師不必手動推導 DH 參數,而是在 URDF 檔案中定義機器人的幾何,FK 求解器就會自動建立運動鏈。這讓即使不完全理解底層矩陣代數的實務人員,也能使用正向運動學。

常見誤解

  • FK 很簡單、不值得研究:雖然數學比 IK 簡單,但深入理解它對於除錯運動學問題與建立可靠的系統不可或缺
  • FK 與 IK 可以互換:它們解決的是根本不同的問題;FK 永遠有唯一解,IK 往往有多個解或無解
  • DH 參數是表達 FK 的唯一方式:指數積公式是同樣有效且越來越受歡迎的替代方案
  • FK 只適用於機器手臂:同樣的數學也適用於足式機器人、並聯機構與任何多關節機械系統

誰需要了解

  • 學習機器人分析數學基礎的機器人學學生
  • 使用教導器與離線程式設計的機器人程式設計人員
  • 為機器人系統建立數位孿生的模擬工程師
  • 處理多關節角色模型的遊戲開發者與動畫師
  • 設計新機器人幾何並分析其工作範圍的機械工程師

相關技術

  • Denavit-Hartenberg 慣例
  • 齊次轉換
  • 指數積
  • 螺旋理論
  • 李群
  • 旋轉矩陣

相關專案

  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • Koch v1.1 Low-Cost Robot Arm: Open-source 6-DOF robot arm for affordable teleoperation and imitation learning research.
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • BCN3D Moveo: Open-source 3D printed 5-axis robotic arm for education
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • Thor: Open-source 3D-printable 6-DOF robot arm with stepper motors and GT2 belt drives

影片

  • 4.1 Forward Kinematics: Woolfrey
  • Modern Robotics, Chapter 4: Forward Kinematics Example: Northwestern Robotics

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。