py判断是否接受到ros话题,若接受打印“已接受”
时间: 2023-08-19 10:04:07 浏览: 81
在 ROS 中,可以使用 rospy 模块提供的 Subscriber 类来订阅话题,接收消息。下面是一个订阅 /chatter 话题的示例代码:
```python
import rospy
from std_msgs.msg import String
def callback(data):
# 打印接收到的消息内容
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
# 初始化 ROS 节点
rospy.init_node('listener', anonymous=True)
# 订阅 /chatter 话题,消息类型为 std_msgs/String
rospy.Subscriber("/chatter", String, callback)
# 进入循环,等待消息
rospy.spin()
```
在上述代码中,使用 Subscriber 类订阅了 /chatter 话题,消息类型为 std_msgs/String。当接收到消息时,会调用 callback 回调函数,并将消息内容传递给该函数。在 callback 函数中,可以对接收到的消息进行处理,这里只是简单地打印了消息内容。
如果想要在接收到消息时打印“已接受”,只需要在 callback 函数中添加打印语句即可:
```python
def callback(data):
# 打印接收到的消息内容
rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)
# 打印“已接受”
print("已接受")
```
这样,在接收到消息时就会打印“已接受”。
阅读全文