ROS編程示例---加法客戶端

先運行服務端

#include <ros/ros.h>
#include <zhang/Bigint_Sum.h>//自己創建的srv文件
#include <cstdlib>

int main(int argc,char** argv)
{
  //初始化節點
  ros::init(argc,argv,"add_two_bigint_client");

  //傳入的參數必須是兩個,加上程序位置本身也是一個參數,所以是3
  if(argc!=3)
  {
    ROS_INFO("usage: add_two_bigint_client X Y");
    return 1;
  }
  //創建節點句柄
  ros::NodeHandle n;
  //客戶端
  ros::ServiceClient client=n.serviceClient<zhang::Bigint_Sum>("add_two_bigint");
  //填充服務
  zhang::Bigint_Sum srv;
  srv.request.a = atoll(argv[1]);//這裏的參數不能轉換成string?
  srv.request.b = atoll(argv[2]);
  //兩個作用,1.檢驗是否調用srv成功 2.調用服務
  if(client.call(srv))
  {
    ROS_INFO_STREAM(srv.response.sum.c_str());
  }
  else
  {
    ROS_ERROR("Failed to call service add_two_bigint");
    return 1;
  }
  //退出
  return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章