런치의 필요

노드가 다섯 개면 터미널도 다섯 개를 열어야 할까?

화면을 누르면 다음 장으로 넘어갑니다

지금까지

노드 하나에 터미널 하나

지금까지는 노드마다 새 터미널을 열고, source 하고, ros2 run을 쳤습니다. 거북이 창 두 개에 따라 하기 노드, 키보드, 그래프 창만 띄워도 터미널이 다섯 개입니다.

…는 뒤에 붙는 긴 인자를 줄인 것입니다. 이 묶음은 4편에서 런치 파일 하나로 만듭니다.

번거로움

하나만 빠져도 어긋납니다

터미널마다 source, 긴 명령, 인자를 손으로 칩니다. 하나라도 빠지거나 틀리면 그 노드만 조용히 빠지고, 나머지는 아무 일 없다는 듯 돕니다. 끌 때도 창을 하나씩 찾아 닫아야 합니다.

그림 속 노드 이름은 짧게 줄여 적은 것입니다.

런치 파일

띄울 목록을 파일 하나에

런치 파일(launch file)은 어떤 노드를 어떤 설정으로 띄울지 적어 둔 파일입니다. ros2 launch가 이 파일을 읽고, 적힌 노드를 터미널 하나에서 모두 띄웁니다.

파일 이름은 예시입니다. 런치 파일은 2편부터 직접 씁니다.

run과 launch

실행 파일 하나냐, 목록이냐

ros2 run은 실행 파일 하나를 띄웁니다. ros2 launch는 런치 파일 하나를 읽어 그 안의 노드를 이름, 인자, 파라미터와 함께 모두 띄웁니다.

런치 파일은 패키지 이름으로 부를 수도, 파일 경로로 바로 줄 수도 있습니다. 패키지에 넣는 법은 8편에서 봅니다.

따라 하기

명령 한 줄에 거북이 창 두 개

turtlesim 패키지에는 런치 파일이 하나 들어 있습니다. ros2 launch turtlesim multisim.launch.py를 실행하면 거북이 창이 두 개 뜹니다. 터미널은 하나뿐입니다.

명령이 길어 그림에서는 \로 줄을 나눴습니다. 두 창의 이름이 어떻게 갈리는지는 3편에서 봅니다.

끄기

Ctrl+C 한 번에 모두 꺼집니다

런치로 띄운 노드는 모두 그 터미널 하나에 묶여 있습니다. 거기서 Ctrl+C를 누르면 함께 꺼집니다. 로그도 한 화면에 모이고, 줄 앞의 이름표로 어느 노드가 낸 줄인지 가립니다.

출력은 앞부분만 보였습니다. 실제 줄은 process started with pid [번호]로 이어집니다.

다음 편

런치 파일 안에는 무엇이 적혀 있을까요?

2편파이썬 런치 파일 10강 목록