本课程结束时,您将能够:
认识到ROS服务与标准的基于主题的发布者-订阅者方法有何不同,并确定此类消息传递系统的适当用例。
实现Python节点对以执行服务并观察它们的工作方式。
将相同的原则应用于许多不同的服务消息类型。
开发自己的Python服务节点来执行特定的机器人任务。
利用服务,结合激光雷达数据,实现一些基本的避障。
通过开发一个包含本课程和本课程前几部分内容的Python节点,展示您对ROS的理解。
在summary1和summary2,我们了解了ROS主题和消息,以及单个节点如何通过订阅系统上任何其他节点发布的主题来访问机器人上的数据。除此之外,我们还了解了任何节点如何将消息发布到任何主题,这实际上是将消息中包含的数据广播到系统上希望访问它的任何其他节点。
在ROS节点之间传递数据的另一种方法是使用服务。这些消息不同于消息,因为“服务调用”(即请求服务的过程)只在一个节点和另一个节点之间发生:
一个节点(服务客户端)向另一个节点发送请求。
另一个节点(服务服务器)处理该请求,执行操作,然后返回响应。
因此,服务是同步的:当ROS节点向服务(作为服务客户端)发送请求时,在服务完成且服务服务器返回响应之前ÿ