처리지연 Subscriber
1_2_처리지연_receiver.ipynb
- 셀 실행시키기Ctrl + Enter
import rospy
from std_msgs.msg import Int32
rospy 모듈 가져오기
std_msgs.msg 모듈의 Int32 가져오기
rospy.init_node('Receiver')
Receiver Node 생성
pre_num = 0
cur_num = 0
변수 pre_num을 0으로 지정
변수 cur_num을 0으로 지정
def callback(msg):
global pre_num
global cur_num
print("Callback is being processed")
cur_num = msg.data
rospy.sleep(3)
if (cur_num - pre_num) != 1:
print_str = "Data: {0:>6} Missing: {1:6} ~ {2:>6} ( cnt: {3} )\n"\
.format(msg.data,pre_num +1, cur_num -1, cur_num - pre_num -1)
else:
print_str = "Data: " + str(msgs.data) + "\n"
print(print_str)
pre_num = cur_num
callback(msg) 함수 생성
pre_num, cur_num을 전역변수로 선언
cur_num을 Message의 data로 지정
3초간 시간 지연
cur_num - pre_num 이 1이 아닐 경우,
Message data, pre_num + 1, cur_num -1, cur_num - pre_num -1 순서대로 출력
Data : (현재 data) Missing: (누락된 data 최솟값 ~ 누락된 data 최댓값) (cnt: (누락된 data 개수))
이외의 경우
Message data 출력
pre_num을 cur_num으로 지정
sub = rospy.Subscriber('increase_num', Int32, callback, queue_size=1)
rospy.spin()
increase_num Topic Subscriber 생성