pybullet
一、介绍
pybullet是一个的Python模块,可用于机器人,游戏,视觉效果和机器学习的物理模拟。
使用pybullet,您可以加载URDF,SDF,MJCF和其他文件格式的机器人描述文件。
pybullet提供正向动力学仿真,逆向动力学计算,正向和逆向运动学,碰撞检测和射线相交查询。 Bullet Physics SDK提供了许多pybullet机器人示例,例如模拟的四足机器人Minitaur,使用tensorflow进行决策的模拟人类跑步,以及KUKA抓取物体。
除了物理模拟之外,还具有渲染绑定,包括CPU渲染器(TinyRenderer)和OpenGL可视化,并支
持HTC Vive和Oculus Rift等虚拟现实。pybullet还具有执行碰撞检测查询(最近的点,重叠对,射线相交测试等)并添加调试渲染(调试行和文本)的功能。pybullet具有跨平台的内置客户端服务器,支持共享内存,UDP和TCP网络。因此,您可以在连接到Windows VR服务器的Linux上运行pybullet。
二、安装
pyubullet的安装非常简单(视情况你可能需要用pip3):
pip install pybullet
安装完成后你可以在文件包中找到以下文件(最新版),旧版本的pybullet是没有pybullet_robots这个文件夹的:
-
pybullet_data
:主要存放一些数据文件,例如模型的urdf/sdf,以及一些stl文件 -
pybullet_envs
:存放一些已经搭建好的仿真环境,例如minitaur,deep_mimic(模仿学习),已经一些经典的强化学习场景。 -
pybullet_robots
:存放3个机器人的一些简单搭建仿真环境(基本用不了,只能看看) -
pybullet_utils
:顾名思义就是一些pybullet的工具,这里不细说,大家可以看看文件夹内容
当然以上文件除了可以在packages包里找到,还可以在bullet的github上找到
三、Hello pybullet World
这里给出一个样例用来测试一下pybullet,以及熟悉一下基本使用,各种功能函数会在后续文章中一个一个讲解。
import pybullet as p
from time import sleep
physicsClient = p.connect(p.GUI)
p.setGravity(0, 0, -10)
planeId = p.loadURDF("plane.urdf")
cubeStartPos = [0, 0, 1]
cubeStartOrientation = p.getQuaternionFromEuler([0, 0, 0])
boxId = p.loadURDF("r2d2.urdf", cubeStartPos, cubeStartOrientation)
cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)
useRealTimeSimulation = 0
if (useRealTimeSimulation):
p.setRealTimeSimulation(1)
while 1:
if (useRealTimeSimulation):
p.setGravity(0, 0, -10)
sleep(0.01) # Time in seconds.
else:
p.stepSimulation()
执行程序后我们可以看到以下效果:
如果觉得ok,点个赞,点个关注,也欢迎给个打赏支持一下编者的工作
