Gazebo Tutorials for Kinetic-ROS Kinetic下官方Gazebo教程部分修正
背景
对官网教程做一些修正。
系统:Linux 16.04 LTS
ROS:Kinetic
在ROS Kinetic下启动和安装Gazebo
描述: 在ROS Kinetic下启动并运行Gazebo。
级别: 新手
安装
通过如下指令安装。
输入
$ sudo apt-get install ros-kinetic-simulators
输出
安装完毕的Gazebo for Kinetic。
配置
设置环境变量。
输入
$ source /opt/ros/kinetic/setup.bash
输出
配置好的环境变量。你也可以通过echo指令检查是否配置成功,经常使用可以写入~/.bashrc。
启动
启动Gazebo
输入
$ roslaunch gazebo_ros empty_world.launch
输出
打开如下GUI界面,下图来自官方教程。你有可能看到的是一个全灰,有网格,没天空的界面。
0.0.1 Launch Script Explained
查看文件:gazebo_worlds/launch/empty_world.launch.
你可以通过如下方式查找到该文件位置,该方式在我归纳的前几份教程里有提及。
输入
$ rospack find gazebo_ros
输出
/opt/ros/kinetic/share/gazebo_ros
输入1
$ cd /opt/ros/kinetic/share/gazebo_ros/launch
$ gedit empty_world.launch
或通过如下方式进行,输入2的方法不用知道gazebo_ros的绝对路径
输入2
$ roscd gazebo_ros
输出
通过gedit编辑器打开empty_world.launch如下
<launch>
<!-- these are the arguments you can pass this launch file, for example paused:=true -->
<arg name="paused" default="false"/>
<arg name="use_sim_time" default="true"/>
<arg name="extra_gazebo_args" default=""/>
<arg name="gui" default="true"/>
<arg name="recording" default="false"/>
<!-- Note that 'headless' is currently non-functional. See gazebo_ros_pkgs issue #491 (-r arg does not disable
rendering, but instead enables recording). The arg definition has been left here to prevent breaking downstream
launch files, but it does nothing. -->
<arg name="headless" default="false"/>
<arg name="debug" default="false"/>
<arg name="physics" default="ode"/>
<arg name="verbose" default="false"/>
<arg name="world_name" default="worlds/empty.world"/> <!-- Note: the world_name is with respect to GAZEBO_RESOURCE_PATH environmental variable -->
<arg name="respawn_gazebo" default="false"/>
<arg name="use_clock_frequency" default="false"/>
<arg name="pub_clock_frequency" default="100"/>
<!-- set use_sim_time flag -->
<param name="/use_sim_time" value="$(arg use_sim_time)"/>
<!-- set command arguments -->
<arg unless="$(arg paused)" name="command_arg1" value=""/>
<arg if="$(arg paused)" name="command_arg1" value="-u"/>
<arg unless="$(arg recording)" name="command_arg2" value=""/>
<arg if="$(arg recording)" name="command_arg2" value="-r"/>
<arg unless="$(arg verbose)" name="command_arg3" value=""/>
<arg if="$(arg verbose)" name="command_arg3" value="--verbose"/>
<arg unless="$(arg debug)" name="script_type" value="gzserver"/>
<arg if="$(arg debug)" name="script_type" value="debug"/>
<!-- start gazebo server-->
<group if="$(arg use_clock_frequency)">
<param name="gazebo/pub_clock_frequency" value="$(arg pub_clock_frequency)" />
</group>
<node name="gazebo" pkg="gazebo_ros" type="$(arg script_type)" respawn="$(arg respawn_gazebo)" output="screen"
args="$(arg command_arg1) $(arg command_arg2) $(arg command_arg3) -e $(arg physics) $(arg extra_gazebo_args) $(arg world_name)" />
<!-- start gazebo client -->
<group if="$(arg gui)">
<node name="gazebo_gui" pkg="gazebo_ros" type="gzclient" respawn="false" output="screen" args="$(arg command_arg3)"/>
</group>
</launch>
脚本是用默认文件(empty.world)启动Gazebo。该文件中你可以指定模型世界的部分参数,如物理引擎参数、地平面纹理、照明等。对于大部分用户来说,empty_world.launch加载的世界环境已足够使用。其中/use_sim_time指代系统内时间,可以自定义为由Gazebo发布的模拟时间,而不是使用系统时间。