用ROS编写发布订阅实现,要求发布方以10HZ的频率发布文本消息,订阅方订阅消息并将消息内容打印输出
时间: 2024-03-24 10:40:00 浏览: 114
好的,你可以使用ROS中的rospy模块来实现发布订阅。下面是一个简单的Python代码示例:
```python
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chitchat', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
message = "Hello, let's chat!"
rospy.loginfo(message)
pub.publish(message)
rate.sleep()
def callback(data):
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
def listener():
rospy.init_node('listener', anonymous=True)
rospy.Subscriber('chitchat', String, callback)
rospy.spin()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
```
这个代码中,我们定义了一个发布者(talker)和一个订阅者(listener),发布者以10Hz的速率发布文本消息,订阅者订阅消息并将消息内容打印输出。
你可以将这个代码保存为一个Python脚本,如`chitchat.py`,并在终端中执行以下命令来运行它:
```bash
roscore # 启动ROS核心
rosrun your_package_name chitchat.py # 运行发布订阅节点
```
记得将`your_package_name`替换成你的ROS包的名称。
阅读全文