pip install pybullet
大致顺序如下:
导入相关库 -- 添加物理引擎 -- 添加资源路径 -- 设置重力 -- 加载模型 -- 显示/不显示可视化 -- 断开连接
import pybullet as p
import pybullet_data as pda # 只用来添加资源路径
import time # 用来显示GUI
# 连接GUI
cli = p.connect(p.GUI)
# 1代表显示GUI界面,0代表不显示
p.configureDebugVisualizer(p.COV_ENABLE_GUI, 1)
# 添加资源路径,之后加载就不用绝对路径了
p.setAdditionalSearchPath(pda.getDataPath())
p.setGravity(0, 0, 0) # 未指明则默认第一个物理引擎(本例中GUI)
sceneID = p.loadURDF('plane.urdf') # 加载场景
# 设置机器人参数-位置和姿态
startPos = [0, 0, 0.5]
startOrientation = p.getQuaternionFromEuler([0, 0, 0])
# 加载机器人
robotID = p.loadURDF('r2d2.urdf', startPos, startOrientation)
while (True):
p.stepSimulation()
time.sleep(0.05)
p.disconnect()
import pybullet as p
import time
import pybullet_data
# 连接物理引擎
physicsCilent = p.connect(p.GUI)
# 渲染逻辑
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING, 0) # 感觉渲染与否差不多
p.configureDebugVisualizer(p.COV_ENABLE_GUI, 1)
# p.configureDebugVisualizer(p.COV_ENABLE_TINY_RENDERER, 1)
# 添加资源路径,为了方便之后不用写绝对路径
p.setAdditionalSearchPath(pybullet_data.getDataPath())
# 设置环境重力加速度,即对所有的物体都会产生这个重力
p.setGravity(0, 0, -10)
# 加载URDF模型,此处是加载蓝白相间的陆地,可以改形状,到时候找找,plane为场景
planeId = p.loadURDF("plane.urdf")
# 加载机器人,并设置加载的机器人的位姿
startPos = [0, 1, 0] # 原点位置
startOrientation = p.getQuaternionFromEuler([0, 0, 0]) # 整体旋转的姿态
boxId = p.loadURDF("r2d2.urdf", startPos, startOrientation)
# boxId = p.loadURDF("r2d2.urdf", [0, 0, 0], [0, 0, 0, 2])
# 按照位置和朝向重置机器人的位姿,由于我们之前已经初始化了机器人,所以此处加不加这句话没什么影响
# p.resetBasePositionAndOrientation(boxId, startPos, startOrientation)
# p.configureDebugVisualizer(p.COV_ENABLE_RENDERING, 1)
# 直接实时仿真,需要p.setRealTimeSimulation(1)
p.setRealTimeSimulation(1)
while True:
# 设置仿真环境每隔0.05s执行一步(不要pass和p.setRealTimeSimulation(1))
# p.stepSimulation()
# time.sleep(0.05)
pass
# 断开连接
p.disconnect()