최근 C++23 표준을 활용한 새로운 강체 시뮬레이션 라이브러리 ARB(Articulated Rigid Body)가 공개되어 로봇 공학, 컴퓨터 그래픽스, 시뮬레이션 분야에 새로운 가능성을 제시하고 있습니다. 이 라이브러리는 관절형 강체(articulated rigid body)의 동역학을 효율적으로 계산하고, 충돌 감지 및 해결 기능을 제공하며, 특히 시뮬레이션 파이프라인 전반에 걸쳐 엔드투엔드 자동 미분(automatic differentiation)을 지원하는 것이 특징입니다.
ARB는 공간 대수(spatial algebra)를 기반으로 관절형 강체의 동역학을 처리하는 세 가지 핵심 알고리즘, 즉 관절형 바디 알고리즘(ABA, Articulated Body Algorithm), 복합 강체 알고리즘(CRBA, Composite Rigid Body Algorithm), 재귀 뉴턴-오일러 알고리즘(RNEA, Recursive Newton–Euler Algorithm)을 구현합니다. 이 알고리즘들은 로봇의 전방 동역학(forward dynamics)과 역동역학(inverse dynamics) 계산에 필수적이며, ARB는 이를 효율적인 $O(N_B)$ 또는 $O(N_B^2)$ 복잡도로 제공합니다. 또한 GJK/EPA 기반의 충돌 감지 및 공간 임펄스(spatial impulse)를 이용한 접촉 해결 기능을 포함하며, 로봇 모델을 가져오고 내보낼 수 있는 URDF(Unified Robot Description Format) 파서도 내장하고 있습니다.
이 라이브러리의 가장 중요한 강점은 시뮬레이션 전 과정에 걸친 자동 미분 기능입니다. 이는 시스템 식별(system identification), 최적화(optimization), 그리고 머신러닝(machine learning)과 같은 고급 애플리케이션에 ARB를 활용할 수 있게 합니다. 예를 들어, 로봇의 제어 매개변수를 최적화하거나, 시뮬레이션 데이터를 기반으로 실제 로봇의 물리적 특성을 학습하는 데 사용할 수 있습니다. 이러한 기능은 게임 엔진의 물리 시뮬레이션부터 복잡한 로봇 시스템의 설계 및 제어에 이르기까지 광범위한 분야에서 개발 효율성을 크게 높일 것으로 기대됩니다.