3. ROS 프로그래밍 기초(2)
1) roslaunch
- $ roslaunch
- *.launch 파일 내용에 따라 여러 노드들을 한꺼번에 실행시킬 수 있음
- roslaunch 사용법
- $ roslaunch [패키지이름][실행시킬 launch 파일 이름]
- ex) $ roslaunch my_pkg1 aaa.launch
- 이때 [실행시킬 launch 파일]은 반드시 패키지에 포함된 launch 파일이어야 함
2) *.launch 파일
- roslaunch 명령어를 이용하여 많은 노드를 동시에 실행시키기 위한 파일
- 실행시킬 노드들의 정보가 XML 형식으로 기록되어 있음
3) *.launch에서 사용하는 Tag : node
- node 태그 : 실행할 노드 정보를 입력할 때 사용되는 태그
<node pkg="패키지 명" type="노드가 포함된 소스파일 명" name="노드 이름" />
- 속성
- pkg : 실행시킬 노드의 패키지 이름을 입력하는 속성
- type : 노드의 소스코드가 담긴 파이썬 파일의 이름을 입력하는 속성
- 이때 .py 파일을 반드시 실행권한이 있어야 함
- name : 노드의 이름을 입력하는 속성
- 소스코드에서 지정한 노드의 이름을 무시하고, launch 파일에 기록된 노드의 이름으로 노드가 실행됨
4) *.launch에서 사용하는 Tag : include
- include 태그 : 다른 launch 파일을 불러오고 싶을 때 사용하는 태그
<include file="같이 실행 할 *.launch 파일 경로" />
- 속성
- file : 함께 실행시킬 *.launch 파일의 경로를 입력하는 속성
5) *.launch에서 사용하는 Tag : param
- param 태그 : ROS 파라미터 서버에 변수를 등록하고 그 변수에 값을 설정하기 위한 태그
<param name="변수의 이름" type="변수의 타입" value="변수 값" />
- 속성
- name : 등록할 변수의 이름
- type : 등록할 변수의 타입. 사용 할 수 있는 타입의 종류는 str, int, double, bool, yaml
- value : 등록할 변수의 값
- ROS 파라미터 서버에 등록된 변수는 노드 코드에서 불러와 사용할 수 있음
5) launch 파일 작성
- 여러 노드를 함께 실행시킬 때 편리
- $ roslaunch [package_name][file.launch]
- 다수의 노드를 한꺼번에 실행 가능
- 파라미터 값을 노드에 전달 가능
- launch 파일 작성
6) launch 파일 실행
- launch 파일 실행 방법
- $ roslaunch my_pkg1 pub-sub.launch
- $ roslaunch 명령을 사용할 때는
- 별도로 $ roscore 명령을 실행할 필요가 없다.
- 내부적으로 roscore가 자동으로 실행되어 매우 편하다.
7) 노드 동작 확인