今天自己弄了一个dae类型的模型文件,想要导入gazebo,按照gazebo .world文件中导入dae模型的问题文章操作了一番,编写如下.world文件
<?xml version="1.0"?>
<sdf version="1.4">
<world name="default">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="SparsePillars">
<pose>0 0 0 0 0 0</pose>
<static>true</static>
<link name="up">
<visual name="visual">
<geometry>
<mesh><uri>file://SparsePillars.dae</uri></mesh>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
利用该.world文件,直接使用gazebo worldname.world
时gazebo能够正常启动,但是使用roslaunch加载world的时候gazebo会一直卡在加载界面黑屏,并且报如下错误
[Err] [ModelDatabase.cc:414] Unable to download model[model://SparsePillars.dae]
[Err] [SystemPaths.cc:412] File or path does not exist[""]
[Err] [Visual.cc:2824] No mesh specified
查资料、找问题找了一天之后,终于在gazebo官网问答区找到一篇帖子,最终的解决方案是在.world文件中将uri地址改为绝对地址,并且绝对地址前面的反斜杠/需要三个!具体world文件如下
<sdf version="1.6">
<world name="default">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="SparsePillars">
<pose>0 0 0.0 0 0 0</pose>
<static>true</static>
<link name="up">
<visual name="visual">
<geometry>
<mesh><uri>file:///home/muguang629/Simulator/SparsePillars.dae</uri></mesh>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
使用该world文件,roslaunch即可正常启动