메시지 타입
거북이에게 보내는 "앞으로 가"는 어떤 모양일까?
화면을 누르면 다음 장으로 넘어갑니다
왜
토픽마다 정해진 모양이 있습니다
토픽에는 아무 데이터나 실을 수 없습니다. 토픽마다 실을 데이터의 서식이 정해져 있고, 이 서식을 메시지 타입(message type)이라고 합니다.
거북이의 /turtle1/cmd_vel은 Twist라는 타입만 받습니다. "앞으로 가" 같은 글자는 들어가지 못합니다.
이름 읽기
타입 이름은 세 토막입니다
geometry_msgs/msg/Twist는 geometry_msgs 패키지에 든 메시지 Twist라는 뜻입니다. 가운데 msg는 이것이 토픽에 싣는 메시지라는 표시입니다.
패키지는 5강에서 자세히 봅니다. 지금은 "타입을 담은 꾸러미" 정도로 보면 됩니다.
따라 하기
토픽 이름으로 타입을 물어봅니다
거북이(turtlesim_node)를 띄운 채로 ros2 topic type /turtle1/cmd_vel을 쳐 보세요. 토픽 이름을 주면 그 토픽의 타입을 알려 줍니다.
3강 5편의 ros2 topic info도 첫 줄에 같은 타입을 보여 줍니다.
필드
메시지는 이름 붙은 칸의 묶음입니다
메시지 안의 칸 하나하나를 필드(field)라고 합니다. 필드마다 이름과 타입이 있습니다. Pose는 거북이의 위치 x, y와 방향 theta, 속도 두 개를 담습니다.
값은 ros2 topic echo /turtle1/pose --once로 본 처음 위치입니다(소수점 아래는 줄였습니다).
짝 맞추기
이름이 같아도 타입이 다르면 끊깁니다
퍼블리셔와 서브스크라이버는 토픽 이름뿐 아니라 타입도 같아야 이어집니다. 같은 이름에 다른 타입으로 구독하면 메시지는 한 개도 오지 않습니다.
/listener는 설명을 위해 붙인 이름입니다. 이 문제는 14강 5편에서 실제로 만납니다.
이 강의 지도
자주 쓰는 타입은 세 꾸러미에 있습니다
ROS 2를 깔면 함께 오는 표준 메시지 패키지입니다. 이 세 꾸러미만 읽을 줄 알아도 대부분의 토픽을 알아볼 수 있습니다. 이번 강은 이 순서로 하나씩 엽니다.
다음 편