欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

古月居 ROS 21 讲6

程序员文章站 2022-06-04 18:10:19
...

古月居 ROS 21 讲

6、客户端Client的编程实现

古月居 ROS 21 讲6
创建learning service 在是src里写代码
古月居 ROS 21 讲6
程序流程
古月居 ROS 21 讲6

/**
 * 该例程将请求/spawn服务,服务数据类型turtlesim::Spawn
 */
//包含ros头文件以及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
        ros::service::waitForService("/spawn");
        //循环等待spawn服务
        ros::ServiceClient add_turtle = node.serviceClient<turtlesim::Spawn>("/spawn");
		//给spawn服务发送请求
		
    // 初始化turtlesim::Spawn的请求数据(requst)
        turtlesim::Spawn srv;
        srv.request.x = 2.0;
        srv.request.y = 2.0;
        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);
    //请求客户端发送的方法是call,将requst发出去
        // 显示服务调用结果
        ROS_INFO("Spwan turtle successfully [name:%s]", srv.response.name.c_str());

        return 0;
};

古月居 ROS 21 讲6
古月居 ROS 21 讲6
古月居 ROS 21 讲6

上一篇: 古月居 ROS 21 讲

下一篇: 插入排序