编写Service节点

  • 这里,我们将创建一个简单的service节点("add_two_ints_server"),该节点将接收到两个整形数字,并返回它们的和。
  • 进入先前你在catkin workspace教程中所创建的包所在的目录:

  $ roscd practice/

在beginner_tutorials包中创建src/add_two_ints_server.cpp文件,

$ gedit add_two_ints_server.cpp

并复制粘贴下面的代码:

#include "ros/ros.h"
#include "beginner_tutorials/AddTwoInts.h"

bool add(beginner_tutorials::AddTwoInts::Request  &req,
         beginner_tutorials::AddTwoInts::Response &res)
{
  res.sum = req.a + req.b;
  ROS_INFO("request: x=%ld, y=%ld", (long int)req.a, (long int)req.b);
  ROS_INFO("sending back response: [%ld]", (long int)res.sum);
  return true;
}

int main(int argc, char **argv)
{
  ros::init(argc, argv, "add_two_ints_server");
  ros::NodeHandle n;

  ros::ServiceServer service = n.advertiseService("add_two_ints", add);
  ROS_INFO("Ready to add two ints.");
  ros::spin();

  return 0;
}
View Code

相关文章:

  • 2022-02-23
  • 2021-12-26
  • 2021-09-14
  • 2021-12-14
  • 2021-12-21
猜你喜欢
  • 2022-02-23
  • 2021-12-24
  • 2019-02-17
  • 2022-12-23
  • 2021-11-21
  • 2021-05-19
  • 2022-12-23
相关资源
相似解决方案