PyBullet简介
PyBullet 基于著名的开源物理引擎 bullet 开发,封装成了 Python 的一个模块,用于机器人仿真和学习。
PyBullet是一个快速、易用的Python模块,用于机器人仿真和机器学习,侧重于从简单到真实的迁移。通过PyBullet可以加载来自URDF、SDF、MJCF等文件格式的铰接体。PyBullet提供了正向动力学仿真、逆向动力学计算、正逆向运动学、碰撞检测和射线求交查询等功能。
官方网站:Home of Bullet and PyBullet
官方文档:PyBullet Quickstart Guide
GITHUB下载地址:bullet3
API说明地址:API documentation
PyBullet具有跨平台内置的客户机-服务器对共享内存、UDP和TCP网络的支持。这样就可以在连接到Windows VR服务器的Linux上运行PyBullet。
PyBullet封装了新的Bullet C-API,其设计独立于底层的物理引擎和渲染引擎,因此我们可以很容易地迁移到更新版本的Bullet,或者使用不同的物理引擎或渲染引擎。默认情况下,PyBullet在CPU上使用Bullet 2.x API。在GPU上使用OpenCL来展示Bullet 3.x。此外,PyBullet还有C++ API。
PyBullet安装
PyBullet 支持 Windows/Linux/Mac,因为已经封装了 Python 模块,所以安装很简单。
建议 conda 新建个 Python 环境后,pip 直接安装:
pip install pybullet
pip3 install pybullet
安装gcc 和cmake
sudo apt-get install build-essential
sudo apt-get install cmake
安装后,文件路径在/home/***/.local/lib/python3.8/site-packages
Requirements for Bullet Physics C++
C + +编译器fC + + 2003,该库在Windows、Linux、Mac OSX、iOS、Android等平台上进行了测试,但应尽可能在具有C + +编译器的平台上工作。一些演示程序需要OpenGL 2或OpenGL 3。
碰撞检测和刚体动力学可在GPU上执行
在Windows、Linux和Mac OSX下成功测试,但GPU要求如AMD的Radeon 7970或NVIDIA的GTX 680或更高版本。该软件目前还不能在OpenCL CPU设备上运行,但可在笔记本电脑GPU上运行,但性能不会很好。需要注意的是,经常有OpenCL驱动程序不能编译内核。
测试运行
运行Franka Emika Panda例程:
python -m pybullet_robots.panda.loadpanda
报错:numpy版本出错,需要更新或者降低numpy的版本
ImportError: numpy.core.multiarray failed to import
解决措施:
# 卸载numpy
pip uninstall numpy
# 更新numpy
pip install -U numpy
# 安装指定版本
pip install -U numpy==1.24.4
运行效果:
至此已完成pybullent安装。