Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
小
@Jason_Duan 在 python服务,call服务时提示:waiting for service to become available... 中说:
ros2 service call /face_detect chapt4_interfaces/srv/FaceDetector
ros2 service call /face_detector chapt4_interfaces/srv/FaceDetector
服务名字搞错了
A
@395934383 请问一下是怎么解决的,我也遇到了这个问题,望解惑,感谢!
尚无回复
@siceanfly 没有比较好的办法,不堵塞到是有,使用多线程回调组就可以了,除此之外使用timer其时也挺好的,定时一次就取消就行,检测完就停下来。 一次性发送多个服务可以全部发送异步的 auto future = client->async_send_request(my_request); ,然后将future存下,10s后检测future状态就可以进行处理了。
Z
@Lorry 好的谢谢老哥
1
@846863428 可以ros2 service list -t 查看参数接口是否正确,如果是empty的话,不用加传参,有参数就必须要传参的,如果是多个node同时调用同意给service,可以加callback_group来排队处理
@Lorry 在 ros2自定义客户端中spin_until_future_complete的问题 中说:
@小鱼 贴一下timer部分的代码,有同样问题的可以看一下 callback_group_timer=this->create_callback_group(rclcpp::CallbackGroupType::MutuallyExclusive); Timer_ = this->create_wall_timer( 5000ms, std::bind(&S7ClinetNode::time_callback, this),callback_group_timer);
@小鱼 贴一下timer部分的代码,有同样问题的可以看一下
现在遇到了同样的问题,也是result.wait_for一定会等待100ms,并且状态一定是timeout,区别是我是在订阅话题的回调函数中发起的客户端请求,请问有有办法可以解决吗?