使用ROS2实现简单的服务端,功能为将客户端提供的两个数相加后返回给客户端。
代码如下:
#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"
#include "base_interfaces_demo/msg/student.hpp"
#include "base_interfaces_demo/srv/add_ints.hpp"
#include <memory>
using namespace std::chrono_literals;
using base_interfaces_demo::msg::Student;
using base_interfaces_demo::srv::AddInts;
using std::placeholders::_1;//定义两个占位符,用以在bind函数中表示回调函数的两个参数
using std::placeholders::_2;
class AddIntServer:public rclcpp::Node
{
private:
/* data */
public:
AddIntServer():rclcpp::Node("addIntServer_node_cpp"){
RCLCPP_INFO(this->get_logger(),"服务端节点已创建!");
// 创建服务端
server_=this->create_service<AddInts>("addInts", std::bind(&AddIntServer::on_called,this,_1,_2));//注意要using std::placeholders::_1,两个占位符表示回调函数有两个变量。
};
private:
rclcpp::Service<AddInts>::SharedPt