营销网站 建设 高端,电脑在哪网站接做扇子单,阿里巴巴网站建设缺点,买域名做网站表白Client#xff08;客户端#xff09;#xff1a;发布海龟生成请求 [类似Publisher] Serve#xff08;服务端#xff09;#xff1a;海龟仿真器,接收请求 [类似于Subscriber] Service#xff08;服务#xff09;#xff1a;生成海龟的具体内容#xff0c;其中服务类型…Client客户端发布海龟生成请求 [类似Publisher] Serve服务端海龟仿真器,接收请求 [类似于Subscriber] Service服务生成海龟的具体内容其中服务类型是turtlesim::Spawn[类似于Topic]
创建功能包
cd catkin_ws/src
catkin_create_pkg learning_service roscpp rospy std_msgs geometry_msgs turtlesim功能包名:learning_service 依赖
/*** 该例程将请求/spawn服务服务数据类型turtlesim::Spawn*/#include ros/ros.h
#include turtlesim/Spawn.h //包含头文件int main(int argc, char** argv)
{// 初始化ROS节点ros::init(argc, argv, turtle_spawn);// 创建节点句柄ros::NodeHandle node;// 发现/spawn服务后创建一个服务客户端连接名为/spawn的service// 查询是否有名为spawn的服务有则请求该服务否则一直等待下去阻塞型函数ros::service::waitForService(/spawn);// 创建ServiceClient客户端给spawn服务发送请求中为请求的数据类型()中为服务名ros::ServiceClient add_turtle node.serviceClientturtlesim::Spawn(/spawn);// 初始化turtlesim::Spawn的请求数据产生一只新的海龟turtlesim::Spawn srv; //srvsrv.request.x 2.0; //x坐标srv.request.y 2.0; //y坐标srv.request.name turtle2;// 请求服务调用ROS_INFO(Call service to spwan turtle[x:%0.6f, y:%0.6f, name:%s],srv.request.x, srv.request.y, srv.request.name.c_str());add_turtle.call(srv); //阻塞型函数// 显示服务调用结果ROS_INFO(Spwan turtle successfully [name:%s], srv.response.name.c_strreturn 0;}