Gazebo Sim (gz sim) Mesh 路径报错排查与修复总结
·
在使用新版 Gazebo Sim (gz sim) 加载模型时,最常遇到的报错是 Could not resolve file 或 Unable to find or download file。这通常是因为下载的模型使用了相对路径,而 Gazebo 引擎无法正确解析。
以下是通过手动修改 URI 路径彻底解决该问题的标准流程:
1. 核心原因
Gazebo Sim 在加载模型时,会脱离当前终端的工作目录,去全局的资源路径(即环境变量 $GZ_SIM_RESOURCE_PATH)中寻找资源。因此,SDF 文件中直接使用 mesh/xxx.dae 这种相对路径极易失效。
2. 前置条件:检查环境变量
确保你的模型根目录已正确配置在环境变量中。在终端执行:
echo $GZ_SIM_RESOURCE_PATH
注:输出结果中必须包含你存放模型的父目录(例如 /home/xx/gazebo_models)。
3. 手动修复步骤
第一步:修复模型定义文件 (model.sdf)
打开报错模型文件夹下的 model.sdf,找到 <mesh> 标签,将相对路径修改为标准的 model:// 协议格式。
修改前:
<uri>mesh/foldable_chair.dae</uri>
修改后:
<uri>model://foldable_chair/mesh/foldable_chair.dae</uri>
路径解析逻辑:model:// + 模型文件夹名(foldable_chair) + 内部相对路径(mesh/foldable_chair.dae)
第二步:修复世界文件 (myworld.sdf)
如果你的世界文件中也直接引用了该模型,同样需要修改。在世界文件中,只需引用到模型文件夹即可,Gazebo 会自动读取其中的 model.sdf。
修改前:
<uri>mesh/foldable_chair.dae</uri>
修改后:
<uri>model://foldable_chair</uri>
4. 验证与启动
修改完成后运行:
gz sim myworld.sdf
避坑指南
- 大小写敏感:Linux 系统对文件名严格区分大小写,请确保 SDF 中填写的
foldable_chair.dae与实际文件名一字不差。 - 名称一致性:
model.config文件中的<name>标签必须与模型文件夹名称、以及 SDF 中model://后面的名称完全一致。 - 保存权限:如果在 Gazebo 界面中点击保存时报错,请检查是否试图将文件保存在系统根目录
/下,请将其保存至用户主目录(如~/)。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)