[ROS] launch file

MURRAIYA·2024년 2월 28일
0

rosrun

roscore
rosrun pkg file.py
rosrun pkg exefile //roscpp

roslaunch

roslaunch pkg file.launch
  • roslaunch는 roscore 를 자동으로 실행한다.
  • launch file 은 여러 노드에 대한 토픽 remapping과 parameter를 기술한 XML 파일이다.
  • ssh로 같은 네트워크 상의 (예를 들면 같은 공유기를 쓰는) 다른 컴퓨터에 프로그램을 시작시킬 수 있다.
  • 충돌로 종료된 노드를 자동으로 재실행할 수 있다.

launch file 위치

패키지 폴더 하위에 src msg launch 함께 있다.

launch file 형식

<launch>
  <group ns = "ns1">
    <node pkg="rospy_tutorials" type="talker" name="talker1" output="screen"/>
    <node pkg="rospy_tutorials" type="listener" name="listener1" output="screen"/>
  </group>

  <group ns = "ns2">
    <node pkg="rospy_tutorials" type="talker" name="talker2" output="screen"/>
    <node pkg="rospy_tutorials" type="listener" name="listener2" output="screen"/>
  </group>

</launch>

name: rqt graph에 표시되는 node 이름 설정하기. remapping이라고 생각하면 될듯. 메세지명은 변화 X

pkg: 패키지명

type: exe_file

group ns: namespace설정. ns하위로 각 노드와 토픽까지 들어가기 때문에 토픽도 어디 소속인지 구분 O

output=”screen” : 터미널창에 실행파일의 ROS_INFO 출력

[command line] roslaunch pkg *.launch —screen 모든 노드에 대해 ROS_INFO 출력

output=”screen” 이 부분은 프로그램이 (ex.publish 부분??) 터미널창에 출력되도록 설정하는 것을 말한다. 주로 디버깅을 위해 사용하는 부분이고 잘 동작한다면 터미널창이 더러우니 빼버리면 된다. 터미널에 보이지 않을 뿐 log file에 출력된다.

launch file 강제종료

Ctrl C는 Linux Unix 계열 터미널에서 프로그램을 강제 종료 시킬 때 일반적인 방법이다. 따라서 launch 파일도 터미널에 Ctrl C가 입력되면 실행된 노드를 모두 닫고 마지막으로 roslaunch 자신을 종료한다. 물론 roscore까지 종료한다.

profile
🙃SUJI KIM🙃 🚩 Inha University Undergraduate 🚗 Autonomous Driving Robots 📷 Computer Vision 💫 SLAM

0개의 댓글