ROS topic接收与发布
ROS中的一种消息发布的方式是使用话题topic,分别采用Publisher和Subscriber。
由于程序随时在通过Publisher和Subscriber收发消息,回调函数处理需要时间,就可能出现收发速度不一致的现象。ROS可以通过消息队列的方式来解决这个问题。
queue_size队列大小Publisher设置queue_size:缓存即将发送的消息到队列中,如果待发布队列的消息数超过queue_size,则将队列中最老的消息丢弃(有点先进先出的意思)。
Subscriber设置queue_size:缓存接收到的消息,如果接收到的消息超过queue_size,则将接收到最早的消息丢弃。
一个实时发布和接收消息的例子将publisher和subsriber的queue_size都设为1,就可以实现实时收发
# publisher
pub = rospy.Publisher('topic_name', String, queue_size=1)
# subscriber
sub = rospy.Subcriber('topic_name',String , callback, quesize=1)