ROS 发布话题和订阅话题示例
时间: 2023-10-29 09:05:47 浏览: 132
好的,下面是一个简单的ROS发布话题和订阅话题的示例代码:
发布话题:
```python
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
```
订阅话题:
```python
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def callback(data):
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
def listener():
rospy.init_node('listener', anonymous=True)
rospy.Subscriber("chatter", String, callback)
rospy.spin()
if __name__ == '__main__':
listener()
```
在发布话题的示例中,我们创建了一个名为“chatter”的话题,并将字符串类型的消息发布到该话题上。在订阅话题的示例中,我们订阅了名为“chatter”的话题,并定义了一个回调函数来处理接收到的消息。
这只是一个简单的示例,实际使用ROS时可能需要更复杂的代码来处理不同类型的消息和实现更复杂的功能。
阅读全文