我在ROS中很开心,我不明白如何在Python中“发布”和“订阅者”。我有一个文件.bag,我用rosbag play "file.bag"
播放这个文件。
我在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 :(得分:1)
仔细看看这些教程。特别是http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29
进入你的源文件夹
并创建新包:
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