Articulated Body Algorithm
- 又稱: ABA, Featherstone's algorithm, Featherstone algorithm
- 類別: Software & tooling › Simulation & twins
- 標籤: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines
一種高效率的遞迴演算法,由 Featherstone 於 1983 年提出,能以與關節數量成正比的時間,從施加的扭矩計算出機器人的關節加速度。
定義
鉸接體演算法(Articulated body algorithm,ABA)是指 Roy Featherstone 提出的一種方法,用來計算由關節以樹狀結構相連的剛體所構成之機器人的正向動力學:給定目前的關節位置、速度與施加的扭矩,求出由此產生的關節加速度。Featherstone 於 1983 年提出這個演算法,它是他的著作 Rigid Body Dynamics Algorithms 中的核心演算法之一。
計算正向動力學的直接做法,是建立關節空間質量矩陣(例如使用複合剛體演算法),再求解一個線性方程組。建立並分解這個矩陣的成本,隨關節數量的成長快於線性。ABA 避免形成這個矩陣,其執行時間與剛體數量成正比,記為 O(n)。
它透過對運動學樹的三次走訪來做到這一點。第一次向外走訪計算每個剛體的速度,以及與速度相關的偏置項。向內走訪從葉節點往基座進行,計算每個剛體的鉸接體慣量:也就是該剛體連同其外側所連接的一切所呈現的等效慣量,並計入其間的關節。最後一次向外走訪從基座到葉節點計算關節加速度。這個演算法以空間向量代數寫成,這是一種把線性量與角量結合起來的六維記號。
ABA 已實作於 Pinocchio、RBDL 與 Drake 等剛體動力學函式庫中。對只有少數關節的機器人而言,質量矩陣方法在實務上可能一樣快,而對於較長的運動鏈,以及人形機器人這類具分支結構的機器人,ABA 的優勢會更大。其背後的遞迴概念已延伸到相關的量,例如操作空間慣量與接觸動力學。
為何重要
模擬器、模型預測控制器與軌跡最佳化器要對正向動力學求值成千上萬次。像 ABA 這樣的高效率演算法,直接影響這些工具的執行速度,以及它們能即時處理多複雜的機器人。
主要應用
- 物理模擬器中的正向動力學
- 腿足機器人的模型預測控制與軌跡最佳化
- 供以梯度為基礎之最佳化使用的動力學導數
- 高自由度人形機器人與機器手臂的即時模擬
實際應用
大多數機器人團隊透過函式庫使用 ABA,而不是自行實作。控制工程師可能會把人形機器人的 URDF 載入 Pinocchio,在模擬器或模型預測控制器中呼叫它的正向動力學常式,或呼叫它的解析導數來進行以梯度為基礎的軌跡最佳化。自行撰寫動力學程式碼的工程師,會以 Featherstone 的書為參考,並在同一個模型上以質量矩陣方法檢驗自己的實作。
常見誤解
- ABA 計算的是逆向動力學 — 它計算的是正向動力學;逆向動力學通常以遞迴牛頓-歐拉演算法計算
- ABA 一定比質量矩陣方法快 — 對關節較少的機器人,差異可能很小,甚至相反
- ABA 能直接處理封閉的運動迴路 — 它是針對運動學樹所建構的;迴路需要額外的約束處理
誰需要了解
- 物理模擬器與動力學函式庫的開發者
- 從事模型預測控制與軌跡最佳化的控制工程師
- 腿足移動與人形機器人領域的研究人員
相關技術
- 遞迴牛頓-歐拉演算法(Recursive Newton–Euler Algorithm)
- 複合剛體演算法(Composite Rigid Body Algorithm)
- 空間向量代數(Spatial Vector Algebra)
- Pinocchio
- RBDL
- Drake
相關術語
相關專案
- 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