1. 程式人生 > >Srv資料格式

Srv資料格式

1、簡介

類似msg檔案, srv檔案是用來描述服務( service資料型別的, service通訊的資料格式定義在
*.srv中。 它聲明瞭一個服務, 包括請求(request)和響應( reply) 兩部分。 其格式宣告如下:
舉例: msgs_demo/srv/DetectHuman.srv

bool start_detect
---
my_pkg/HumanPose[] pose_data

msgs_demo/msg/HumanPose.msg 

std_msgs/Header header
string uuid
int32 number_of_joints
my_pkg
/JointPose[]joint_data

srv檔案格式很固定, 第一行是請求的格式, 中間用---隔開, 第三行是應答的格式。

srv可以巢狀msg在其中, 但它不能巢狀srv

2、操作命令

 

3、修改部分檔案

義完了msgsrv檔案, 還有重要的一個步驟就是修改package.xml和修改CMakeList.txt。 這
些檔案需要新增一些必要的依賴等, 例如:

 

<build_depend>** message_generation **</build_depend>
<run_depend>** message_runtime **</run_depend>

上述文字中“**”所引就是新新增的依賴。 又例如:

find_package(...roscpp rospy std_msgs ** message_generation **)
catkin_package(
...
CATJIN_DEPENDS ** message_runtime ** ...
...)
add_message_file(
FILES
** DetectHuman.srv **
** HumanPose.msg **
** JointPos.msg **)
** generate_messages(DEPENDENCIES std_msgs) **

新增的這些內容指定了srv或者msg在編譯或者執行中需要的依賴。

無論我們自定義了srv,還是msg

修改上述部分新增依賴都是必不可少的一步 。