(十二)Gazebo入门
Gazebo简介
Gazebo仿真器由两部分组成,第一部分是服务器,作为进程gzserver来运行,第二部分是客户端,作为进程gzclient来运行。其中客户端呈现了图形显示和人机界面。
Gazebo一个很厉害的特点就是它可以仿真传感器以及动力学,在仿真的时候,除了需要机器人模型之外,Gazebo还需要一个世界模型。常见的是一个空白的(除底面以外)的世界模型。
//在gqzebo_ros包中
roslaunch gazebo_ros empty_world.launch
矩形棱镜模型
//创建程序包
catkin_create_pkg exmpl_models roscpp
//新建文件夹rect_prism
//新建模型文件model-1_4.sdf
<?xml version='1.0'?>
<sdf version='1.4'>
<model name="rect_prism">
<link name='link'>
<inertial>
<mass>2000</mass>
<inertia>
<ixx>3000</ixx>
<ixy>0</ixy>
<ixz>0</ixz>
<iyy>3000</iyy>
<iyz>0</iyz>
<izz>1000</izz>
</inertia>
</inertial>
<collision name='collision'>
<geometry>
<box>
<size> 2 2 4 </size>
</box>
</geometry>
</collision>
<visual name='visual'>
<geometry>
<box>
<size> 2 2 4 </size>
</box>
</geometry>
</visual>
</link>
</model>
</sdf>
//之后直接在ros_ws目录下编译即可
命令行加载模型
注意在手动命令行加载模型的时候,必须要进入模型所在的目录下才能加载,不然是不嫩加载的。
rosrun gazebo_ros spawn_model -file model-1_4.sdf -sdf -model rect_prism -x 0 -y 0 -z 4
launch文件加载模型
首先在程序包中新建文件夹launch,在文件夹里新建add_rect_prism.launch文件,程序如下。
<launch>
<node name="spawn_sdf" pkg="gazebo_ros" type="spawn_model" args="-file $(find exmpl_models)/rect_prism/model-1_4.sdf -sdf -model rect_prism -x 0 -y 0 -z 4" />
</launch>
编译之后,再任意目录下均可运行。
rosrun exmpl_models add_rect_prism.launch
效果是相同的。