Launch file 작성


3. ROS1 구조 및 메세지 통신의 종류

에서 언급했듯이. roslaunch는 여러개의 노드를 한번에 실행시킬 수 있습니다.

즉, 터미널 두 개를 실행시키고 각 터미널에 rosrun 명령어를 입력하는 대신 roslaunch 를 통해 한번에 여러가지의 노드를 실행시킬 수 있습니다.

Launch file 문법


우선 launch파일의 예시를 보여드리겠습니다.

<launch>
  <arg name="model" default="$(env TURTLEBOT3_MODEL)" doc="model type [burger, waffle, waffle_pi]"/>
  <arg name="x_pos" default="-2.0"/>
  <arg name="y_pos" default="-0.5"/>
  <arg name="z_pos" default="0.0"/>

	<!-- this is launchfile -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find turtlebot3_gazebo)/worlds/turtlebot3_world.world"/>
    <arg name="paused" value="false"/>
    <arg name="use_sim_time" value="true"/>
    <arg name="gui" value="true"/>
    <arg name="headless" value="false"/>
    <arg name="debug" value="false"/>
  </include>

	
  <param name="robot_description" command="$(find xacro)/xacro $(find turtlebot3_description)/urdf/turtlebot3_$(arg model).urdf.xacro" />

  <node pkg="gazebo_ros" type="spawn_model" name="spawn_urdf"  args="-urdf -model turtlebot3_$(arg model) -x $(arg x_pos) -y $(arg y_pos) -z $(arg z_pos) -param robot_description" />
</launch>

<launch>