Skip to content

踩坑GitHub google-deepmind/mujoco5 天前

MuJoCo Managed Viewer保存XML报错No XML model loaded ​

本文由 AI 根据公开内容整理,可能有误,请以原文为准:Save XML on Managed Viewer Fails(GitHub google-deepmind/mujoco #2728)

状态:有绕过办法

问题 ​

在Python中使用mujoco.MjSpec编译模型并通过mujoco.viewer.launch启动Managed Viewer后,点击Save xml功能失效,生成的XML文件内容为空,且退出时在标准错误输出中打印Save XML error: No XML model loaded%。该问题在MuJoCo 3.3.3及以下版本、3.16.0及当前main分支均复现,涉及macOS与Linux平台及Python 3.11环境。

环境 ​

MuJoCo 3.3.3/3.16.0/main分支,Python 3.11,macOS/Linux

解决办法 ​

  1. 调用spec.compile()编译MjSpec对象生成模型。
  2. 使用spec.to_file('model.xml')将编译后的模型序列化为临时XML文件。
  3. 通过mujoco.MjModel.from_xml_path('model.xml')从文件路径重新加载模型实例。
  4. 将重新加载的模型传入mujoco.viewer.launch()启动Viewer,此时Save xml功能恢复正常。
  5. 根本修复方案为修改Viewer使其感知MjSpec,在Simulate::Load中接收可选mjSpec指针,保存时改用mj_copyBack配合mj_saveXML替代仅依赖历史加载记录的mj_saveLastXML。

讨论原作者:@kevinzakka 等,版权归原作者所有。

来源

本页事实对应的公开页面,以原文为准。

  1. GitHub google-deepmind/mujoco #2728:Save XML on Managed Viewer Fails访问 2026-10-26