erwincoumans/tiny-differentiable-simulator

Tiny Differentiable Simulator is a header-only C++ and CUDA physics library for reinforcement learning and robotics with zero dependencies.

해결하는 문제

Tiny Differentiable Simulator (TDS)는 최적화와 학습을 위해 설계된 경량 고성능 물리 엔진입니다. 미분 가능한 물리 시뮬레이터에 대한 요구를 해결하며, 개발자가 시뮬레이션 결과의 매개변수에 대한 기울기를 계산할 수 있게 합니다. 이는 시스템 식별 및 물리적 속성 식별에 필수적입니다.

작동 원리

TDS는 의존성이 없는 헤더 전용(header-only) C++ 및 CUDA 라이브러리입니다. 순방향 및 역방향 동역학을 포함한 강체 동역학 알고리즘과 임펄스 레벨 LCP 및 힘 기반 비선형 스프링-댐퍼에 기반한 접촉 모델을 구현합니다. 미분 가능성을 활성화하기 위해 전체 코드베이스가 템플릿화되어 있으며, CppAD, Stan Math fvar, ceres::Jet와 같은 라이브러리의 자동 미분(AD) 스칼라 유형뿐만 아니라 결정론적 계산을 위한 표준 float/double 정밀도 또는 고정 소수점 정수 연산을 사용할 수 있습니다.

대상 사용자

로봇 공학, 제어 이론 및 sim-to-real 전송 분야의 연구원 및 엔지니어로, 다관절체의 고성능 GPU 가속 시뮬레이션이 필요한 분들.

주요 특징

  • 미분 가능한 물리: 최적화를 위한 순방향 및 역방향 모드 자동 미분 지원.
  • GPU 가속: 단일 RTX 2080 GPU에서 50 FPS로 수천 개의 병렬 시뮬레이션 실행 가능.
  • 제로 의존성: 통합이 쉬운 헤더 전용 C++ 구현.
  • 액추에이터 모델: 모터, 서보, 직렬 탄성 액추에이터(SEA)를 위한 내장 모델 포함.
  • 유연한 시각화: 네이티브 OpenGL 3+ 및 웹 기반 MeshCat 시각화 모두 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트