Open Source Robotics

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

DART

관절형 강체 동역학과 로봇 시뮬레이션을 위한 C++ 물리 엔진

라이선스

BSD-2-Clause

개요

DART(Dynamic Animation and Robotics Toolkit)는 제약 기반 접촉 처리로 다관절 강체 동역학을 시뮬레이션하는 C++20 물리 엔진입니다. Georgia Tech에서 개발되었으며, 순기구학/역기구학, 순동역학, 자코비안 계산, 충돌 감지를 제공합니다. Isaac Gym이나 MuJoCo의 MJX 같은 GPU 병렬 시뮬레이터와 달리, DART는 다관절체 시뮬레이션의 수학적 정확성에 중점을 두며 URDF, SDF, MJCF 형식을 지원합니다. Python 바인딩(dartpy)이 포함되어 있고 Gazebo와 통합됩니다.

DART(Dynamic Animation and Robotics Toolkit)는 Georgia Tech에서 개발한 오픈소스 C++20 물리 엔진으로, 관절형 강체 시스템의 기구학 및 동역학 시뮬레이션을 위한 데이터 구조와 알고리즘을 제공합니다. 일반화 좌표와 Featherstone의 Articulated Body Algorithm을 사용하여 로봇 애플리케이션에 필요한 수치 정확도와 안정성을 제공합니다.

DART의 차별화된 특징은 URDF, SDF, MJCF 및 자체 SKEL 형식 등 모든 주요 로봇 기술 형식을 단일 API로 통합 지원한다는 점입니다. 여러 충돌 감지 백엔드(FCL, Bullet, ODE)를 통합하고, 결합된 구속 동역학 프레임워크에서 접촉 구속, 관절 한계, 폐루프 메커니즘을 함께 풉니다. Python 바인딩(dartpy)은 PyPI와 conda를 통해 제공됩니다.

14년 이상 지속적으로 개발되어 왔고 매년 500개 이상의 커밋이 이루어지는 DART는 로봇공학 분야에서 가장 활발하게 유지 관리되는 물리 엔진 중 하나입니다. Gazebo 시뮬레이터의 DART 물리 백엔드를 구동하며, 전 세계 연구실에서 제어 알고리즘 개발, 모션 계획, 컴퓨터 애니메이션에 사용되고 있습니다.

중요한 이유

DART는 14년 넘게 로봇 시뮬레이션의 핵심 물리 엔진으로 자리해 왔으며, Gazebo 시뮬레이터와 전 세계의 수많은 연구실을 지원하고 있습니다. 일반화 좌표와 Featherstone의 Articulated Body Algorithm을 사용하여 로봇 애플리케이션이 요구하는 정확도와 안정성을 제공하며, 다중 형식 지원(URDF, SDF, MJCF)으로 독보적인 다재다능함을 갖추고 있습니다.

해결하는 문제

로봇 시뮬레이션에는 관절체 동역학, 관절 구속, 접촉, 충돌을 높은 수치 정확도로 올바르게 처리하는 물리 엔진이 필요합니다. DART는 모든 주요 형식에서 로봇 모델을 불러오고, 여러 충돌 감지 백엔드를 연결하며, 제어 알고리즘 개발과 컴퓨터 애니메이션 모두에 적합한 동역학을 계산할 수 있는 깔끔한 API로 이러한 기반을 제공합니다.

핵심 요점

  • 정확한 동역학을 위해 일반화 좌표에서 Featherstone의 Articulated Body Algorithm을 사용합니다
  • 통합 API로 URDF, SDF, MJCF, SKEL 로봇 기술 형식을 불러옵니다
  • FCL, Bullet, ODE를 포함한 여러 충돌 감지 백엔드를 제공합니다
  • 구속 동역학 솔버가 관절 한계, 접촉, 폐루프 메커니즘을 함께 처리합니다
  • 크로스 플랫폼(Linux, macOS, Windows)이며 PyPI와 conda의 dartpy를 통해 Python 바인딩을 제공합니다

대상

  • 시뮬레이션에서 제어 알고리즘을 개발하고 테스트하는 로봇공학 연구자
  • 기반 물리 엔진을 이해하거나 사용자 정의해야 하는 Gazebo 사용자
  • 물리적으로 정확한 관절체 시뮬레이션이 필요한 컴퓨터 애니메이션 개발자
  • 안정적인 시뮬레이션 백엔드가 필요한 강화 학습 실무자

한계

  • 비슷한 기능을 갖추었음에도 RL 연구에서는 MuJoCo나 Isaac Sim만큼 널리 사용되지 않습니다
  • GPU 가속 시뮬레이션은 현재 중점 사항이 아니며 CPU에서 실행됩니다
  • C++20 요구 사항은 이전 컴파일러 버전에 묶인 프로젝트에 제약이 될 수 있습니다
  • MuJoCo나 PyBullet에 비해 커뮤니티가 작고 사전 구축된 환경이 적습니다

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