create_subscriber方法
- Node.create_subscriber(self, msg_type, topic: str, callback, qos_depth: int = 10)
在当前节点上创建一个话题订阅者,用于接收指定话题的消息并触发回调处理。
- Parameters:
msg_type (Type[Message]) – 消息类型类,需与发布该话题的发布者使用相同的消息类型, 用于解析接收到的消息数据。
topic (str) – 要订阅的话题名称(字符串),需与发布者使用的话题名称完全一致 ,符合ROS话题命名规范。
callback (Callable[[Message], None]) – 消息处理回调函数,当接收到新消息时自动调用; 函数需接收一个参数(即接收到的消息对象)。
qos_depth (int, optional) – QoS(服务质量)队列深度,默认值为10; 表示订阅者的消息缓存队列长度,超出后旧消息将被丢弃。
- Returns:
新创建的订阅者对象,可用于管理订阅关系。
- Return type:
ezros.Subscriber
示例代码
import ezros
from std_msgs.msg import String # 假设使用标准字符串消息类型
# 定义消息处理回调函数
def callback(msg):
print(f"收到消息: {msg.data}")
# 创建节点
node = ezros.Node("listener_node")
# 创建订阅者,订阅"chatter"话题的String类型消息
subscriber = node.create_subscriber(String, "chatter", callback, qos_depth=5)
ezros.spin(node) # 启动节点事件循环,持续接收消息
node.shutdown()