日志文章

2020-7-11 aflfte2011

使用python在ros中发布主题消息

talker.py文件代码

#!/usr/bin/env python
#指定使用python解释代码

import rospy #导入rospy包,rospy是ROS的python客户端
from std_msgs.msg import String #导入python的标准字符处理库;String是一个函数可以另外赋值。

def talker(): #定义talker发布函数
    pub = rospy.Publisher('chatter',String,queue_size=10) #定义发布主题名称为chatter,消息类型为String,实质std_msgs.msg.String,设置队列条目个数
    rospy.init_node('talker',anonymous=True)#初始化节点,节点名称为talker;anonymous=True,要求每个节点都有唯一的名称,避免冲突。这样可以运行多个talker.py
    rate = rospy.Rate(10)#10hz 设置发布频率,单位是每秒次数,这是每秒10次的频率发布主题
    while not rospy.is_shutdown():#用于检测程序是否退出,是否按Ctrl+C或其它
        hello_str = "Hello World %s" %  rospy.get_time()
        rospy.loginfo(hello_str)#在屏幕上输出日志信息;写入rosout节点,可以通过rqt_console查看。
        pub.publish(hello_str)#发布信息到主题
        rate.sleep()#睡眠一定持续时间如果为负数睡眠会立即返回
if __name__=='__main__':
    try:
        talker()
    except rospy.ROSInterruptException:
        pass
#测试代码运行roscore启动rosmaster
#使用rosrun 包名 talker.py启动发布主题信息
#可使用rostopic echo /chatter查看chatter主题信息

« 使用python订阅ros主题并接收消息 | ros构建功能包方法»