一、服务数据模型
二、具体实现步骤
1、首先现在功能包中创建一个srv的文件夹,然后在改文件夹下新建一个以.srv为后缀的文件,所举例的该文件的具体内容如下:
string name
uint8 age
uint8 sex
uint8 unknown = 0
uint8 male = 1
uint8 female = 2
--- //三条横线上方是请求信息,三条横线下方是响应信息
string result
2、在package.xml中添加功能包依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
3、在CMakeLists.txt添加编译选项
find_package( …… message_generation)
add_service_files(FILES Person.srv)
generate_messages(DEPENDENCIES std_msgs)
catkin_package(…… message_runtime)
4、编译生成语言相关文件
5、创建服务器代码
代码实现的思路:
初始化ROS节点;
创建Server实例;
循环等待服务请求,进入回调函数;
在回调函数中完成服务功能的处理,并反馈应答数据。
具体代码如下:
/**
* 该例程将执行/show_person服务,服务数据类型learning_service::Person
*/
#include <ros/ros.h>
#include "learning_service/Person.h"
// service回调函数,输入参数为请求reqÿ