Gazebo Tutorials for Kinetic-ROS Kinetic下官方Gazebo教程部分修正
阿新 • • 發佈:2018-12-07
背景
對官網教程做一些修正。
系統: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釋出的模擬時間,而不是使用系統時間。