Bullet Physics SDK,一个用于实时碰撞检测和多物理场仿真的 C++ 库,适用于游戏、VR、机器人和机器学习。
- Star
- 1,224
- Fork
- 307
- 未关闭 Issue
- 13
- 最近提交
- 20小时前
这是什么?
DART(Dynamic Animation and Robotics Toolkit)是一个基于 C++17 的开源库,并提供 Python 绑定 dartpy,用于仿真刚体与软体组成的关节系统。它以广义坐标描述系统,使用 Featherstone 的关节体算法计算运动,并可直接获取质量矩阵、科里奥利力与重力项、雅可比矩阵及其导数。
接触求解基于 LCP,支持 Dantzig 与 PGS 求解器,同时处理关节限位和闭环运动链。碰撞检测可选 FCL(默认)、Bullet、ODE 或 DART 自带的检测器。模型支持 URDF、SDF、SKEL 以及实验性的 MJCF 格式,并内置分层的全身逆运动学。Gazebo 通过 gz-physics 使用 DART 作为物理后端。
项目可通过 pip、conda-forge、vcpkg、Homebrew 及多个 Linux 发行版安装,也可以使用 pixi 从源码构建。
核心功能
- 01基于 Featherstone 关节体算法,以广义坐标计算动力学
- 02基于 LCP 的接触求解,支持 Dantzig 与 PGS 求解器,并支持软体
- 03碰撞检测可选 FCL、Bullet、ODE 或自带检测器
- 04支持加载 URDF、SDF、SKEL 格式,以及实验性的 MJCF 模型
- 05提供分层全身逆运动学,支持解析求解器
- 06同时提供 C++ 接口和 Python 绑定 dartpy
适用场景
- 为机器人控制与运动规划研究仿真人形或机械臂
- 利用逆运动学与操作空间方法原型化全身控制
- 用关节体模型生成符合物理规律的角色动画
- 作为 Gazebo 等机器人仿真器的物理后端
快速上手
- 1
安装 Python 包
pip install dartpy - 2
在 Ubuntu / Debian 上安装 C++ 包
sudo apt install libdart-all-dev - 3
在 macOS 上用 Homebrew 安装 C++ 包
brew install dartsim
使用前须知
- main 为开发分支,可能变化;要获得稳定行为请使用带标签的发布版本或软件包安装。
- 发行版软件包可能落后于最新发布版本。
- PyPI 预编译包仅覆盖最常见的平台和 Python 版本。
收录于专题
标签
#robotics#physics-engine#simulation#inverse-kinematics#multibody-dynamics#computer-animation#python-bindings#cpp#collision-detection#cpp17
常见问题
- dart 是什么?
- 基于 C++17 的物理引擎,提供 Python 绑定,用于机器人与计算动画中关节体的运动学、动力学和接触仿真。 DART(Dynamic Animation and Robotics Toolkit)是一个基于 C++17 的开源库,并提供 Python 绑定 dartpy,用于仿真刚体与软体组成的关节系统。它以广义坐标描述系统,使用 Featherstone 的关节体算法计算运动,并可直接获取质量矩阵、科里奥利力与重力项、雅可比矩阵及其导数。
- 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 在 macOS 上用 Homebrew 安装 C++ 包: brew install dartsim
- 在哪里获取 dart?
- 源代码和安装说明在 GitHub 上:https://github.com/dartsim/dart
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1.5万+11 本周3109C++Other更新于 29天前
开源 C++ 多体动力学库,用于模拟机器人、车辆和人体骨骼等关节机构。
2571+5 本周501C++Apache-2.0维护活跃更新于 18小时前
C++ 多物理场仿真库,用于刚体与柔性多体系统、颗粒介质、流固耦合及车辆机器人仿真。
3140+8 本周655C++BSD-3-Clause更新于 21小时前
基于 C++ 的强化学习批量环境引擎,用线程池并行运行大量 Gym 风格环境。
1533+1 本周147C++Apache-2.0更新于 17天前
面向游戏和 VR 应用的 C++ 刚体物理与碰撞检测库,支持多核并行。
1.2万+243 本周1010C++MIT维护活跃更新于 21小时前
基于 JAX 的可微分刚体物理引擎,面向机器人控制、形态协同设计与机器人学习。
20422PythonBSD-3-Clause更新于 5天前