Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Articulated Body Algorithm

  • Detto anche: ABA, Featherstone's algorithm, Featherstone algorithm
  • Categoria: Software & tooling › Simulation & twins
  • Tag: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines

Un algoritmo ricorsivo efficiente, introdotto da Featherstone nel 1983, che calcola le accelerazioni dei giunti di un robot a partire dalle coppie applicate in un tempo proporzionale al numero dei suoi giunti.

Definizione

Algoritmo dei corpi articolati (ABA) (articulated body algorithm) indica il metodo di Roy Featherstone per calcolare la dinamica diretta di un robot composto da corpi rigidi collegati da giunti in una struttura ad albero: date le posizioni e le velocità attuali dei giunti e le coppie applicate, trova le accelerazioni dei giunti risultanti. Featherstone lo introdusse nel 1983, ed è uno degli algoritmi centrali del suo libro Rigid Body Dynamics Algorithms.

Il modo più immediato per calcolare la dinamica diretta è costruire la matrice di massa nello spazio dei giunti, per esempio con l'algoritmo del corpo rigido composito, e poi risolvere un sistema lineare. Costruire e fattorizzare quella matrice cresce più che linearmente con il numero di giunti. L'ABA evita di formare la matrice e richiede un tempo proporzionale al numero di corpi, scritto O(n).

Lo fa con tre passate sull'albero cinematico. Una passata verso l'esterno calcola la velocità di ogni corpo e i termini di bias dipendenti dalla velocità. Una passata verso l'interno, dalle foglie verso la base, calcola l'inerzia di corpo articolato di ogni corpo: l'inerzia apparente di quel corpo insieme a tutto ciò che vi è collegato più a valle, tenendo conto dei giunti intermedi. Una passata finale verso l'esterno calcola le accelerazioni dei giunti dalla base alle foglie. L'algoritmo è scritto in algebra dei vettori spaziali, una notazione a sei dimensioni che combina grandezze lineari e angolari.

L'ABA è implementato in librerie di dinamica dei corpi rigidi come Pinocchio, RBDL e Drake. Per robot con pochi giunti, l'approccio basato sulla matrice di massa può essere altrettanto veloce in pratica, mentre il vantaggio dell'ABA cresce per catene più lunghe e robot ramificati come gli umanoidi. Le idee ricorsive alla sua base sono state estese a grandezze correlate, come l'inerzia nello spazio operativo e la dinamica dei contatti.

Perché è importante

Simulatori, controllori predittivi basati su modello e ottimizzatori di traiettoria valutano la dinamica diretta molte migliaia di volte. Un algoritmo efficiente come l'ABA incide direttamente sulla velocità di questi strumenti e sulla complessità del robot che possono gestire in tempo reale.

Applicazioni principali

  • Dinamica diretta nei simulatori fisici
  • Controllo predittivo basato su modello e ottimizzazione di traiettoria per robot con gambe
  • Derivate della dinamica per l'ottimizzazione basata sul gradiente
  • Simulazione in tempo reale di umanoidi e manipolatori con molti gradi di libertà

In pratica

La maggior parte dei team di robotica usa l'ABA tramite una libreria invece di implementarlo. Un ingegnere del controllo potrebbe caricare l'URDF di un umanoide in Pinocchio e richiamarne la routine di dinamica diretta all'interno di un simulatore o di un controllore predittivo basato su modello, oppure richiamarne le derivate analitiche per l'ottimizzazione di traiettoria basata sul gradiente. Gli ingegneri che scrivono il proprio codice di dinamica usano il libro di Featherstone come riferimento e verificano la loro implementazione confrontandola con il metodo della matrice di massa sullo stesso modello.

Idee sbagliate comuni

  • L'ABA calcola la dinamica inversa — calcola la dinamica diretta; la dinamica inversa si calcola di solito con l'algoritmo ricorsivo di Newton–Euler
  • L'ABA è sempre più veloce del metodo della matrice di massa — per robot con pochi giunti la differenza può essere piccola o invertita
  • L'ABA gestisce direttamente le catene cinematiche chiuse — è formulato per alberi cinematici; le catene chiuse richiedono una gestione aggiuntiva dei vincoli

Chi dovrebbe saperlo

  • Sviluppatori di simulatori fisici e librerie di dinamica
  • Ingegneri del controllo che lavorano su controllo predittivo basato su modello e ottimizzazione di traiettoria
  • Ricercatori di locomozione con gambe e robotica umanoide

Tecnologie correlate

  • Algoritmo ricorsivo di Newton–Euler (Recursive Newton–Euler Algorithm)
  • Algoritmo del corpo rigido composito (Composite Rigid Body Algorithm)
  • Algebra dei vettori spaziali (Spatial Vector Algebra)
  • Pinocchio
  • RBDL
  • Drake

Termini correlati

  • Kinematics
  • Jacobian
  • URDF
  • Digital Twin

Progetti correlati

  • 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

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.