我正在尝试导入一些网格文件只是为了在我们的URDF中可视化,但无论我做什么似乎都无法让它工作。我将模型导出为 .obj/.mtl,并且在使用在线模型查看器时这些模型工作得非常好。当我尝试在 URDF 中引用它们并在 Drake 中可视化它们时,模型的一小部分不会显示。在此图片中,应该有一个螺钉所在的组件,但它只是没有加载。 这就是模型应该看起来的样子,如 3dviewer.net 上所示。
我还尝试使用多个选项将 .obj/.mtl 文件转换为 .gtlf,但当我这样做时,它们似乎会丢失所有材料属性。模型的所有部分都正确显示,但它们都具有相同的材质。
这是我正在运行的代码的完整范围:
from pydrake.all import ModelVisualizer, PackageMap, StartMeshcat
meshcat = StartMeshcat()
visualizer = ModelVisualizer(meshcat=meshcat)
visualizer.AddModels("URDFs/test.urdf")
visualizer.Run()
meshcat.DeleteAddedControls()
问题在于,未出现的尸体不知何故分配了多种材料。我通过将文件上传到 3dviewer.net,按材质排序,然后查看应用了这些材质的网格来修复此问题。我能够手动编辑 .obj 以删除重复的部分。