ROS机器人程序设计(原书第2版)2.4.7 如何使用服务

    xiaoxiao2024-04-19  4

    2.4.7 如何使用服务

    服务是能够使节点之间相互通信的另一种方法。服务允许节点发送请求和接收响应。

    可以使用rosservice工具与服务进行交互。此命令接受的参数如下所示:

    rosservice args/service 输出服务参数。

    rosservice call/service 根据命令行参数调用服务。

    rosservice find msg-type 根据服务类型查询服务。

    rosservice info /service 输出服务信息。

    rosservice list 列出活动服务清单。

    rosservice type/service 输出服务类型。

    rosservice uri/service 输出ROSRPC URI服务。

    我们要使用以下命令列出在turtlesim节点运行时系统提供的服务。如果你运行了这个命令,却没有任何反应,那么请记住要先运行roscore并启动turtlesim节点:

     

    你会获得以下输出:

     

    如果你想查看某个服务的类型,例如/clear服务,请使用:

     

    你会获得类似下面的输出:

     

    若要调用服务,你需要使用rosservice call [service] [args]命令。所以如果想要调用/clear服务,请使用:

     

    在turtlesim的窗口中,你会看到由小海龟移动产生的线条消失了。

    现在我们尝试其他的服务,例如/spawn服务。这项服务将以不同的方向在另一个位置创建另一只小海龟。开始之前,我们要去查看以下类型的消息:

     

    我们会获得以下参数:

     

    前面的命令和下面的命令是相同的。如果你想知道为什么这些命令相同,可以在搜索引擎里搜索piping Linux:

     

    你会看到如下类似的结果:

     

    输入下面命令:

     

    你会看到如下类似的结果:

     

    通过这些字段,可以知道如何调用服务。我们需要新海龟位置的x和y、方向(theta)和新海龟的名称:

     

    我们会获得右侧的结果:

    相关资源:ros机器人程序设计
    最新回复(0)