문제상황
코드구현
#!/usr/bin/env python
import rospy
from std_msgs.msg import Int32
name = "sender"
pub_topic = "my_topic"
rospy.init_node(name)
pub = rospy.Publisher(pub_topic, Int32, queue_size = 1)
rate = rospy.Rate(1000)
count = 1
while( pub.get_num_connections() == 0) :
count = 1
while not rospy.is_shutdown() :
pub.publish(count)
count = count + 1
rate.sleep()
#!/usr/bin/env python
import rospy
from std_msgs.msg import Int32
name = "receiver"
sub_topic = "my_topic"
def callback(msg):
print msg.data
rospy.loginfo("callback is being processed")
rospy.sleep(5)
rospy.init_node(name)
rospy.Subscriber(sub_topic, Int32, callback, queue_size = 100000)
rospy.spin()
결과

5000개씩 그냥 잃어버림. 이유 = queue의 버퍼 사이즈가 1이기 때문 —> 버퍼 사이즈조금씩 늘려보자.
10개로 늘렸더니 10개는 규칙적으로 받다가 그 이후에 갑자기뛰어넘음.
—>버퍼 사이즈르 100000으로 늘리면 잘 받는다!!

Q. 보내는 속도인 rate와 buffer size간의 어느정도의 크기가 가장 적절한가?
왜 2부터 뜨지..?!….

분명 getconnection되코드 잘 되어있는데..