《动手学ROS2》rclcpp客户端,wait_for_service()函数用法(公众号:鱼香ROS)

大家好我是《动手学ROS2》教程作者小鱼。

如果你想和小鱼一起学习ROS2,可以关注小鱼的微信公众号《鱼香ROS》,加入鱼群和小鱼一起学习。

今天小鱼来说说ROS2的客户端中wait_for_service()函数函数使用方法,帮助大家理解。

一、函数介绍

1.1 函数功能:

等待服务端准备完成。

1.2 函数输入输出:

参数
返回值
最大超时时间,有默认值-1
wait_for_serveice
bool是否在线

输入参数:std::chorm

输出参数:bool类型

  • 如果在没有超时的情况下,服务端准备完毕,返回true
  • 否则一律返回false

1.3函数原型

template<typename RepT = int64_t, typename RatioT = std::milli>
bool rclcpp::ClientBase::wait_for_service	(	std::chrono::duration< RepT, RatioT > 	timeout = std::chrono::duration<RepT, RatioT>(-1)	)	

参数只有一个,而且有默认值,这个参数表示等待的超时时间。

二、使用方法

2.1 等待服务上线,不上线每一秒钟打印一个日志信息

client_->wait_for_service(std::chrono::seconds(1))
    void buy_novel(){
        RCLCPP_INFO(this->get_logger(), "买小说去喽");
        village_interfaces::srv::SellNovel_Request request;
        request.money = 10;
        while(!client_->wait_for_service(std::chrono::seconds(1))){
            RCLCPP_INFO(this->get_logger(), "等待服务端上线中");
        }
    };

在这里插入图片描述

参考链接:API文档

写在最后

我是小鱼,机器人领域资深玩家,现深圳某独脚兽机器人算法工程师一枚

初中学习编程,高中开始学习机器人,大学期间打机器人相关比赛实现月入2W+(比赛奖金)

目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小鱼,一起交流技术,学习机器人
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值