Articulated Body Algorithm
- Auch genannt: ABA, Featherstone's algorithm, Featherstone algorithm
- Kategorie: Software & tooling › Simulation & twins
- Schlagwörter: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines
Ein effizienter rekursiver Algorithmus, 1983 von Featherstone vorgestellt, der die Gelenkbeschleunigungen eines Roboters aus aufgebrachten Momenten in einer Zeit proportional zur Anzahl seiner Gelenke berechnet.
Definition
Articulated-Body-Algorithmus (Articulated Body Algorithm, ABA) bezeichnet Roy Featherstones Verfahren zur Berechnung der Vorwärtsdynamik (Forward Dynamics) eines Roboters aus Starrkörpern, die durch Gelenke in einer Baumstruktur verbunden sind: Aus den aktuellen Gelenkpositionen, -geschwindigkeiten und aufgebrachten Momenten bestimmt er die resultierenden Gelenkbeschleunigungen. Featherstone stellte ihn 1983 vor, und er ist einer der zentralen Algorithmen in seinem Buch Rigid Body Dynamics Algorithms.
Der naheliegende Weg zur Vorwärtsdynamik besteht darin, die Massenmatrix im Gelenkraum aufzustellen, etwa mit dem Composite-Rigid-Body-Algorithmus, und dann ein lineares Gleichungssystem zu lösen. Aufstellen und Faktorisieren dieser Matrix wachsen schneller als linear mit der Anzahl der Gelenke. Der ABA vermeidet das Aufstellen der Matrix und läuft in einer Zeit proportional zur Anzahl der Körper, geschrieben O(n).
Dazu durchläuft er den kinematischen Baum dreimal. Ein nach außen gerichteter Durchlauf berechnet die Geschwindigkeit jedes Körpers und geschwindigkeitsabhängige Bias-Terme. Ein nach innen gerichteter Durchlauf, von den Blättern zur Basis, berechnet für jeden Körper die Articulated-Body-Trägheit (Articulated-Body Inertia): die scheinbare Trägheit dieses Körpers zusammen mit allem, was jenseits von ihm angebracht ist, unter Berücksichtigung der dazwischenliegenden Gelenke. Ein abschließender nach außen gerichteter Durchlauf berechnet die Gelenkbeschleunigungen von der Basis zu den Blättern. Der Algorithmus ist in räumlicher Vektoralgebra (Spatial Vector Algebra) formuliert, einer sechsdimensionalen Notation, die lineare und Winkelgrößen zusammenfasst.
Der ABA ist in Bibliotheken für Starrkörperdynamik wie Pinocchio, RBDL und Drake implementiert. Bei Robotern mit nur wenigen Gelenken kann der Massenmatrix-Ansatz in der Praxis ebenso schnell sein, während der Vorteil des ABA bei längeren Ketten und verzweigten Robotern wie Humanoiden wächst. Die rekursiven Ideen dahinter wurden auf verwandte Größen erweitert, etwa die Trägheit im Operationsraum und die Kontaktdynamik.
Warum es wichtig ist
Simulatoren, modellprädiktive Regler und Trajektorienoptimierer werten die Vorwärtsdynamik viele tausend Male aus. Ein effizienter Algorithmus wie der ABA bestimmt direkt, wie schnell diese Werkzeuge laufen und wie komplexe Roboter sie in Echtzeit bewältigen können.
Wichtige Anwendungen
- Vorwärtsdynamik in Physiksimulatoren
- Modellprädiktive Regelung und Trajektorienoptimierung für Laufroboter
- Ableitungen der Dynamik für gradientenbasierte Optimierung
- Echtzeitsimulation von Humanoiden und Manipulatoren mit vielen Freiheitsgraden
In der Praxis
Die meisten Robotikteams nutzen den ABA über eine Bibliothek, statt ihn selbst zu implementieren. Ein Regelungsingenieur könnte die URDF eines Humanoiden in Pinocchio laden und dessen Routine für die Vorwärtsdynamik in einem Simulator oder modellprädiktiven Regler aufrufen, oder die analytischen Ableitungen für gradientenbasierte Trajektorienoptimierung nutzen. Ingenieure, die eigenen Dynamikcode schreiben, verwenden Featherstones Buch als Referenz und testen ihre Implementierung am selben Modell gegen das Massenmatrix-Verfahren.
Häufige Missverständnisse
- Der ABA berechnet die inverse Dynamik — er berechnet die Vorwärtsdynamik; die inverse Dynamik wird meist mit dem rekursiven Newton-Euler-Algorithmus berechnet
- Der ABA ist immer schneller als das Massenmatrix-Verfahren — bei Robotern mit wenigen Gelenken kann der Unterschied klein sein oder sich umkehren
- Der ABA behandelt geschlossene kinematische Schleifen direkt — er ist für kinematische Bäume formuliert; Schleifen erfordern eine zusätzliche Behandlung von Zwangsbedingungen
Wer das wissen sollte
- Entwickler von Physiksimulatoren und Dynamikbibliotheken
- Regelungsingenieure, die an modellprädiktiver Regelung und Trajektorienoptimierung arbeiten
- Forschende in beinbasierter Fortbewegung und humanoider Robotik
Verwandte Technologien
- Rekursiver Newton-Euler-Algorithmus (Recursive Newton–Euler Algorithm)
- Composite-Rigid-Body-Algorithmus (Composite Rigid Body Algorithm)
- Räumliche Vektoralgebra (Spatial Vector Algebra)
- Pinocchio
- RBDL
- Drake
Verwandte Begriffe
Verwandte Projekte
- 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