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강).
다음 편