《动手学ROS2》rclcpp客户端,wait_for_service()函数用法(公众号:鱼香ROS)
大家好我是《动手学ROS2》教程作者小鱼。如果你想和小鱼一起学习ROS2,可以关注小鱼的微信公众号《鱼香ROS》,加入鱼群和小鱼一起学习。今天小鱼来说说ROS2的客户端中wait_for_service()函数函数使用方法,帮助大家理解。一、函数介绍1.1 函数功能:等待服务端准备完成。1.2 函数输入输出:#mermaid-svg-TjMNRK8ScjaeV0mQ .label{font-fam
·
大家好我是《动手学ROS2》教程作者小鱼。
如果你想和小鱼一起学习ROS2,可以关注小鱼的微信公众号《鱼香ROS》,加入鱼群和小鱼一起学习。
今天小鱼来说说ROS2的客户端中wait_for_service()函数函数使用方法,帮助大家理解。
一、函数介绍
1.1 函数功能:
等待服务端准备完成。
1.2 函数输入输出:
输入参数: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+(比赛奖金)
目前在输出机器人学习指南、论文注解、工作经验,欢迎大家关注小鱼,一起交流技术,学习机器人
更多推荐
已为社区贡献2条内容
所有评论(0)