gazebo环境提供了很多可以直接导入的模型,如果想往环境中导入自己的静态模型,需将自己的模型转化为dae格式,并编写相应的.world文件。
Solidwork等建模软件无法导出dae格式的文件,可以用blender转成dae文件,导出时要选好单位,不然在gazebo中打开时模型的比例会有问题(按键盘N,在跳出来的栏目里找到dimension,看一下尺寸的单位对不对)。
<sdf version="1.4">
<world name="default">
<include>
<uri>model://sunuri>
include>
<include>
<uri>model://ground_planeuri>
include>
<model name="gongjian">
<pose>0 0 0.49 0 1.57079 0pose>
<static>truestatic>
<link name="up">
<visual name="visual">
<geometry>
<mesh><uri>file://gongjian.daeuri>mesh>
geometry>
visual>
link>
model>
world>
sdf>
将gongjian.dae改成你的dae文件名,保存好你的world文件,将dae文件与xxx.world文件放在同一个文件夹中。打开命令行,cd 到保存world的文件夹,运行
gazebo xxx.world
如果要用roslaunch打开.world文件, 新建一个为world.launch文件
<launch>
<include file="$(find gazebo_ros)/launch/empty_world.launch">
<arg name="world_name" value="$(find kuka_kr210_support)/world/kuka.world"/>
include>
launch>
$(find kuka_kr210_support)/world/kuka.world改成你的xxx.world文件路径, 但是这时候roslaunch world.launch之后gazebo会找不到dae文件,因为gazebo在GAZEBO_RESOURCE_PATH里找不到这个模型。
可以在命令行里输入 echo $GAZEBO_RESOURCE_PATH查看路径,然后把dae文件扔进对应的文件夹里,或者在GAZEBO_RESOURCE_PATH环境变量里加入dae文件所在的路径。