目录
2.2 CMakeLists.txt(和功能包同级的那个)编辑 srv 相关配置
前言
服务通信自定义srv,srv文件内的可用数据类型与msg文件一致,且定义srv与自定义msg的实现流程类似:
- 按照固定格式创建srv文件
- 编辑配置文件
- 编译生成中间文件
1.按照固定格式创建srv文件
服务通信中,数据分成2个部分,请求与响应即客户端和服务端,在创建的srv文件中请求(客户端)和响应(服务端)中间使用---进行分割,具体实现如下:
功能包(关于功能包的创建建议复习一下)下新建srv目录(新建文件夹),在文件夹下创建srv文件,内容:
int32 num1
int32 num2
---
int32 sum
注意点:
- 中间---分割,上面为客户端,下面为服务端
- 没有“;”
2.编辑配置文件
大题上与前面的msg差不多
2.1 package.xml中添加编译依赖与执行依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
2.2 CMakeLists.txt(和功能包同级的那个)编辑 srv 相关配置
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
message_generation//新添的
)
//这部分和msg有区别的
add_service_files(
FILES
# Service1.srv
# Service2.srv
Addints.srv
)
generate_messages(
DEPENDENCIES
std_msgs
)
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES plumbing_server_client
CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
# DEPENDS system_lib
)
3.编译生成中间文件
这部分了解就好。