ROS Topic 简易使用模板 [Python Ver.]


注:ROS可实现自定义消息类型,本文以geometry_msgs.msg为例

1. 创建功能包

catkin_create_pkg topic std_msgs rospy roscpp

2. 创建代码文件夹

mkdir scripts
cd scripts

输入以下代码,以保证Python代码的执行权限

sudo chmod +x *.py

3. 编写Publisher.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File:py_pub.py

import rospy
from geometry_msgs.msg import Point, Quaternion, Pose

def publisher():
    pub = rospy.Publisher('pose_topic',Pose,queue_size=10)
    rospy.init_node('publisher',anonymous=True)
    pose_data = Pose()
    rate = rospy.Rate(1)
    
    while not rospy.is_shutdown():
        pose_data.position=Point(0.1,0.2,0.3)
        pose_data.orientation=Quaternion(0.01,0.02,0.03,0.04)
        pub.publish(pose_data)
        rospy.loginfo('Publishing~')
        rate.sleep()


if __name__ == '__main__':
    publisher()

4. 编写Subscriber.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# File:py_sub.py

import rospy
from geometry_msgs.msg import Point, Quaternion, Pose

def callback(pose_data):
    rospy.loginfo('Subscriber:\n%s',pose_data)

def subscriber():
    rospy.init_node('Subscriber',anonymous=True)
    rospy.Subscriber('pose_topic',Pose,callback)
    rospy.spin()


if __name__ == '__main__':
    subscriber()

5. 编译运行

cd topic
catkin_make
source devel/setup.sh
roscore
python scripts/py_pub.py 
python scripts/py_sub.py 

6. Other tips

  1. 查看节点连接图
rosrun rqt_graph rqt_graph
  1. 查看topic发布的内容
rostopic echo /pose_topic

参考链接: ROS通讯之话题(topic)通讯

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值