创建客户端代码(C++)
如何实现一个服务器
- 初始化ROS节点
- 创建一个Server实例
- 循环等待服务请求,进入回调函数
- 在回调函数中完成服务功能的处理,并反馈应答数据
turtle_command_server.cpp
/**
* 该例程将执行 /turtle_command 服务,服务数据类型 std_srvs/Trigger
*/
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<std_srvs/Trigger.h>
ros::Publisher turtle_vel_pub;
bool pubCommand=false;
// service回调函数,输入参数req,输出参数res
bool commandCallback(std_srvs::Trigger::Request &req,std_srvs::Trigger::Response &res)
{
pubCommand=!pubCommand;
//显示请求数据
ROS_INFO("Publish turtle velocity command [%s]",pubCommand==true?"Yes":"No");
//设置反馈数据
res.success=true;
res.message="Change turtle command state!";
return true;
}
int main(int argc,char **argv)
{
//初始化ROS节点
ros::init(argc,argv,"turtle_command_server");
//创建节点句柄
ros::NodeHandle n;
//创建一个名为 /turtle_command的server,注册回调函数commandCallback
ros::ServiceSe

本文介绍了如何在ROS中创建服务端Server,包括初始化ROS节点、创建Server实例、等待服务请求并实现回调函数来处理功能,同时给出了turtle_command_server.cpp的示例代码,以及编译和运行服务器的步骤。
最低0.47元/天 解锁文章
1040

被折叠的 条评论
为什么被折叠?



