게임, VR, 로보틱스, 머신러닝에 사용되는 실시간 충돌 감지 및 다중 물리 시뮬레이션용 C++ 라이브러리 Bullet Physics SDK입니다.
dartsim/dart
관절형 로봇과 애니메이션 캐릭터의 운동학, 동역학, 접촉 시뮬레이션을 위한 Python 바인딩을 제공하는 C++17 물리 라이브러리입니다.
대체할 수 있는 제품:MATLAB Simscape Multibody
- 스타
- 1,224
- 포크
- 307
- 열린 이슈
- 13
- 마지막 커밋
- 11시간 전
어떤 프로젝트인가요?
DART(Dynamic Animation and Robotics Toolkit)는 관절형 강체와 소프트 바디를 시뮬레이션하는 C++17 라이브러리로, Python 바인딩(dartpy)을 제공합니다. 시스템을 일반화 좌표로 표현하고 Featherstone의 Articulated Body Algorithm으로 운동을 계산하며, 질량 행렬, 코리올리 힘과 중력, 야코비안 및 그 도함수를 제공합니다.
엔진은 LCP 기반 솔버(Dantzig 및 PGS), 관절 제한, 폐쇄형 운동학 루프를 지원합니다. 충돌 감지에는 FCL(기본값), Bullet, ODE 또는 DART 자체 감지기를 사용할 수 있습니다. URDF, SDF, SKEL, MJCF(실험적) 파일에서 로봇과 장면 모델을 불러올 수 있으며, 계층형 전신 역기구학 기능도 포함되어 있습니다. 또한 DART는 gz-physics를 통해 Gazebo의 물리 백엔드로 사용됩니다.
라이브러리는 pip, conda-forge, vcpkg, Homebrew 및 여러 Linux 배포판에서 사용할 수 있으며, pixi로 소스에서 빌드할 수도 있습니다.
핵심 기능
- 01Featherstone의 Articulated Body Algorithm을 사용한 일반화 좌표계 동역학
- 02Dantzig 및 PGS 솔버를 사용하는 LCP 기반 접촉 처리와 소프트 바디 지원
- 03FCL, Bullet, ODE 및 자체 감지기를 포함하는 충돌 감지 백엔드
- 04URDF, SDF, SKEL 및 실험적 MJCF 파일에서 모델 로드
- 05해석적 솔버를 지원하는 계층형 전신 역기구학
- 06C++ API 및 dartpy Python 바인딩
활용 사례
- 제어 및 모션 계획 연구를 위한 휴머노이드 또는 매니퓰레이터 로봇 시뮬레이션
- 역기구학과 작업 공간 방법을 활용한 전신 제어 프로토타이핑
- 관절형 바디를 사용한 물리적으로 그럴듯한 캐릭터 애니메이션 생성
- Gazebo와 같은 로봇 시뮬레이터의 물리 백엔드로 사용
빠른 시작
- 1
Python 패키지 설치
pip install dartpy - 2
Ubuntu / Debian에 C++ 패키지 설치
sudo apt install libdart-all-dev - 3
Homebrew로 macOS에 C++ 패키지 설치
brew install dartsim
사용 전 알아둘 점
- 개발 브랜치 main은 변경될 수 있습니다. 안정적인 동작을 원한다면 태그가 지정된 릴리스 또는 패키지를 설치하세요.
- 배포판 패키지는 최신 릴리스보다 업데이트가 늦을 수 있습니다.
- PyPI wheel은 가장 일반적인 플랫폼과 Python 버전만 지원합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- dart은(는) 무엇인가요?
- 관절형 로봇과 애니메이션 캐릭터의 운동학, 동역학, 접촉 시뮬레이션을 위한 Python 바인딩을 제공하는 C++17 물리 라이브러리입니다. DART(Dynamic Animation and Robotics Toolkit)는 관절형 강체와 소프트 바디를 시뮬레이션하는 C++17 라이브러리로, Python 바인딩(dartpy)을 제공합니다. 시스템을 일반화 좌표로 표현하고 Featherstone의 Articulated Body Algorithm으로 운동을 계산하며, 질량 행렬, 코리올리 힘과 중력, 야코비안 및 그 도함수를 제공합니다.
- dart은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- dart은(는) BSD-2-Clause 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- dart은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. dart의 마지막 커밋은 2026년 11월 6일입니다.
- dart은(는) 어디에 사용할 수 있나요?
- 제어 및 모션 계획 연구를 위한 휴머노이드 또는 매니퓰레이터 로봇 시뮬레이션 역기구학과 작업 공간 방법을 활용한 전신 제어 프로토타이핑 관절형 바디를 사용한 물리적으로 그럴듯한 캐릭터 애니메이션 생성 Gazebo와 같은 로봇 시뮬레이터의 물리 백엔드로 사용
- dart는 어떻게 설치하나요?
- Python 패키지 설치: pip install dartpy Ubuntu / Debian에 C++ 패키지 설치: sudo apt install libdart-all-dev Homebrew로 macOS에 C++ 패키지 설치: brew install dartsim
- dart은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/dartsim/dart
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
로봇, 차량, 인체 골격 같은 다관절 시스템을 시뮬레이션하는 오픈소스 C++ 다물체 동역학 라이브러리입니다.
강체·유연 다물체 시스템, 입상 매질, 유체-고체 상호작용, 차량과 로봇을 시뮬레이션하는 C++ 다중물리 라이브러리입니다.
스레드 풀로 Gym 스타일 환경을 다수 병렬 실행하는 강화 학습용 C++ 배치 환경 풀입니다.
게임과 VR 애플리케이션을 위한 멀티코어 친화적인 C++ 강체 물리 및 충돌 감지 라이브러리입니다.
로봇 제어, 공동 설계 및 로봇 학습을 위한 JAX 기반 미분 가능한 강체 물리 엔진입니다.