Articulated Body Algorithm
- También llamado: ABA, Featherstone's algorithm, Featherstone algorithm
- Categoría: Software & tooling › Simulation & twins
- Etiquetas: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines
Un algoritmo recursivo eficiente, introducido por Featherstone en 1983, que calcula las aceleraciones articulares de un robot a partir de los pares aplicados en un tiempo proporcional a su número de articulaciones.
Definición
Algoritmo de cuerpos articulados (ABA) (articulated body algorithm) se refiere al método de Roy Featherstone para calcular la dinámica directa de un robot formado por cuerpos rígidos conectados por articulaciones en una estructura de árbol: dadas las posiciones y velocidades articulares actuales y los pares aplicados, obtiene las aceleraciones articulares resultantes. Featherstone lo introdujo en 1983, y es uno de los algoritmos centrales de su libro Rigid Body Dynamics Algorithms.
La forma directa de calcular la dinámica directa es construir la matriz de masa en el espacio articular, por ejemplo con el algoritmo del cuerpo rígido compuesto, y después resolver un sistema lineal. Construir y factorizar esa matriz crece más rápido que linealmente con el número de articulaciones. El ABA evita formar la matriz y se ejecuta en un tiempo proporcional al número de cuerpos, lo que se escribe O(n).
Lo hace en tres pasadas sobre el árbol cinemático. Una pasada hacia fuera calcula la velocidad de cada cuerpo y los términos de sesgo dependientes de la velocidad. Una pasada hacia dentro, desde las hojas hacia la base, calcula la inercia de cuerpo articulado de cada cuerpo: la inercia aparente de ese cuerpo junto con todo lo que está unido más allá de él, teniendo en cuenta las articulaciones intermedias. Una última pasada hacia fuera calcula las aceleraciones articulares desde la base hasta las hojas. El algoritmo se escribe en álgebra de vectores espaciales, una notación de seis dimensiones que combina magnitudes lineales y angulares.
El ABA está implementado en bibliotecas de dinámica de cuerpos rígidos como Pinocchio, RBDL y Drake. Para robots con solo unas pocas articulaciones, el enfoque de la matriz de masa puede ser igual de rápido en la práctica, mientras que la ventaja del ABA crece para cadenas más largas y robots ramificados como los humanoides. Las ideas recursivas que lo sustentan se han extendido a magnitudes relacionadas, como la inercia en el espacio operacional y la dinámica de contacto.
Por qué importa
Los simuladores, los controladores predictivos basados en modelo y los optimizadores de trayectorias evalúan la dinámica directa muchos miles de veces. Un algoritmo eficiente como el ABA influye directamente en lo rápido que funcionan estas herramientas y en lo complejo que puede ser el robot que manejan en tiempo real.
Aplicaciones clave
- Dinámica directa en simuladores físicos
- Control predictivo basado en modelo y optimización de trayectorias para robots con patas
- Derivadas de la dinámica para la optimización basada en gradientes
- Simulación en tiempo real de humanoides y brazos robóticos con muchos grados de libertad
En la práctica
La mayoría de los equipos de robótica usan el ABA a través de una biblioteca en lugar de implementarlo. Un ingeniero de control podría cargar el URDF de un humanoide en Pinocchio y llamar a su rutina de dinámica directa dentro de un simulador o de un controlador predictivo basado en modelo, o llamar a sus derivadas analíticas para la optimización de trayectorias basada en gradientes. Los ingenieros que escriben su propio código de dinámica usan el libro de Featherstone como referencia y prueban su implementación frente al método de la matriz de masa sobre el mismo modelo.
Ideas erróneas comunes
- El ABA calcula la dinámica inversa — calcula la dinámica directa; la dinámica inversa suele calcularse con el algoritmo recursivo de Newton–Euler
- El ABA siempre es más rápido que el método de la matriz de masa — para robots con pocas articulaciones la diferencia puede ser pequeña o invertirse
- El ABA trata directamente los lazos cinemáticos cerrados — está formulado para árboles cinemáticos; los lazos necesitan un tratamiento adicional de restricciones
Quién debería saberlo
- Desarrolladores de simuladores físicos y bibliotecas de dinámica
- Ingenieros de control que trabajan en control predictivo basado en modelo y optimización de trayectorias
- Investigadores en locomoción con patas y robótica humanoide
Tecnologías relacionadas
- Algoritmo recursivo de Newton–Euler (Recursive Newton–Euler Algorithm)
- Algoritmo del cuerpo rígido compuesto (Composite Rigid Body Algorithm)
- Álgebra de vectores espaciales (Spatial Vector Algebra)
- Pinocchio
- RBDL
- Drake
Términos relacionados
Proyectos relacionados
- 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