ros2 interface show

Twist 안에는 숫자가 몇 개 들어 있을까?

정의 파일

메시지 모양은 .msg 파일에 적혀 있습니다

메시지 타입마다 .msg 파일이 하나씩 있습니다. 한 줄에 필드 하나를 "타입 이름" 순서로 적고, # 뒤는 사람을 위한 주석입니다.

Twist는 Vector3 타입의 필드 linear와 angular 둘로 되어 있습니다.

따라 하기

명령 하나로 끝까지 펼쳐 봅니다

ros2 interface show geometry_msgs/msg/Twist를 쳐 보세요. 파일 내용에 더해, 안에 든 Vector3까지 펼쳐서 보여 줍니다.

첫 줄 주석은 줄였습니다. 주석 없이 보려면 끝에 --no-comments를 붙입니다.

들여쓰기

들여 쓴 줄은 안에 든 메시지입니다

들여쓰기 한 칸은 "이 필드 안에 또 메시지가 있다"는 뜻입니다. 끝까지 펼치면 Twist에는 실수(float64)가 여섯 개 들어 있습니다.

필드는 점으로 이어 부릅니다. 거북이를 앞으로 보내는 칸은 linear.x입니다.

기본 타입

끝까지 펼치면 기본 타입만 남습니다

더 쪼갤 수 없는 타입을 기본 타입(built-in type)이라고 합니다. 숫자 뒤의 32, 64는 비트 수이고, u가 붙은 정수는 음수가 없습니다. 타입 뒤에 []가 붙으면 여러 개를 담는 배열입니다.

이어 치기

토픽 이름만 알 때는 이어서 칩니다

앞 명령이 찾은 타입 이름을 |로 넘기고, show 뒤의 -가 그것을 받습니다. 타입 이름을 몰라도 토픽 이름에서 바로 모양을 볼 수 있습니다.

한 줄로 치면 ros2 topic type /turtle1/pose | ros2 interface show -입니다.

보낼 틀

보낼 때 쓸 빈 틀도 뽑아 줍니다

ros2 interface proto는 모든 칸을 기본값으로 채운 틀을 보여 줍니다. 3강 6편에서 ros2 topic pub에 넣은 YAML이 바로 이 모양입니다.

필요한 칸만 남겨 "{linear: {x: 2.0}, angular: {z: 1.8}}"처럼 줄여 써도 됩니다.

다음 편

숫자 딱 하나만 보내고 싶다면요?

3편숫자 하나, 글자 하나는 어떻게 보낼까? 4강 목록