C++版本
ros::ServiceServer server = nh.advertiseService("sum", doRequest);
服务端注册函数,使用NodeHandle句柄创建,两个参数分别是:服务名称、回调函数句柄
ros::ServiceClient client = nh.serviceClient<hello_service_std::sum>("sum");
客户端注册函数,参数为:服务名称
客户端与服务端是通过注册在ROS Master的服务名称匹配的
-
ros::service::waitForService("sum");
-
client.waitForExistence();
上面两个函数都是用于客户端等待服务端响应,用法不一样,若服务端无响应,则客户端挂起
num.request.num1 = atoi(argv[1]);
这是一个C标准函数,功能是把字符串转换成整型数。原型在<stdlib.h>
atoi("123");
结果是123
,是一个整型值
bool flag = client.call(num);
对一个远程服务器请求调用RPC服务,成功返回True,失败False
最常用
- Setup:
- Publish / subscribe messaging:
- RPC services:
- Parameters: