一、配置文件
(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,配置环境,运行程序:
程序运行成功。