You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyBullet运行报错Cannot load URDF file无法加载URDF文件如何解决

PyBullet 无法加载URDF文件报错修复方案

报错根因

你虽然导入了pybullet_data依赖,但未将其对应的数据目录添加到PyBullet的URDF文件搜索路径中。修改系统配置后,PyBullet的默认搜索路径、当前工作目录发生变动,导致无法定位到内置的plane.urdf文件。

修复步骤

  1. 给PyBullet添加pybullet_data的搜索路径,在建立仿真连接后插入一行配置:
p.setAdditionalSearchPath(pybullet_data.getDataPath())
  1. 同步修复原代码中的其他逻辑问题:
    • 原代码未定义boxId变量,需要提前加载立方体URDF
    • 原代码while True为死循环,后续获取物体位姿、断开连接的代码永远不会执行,可根据需求添加终止条件
  2. 修复后的完整可运行代码如下:
import pybullet as p
import time
import pybullet_data

physicsClient = p.connect(p.GUI)
# 新增:添加pybullet内置数据的搜索路径
p.setAdditionalSearchPath(pybullet_data.getDataPath())
p.setGravity(0,0,-9.81)
planeId = p.loadURDF("plane.urdf")

startPos = [0,0,1]
startOrientation = p.getQuaternionFromEuler([0,0,0])
# 新增:加载立方体,定义boxId
boxId = p.loadURDF("cube.urdf", startPos, startOrientation)

# 这里修改为运行指定步数后停止,避免死循环
for _ in range(1000):
    p.stepSimulation()
    time.sleep(1./240.)

cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)
print(cubePos,cubeOrn)
p.disconnect()

异常排查(如果修改后仍报错)

  • 检查pybullet和pybullet_data安装完整性,执行命令pip install --upgrade pybullet pybullet_data重装依赖
  • 验证当前Windows用户对pybullet_data的安装目录有读取权限,修改系统配置可能误改了目录权限
  • 可以手动指定URDF的绝对路径,先执行print(pybullet_data.getDataPath())打印出数据目录的完整地址,拼接plane.urdf后直接传入loadURDF方法即可,例如:
planeId = p.loadURDF("C:/Users/你的用户名/AppData/Local/Programs/Python/Python3x/Lib/site-packages/pybullet_data/plane.urdf")

内容的提问来源于stack exchange,提问作者Mark

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:24:06