Drake Visualizer:使用 .dae 文件时 readPolyData 中的未知文件扩展名
Drake Visualizer : Unknown file extension in readPolyData when using .dae file
我正在尝试为我的 .sdf
模型添加自定义网格(环面).dae
碰撞和视觉文件。
当我 运行 我的程序时,drake visualizer 给出以下错误
File "/opt/drake/lib/python2.7/site-packages/director/lcmUtils.py", line 119, in handleMessage
callback(msg)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 352, in onViewerLoadRobot
self.addLinksFromLCM(msg)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 376, in addLinksFromLCM
self.addLink(Link(link), link.robot_num, link.name)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 299, in __init__
self.geometry.extend(Geometry.createGeometry(link.name + ' geometry data', g))
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 272, in createGeometry
polyDataList, visInfo = Geometry.createPolyDataFromFiles(geom)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 231, in createPolyDataFromFiles
polyDataList = [ioUtils.readPolyData(filename)]
File "/opt/drake/lib/python2.7/site-packages/director/ioUtils.py", line 25, in readPolyData
raise Exception('Unknown file extension in readPolyData: %s' % filename)
Exception: Unknown file extension in readPolyData: /my_path/model.dae
因为 prius.sdf
也使用 prius.dae
,我认为这是可能的。我做错了什么?
tl;dr drake_visualizer
不加载 dae 文件。如果您将一个类似名称的 .obj
文件放在同一文件夹中,它将加载该文件(并且您可以让您的 sdf 文件仍然引用 dae 文件)。
长答案:
drake_visualizer
有一个非常具体的、任意的文件加载协议。给定任意文件名(例如,my_geometry.dae
)它将
- 去掉扩展名。
- 尝试以下文件(按顺序),加载它找到的第一个文件:
my_geometry.vtm
my_geometry.vtp
my_geometry.obj
- 原始扩展。
它可以加载:vtm
、vtp
、ply
、obj
和 stl
个文件。
最糟糕的是,如果您在同一个文件夹中同时拥有同名的 vtp 和 obj 文件,并且您指定 obj,它仍然会支持 vtp文件。
我正在尝试为我的 .sdf
模型添加自定义网格(环面).dae
碰撞和视觉文件。
当我 运行 我的程序时,drake visualizer 给出以下错误
File "/opt/drake/lib/python2.7/site-packages/director/lcmUtils.py", line 119, in handleMessage
callback(msg)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 352, in onViewerLoadRobot
self.addLinksFromLCM(msg)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 376, in addLinksFromLCM
self.addLink(Link(link), link.robot_num, link.name)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 299, in __init__
self.geometry.extend(Geometry.createGeometry(link.name + ' geometry data', g))
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 272, in createGeometry
polyDataList, visInfo = Geometry.createPolyDataFromFiles(geom)
File "/opt/drake/lib/python2.7/site-packages/director/drakevisualizer.py", line 231, in createPolyDataFromFiles
polyDataList = [ioUtils.readPolyData(filename)]
File "/opt/drake/lib/python2.7/site-packages/director/ioUtils.py", line 25, in readPolyData
raise Exception('Unknown file extension in readPolyData: %s' % filename)
Exception: Unknown file extension in readPolyData: /my_path/model.dae
因为 prius.sdf
也使用 prius.dae
,我认为这是可能的。我做错了什么?
tl;dr drake_visualizer
不加载 dae 文件。如果您将一个类似名称的 .obj
文件放在同一文件夹中,它将加载该文件(并且您可以让您的 sdf 文件仍然引用 dae 文件)。
长答案:
drake_visualizer
有一个非常具体的、任意的文件加载协议。给定任意文件名(例如,my_geometry.dae
)它将
- 去掉扩展名。
- 尝试以下文件(按顺序),加载它找到的第一个文件:
my_geometry.vtm
my_geometry.vtp
my_geometry.obj
- 原始扩展。
它可以加载:vtm
、vtp
、ply
、obj
和 stl
个文件。
最糟糕的是,如果您在同一个文件夹中同时拥有同名的 vtp 和 obj 文件,并且您指定 obj,它仍然会支持 vtp文件。