Srv資料格式
阿新 • • 發佈:2018-11-11
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、修改部分檔案
義完了msg、 srv檔案, 還有重要的一個步驟就是修改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,
修改上述部分新增依賴都是必不可少的一步 。