1. 程式人生 > >launch文件

launch文件

是否 aca ESS 命名空間 false sim 文件 pan -s

1、簡介

機器人是一個系統工程, 通常一個機器人運行操作時要開啟很多個nodeROS為我們
提供了一個命令能一次性啟動master和多個node。 該命令是:

$ roslaunch pkg_name file_name.launch

roslaunch命令首先會自動進行檢測系統的roscore有沒有運行, 也即是確認節點管理器是否在
運行狀態中, 如果master沒有啟動, 那麽roslaunch就會首先啟動master, 然後再按照launch
的規則執行。 launch文件裏已經配置好了啟動的規則。 所以 roslaunch 就像是一個啟動工
具, 能夠一次性把多個節點按照我們預先的配置啟動起來, 減少我們在終端中一條條輸入指


令的麻煩。

2、寫法與格式

參考鏈接:http://wiki.ros.org/roslaunch/XML

launch文件同樣也遵循著xml格式規範, 是一種標簽文本, 它的格式包括以下標簽:

<launch> <!--根標簽-->
<node> <!--需要啟動的node及其參數-->
<include> <!--包含其他launch-->
<machine> <!--指定運行的機器-->
<env-loader> <!--設置環境變量-->
<param> <!--定義參數到參數服務器-->
<rosparam> <!--啟動yaml文件參數到參數服務器-->
<arg> <!--定義變量-->
<remap> <!--設定參數映射-->
<group> <!--設定命名空間-->
</launch> <!--根標簽-->

3、舉例

<launch>
<node name="talker" pkg="rospy_tutorials" type="talker" />
</launch>

例子2

<launch>
<!--arg是launch標簽中的變量聲明, arg的name為變量名, default或者value為值-->
<arg name="robot" default="xbot2"/>
<arg name="debug" default="false"/>
<arg name="gui" default="true
"/> <arg name="headless" default="false"/> <!-- Start Gazebo with a blank world --> <include file="$(find gazebo_ros)/launch/empty_world.launch"> <!--include用來嵌套仿真場景 的launch文件--> <arg name="world_name" value="$(find robot_sim_demo)/worlds/ROS-Academy.world"/> <arg name="debug" value="$(arg debug)" /> <arg name="gui" value="$(arg gui)" /> <arg name="paused" value="false"/> <arg name="use_sim_time" value="true"/> <arg name="headless" value="$(arg headless)"/> </include> <!-- Oh, you wanted a robot? --> <!--嵌套了機器人的launch文件--> <include file="$(find robot_sim_demo)/launch/include/$(arg robot).launch.xml" /> <!--如果你想連同RViz一起啟動, 可以按照以下方式加入RViz這個node--> <!--node name="rviz" pkg="rviz" type="rviz" args="-d $(find robot_sim_demo)/urdf_gazeb o.rviz" /--> </launch>

launch文件