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 は、依存関係のないヘッダーオンリーな 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+ および Web ベースの MeshCat 可視化の両方をサポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト