ros publish node by python/用Python编写一个简单的ROS消息发布节点

以下是talker.py脚本内容,功能是发布一个名为talker的节点(node)到名为chatter话题(topic)上:
   1 #!/usr/bin/env python
   2 # license removed for brevity
   3 import rospy 
   4 from std_msgs.msg import String
   5 
   6 def talker():
   7     pub = rospy.Publisher('chatter', String, queue_size=10) # chatter是topic的名称,string是消息类型,queue_size是为了防止subscriber的接受速度跟不上publisher的发布速度而限制消息排队数量
   8     rospy.init_node('talker', anonymous=True)#初始化节点,名为talker,anonymous=True确保在节点talker后面加上一个数字,其名称是唯一的
   9     rate = rospy.Rate(10) # 发布消息的频率为10hz
  10     while not rospy.is_shutdown():#发布节点的模板代码,在ros窗口没有被controlC或关闭掉时,执行以下:
  11         hello_str = "hello world %s" % rospy.get_time()#消息名和消息内容
  12         rospy.loginfo(hello_str)#将消息写入log并调用rosout函数输出
  13         pub.publish(hello_str)#发布消息
  14         rate.sleep()#在不需要发布的时候休眠,从而满足所需要的发布频率
  15 
  16 if __name__ == '__main__':#执行talker函数,除非ros中断
  17     try:
  18         talker()
  19     except rospy.ROSInterruptException:
  20         pass

你可能感兴趣的:(日记)