MuJoCo网格错误渲染为球体问题排查求助
MuJoCo自定义模型渲染问题:球体替代自定义网格的解决方法
我正在修改现有MuJoCo环境,添加自定义机器人模型用于后续Gymnasium开发。目前仅尝试渲染模型,但MuJoCo.viewer中只显示球体——我已经导出了机器人主外框的.obj模型,且确认该模型不是球体。
当前表现
我的bot.xml资产文件内容如下:
<mujoco> <asset> <texture name="grid" type="2d" builtin="checker" rgb1=".1 .2 .3" rgb2=".2 .3 .4" width="300" height="300" mark="none"/> <material name="grid" texture="grid" texrepeat="1 1" texuniform="true" reflectance=".2"/> <mesh file="eggbot1d.obj" name="body"/> <mesh file="eggbot1dpendulum.obj" name="pendulum"/> </asset> <worldbody> <light name="light" pos="0 0 10"/> <geom name="floor" type="plane" pos="0 0 -.5" size="1 1 .01" material="grid"/> <camera name="fixed" pos="0 -100 100" xyaxes="1 0 0 0 1 2"/> <body name="egg1d" pos="0 0 0"> <geom name="body" pos="0 0 0" mesh="body"/> </body> </worldbody> <actuator> </actuator> </mujoco>
Viewer中仅显示球体。
已尝试的排查步骤
- 缩放网格,确认模型从Fusion导出时单位为米
- 导出为.stl格式替代.obj,结果仍为球体
- 验证文件名及资产文件夹路径正确
- 在Mac Preview中打开.obj文件,确认模型并非球体
- 用文本编辑器打开.obj文件,确认仅包含一个组
解决方案
需在body节点下的geom标签中添加type="mesh"属性,MuJoCo才会识别并渲染指定的网格模型。修改后的代码片段如下:
<body name="egg1d" pos="0 0 0"> <geom name="body" pos="0 0 0" type="mesh" mesh="body"/> </body>
添加该属性后,模型即可正常渲染。
内容的提问来源于stack exchange,提问作者Peter Klemperer
相关产品推荐
相关产品推荐

