Open Source Robotics

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

Task-Priority Inverse Kinematics

  • 又稱: hierarchical inverse kinematics, prioritized inverse kinematics
  • 類別: Foundations & spatial maths › Kinematics
  • 標籤: inverse-kinematics, redundancy-resolution, whole-body-control, optimization, humanoids

用於冗餘機器人的逆向運動學,其中各任務經過排序,每個較低優先順序的任務只在不影響較高優先順序任務的運動中求解。

定義

任務優先順序逆向運動學(Task-priority inverse kinematics)用於冗餘機器人必須同時達成多個目標時解出其運動,例如維持平衡、放置手部、保持注視方向,以及維持在舒適姿勢附近。各任務依重要性排序。先解優先順序最高的任務,通常使用其雅可比矩陣(Jacobian)的虛反矩陣;接著只在第一個任務的零空間內解下一個任務,也就是不會干擾第一個任務的關節運動集合,依此類推到清單末端。較低優先順序的任務會盡可能達成,但絕不會讓較高優先順序的任務變差。Nakamura、Hanafusa 與 Yoshikawa 於 1987 年將這個構想形式化,Siciliano 與 Slotine 則於 1991 年提出一種廣為使用、適用於任意數量任務的遞迴形式。

在經典形式中,此方法在速度層級運作:q̇ = J₁⁺ ẋ₁ + N₁ (J₂N₁)⁺ (ẋ₂ − J₂J₁⁺ẋ₁),依此類推,其中 N₁ 投影到任務 1 的零空間上。這會帶來兩個實務問題。當兩個任務互相衝突時,即使兩個任務各自都不奇異,較低任務的投影雅可比矩陣也可能變得奇異,因此需要阻尼來讓關節速度保持有界。此外,關節極限、碰撞迴避與接觸力都是不等式,單純的零空間投影很難處理。

因此,現代的求解器把每個優先層級表述為一個二次規劃,依序求解或以專用的階層式 QP 求解器求解,讓等式任務與不等式任務都能出現在任一層級。這是任務堆疊(stack-of-tasks)方法以及 OpenSoT 與 CartesI/O 等函式庫的基礎。常見的替代方案是加權逆向運動學(也稱為軟優先順序逆向運動學),它以不同權重把所有任務加總到單一成本中;這種做法較簡單也較平滑,但會讓任務之間互相取捨,而不是強制執行嚴格的優先次序。

為何重要

人形機器人、帶有手臂的四足機器人與移動機器手臂所擁有的關節,遠多於任何單一任務所需。任務優先順序逆向運動學明確規定哪些目標絕不能被違反、哪些可以退讓,這是此類機器人全身運動的核心。

主要應用

  • 人形機器人與足式機器人的全身運動
  • 底盤與手臂一起移動的移動操作
  • 在追蹤工具路徑的同時必須避開關節極限與障礙物的冗餘手臂
  • 遠端操作以及重定向到不同運動學結構機器人的動作
  • 輪腿機器人的軌跡追蹤

實際應用

在一台輪腿四足機器人上,運動規劃器為機身、車輪與足端產生軌跡。為了在機器人上追蹤這些軌跡,團隊建立了一個任務堆疊:最上層是作為不等式約束的關節位置與速度極限;其次是必須保持著地的車輪接觸點;接著是機身姿態;最後是把關節拉向標稱組態的姿勢任務。階層式 QP 求解器在每個控制週期執行這個堆疊,並為低階控制器輸出關節參考值。當機身無法在不抬起車輪的情況下達到指令高度時,求解器會讓車輪保持著地,並讓機身任務達不到目標,團隊看到的是追蹤誤差,而不是打滑的車輪。

常見誤解

  • 較低優先順序的任務會被忽略 — 它們會在較高任務所留下的自由運動範圍內盡可能貼近地達成
  • 加權逆向運動學會得到相同的結果 — 權重讓任務之間可以互相取捨,而嚴格的優先順序絕不讓較低任務干擾較高任務
  • 這個方法能避開所有奇異點 — 任務之間的衝突會產生演算法奇異點,需要阻尼或重新排序
  • 零空間投影本身就能處理關節極限 — 不等式需要額外處理,這正是階層式二次規劃被廣泛使用的原因

誰需要了解

  • 負責人形機器人與足式機器人的全身控制工程師
  • 移動操作開發人員
  • 運動規劃與遠端操作工程師
  • 學習冗餘解析的機器人學學生

相關技術

  • OpenSoT
  • CartesI/O
  • 任務堆疊(Stack of Tasks)
  • 階層式二次規劃(Hierarchical Quadratic Programming)
  • 阻尼最小平方法(Damped Least Squares)

相關術語

  • Inverse Kinematics
  • Jacobian
  • Whole-Body Control
  • Operational Space Control
  • Loco-Manipulation
  • Humanoid Robot

相關專案

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GEAR-SONIC: NVIDIA's whole-body controller for the Unitree G1, trained to track any human motion
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • ASAP: Sim-to-real framework for agile humanoid whole-body skills using delta action models
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

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