ros service client cpp例程
时间: 2023-08-05 17:03:29 浏览: 195
以下是一个基本的 ROS Service Client 的 C++ 例程:
```cpp
#include "ros/ros.h"
#include "service_demo/demo_service.h" // 导入自定义服务消息类型
int main(int argc, char **argv)
{
// 初始化 ROS 节点
ros::init(argc, argv, "service_client");
// 创建节点句柄
ros::NodeHandle nh;
// 创建服务客户端,指定服务名称和消息类型
ros::ServiceClient client = nh.serviceClient<service_demo::demo_service>("demo_service");
// 创建请求消息对象,并设置请求参数
service_demo::demo_service srv;
srv.request.req = 1;
// 发送请求,并等待响应
if (client.call(srv))
{
ROS_INFO("Response: %d", srv.response.res);
}
else
{
ROS_ERROR("Failed to call service");
return 1;
}
return 0;
}
```
其中,`service_demo` 表示自定义服务消息类型的包名,`demo_service` 表示服务名,可以根据实际情况进行相应修改。在 `main` 函数中,首先初始化 ROS 节点,然后创建一个服务客户端,使用 `service_demo::demo_service` 指定服务消息类型。接着创建请求消息对象,设置请求参数,调用 `client.call(srv)` 发送请求并等待响应,最后根据响应结果进行相应处理。
需要注意的是,在编译时需要链接 `service_demo` 包,可以使用如下命令进行编译:
```
catkin_make --pkg service_demo
```
阅读全文