将 URDF (Unified Robot Description Format) 文件转换为 MuJoCo XML (MJCF) 格式的工具集。
Windows:
setup_env.batLinux/macOS:
chmod +x setup_env.sh
./setup_env.shWindows:
venv\Scripts\activateLinux/macOS:
source venv/bin/activate由于 MuJoCo 通常使用 OBJ 格式,建议先转换网格文件:
python convert_meshes_stl_to_obj.py转换完成后,OBJ 文件会保存在 arm_description/meshes_obj/ 目录。
如果需要将 OBJ 文件放在与 STL 文件相同的目录,可以手动复制:
Windows:
# 复制所有 OBJ 文件到 meshes 目录
copy arm_description\meshes_obj\*.obj arm_description\meshes\Linux/macOS:
# 复制所有 OBJ 文件到 meshes 目录
cp arm_description/meshes_obj/*.obj arm_description/meshes/或者,您也可以直接更新 URDF 文件中的 mesh 路径,将 .STL 改为 .obj,并将路径从 meshes/ 改为 meshes_obj/。
python convert_urdf_to_mjcf.py转换后的 XML 文件会保存在与 URDF 文件相同的目录(arm_description/urdf/)。
转换后的 XML 文件可能包含需要修复的问题(如 package:// 路径、空的 material 名称等)。使用修复工具自动修复:
python fix_mjcf_xml.py arm_description/urdf/so_arm100_write.xml修复工具会自动:
- 将
package://路径转换为相对路径 - 修复空的 material 名称
- 将
.STL引用改为.obj(如果存在) - 创建备份文件(
.xml.bak)
# 使用验证工具
python validate_mjcf.py arm_description/urdf/so_arm100_write.xml --full
# 或验证并打开查看器
python validate_mjcf.py arm_description/urdf/so_arm100_write.xml --viewer# 直接在 MuJoCo 查看器中打开模型
python view_mjcf.py arm_description/urdf/so_arm100_write.xmlurdf2mjcf/
├── arm_description/ # 机器人描述文件
│ ├── urdf/ # URDF 文件
│ └── meshes/ # 网格文件
├── convert_urdf_to_mjcf.py # URDF 转 MJCF 主转换脚本
├── convert_meshes_stl_to_obj.py # STL 转 OBJ 工具(专门用于本项目)
├── fix_mjcf_xml.py # MuJoCo XML 修复工具
├── validate_mjcf.py # MuJoCo XML 验证工具
├── view_mjcf.py # MuJoCo 模型查看器
├── batch_mesh_simplifier.py # 网格简化工具
├── convert_stl_to_obj.py # 通用 STL 转 OBJ 工具
├── requirements.txt # Python 依赖
├── setup_env.bat # Windows 环境设置
├── setup_env.sh # Linux/macOS 环境设置
└── URDF2MJCF_使用指南.md # 详细使用指南
- ✅ URDF 到 MuJoCo XML 格式转换
- ✅ STL 到 OBJ 格式转换(专门用于 MuJoCo)
- ✅ MuJoCo XML 文件修复工具
- ✅ MuJoCo XML 文件验证工具
- ✅ 自动处理
package://路径 - ✅ 自动检测和安装依赖
- ✅ 详细的转换日志和统计信息
- ✅ 网格文件简化工具
- ✅ 支持二进制和 ASCII STL 格式
- Python 3.7+
- urdf2mjcf
- trimesh (用于网格处理)
- numpy
详细依赖列表请查看 requirements.txt。
详细使用说明请参考:URDF2MJCF_使用指南.md
本项目遵循 Apache-2.0 许可证。