13th 自定义msg的使用(Python实现)

一、功能要求

和前面的C++一样:

编写发布订阅实现,要求发布方以1HZ(每秒1次)的频率发布自定义消息,订阅方订阅自定义消息并将消息内容打印输出。

流程:

  1. 编写发布方实现;
  2. 编写订阅方实现;
  3. 为python文件添加可执行权限;
  4. 编辑配置文件;
  5. 编译并执行。

二、实现

2.0 VSCode配置

2.1 发布方实现

在scripts目录下新建一个.py文件:

 内容:

#!/usr/bin/env python
# -*- coding:UTF-8 -*-           

import rospy
from plumbing_pub_sub.msg import Person
from rospy.timer import Rate
"""
        发布方:发布人的消息
                1.导包
                2.初始化ros节点
                3.创建发布者对象
                4.组织发布逻辑,并发布数据
"""

if  __name__ == "__main__":
                # 2.初始化ros节点
                rospy.init_node("daMa")
                # 3.创建发布者对象
                pub=rospy.Publisher("LiaoTian",Person,queue_size=10)
                # 4.组织发布逻辑,并发布数据
                #4.1创建Person数据
                p = Person()
                p.name ="奥特曼"
                p.age =  8
                p.height = 1.85
                #4.2创建Rate对象
                rate = rospy.Rate(1)
                while not rospy.is_shutdown():
                    pub.publish(p)
                    rospy.loginfo("发布的消息:%s,%d,%.2f",p.name,p.age,p.height)
                    rate.sleep()

                #4.3循环发布

添加权限:

chmod +x *.py

配置CMakeList.txt文件:

2.2 订阅方的实现

新建文件:

文件内容:

#!/usr/bin/env python
# -*- coding:UTF-8 -*-     
import rospy

from plumbing_pub_sub.msg import Person

def doPerson(p):
    rospy.loginfo("订阅到的数据:%s,%d,%.2f",p.name,p.age,p.height)


"""
        订阅方:订阅人的消息
                1.导包
                2.初始化ros节点
                3.创建订阅者对象
                4.处理订阅数据
                5.spin()
"""
if __name__ == "__main__":
    rospy.init_node("daYe")
    sub = rospy.Subscriber("LiaoTian",Person,doPerson)
    rospy.spin()

 添加权限:

 配置Cmakelist.txt文件:

测试:

先启动订阅方:

再启动发布方:

 查看订阅方:

3.计算图查看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是刃小木啦~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值