zoukankan      html  css  js  c++  java
  • ros(6)service client实现

    1.创建功能包

    cd ~/catkin_workspace/src

    catkin_create_pkg service_example roscpp rospy std_msgs geometry_msgs turtlesim

    创建cpp文件

    /**
     * 该例程将请求/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
        ros::service::waitForService("/spawn");
        ros::ServiceClient add_turtle = node.serviceClient<turtlesim::Spawn>("/spawn");
     
        // 初始化turtlesim::Spawn的请求数据
        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);
     
        // 显示服务调用结果
        ROS_INFO("Spwan turtle successfully [name:%s]", srv.response.name.c_str());
     
        return 0;
    };

    修改cmake

    add_executable(turtle_spawn src/turtle_spawn.cpp)
    target_link_libraries(turtle_spawn ${catkin_LIBRARIES})

    编译

    catkin_make

    运行

    roscore

    rosrun turtlesim turtlesim_node

    rosrun service_example turtle_spawn

     

  • 相关阅读:
    Ubuntu16.04下Django项目的部署
    Ubuntu16.04 下python2 | python3
    请求头请求体对应表
    Django项目开发-小技巧
    前端验证后端验证码问题
    Ugly Number
    移动0元素
    图片(画布上的图片)上传总结
    从矩阵中查找一个数
    搜索框(附带事件函数)
  • 原文地址:https://www.cnblogs.com/gjianli/p/15642116.html
Copyright © 2011-2022 走看看