上文写到建立了一个apriltag的模型,现在打算将其导出为sdf文件。
可以采用Blender SDF Exporter脚本进行导出。
参考:
Ignition Gazebo: Blender SDF Exporter
脚本地址:
gz-sim/examples/scripts/blender at ign-gazebo5 · gazebosim/gz-sim · GitHub
将脚本下载后,在blender->Scripting中加载脚本并运行,提示选择放置位置,可以看到生成了3个文件:
导出的sdf文件是1.8的版本。ubuntu 18.04的gazebo的版本较早,不能支持。
因此手动修改文件。
对model.config和model.sdf进行修改。
model.config文件内容如下所示
<?xml version="1.0"?>
<model>
<name>acircles_pattern</name>
<version>1.0</version>
<sdf version='1.6'>model.sdf</sdf>
<author>
<name>skywoodsz</name>
<email>skywoodszcn@gmail.com</email>
</author>
<description>
A plane with a reference texture on it depicting an asymmetrical circle pattern.
</description>
</model>
其中中写入sdf文件名称,其余为作者与模型描述。
sdf文件如下所示。
<?xml version='1.0'?>
<sdf version="1.6">
<model name="acircles_pattern">
<static>true</static>
<link name="link">
<visual name="visual">
<geometry>
<mesh>
<uri>model://acircles_pattern/meshes/model.dae</uri>
</mesh>
</geometry>
</visual>
</link>
</model>
</sdf>
其中为模型名称,在gazebo中也将以该名称显示。在中填入dae模型文件地址。其中model://acircles_pattern为当前文件夹地址。
但由Blender建立的模型在gazebo中显示光泽较黯,可在文本方式下打开dae文件,找到以下选项卡,将数值由0 0 0 1改为1 1 1 1。下示为修改后内容。
<emission>
<color sid="emission">1 1 1 1</color>
</emission>
<ambient>
<color sid="ambient">1 1 1 1</color>
</ambient>
由此模型描述文件以全部完成,可放置在./gazebo/models文件夹下,在重启gazebo后便可以在插入模型选项中找到该模型。