Articulated Body Algorithm
- Também chamado: ABA, Featherstone's algorithm, Featherstone algorithm
- Categoria: Software & tooling › Simulation & twins
- Tags: rigid-body-dynamics, forward-dynamics, simulation, algorithms, physics-engines
Um algoritmo recursivo eficiente, introduzido por Featherstone em 1983, que calcula as acelerações das juntas de um robô a partir dos torques aplicados em tempo proporcional ao seu número de juntas.
Definição
Algoritmo de corpos articulados (ABA) (articulated body algorithm) refere-se ao método de Roy Featherstone para calcular a dinâmica direta de um robô formado por corpos rígidos ligados por juntas em uma estrutura de árvore: dadas as posições e velocidades atuais das juntas e os torques aplicados, ele encontra as acelerações resultantes das juntas. Featherstone o introduziu em 1983, e ele é um dos algoritmos centrais de seu livro Rigid Body Dynamics Algorithms.
A forma direta de calcular a dinâmica direta é montar a matriz de massa no espaço das juntas, por exemplo com o algoritmo do corpo rígido composto, e depois resolver um sistema linear. Montar e fatorar essa matriz cresce mais rápido que linearmente com o número de juntas. O ABA evita formar a matriz e roda em tempo proporcional ao número de corpos, o que se escreve O(n).
Ele faz isso em três passagens pela árvore cinemática. Uma passagem para fora calcula a velocidade de cada corpo e os termos de viés dependentes da velocidade. Uma passagem para dentro, das folhas em direção à base, calcula a inércia de corpo articulado de cada corpo: a inércia aparente desse corpo junto com tudo o que está ligado além dele, levando em conta as juntas intermediárias. Uma passagem final para fora calcula as acelerações das juntas da base até as folhas. O algoritmo é escrito em álgebra de vetores espaciais, uma notação de seis dimensões que combina grandezas lineares e angulares.
O ABA é implementado em bibliotecas de dinâmica de corpos rígidos como Pinocchio, RBDL e Drake. Para robôs com poucas juntas, a abordagem da matriz de massa pode ser igualmente rápida na prática, enquanto a vantagem do ABA cresce para cadeias mais longas e robôs ramificados como os humanoides. As ideias recursivas por trás dele foram estendidas a grandezas relacionadas, como a inércia no espaço operacional e a dinâmica de contato.
Por que importa
Simuladores, controladores preditivos baseados em modelo e otimizadores de trajetória avaliam a dinâmica direta muitos milhares de vezes. Um algoritmo eficiente como o ABA afeta diretamente a rapidez com que essas ferramentas rodam e a complexidade do robô que conseguem tratar em tempo real.
Principais aplicações
- Dinâmica direta em simuladores físicos
- Controle preditivo baseado em modelo e otimização de trajetória para robôs com pernas
- Derivadas da dinâmica para otimização baseada em gradiente
- Simulação em tempo real de humanoides e braços robóticos com muitos graus de liberdade
Na prática
A maioria das equipes de robótica usa o ABA por meio de uma biblioteca em vez de implementá-lo. Um engenheiro de controle pode carregar o URDF de um humanoide no Pinocchio e chamar sua rotina de dinâmica direta dentro de um simulador ou de um controlador preditivo baseado em modelo, ou chamar suas derivadas analíticas para otimização de trajetória baseada em gradiente. Engenheiros que escrevem seu próprio código de dinâmica usam o livro de Featherstone como referência e testam sua implementação contra o método da matriz de massa no mesmo modelo.
Equívocos comuns
- O ABA calcula a dinâmica inversa — ele calcula a dinâmica direta; a dinâmica inversa geralmente é calculada com o algoritmo recursivo de Newton–Euler
- O ABA é sempre mais rápido que o método da matriz de massa — para robôs com poucas juntas a diferença pode ser pequena ou se inverter
- O ABA trata diretamente laços cinemáticos fechados — ele é formulado para árvores cinemáticas; laços exigem tratamento adicional de restrições
Quem deve saber
- Desenvolvedores de simuladores físicos e bibliotecas de dinâmica
- Engenheiros de controle que trabalham com controle preditivo baseado em modelo e otimização de trajetória
- Pesquisadores de locomoção com pernas e robótica humanoide
Tecnologias relacionadas
- Algoritmo recursivo de Newton–Euler (Recursive Newton–Euler Algorithm)
- Algoritmo do corpo rígido composto (Composite Rigid Body Algorithm)
- Álgebra de vetores espaciais (Spatial Vector Algebra)
- Pinocchio
- RBDL
- Drake
Termos relacionados
Projetos 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