gazebo仿真环境[物理模型]配置
添加stl自定义模型,或引入官方/其他人的标准模型到gazebo环境。
1 gazebo添加stl格式(CAD)模型作为环境
1.1 建立模型
打开一个empty_world,并另保存为.sdf文件。
在其中的<model name='ground_plane'>
标签中添加地形link。
<model name='ground_plane'>
<link name='terrain'>
<collision name='collision'>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>/home/zobot/catkin_ws/src/mybot/mybot_description/sdf/stl/world_stl.stl</uri>
</mesh>
</geometry>
<surface>
<contact>
<collide_bitmask>65535</collide_bitmask>
<ode/>
</contact>
<friction>
<ode>
<mu>100</mu>
<mu2>50</mu2>
</ode>
<torsional>
<ode/>
</torsional>
</friction>
<bounce/>
</surface>
<max_contacts>10</max_contacts>
</collision>
<visual name='visual'>
<cast_shadows>0</cast_shadows>
<geometry>
<mesh>
<scale>0.001 0.001 0.001</scale>
<uri>/home/zobot/catkin_ws/src/mybot/mybot_description/sdf/stl/world_stl.stl</uri>
</mesh>
</geometry>
<material>
<script>
<uri>file://media/materials/scripts/gazebo.material</uri>
<name>Gazebo/Grey</name>
</script>
</material>
</visual>
<self_collide>0</self_collide>
<enable_wind>0</enable_wind>
<kinematic>0</kinematic>
</link>
</model>
在下方的<state world_name='default'>
标签中,同样加入地形参数:
<state world_name='default'>
<model name='ground_plane'>
<link name='terrain'>
<pose>0 0 0 0 -0 0</pose>
<velocity>0 0 0 0 -0 0</velocity>
<acceleration>0 0 0 0 -0 0</acceleration>
<wrench>0 0 0 0 -0 0</wrench>
</link>
</model>
</state>
1.2 导入模型
在launch文件中添加:
<!-- 启动 gazebo 并 添加环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch" >
<arg name="world_name" value="$(find mybot_description)/sdf/world.sdf"/>
</include>
即可导入stl模型作为环境。
2 导入使用gazebo官方模型
导入使用gazebo官方模型,并设置为launch启动时自动添加。
基本思路:下载官方模型,保存官方模型到自己的目录下,然后在launch启动中添加。
2.1 下载官方模型
打开主文件夹下.gazebo文件夹,下载GitHub上的官方模型,放到models文件夹中。
cd ~/.gazebo
git clone https://github.com/osrf/gazebo_models.git models
如果已存在models文件,则下载下来后手动移动进去就行。
2.2导入官方模型并保存到自己的目录下
打开一个empty_world,insert官方模型(也可以添加编辑自定义模型),save world到自己的目录下。
2.3 导入模型
在launch文件中添加:
<launch>
<!-- 启动 gazebo 并 添加环境 -->
<include file="$(find gazebo_ros)/launch/empty_world.launch" >
<arg name="world_name" value="$(find mybot_description)/sdf/world.sdf"/>
</include>
</launch>
即可使用添加官方模型。