日志文章

2020-7-11 aflfte2011

使用python订阅ros主题并接收消息

listener.py文件代码

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

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

def callback(data):#定义callback返回函数
    rospy.loginfo(rospy.get_caller_id()+'I heard%s',data.data)#日志信息输出接收到的主题信息
def listener():#定义接收者函数
    rospy.init_node('lisener',anonymous=True)#初始化节点lisener节点,要求每个节点名称唯一避免冲突
    rospy.Subscriber('chatter',String,callback)#使用订阅函数订阅chatter主题当有新内容时使用callback函数处理
    rospy.spin()#保持节点运行,直到节点关闭,不像roscpp rospy.spin不影响订阅的回调函数,因为回调函数有自己的线程
if __name__ == '__main__':
    listener()
    
#代码测试使用roscore启动rosmaster,
#使用rosrun 包名 listener.py启动接收订阅

« ubuntu修改USB权限 | 使用python在ros中发布主题消息»