Bullet物理引擎SDK
这是Bullet物理引擎SDK的官方C++源代码仓库:用于虚拟现实、游戏、视觉效果、机器人、机器学习等领域的实时碰撞检测和多物理仿真。
问题
问题追踪器被大量支持问题淹没,目前已关闭,等待清理。请使用PyBullet论坛与他人讨论。
PyBullet
强烈推荐使用PyBullet Python绑定,以获得对机器人、强化学习和虚拟现实的更好支持。使用pip install pybullet安装,并查看PyBullet快速入门指南。
安装简单:
pip3 install pybullet --upgrade --user
python3 -m pybullet_envs.examples.enjoy_TF_AntBulletEnv_v0_2017may
python3 -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
python3 -m pybullet_envs.deep_mimic.testrl --arg_file run_humanoid3d_backflip_args.txt
如果您在研究中使用PyBullet,请按以下方式引用:
@MISC{coumans2021,
author = {Erwin Coumans and Yunfei Bai},
title = {PyBullet, a Python module for physics simulation for games, robotics and machine learning},
howpublished = {\url{http://pybullet.org}},
year = {2016--2021}
}
Bullet Physics C++的要求
支持C++ 2003标准的C++编译器。该库已在Windows、Linux、Mac OSX、iOS和Android上测试过,但应该可以在任何具有C++编译器的平台上运行。 一些可选的演示需要OpenGL 2或OpenGL 3,也有一些非图形演示和单元测试。
贡献者和编码风格信息
https://docs.google.com/document/d/1u9vyzPtrVoVhYqQOGNWUgjRbfwfCdIts_NzmvgiJ144/edit
实验性OpenCL GPGPU支持的要求
整个碰撞检测和刚体动力学可以在GPU上执行。
需要高端桌面GPU,如AMD Radeon 7970或NVIDIA GTX 680或更好的显卡。 我们已在Windows、Linux和Mac OSX上成功测试了该软件。 目前该软件不适用于OpenCL CPU设备。它可能在笔记本电脑GPU上运行,但性能可能不会很好。请注意, OpenCL驱动程序经常无法编译内核。存在一些单元测试来追踪问题,但需要更多工作来覆盖所有OpenCL内核。
许可证
除非在特定文件夹/文件中另有标注,所有源代码文件均采用宽松的zlib许可证 (http://opensource.org/licenses/Zlib)。
使用vcpkg构建Bullet的说明
您可以使用vcpkg依赖管理器下载并安装Bullet:
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install bullet3
vcpkg中的Bullet端口由Microsoft团队成员和社区贡献者保持更新。如果版本过时,请在vcpkg仓库上创建问题或拉取请求。
使用premake构建Bullet的说明。您也可以使用cmake。
Windows
点击build_visual_studio_vr_pybullet_double.bat并打开build3/vs2010/0_Bullet3Solution.sln 当提示时,将项目转换为较新版本的Visual Studio。 如果您在C:\根目录下安装了Python,批处理文件应该能自动找到它。 否则,编辑此批处理文件以选择Python包含/库目录的位置。
Windows虚拟现实沙盒(适用于HTC Vive和Oculus Rift)
构建并运行App_SharedMemoryPhysics_VR项目,最好使用Release/优化构建。 您可以从Python pybullet连接到沙盒,使用:
import pybullet as p
p.connect(p.SHARED_MEMORY) #或 (p.TCP, "localhost", 6667) 或 (p.UDP, "192.168.86.10",1234)
Linux和Mac OSX gnu make
确保安装了gcc和cmake(Linux上使用sudo apt-get install build-essential
和sudo apt-get install cmake
,Mac上使用brew install cmake
,或访问https://cmake.org)
在终端中输入:
./build_cmake_pybullet_double.sh
此脚本将调用cmake并在build_cmake目录中构建。您可以在Bullet/examples/pybullet中找到pybullet。 BulletExampleBrowser二进制文件将位于Bullet/examples/ExampleBrowser中。
您也可以使用premake构建Bullet。build3文件夹中有premake可执行文件。 根据您的系统(Linux 32位、64位或Mac OSX),使用以下行之一 使用premake:
cd build3
./premake4_linux --double gmake
./premake4_linux64 --double gmake
./premake4_osx --double --enable_pybullet gmake
然后
cd gmake
make
注意,在Linux上,您需要使用cmake来构建pybullet,因为编译器在混合共享和静态库时会出现问题。
Mac OSX Xcode
点击build3/xcode4.command或在终端窗口中执行
./premake_osx xcode4
使用方法
App_ExampleBrowser可执行文件将位于bin文件夹中。 您可以通过终端/命令提示符运行它,或直接点击它。
[--start_demo_name="Demo Name"] 以选定的演示开始
[--mp4=moviename.mp4] 创建窗口的mp4视频,需要安装ffmpeg
[--mouse_move_multiplier=0.400000] 设置鼠标移动灵敏度
[--mouse_wheel_multiplier=0.01] 设置鼠标滚轮灵敏度
[--background_color_red= 0.9] 设置背景颜色的红色分量。绿色和蓝色同理
[--fixed_timestep= 0.0] 使用实时增量时间(0.0)或固定步长(0.016666)
您可以使用鼠标拾取来抓取物体。按住ALT或CONTROL键时,可以使用Maya风格的相机鼠标控制。 按F1创建一系列截图。按ESC退出演示应用程序。
查看docs文件夹和Bullet物理论坛以获取更多信息。