正向運動學(Forward Kinematics)

定義

正向運動學(Forward Kinematics, FK)是給定機器人每個關節的角度(或位移),計算末端執行器在空間中的位置與姿態。

數學表示

把每個關節的齊次轉換矩陣依序相乘:

0Tn(θ)=0T1(θ1) 1T2(θ2)⋯n−1Tn(θn){}^{0}T_n(\boldsymbol{\theta}) = {}^{0}T_1(\theta_1)\,{}^{1}T_2(\theta_2)\cdots{}^{n-1}T_n(\theta_n)

結果 0Tn{}^{0}T_n 是 4×4 矩陣,左上 3×3 是末端姿態(旋轉矩陣),右上 3×1 是末端位置。各關節的轉換通常用 DH 參數或 URDF 的關節定義寫出。

使用情境

  • 即時顯示機器人姿態:RViz 裡看到的手臂模型就是 FK 算出來的。
  • 碰撞檢查:規劃器需要知道每個連桿在哪裡,才能判斷是否撞到障礙物。
  • 逆運動學數值解:每一次迭代都要先用 FK 算出目前末端位置,再計算誤差。

常見誤解

  • FK 很簡單所以不重要? 它是整個運動學體系的地基,雅可比矩陣就是 FK 對關節角的偏微分。

延伸閱讀

常見問題

faq_01.log
正向運動學和逆向運動學差在哪?
正向是「已知關節角,求末端在哪」,答案唯一;逆向是「已知末端要去哪,求關節角」,可能有多組解、無解或落在奇異點,計算難度高得多。
faq_02.log
ROS 2 裡誰負責算正向運動學?
robot_state_publisher 會根據 URDF 與 joint_states,即時算出每個連桿的座標並發布到 tf2,這就是正向運動學。

相關文章

相關術語