调用服务的几种方式

来源:互联网 发布:双色球选号过滤软件 编辑:程序博客网 时间:2024/06/08 14:17

我目前发现的有两种方式可以调用服务

1、rosservice call + 服务名 + 参数

这个服务名是

你写的服务器程序里面(详见ROS教程第14讲编写简单的服务器和客户端 (C++))18行

ros::ServiceServer service = n.advertiseService("add_two_ints", add);
advertiseService函数的第一个参数就是你的服务名称

advertiseService函数的第二个参数决定了你的服务类型(经二决定了你的服务需要传入什么参数(request),传出什么参数(response)),这是由第二个参数(一个函数)操作的结构体的类型(具体的结构体详情在头文件中查看)决定的。


可以看到,用这种方式调用服务,返回的东西也非常简介,不会有[INFO]一类的东西,只会返回一个xx:xxx一类的东西(以例程为例:xx是结构体AddTwoInit中的AddTwoIntsResponse_结构体中的成员sum)

详见:

http://blog.csdn.net/lielieyu/article/details/78510382



2、直接rosrun+包含这个服务的节点

因为创建一个服务之前必须创建一个节点,所以想运行这个服务只需要先运行这个节点就可以。

详见

ros教程










在写这篇之前查了一些资料,不知道有用没有,先放在这吧

资料:

rosrun和rosservice call

http://blog.csdn.net/hookie1990/article/details/52235245


原创粉丝点击