Publisher实现
Publisher创建流程¶
1. 设置环境和编码¶
Warning
在编程过程中,必须加上以上两行代码。
#!/usr/bin/env python
用来表示当前为python脚本,如果不加,系统会默认为bash脚本
#coding:utf-8
提供中文支持
2. 创建节点¶
rospy.init_node(nodeName)
3. 创建发布者¶
publisher = rospy.Publisher(topicName, String, queue_size=1000)
Tip
第一个参数为topic名称
第二个参数为发布的消息类型
第三个参数为tipic中消息队列最多的数量。
4. 定期发布消息¶
rate = rospy.Rate(10)
count = 0
while not rospy.is_shutdown():
# 发布消息
publisher.publish("hello %d" % count)
rate.sleep()
count += 1;
完整的示例代码¶
#!/usr/bin/env python
#coding:utf-8
import rospy
from std_msgs.msg import String
if __name__ == '__main__':
nodeName = "pypublisher"
topicName = "pytopic"
# 初始化节点
rospy.init_node(nodeName)
# 创建发布者
publisher = rospy.Publisher(topicName, String, queue_size=1000)
rate = rospy.Rate(10)
count = 0
while not rospy.is_shutdown():
# 发布消息
publisher.publish("hello %d" % count)
rate.sleep()
count += 1;
调试发布者¶
调试Publisher主要是查看是否有发送数据,也就是提供一个订阅的调试工具。ROS提供了命令行工具和图形化工具进行调试。
1. 通过rostopic工具进行调试¶
查看所有的主题
rostopic list
打印主题所发布的信息
rostopic echo pytopic
2. 通过rqt_topic工具进行调试¶
通过命令启动rqt_topic工具
rosrun rqt_topic rqt_topic
选中要调试的主题