2014-10-30 21 views
1

我在ROS中是begginer,我不懂如何在Python中做「發佈」和「訂閱者」。我有一個文件袋,我用rosbag play "file.bag"播放這個文件。如何從ROS中實時獲取python中的數據?

我在xterm中獲得rostopic echo /"topic"rostopic echo -n 1 /"topic"的主題值。

但是,我不能實時看到這個值與python顯示在一個QT GUI。我已閱讀教程http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers,但我不明白。

我能有/odom [nav_msgs/Odometry]/back_laser/filtered [sensor_msgs/LaserScan]

回答

0

一個例子採取在教程仔細看看。特別是http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29

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 {} 

現在你應該在你的終端上看到你的聽衆開始的輸出!catki

+0

嗨!斯蒂芬, 我試過這段代碼。然而,儘管/ odom出現訂閱(rostopic list -v),但是當我執行「listerner.py」時,我在xterm中看不到任何東西。我做什麼壞事? 非常感謝,我期待着您的迴音 – user2492523 2014-10-31 14:13:16

+0

查看修改...... – Steffen 2014-10-31 14:41:30

+0

它正在工作!非常感謝! – user2492523 2014-10-31 15:16:38

相關問題