目录
Rosservice call service_name arg1 arg2……
Rosservice call --wait service_name arg1 arg2…
我们如何可以完整的将.srv文件中的std_msgs基本数据类型组合输出出来?
Rosservice arg service_name
打印名为service_name的服务通信所需的参数:
Rosservice call系列指令
Rosservice call service_name arg1 arg2……
我们如何可以实现像rostopic pub topic_name topic_type: “arg1_name:arg1……”那样在命令行发布消息,rosservice call可以帮我们做到:
输入完topic_type后,后面紧跟着arg1 arg2……就行,不用像话题通信那样繁琐。输入之后,客户端反应如下:
Rosservice call --wait service_name arg1 arg2…
等待直至service中server开启再进行参数传递:
我们输入参数时一般会使用Tab键自动补齐,使用Tab键自动补齐参数时一定不要添加任何像—wait这样的可选参数,按Tab键补齐完后,再进行可选参数的添加。
Rosservice find service_type
如果说“rostopic find topic_type”是在话题通信下用来根据指定的topic_type话题数据类型来准确查找对应的topic_name话题名称的话,那么rosservice find service_type就是专门为service服务通信定制的根据service_type准确的查找对应service_name的最适合工具:
Rosservice type service_name
既然我们可以通过service_type来查找service_name,那我们也可以根据service_name来查找service_type:
Rosservice list系列命令
Rosservice list
Rosservice list和rossrv list有何区别呢?rosservice list是列出当前正在进行通信的service服务通信的service_name,而rossrv list则是列出系统中所有自定义服务消息文件的service_name,前者是“列出正在运行的service_name”而后者是列出所有的service_name“这两者有本质的不同:
后面有一个rosservice list -n比前面的rosservice list多了一个”-n”,这个”-n”用于列出使用特定service_name进行服务通信的node节点的名称。
Rosservice list namespace
列出指定命名空间下的服务通信的话题信息:
Rosservice list -n
输出发起服务通信的节点,即查找指定服务话题的客户端:
Rosservice info service_name
用于列出指定的service_name的各种信息:
包括:客户端节点、服务通信话题的URI、名为service_name的服务通信话题的类型、参数。
Rosservice node service_name
这个命令用于查询使用service_name数据类型的进行服务通信的服务端节点的名称:
查找服务通信对应的客户端。
Rosservice uri service_name
显示名为service_name服务通信的URI:
我们如何可以完整的将.srv文件中的std_msgs基本数据类型组合输出出来?
我们使用“rosservice type Addint | rossrv show“命令行命令,该命令是rosservice和rossrv命令的组合,形式如下:
rosservice type service_name | rossrv show
输出如下所示:
---以下是service服务端的数据类型,---以上是client客户端的数据类型。