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}}"처럼 줄여 써도 됩니다.
다음 편