ROS学习笔记(10)——话题通信自定义msg(Python篇)

一、配置文件

(1)在工作空间的devel/lib文件下,找到python3文件夹,右击打开终端:

(2)在终端输入指令,获取文件路径:

pwd

(3)将获取到的路径添加到.vscode文件夹下的settings.json文件内:

二、编写发布程序

(1)在scripts文件夹下新建一个.py文件,命名为demo03_pub_person_p.py,编写发布文件代码:

#! /sur/bin/env python

import rospy
from plumbing_pub_sub.msg import person
"""
    使用python实现消息发布:
    1.导包
    2.初始化ROS节点
    3.创建发布者对象
    4.编写发布逻辑并发布数据

"""

if __name__=="__main__":
    # 2.初始化ROS节点
    rospy.init_node("laoshi02")
    # 3.创建发布者对象
    pub = rospy.Publisher("tanhua",person,queue_size=10)
    # 4.编写发布逻辑并发布数据
    #(1)创建person数据
    p = person()
    p.name = "李四"
    p.age = 8
    p.height = 1.85
    #(2)创建Rate对象
    rate = rospy.Rate(1)
    #(3)循环发布数据
    while not rospy.is_shutdown():
        pub.publish(p)
        rospy.loginfo("发布的信息:%s,%d,%.2f",p.name,p.age,p.height)
        rate.sleep()

(2)在终端输入指令添加可执行权限:

chmod +x *.py

(3)打开与功能包同级的CMakeLists.text文件,修改文件名,保存并编译。

(4)打开终端,运行roscore,回到工作空间目录下,配置环境,运行程序:

程序正常运行。

三、编写订阅程序

(1)在scripts文件夹下新建一个.py文件命名为demo04_sub_persom_p.py,编写程序:

#! /sur/bin/env python

import rospy
from plumbing_pub_sub.msg import person
"""
    使用python实现消息订阅:
    1.导包
    2.初始化ROS节点
    3.创建订阅者对象
    4.处理订阅到的数据
    5.spin()

"""

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

if __name__=="__main__":
    # 2.初始化ROS节点
    rospy.init_node("jiazhang02")
    # 3.创建订阅者对象
    sub = rospy.Subscriber("tanhua",person,doPerson)
    # 4.处理订阅到的数据
    # 5.spin()
    rospy.spin()

(2)打开终端,添加可执行权限:

(3)打开与功能包同级的CMakeLists.text文件,修改文件名,保存并编译。

(4)打开终端,运行roscore,配置环境,运行程序:

程序运行成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值