小海龟turtle 客户端 C++实现
/spawn [turtlesim/Spawn]
/*
* 本代码请求/spawn连接,服务数据类型turtlesim::Spawn
*/
#include "ros/ros.h"
#include "turtlesim/Spawn.h"
using namespace ros;
int main(int argc, char **argv){
//初始化ros节点
init(argc, argv, "turtle_client");
//创建节点句柄
NodeHandle node;
//发现/spawn服务后,创建一个服务客户端,连接名为/spawn的service
service::waitForService("/spawn");
ServiceClient ser = node.serviceClient<turtlesim::Spawn>("/spawn");
Rate rate(1);
int count = 0;
//初始化turtlesim::Spawn的请求数据
while (ok()){
turtlesim::Spawn srv;
srv.request.x = 1 + count;
srv.request.y = 1 + count;
srv.request.name = "turtle"+count;
//服务请求调用
ROS_INFO("send message service to spwan turtle:[x:%06f, y:%0.6f, name:%s]"
,srv.request.x, srv.request.y, srv.request.name.c_str());
//等待服务端的应答
ser.call(srv);
//显示服务调用结果
ROS_INFO("spwan turtle successfully [name:%s]",srv.response.name.c_str());
count++;
if(count>9){
return 0;
}
rate.sleep();
}
return 0;
}
运行结果: