我试图创建一个订阅服务器,它接受一个单词(意味着一个字符串),然后将这些单词收集到一个数组中,然后发布这些单词的数组。在
我想用numpy来做这个。数组的长度总是必须是3,最后一个单词在后面。这样,我将有两个前一个单词,最后一个单词在数组的末尾。在
代码如下:#!/usr/bin/env python
import rospy
from std_msgs.msg import String
from rospy.numpy_msg import numpy_msg
import numpy
#added
def callback(data):
global c
pub = rospy.Publisher('tag_history',numpy_msg(String))
c.append(str(data.data))
if len(c)>3:
c=c[1:4]
d=numpy.array(c,dtype=numpy.str)
print c
pub.publish(d)
rospy.sleep(0.5)
def listener():
rospy.init_node('tag_history', anonymous=True)
rospy.Subscriber("DA_tags", String, callback)
rospy.spin()
if __name__ == '__main__':
global c
c=[]
listener()
运行此代码时,会出现以下错误:
^{pr2}$
这个错误“字段数据必须是str类型”是什么意思?如何删除它?在