服务通信自定义srv
需求分析
在服务通信中,客户端提交两个消息到服务端,服务端求和后反馈给客户端,创建你客户端和服务端。
流程
- 按固定格式创建srv文件
- 编辑配置文件
- 编译生成之间文件
定义srv文件
srv = 请求部分 + 响应部分
srv 建立的步骤
- 打开终端,mkdir -p demo04_ws/src
- cd demo04_ws
- catkin_make
- code . 打开VScode
- 编辑配置文件 shift+Ctrl + B 修改group行,“group”: {“kind”:“build”,“isDefault”:true}
- 创建工作空间
- 工作空间下新建文件夹srv,在文件夹下面新建自定义消息文件AddInts.srv
- 在addints文件下自定义服务与请求的数据,格式如下:
- 编辑配置文件 ,第一个是package.xml,另外一个是CMakeLists.txt
package.xml:
消息的生成依赖和消息的运行依赖
CMakeLists.txt:
- find_package()添加服务构建依赖:
message_generation - 58行与srv相关的文件:
放开注释,添加addints.srv文件 - 71行消息构建依赖,放开注释,添加std_msgs(服务通信的构建依赖于std_msgs)
- catki_package() 添加messega.runtime
注意:find_packge是当前创建的功能包所依赖的包
catkin_packge 是创建的功能包依赖的包所依赖的包
配置完成之后编译,自动生成中间文件。
中间文件:
devel -> include ->创建的功能包包含C++所依赖的中间文件
devel -> lib ->python3下包含python依赖的中间文件
到目前为止,服务通信的中间文件生成完毕。
最后一步需要将中间文件的路径包含到配置文件中,具体的操作为:
- 选中include ,在终端中打开。
- 通过命令pwd 打印出终端的路径。
- 将路径添加到配置文件c_cpp_propertise.json
- 完成配置。