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を有効にしてください。