服务通信自定义srv

服务通信自定义srv

需求分析

在服务通信中,客户端提交两个消息到服务端,服务端求和后反馈给客户端,创建你客户端和服务端。

流程

  1. 按固定格式创建srv文件
  2. 编辑配置文件
  3. 编译生成之间文件

定义srv文件

srv = 请求部分 + 响应部分
srv 建立的步骤

  1. 打开终端,mkdir -p demo04_ws/src
  2. cd demo04_ws
  3. catkin_make
  4. code . 打开VScode
  5. 编辑配置文件 shift+Ctrl + B 修改group行,“group”: {“kind”:“build”,“isDefault”:true}
  6. 创建工作空间
  7. 工作空间下新建文件夹srv,在文件夹下面新建自定义消息文件AddInts.srv
  8. 在addints文件下自定义服务与请求的数据,格式如下:
    服务通信自定义srv_第1张图片
  9. 编辑配置文件 ,第一个是package.xml,另外一个是CMakeLists.txt

package.xml:

在这里插入图片描述
消息的生成依赖和消息的运行依赖

CMakeLists.txt:

  1. find_package()添加服务构建依赖:
    message_generation
  2. 58行与srv相关的文件:
    放开注释,添加addints.srv文件
  3. 71行消息构建依赖,放开注释,添加std_msgs(服务通信的构建依赖于std_msgs)
  4. catki_package() 添加messega.runtime
    注意:find_packge是当前创建的功能包所依赖的包
    catkin_packge 是创建的功能包依赖的包所依赖的包
    配置完成之后编译,自动生成中间文件。
    中间文件:
    devel -> include ->创建的功能包包含C++所依赖的中间文件
    devel -> lib ->python3下包含python依赖的中间文件
    到目前为止,服务通信的中间文件生成完毕。

最后一步需要将中间文件的路径包含到配置文件中,具体的操作为:

  1. 选中include ,在终端中打开。
  2. 通过命令pwd 打印出终端的路径。
  3. 将路径添加到配置文件c_cpp_propertise.json
  4. 完成配置。

你可能感兴趣的:(ROS学习与实践,服务器,运维)