ros2 topic hz·bw

거북이는 자기 위치를 1초에 몇 번이나 알려 줄까?

빠르기

토픽마다 빠르기가 다릅니다

5편에서 봤듯이 /turtle1/pose는 가만히 있어도 쉬지 않고 오고, /turtle1/cmd_vel은 키를 누를 때만 옵니다. 센서는 정해진 빠르기로 계속 보내는 경우가 많습니다. 이 빠르기를 숫자로 재 봅니다.

재 보기

hz는 1초에 몇 번인지 잽니다

ros2 topic hz /turtle1/pose는 1초에 메시지가 몇 개 오는지 average rate로 보여 줍니다. 단위 Hz(헤르츠)는 "1초에 몇 번"이라는 뜻입니다. turtlesim은 위치를 1초에 60번쯤 보냅니다.

공식 튜토리얼의 출력이고, 숫자는 컴퓨터마다 조금씩 다릅니다. 멈출 때는 Ctrl+C를 누릅니다.

재는 법

간격을 재서 거꾸로 셉니다

hz는 메시지가 도착한 간격을 잽니다. 평균 간격이 0.017초면 1을 0.017로 나눈 약 59가 average rate입니다. min과 max는 가장 짧은 간격과 가장 긴 간격, window는 계산에 쓴 메시지 개수입니다.

맞춰 보기

보낸 빠르기를 그대로 잽니다

6편의 pub 명령을 켜 둔 채로 ros2 topic hz /turtle1/cmd_vel을 치면 1에 가까운 값이 나옵니다. pub이 기본으로 1초에 한 번 보내기 때문입니다. --rate 10으로 보내면 10 근처로 바뀝니다.

1.000은 예로 든 값입니다. 실제로는 1에 아주 가까운 값이 나옵니다.

양 재기

bw는 1초에 얼마나 많은지 잽니다

bw(bandwidth, 대역폭)는 1초에 받은 데이터의 양입니다. 위치 메시지는 작아서 1초에 1.5KB 남짓입니다. 카메라 영상(4강 7편)처럼 큰 메시지를 자주 보내면 네트워크가 금방 찹니다.

공식 튜토리얼의 출력입니다. 긴 줄은 …로 줄였습니다.

주의

재는 곳은 받는 쪽입니다

hz와 bw는 명령이 만든 구독자가 실제로 받은 것을 잽니다. 그래서 컴퓨터가 바쁘거나 네트워크가 느리면 보낸 빠르기와 조금 다르게 나옵니다. 아무것도 안 나오면 그 토픽에 보내는 쪽이 있는지부터 봅니다(5편 info).

메시지 전달 규칙(QoS)도 결과에 영향을 줍니다(11강).

다음 편

한 토픽에 보내는 쪽이나 듣는 쪽이 여럿이면?

8편하나가 여럿에게, 여럿이 하나에게 3강 목록