Open Source Robotics

高品質なオープンソースロボティクスプロジェクト、ツール、ソフトウェアの厳選コレクション。

Articulated Body Algorithm

  • 別名: ABA, Featherstone's algorithm, Featherstone algorithm
  • カテゴリ: Software & tooling › Simulation & twins
  • タグ: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines

1983 年に Featherstone が発表した効率的な再帰アルゴリズム。加えられたトルクからロボットの関節加速度を、関節数に比例する時間で計算する。

定義

多関節体アルゴリズム(Articulated body algorithm、ABA)は、関節によって木構造につながった剛体からなるロボットの順ダイナミクスを計算するための、Roy Featherstone による手法を指す。現在の関節の位置、速度、加えられたトルクが与えられたとき、その結果生じる関節加速度を求める。Featherstone は 1983 年にこれを発表し、著書 Rigid Body Dynamics Algorithms の中核をなすアルゴリズムの一つとなっている。

順ダイナミクスを計算する素直な方法は、たとえば複合剛体アルゴリズムで関節空間の質量行列を作り、線形方程式を解くことである。この行列を作って分解する計算量は、関節数に対して線形より速く増える。ABA は行列を作らずに済ませ、剛体の数に比例する時間、すなわち O(n) で動く。

ABA は運動学的な木を 3 回走査することでこれを実現する。外向きの走査で、各剛体の速度と速度に依存するバイアス項を計算する。葉から根元へ向かう内向きの走査で、各剛体の多関節体慣性を計算する。これは、その剛体と、その先につながっているすべてのものとを合わせた見かけの慣性であり、間にある関節も考慮に入れる。最後の外向きの走査で、根元から葉へ向かって関節加速度を計算する。このアルゴリズムは空間ベクトル代数で書かれる。これは並進と回転の量を組み合わせた 6 次元の記法である。

ABA は Pinocchio、RBDL、Drake などの剛体ダイナミクスライブラリに実装されている。関節が数個しかないロボットでは、質量行列による方法でも実際には同じくらい速いことがあるが、長い連鎖や、ヒューマノイドのような分岐を持つロボットでは ABA の利点が大きくなる。その背後にある再帰的な考え方は、操作空間の慣性や接触ダイナミクスといった関連する量にも拡張されている。

重要な理由

シミュレータ、モデル予測制御器、軌道最適化手法は、順ダイナミクスを何千回、何万回と評価する。ABA のような効率的なアルゴリズムは、これらのツールの実行速度と、リアルタイムで扱えるロボットの複雑さに直接影響する。

主な用途

  • 物理シミュレータにおける順ダイナミクス
  • 脚ロボットのモデル予測制御と軌道最適化
  • 勾配に基づく最適化のためのダイナミクスの微分
  • 高自由度のヒューマノイドロボットやロボットアームのリアルタイムシミュレーション

実際の使われ方

ほとんどのロボティクスチームは、ABA を自分で実装するのではなく、ライブラリを通じて使う。制御エンジニアは、ヒューマノイドロボットの URDF を Pinocchio に読み込み、シミュレータやモデル予測制御器の中でその順ダイナミクスルーチンを呼び出したり、勾配に基づく軌道最適化のために解析的な微分を呼び出したりする。独自のダイナミクスコードを書くエンジニアは Featherstone の本を参考文献とし、同じモデルで質量行列による方法と比べて実装を検証する。

よくある誤解

  • ABA は逆ダイナミクスを計算する — 計算するのは順ダイナミクスであり、逆ダイナミクスは通常、再帰的ニュートン-オイラー法で計算される
  • ABA は常に質量行列による方法より速い — 関節が少ないロボットでは、差は小さいか、逆転することもある
  • ABA は閉じた運動学的ループをそのまま扱える — ABA は運動学的な木に対して定式化されており、ループには追加の拘束処理が必要である

知っておくべき人

  • 物理シミュレータやダイナミクスライブラリの開発者
  • モデル予測制御や軌道最適化に取り組む制御エンジニア
  • 脚移動やヒューマノイドロボティクスの研究者

関連技術

  • 再帰的ニュートン-オイラー法(Recursive Newton–Euler Algorithm)
  • 複合剛体アルゴリズム(Composite Rigid Body Algorithm)
  • 空間ベクトル代数(Spatial Vector Algebra)
  • Pinocchio
  • RBDL
  • Drake

関連用語

  • Kinematics
  • Jacobian
  • URDF
  • Digital Twin

関連プロジェクト

  • GENESIS: World's fastest physics engine: 43M FPS for embodied AI learning
  • LeRobot: HuggingFace ML library for real-world robotics in PyTorch
  • PyBullet: Python physics simulator for robotics and RL research with fast CPU-based simulation
  • RLinf: Scalable infrastructure for post-training foundation models via RL
  • Webots: Cross-platform robot simulator with built-in models, sensors, and development environment
  • NVIDIA Isaac Sim: NVIDIA Omniverse app for AI-driven robot simulation and testing

このウェブサイトにはJavaScriptが必要です。オープンソースロボティクスプロジェクトを閲覧するにはJavaScriptを有効にしてください。