【ROS 教学 part 5】Publisher, Subscriber

Publisher

roscd tutorial/          # 进入 tutorial packagecd src                   # 进入 srctouch hello_publisher.py # 创建 hello_publisher.py 档案

撰写

#! /usr/bin/env python# 指定直译器# 1. importimport rospyfrom std_msgs.msg import String# 2. 编写 mainif __name__ == "__main__":# 3. 建立 Publisher 前要先建立一个 Node## 初始化 ROS 节点rospy.init_node("publish", anonymous = True)  # 建立一个 Node 要先给名称# 4. 建立一个 Publisherpub = rospy.Publisher("chat", String, queue_size = 10)  # 必须写出 Topic 的名称叫什么# 5. 连续发送讯息rate = rospy.Rate(10)  # 以 10Hz 的频率发送讯息# 6. 进入迴圈,如果没有按下 ctrl+c 就一直执行while not rospy.is_shutdown():hello = 'hello world ! %s' % rospy.get_time()  # 一直传送的讯息pub.publish(hello)  # 发送讯息,目前萤幕上还看不到# 7. 输出rospy.loginfo(hello)rate.sleep()

更改权限并执行

roscd tutorial/                    # 进入 tutorial packagecd src                             # 进入 srcchmod +x hello_publisher.py        # 更改 hello_publisher.py 的权限变成可执行档rosrun tutorial hello_publisher.py # 执行 hello_publisher.py 档案

Subscriber

roscd tutorial/           # 进入 tutorial packagecd src                    # 进入 srctouch hello_subscriber.py # 创建 hello_subscriber.py 档案

撰写

#! /usr/bin/env python# 指定直译器# 1. importimport rospyfrom std_msgs.msg import String# 6. callback 函数def callback(data):# 把接收到的讯息显示在萤幕上rospt.loginfo(rospy.get_caler_id() + 'I heard %s' % data.data)# 2. 编写 mainif __name__ == "__main__":# 3. 建立 Subsciber 前要先建立一个 Node# 初始化 ROS 节点rospy.init_node("Subsciber", anonymous = True)  # 建立一个 Node 要先给名称# 4. 建立一个 Subscriberrospy.Subscriber("chat", String, callback)  # 必须写出订阅了什么 Topic# 我们必须写出 Subscriber 如果接收到讯息要做出什么样的反应(callback 函数)# 5. 防止程式结束rospy.spin()

更改权限并执行

roscd tutorial/                    # 进入 tutorial packagecd src                             # 进入 srcchmod +x hello_publisher.py        # 更改 hello_publisher.py 的权限变成可执行档rosrun tutorial hello_publisher.py # 执行 hello_publisher.py 档案

Reference

AI葵 ROS教学


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章