Open Source Robotics

고품질 오픈소스 로봇 프로젝트, 도구 및 소프트웨어의 엄선된 컬렉션.

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)은 관절로 연결된 강체들이 트리 구조를 이루는 로봇의 순동역학(forward dynamics)을 계산하는 Roy Featherstone의 방법을 말한다. 현재 관절 위치, 속도, 가해진 토크가 주어지면 그 결과로 생기는 관절 가속도를 구한다. Featherstone은 1983년에 이를 발표했으며, 이 알고리즘은 그의 책 Rigid Body Dynamics Algorithms의 핵심 알고리즘 중 하나이다.

순동역학을 계산하는 직관적인 방법은, 예를 들어 복합 강체 알고리즘으로 관절 공간 질량 행렬을 만든 다음 선형 시스템을 푸는 것이다. 그 행렬을 만들고 분해하는 비용은 관절 수에 대해 선형보다 빠르게 증가한다. ABA는 행렬을 만들지 않으며, 몸체 수에 비례하는 시간, 즉 O(n)으로 실행된다.

이는 기구학적 트리를 세 번 훑어서 이루어진다. 바깥쪽으로 가는 첫 번째 패스는 각 몸체의 속도와 속도에 의존하는 바이어스 항을 계산한다. 잎에서 베이스 쪽으로 안쪽으로 가는 패스는 각 몸체의 관절체 관성(articulated-body inertia)을 계산한다. 이는 그 몸체와 그 너머에 붙은 모든 것을 합친 겉보기 관성으로, 그 사이의 관절들을 고려한 것이다. 마지막으로 바깥쪽으로 가는 패스가 베이스에서 잎까지 관절 가속도를 계산한다. 이 알고리즘은 선형량과 각량을 결합한 6차원 표기법인 공간 벡터 대수(spatial vector algebra)로 기술된다.

ABA는 Pinocchio, RBDL, Drake 같은 강체 동역학 라이브러리에 구현되어 있다. 관절이 몇 개뿐인 로봇에서는 질량 행렬 방식이 실제로 그만큼 빠를 수 있지만, 체인이 길어지거나 휴머노이드처럼 가지가 나뉜 로봇일수록 ABA의 장점이 커진다. 그 바탕의 재귀적 아이디어는 작업 공간 관성과 접촉 동역학 같은 관련 양으로 확장되어 왔다.

중요한 이유

시뮬레이터, 모델 예측 제어기, 궤적 최적화기는 순동역학을 수천 번씩 평가한다. ABA 같은 효율적인 알고리즘은 이런 도구가 얼마나 빨리 실행되는지와 실시간으로 얼마나 복잡한 로봇을 다룰 수 있는지에 직접 영향을 준다.

주요 응용

  • 물리 시뮬레이터의 순동역학
  • 다리 로봇을 위한 모델 예측 제어와 궤적 최적화
  • 기울기 기반 최적화를 위한 동역학 미분
  • 자유도가 높은 휴머노이드와 로봇 암의 실시간 시뮬레이션

실제 사례

대부분의 로보틱스 팀은 ABA를 직접 구현하지 않고 라이브러리를 통해 사용한다. 제어 엔지니어는 휴머노이드의 URDF를 Pinocchio에 불러와 시뮬레이터나 모델 예측 제어기 안에서 그 순동역학 루틴을 호출하거나, 기울기 기반 궤적 최적화를 위해 해석적 미분을 호출할 수 있다. 자체 동역학 코드를 작성하는 엔지니어는 Featherstone의 책을 참고 문헌으로 삼고, 같은 모델에서 질량 행렬 방식과 비교해 구현을 검증한다.

흔한 오해

  • ABA는 역동역학을 계산한다 — ABA는 순동역학을 계산한다. 역동역학은 보통 재귀 뉴턴-오일러 알고리즘으로 계산한다
  • ABA는 질량 행렬 방식보다 항상 빠르다 — 관절이 적은 로봇에서는 차이가 작거나 역전될 수 있다
  • ABA는 닫힌 기구학적 루프를 직접 다룬다 — ABA는 기구학적 트리에 대해 정식화되어 있으며, 루프에는 추가적인 구속 처리가 필요하다

알아야 할 사람

  • 물리 시뮬레이터와 동역학 라이브러리 개발자
  • 모델 예측 제어와 궤적 최적화를 다루는 제어 엔지니어
  • 다리 보행과 휴머노이드 로보틱스 연구자

관련 기술

  • 재귀 뉴턴-오일러 알고리즘(Recursive Newton–Euler Algorithm)
  • 복합 강체 알고리즘(Composite Rigid Body Algorithm)
  • 공간 벡터 대수(Spatial Vector Algebra)
  • Pinocchio
  • RBDL
  • Drake

관련 용어

  • Kinematics
  • Jacobian
  • URDF
  • Digital Twin

관련 프로젝트

  • 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

이 웹사이트는 JavaScript가 필요합니다. 오픈소스 로봇 프로젝트를 탐색하려면 JavaScript를 활성화하세요.