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 可视化。

相关

  • 项目
  • 项目
  • 项目
  • 项目