在订户回调中实现异步服务调用时遇到问题。我在ROS Answers上找到了一篇关于这样做的帖子:
然而,这里答案中的示例只打印用户接收的数据,而不打印其他内容,然后在执行服务调用之前,在别处查找响应。简而言之,我试图在回调中实现以下目标:
def subscriber_callback(self):
for element in msg.list_of_vals:
self.publish(element)
while True:
self.async_service_call()
while True:
rclpy.spin_once(node)
self.read_response()
# break on response
# break when response is desired value
我仍然在我的main()
函数中调用rclpy.spin(node)
,当我运行这个函数时,它挂起rclpy.spin_once
。我意识到这可能是因为rclpy已经从main()
函数开始旋转,但是我如何启动节点呢?我尝试创建一个内部spin()函数,就像在发布的链接中一样,但它再次挂起rclpy.spin_once
如有任何想法或帮助,将不胜感激。我可能会朝着完全错误的方向走,所以我愿意接受所有的建议
我将ROS2 Dash与Python一起使用
目前没有回答
相关问题 更多 >
编程相关推荐