Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从ROS实时获取python中的数据?_Python_Qt_Ros - Fatal编程技术网

如何从ROS实时获取python中的数据?

如何从ROS实时获取python中的数据?,python,qt,ros,Python,Qt,Ros,我是ROS中的begginer,不知道如何用Python进行“发布”和“订阅”。我有一个file.bag,我用rosbag播放“file.bag”播放这个文件 我在xterm中使用rostopicecho/“topic”或rostopicecho-n1/“topic”获取topic的值 但是,我无法使用python实时查看这些值,以在QtGUI中显示。我读过教程,但不懂 我可以举一个例子来说明/odom[nav\u msgs/Odometry]或/back\u laser/filtered[se

我是ROS中的begginer,不知道如何用Python进行“发布”和“订阅”。我有一个file.bag,我用
rosbag播放“file.bag”
播放这个文件

我在xterm中使用
rostopicecho/“topic”
rostopicecho-n1/“topic”
获取topic的值

但是,我无法使用python实时查看这些值,以在QtGUI中显示。我读过教程,但不懂


我可以举一个例子来说明
/odom[nav\u msgs/Odometry]
/back\u laser/filtered[sensor\u msgs/LaserScan]

仔细看一下教程。特别是

将cd放入您的源文件夹中

并创建新包:

catkin_create_pkg playground
该目录中的cd

cd playground
创建文件listener.py并添加以下内容:

#!/usr/bin/env python
import rospy
from std_msgs.msg import String
from nav_msgs.msg import Odometry
def callback(data):
    rospy.loginfo(rospy.get_caller_id()+"I heard %s",data)

def listener():
    rospy.init_node('listener', anonymous=True)
    rospy.Subscriber("odom", Odometry, callback)
    rospy.spin()

if __name__ == '__main__':
    listener()
使可执行:

chmod +x listener.py
启动核心:

roscore
新建终端,运行侦听器节点:

rosrun playground listener.py
新的耻骨末端一些里程计数据:

rostopic pub -r1 /odom nav_msgs/Odometry {}

现在,您应该在启动侦听器的终端上看到一些输出!凯蒂

嗨!斯蒂芬,我试过这个密码。然而,尽管/odom显示为subscribe(rostopiclist-v),但在执行“listerner.py”时,我在xterm中看不到任何内容。我做了什么坏事?非常感谢,我期待着收到你的来信