메시지 타입

거북이에게 보내는 "앞으로 가"는 어떤 모양일까?

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

왜

토픽마다 정해진 모양이 있습니다

토픽에는 아무 데이터나 실을 수 없습니다. 토픽마다 실을 데이터의 서식이 정해져 있고, 이 서식을 메시지 타입(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를 깔면 함께 오는 표준 메시지 패키지입니다. 이 세 꾸러미만 읽을 줄 알아도 대부분의 토픽을 알아볼 수 있습니다. 이번 강은 이 순서로 하나씩 엽니다.

다음 편

그럼 Twist 안에는 무엇이 들어 있을까요?

2편메시지 안을 들여다보기 4강 목록